Template:Comparison of SHA functions
Revision as of 15:50, 14 July 2017 by 104.153.72.218 (talk) (Add quote to citation supporting unlimited MD5 length. The actual padding is identical to SHA-0/1. Maybe just delete "max message size" column? It's never a practical limitation.)
| 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 | <34 (collisions found) |
- | 1993 | |
| SHA-1 | 160 | 160 (5 × 32) |
512 | 264 − 1 | 80 | <63 (collisions 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
- ↑ "Crypto++ 5.6.0 Benchmarks". Retrieved 2013-06-13.
- ↑ Found on an AMD Opteron 8354 2.2 GHz processor running 64-bit Linux[1]
- ↑ "The MD5 Message-Digest Algorithm". Retrieved 2016-04-18.
In the unlikely event that b is greater than 2^64, then only the low-order 64 bits of b are used.
- ↑ "Announcing the first SHA1 collision". Retrieved 2017-02-23.
- ↑ "The Sponge Functions Corner". Retrieved 2016-01-27.
- ↑ "The Keccak sponge function family". Retrieved 2016-01-27.