听课和做题时遇到的一些反例,这里随意记录下。
OWF
-
有硬核谓词的函数不一定是单向的。令函数 f ( x ′ ∥ x ′ ′ ) = x ′ ′ f(x'\|x'')=x'' f(x′∥x′′)=x′′,易知 b ( x ′ ∥ x ′ ′ ) = x ′ b(x'\|x'')=x' b(x′∥x′′)=x′ 是其硬核谓词,但是 f f f 不是单向函数。但如果 f f f 是 1-1 的,那么 f f f 是弱单向的。
-
f ( x ) f(x) f(x) 是 OWF,则它的迭代 f ( f ( x ) ) f(f(x)) f(f(x)) 不一定是 OWF。
例如 f ( x ′ ∥ x ′ ′ ) = g ( x ′ ′ ) ∥ 0 n f(x'\|x'') = g(x'')\|0^n f(x′∥x′′)=g(x′′)∥0n,其中 g ( x ′ ′ ) g(x'') g(x′′) 是保长 OWF。此时,
f ( f ( x ′ ∥ x ′ ′ ) ) = f ( g ( x ′ ′ ) ∥ 0 n ) = g ( 0 n ) ∥ 0 n f(f(x'\|x'')) = f(g(x'')\|0^n) = g(0^n)\|0^n f(f(x′∥x′′))=f(g(x′′)∥0n)=g(0n)∥0n
于是任意的 x x x 都是 g ( 0 n ) ∥ 0 n g(0^n)\|0^n g(0n)∥0n 的原像。 -
若 f f f 是保长单向函数,定义函数 g ( x ) = f ( x ) ⊕ x g(x) = f(x) \oplus x g(x)=f(x)⊕x,则 g g g 不一定是单向函数。
如果强行归约,会发现概率损失因子是指数级。
令 h : h: h: 是保长单向函数,构造
f ( x ) = f ( x ′ ∥ x ′ ′ ) = h ( x ′ ′ ) ∥ 0 n f(x) = f(x'\|x'') = h(x'')\|0^n f(x)=f(x′∥x′′)=h(x′′)∥0n
其中 x ′ , x ′ ′ ∈ { 0 , 1 } n x',x'' \in \{0,1\}^n x′,x′′∈{0,1}n,可以证明 f f f 是保长单向函数(归约)。此时,
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 求逆算法:- 输入 y = y ′ ∥ y ′ ′ y=y'\|y'' y=y′∥y′′
- 先提取 x ′ ′ = y ′ ′ x''=y'' x′′=y′′,计算 h ( x ′ ′ ) h(x'') h(x′′)
- 再提取 x ’ = y ′ ⊕ h ( x ′ ′ ) x’ = y' \oplus h(x'') x’=y′⊕h(x′′)
- 输出 x = x ′ ∥ x ′ ′ x=x'\|x'' x=x′∥x′′
成功概率为 P r x ← U 2 n [ A ( g ( x ) , 1 n ) ∈ g − 1 ( g ( x ) ) ] = 1 \underset{x \leftarrow U_{2n}}{Pr}[A(g(x),1^n) \in g^{-1}(g(x))]=1 x←U2nPr[A(g(x),1n)∈g−1(g(x))]=1
-
若 f f f 是保长单向函数,定义函数 g ( x , y ) = f ( x ) ⊕ f ( y ) g(x,y) = f(x) \oplus f(y) g(x,y)=f(x)⊕f(y),则 g g g 不一定是单向函数。
如果强行归约,会发现概率损失因子是指数级。
令 h : h: h: 是保长单向函数,构造
f ( x ) = { h ( x ′ ′ ) ∥ x ′ , x ′ ≠ 0 n h ( x ′ ′ ) ⊕ x ′ ′ ∥ 0 n , x ′ = 0 n f(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 } n x',x'' \in \{0,1\}^n x′,x′′∈{0,1}n,可以证明 f f f 是保长单向函数:对于 x x x 在 x ′ = 0 n x'=0^n x′=0n 和 x ′ ≠ 0 n x' \neq 0^n x′=0n 时的像不相交,而当 x ′ ≠ 0 n x' \neq 0^n x′=0n 时(占比为 1 − n e g l ( 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 求逆算法:- 输入 z = z ′ ∥ z ′ ′ z=z'\|z'' z=z′∥z′′
- 如果
z
′
′
≠
0
n
z'' \neq 0^n
z′′=0n,
- 令 x ′ = z ′ ′ , x ′ ′ = z ′ x'=z'',x''=z' x′=z′′,x′′=z′,于是 x = z ′ ′ ∥ z ′ x = z''\|z' x=z′′∥z′,
- 令 y ′ = 0 n , y ′ ′ = x ′ ′ y'=0^n,y''=x'' y′=0n,y′′=x′′,于是 y = 0 n ∥ z ′ y=0^n\|z' y=0n∥z′
- 如果 z ′ ′ = 0 n z'' = 0^n z′′=0n,且 z ′ = 0 n z'=0^n z′=0n,那么任取 x x x,令 y = x y=x y=x
- 如果 z ′ ′ = 0 n z'' = 0^n z′′=0n,且 z ′ ≠ 0 n z'\neq0^n z′=0n,此时必然 x ′ = y ′ = 0 n x'=y'=0^n x′=y′=0n(需要寻找 h ( x ′ ′ ) ⊕ x ′ ′ ⊕ h ( y ′ ′ ) ⊕ y ′ ′ = z ′ h(x'')\oplus x'' \oplus h(y'') \oplus y'' = z' h(x′′)⊕x′′⊕h(y′′)⊕y′′=z′),直接 abort
- 输出 ( x , y ) (x,y) (x,y)
成功概率为 P r x , y ← U 2 n [ A ( g ( x , y ) , 1 n ) ∈ g − 1 ( g ( x , y ) ) ] = 1 − n e g l ( 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)
PRG
-
设 f f f 是 OWF, b b b 是其硬核,令 G 1 ( x ) = b ( x ) ∥ f ( x ) G_1(x) = b(x)\|f(x) G1(x)=b(x)∥f(x),那么其迭代 G p ( x ) G_p(x) Gp(x) 不一定是伪随机生成器。
令 f f f 是保长 OWF,构造 g ( x ′ ∥ x ′ ′ ) = 1 n ∥ f ( x ′ ) g(x'\|x'') = 1^n\|f(x') g(x′∥x′′)=1n∥f(x′),那么
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 ) ) ⋯ \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))
明显 G p ( x ) G_p(x) Gp(x) 不是 PRG,因为 f f f 迭代退化了。 -
设 G : { 0 , 1 } 2 n → { 0 , 1 } ∗ G:\{0,1\}^{2n} \to \{0,1\}^* G:{0,1}2n→{0,1}∗ 是 PRG,但是 G ′ ( x ′ ∥ x ′ ′ ) = G ( x ′ ∥ 0 n ) 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 ( 0 n ) → 0 n p(0^n) \to 0^n p(0n)→0n,易知 f f f 是 OWP。
此时, f f f 仅对于形式为 x ′ ∥ 0 n x'\|0^n x′∥0n 的输入,它迭代退化,
f ( f ( x ′ ∥ 0 n ) ) = f ( x ′ ∥ 0 n ) = x ′ ∥ 0 n f(f(x'\|0^n)) = f(x'\|0^n) = x'\|0^n f(f(x′∥0n))=f(x′∥0n)=x′∥0n
于是,使用 OWP 和 Hardcore 迭代的那种 PRG 构造下, G ( U 2 n ) G(U_{2n}) G(U2n) 依旧是 PRG,但 G ′ ( U n ∥ 0 n ) G'(U_n\|0^n) G′(Un∥0n) 的状态 s i s_i si 总会收敛到同一值,从而后续的序列 σ i = b ( s i ) \sigma_i = b(s_i) σi=b(si) 都相同。
PRF
-
设 f : K × X → Y f:K \times X \to Y f: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),则 g g g 不一定是伪随机函数。
如果强行归约,会发现无论 A A A 的区分优势有多大, A ′ A' A′ 的区分优势总是为零。
存在 PPT 区分器:
- 询问 ( x , y ) , ( y , z ) , ( x , z ) (x,y),(y,z),(x,z) (x,y),(y,z),(x,z) 的函数值 r 1 , r 2 , r 3 r_1,r_2,r_3 r1,r2,r3
- 如果 r 1 ⊕ r 2 = r 3 r_1 \oplus r_2 = r_3 r1⊕r2=r3,输出 b ′ = 1 b'=1 b′=1
- 否则,输出 b ′ = 0 b'=0 b′=0
区分优势为 A d v D = ∣ P r [ E x p t D G n , R F n ( 1 n , b = 0 ) = 1 ] − P r [ E x p t D G n , R F n ( 1 n , b = 1 ) = 1 ] ∣ = 1 − n e g l ( 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 抗碰撞,但不一定是抗原像的。即:存在找一个原像容易,但找到两个原像困难的 Hash 函数。(这俩不等价吧?)
令 H 1 H_1 H1 是 OWHF,令 H 2 : { 0 , 1 } n + 1 → { 0 , 1 } n H_2:\{0,1\}^{n+1} \to \{0,1\}^n H2:{0,1}n+1→{0,1}n 为
H 2 ( b ∥ x ) = { x , b = 0 H 1 ( x ) , b = 1 H_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
H 2 H_2 H2 不抗原像。任给像 y y y,找到一个原像 0 ∥ y 0\|y 0∥y 是容易的。但找另一个原像 1 ∥ x 1\|x 1∥x,使得 H 1 ( x ) = y H_1(x)=y H1(x)=y 是困难的,因为 OWHF。
-
另一种更好的构造。假如 f f f 是可逆置换, g g g 是抗碰撞函数,它们的值域、像空间的关系为:不交、互补
f : S 1 → S 1 ′ g : S 2 → S 2 ′ S 1 ∩ S 2 = ∅ , S 1 ′ ∩ S 2 ′ = ∅ S 1 ∪ S 2 = { 0 , 1 } l ( n ) , S 1 ′ ∪ S 2 ′ = { 0 , 1 } n 2 l ( n ) − n = O ( p o l y ( n ) ) f:S_1 \to S_1'\\ g:S_2 \to S_2'\\ S_1 \cap S_2 = \empty,\,\, S_1' \cap S_2' = \empty\\ S_1 \cup S_2 = \{0,1\}^{l(n)},\,\, S_1' \cup S_2' = \{0,1\}^n\\ 2^{l(n) - n} = O(poly(n)) f:S1→S1′g:S2→S2′S1∩S2=∅,S1′∩S2′=∅S1∪S2={0,1}l(n),S1′∪S2′={0,1}n2l(n)−n=O(poly(n))
定义如下 Hash 函数
h ( x ) = { f ( x ) , x ∈ S 1 g ( x ) , x ∈ S 2 h(x) = \left\{ \begin{aligned} f(x), && x \in S_1\\ g(x), && x \in S_2 \end{aligned} \right. h(x)={f(x),g(x),x∈S1x∈S2
当 S 1 , S 2 S_1,S_2 S1,S2 的占比都不可忽略时, h ( x ) h(x) h(x) 是一个不抗原像的抗碰撞(抗第二原像) Hash 函数!
-
MD 迭代不保持 UOW 性。
设 F k : { 0 , 1 } l + t → { 0 , 1 } l F_k:\{0,1\}^{l+t} \to \{0,1\}^l Fk:{0,1}l+t→{0,1}l 是 UOWHF,定义 H s : { 0 , 1 } l + t → { 0 , 1 } l + k H_s:\{0,1\}^{l+t} \to \{0,1\}^{l+k} Hs:{0,1}l+t→{0,1}l+k
H s ( x 1 ∥ x 2 ∥ x 3 ) = { F s ( x 1 ∥ x 2 ∥ x 3 ) ∥ s , x 2 ≠ s 1 l ∥ 1 k , x 2 = s H_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
那么 H s H_s Hs 是 UOWHF,但是 M D 2 ( H s , m ) = H s ( H s ( I V ∥ m 0 ) ∥ m 1 ) MD_2(H_s,m) = H_s(H_s(IV\|m_0)\|m_1) MD2(Hs,m)=Hs(Hs(IV∥m0)∥m1) 不满足 UOW:选取挑战 I V = I V 1 ∥ I V 2 , m = 0 t − k ∥ 0 t − k IV=IV_1\|IV_2,\, m=0^{t-k}\|0^{t-k} IV=IV1∥IV2,m=0t−k∥0t−k,收到 s s s,如果 s ≠ I V 2 s \neq IV_2 s=IV2 则选取 m ′ = 1 t − k ∥ 0 t − k m'=1^{t-k}\|0^{t-k} m′=1t−k∥0t−k,那么 m ′ m' m′ 就是第二原像。 -
一个收缩的 OWF,不一定是 OWHF。即:存在抗原像,但不抗第二原像的 Hash 函数。
令 H 1 H_1 H1 是 OWHF,令 H 2 ( x ′ ∥ x ′ ′ ) = H 1 ( x ′ ′ ) H_2(x'\|x'') = H_1(x'') H2(x′∥x′′)=H1(x′′),明显 H 2 H_2 H2 是抗原像的。
给定 x ′ ∥ x ′ ′ x'\|x'' x′∥x′′,输出 H 2 ( x ′ ∥ x ′ ′ ) H_2(x'\|x'') H2(x′∥x′′) 的第二原像是容易的: x ′ ′ ′ ∥ x ′ ′ x'''\|x'' x′′′∥x′′,其中任取 x ′ ′ ′ ≠ x ′ x''' \neq x' x′′′=x′ 即可。