implement different encryption algorithms | My Assignment Tutor

Linnaeus UniversityDepartment of Computer Science2020-10-27 OFEncryptionPractical work #1, 1DV700, HT20 In this practical work you are to investigate how to implement different encryption algorithmsand test how resilient they are to crypto analysis.This practical work should be done individually. Read all related information in MyMoodlebefore you start the work and use the uploaded template for your report.The report you write for this practical work should include your results on all the tasks.None of the tasks should be left empty. All students are required to try to solve every task.Even if the task was not in the form of a question, you need to explain what you have done forit and which steps you have taken.Your answers to the questions should elaborate on the answers. For instance, when you writeabout your program you should describe the algorithms you have implemented and how theprogram works. For task 6 you should explain the tools or methods used and what worked aswell as what didn’t work during the crypto analysis.Do not copy the text from the tasks, or questions in your report. Just include your solutions.Make sure to structure your report the same as task numbers. Save the report in pdf format.Make a zip archive with report and source code for the program and post it in the uploadfolder assigned before the deadline.1. The first task is to investigate different terms within cryptography and related areas.a) What are the differences between the following pairs of methods;Symmetric encryption – Asymmetric encryptionEncryption algorithms – Hash algorithmsCompression – Hashingb) What are the differences between Steganography (read document about steganographyin MyMoodle), Encryption and Digital Watermarking? What is the purpose of each methodand when are they used?2. Go the web page, read about steganographyand play around with the tools on the page. Also look for other sources of information aboutdifferent types of steganography.a) Explain what type of information that is hidden using the tools on the page, how they doit and the limitations of the method they are using.b) Describe other ways to hide information using steganography.c) Download the image Secret.bmp from MyMoodle. Find the hidden information in thefile. Explain how it is hidden and what the message is.Hint: You probably need a tool that can show the show the hex codes of the file to find thesecret information!3.a) Decrypt the message “RK ERKT EHURMXD” with the help of this simple substitutionkey (cipher line). plaina b c d e f g h i j k l m n o p q r s t u v w x y zcipherX G P Y H Q Z I R A J S B K T C L U D M V E N W F O b) Can this message be decrypted by someone not having the key? Motivate!c) Here is another short message encrypted with simple substitution but with another(unknown) key; “QMJ BPZ B XPJZ RZWJPAXQ LAD”. Can you decrypt this message? Linnaeus UniversityDepartment of Computer Science2020-10-27 OF4. Write a Python (or Java) program, implementing encryption/decryption without using anyspecial security packages. The program should ask the user for encryption method, if youwant to perform encryption or decryption, secret key and a text file to process. The outputshould be a processed file. You should implement at least two simple encryption methods,one substitution and one transposition method. For the substitution method, keep key sizes atmaximum equivalent to eight bits, i.e. 28=256 different possible keys that corresponds to onecharacter. Make sure that you can both encrypt and decrypt files with your program.5. Download the file “plaintext.txt” found on the course home page. Add a secret message atthe end of the file, at least one page long, and the names of the students that created the file.Encrypt the updated file using your program (you may select any method you haveimplemented). Post the encrypted file in the folder “Cipher texts”. The name of the file shouldbe the name of the student uploading the file.6. In the folder mentioned above you will find cipher texts from the other groups. Downloadsome of these and try to perform crypto analysis on them. You may use any tool or method toperform this task. When you have successfully analysed at least one of the files, include adescription of how you did it in the report. (Extra credits if you can decrypt several files thatimplemented different encryption algorithms).7. A good hash functions should have several properties. See Create a very simple hash function and implement it in Python (or Java). The hashfunction should be able to accept input of different sizes and produce a hash value that is 8bits.b) Implement statistical tests of your hash function to test if it seems to be a good hashfunction. You should at least run tests for Uniformity and that small changes in input still givevery different hash values. Consider using matplotlib to make it easy to analyse the result.Uniformity can be tested with random input strings (both in terms of size and content). Youshould test with at least a couple of thousand test strings.To test the second property, you should again run at least 1000 tests with input strings that arevery similar (only differ in one bit) and investigate what distribution you get now for the hashvalues.You can analyse the results manually or using different statistical tools, but you need todiscuss how well your function meet the different properties.c) There is a difference between normal hash functions and secure has functions. What isthat difference? Prove that your hash function is not a secure hash function. What is theeasiest way to prove this?


Leave a Reply

Your email address will not be published. Required fields are marked *