MD5, Message-Digest Algorithm

Description Glossary RFCs Publications Obsolete RFCs

Description:

Type:Hashing algorithm.
Output:128 bit message digest.
URI:
URN:
MIME subtype:
SNMP MIBs:
Working groups:
Links:

RFC 1321:

The algorithm takes as input a message of arbitrary length and produces as output a 128-bit "fingerprint" or "message digest" of the input. It is conjectured that it is computationally infeasible to produce two messages having the same message digest, or to produce any message having a given prespecified target message digest. The MD5 algorithm is intended for digital signature applications, where a large file must be "compressed" in a secure manner before being encrypted with a private (secret) key under a public-key cryptosystem such as RSA.

The MD5 algorithm is an extension of the MD4 message-digest algorithm. MD5 is slightly slower than MD4, but is more "conservative" in design. MD5 was designed because it was felt that MD4 was perhaps being adopted for use more quickly than justified by the existing critical review; because MD4 was designed to be exceptionally fast, it is "at the edge" in terms of risking successful cryptanalytic attack. MD5 backs off a bit, giving up a little in speed for a much greater likelihood of ultimate security. It incorporates some suggestions made by various reviewers, and contains additional optimizations.

RFC 1810:

The MD5 algorithm is a block-chained hashing algorithm. The first block is hashed with an initial seed, resulting in a hash. The hash is summed with the seed, and that result becomes the seed for the next block. When the last block is computed, it's "next-seed' value becomes the hash for the entire stream. Thus, the seed for block depends on both the hash and the seed of its preceding block. As a result, blocks cannot be hashed in parallel.


Glossary:

DSA, Digital Signature Application.
(RFC 1321) Digital signature application, is where a large file must be "compressed" in a secure manner before being encrypted with a private (secret) key under a public-key cryptosystem.

Key.
(RFC 1828) The secret authentication key shared between the communicating parties SHOULD be a cryptographically strong random number, not a guessable string of any sort.

Message digest.
(RFC 1321) The message-digest algorithm takes as input a message of arbitrary length and produces as output a 128-bit "fingerprint" or "message digest" of the input. It is conjectured that it is computationally infeasible to produce two messages having the same message digest, or to produce any message having a given prespecified target message digest.


RFCs:

[RFC 1321] The MD5 Message-Digest Algorithm.

[RFC 1810] Report on MD5 Performance.

[RFC 1828] IP Authentication using Keyed MD5.

[RFC 2082] RIP-2 MD5 Authentication.

[RFC 2085] HMAC-MD5 IP Authentication with Replay Prevention.

[RFC 2202] Test Cases for HMAC-MD5 and HMAC-SHA-1.


Publications:


Obsolete RFCs:


Description Glossary RFCs Publications Obsolete RFCs