无现有哈希碰撞前提下新增哈希的碰撞概率计算咨询
哈希碰撞概率问题解答
推导正确性判断
你的推导逻辑基本成立,仅在分母的取值上存在极小的、实际可忽略的差异:
- 如果你假设64位哈希的输出是均匀、独立随机的(符合绝大多数工业级哈希算法的实际表现),那么严格的无碰撞概率公式应为:
$$\prod_{k=0}{107-1} \frac{2^{64} - 10^9 - k}{2^{64}}$$
每一项的分母是完整哈希空间大小$2{64}$,而非剩余可用空间$2{64}-10^9$。 - 你给出的公式对应「新哈希值从剩余未占用空间不放回抽取」的模型,因为$2{64}≈1.84\times10{19}$远大于新增的1000万条数据量,两个公式的计算结果差异可以完全忽略,核心推导逻辑是正确的。
碰撞概率计算
我们可以用指数近似法快速计算结果:当每个单步冲突概率极低时,无碰撞概率的连乘可以近似为自然指数形式:
$$P(无碰撞) \approx e^{-\frac{n(2s +n -1)}{2 \times 2^{64}}}$$
其中$s=109$是已有数据量,$n=107$是新增数据量。代入计算可得:
- 指数部分的分子约为$10^7 \times (2\times10^9 +10^7) ≈ 2.01\times10^{16}$
- 指数值约为$-\frac{2.01\times10{16}}{2\times1.84\times10{19}}≈-5.46\times10^{-4}$
- 无碰撞概率≈$e{-5.46\times10{-4}}≈0.99945$
- 最终碰撞概率≈$1-0.99945=0.055%$,也就是约万分之5.5的概率会出现碰撞。
内容的提问来源于stack exchange,提问作者cmsommerville
相关产品推荐
相关产品推荐

