! 

Assignment #2

last updated September 18, 2018 .

Type of assignment: This assignment is individual. Students can discuss with others and collaborate while working on the assignment. However, the solution assignments should be submitted individually and proper credits were given. Failuer to give proper credits will be considered as plagiarism.

Points: The maximum number of points for this assignment is 40. Weight of each problem is in parenthesis.

Format: Assignment submissions are accepted in the PDF (*.pdf) format only. Assignments submitted in any other format will be discarded without marking and 0 points will be given. All text in the assignment submissions must be typed and figures plotted to be easy to read and understand. Spelling, grammar, and other language errors will result in fewer points credited to the corresponding problem solutions.
Format your answer and references in IEEE Transactions format using this template
(or download LaTeX template here).

How to Submit: via turnitin.com Please see Kosta's post on Piazza on September 18 with the information you will need for enrolling into CPEN 442 course on turnitin.com

Problems

1. (8)

    1. Compute MD5 hash value of your student number using an avaiable tool or an implementation of MD5.
    2. Download this file (cipher1_task.txt) with ciphertexts for each student indexed by the MD5 hash of the student number. Find your ciphertext and decrypt it. (If you cannot find the MD5 hash value in the file that corresponds to your student number, send Kosta e-mail with (1) your student number and (2) the MD5 hash value of your student number.) Determine the cipher used to encrypt the data, along with the encryption key. Submit
      1) the recovered plain text
      2) the name of the cipher,
      3) the key, and
      4) a description of the steps you took for recovering the key.

      Attention: You cannot use any specialized tools for breaking ciphers or programs, unless you developed them yourself, for solving this problem. You can use generic tools, e.g., spreadsheet programs, text processors, etc. If in doubt, ask on the discussion board or in class.

2. (17)

    1. Compute MD5 hash value of your student number using an avaiable tool or an implementation of MD5.
    2. Download this file (cipher2_task.txt) with ciphertexts for each student indexed by the MD5 hash of the student number. Find your ciphertext and decrypt it. (If you cannot find the MD5 hash value in the file that corresponds to your student number, send Kosta e-mail with (1) your student number and (2) the MD5 hash value of your student number.) Determine the cipher used to encrypt the data, along with the encryption key. Submit
      1) the recovered plain text
      2) the name of the cipher,
      3) the key, and
      4) a description of the steps you took for recovering the key.

      Attention: You cannot use any specialized tools for breaking ciphers or programs, unless you developed them yourself, for solving this problem. You can use generic tools, e.g., spreadsheet programs, text processors, etc. If in doubt, ask on the discussion board or in class.

Note:

For the following two problems, you can use any implementation of CRC32, but your solution will be verified using pycrc ran as follows:

for computing CRC value of a file: pycrc.py --model crc-32 --check-file <file name>

e.g., pycrc.py --model crc-32 --check-file test1.txt

for computing CRC value of a string: pycrc.py --model crc-32 --check-string <string value>

pycrc.py --model crc-32 --check-string 123456789

 

3. (5)

Demonstrate that Cyclic Redundancy Check (CRC) is not a good candidate for a cryptographic hash function by showing that it has (almost) no strong collision resistance property. To do that, find any two inputs x and y, where x != y, s.t. CRC(x) == CRC(y). You can submit x and y in separate files or as just two strings.

Attention: You cannot use

1. solution for problem 3 as a solution for problem 2, or

2. values of students number hashes from the file with cippher texts for problem 1 as x or y.

Explain how you found x and y and how long (in terms of your computer's CPU time) it took you to find them.

4. (10)

Demonstrate that Cyclic Redundancy Check (CRC) is not a good candidate for a cryptographic hash function by showing that it has (almost) no weak collision resistance property. To do that, take the MD5 hash value of your student number that you computed for problem 1 and use it as x in the following: find such y != x, that CRC(x) == CRC(y). You can submit y in a separate file or as just a string.

Explain how you found y and how long (in terms of your computer's CPU time) it took you to find it.


Copyright © 2003-2014 Konstantin Beznosov