Computer Security coursework 3 (part 1) Dr Alexei Vernitski
Aims of the coursework Learn more about: – Checksums – Luhn checksum as an example of an error detection algorithm – Birthday attacks
Assignment (slide 1) Implement Luhn checksum in Python. Do not write your own code; find a working code on the web. Luhn checksum was not intended to be a cryptographic checksum; this is why it will be a convenient object for us to use as a target of an attack.
Assignment (slide 2) Use a birthday attack to find one even number and one odd number having the same Luhn checksum, as follows – Produce 4 random even numbers in the range between 10 and 99 – Produce 4 random odd two-digit numbers in the range between 10 and 99 – Calculate Luhn checksums of these 8 numbers – With a high probability, you will have one even number and one odd number which have the same checksum. Find these two numbers and print these numbers and their checksum – If you have not found a checksum match, repeat the experiment
What to submit? Submit a ZIP file containing two files: 1.A Python file for Part 1 of Coursework 3 2.A Python file for Part 2 of Coursework 3 Please submit one file, and please submit a ZIP file, it makes opening your assignment easier for me Please include your name and registration number as a comment in your Python code, it makes entering marks easier for me
How shall I mark your code? Your code should do the following: – Generate four random even numbers (in the range between 10 and 99) – Generate four random odd numbers (in the range between 10 and 99) – Find their Luhn checksums and compare them – Print one pair (or all pairs) of an even number and an odd number having the same value of Luhn checksum. Also print the value of the checksum. – You should have a loop in your code to repeat the experiment if a matching pair has not been found.
Programming I attempted the coursework and wrote my solution in Python – My complete code (in addition to the implementation of Luhn checksum, which I took from the web) contains 9 lines – It took me approximately 20 minutes to write it – You may need up to 1 hour to complete the assignment if you need to learn how to generate random numbers in Python, how to work with lists in Python, etc.
Labs Before the submission date of each piece of coursework, we shall have a lab on Monday The purpose of the lab is: – to help you to write your code, in case you have any difficulties – to give you an opportunity to demonstrate your code to me
No collaboration This is an individual assignment I shall look for signs of collaboration and plagiarism