SHA1冲突的可能性

时间:2009-12-08 14:07:56

标签: hash sha1 probability

给定一组100个相同长度的不同字符串,如何量化字符串的SHA1摘要冲突不太可能的概率?

3 个答案:

答案 0 :(得分:142)

alt text

  

是否生成了160位哈希值   通过SHA-1大到足以确保   每个块的指纹都是唯一的?   假设随机哈希值带有   均匀分布,集合   n个不同的数据块和一个哈希   生成b位的函数   概率p将有一个   或更多的碰撞受到了   块对的数量成倍增加   通过给定对的概率   会发生碰撞。

(来源:http://bitcache.org/faq/hash-collision-probabilities

答案 1 :(得分:5)

好吧,碰撞的可能性是:

1 - ((2^160 - 1) / 2^160) * ((2^160 - 2) / 2^160) * ... * ((2^160 - 99) / 2^160)

考虑10个空间中2个项目发生碰撞的概率。第一个项目是唯一的,概率为100%。第二个是唯一的,概率为9/10。因此,两者唯一的概率是100% * 90%,并且碰撞的概率是:

1 - (100% * 90%), or 1 - ((10 - 0) / 10) * ((10 - 1) / 10), or 1 - ((10 - 1) / 10)

这不太可能。你必须有更多的字符串才能成为一种遥远的可能性。

查看this page on Wikipedia上的表格;只需在行之间插入128位和256位。

答案 2 :(得分:3)

那是Birthday Problem - 文章提供了很好的近似值,可以很容易地估计概率。实际概率非常低 - 请参阅this question示例。