跳到主要内容
ecdsa.com

MD5

Ron Rivest 于1991年设计的 128 位哈希函数(RFC 1321),自2004年起已能找到碰撞,自2007年起已能构造选择前缀碰撞;凡是攻击者能够影响输入的安全用途,它都不安全。
其他写法MD5 hashmd5sumRFC 1321

2004年,王小云及其同事公布了首批 MD5 碰撞;2007年,Stevens、Lenstra 和 de Weger 使选择前缀碰撞变得切实可行;2008年,一个团队利用这种碰撞,从一家仍在用 MD5 签名的商业 CA 那里获得了一张伪造的中间 CA 证书。Flame 恶意软件(2012年)利用 MD5 选择前缀碰撞伪造了一张 Microsoft 代码签名证书。如今在笔记本电脑上几秒钟就能找到碰撞。

RFC 6151(2011年)规定,在需要抗碰撞性的场合不得使用 MD5;RFC 9155 从 TLS 1.2 中移除了 MD5 签名。HMAC-MD5 以及在非对抗场景中把 MD5 用作校验和(检测意外损坏、用作缓存键)并没有以同样的方式被攻破,但新设计没有理由选择 MD5,因为在现代 CPU 上 SHA-256 往往更快(在 Apple M4 Max 的单个核心上,OpenSSL 3.6.5 计算 MD5 的速度约为 0.86 GB/s,SHA-256 为 2.85 GB/s)。

标准与参考资料

全部术语