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

From blackwiki
Jump to navigation Jump to search
(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.)
imported>Rtc
(5 sub-rounds (θ, ρ, π, χ and ι) in each round for SHA-3)
Line 27: Line 27:
 
| ''SHA-384''<br/>''SHA-512''<br/>''{{nowrap|SHA-512/224}}''<br/>''{{nowrap|SHA-512/256}}'' ||  384<br/>512<br/>224 <br/>256 || 512<br/>{{nowrap|(8 × 64)}} || 1024 || 2<sup>128</sup> − 1 || 80 || And, Xor, Rot, {{nowrap|Add (mod&nbsp;2<sup>64</sup>),}} Or, Shr || {{Good|192<br/>256<br/>112<br/>128}} || 154 || 2001
 
| ''SHA-384''<br/>''SHA-512''<br/>''{{nowrap|SHA-512/224}}''<br/>''{{nowrap|SHA-512/256}}'' ||  384<br/>512<br/>224 <br/>256 || 512<br/>{{nowrap|(8 × 64)}} || 1024 || 2<sup>128</sup> − 1 || 80 || And, Xor, Rot, {{nowrap|Add (mod&nbsp;2<sup>64</sup>),}} Or, Shr || {{Good|192<br/>256<br/>112<br/>128}} || 154 || 2001
 
|- style="text-align:center;vertical-align:top;"
 
|- style="text-align:center;vertical-align:top;"
| rowspan="2" | '''{{nowrap|[[SHA-3]]}}''' || ''SHA3-224''<br/>''SHA3-256''<br/>''SHA3-384''<br/>''SHA3-512'' || 224<br/>256<br/>384<br/>512 || rowspan="2" | 1600<br>{{nowrap|(5 × 5 × 64)}} || 1152<br/>1088<br/>832<br/>576 || rowspan="2" | Unlimited<ref>{{cite web|url=http://sponge.noekeon.org/ |title=The Sponge Functions Corner |date= |accessdate=2016-01-27}}</ref>|| rowspan="2" | 24<ref>{{cite web|url=http://keccak.noekeon.org/specs_summary.html |title=The Keccak sponge function family |date= |accessdate=2016-01-27}}</ref> || rowspan="2" | And, Xor, Rot, Not  || {{Good|112<br/>128<br/>192<br/>256}} || - || 2015
+
| rowspan="2" | '''{{nowrap|[[SHA-3]]}}''' || ''SHA3-224''<br/>''SHA3-256''<br/>''SHA3-384''<br/>''SHA3-512'' || 224<br/>256<br/>384<br/>512 || rowspan="2" | 1600<br>{{nowrap|(5 × 5 × 64)}} || 1152<br/>1088<br/>832<br/>576 || rowspan="2" | Unlimited<ref>{{cite web|url=http://sponge.noekeon.org/ |title=The Sponge Functions Corner |date= |accessdate=2016-01-27}}</ref>|| rowspan="2" | 24 × 5<ref>{{cite web|url=http://keccak.noekeon.org/specs_summary.html |title=The Keccak sponge function family |date= |accessdate=2016-01-27}}</ref> || rowspan="2" | And, Xor, Rot, Not  || {{Good|112<br/>128<br/>192<br/>256}} || - || 2015
 
|- style="text-align:center;vertical-align:top;"
 
|- style="text-align:center;vertical-align:top;"
 
| ''SHAKE128''<br/>''SHAKE256'' || {{nowrap|''d'' (arbitrary)}}<br/>{{nowrap|''d'' (arbitrary)}} || 1344<br/>1088 || {{Good|min(''d''/2, 128)<br/>min(''d''/2, 256)}} || - || 2015
 
| ''SHAKE128''<br/>''SHAKE256'' || {{nowrap|''d'' (arbitrary)}}<br/>{{nowrap|''d'' (arbitrary)}} || 1344<br/>1088 || {{Good|min(''d''/2, 128)<br/>min(''d''/2, 256)}} || - || 2015

Revision as of 01:48, 17 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 × 5[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.