MD5 碰撞的新玩意儿

作者: , 共 466 字 , 共阅读 0

从 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.

类似文章:
密码学是理论计算机的一个很大的方向。之前准备先写密码学概论再提在 hash 函数破解上做出重大贡献的王小云教授的工作,不过前两天新闻报道《王小云获得求是杰出科学家奖以及 100 万奖金》,在媒体上又掀起了一轮宣传狂潮,但是有些报道极端弱智,错误百出,所以我趁机纠正一下,并介绍密码学的一个组成部分——hash 函数,以及王小云老师在这上面的工作。
比特币协议里使用了 ECDSA (椭圆曲线签名算法),我之前以为它和基于大数分解的 RSA 公钥密码体系差不多。这两天看了下维基百科,才发现它们之间的差异挺大。
IT » 比特币
上篇大致描述了 bitcoin 的技术原理,只想说明一件事情: bitcoin 的协议是可靠的,它保证了 bitcoin 虚拟货币的信用问题,别人不会偷走我的 bitcoin ,我拿到的 bitcoin 也是真实可靠的。使用 bitcoin 交易有很多好处,可以轻易列出一大堆:
英文是 communication complexity ,不知道该翻译成通信复杂性,还是通讯复杂性呢。这里先用通讯复杂性吧。这是一个理论计算机的子领域,在过去 30 年衍生了很多东西。它是我的研究的主要内容,这里简略介绍一下。
我所学的专业英文名是 Theoretical Computer Science ,理论计算机科学,在这里我就简化成理论计算机了。具体研究些什么呢,下面是Andrew Yao的研究方向
IT » 比特币
最近 bitcoin 很火,我也是最先从云风那里了解到的,后来发现李笑来&霍炬对其都有涉及。不过他们对其具体技术原理的描述还是不够细致,所以我自己把bitcoin wiki又重新看了一遍。 看完之后,疑惑挺多,我对这个体系远没有前面三位这么乐观。诚然,它会成为"Geeks "手中的玩物甚至灰色交易的工具,但要说的达到「一出天下反」的程度,那还需要解决一些技术和金融方面的问题。
上篇文章已经提到, P vs NP 是理论计算机科学的核心问题。从数学的角度来说,它和其他历史上有名的数学问题一样,给与人们一个智力上重大的挑战。而更为重要的是,在无数与计算有关的的学术领域中, NP-完全问题以各种不同形式层出不穷。因此,这并不是一个纯粹的与世独立的智力游戏,而是对计算机科学有全面影响力的问题。
IT » 比特币, 数字货币
最近看到一篇文章Satoshi』s Genius: Unexpected Ways in which Bitcoin Dodged Some Cryptographic Bullets,国内有人翻译过(中本聪的天才:比特币以意想不到的方式躲开了一些密码学子弹)。里面说的第一个就是天才的中本聪并不是将公钥而是将公钥两次 HASH 之后作为比特币账户的地址,这可以让比特币系统抵抗量子计算机的攻击。
前一篇:
很多人一看到 NP-hard ,就从字面上理解成为比 NP 还难的问题。但如果这里的「更难」指得是解决问题所花费时间更长的话,这个论断是不正确的。从算法角度来看, NP-hard 问题的确比 NP 难,但比 NP 还难(指花费时间更多)的问题却不见得是 NP-hard 的。
后一篇:
最近常看到官方的报导说今年的物价上涨属于结构性上涨,但一直没太明白这个结构性上涨是什么意思,上网看了一下,没找到什么特别权威的资料,大致有两种说法。