这个问题与此类似,但只提到了MD5碰撞演示.
到目前为止,是否已知任何实际的SHA1冲突对任意消息?
我想用这些来测试各种软件产品(我自己的和第三方)如何处理它.
进行一些谷歌搜索只发现了如此突出的MD5/SHA0碰撞和一些创建SHA1碰撞的方法的提示,但我无法得到任何例子.
截至2017年2月23日,此答案已不再准确.六年多来,支撑互联网安全的SHA1加密哈希函数一直处于死亡之门.现在它正式死了,这要归功于第一个已知的致命漏洞被称为"碰撞"的实例.
SHA-1还没有已知的冲突.马上:
减少版本的SHA-1 存在一些冲突,少于标准SHA-1的80轮.
已经描述了一种算法,该算法应该获得SHA-1冲突,其计算工作量大致相当于对小消息的SHA-1的2 63次调用; 这比通用算法(平均需要2 80次调用)要好得多,但仍然很大,而且算法尚未运行.
有人试图通过利用拥有一些备用CPU时钟周期捐赠的电力来获得SHA-1冲突,BOINC框架可以组织整个事情,但是没有足够的志愿者并且去年放弃了努力.因此还没有实际的SHA-1碰撞.
理论上的攻击依赖于某些假设,这些假设可能被证明是轻微的错误; 例如,对MD5的攻击实际上比预期的要快一些(在某些时候,必须满足一个属性,理论概率为2 -28,但实际上它更像是2 -27.7,即攻击比预测的快20%).仍然认为理论攻击是正确的,复杂性"相当准确".
Google的安全博客在此处描述了第一次公开的,有意的SHA-1冲突: https ://security.googleblog.com/2017/02/announcing-first-sha1-collision.html
直接链接到具有相同SHA-1的2个PDF(来自专用于此发现的站点):
https://shattered.it/static/shattered-1.pdf
https://shattered.it/static/shattered-2.pdf
同样,Marc Stevens与CWI阿姆斯特丹和一些Google员工一起参与,但这次是关于两个构建的PDF的全面SHA-1.
史蒂文斯还指出,由于SHA-1的Merkle-Damgård结构,两个PDF文件都可以扩展(附加)相同的任意数据,以生成更长版本的同一摘要.
从现在起(2017年2月23日),Google显然会在90天后发布附带的源代码,让受影响的系统供应商有时间更新他们的内容.
Git和GitHub等服务提供商之类的软件如何处理这一点仍有待观察,特别是在向后兼容性方面.
Linus Torvalds 发表了关于git的声明,并指出他们将以兼容的方式迁移到更新的哈希,但这需要时间.
顺便说一句,"破碎"的碰撞演示不会影响git(没有修改),因为它使用SHA-1,如下所示:
sha1("blob " ++ "\0" + )
git hash-object
即使文件不在git中,您也可以使用git哈希.
在相关新闻中,Subversion似乎是这个证明的第一个真正的受害者,导致存储库损坏,从而使所提到的文件成为实用的漏洞.
- 以前...... -
一个76轮碰撞被发现马克·史蒂文斯.
BLAKE和SipHash的联合创始人兼密码哈希竞赛(PHC)的发起人密码学家 Jean-Philippe Aumasson 猜测,到2020年将发现全部80轮的SHA-1碰撞.
根据Marc Stevens等人正在进行的研究.2015年10月出版,
...我们估计今天(即2015年秋季)的SHA-1碰撞成本将在几个月内租用亚马逊EC2云计算75K $和120K $之间 .相比之下,安全专家Bruce Schneier此前预计到2018年SHA-1碰撞成本将达到约173K美元.
他们还描述了SHA-1压缩功能的碰撞攻击.
第一个已知的碰撞现已发布在https://shattered.it/