Hash 使用160位计算哈希冲突

Hash 使用160位计算哈希冲突,hash,cryptography,collision,hash-function,hash-collision,Hash,Cryptography,Collision,Hash Function,Hash Collision,假设一个产生160位摘要的哈希函数。我们需要散列多少条消息才能获得大约75%概率的冲突 感谢您的帮助:)大约在2亿英镑的范围内。这是20000000000000000000条消息。这是方程式 chance of collision = 1 - e^(-n^2 / (2 * d)) 其中,n是消息数,d是可能性数。因此,如果d是2^160,那么n将在2^80.7附近,根据经验法则,绘制sqrt(n)数字后,有50%的几率发生碰撞。这个数字略高于这个数字,但平方根是一个很好的指导。因此,在您的情况

假设一个产生160位摘要的哈希函数。我们需要散列多少条消息才能获得大约75%概率的冲突


感谢您的帮助:)

大约在
2亿英镑的范围内。这是20000000000000000000条消息。这是方程式

chance of collision = 1 - e^(-n^2 / (2 * d))

其中,
n
是消息数,
d
是可能性数。因此,如果
d
2^160
,那么
n
将在
2^80.7
附近,根据经验法则,绘制
sqrt(n)
数字后,有50%的几率发生碰撞。这个数字略高于这个数字,但平方根是一个很好的指导。因此,在您的情况下,在2^80次尝试后,您有50%的碰撞几率

另一条经验法则是,在
4*sqrt(n)
之后,您获得副本的概率几乎是确定的

根据,您可以通过以下方式计算需要绘制的值的数量,
n
,以获得重复概率
p

n = sqrt(2 * d * ln(1/(1-p)))
其中,
ln
是自然对数,
p
是0到1.0的概率

因此,在你的情况下:

n = sqrt(2 * 2^160 * ln(1/.25))
n = sqrt(2^161 * 1.38629)

这比2^81小一些。

太多了。地球上的每一台计算机,都在满负荷工作,直到宇宙类型的天平热死。@mypetlion或两台特定的计算机,对于SHA-1:PI,我投票结束这个问题,因为它不涉及编程或程序开发。由于生日“悖论”,大约是散列输出大小的一半。请注意,存储散列以相互比较的内存需求将是相同的顺序,据我所知,世界上没有足够的内存来做这样的事情。创建这些哈希是为了避免冲突。然而,SHA-1在这方面失败了,谷歌“SHA-1崩溃了”。@MaartenBodewes不是输出大小的一半,而是输出大小的平方根。