The Secure Hash Algorithms are 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.

Comparison of SHA functions
Algorithm and variant Output size
(bits)
Internal
state size
(bits)
Block size
(bits)
Rounds Operations Security
(bits)
Performance on Skylake (median cpb)[1] First published
Long messages 8 bytes
MD5 (as reference) 128 128
(4 × 32)
512 4
(16 operations in each round)
And, Xor, Or, Rot, Add (mod 232) ≤ 18
(collisions found)[2]
4.99 55.00 1992
SHA-0 160 160
(5 × 32)
512 80 And, Xor, Or, Rot, Add (mod 232) < 34
(collisions found)
≈ SHA-1 ≈ SHA-1 1993
SHA-1 < 63
(collisions found)[3]
3.47 52.00 1995
SHA-2 SHA-224
SHA-256
224
256
256
(8 × 32)
512 64 And, Xor, Or,
Rot, Shr, Add (mod 232)
112
128
7.62
7.63
84.50
85.25
2004
2001
SHA-384 384 512
(8 × 64)
1024 80 And, Xor, Or,
Rot, Shr, Add (mod 264)
192 5.12 135.75 2001
SHA-512 512 256 5.06 135.50 2001
SHA-512/224
SHA-512/256
224
256
112
128
≈ SHA-384 ≈ SHA-384 2012
SHA-3 SHA3-224
SHA3-256
SHA3-384
SHA3-512
224
256
384
512
1600
(5 × 5 × 64)
1152
1088
832
576
24[4] And, Xor, Rot, Not 112
128
192
256
8.12
8.59
11.06
15.88
154.25
155.50
164.00
164.00
2015
SHAKE128
SHAKE256
d (arbitrary)
d (arbitrary)
1344
1088
min(d/2, 128)
min(d/2, 256)
7.08
8.59
155.25
155.50

Validation

All SHA-family algorithms, as FIPS-approved security functions, are subject to official validation by the CMVP (Cryptographic Module Validation Program), a joint program run by the American National Institute of Standards and Technology (NIST) and the Canadian Communications Security Establishment (CSE).

References

  1. "Measurements table". bench.cr.yp.to.
  2. Tao, Xie; Liu, Fanbao; Feng, Dengguo (2013). Fast Collision Attack on MD5 (PDF). Cryptology ePrint Archive (Technical report). IACR.
  3. Stevens, Marc; Bursztein, Elie; Karpman, Pierre; Albertini, Ange; Markov, Yarik. The first collision for full SHA-1 (PDF) (Technical report). Google Research.
    • Marc Stevens; Elie Bursztein; Pierre Karpman; Ange Albertini; Yarik Markov; Alex Petit Bianco; Clement Baisse (February 23, 2017). "Announcing the first SHA1 collision". Google Security Blog.
  4. "The Keccak sponge function family".