Slashdot recently reported on a post on Bruce Schneiers blog which reports that the SHA-1 hashing algorithm has been ‘broken’ by a team in China (wonder why they were working on it ) –  this is a pretty big deal; SHA-1 is the NSA / NIST standard for hashing algorithms right now – though recently they announced that they’ll be recommending the stronger SHA-512 and SHA-256 variants (properly called SHA-2 variants) soo, – good timing! For most common applications though where there’s a possibility collision after 2^69 ( 590295810358705651712 ) hash operations compared to 2^80 (1208925819614629174706176) really isn’t that bad then if you’re currently using SHA-1 I wouldn’t do a panic change (though next time you might want to change over to SHA-256 / 512).
To try to clarify what this means, in order to generate the same hash code from two distinct inputs (so you’re comparing one hash against the other)  would mean hashing 590295810358705651712  times rather than 1208925819614629174706176 times with what was previously thought to be the possibility of collision. If you’re betting your life on a hashing function (so for instance you have a document containing the nuclear key codes signed only with a SHA-1 hash) I’d seriously considering moving to a longer one (SHA-256) – if you’re just storing passwords for a Barney fanclub site…I wouldn’t worry especially.  Of course if you’re really paranoid (ooh, the NSA developed SHA!) you’re probably using Whirlpool already!
UPDATE: If you really want to check out some amazing .NET implementations of pretty much every encryption / hashing function on the planet take a look at this , currently has MD2, MD4, MD5, RIPEMD128, RIPEMD160, RIPEMD256, RIPEMD320, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, and Tiger hashes (well message digests which are a little different but still...lots!)!
posted on Wednesday, February 16, 2005 7:21 PM | Print

Comments

No comments posted yet.
Post Comment
Title *  
Name *  
Email
Url
Comment *  
Please add 5 and 6 and type the answer here: