NIST (National Institute of Standards and Technology) the US government department responsible for defining standard measures and, in the digital age, for defining certain technology standards, has proposed an alteration to the SHA-2 hash algorithm standard.
A hashing algorithm is a deterministic way to produce a fixed-size bit string from an arbitrary block of data in such a way that an accidental or intentional change to the data will change the hash value.
The perfect hashing algorithm has four properties:
- it is easy to compute the hash value for any given message
- it is infeasible to find a message that has a given hash,
- it is infeasible to modify a message without changing the hash
- it is infeasible to find two different arbitrary blocks of data with the same hash.
There are currently five SHA2 algorithms: SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512. Each algorithm produces a message digest of a specific length: SHA-1 produces a digest of 160 bits, SHA-224 produces one of 224 bits, and so on.
The proposed standard would add SHA-512/224 and SHA-512/256. They are based on the SHA-512 algorithm but produce a truncated output of 224 or 256 bits, respectively. They are being added because it is thought they might be a more efficient alternative to using SHA-224 or SHA-256 on 64-bit platforms.
Also the proposed standard would remove the current restriction on the padding operation in the secure hash algorithms which could potentially lead to more flexibility and efficiency.