Second Preimages on n-bit Hash Functions by John Kelsey and Bruce Schneier I read your https://www.schneier.com/academic/paperfiles/paper-preimages.pdf

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.