# Second Preimages on n-bit Hash Functions by John Kelsey and Bruce Schneier

And found there:

«3.2 A Generic Technique: Multicollisions of Different Lengths»


    «Finding a Collision on Two Messages of Different Lengths.»


        «ALGORITHM:»


            «Steps:»


THIS:
"Build lists A and B as follows:"

– for i = 0 to 2n/2 − 1:
• A[i] = F(hin,M(i))
• B[i] = F(htmp,M(i))


There «i» takes value from 0 to 2^(n/2), BUT numbers of M’s blocks much less «2^(n/2)»
Maybe correct go through the cycle [0, 2^k] ? Otherwise, many of M(i) simply don’t exist.

or I'm wrong and something i don't understand?

P.S. Is there a chance, that won't find a collision in a range [0, 2^k]?

Thanks!

• Ok, i figured out. I thought "M" - original message, but it's random data necessary for generation "Expandable Messages". In this case, range [ 0, 2^(n/2) ] is right. – user41204 Jun 9 '17 at 8:54
• If you answered your own question, would you mind taking it out of the comments and submitting (and accepting) it as an answer? – user47922 Jun 9 '17 at 15:14