6

显然,由于 SHA-1 散列每次产生 40 个字符,因此可能的散列数量是有限的——有人知道确切的数量吗?

4

3 回答 3

14

SHA-1 哈希有 160 位,因此有 2 160位。
(2 160 = 1461501637330902918203684832716283019655932542976 ~= 1.46 x 10 48

请注意,由于您的消息空间比可能的哈希值大得多,因此必然会发生冲突。

另请注意,碰撞的可能性比您想象的要高得多。由于生日悖论,仅 2 80条消息发生冲突的概率为 50% 。(即:只有 23 个人,2 个人生日相同的概率为 50%)。

于 2011-09-10T16:01:13.790 回答
10

SHA-1 产生 160 位的输出,它应该能够产生几乎任何 160 位的序列。有 2 160个这样的序列,即接近 14610 亿 10 亿 10 10 亿 。这有点大。

但是,我们没有证据表明它们中的每一个都是可以访问的。如果可能的输出数量显着低于 2 160 ,则对 SHA-1 安全性不利;例如,如果只有 1/4 可以到达(2 158),则针对原像攻击的安全性将除以 4,针对碰撞的安全性将减半。目前尚不知道 SHA-1 存在此类问题(在抗碰撞方面,SHA-1 存在已知的弱点,但不是那个

有可能(但至少有点令人惊讶)无法达到几个 160 位输出。预计这将是不可知的。在某种程度上,能够证明SHA-1 可能的输出覆盖整个 160 位空间会令人担忧:这样的证明需要对 SHA-1 的数学结构和 SHA-1 的安全性进行大量分析。 1 在很大程度上依赖于这种难以处理的分析。

于 2011-09-11T15:16:23.740 回答
0

SHA-1 由 5 个 32 位整数组成。

那是 4294967296^5 或 2^160

或 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 种可能性

把它放在眼里

可能的 SHA-1 总值:1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 地球上的水总加仑数:365,904,000,000,000,000,000

这包括每一个海洋、海洋、湖泊等 -来源

在这一点上,碰撞的可能性只是理论上的。仍在等待听到一个。

于 2014-02-12T08:21:09.210 回答