Difference between revisions of "Template:Comparison of SHA functions"

From blackwiki
Jump to navigation Jump to search
imported>Foia req
(SHA-1 shows 2^63. SHA-0's real collision attack is 2^34.)
(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.)
Line 17: Line 17:
 
! First Published
 
! First Published
 
|- style="text-align:center;vertical-align:top;"
 
|- style="text-align:center;vertical-align:top;"
| colspan="2" | '''[[MD5]]''' (as reference) || 128 || 128<br>{{nowrap|(4 × 32)}} || 512 || Unlimited<ref>{{cite web|url=http://tools.ietf.org/html/rfc1321 |title=The MD5 Message-Digest Algorithm |date= |accessdate=2016-04-18}}</ref> || 64 || And, Xor, Rot, {{nowrap|Add (mod&nbsp;2<sup>32</sup>),}} Or || {{Bad|&lt;64<br/>(collisions found)}} || 335 || 1992
+
| colspan="2" | '''[[MD5]]''' (as reference) || 128 || 128<br>{{nowrap|(4 × 32)}} || 512 || Unlimited<ref>{{cite web|url=http://tools.ietf.org/html/rfc1321 |title=The MD5 Message-Digest Algorithm |date= |accessdate=2016-04-18 |quote=In the unlikely event that b is greater than 2^64, then only the low-order 64 bits of b are used.}}</ref> || 64 || And, Xor, Rot, {{nowrap|Add (mod&nbsp;2<sup>32</sup>),}} Or || {{Bad|&lt;64<br/>(collisions found)}} || 335 || 1992
 
|- style="text-align:center;vertical-align:top;"
 
|- style="text-align:center;vertical-align:top;"
 
| colspan="2" | '''{{nowrap|[[SHA-0]]}}''' || 160 || 160<br>{{nowrap|(5 × 32)}} || 512 || 2<sup>64</sup> − 1|| 80 || rowspan="2" | And, Xor, Rot, {{nowrap|Add (mod&nbsp;2<sup>32</sup>),}} Or || {{Bad|&lt;34<br/>(collisions found)}}  || - || 1993
 
| colspan="2" | '''{{nowrap|[[SHA-0]]}}''' || 160 || 160<br>{{nowrap|(5 × 32)}} || 512 || 2<sup>64</sup> − 1|| 80 || rowspan="2" | And, Xor, Rot, {{nowrap|Add (mod&nbsp;2<sup>32</sup>),}} Or || {{Bad|&lt;34<br/>(collisions found)}}  || - || 1993

Revision as of 15:50, 14 July 2017

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 <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

  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. In the unlikely event that b is greater than 2^64, then only the low-order 64 bits of b are used.
  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.