|
SHA1 - Hashing Algorithm
|
||
|
The Hashing algorithm we have used up to now is known as SHA1. (Secure Hashing Algorithm). For the formal definition, go here. There are a number of alternatives. Most produce hashes of less than 20 characters and the risk of collision (two different documents or VRs producing the same hash) is significantly higher. There is at least one other public domain algorithm which produces a hash of 20 characters, known as RIPEMD. Our choice between the two was more or less arbitrary in that when we went looking for the code, it became clear that SHA1 is much more widespread than RIPEMD. More recently, however, the SHA algorithms have been expanded to include 256, 512 and 768 bit options. The benefits of the additional keyspace and reduced collision risk may be sufficient to outweigh the additional storage space required, particularly as storage is already cheap and getting cheaper. We may, therefore, "upgrade" to longer hashes as the system is developed. Recently (Feb 2005) the world of cryptography experienced what, for it, was almost the equivalent of a Tsunami - when Chinese cryptographers announced a potential break to SHA1. For an enlightening discussion on the full implications of this breakthrough, you should read this page on Bruce Schneier's website. Its relevance to the Codel project, however, is minimal. We use hashes for three purposes, none of which is seriously affected by the break. Two of our purposes relate to integrity and one to security. Counterfeit Prevention Database Security Copyright What is all the fuss about then? As Schneier points out, in practical terms, this break does not immediately undermine all the security based on SHA1 but it sounds an alarm bell because "attacks always get better" and, as he's been warning since September 2004, there are potential problems with SHA which mean its time we created entirely new hashing algorithms. But again, as he points out, its "time to walk, not run, to the fire exits". The important point about Schneier's analysis is that SHA itself is now in question. The attack that works for SHA1 should in principle work for all other SHA variants - although the reduction from 2128 to 2117 attempts still leaves a lot more breathing space than the reduction from 280 to 269. Nevertheless, ALL the SHA algorithms are now under suspicion so although we can climb to a higher part of the ship, it is still sinking - but very very slowly. So slowly, in fact, that it is clearly going to be capable of several more years of round the world cruising before it disappears beneath the waves. With all that in mind, we will probably use SHA256 in place of SHA1 whenever that is an option. But we won't be too concerned about continued use of SHA1 for those uses where security is not the issue (such as copyright protection). |
||
|
|