Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

This is a cryptology question from the book Introduction to Modern Cryptography

ID: 3683969 • Letter: T

Question

This is a cryptology question from the book Introduction to Modern Cryptography by Katz and Lindell. If needed, please refer to the textbook's online pdf to answer the question. Please answer BOTH parts of the question fully, and with any necessary examples/proofs. Please show ALL steps and explain logic fully. For each of the following modifications to the Merkle-Damgard transform, determine whether the result is collision resistant. If yes, provide a proof; if not, demonstrate an attack. Modify the construction so that the input length is not included at all (i.e., output z_B and not z_B + 1 = h*(z_B||L)). (Assume the resulting hash is only defined for inputs whose length is an integer multiple of the block length.) Modify the construction so that instead of outputting z = h^s(z_B||L), the algorithm outputs z_B||L.

Explanation / Answer

consider H(x)=H(x) which means

that zB=h(zB1||xB)=h(zB1||xB)=zBzB=h(zB1||xB)=h(zB1||xB)=zB,

but this can't happen since the hash compression function hh is supposed to be

collision resistant.

It's also obvious that if xB=xB and zB1=zB1then there's a

collision zB=zB because zB1=h(zB2||xB1)=h(zB2||xB1)=zB1

and apply this recursively until reach x1 or x1.

b) In order for this construction to not be collision resistant, a collision in the

underlying h^8 must be found, but this contradicts the assumption that h^8 is

collision resistant, thus such construction is collision resistant.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote