1. Executive Summary (执行摘要)
本文档描述了 MD5 消息摘要算法 (Message-Digest Algorithm)。该算法接受任意长度的消息作为输入,并产生一个 128 位的"指纹"或"消息摘要"作为输出。据推测,在计算上不可能产生两个具有相同消息摘要的消息,或者产生具有给定预先指定目标消息摘要的任何消息。MD5 算法旨在用于数字签名应用,在这种应用中,大文件必须在使用公钥密码系统(如 RSA)的私有(秘密)密钥加密之前以安全的方式进行"压缩"。
MD5 算法被设计为在 32 位机器上相当快速。此外,MD5 算法不需要任何大型替换表,该算法可以编码得相当紧凑。
MD5 算法是 MD4 消息摘要算法 [1,2] 的扩展。MD5 比 MD4 稍慢,但在设计上更加"保守"。设计 MD5 是因为人们认为 MD4 的采用速度可能超过了现有关键审查所证明的合理速度,由于 MD4 被设计为异常快速,因此在面临成功的密码分析攻击风险方面处于"边缘"。MD5 稍微退后一步,在速度上做出一点牺牲,以换取更大的最终安全性可能性。它融合了各种审查者提出的一些建议,并包含额外的优化。MD5 算法被置于公共领域以供审查和可能作为标准采用。
对于基于 OSI 的应用,MD5 的对象标识符 (Object Identifier) 为:
md5 OBJECT IDENTIFIER ::=
iso(1) member-body(2) US(840) rsadsi(113549) digestAlgorithm(2) 5}
在 X.509 类型 AlgorithmIdentifier [3] 中,MD5 的参数应该具有 NULL 类型。