This is an old revision of this page, as edited by 2601:3c1:4100:36f0:c983:f7bb:1e32:c0e5 (talk) at 03:32, 20 September 2021 (Typos). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Revision as of 03:32, 20 September 2021 by 2601:3c1:4100:36f0:c983:f7bb:1e32:c0e5 (talk) (Typos)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff){{Infobox cryptographic hash function | name = MD4 | image = | caption = | designers = Ronald Rivest | publish date = October 1990 | series = MD2, MD4, MD5, MD6 | derived from = | derived to = | related to = | certification = | digest size = 128 bits | block size = 512 bits | structure = | rounds = 3 | cryptanalysis = A collision attack published in 2007 can find collisions
Security
Weaknesses in MD4 were demonstrated by Den Boer and Bosselaers in a paper published in 1991. The first full-round MD4 collision attack was found by Hans Dobbertin in 1995, which took only seconds to carry out at that time. In August 2004, Wang et al. found a very efficient collision attack, alongside attacks on later hash function designs in the MD4/MD5/SHA-1/RIPEMD family. This result was improved later by Sasaki et al., and generating a collision is now as cheap as verifying it (a few microseconds).
In 2008, the preimage resistance of MD4 was also broken by Gaëtan Leurent, with a 2 attack. In 2010 Guo et al published a 2 attack.
In 2011, RFC 6150 stated that RFC 1320 (MD4) is historic (obsolete).
MD4 hashes
The 128-bit (16-byte) MD4 hashes (also termed message digests) are typically represented as 32-digit hexadecimal numbers. The following demonstrates a 43-byte ASCII input and the corresponding MD4 hash:
MD4("The quick brown fox jumps over the lazy dog") = 1bee69a46ba811185c194762abaeae90
Even a small change in the message will (with overwhelming probability) result in a completely different hash, e.g. changing d
to c
:
MD4("The quick brown fox jumps over the lazy cog") = b86e130ce7028da59e672d56ad0113df
The hash of the zero-length string is:
MD4("") = 31d6cfe0d16ae931b73c59d7e0c089c0
MD4 test vectors
The following test vectors are defined in RFC 1320 (The MD4 Message-Digest Algorithm)
MD4 ("") = 31d6cfe0d16ae931b73c59d7e0c089c0 MD4 ("a") = bde52cb31de33e46245e05fbdbd6fb24 MD4 ("abc") = a448017aaf21d8525fc10ae87aa6729d MD4 ("message digest") = d9130a8164549fe818874806e1c7014b MD4 ("abcdefghijklmnopqrstuvwxyz") = d79e1c308aa5bbcdeea8ed63df412da9 MD4 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = 043f8582f241db351ce627e153e7f0e4 MD4 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = e33b4ddc9c38f2199c3e7b164fcc0536
MD4 collision example
Let:
k1 = 839c7a4d7a92cb5678a5d5b9eea5a7573c8a74deb366c3dc20a083b69f5d2a3bb3719dc69891e9f95e809fd7e8b23ba6318edd45e51fe39708bf9427e9c3e8b9 k2 = 839c7a4d7a92cbd678a5d529eea5a7573c8a74deb366c3dc20a083b69f5d2a3bb3719dc69891e9f95e809fd7e8b23ba6318edc45e51fe39708bf9427e9c3e8b9
k1 ≠ k2, but MD4(k1) = MD4(k2) = 4d7e6a1defa93d2dde05b45d864c429b
Note that two hex-digits of k1 and k2 define one byte of the input string, whose length is 64 bytes .
See also
References
- Bert den Boer, Antoon Bosselaers: An Attack on the Last Two Rounds of MD4. Crypto 1991: 194–203
- Hans Dobbertin: Cryptanalysis of MD4. Fast Software Encryption 1996: 53–69
- Hans Dobbertin, 1998. Cryptanalysis of MD4. J. Cryptology 11(4): 253–271
- Xiaoyun Wang, Xuejia Lai, Dengguo Feng, Hui Chen, Xiuyuan Yu: Cryptanalysis of the Hash Functions MD4 and RIPEMD. Eurocrypt 2005: 1–18
- Yu Sasaki, Lei Wang, Kazuo Ohta, Noboru Kunihiro: New Message Difference for MD4. Fast Software Encryption 2007: 329–348
- "The MD4 Message Digest Algorithm". Network Working Group. October 1990. Retrieved 2011-04-29.
- Bert den Boer, Antoon Bosselaers (1991). "An Attack on the Last Two Rounds of MD4" (PDF). Archived from the original (PDF) on 2003-05-23.
{{cite journal}}
: Cite journal requires|journal=
(help) - Hans Dobbertin (1995-10-23). "Cryptanalysis of MD4". Journal of Cryptology. 11 (4): 253–271. doi:10.1007/s001459900047. S2CID 7462235.
- Cite error: The named reference
sasaki-2007
was invoked but never defined (see the help page). - Gaëtan Leurent (2008-02-10). "MD4 is Not One-Way" (PDF). FSE 2008.
{{cite journal}}
: Cite journal requires|journal=
(help) - https://www.academia.edu/20987202/Advanced_Meet-in-the-Middle_Preimage_Attacks_First_Results_on_Full_Tiger_and_Improved_Results_on_MD4_and_SHA-2
External links
- RFC 1320 - Description of MD4 by Ron Rivest
- RFC 6150 - MD4 to Historic Status
- Rivest, Ronald (1991). "The MD4 Message Digest Algorithm". Lecture Notes in Computer Science. Vol. 537. Springer Berlin / Heidelberg. pp. 303–311. doi:10.1007/3-540-38424-3_22. ISBN 978-3-540-54508-8.
{{cite book}}
:|journal=
ignored (help); Missing or empty|title=
(help)
Collision attacks
- An Attack on the Last Two Rounds of MD4
- Improved Collision Attack on MD4
- Bishop Fox (formerly Stach & Liu) Fast MD4 Collision Generator