在从 hash 函数到王小云的 MD5 破解我们介绍了 hash 函数的一些基本概念和 MD5 碰撞的一个「应用」,最近在这个问题上又有了新的进展。
Marc Stevens, Arjen Lenstra 和 Benne de Weger 在这篇论文里给出了寻找 Chosen-prefix 碰撞的有效方法,这种碰撞指对任意给定的 A, B ,找到 x, y ,使得 MD5(Ax) = MD5(By),即可以找到碰撞,使得以任意两个字符串开头。
作者给出了两个非常有意思的应用,一个是预测 2008 年美国大选结果。其实是建立了 12 个 PDF 文档,它们的 MD5 完全相同,但显示内容却互不相同。这种效果在从 hash 函数到王小云的 MD5 破解已经讨论并实现了。
另一个就是给出了两个具有同样 MD5 的可执行文件。以后下载文件的时候即使有 MD5 验证也不一定是安全的了。
在这个结果之前,还有一个有意思的应用,[1]和[2]这两个网页具有相同的 MD5 值,但显示内容截然不同。想知道怎么实现的看看它们的源代码即可。
Q. E. D.