Reference no: EM132253195
Question 1: Research Paper
Read the paper "Towards Usable Checksums: Automating the Integrity Verification of Web Downloads for the Masses". Summarize the paper in your own words. making sure to comment on assumptions and evaluation criteria. (a good answer would probably take about two pages)
Question 2: Message Authentication Codes
You (Alice) have agreed a protocol with your bank (Bob) to send them instructions: if you want to send a message m you must also transmit an "authentication tag" which is an additional value that you use to prove that you sent the message. You are trying to work out what the tag should be, and you remember studying "hash functions" and "message authentication codes" when you were in school. You suggest the following scheme:
Alice → Bob : m|| h(m, "Bob")
where h() is a cryptographic hash function and II denotes concatenation.
1. Does this scheme provide the following, for the message m,
(a) confidentiality?
(b) integrity?
(c) authenticity?
Explain why, or why not. (a good answer would probably take at most half a page.)
2. If you share a secret key k with the bank can you think of a better way to compute the tag? Explain your reasoning and check which of the above properties you now have. (a good answer would probably take at most 1 page.)
3. Eve wants to steal some money by sending "Pay Eve 1000" to your bank. Unfortunately, she does not know how to compute your suggested tag, so she just guesses a random value.
(a) If the tag is 32 bits long (and h is a good hash function), what is the probability that Eve guessed right?
(b) Assuming she can send 1000 tags per second to the bank without triggering alarms, deduce how long on average it will take her to guess one that the bank will accept.
(c) How does the guessing time change if the tag is 64 bits long instead?
4. Suppose the bank uses the following procedure to verify the tag:
• Read the tag that was actually sent (as a sequence of bits): tag0 = b0b1.....b31
• Compute what the tag should be: tag1 = b,0b,1....b'31
• If b0 ≠ b'0 , return "tag was incorrect".
• If b1 ≠ b'1, return "tag was incorrect".
• If b31 ≠ b'31, return "tag was incorrect".
If Eve has access to a very accurate stopwatch, can she use this information to guess the tag more quickly than brute force? Can you suggest any improvements to this procedure?