"I don't know if you guys have been keeping up with current events,
 but MD5 just got its ass kicked!" - with apologies to Private Hudson

It's been known for some time in the crypto world that MD5 is weak, that
there are shortcuts to finding hash collisions.  Recently, that weakness
has turned into a full-fledged failure: It is now possible to quickly
and easily craft two very different files with identical MD5 hashes.

MD5 is dead.  Don't use it.

Similarly, we should avoid SHA-1 for any permanent purpose, though in
the short term it's not quite dead yet.  No one has demonstrated an
ability to create SHA-1 collisions on demand (as far as I've heard,
anyway), but SHA-1 is "a wounded fish in shark-infested waters"[*], and
an MD5-scale failure may be just a matter of time.

So what should we use for hashing?  Two good choices I know of:

 * The SHA-2 family (including SHA-256 and other variants) is showing no
   signs of weakness AFAIK.
 * Whirlpool [**] seems strong enough too; Bruce Schneier describes it
   as "a good choice".

Ah, crypto is such fun.

[*]  http://www.networkworld.com/news/2005/110105-nist-crypto.html
[**] http://paginas.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html
-- 
Chip Salzenberg <[EMAIL PROTECTED]>

Reply via email to