听课和做题时遇到的一些反例,这里随意记录下。
有硬核谓词的函数不一定是单向的。令函数 f(x′∥x′′)=x′′f(x'\|x'')=x''f(x′∥x′′)=x′′,易知 b(x′∥x′′)=x′b(x'\|x'')=x'b(x′∥x′′)=x′ 是其硬核谓词,但是 fff 不是单向函数。但如果 fff 是 1-1 的,那么 fff 是弱单向的。
f(x)f(x)f(x) 是 OWF,则它的迭代 f(f(x))f(f(x))f(f(x)) 不一定是 OWF。
例如 f(x′∥x′′)=g(x′′)∥0nf(x'\|x'') = g(x'')\|0^nf(x′∥x′′)=g(x′′)∥0n,其中 g(x′′)g(x'')g(x′′) 是保长 OWF。此时,
f(f(x′∥x′′))=f(g(x′′)∥0n)=g(0n)∥0nf(f(x'\|x'')) = f(g(x'')\|0^n) = g(0^n)\|0^n f(f(x′∥x′′))=f(g(x′′)∥0n)=g(0n)∥0n
于是任意的 xxx 都是 g(0n)∥0ng(0^n)\|0^ng(0n)∥0n 的原像。
若 fff 是保长单向函数,定义函数 g(x)=f(x)⊕xg(x) = f(x) \oplus xg(x)=f(x)⊕x,则 ggg 不一定是单向函数。
如果强行归约,会发现概率损失因子是指数级。
令 h:h:h: 是保长单向函数,构造
f(x)=f(x′∥x′′)=h(x′′)∥0nf(x) = f(x'\|x'') = h(x'')\|0^n f(x)=f(x′∥x′′)=h(x′′)∥0n
其中 x′,x′′∈{0,1}nx',x'' \in \{0,1\}^nx′,x′′∈{0,1}n,可以证明 fff 是保长单向函数(归约)。
此时,
g(x)=f(x′∥x′′)⊕x′∥x′′=h(x′′)⊕x′∥x′′g(x) = f(x'\|x'') \oplus x'\|x'' = h(x'') \oplus x' \|x'' g(x)=f(x′∥x′′)⊕x′∥x′′=h(x′′)⊕x′∥x′′
容易看出存在 PPT 求逆算法:
成功概率为 Prx←U2n[A(g(x),1n)∈g−1(g(x))]=1\underset{x \leftarrow U_{2n}}{Pr}[A(g(x),1^n) \in g^{-1}(g(x))]=1x←U2nPr[A(g(x),1n)∈g−1(g(x))]=1
若 fff 是保长单向函数,定义函数 g(x,y)=f(x)⊕f(y)g(x,y) = f(x) \oplus f(y)g(x,y)=f(x)⊕f(y),则 ggg 不一定是单向函数。
如果强行归约,会发现概率损失因子是指数级。
令 h:h:h: 是保长单向函数,构造
f(x)={h(x′′)∥x′,x′≠0nh(x′′)⊕x′′∥0n,x′=0nf(x) = \left\{ \begin{aligned} h(x'') &\| x', && x' \neq 0^n\\ h(x'')\oplus x'' &\| 0^n, && x' = 0^n\\ \end{aligned} \right. f(x)={h(x′′)h(x′′)⊕x′′∥x′,∥0n,x′=0nx′=0n
其中 x′,x′′∈{0,1}nx',x'' \in \{0,1\}^nx′,x′′∈{0,1}n,可以证明 fff 是保长单向函数:对于 xxx 在 x′=0nx'=0^nx′=0n 和 x′≠0nx' \neq 0^nx′=0n 时的像不相交,而当 x′≠0nx' \neq 0^nx′=0n 时(占比为 1−negl(n)1-negl(n)1−negl(n))它是保长单向的(归约)。
此时,
g(x,y)=f(x′∥x′′)⊕f(y′∥y′′)g(x,y) = f(x'\|x'') \oplus f(y'\|y'') g(x,y)=f(x′∥x′′)⊕f(y′∥y′′)
存在 PPT 求逆算法:
成功概率为 Prx,y←U2n[A(g(x,y),1n)∈g−1(g(x,y))]=1−negl(n)\underset{x,y \leftarrow U_{2n}}{Pr}[A(g(x,y),1^n) \in g^{-1}(g(x,y))] = 1-negl(n)x,y←U2nPr[A(g(x,y),1n)∈g−1(g(x,y))]=1−negl(n)
设 fff 是 OWF,bbb 是其硬核,令 G1(x)=b(x)∥f(x)G_1(x) = b(x)\|f(x)G1(x)=b(x)∥f(x),那么其迭代 Gp(x)G_p(x)Gp(x) 不一定是伪随机生成器。
令 fff 是保长 OWF,构造 g(x′∥x′′)=1n∥f(x′)g(x'\|x'') = 1^n\|f(x')g(x′∥x′′)=1n∥f(x′),那么
G1(x)=b(x)∥(1n∥f(x′))G2(x)=b(x)∥b(1n∥f(x′))∥(1n∥f(1n))G3(x)=b(x)∥b(1n∥f(x′))∥b(1n∥f(1n))∥(1n∥f(1n))⋯\begin{aligned} G_1(x) &= b(x)\|(1^n\|f(x'))\\ G_2(x) &= b(x)\|b(1^n\|f(x'))\|(1^n\|f(1^n))\\ G_3(x) &= b(x)\|b(1^n\|f(x'))\|b(1^n\|f(1^n))\|(1^n\|f(1^n))\\ \cdots \end{aligned} G1(x)G2(x)G3(x)⋯=b(x)∥(1n∥f(x′))=b(x)∥b(1n∥f(x′))∥(1n∥f(1n))=b(x)∥b(1n∥f(x′))∥b(1n∥f(1n))∥(1n∥f(1n))
明显 Gp(x)G_p(x)Gp(x) 不是 PRG,因为 fff 迭代退化了。
设 G:{0,1}2n→{0,1}∗G:\{0,1\}^{2n} \to \{0,1\}^*G:{0,1}2n→{0,1}∗ 是 PRG,但是 G′(x′∥x′′)=G(x′∥0n)G'(x'\|x'') = G(x'\|0^n)G′(x′∥x′′)=G(x′∥0n) 不一定是 PRG。
令 f(x′∥x′′)=x′∥p(x′′)f(x'\|x'') = x'\|p(x'')f(x′∥x′′)=x′∥p(x′′),其中 p(x′′)p(x'')p(x′′) 是 OWP,且它满足 p(0n)→0np(0^n) \to 0^np(0n)→0n,易知 fff 是 OWP。
此时,fff 仅对于形式为 x′∥0nx'\|0^nx′∥0n 的输入,它迭代退化,
f(f(x′∥0n))=f(x′∥0n)=x′∥0nf(f(x'\|0^n)) = f(x'\|0^n) = x'\|0^n f(f(x′∥0n))=f(x′∥0n)=x′∥0n
于是,使用 OWP 和 Hardcore 迭代的那种 PRG 构造下,G(U2n)G(U_{2n})G(U2n) 依旧是 PRG,但 G′(Un∥0n)G'(U_n\|0^n)G′(Un∥0n) 的状态 sis_isi 总会收敛到同一值,从而后续的序列 σi=b(si)\sigma_i = b(s_i)σi=b(si) 都相同。
设 f:K×X→Yf:K \times X \to Yf:K×X→Y 是伪随机函数,定义函数 g(k,(x,y))=f(k,x)⊕f(k,y)g(k,(x,y))=f(k,x) \oplus f(k,y)g(k,(x,y))=f(k,x)⊕f(k,y),则 ggg 不一定是伪随机函数。
如果强行归约,会发现无论 AAA 的区分优势有多大,A′A'A′ 的区分优势总是为零。
存在 PPT 区分器:
区分优势为 AdvD=∣Pr[ExptDGn,RFn(1n,b=0)=1]−Pr[ExptDGn,RFn(1n,b=1)=1]∣=1−negl(n)Adv_D = \left| Pr[Expt_D^{G_n,\, RF_n}(1^n,b=0)=1] - Pr[Expt_D^{G_n,\, RF_n}(1^n,b=1)=1] \right| = 1-negl(n)AdvD=∣∣∣Pr[ExptDGn,RFn(1n,b=0)=1]−Pr[ExptDGn,RFn(1n,b=1)=1]∣∣∣=1−negl(n)
一个 Hash 抗碰撞,但不一定是抗原像的。即:存在找一个原像容易,但找到两个原像困难的 Hash 函数。(这俩不等价吧?)
令 H1H_1H1 是 OWHF,令 H2:{0,1}n+1→{0,1}nH_2:\{0,1\}^{n+1} \to \{0,1\}^nH2:{0,1}n+1→{0,1}n 为
H2(b∥x)={x,b=0H1(x),b=1H_2(b\|x) = \left\{ \begin{aligned} x,&& b=0\\ H_1(x),&& b=1 \end{aligned} \right. H2(b∥x)={x,H1(x),b=0b=1
H2H_2H2 不抗原像。任给像 yyy,找到一个原像 0∥y0\|y0∥y 是容易的。
但找另一个原像 1∥x1\|x1∥x,使得 H1(x)=yH_1(x)=yH1(x)=y 是困难的,因为 OWHF。
MD 迭代不保持 UOW 性。
设 Fk:{0,1}l+t→{0,1}lF_k:\{0,1\}^{l+t} \to \{0,1\}^lFk:{0,1}l+t→{0,1}l 是 UOWHF,定义 Hs:{0,1}l+t→{0,1}l+kH_s:\{0,1\}^{l+t} \to \{0,1\}^{l+k}Hs:{0,1}l+t→{0,1}l+k
Hs(x1∥x2∥x3)={Fs(x1∥x2∥x3)∥s,x2≠s1l∥1k,x2=sH_s(x_1\|x_2\|x_3) = \left\{ \begin{aligned} F_s(x_1\|x_2\|x_3)\|s,&& x_2 \neq s\\ 1^l\|1^k,&& x_2 = s \end{aligned} \right. Hs(x1∥x2∥x3)={Fs(x1∥x2∥x3)∥s,1l∥1k,x2=sx2=s
那么 HsH_sHs 是 UOWHF,但是 MD2(Hs,m)=Hs(Hs(IV∥m0)∥m1)MD_2(H_s,m) = H_s(H_s(IV\|m_0)\|m_1)MD2(Hs,m)=Hs(Hs(IV∥m0)∥m1) 不满足 UOW:选取挑战 IV=IV1∥IV2,m=0t−k∥0t−kIV=IV_1\|IV_2,\, m=0^{t-k}\|0^{t-k}IV=IV1∥IV2,m=0t−k∥0t−k,收到 sss,如果 s≠IV2s \neq IV_2s=IV2 则选取 m′=1t−k∥0t−km'=1^{t-k}\|0^{t-k}m′=1t−k∥0t−k,那么 m′m'm′ 就是第二原像。
一个收缩的 OWF,不一定是 OWHF。即:存在抗原像,但不抗第二原像的 Hash 函数。
令 H1H_1H1 是 OWHF,令 H2(x′∥x′′)=H1(x′′)H_2(x'\|x'') = H_1(x'')H2(x′∥x′′)=H1(x′′),明显 H2H_2H2 是抗原像的。
给定 x′∥x′′x'\|x''x′∥x′′,输出 H2(x′∥x′′)H_2(x'\|x'')H2(x′∥x′′) 的第二原像是容易的:x′′′∥x′′x'''\|x''x′′′∥x′′,其中任取 x′′′≠x′x''' \neq x'x′′′=x′ 即可。