SHA-1哈希的最大数量是多少?

Jam*_*mes 6 hash cryptography sha1 sha hash-collision

显然,由于SHA-1散列每次出现有限数量的可能哈希值时会产生40个字符 - 有没有人确切地知道有多少?

Nul*_*ion 14

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

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

另请注意,碰撞的概率远高于您的想象.由于生日悖论,在2 80条消息中,碰撞的概率为50%.(即:只有23个人,2个人生日相同的概率为50%).

  • 谷歌计算:1.46150164×10 ^ 48 :-) (3认同)
  • 我猜这个问题是否哈希函数是否是满射的. (2认同)
  • Darn,打败我吧:) (2认同)

Tho*_*nin 10

SHA-1产生160位输出,它应该能够产生几乎任何160位的序列,有2 160个这样的序列,即接近1461亿,数十亿甚至数十亿.那有点大.

但是,我们没有证据证明它们中的每一个都是可达的.如果可能的输出数量明显低于2 160,那么SHA-1安全性就不好了; 例如,如果只有1/4的可达(2 158),那么针对原像攻击的安全性将除以4,并且对冲突的安全性将减半.没有这样的问题,目前正在与SHA-1已知的(有 SHA-1的已知弱点,当涉及到碰撞性,而不是一个).

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