?splints for broken hash functions

John Kelsey kelsey.j at ix.netcom.com
Wed Sep 1 10:37:10 EDT 2004


>From: Ivan Krstic <krstic at fas.harvard.edu>
>Sent: Aug 29, 2004 8:40 AM
>To: Metzdowd Crypto <cryptography at metzdowd.com>
>Subject: Re: ?splints for broken hash functions

>This is Schneier's and Ferguson's solution to then-known hash function 
>weaknesses in Practical Cryptography, Wiley Publishing, 2003:

>"We do not know of any literature about how to fix the hash functions, 
>but here is what we came up with when writing this book. ... Let h be 
>one of the hash functions mentioned above. Instead of m->h(m), we use 
>m->h(h(m) || m) as hash function. Effectively we put h(m) before the 
>message we are hashing. This ensures that the iterative hash 
>computations immediately depend on all the bits of the message, and no 
>partial-message or length extension attacks can work. ... 

I believe this falls to a generalization of the Joux attack, as well.  (Someone may have already noticed this.)  

a.  I build a 2^{80} multicollision on h(m) using Joux' attack, requiring 80*2^{80} work.  

b.  I now have 2^{80} different messages which are being hashed with the same IV.  I expect one pair of them to give me a collision.  

>Cheers,
>Ivan.

Comments?

--John

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo at metzdowd.com



More information about the cryptography mailing list