如果答案为否,那么SHA- 1被视为损坏?
#1 楼
如果发生的攻击速度快于暴力破解/我们期望的理想原始攻击速度,我们称之为原始攻击。损坏并不意味着存在实际的攻击。<br />即使在SHA-1中没有已知的冲突,我们仍然称其为SHA-1的抗碰撞性,因为存在一种理论上的攻击使用少于$ 2 ^ {80} $的SHA-1调用发生冲突。
特别是$ n $位哈希函数至少应具有以下属性:
$ 2 ^ n $映像前阻力(第一和第二个映像前)
通用攻击只是尝试输入,直到适合散列为止
$ 2 ^ {n / 2} $碰撞阻力
通用攻击是生成输入,并将它们的哈希值相互比较。生日问题告诉您,一旦您有大约$ 2 ^ {n / 2} $个不同的值,它们中的两个可能会相同。在SHA-1的情况下,发现冲突大约需要$ 2 ^ {80} $个操作。
函数被破坏通常仅意味着我们应该开始迁移至其他更强大的函数,而不是还有实际的危险。攻击只会变得更强大,因此,当第一个裂缝开始出现时,最好考虑选择替代方案。
评论
$ \ begingroup $
数字$ 2 ^ {80} $有什么特别之处?
$ \ endgroup $
–安德鲁·托马佐斯(Andrew Tomazos)
2012年8月30日在22:49
$ \ begingroup $
@Andrew Tomazos-Fathomling:使用“生日悖论”,对长度为160位(如SHA-1)的任何哈希进行$ 2 ^ {80} $运算的暴力攻击。快一点就是休息。
$ \ endgroup $
– maaartinus
2012年8月30日在22:57
$ \ begingroup $
@fgrieu我认为人们很少关心的原因是因为它是针对该模式的通用攻击,大多数当前(SHA-3之前的)哈希都使用该模式。如果对具有类似强度的压缩函数进行攻击,则会对哈希的声誉造成更大的损害。当然,攻击者需要调用的压缩函数的数量仍在$ 2 ^ n $左右。 [btw $ 2 ^ k $是块数,而不是k]
$ \ endgroup $
– CodesInChaos
2012年8月31日9:20
$ \ begingroup $
@CodeInChaos:我同意你的想法。感谢所做的修正,我希望我可以编辑:这种攻击只是将我们期望的图像前抗性水平从这些散列值从$ 2 ^ n $更改为$ \ min(2 ^ n,2 ^ {n + 1 } / K)$,其中K是消息中允许的块数。
$ \ endgroup $
–fgrieu♦
2012年9月1日12:50
$ \ begingroup $
可能没有已知的冲突,但是现在有freestart冲突:sites.google.com/site/itstheshappening
$ \ endgroup $
–威尔·萨金特(Will Sargent)
2015年10月8日在16:20
#2 楼
是的,由于已发现SHA-1冲突,因此认为它已损坏。 2017年2月23日,Google宣布了首次使用SHAttered攻击的SHA-1公共碰撞(比蛮力攻击快100k)。在两个不同的PDF文件上演示了碰撞。因此,它被认为是损坏的。另请参见:
宣布第一次SHA1碰撞
shattered.io-我们在实践中已经破坏了SHA-1(请参阅:PDF)
Wikipedia的SHA-1(首次公开碰撞)
SHAppening:SHA-1的自由启动碰撞
对SHA-1“粉碎”的新攻击是什么?它如何工作?
评论
我们终于在SHA-1中发生了实际碰撞shatter.io问题的链接“ Shattered”实际上是否显示SHA-1签名的证书“不安全”?