The cryptographic hash algorithms SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)
and MD5 are commonly used functions that take an arbitrary length input message
and return a unique fixed length output value known as the message digest.
The digest is effectively a compressed but irreversible representation of the
entire input message which can be used to provide data integrity checking, since
changes in the digest indicate the message has also changed. This property has
many useful applications such as the Digital Signature Standard (FIPS 186-3).
When used to implement a Hash-based Message Authentication Code (HMAC) to FIPS 198,
the hash function is keyed to provide a means of data authentication used in many
secure protocols e.g. IPsec, TLS/SSL.
The Secure Hash Algorithms (SHA) were developed by the US National Institute
of Standards and Technology (NIST) as defined in FIPS 180-3. This describes the
original SHA-1 hash as well as the more recent SHA-2 family of algorithms.
SHA-1, SHA-224 and SHA-256 are all 32-bit hash algorithms that generate 160-bit,
224-bit, and 256-bit digests respectively. The 64-bit SHA-384 and SHA-512 hash
algorithms provide even greater security and generate 384-bit and 512-bit digests.
The MD5 hash algorithm (developed by Ron Rivest) is a legacy 32-bit hash algorithm
that generates a 128-bit digest and is described in RFC 1321.
Which Hashing core family should I choose?
Helion has designed two highly efficient families of Hashing cores to meet contrasting system
requirements; a family of Fast Hashing
cores which handle data throughputs up to 4 Gbps for high performance applications;
and a family of Tiny Hashing
cores aimed at lower data rate, area sensitive applications supporting data throughputs up to 100 Mbps.