谷歌和一些研究人员最近对SHA-1进行了新的命名为“ SHAttered”的攻击。我了解它使用了一些新颖的技术,但没有使用细节。

我的问题是:如何?

攻击如何起作用(高水平)?

注意:牵连的问题已经由另一个问题处理,因此请不要专注于它。

评论

他们在通报中说,他们将在90天内发布代码。不确定为什么要投票,问题在我看来是合法的。

@ paj28学术论文已经在线上(PDF)。

SEPAM提到@ paj28,因为论文已经在线。实际上,您甚至可以使用alf.nu/SHA1
制作pdf文件以产生冲突

#1 楼

为了使用生日悖论在$ n $位的随机Oracle上发生冲突,需要进行$ \ sqrt {\ pi / 2} \ cdot 2 ^ {n / 2} $调用。换句话说,对于SHA-1的160个输出位,限制为$ 2 ^ {160/2} = 2 ^ {80} $。

先前的攻击

SHA-1(以及损坏的SHA-0)在过去几年中受到以下攻击:



SHA-中的不同碰撞Chabaud F.的0,Joux A.在$ 0 $ 2 ^ {61} $的呼叫中在SHA-0中发生了冲突。

Biham E.,Chen R.在SHA-0的SHA-0中接近碰撞<在CRYPTO 2004 br />
2005年EUROCRYPT上的Biham E.,Chen R.,Joux A.,Carribault P.,Lemuet C.,Jalby W.碰撞了SHA-0和Round并减少了SHA-1。

Wang等人在Full SHA-1中寻找碰撞。在CRYPTO 2005上

Pierre Karpman,Thomas Peyrin和Marc Stevens在CRYPTO 2015上对76步SHA-1进行了实用的自由启动碰撞攻击

SHA-上的新碰撞攻击1基于Stevens M.在EUROCRYPT 2013上的最佳联合局部碰撞分析。

第四篇论文提出了$ 2 ^ {69} $的攻击,显示了SHA-1的弱点。第六篇论文将是SHAFTED攻击的基础。

这些攻击的主要思想是基于差分密码分析。
您有两个输入$ t_0 $和$ t'_0 $,其中相差$ \ Delta_0 $。一旦这两个输入通过函数$ f $(在SHA-1情况下为压缩函数),您将得到差值$ \ Delta_1 $,依此类推(参见下图)...



这里的目标是找到输入$ \ Delta_0 $的差异,以便在某些迭代后得到$ \ Delta_2 = 0 $,换句话说,没有区别。

破碎的攻击

由于SHA-1的Merkle–Damgård结构,人们可以选择更改迭代之间的差异,以改善差异以满足其需求。在“破碎攻击”的情况下,他们选择了一个初始前缀($ P $),然后在下一个块中引入了一个差异($ M ^ {((1)} _ 1 $,$ M ^ {(2)} _ 1 $)并将其删除($ M ^ {((1)} _ 2 $和$ M ^ {(2)} _ 2 $))。此时,他们已经发生了碰撞。他们只需要继续执行以下相同的块($ S $),导致整个输入发生冲突。



$ \ mathrm {SHA-1} (P || M ^ {(1)} _ 1 \ mathbin \ Vert M ^ {((1)} _ 2 \ mathbin \ Vert S)= \ mathrm {SHA-1}(P || M ^ {(2)} _ 1 \ mathbin \ Vert M ^ {((2)} _ 2 \ mathbin \ Vert S)$

$ M ^ {(1)} _ 1 $,$ M ^ {(2)} _ 1的值$,$ M ^ {(1)} _ 2 $和$ M ^ {(2)} _ 2 $如下:



因此难点在于正确的$ M_i $满足所选的前缀条件$ P $,然后可以很好地取消自身。发生这种错误的可能性很小,因此需要大量调用SHA-1压缩函数($ 2 ^ {63.1} $)。

对于提供的PDF,它们还提供了一个很好的信息图,说明了差异在PDF中的位置:



#2 楼

基于与Marc Stevens早期对SHA-1的攻击相同的原理,这是对SHA-1的大约1 $ 2 ^ {64} $时间的相同前缀冲突攻击。这是对SHA-1完整功能的第一次实际碰撞攻击,因此即使SHA-1已知已被打破多年,这显然也是一项了不起的成就。

攻击本身可以分为两部分进行部分,生成两对不同的块,通过相互抵消,将给定消息前缀带到相同的SHA-1状态。 (最困难的部分显然是在异构CPU + GPU架构上有效地实现这一点。)

作为相同前缀的冲突攻击,它允许您创建以相同的预定前缀开头的两条消息,然后是攻击会发现“随机”部分,然后选择任意数量的相同数据。虽然它的功能不如MD5已知的选定前缀攻击(这些攻击允许任意选择前缀)强大并且花费很多,但它肯定可以肯定SHA-1已被破坏。


1实际费用取决于您是否对所需的通话次数,总通话时间或理论预期时间感兴趣。