3.2 Hash 函数
主要参考:冯克勤《有限域上的代数曲线:理论和通信应用》
在此之前我们已经介绍了纠错码,我们把原始信息编成更长的码字后进行传输,目的是用来纠正信息传输过程中信道产生的错误,这是信息处理的一种方式。事实上,还有不少其他的目的需要对原始信息加以处理, 比如在大数据时代, 为了降低数据的存贮量, 我们需要把信息进行压缩, 而在提取时, 要使压缩的信息能够恢复成原来的样子. 再如一些文件 (如名人字画) 为了防止盗版要加上防伪标志(如印章、指纹). 我们将介绍这方面的两个例子, 着重介绍代数曲线在这两个方面的应用.
Hash 函数
1979 年,Carter 和 Wegman 发明的 Hash 函数 (杂凑函数) 就是为了压缩信息和恢复性提取,后来发现它能应用于信息科学的更多领域.
定义
设\(A\)和\(B\)分别是\(n\)元和\(m\)元集合,\(2 \leqslant m \leqslant n\).一个\((H ; n, m)\)\(Hash\)函数族\(\mathcal{H}\)是指由\(H\)个映射\(h: A \rightarrow B\)构成的集合。对于\(2 \leqslant w \leqslant m\), 这个函数族\(\mathcal{H}\)叫作\((n, m, w)\)完备的\(Hash\)函数族 (perfect Hash family), 简记为\(\operatorname{PHF}(H ; n, m, w)\),是指对\(A\)的任何一个\(w\)元子集\(X, \mathcal{H}\)中均存在一个\(Hash\)函数\(h: A \rightarrow B\), 使得\(h\)在\(X\)上的限制\(\left.h\right|_X: X \rightarrow B\)是单射.
由于要求总存在单射,所以要求\(w \leq m\)是自然的。
而且直观上容易看出,\(w\)越小,限制就越低,特别的如果允许\(w=1\),则任何一个从\(A\)到\(B\)的映射都在这个函数族中。
函数族\(\operatorname{PHF}(H;n,m,w+1)\)也会满足\(\operatorname{PHF}(H;n,m,w)\)的要求。
完备\(Hash\)函数族的例子
取\(\mathcal{H}\)为所有\(m^n\)个映射\(A \rightarrow B\)组成的集合, 易知对任何\(w, 2 \leqslant\)\(w \leqslant m, \mathcal{H}\)均为\(\operatorname{PHF}\left(m^n ; n, m ; w\right)\).————也就是说,对任何\(Hash\)函数族,只要包含的函数“足够多”,一定是满足完备要求的。
关于\(Hash\)函数的一个极值问题
由定义可知, 若\(\mathcal{H}\)为\(\operatorname{PHF}(H ; n, m, w)\), 将\(\mathcal{H}\)增加任意一个新的映射\(h: A \rightarrow B\)之后, 成为\(\operatorname{PHF}(H+1 ; n, m, w)\). 我们关心的是对给定的\(n, m\)和\(w(2 \leqslant w \leqslant m \leqslant n)\), 存在\(\operatorname{PHF}(H ; n, m, w)\)的最小\(H\)值, 我们把它表示成\(H(n, m, w)\). 也就是说, 存在由\(H(n, m, w)\)个函数\(h: A \rightarrow B\)组成的\((n, m, w)\)完备\(Hash\)函数族, 但是任何由\(H(n, m, w)-1\)个函数\(h: A \rightarrow B\)组成的函数族对于\(w\)都不是完备的。
例子 \(H(r^3,r^2,3)=3(r \geq 2)\)
证明:设\(R\)是\(r\)元集合. 令\(n=r^3\),\(m=r^2\), 取\(A=R^3, B=R^2\). 考虑如下的函数\(h_1, h_2, h_3: A \rightarrow B\), 其中对\(a, b, c \in R\),
它们均把三位的信息压缩成两位的信息.
现在设\(P=(a, b, c), P^{\prime}=\left(a^{\prime}, b^{\prime}, c^{\prime}\right)\)和\(P^{\prime \prime}=\left(a^{\prime \prime}, b^{\prime \prime}, c^{\prime \prime}\right)\)是\(A\)中的任意三个不同元素. 则子集合\(S=\left\{P, P^{\prime}, P^{\prime \prime}\right\}\)在映射\(h_i(1 \leqslant i \leqslant 3)\)之下的像为
我们证明: 必有\(i(1 \leqslant i \leqslant 3)\), 使得\(h_i\)限制在\(S\)上是单射, 即\(\left|h_i(S)\right|=3\).
实际上,如果想象空间中三个点的三视图,这个结论基本上是显然的。
严格证明: 若\(\left|h_1(S)\right| \leqslant 2\), 则\((a, b),\left(a^{\prime}, b^{\prime}\right)\)和\(\left(a^{\prime \prime}, b^{\prime \prime}\right)\)必有两者相等. 不妨设\((a, b)=\left(a^{\prime}, b^{\prime}\right)\), 即\(a=a^{\prime}, b=b^{\prime}\). 由\(P \neq P^{\prime}\)可知\(c \neq c^{\prime}\). 这时
其中\((a, c) \neq\left(a, c^{\prime}\right),(b, c) \neq\left(b, c^{\prime}\right)\). 若\(a^{\prime \prime} \neq a\), 则\(\left|h_2(S)\right|=3\). 否则, 若\(\left|h_3(S)\right| \leqslant 2\), 则\(\left(b^{\prime \prime}, c^{\prime \prime}\right)=(b, c)\)或\(\left(b, c^{\prime}\right)\), 即\(b^{\prime \prime}=b\)并且\(c^{\prime \prime} \in\left\{c, c^{\prime}\right\}\), 这时\(P=(a, b, c), P^{\prime}=\left(a, b, c^{\prime}\right), P^{\prime \prime}=\left(a, b, c^{\prime \prime}\right)\), 其中\(P^{\prime \prime}=P\)或\(P^{\prime}\), 与假设\(P, P^{\prime}, P^{\prime \prime}\)彼此不同相矛盾. 故\(\left|h_3(S)\right|=3\). 这就表示必有某个\(i(1 \leqslant i \leqslant 3)\)使\(h_i\)在\(S\)上的限制为单射. 这表明\(\left\{h_1, h_2, h_3\right\}\)是完备的\(Hash\)函数族, 从而\(H\left(r^3, r^2, 3\right) \leqslant 3\).
进而证明\(H\left(r^3, r^2, 3\right)>2\). 即要证明: 对于任何两个映射\(f, g: A \rightarrow B\),\(A\)中均有 3 元子集\(S=\left\{P, P^{\prime}, P^{\prime \prime \prime}\right\}\), 使得\(|f(S)| \leqslant 2\), 并且\(|g(S)| \leqslant 2\).
对每个\(b \in B\), 记\(f^{-1}(b)=\{a \in A \mid f(a)=b\}\), 去掉其中的空集之后, 它们形成\(A\)的一个划分 (partition)。记\(S_1, \cdots, S_t\)为其中的\(1\)元子集合, 剩下的\(T_1, \cdots, T_l\)为其中元素\(\geqslant 2\)个的子集合. 它们彼此不相交且并集合为\(A\). 令\(T\)为\(T_j(1 \leqslant j \leqslant l)\)的并集.
由\(|B|=r^2\)可知\(t \leqslant r^2-1,|T|=|A|-\sum_{i=1}^t\left|S_i\right|=r^3-t \geqslant r^3-r^2+1 \geqslant 2\).对于\(T\)中的每个元素\(a\), 均有\(a^{\prime} \in T, a^{\prime} \neq a\), 使得\(f\left(a^{\prime}\right)=f(a)\)(即\(a\)和\(a^{\prime}\)属于同一个\(T_j\)). 类似地, 对于函数\(g\), 也有\(A\)的一个子集合\(T^{\prime},\left|T^{\prime}\right| \geqslant r^3-r^2+1\),健得对每个\(b \in T^{\prime}\), 存在\(b^{\prime} \in T^{\prime}, b^{\prime} \neq b, g(b)=g\left(b^{\prime}\right)\). 由于\(|T|+\left|T^{\prime}\right| \geqslant 2 r^3-\)\(2 r^2+2>r^3=|A|\), 可知存在\(a_1 \in T \cap T^{\prime}\). 于是有\(a_2 \in T, a_3 \in T^{\prime}, a_1 \neq a_2\),\(a_1 \neq a_3\), 使得\(f\left(a_1\right)=f\left(a_2\right), g\left(a_1\right)=g\left(a_3\right)\). 当\(a_2 \neq a_3\)时,\(S=\left\{a_1, a_2, a_3\right\}\)是\(A\)的 3 元子集,\(|f(S)|=\left|\left\{f\left(a_1\right), f\left(a_3\right)\right\}\right| \leqslant 2,|g(S)|=\left|\left\{g\left(a_1\right), g\left(a_2\right)\right\}\right| \leqslant 2\).若\(a_2=a_3\), 则\(g\left(a_1\right)=g\left(a_3\right)=g\left(a_2\right)\). 任取\(a_4 \in A \backslash\left\{a_1, a_2\right\}, S=\left\{a_1, a_2, a_4\right\}\)为\(A\)的 3 元子集,\(|f(S)|=\left|\left\{f\left(a_1\right), f\left(a_4\right)\right\}\right| \leqslant 2,|g(S)|=\left|\left\{g\left(a_1\right), g\left(a_4\right)\right\}\right| \leqslant 2\).这就证明了\(H\left(r^3, r^2, 3\right)>2\). 于是当\(r \geqslant 2\)时,\(H\left(r^3, r^2, 3\right)=3\).\(\square\)
由此例子可体会到,完备\(Hash\)函数族问题是一个组合学问题. 当\(n, m, w\)较大时,一般来说,确定\(H(n, m, w)\)的值是一个困难的问题. 退一步则考虑它的下界. 1984 年, 用组合概率方法人们证明了: 对于任何固定的\(2 \leqslant w \leqslant m\),有下界\(H(n, m, w)=O(\log n)\), 即存在和\(n\)无关的常数\(c\), 使得对所有\(n \geqslant m\),\(H(n, m, w) \leqslant c \log n\). 但是证明是非构造性的.
采用组合设计、纠错码和其他组合手段,人们给出构作完备 Hash 函数族的许多方法和结果. 但一直到 2001 年, 王华雄和邢朝平[1] 采用函数域的方法, 明显地构作出了完备 Hash 函数族, 使\(H(n, m, w)\)达到下界\(O(\log n)\). 现在介绍他们的构作方法.
设\(K\)是以\(\mathbb{F}_q\)为常数域的函数域,\(g=g(K)\)为域\(K\)的亏格,\(P\)是\(K\)的\(1\)次素除子,\(G\)为\(K\)的一个除子, 并且\(V_P(G)=0\). 于是对每个\(f \in L(G)\),\(f(P) \in \mathbb{F}_q\)(即\(P\)不是\(f\)的极点). 从而有映射
引理
如果\(\operatorname{deg} G \geqslant 2 g+1, P\)和\(Q\)是\(K\)中两个不同的\(1\)次素除子,\(V_P(G)=V_Q(G)=0\). 则\(h_P\)和\(h_Q\)是\(L(G)\)到\(\mathbb{F}_q\)的不同映射.
证明\(\operatorname{deg}(G-P-Q) \geqslant 2 g-1\), 从而\(l(G-P-Q)=\operatorname{deg}(G-P-\)\(Q)+1-g=\operatorname{deg} G-1-g\). 类似地可知\(l(G-P)=\operatorname{deg} G-g\). 这表明\(L(G-P-Q) \varsubsetneqq L(G-P)\). 于是有\(f \in L(G-P) \backslash L(G-P-Q)\), 即\(f \in L(G), f(P)=0, f(Q) \neq 0\). 这表明\(h_P \neq h_Q\).
定理
设\(K\)是以\(\mathbb{F}_q\)为常数域的函数域,\(g=g(K), P_1, \cdots, P_H\)为\(K\)中\(H\)个不同的\(1\)次素除子,\(G\)为\(K\)的一个除子,\(\operatorname{deg} G \geqslant 2 g+1, V_{P_i}(G)=0(1 \leqslant\)\(i \leqslant H)\). 则对于每个\(w, 2 \leqslant w \leqslant q\), 当\(H>\binom{w}{2} \operatorname{deg} G\)时, 存在完备\(Hash\)函数族\(\operatorname{PHF}\left(H ; q^{\mathrm{deg} G+1-g}, q, w\right)\).
证明 记\(S=\left\{P_1, \cdots, P_H\right\}, \mathcal{H}=\left\{h_P: L(G) \rightarrow \mathbb{F}_q \mid P \in S\right\}\). 由引理可知\(\mathcal{H}\)中的\(H\)个函数\(h_P(P \in S)\)是两两不同的, 即\(|\mathcal{H}|=H\). 而\(n=|L(G)|=q^{l(G)}=q^{\operatorname{deg} G+1-g}, m=\left|\mathbb{F}_q\right|=q\).
对于\(L(G)\)中的任何\(w\)元子集\(X\), 我们证明均存在\(R \in S\), 使得\(h_R\):\(X \rightarrow \mathbb{F}_q\)为单射. 为证此, 记\(D_X=\left\{(f-g)^2 \mid f, g \in X, f \neq g\right\}\). 则\(\left|D_X\right| \leqslant\binom{ w}{2}\).\(D_X\)中函数\((f-g)^2\)的零点即为\(f-g\)的零点. 由于\(0 \neq f-g \in L(G)\)并且对每个\(P \in S, V_P(G)=0\), 可知\(f-g\)在\(S\)中的零点个数\(\leqslant \operatorname{deg} G\)(由代数几何码一节定理\(2\)结论\(d\geq n-\deg G\)). 这就表明:
\(\#\left\{P \in S: P\right.\)是\(D_X\)中某个\((f-g)^2\)的零点\(\} \leqslant\binom{ w}{2} \operatorname{deg} G\).由假设\(H=|\mathcal{H}|>\binom{w}{2} \operatorname{deg} G\), 这表明存在\(R \in S\), 使得\(R\)不是\(D_X\)中任何\((f-g)^2\)的零点. 现在证明\(h_R: X \rightarrow \mathbb{F}_q\)是单射. 对于\(X\)中的两个不同元素\(f, g,(f-g)^2 \in D_X\). 从而\(R\)不是\(f-g\)的零点, 即\(f(R) \neq g(R)\). 这表明\(h_R(f) \neq h_R(g)\).\(\square\)
处理完备性的极值问题时,我们可以赋给\(Hash\)函数族的参数\(n,m\)特殊的结构,这样并不会影响我们的结论。
如上的一通操作相当于把达到给定下界的完备\(Hash\)函数族的存在性归结于以\(\mathbb{F}_q\)为常数域的函数域中满足特定性质的除子的存在性,但我们知道,这是存在且可构造的。
常数域取\(\mathbb{F}_q\)时,黎曼罗赫空间\(L(B)\)是有限的,这是函数域理论能够应用于组合构造的一个原因。并且通常而言,只要给的对除子的限制条件不相悖或者太奇怪,基本都能找到对应的除子,所以把一些构造的难题转化到构造相应的除子是一个很好的想法。
取\(H=\binom{w}{2} \operatorname{deg} G+1\), 由\(n=q^{\operatorname{deg} G+1-g}\)可知对于固定的\(q, H\)达到下界\(O(\log n)\). 但是在此定理中\(n\)和\(m\)都是素数幂, 并且\(H\)不,l超过\(K\)中\(1\)次素除子的个数. 王华雄和邢朝平[1:1] 在上述定理的基础上采用适当的函数域和其中的除子, 再加上一些组合学技巧, 对于任意固定正整数\(m\)和\(w, 2 \leqslant w \leqslant m\),均具体构作了出完备\(\operatorname{Hash}\)函数族\(\operatorname{PHF}\left(H_n ; n, m, w\right)(n \rightarrow \infty)\)满足下界\(H_n=O(\log n)\).

浙公网安备 33010602011771号