显然,由于SHA-1散列每次出现有限数量的可能哈希值时会产生40个字符 - 有没有人确切知道有多少哈希?
答案 0 :(得分:13)
SHA-1哈希值为160位,因此2 160 (2 160 = 1461501637330902918203684832716283019655932542976~ = 1.46 x 10 48 )
请注意,由于消息空间比可能的哈希值大得多,因此必然会发生冲突。
另请注意,碰撞的概率远高于您的想象。由于Birthday paradox,在2 80 消息中,碰撞的概率为50%。 (即:只有23个人,2个人生日相同的概率为50%)。
答案 1 :(得分:9)
SHA-1产生160位输出,应能够产生几乎任何160位的序列,有2个 160 这样的序列,即关闭达到1461亿,数十亿甚至数十亿。那有点大。
然而我们没有证据证明每一个都可以访问。如果可能的输出数量明显低于2 160 ,那么SHA-1安全性就不好了;例如,如果只有1/4可以到达(2 158 ),那么针对原像攻击的安全性将被除以4,并且对冲突的安全性将减半。 SHA-1目前还没有这样的问题(当涉及到碰撞的阻力时, 已知
有可能(但至少有点令人惊讶)无法达到几个160位的输出。预计这将保持不可知。在某种程度上,能够证明 SHA-1可能的输出覆盖整个160位空间将是令人担忧的:这样的证据需要对SHA-1的数学结构进行大量分析SHA-1的安全性很大程度上依赖于这种分析难以处理的问题。
答案 2 :(得分: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
包括每个海洋,海洋,湖泊等 - source
碰撞的可能性在这一点上只是理论上的。还在等着听一个。