Message-Digest Algorithm 2
MD2 | |
---|---|
developer | Ronald L. Rivest |
Released | 1989 |
Length of the hash value (bit) | 128 |
construction | Merkle Damgård construction with checksum |
Round | 18th |
Best known cryptanalysis | |
Preimage attack with complexity , collision attack with complexity |
Message-Digest Algorithm 2 (MD2) is a hash function published by Ronald L. Rivest in 1988 . The algorithm was optimized for 8- bit computers. The hash value of any message is formed by first bringing the message to a multiple of the block length (128 bits or 16 bytes ) and then appending a checksum of 16 bytes in length. For the actual calculation, an auxiliary block with 48 bytes and a 256-byte long substitution table, which was permuted depending on the number π , are used. The substitution table causes a "random" and non-linear substitution operation within the algorithm.
After all blocks of the (extended) message have been processed, the first sub-block of the auxiliary block forms the hash value of the message.
MD2 hashes
The 128-bit long MD2 hashes (also known as "message digests") are usually noted as 32-digit hexadecimal numbers. The following example shows a 59 byte long ASCII input and the associated MD2 hash:
md2("Franz jagt im komplett verwahrlosten Taxi quer durch Bayern") = 8415570a6653a06314f09b023612a92d
A small change in the message produces (with a very high probability) a completely different hash. With Frank instead of Franz the result is:
md2("Frank jagt im komplett verwahrlosten Taxi quer durch Bayern") = b0e27e91b84246bc4c38bc3008f00374
The hash of a zero-length string is:
md2("") = 8350e5a3e24c153df2275c9f80692773
Individual evidence
- ^ A b Lars R. Knudsen, John Erik Mathiassen, Frédéric Muller, Søren S. Thomsen: Cryptanalysis of MD2 . In: Journal of Cryptology . tape 23 , no. 1 . Springer, 2010, p. 72-90 , doi : 10.1007 / s00145-009-9054-1 .
Web links
- Message digest algorithm; B. Kaliski, April 1992
- Privacy Enhancement for Internet Electronic Mail: Part III - Algorithms, Modes, and Identifiers, Section 4.2; John Linn, August 1989 with source code by Ronald L. Rivest October 1, 1988