SHA256安全:攻击破“60轮SHA256中的46轮”是什么意思?

信息安全 sha256
2021-08-17 23:38:17

维基百科报道

目前,最好的公开攻击打破了 64 轮 SHA-256 中的 46 轮或 80 轮 SHA-512 中的 46 轮。

这意味着什么,以及 SHA-256 在可想象的未来的安全性如何?对于外行来说,64 个中有 46 个可能听起来像是“72% 坏了”。由于比特币依赖于 SHA-256,它仍然可能保持安全吗?

2个回答

许多密码算法(散列函数,对称加密......)被组织为一系列“轮”,它们或多或少彼此相似。经验表明,对于给定的算法结构,通常,更多轮次意味着更高的安全性;准确地说,某些类型的攻击(例如差分线性密码分析)发现它们的效率或多或少地随着轮数呈指数下降。

当密码学家不知道如何破解一个完整的算法时,他们会尝试破解同一算法的简化版本,删除一些特征;对于有轮次的算法,尤其是更少的轮次。当 SHA-256 被称为“最多 46 轮”被破坏时,这意味着可以攻击另一个通过采用 SHA-256 但删除最后 18 轮获得的哈希函数(至少以“学术方式”:攻击不需要是现实的,它只需要比攻击完整功能更不可能);但是仅删除最后 17 轮会产生一个功能,据我们所知,它与完整的功能一样好。如果被攻击的最大轮数大大低于完整算法中的实际轮数,密码学家会感到更安全。

由于攻击效率行为倾向于在轮数上呈指数,而不是线性,因此不能(也不能)将其翻译为,甚至直观地说:“可以破坏 80% 的回合 -> 算法在 80% 处被破坏”。打个比方:假设你想增加你的财富,把它翻十倍。你从一美元开始;十倍后,你将有 1024 美元;那是你的目标。八倍,你有 256 美元。十次加倍八次:这是 80% 的工作,对吗?那你怎么只有 256 美元,而不是 1024 美元的 80%(也就是 819.2 美元)?

总而言之,您不应该尝试过多地阅读这些断言。它们是科学家感兴趣的科学结果,但很容易被过度解释。

首先,解决“72%”部分:

不。它们或多或少处于同一级别的安全性。

让我们看一下页面上的另一个报价

有两次针对 SHA-2 的中间相遇原像攻击,轮数减少。第一个攻击 64 轮中的 41 轮 SHA-256,时间复杂度为 2 253.5,空间复杂度为 2 16,以及 80 轮中的 46 轮 SHA-512,时间为 2 511.5,空间为 2 3第二个攻击时间复杂度为 2 251.7和空间复杂度为 2 12的 42 轮 SHA-256,以及时间为 2 502和空间为 2 22的 42 轮 SHA-512 。

SHA- 256正常破解的时间复杂度为2256。将其减少到 2 253.5的差异可以忽略不计,而且破解 SHA 可能需要几个世纪的时间才能实现。


关于“回合”:

SHA-256 和 SHA-512 基本上是一个特定的函数(两种算法具有不同的常数),一遍又一遍地应用于一个数字。每次你应用它,它被称为“一轮”。这些研究人员所做的似乎是将 SHA 算法减少了几轮,然后破解了它