This article summarizes publicly known attacks against cryptographic hash functions. Note that not all entries may be up to date. For a summary of other hash function parameters, see comparison of cryptographic hash functions.
Hash function | Security claim | Best attack | Publish date | Comment |
---|---|---|---|---|
MD5 | 264 | 218 time | 2013-03-25 | This attack takes seconds on a regular PC. Two-block collisions in 218, single-block collisions in 241. [1] |
SHA-1 | 280 | 261.2 | 2020-01-08 | Paper by Gaëtan Leurent and Thomas Peyrin [2] |
SHA256 | 2128 | 31 of 64 rounds (265.5) | 2013-05-28 | Two-block collision. [3] |
SHA512 | 2256 | 24 of 80 rounds (232.5) | 2008-11-25 | Paper. [4] |
SHA-3 | Up to 2512 | 6 of 24 rounds (250) | 2017 | Paper. [5] |
BLAKE2s | 2128 | 2.5 of 10 rounds (2112) | 2009-05-26 | Paper. [6] |
BLAKE2b | 2256 | 2.5 of 12 rounds (2224) | 2009-05-26 | Paper. [6] |
Hash function | Security claim | Best attack | Publish date | Comment |
---|---|---|---|---|
MD5 | 264 | 239 | 2009-06-16 | This attack takes hours on a regular PC. [7] |
SHA-1 | 280 | 263.4 | 2020-01-08 | Paper by Gaëtan Leurent and Thomas Peyrin [2] |
SHA256 | 2128 | |||
SHA512 | 2256 | |||
SHA-3 | Up to 2512 | |||
BLAKE2s | 2128 | |||
BLAKE2b | 2256 |
Hash function | Security claim | Best attack | Publish date | Comment |
---|---|---|---|---|
MD5 | 2128 | 2123.4 | 2009-04-27 | Paper. [8] |
SHA-1 | 2160 | 45 of 80 rounds | 2008-08-17 | Paper. [9] |
SHA256 | 2256 | 43 of 64 rounds (2254.9 time, 26 memory) | 2009-12-10 | Paper. [10] |
SHA512 | 2512 | 46 of 80 rounds (2511.5 time, 26 memory) | 2008-11-25 | Paper, [11] updated version. [10] |
SHA-3 | Up to 2512 | |||
BLAKE2s | 2256 | 2.5 of 10 rounds (2241) | 2009-05-26 | Paper. [6] |
BLAKE2b | 2512 | 2.5 of 12 rounds (2481) | 2009-05-26 | Paper. [6] |
Hash function | Security claim | Best attack | Publish date | Comment |
---|---|---|---|---|
GOST | 2128 | 2105 | 2008-08-18 | Paper. [12] |
HAVAL-128 | 264 | 27 | 2004-08-17 | Collisions originally reported in 2004, [13] followed up by cryptanalysis paper in 2005. [14] |
MD2 | 264 | 263.3 time, 252 memory | 2009 | Slightly less computationally expensive than a birthday attack, [15] but for practical purposes, memory requirements make it more expensive. |
MD4 | 264 | 3 operations | 2007-03-22 | Finding collisions almost as fast as verifying them. [16] |
PANAMA | 2128 | 26 | 2007-04-04 | Paper, [17] improvement of an earlier theoretical attack from 2001. [18] |
RIPEMD (original) | 264 | 218 time | 2004-08-17 | Collisions originally reported in 2004, [13] followed up by cryptanalysis paper in 2005. [19] |
RadioGatún | Up to 2608 [20] | 2704 | 2008-12-04 | For a word size w between 1-64 bits, the hash provides a security claim of 29.5w. The attack can find a collision in 211w time. [21] |
RIPEMD-160 | 280 | 48 of 80 rounds (251 time) | 2006 | Paper. [22] |
SHA-0 | 280 | 233.6 time | 2008-02-11 | Two-block collisions using boomerang attack. Attack takes estimated 1 hour on an average PC. [23] |
Streebog | 2256 | 9.5 rounds of 12 (2176 time, 2128 memory) | 2013-09-10 | Rebound attack. [24] |
Whirlpool | 2256 | 4.5 of 10 rounds (2120 time) | 2009-02-24 | Rebound attack. [25] |
Hash function | Security claim | Best attack | Publish date | Comment |
---|---|---|---|---|
GOST | 2256 | 2192 | 2008-08-18 | Paper. [12] |
MD2 | 2128 | 273 time, 273 memory | 2008 | Paper. [26] |
MD4 | 2128 | 2102 time, 233 memory | 2008-02-10 | Paper. [27] |
RIPEMD (original) | 2128 | 35 of 48 rounds | 2011 | Paper. [28] |
RIPEMD-128 | 2128 | 35 of 64 rounds | ||
RIPEMD-160 | 2160 | 31 of 80 rounds | ||
Streebog | 2512 | 2266 time, 2259 data | 2014-08-29 | The paper presents two second-preimage attacks with variable data requirements. [29] |
Tiger | 2192 | 2188.8 time, 28 memory | 2010-12-06 | Paper. [30] |
Hashes described here are designed for fast computation and have roughly similar speeds. [31] Because most users typically choose short passwords formed in predictable ways, passwords can often be recovered from their hashed value if a fast hash is used. Searches on the order of 100 billion tests per second are possible with high-end graphics processors. [32] [33] Special hashes called key derivation functions have been created to slow brute force searches. These include pbkdf2, bcrypt, scrypt, argon2, and balloon.
In cryptography, an HMAC is a specific type of message authentication code (MAC) involving a cryptographic hash function and a secret cryptographic key. As with any MAC, it may be used to simultaneously verify both the data integrity and authenticity of a message. An HMAC is a type of keyed hash function that can also be used in a key derivation scheme or a key stretching scheme.
The MD5 message-digest algorithm is a widely used hash function producing a 128-bit hash value. MD5 was designed by Ronald Rivest in 1991 to replace an earlier hash function MD4, and was specified in 1992 as RFC 1321.
RIPEMD is a family of cryptographic hash functions developed in 1992 and 1996. There are five functions in the family: RIPEMD, RIPEMD-128, RIPEMD-160, RIPEMD-256, and RIPEMD-320, of which RIPEMD-160 is the most common.
In cryptography, SHA-1 is a hash function which takes an input and produces a 160-bit (20-byte) hash value known as a message digest – typically rendered as 40 hexadecimal digits. It was designed by the United States National Security Agency, and is a U.S. Federal Information Processing Standard. The algorithm has been cryptographically broken but is still widely used.
A cryptographic hash function (CHF) is a hash algorithm that has special properties desirable for a cryptographic application:
In cryptography, MD5CRK was a volunteer computing effort launched by Jean-Luc Cooke and his company, CertainKey Cryptosystems, to demonstrate that the MD5 message digest algorithm is insecure by finding a collision – two messages that produce the same MD5 hash. The project went live on March 1, 2004. The project ended on August 24, 2004 after researchers independently demonstrated a technique for generating collisions in MD5 using analytical methods by Xiaoyun Wang, Feng, Xuejia Lai, and Yu. CertainKey awarded a 10,000 Canadian Dollar prize to Wang, Feng, Lai and Yu for their discovery.
In cryptography, Tiger is a cryptographic hash function designed by Ross Anderson and Eli Biham in 1995 for efficiency on 64-bit platforms. The size of a Tiger hash value is 192 bits. Truncated versions can be used for compatibility with protocols assuming a particular hash size. Unlike the SHA-2 family, no distinguishing initialization values are defined; they are simply prefixes of the full Tiger/192 hash value.
The MD4 Message-Digest Algorithm is a cryptographic hash function developed by Ronald Rivest in 1990. The digest length is 128 bits. The algorithm has influenced later designs, such as the MD5, SHA-1 and RIPEMD algorithms. The initialism "MD" stands for "Message Digest".
In cryptography, a collision attack on a cryptographic hash tries to find two inputs producing the same hash value, i.e. a hash collision. This is in contrast to a preimage attack where a specific target hash value is specified.
HAVAL is a cryptographic hash function. Unlike MD5, but like most modern cryptographic hash functions, HAVAL can produce hashes of different lengths – 128 bits, 160 bits, 192 bits, 224 bits, and 256 bits. HAVAL also allows users to specify the number of rounds to be used to generate the hash. HAVAL was broken in 2004.
The MD2 Message-Digest Algorithm is a cryptographic hash function developed by Ronald Rivest in 1989. The algorithm is optimized for 8-bit computers. MD2 is specified in IETF RFC 1319. The "MD" in MD2 stands for "Message Digest".
Wang Xiaoyun is a Chinese cryptographer, mathematician, and computer scientist. She is a professor in the Department of Mathematics and System Science of Shandong University and an academician of the Chinese Academy of Sciences.
SHA-2 is a set of cryptographic hash functions designed by the United States National Security Agency (NSA) and first published in 2001. They are built using the Merkle–Damgård construction, from a one-way compression function itself built using the Davies–Meyer structure from a specialized block cipher.
In cryptography, collision resistance is a property of cryptographic hash functions: a hash function H is collision-resistant if it is hard to find two inputs that hash to the same output; that is, two inputs a and b where a ≠ b but H(a) = H(b). The pigeonhole principle means that any hash function with more inputs than outputs will necessarily have such collisions; the harder they are to find, the more cryptographically secure the hash function is.
FORK-256 is a hash algorithm designed in response to security issues discovered in the earlier SHA-1 and MD5 algorithms. After substantial cryptanalysis, the algorithm is considered broken.
In cryptography, rotational cryptanalysis is a generic cryptanalytic attack against algorithms that rely on three operations: modular addition, rotation and XOR — ARX for short. Algorithms relying on these operations are popular because they are relatively cheap in both hardware and software and run in constant time, making them safe from timing attacks in common implementations.
This article summarizes publicly known attacks against block ciphers and stream ciphers. Note that there are perhaps attacks that are not publicly known, and not all entries may be up to date.
Streebog is a cryptographic hash function defined in the Russian national standard GOST R 34.11-2012 Information Technology – Cryptographic Information Security – Hash Function. It was created to replace an obsolete GOST hash function defined in the old standard GOST R 34.11-94, and as an asymmetric reply to SHA-3 competition by the US National Institute of Standards and Technology. The function is also described in RFC 6986 and one out of hash functions in ISO/IEC 10118-3:2018.
In cryptography, security level is a measure of the strength that a cryptographic primitive — such as a cipher or hash function — achieves. Security level is usually expressed as a number of "bits of security", where n-bit security means that the attacker would have to perform 2n operations to break it, but other methods have been proposed that more closely model the costs for an attacker. This allows for convenient comparison between algorithms and is useful when combining multiple primitives in a hybrid cryptosystem, so there is no clear weakest link. For example, AES-128 is designed to offer a 128-bit security level, which is considered roughly equivalent to a RSA using 3072-bit key.
Dmitry Khovratovich is a Russian cryptographer, currently a Lead Cryptographer for the Dusk Network, researcher for the Ethereum Foundation, and member of the International Association for Cryptologic Research.