“字符串匹配是任务,模同余支撑滚动更新,随机化提供碰撞概率分析。通用哈希给出“对任意固定不同键,随机选函数后碰撞概率小”的族性质;滚动多项式指纹还要求窗口能在 $O(1)$ 时间删首添尾,不能…”
形式陈述 ​
设键域为
若对任意
一个标准构造令
均匀抽取
直觉 ​
通用哈希不假设输入键“自然随机”,而把随机性放到建表时选择的函数上。键集可以是最坏情况,只要它在随机种子选定前已经固定,任意一对键都难以稳定地被整个函数族送进同一槽。分析因此针对算法自己的随机选择,而不是把现实数据分布理想化。
随机化解决的是可预测冲突:固定函数总可能遇到专门构造的坏键集;从受控函数族抽样后,攻击者若不知道选择结果,就不能让所有候选函数同时产生同样的聚集。性质是关于函数族和抽样分布的,不是某一个已选函数“永不碰撞”。
例子与边界 ​
取素数
对集合
该推导不要求所有
若攻击者先观察已选函数或种子,再自适应提交碰撞键,标准“固定键集”分析便可能失效;服务端哈希防洪需要隐藏随机密钥、定期重播种或使用更强的伪随机构造。通用哈希也不是密码学抗碰撞:后者要求计算上难以找到碰撞,面对的是已知函数,安全目标完全不同。
推论与应用 ​
通用哈希给字典、静态完美哈希和随机化负载均衡提供可证明的输入无关期望界。它把“平均
更强的
参考资料
- J. Lawrence Carter and Mark N. Wegman, “Universal Classes of Hash Functions,” Journal of Computer and System Sciences 18(2), 1979, pp. 143–154.
- Thomas H. Cormen et al., Introduction to Algorithms, 4th ed., MIT Press, 2022, §11.3, universal hashing.