1
$\begingroup$

How to give an example for collision in modified Mekle-Damgard construction that does not include input length, with two message that ARE multiple of the block length? (Assume the resulting hash function is only defined for inputs whose length is an integer multiple of the block length.)
It is easy to consider a counter-example in the case where two messages have lengths that are not an integer multiple of the block length. Like: if block length be n and x be a string of mn+n-2 bits, then H(x|00)=H(x0|0), i.e., x and x0 have the same hash value. Introduction to modern cryptography, Katz and Lindell, 2nd Edition

$\endgroup$

1 Answer 1

1
$\begingroup$

Maybe this be an answer for this question: When messages are an integer multiple of the block length, counter-examples are possible, though they rely on a contrived compression function h, as Katz-Lindell said. If $$h:\{0,1\}^{2n} \rightarrow \{0, 1\}^{n} \\ h(x_{1}\|x_{2})=h'(x_{1})$$ for some collision resistant hash function $h':\{0,1\}^{*} \rightarrow \{0,1\}^{n} $, then for two given messages $X=x_{1}\|x_{2}$ and $X'=x_{1}\|x_{2}\|x_{3}$ with lengths $|X|=2\ell$ and $|X'|=3\ell$, where $\ell$ is the block length, we have: $$H(X)=h(x_{2}\|z_{1})=h'(x_{2}) \\ H(X')=h(x_{3}\|z_{2})=h'(x_{3})$$ Now, if we choose $x_{3}=x_{2}$, i.e., $X'=x_{1}\|x_{2}\|x_{2}$, then $H(X)=H(X')=h'(x_{2})$. So we found a collision. BUT is this a good counter-example?
Because with using this particular hash function, h, we do not use previous hash blocks and kind of making the Merkle-Damgard construction vain!

$\endgroup$
1
  • $\begingroup$ Answers go in the answer box, guesses may be included with the question. $\endgroup$
    – Maarten Bodewes
    Mar 4 at 2:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.