“因此无条件误报率也为 $2^{ r}$。充分条件是指纹函数对固定相关键给出完全独立输出,并与位置函数独立;重试成功与否只由位置图决定。仅有每键边缘均匀、两两独立或简单制表的三独立,都不足以直…”
形式陈述
每个字符位置有自己的随机表
固定正整数 c、r 和有限字符集 Σ。键是恰有 c 个字符的元组
其中
通用哈希只要求不同键的碰撞概率受控。本构造更强:对任意事先固定的至多三个不同键
概率空间是建表时的所有随机表项,键先固定。对于
三独立的消元证明
先看三个不同键。必有一个位置不是三个字符都相同。在这个位置,至少一个字符只出现在这三个键中的一键:三字符互不相同则任取其一;两同一异则取异者。因此存在一个随机表项 Z,只影响其中一个键的输出。
暂不揭示Z。另两个键不同,同样可找到只属于其中一键的位置字符,再暂不揭示相应表项;最后一个键也至少有一个表项可留下。按这个顺序删除键后,反向揭示留下的三个表项。每次相关输出都是“新独立均匀r位串,异或一个已定常量”,故条件概率恰为
这个论证没有把“每键单独均匀”误当成联合独立。决定性条件是,每轮确有尚未揭示且不出现在剩余键中的表项。
直觉
异或保留一份未揭示的随机性
若Z均匀,固定任意a,映射
表项可以共享。两个键只差最后一字符时,大部分异或项都相同,但最后两项独立,仍给出独立的两份输出。问题不在于“是否共享过表项”,而在于共享方式能否形成无法消去的关系。
例子与边界
手算四键矩形
令c=2、Σ={0,1}、r=3,抽得
| 键 | 运算 | 输出 |
|---|---|---|
| 00 | 2 | |
| 01 | 4 | |
| 10 | 5 | |
| 11 | 3 |
这四个输出的异或为0。对任意随机表也成立,因为每个表项恰出现两次:
知道前三个输出后,第四个已经确定;四个独立均匀r位串却只以
当c=1时,每个不同键直接读取不同表项,反而具有任意阶独立性。非四独立的结论必须保留至少两个位置、至少两个字符的条件。
截位、取模与键编码
保留固定的b个输出位,
输入元组必须完整表示原键。若可变长字符串只补零,不记录长度,两个原本不同的字符串可能先被编码成同一元组;之后再强的哈希独立性也无法把它们分开。使用定长键域,或先规定单射编码及可容纳的长度范围。
同一张表用于所有位置也会破坏结论:
推论与应用
时间、空间和保证的使用范围
设一个字符下标和一个r位表项都装进常数个RAM字。一次求值读c项并做c−1次异或,需O(c)时间;生成和保存全部表需要
三独立蕴含两独立,所以对固定键对的桶碰撞可直接使用通用哈希的分析。但线性探测的长聚簇依赖许多键联合落点,不能仅凭“三独立”三个字推出期望常数探测。原论文证明简单制表对线性探测等问题有超出一般三独立族的良好性质,依靠的是这套表项结构的专门分析。[1, §§1、3]
它也不是密码学伪随机函数。看到种子后的攻击者可以利用四键关系;本文概率结论针对先固定的键,而不是自适应挑选碰撞的安全游戏。Xor过滤器的精确误报证明还要求非成员指纹在给定全部成员信息后保持均匀,不能未经证明就用这里的三独立替代该条件。
终点任务要求复算三独立的小空间分布,再作两个结构修改:共享位置表、把输出模3。分别指出哪个证明前提消失,并给实际碰撞分布;只换一张随机种子不能完成这两项检查。
参考资料
[1] Mihai Pătraşcu、Mikkel Thorup,The Power of Simple Tabulation Hashing,作者预印本,2010/2011,§1的构造与三独立/非四独立讨论,§3的线性探测专门分析;正式刊载于JACM 59(3),2012,Article14。本文三键消元、矩形手算和枚举实验独立展开。