给定一组100个相同长度的不同字符串,如何量化字符串的SHA1摘要冲突不太可能的概率?
答案 0 :(得分:142)
是否生成了160位哈希值 通过SHA-1大到足以确保 每个块的指纹都是唯一的? 假设随机哈希值带有 均匀分布,集合 n个不同的数据块和一个哈希 生成b位的函数 概率p将有一个 或更多的碰撞受到了 块对的数量成倍增加 通过给定对的概率 会发生碰撞。
答案 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示例。