为什么 SHA-1 被认为不安全?

Y M*_*Y M 3 hash cryptography

由于研究人员发现的缺陷,微软、谷歌和 Mozilla 在 2017 年决定不接受它。我看到 SHA-1 几乎在所有地方都在贬值,仅仅是因为人们认为它不再安全了。但与 MD5 不同的是,目前 SHA-1 上没有发现已知的冲突。而且即使是最快的 SHA-1 碰撞算法仍然需要近 2^60 次评估,这仍然是一个非常大的数字。

我的问题是,为什么 SHA-1 这种尚未发现任何冲突且仍需要大量时间才能发现冲突的哈希算法会被贬值?我知道 SHA-2 更安全,但它也比 SHA-1 慢,为什么大多数人建议用性能来换取所谓的“安全性”,而 SHA-1 的安全性在大多数情况下甚至不是问题?

小智 5

SHA-1 由于碰撞攻击而较弱:

https://en.wikipedia.org/wiki/SHA-1#Attacks

尹在接受采访时表示,“大致来说,我们利用了以下两个弱点:一是文件预处理步骤不够复杂;二是前 20 轮中的某些数学运算存在意外的安全问题。”


https://www.schneier.com/blog/archives/2005/02/sha1_broken.html

完整 SHA-1 中 2^69 次哈希运算的碰撞次数,远少于基于哈希长度的 2^80 次运算的暴力攻击。

2^39 次操作中 SHA-0 的冲突。

2^33 次操作中 58 轮 SHA-1 的冲突。

对 SHA-1 的压缩函数存在碰撞攻击,仅需要 2^57 SHA-1 评估