【发布时间】:2020-10-21 04:31:29
【问题描述】:
我正在寻找一些基于生日悖论的关于 MD5、SHA1 和 SHA256 冲突可能性的精确数学。
我正在寻找类似图表的东西,上面写着“如果你有 10^8 个键,这就是概率。如果你有 10^13 个键,这就是概率等等”
我查看了大量文章,但很难找到能够提供这些数据的内容。 (对我来说,理想的选择是计算任何提供的哈希大小的公式或代码)
【问题讨论】:
-
为什么?例如,对于 MD5(以及一定程度上的 SHA-1),它在很大程度上取决于您的输入是什么。 MD5 已知碰撞攻击,因此如果恶意用户控制(部分)散列算法的输入,那么这会显着影响碰撞的可能性。对于理论上的下限,完美的散列算法的行为应该与完美的随机数生成器没有什么不同。
-
主要是出于好奇。我应该澄清一下,我正在寻找基于 128 位、160 位和 256 位等密钥大小的完美哈希的理论哈希冲突概率。
-
@DarkNebula,是的,这是一个重要的澄清,因为从数学上讲,这是一个更容易的问题。
-
我邀请您在bdayprob.com 试用我的计算器,它允许在日志 2 中输入。例如,测试与 10^8 ≈ (2^(3.36))^8 = 碰撞的可能性SHA256 中的 2^(26.56)
标签: math hash probability sha birthday-paradox