This page uses content from Wikipedia and is licensed under CC BY-SA.

Secure Hash Algorithm

Secure Hash Algorithm
Sha-family.png
Concepts
hash functions · SHA · DSA
Main standards
SHA-0 · SHA-1 · SHA-2 · SHA-3

The Secure Hash Algorithm is a family of cryptographic hash functions published by the National Institute of Standards and Technology (NIST) as a U.S. Federal Information Processing Standard (FIPS), including:

The corresponding standards are FIPS PUB 180 (original SHA), FIPS PUB 180-1 (SHA-1), FIPS PUB 180-2 (SHA-1, SHA-256, SHA-384, and SHA-512). NIST has updated Draft FIPS Publication 202, SHA-3 Standard separate from the Secure Hash Standard (SHS).

Comparison of SHA functions

In the table below, internal state means the "internal hash sum" after each compression of a data block.

Further information: Merkle–Damgård construction
Comparison of SHA functions
Algorithm and variant Output size
(bits)
Internal state size
(bits)
Block size
(bits)
Max message size
(bits)
Rounds Operations Security bits
(Info)
Example performance[2]
(MiB/s)
First Published
MD5 (as reference) 128 128
(4 × 32)
512 Unlimited[3] 64 And, Xor, Rot, Add (mod 232), Or <64
(collisions found)
335 1992
SHA-0 160 160
(5 × 32)
512 264 − 1 80 And, Xor, Rot, Add (mod 232), Or <80
(collisions found)
- 1993
SHA-1 160 160
(5 × 64)
512 264 − 1 80 <80
(collision found[4])
192 1995
SHA-2 SHA-224
SHA-256
224
256
256
(8 × 32)
512 264 − 1 64 And, Xor, Rot, Add (mod 232), Or, Shr 112
128
139 2001
SHA-384
SHA-512
SHA-512/224
SHA-512/256
384
512
224
256
512
(8 × 64)
1024 2128 − 1 80 And, Xor, Rot, Add (mod 264), Or, Shr 192
256
112
128
154 2001
SHA-3 SHA3-224
SHA3-256
SHA3-384
SHA3-512
224
256
384
512
1600
(5 × 5 × 64)
1152
1088
832
576
Unlimited[5] 24[6] And, Xor, Rot, Not 112
128
192
256
- 2015
SHAKE128
SHAKE256
d (arbitrary)
d (arbitrary)
1344
1088
min(d/2, 128)
min(d/2, 256)
- 2015

References

  1. ^ "Crypto++ 5.6.0 Benchmarks". Retrieved 2013-06-13. 
  2. ^ Found on an AMD Opteron 8354 2.2 GHz processor running 64-bit Linux[1]
  3. ^ "The MD5 Message-Digest Algorithm". Retrieved 2016-04-18. 
  4. ^ "Announcing the first SHA1 collision". Retrieved 2017-02-23. 
  5. ^ "The Sponge Functions Corner". Retrieved 2016-01-27. 
  6. ^ "The Keccak sponge function family". Retrieved 2016-01-27.