[sclug] MD5 is compromised

Will Dickson wrd at glaurung.demon.co.uk
Thu Aug 19 15:20:09 UTC 2004


Roland Turner (SCLUG) wrote:
> 
> 
> Before anybody panics, the break is that two different plaintexts have
> been found which, when put through an algorithm similar[1] to MD5 generate
> the same hash. A rather large amount of CPU time (measured in years rather
> than trillions of years, which is the real breakthrough here) was required
> to do this. 

Although the full paper has not yet been published, this 
doesn't seem to be the case. There were problems verifying 
the first collision (turned out to be due to the wrong 
endianness on the MD5 IV) at which point they produced a 
revised version, with a different collision, overnight.

Frequently when a hash clash (two different inputs -> same
> output) is found, 

The entire point of a cryptologic hash function such as MD5 
is that it's supposed to be computationally infeasible, ie. 
impossible for all practical purposes, to find even one such 
collision. Obviously they exist, but you're *not* supposed 
to be able to find them. If somebody mananges to find even 
one such collision, the hash is broken. MD5 is now broken.


it is relatively trivial to find "similar" clashes very
> cheaply (the basis of hash-cash in fact);

No. Hashcash works on the basis of *partial* collisions, 
which are known to be creatable with not much work. This 
result is a *full* collision, and that's supposed to be 
computationally infeasible.


> relying on MD5 alone for signing has been viewed as unsafe for
> years; use at least SHA1 or SHA1 and MD5 together.

True. However, it's still not uncommon: until yesterday, the 
best current practice was that MD5 was unsuitable for new 
designs but still OK for backwards compatibility. The 
concern was not so much weakness in the design (although 
that was a factor) as that it wasn't long enough; the 
expected workload to brute-force it was only O(2^64) which 
wasn't enough any more. This is now no longer the case.
> - Raz
> 
> 1: The difference appears to have been accidental; for some reason the
> endianness in the initialisation vector (list of 32 bit numbers used to
> seed the algorithm) was inverted, meaning that the hash algorithm for
> which a clash was discovered is very similar to, but not the same as, MD5.

That bug was corrected. Overnight.

Will.


More information about the Sclug mailing list