SHA-2 (Secure Hash Algorithm) – is a set of cryptographic algorithms – single-aimed hash functions including SHA-224, SHA-256, SHA-384 and SHA-512. Hash functions are designed to create “imprints” of messages of a random bit length. They are used in various applications or components related to information security.
SHA-2 hash functions were designed by the U.S. National Security Agency (NSA) and published in 2001 by the National Institute of Standards and Technology (NIST). In July 2006 the standard RFC-4634 “U.S. Secure hash algorithms (SHA and HMAC-SHA)” was published, describing SHA-1 and SHA-2 family. NSA on behalf of the government has released the patent fro SHA-2 under a royalty-free license.
One iteration in SHA-2 algorithms
Hash functions of the SHA-2 family are build using Merkle-Damgard construction.
The initial message after being supplemented is broken into blocks, each block – into 16 words. Every message block is put by the algorithm through the cycle of 64 or 80 rounds. Two words are rebuilt on each iteration, the transformation function is set by the other words.
The results of each block processing are added, the sum being the value of the hash function. However, inner state initialisation is made by the result of the previous block processing. Thus you can not independently process blocks and summarise the results.
In 2003 Gilbert and Handschuh made a security analysis of SHA-2, but didn’t find any vulnerabilities. However, in March 2008 indian researches Somitra Kumar Sanadhya and Palash Sarkar published the collisions they found for 22 iterations of SHA-256 and SHA-512. In September 2008 they revealed the method for constructing collisions for shortened versions of SHA-2.
SHA-224, SHA-256, SHA-384 and SHA-512 are legally allowed in the US to be used in some government applications, including using them within other cryptographic algorithms and protocols for information protection that is not a state secret.
The standard also allows using SHA-2 by private and commercial organisations. SHA-2 hash functions are used for data integrity validation in different cryptographic schemes. Also, SHA-256 algorithm was successfully used in the world of cryptocurrencies, where constant hash functions calculation is vital. Based on it, the first and most successful cryptocurrency Bitcoin was created.