用160位计算哈希冲突

时间:2018-04-27 21:23:36

标签: hash cryptography collision hash-function hash-collision

假设产生160位摘要的散列函数。我们需要散列多少消息才能以大约75%的概率进行冲突?

谢谢你的帮助:)

2 个答案:

答案 0 :(得分:1)

经验法则是,在绘制sqrt(n)个数字后,有50%的机会发生碰撞。这个数字略多于此,但平方根是一个很好的指导方针。所以在你的情况下,在2 ^ 80次尝试后你有50%的碰撞几率。

另一个经验法则是,在4*sqrt(n)之后,你获得复制的可能性几乎是确定的。

根据https://en.wikipedia.org/wiki/Birthday_problem#Cast_as_a_collision_problem,您可以计算您需要绘制的值的数量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。

答案 1 :(得分:0)

2 septillion范围内的某个地方。这是2,000,000,000,000,000,000,000,000,000条消息。这是等式。

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

n是消息的数量,d是可能性的数量。因此,如果d2^160,则n将位于2^80.7附近。