1. Executive Summary (执行摘要)
本文档描述了 MD5 消息摘要算法 (Message-Digest Algorithm, MD5). 该算法以任意长度的消息作为输入, 并产生一个 128 位的"指纹 (fingerprint)"或"消息摘要 (message digest)"作为输出. 据推测, 在计算上不可能产生两个具有相同消息摘要的消息, 也不可能产生任何具有给定预先指定目标消息摘要的消息. MD5 算法旨在用于数字签名 (digital signature) 应用, 其中大型文件必须在使用公钥密码系统 (public-key cryptosystem, 如 RSA) 的私钥 (secret key) 加密之前以安全方式"压缩".
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 类型.