Comparison of cryptographic hash functions

From Wikipedia, the free encyclopedia
Jump to: navigation, search

The following tables compare general and technical information for a number of cryptographic hash functions.[1]

General information[edit]

Basic general information about the cryptographic hash functions: year, designer, references, etc.

Function Year[gi 1] Designer Derived from Reference
HAVAL 1992 Yuliang Zheng
Josef Pieprzyk
Jennifer Seberry
Website
MD2 1989 Ronald Rivest RFC 1319
MD4 1990 RFC 1320
MD5 1992 MD4
RFC 1321 page 1
RFC 1321
MD6 2008 md6_report.pdf
RIPEMD 1990 The RIPE Consortium [1] MD4
RIPEMD-128
RIPEMD-256
RIPEMD-160
RIPEMD-320
1996 Hans Dobbertin
Antoon Bosselaers
Bart Preneel
RIPEMD[2] Website
SHA-0 1993 NSA SHA-0
SHA-1 1995 SHA-0 FIPS 180--3
SHA-256
SHA-512
SHA-384
2002
SHA-224 2004
GOST R 34.11-94 1994 FAPSI and VNIIstandart GOST 28147-89 RFC 5831, RFC 4357
Tiger 1995 Ross Anderson
Eli Biham
Website
Whirlpool 2004 Vincent Rijmen
Paulo Barreto
Website
SHA-3 (Keccak) 2008[2] Guido Bertoni
Joan Daemen
Michaël Peeters
Gilles Van Assche
Website

Notes[edit]

  1. ^ It refers to the first official description of the algorithm, not designed date.

Parameters[edit]

Algorithm Output size (bits) Internal state size[p 1] Block size Length size Word size Rounds
GOST 256 256 256 256 32 256
HAVAL 256/224/192/160/128 256 1,024 64 32 160/128/96
MD2 128 384 128 - 32 864
MD4 128 128 512 64 32 48
MD5 128 128 512 64 32 64
PANAMA 256 8,736 256 - 32 -
RadioGatún Up to 608/1,216 (19 words) 58 words 3 words - 1–64 -
RIPEMD 128 128 512 64 32 48
RIPEMD-128/256 128/256 128/256 512 64 32 64
RIPEMD-160 160 160 512 64 32 80
RIPEMD-320 320 320 512 64 32 80
SHA-0 160 160 512 64 32 80
SHA-1 160 160 512 64 32 80
SHA-224, SHA-256 256/224 256 512 64 32 64
SHA-384, SHA-512, SHA-512/224, SHA-512/256 384/512/224/256 512 1,024 128 64 80
SHA-3 224/256/384/512[p 2] 1600 1600-2*bits - 64 24
SHA3-224 224 1600 1152 - 64 24
SHA3-256 256 1600 1088 - 64 24
SHA3-384 384 1600 832 - 64 24
SHA3-512 512 1600 576 - 64 24
Tiger(2)-192/160/128 192/160/128 192 512 64 64 24
WHIRLPOOL 512 512 512 256 8 10

Notes[edit]

  1. ^ The internal state here means the "internal hash sum" after each compression of a data block. Most hash algorithms also internally use some additional variables such as length of the data compressed so far since that is needed for the length padding in the end. See the Merkle-Damgård construction for details.
  2. ^ Although the underlying algorithm Keccak has arbitrary hash lengths, the NIST specified 224, 256, 384 and 512 bits output as valid modes for SHA-3.

Compression function[edit]

The following tables compare technical information for compression functions of cryptographic hash functions. The information comes from the specifications, please refer to them for more details.

Function Size (bits)[cf 1] Words ×
Passes =
Rounds[cf 2]
Operations[cf 3] Endian[cf 4] Specification
Word Digest Chaining
values
[cf 5]
Computation
values[cf 6]
Block Length
[cf 7]
HAVAL-3-128 32 ×4 = 128 ×8 = 256 ×32 = 1,024 64 32 × 3 = 96 A B S Little HAVAL
HAVAL-3-160 ×5 = 160
HAVAL-3-192 ×6 = 192
HAVAL-3-224 ×7 = 224
HAVAL-3-256 ×8 = 256
HAVAL-4-128 ×4 = 128 32 × 4 = 128
HAVAL-4-160 ×5 = 160
HAVAL-4-192 ×6 = 192
HAVAL-4-224 ×7 = 224
HAVAL-4-256 ×8 = 256
HAVAL-5-128 ×4 = 128 32 × 5 = 160
HAVAL-5-160 ×5 = 160
HAVAL-5-192 ×6 = 192
HAVAL-5-224 ×7 = 224
HAVAL-5-256 ×8 = 256
MD2 8 ×16 = 128 ×32 = 256 ×48 = 384 ×16 = 128 None 48 × 18 = 864 B N/A RFC 1319
MD4 32 ×4 = 128 ×16 = 512 64 16 × 3 = 48 A B S Little RFC 1320
MD5 16 × 4 = 64 RFC 1321
RIPEMD 32 ×4 = 128 ×8 = 256 ×16 = 512 64 16 × 3 = 48 A B S Little
RIPEMD-128 16 × 4 = 64 RIPEMD-160
RIPEMD-256 ×8 = 256
RIPEMD-160 ×5 = 160 ×10 = 320 16 × 5 = 80
RIPEMD-320 ×10 = 320
SHA-0 32 ×5 = 160 ×16 = 512 64 16 × 5 = 80 A B S Big
SHA-1 FIPS 180--3
SHA-256 ×8 = 256 ×8 = 256 16 × 4 = 64
SHA-224 ×7 = 224
SHA-512 64 ×8 = 512 ×8 = 512 ×16 = 1024 128 16 × 5 = 80
SHA-384 ×6 = 384
GOST R 34.11-94 32 ×8 = 256 ×8 = 256 32 4 A B L S Little RFC 5831
Tiger-192 64 ×3 = 192 ×3 = 192 ×8 = 512 64 8 × 3 = 24 A B L S Little Tiger
Tiger-160 ×2.5=160
Tiger-128 ×2 = 128

Notes[edit]

  1. ^ The omitted multiplicands are word sizes.
  2. ^ Some authors interchange passes and rounds.
  3. ^ A: addition, subtraction; B: bitwise operation; L: lookup table; S: shift, rotation.
  4. ^ It refers to byte endianness only. If the operations consist of bitwise operations and lookup tables only, the endianness is irrelevant.
  5. ^ The size of message digest equals to the size of chaining values usually. In truncated versions of certain cryptographic hash functions such as SHA-384, the former is less than the latter.
  6. ^ The size of chaining values equals to the size of computation values usually. In certain cryptographic hash functions such as RIPEMD-160, the former is less than the latter because RIPEMD-160 use two sets of parallel computaion values and then combine into a single set of chaining values.
  7. ^ The maximum input size = 2length size − 1 bits. For example, the maximum input size of SHA-1 = 264 − 1 bits.

See also[edit]

References[edit]

  1. ^ See the individual functions' articles for further information. This article is not all-inclusive or necessarily up-to-date.
  2. ^ Bertoni, Guido; Daemen, Joan; Peeters, Michael; Assche, Gilles Van (Oct 2008), Keccak sponge function family main document, 1.0, retrieved 2013-07-30 

External links[edit]

  1. The Hash Function Lounge - A list of hash functions and known attacks, by Paulo Barreto
  2. The eHash Main Page - A wiki for cryptographic hash functions
  3. The NIST Hash Competition Main Page - The competition to become SHA-3