参考资料:
基于SIS的OWF
基于LWE的OWF
preimage sampleable trapdoor functions (PSFs)
Preimage Sampleable Functions:
一个可有效计算的函数 f : X → Y f:X \rightarrow Y f:X→Y,定义域 X X X上有可有效采样的分布 D D D;如果存在有效随机算法 f − 1 f^{-1} f−1,对于以下两种采样方式:
1). F o r w a r d Forward Forward:从分布中采样 x ← D x \leftarrow D x←D,令 y = f ( x ) y=f(x) y=f(x)
2). R e v e r s e Reverse Reverse:均匀采样 y ← Y y \leftarrow Y y←Y,令 x = f − 1 ( y ) x = f^{-1}(y) x=f−1(y)
使得 ( x , y = f ( x ) ) (x,y=f(x)) (x,y=f(x))有相同的联合分布,那么 f f f是“preimage sampleable”的。
f A ( x ) f_A(x) fA(x)是满射OWF,其对应的PSFs的 f − 1 f^{-1} f−1输出不唯一,且满足离散高斯分布。
g A ( s , e ) g_A(s,e) gA(s,e)是单射OWF,其对应的PSFs的 f − 1 f^{-1} f−1输出唯一确定。
如果给定格 L L L的陷门,那么求解SIS问题和LWE问题是容易的,因此 f A − 1 ( ⋅ ) f_A^{-1}(\cdot) fA−1(⋅)和 g A − 1 ( ⋅ ) g_A^{-1}(\cdot) gA−1(⋅)可以给出。下面介绍两种主要的陷门:1). 短格基;2). 工具矩阵。
存在有效随机算法,输入任意校验矩阵 A ∈ Z q n × m A \in Z_q^{n \times m} A∈Zqn×m,给出格 L = L ⊥ ( A ) = { x ∈ Z m ∣ A x = 0 ( m o d q ) } L=L^{\perp}(A)=\{x \in Z^m|Ax=0(mod\,q)\} L=L⊥(A)={x∈Zm∣Ax=0(modq)}的HNF基底 B B B。
A j t a i Ajtai Ajtai指出,存在有效随机算法,输入 n , q , m ≥ C n n,q,m \ge Cn n,q,m≥Cn, C C C是常数,输出 (近似) 均匀随机的校验矩阵 A ∈ Z q n × m A \in Z_q^{n \times m} A∈Zqn×m,同时输出格 L = L ⊥ ( A ) = { x ∈ Z m ∣ A x = 0 ( m o d q ) } L=L^{\perp}(A)=\{x \in Z^m|Ax=0(mod\,q)\} L=L⊥(A)={x∈Zm∣Ax=0(modq)}的一组短格基 S ∈ Z m × m S \in Z^{m \times m} S∈Zm×m, ∥ S ∥ = max s i ∥ s i ∥ = O ( p o l y ( n , l o g q ) ) \Vert S \Vert = \max\limits_{s_i} \Vert s_i \Vert = O(poly(n,log\,q)) ∥S∥=simax∥si∥=O(poly(n,logq))。实际上,可以先高斯采样得到 S S S,然后均匀采样 a i S = 0 a_iS=0 aiS=0来组成 A A A;注意,给定一个 A A A,然后再计算陷门 S S S是困难的。
G P V GPV GPV指出,存在有效随机算法,给定格 L L L的短格基 S ∈ R m × m S \in R^{m \times m} S∈Rm×m,对于任意陪集 c + L c+L c+L和任意 s ≥ ∥ S ~ ∥ ⋅ ω ( l o g O ( n / ϵ ) ) s \ge \Vert \widetilde{S} \Vert \cdot \omega(\sqrt{log\,O(n/\epsilon)}) s≥∥S ∥⋅ω(logO(n/ϵ)),输出服从离散高斯分布 D c + L , s D_{c+L,s} Dc+L,s的一个采样 v ∈ c + L v \in c+L v∈c+L;可用于求解SIS
B a b a i Babai Babai指出,存在有效随机算法,给定格 L L L的短格基 S ∈ R m × m S \in R^{m \times m} S∈Rm×m,求解BDD是容易的:给定任意 t = v + e , v ← L ∗ t=v+e,\, v \leftarrow L^* t=v+e,v←L∗,计算:
⌊ t t ⋅ S ⌉ ⋅ S − 1 = v t + ⌊ e t ⋅ S ⌉ ⋅ S − 1 = v t \lfloor t^t \cdot S \rceil \cdot S^{-1} = v^t + \lfloor e^t \cdot S \rceil \cdot S^{-1} = v^t ⌊tt⋅S⌉⋅S−1=vt+⌊et⋅S⌉⋅S−1=vt
结果正确,只要满足 ⌊ e t ⋅ S ⌉ ∈ [ − 0.5 , 0.5 ) m \lfloor e^t \cdot S \rceil \in [-0.5,0.5)^m ⌊et⋅S⌉∈[−0.5,0.5)m;可用于求解LWE
GPV给出了一种基于格的PSFs描述:
校验矩阵 A ∈ Z q n × m A \in Z_q^{n \times m} A∈Zqn×m,格 L = L ⊥ ( A ) L=L^{\perp}(A) L=L⊥(A);对于 A c = u Ac=u Ac=u,定义陪集 L u ⊥ ( A ) : = c + L ∈ Z m / L L_u^\perp(A) := c+L \in Z^m/L Lu⊥(A):=c+L∈Zm/L,且
L u ⊥ ( A ) = { z ∈ Z m ∣ A z = u ∈ Z q n } L_u^\perp(A) = \{z \in Z^m|Az=u \in Z_q^n\} Lu⊥(A)={z∈Zm∣Az=u∈Zqn}
基于SIS问题,单向、抗碰撞的 L a t t i c e − b a s e d P S F s Lattice-based\,\,PSFs Lattice−basedPSFs实例:
短格基的扩展 (extended) 和随机化 (re-randomized):
校验矩阵 A ∈ Z q n × m A \in Z_q^{n \times m} A∈Zqn×m,其陷门 S S S,有 A ⋅ S = 0 ( m o d q ) A\cdot S=0 \,(mod\,q) A⋅S=0(modq);利用 S S S,对于任意的 A 1 A_1 A1,SIS问题 A ⋅ W = − A 1 ( m o d q ) A \cdot W = -A_1 \,(mod\,q) A⋅W=−A1(modq)的短整数解 W W W是容易求的。对于扩展校验矩阵 A ′ = [ A ∣ A 1 ] A'=[A|A_1] A′=[A∣A1],其陷门为:
S ′ = [ S W 0 I ] S' = \left[ \begin{matrix} S && W \\ 0 && I \\ \end{matrix} \right] S′=[S0WI]
利用Gram-Schmidt vectors S ~ \widetilde{S} S 评估 S S S的质量。那么 S ′ ~ = d i a g ( S ~ , I ) \widetilde{S'} = diag(\widetilde{S},I) S′ =diag(S ,I),有 ∥ S ′ ~ ∥ ≤ ∥ S ~ ∥ \Vert \widetilde{S'} \Vert \le \Vert \widetilde{S} \Vert ∥S′ ∥≤∥S ∥
校验矩阵 A ∈ Z q n × m A \in Z_q^{n \times m} A∈Zqn×m,其陷门 S S S,有 A ⋅ S = 0 ( m o d q ) A\cdot S=0 \,(mod\,q) A⋅S=0(modq);利用 S S S,可有效得到若干的独立高斯采样 s ′ s' s′,满足 A ⋅ s ′ = 0 ( m o d q ) A \cdot s' = 0\,(mod\,q) A⋅s′=0(modq),按列组合成新的随机短矩阵 S ′ S' S′,且 ∥ s ′ ∥ ≤ O ( ∥ S ~ ∥ ⋅ m ) \Vert s' \Vert \le O(\Vert \widetilde{S} \Vert \cdot \sqrt m) ∥s′∥≤O(∥S ∥⋅m)
工具 (行) 向量 g = [ 1 , 2 , . . . , 2 l − 1 ] ∈ Z q l g=[1,2,...,2^{l-1}] \in Z_q^l g=[1,2,...,2l−1]∈Zql,其中 l = ⌈ l o g q ⌉ l = \lceil log\,q \rceil l=⌈logq⌉;为方便起见,可以令 q = 2 l q=2^l q=2l
定义 f g ( x ) = g ⋅ x ( m o d q ) f_g(x)=g \cdot x\,(mod\,q) fg(x)=g⋅x(modq) 和 g g ( s , e ) = s t ⋅ g + e ( m o d q ) g_g(s,e)=s^t \cdot g+e\,(mod\,q) gg(s,e)=st⋅g+e(modq)
工具矩阵 G G G,其中 g = [ 1 , 2 , . . . , 2 l − 1 ] ∈ Z q l , 0 ∈ Z q l g=[1,2,...,2^{l-1}] \in Z_q^l,\,\,0 \in Z_q^l g=[1,2,...,2l−1]∈Zql,0∈Zql都是行向量
G : = I n ⊗ g = [ g 0 ⋯ 0 g 0 ⋮ 0 ⋱ ⋮ . . . g ] ∈ Z q n × n l G:=I_n \otimes g= \left[ \begin{array}{c | c c c} g & 0 & \cdots \\ \hline 0 & g & 0 \\ \vdots & 0 & \ddots & \vdots\\ & & ... & g\\ \end{array} \right] \in Z_q^{n \times nl} G:=In⊗g=⎣⎢⎢⎢⎡g0⋮0g0⋯0⋱...⋮g⎦⎥⎥⎥⎤∈Zqn×nl
定义 f G ( x ) = G x ( m o d q ) f_G(x)=Gx\,(mod\,q) fG(x)=Gx(modq) 和 g G ( s , e ) = s t G + e ( m o d q ) g_G(s,e)=s^t G+e\,(mod\,q) gG(s,e)=stG+e(modq),对 G G G分组得到 G = [ G 1 , . . . , G n l ] ∈ ( Z n × l ) n G=[G_1,...,G_{nl}] \in (Z^{n \times l})^n G=[G1,...,Gnl]∈(Zn×l)n,利用 f g − 1 , g g − 1 f_g^{-1},\,g_g^{-1} fg−1,gg−1的解法,可以得到 f G − 1 : G x ↦ x f_G^{-1}:Gx \mapsto x fG−1:Gx↦x 和 g G − 1 : s t G + e ↦ s g_G^{-1}:s^tG+e \mapsto s gG−1:stG+e↦s
定义映射 G − 1 : Z q n → Z n l G^{-1}:Z_q^n \rightarrow Z^{nl} G−1:Zqn→Znl,输入 u u u,输出 G x = u ( m o d q ) Gx=u\,(mod\,q) Gx=u(modq)的满足离散高斯分布的短向量解 x x x (通过分组,分别恢复 x i x_i xi)。 G − 1 G^{-1} G−1不是矩阵,只是一种随机映射函数,满足: G ⋅ G − 1 ( u ) = u ( m o d q ) G \cdot G^{-1}(u) = u\,(mod\,q) G⋅G−1(u)=u(modq), G − 1 ( G ⋅ x ) = x ( m o d q ) G^{-1}(G \cdot x) = x\,(mod\,q) G−1(G⋅x)=x(modq)
给定任意可逆方阵 H ∈ Z q n × n H \in Z_q^{n \times n} H∈Zqn×n,关于 H G HG HG的SIS与LWE是容易的:
对于校验矩阵 A ∈ Z q n × m A \in Z_q^{n \times m} A∈Zqn×m,定义陷门 (trapdoor) 是短矩阵 R ∈ Z m × n l R \in Z^{m \times nl} R∈Zm×nl,相应的标签 (tag) 是可逆矩阵 H ∈ Z q n × n H \in Z_q^{n \times n} H∈Zqn×n,满足: A R = H G ( m o d q ) AR=HG\,(mod\,q) AR=HG(modq);用陷门最大奇异值 s 1 ( R ) : = max ∥ u ∥ = 1 ∥ R u ∥ s_1(R):=\max\limits_{\Vert u \Vert=1} \Vert Ru \Vert s1(R):=∥u∥=1max∥Ru∥来衡量陷门的质量, s 1 ( R ) s_1(R) s1(R)越小那么陷门质量越好。
常数矩阵 G ∈ Z q n × n l G \in Z_q^{n \times nl} G∈Zqn×nl包含 I n I_n In作为子式,确切地说: I n = [ G 0 ∣ G l ∣ . . . ∣ G ( n − 1 ) l ] I_n = [G_0|G_l|...|G_{(n-1)l}] In=[G0∣Gl∣...∣G(n−1)l];因此,若给定 A A A的一个陷门 R ← χ R \leftarrow \chi R←χ,其中 χ \chi χ是 Z q n × n l Z_q^{n \times nl} Zqn×nl上的离散高斯分布,对应的 H H H是: H = [ ( A R ) 0 ∣ ( A R ) l ∣ . . . ∣ ( A R ) ( n − 1 ) l ] H=[(AR)_0|(AR)_l|...|(AR)_{(n-1)l}] H=[(AR)0∣(AR)l∣...∣(AR)(n−1)l]。因此,我们先选取 R R R和 H H H,然后令 A = H G R ( n ) − 1 A=HGR_{(n)}^{-1} A=HGR(n)−1,其中 R ( n ) R_{(n)} R(n)表示一个 n n n阶可逆子方阵。注意,对于给定的 A A A,然后再计算陷门 R R R是困难的。
对于校验矩阵 A ∈ Z q n × m A \in Z_q^{n \times m} A∈Zqn×m,给定短陷门矩阵 R ∈ Z m × n l R \in Z^{m \times nl} R∈Zm×nl
T r a p d o o r P u n c t u i n g Trapdoor\,\,Punctuing TrapdoorPunctuing:
对于均匀随机的 A ˉ ∈ Z q n × m ˉ \bar A \in Z_q^{n \times \bar m} Aˉ∈Zqn×mˉ,短随机矩阵 R ˉ ∈ Z m ˉ × n l \bar R \in Z^{\bar m \times nl} Rˉ∈Zmˉ×nl,随机可逆矩阵 H ∈ Z q n × n H \in Z_q^{n \times n} H∈Zqn×n,易知:
A : = [ A ˉ ∣ H G − A ˉ R ˉ ] ∈ Z q n × ( m ˉ + n l ) A:=[\bar A|HG-\bar A \bar R] \in Z_q^{n \times (\bar m + nl)} A:=[Aˉ∣HG−AˉRˉ]∈Zqn×(mˉ+nl)
R : = [ R ˉ I ] ∈ Z ( m ˉ + n l ) × n l R:=\begin{bmatrix} \bar R\\ I\\ \end{bmatrix} \in Z^{(\bar m + nl) \times nl} R:=[RˉI]∈Z(mˉ+nl)×nl
A R = H G AR=HG AR=HG
进一步的,定义:
A H ′ : = A − [ 0 ∣ H ′ G ] = [ A ˉ ∣ ( H − H ′ ) G − A ˉ R ˉ ] A_{H'}:=A-[0|H'G] = [\bar A|(H-H')G-\bar A \bar R] AH′:=A−[0∣H′G]=[Aˉ∣(H−H′)G−AˉRˉ]
那么只要 H ≠ H ′ H \neq H' H=H′且 H − H ′ H-H' H−H′在 Z q Z_q Zq上可逆 (invertible differences),那么 R R R就是任意的 A H ′ A_{H'} AH′的陷门,对应的标签是 H − H ′ H-H' H−H′
陷门的扩展 (extended) 和随机化 (re-randomized):
校验矩阵 A ∈ Z q n × m A \in Z_q^{n \times m} A∈Zqn×m,其陷门 R R R;对于任意的 A 1 A_1 A1,以及任意可逆矩阵 H ′ H' H′,对于扩展校验矩阵 A ′ = [ A ∣ A 1 ] A'=[A|A_1] A′=[A∣A1],其陷门为:
A ′ [ R ′ I ] = H ′ G A' \begin{bmatrix} R' \\ I \\ \end{bmatrix} =H'G \\ A′[R′I]=H′G
利用 R R R,采样一个关于 A A A的满足离散高斯分布的解 R ′ R' R′:
A R ′ = H ′ G − A 1 AR' = H'G-A_1 AR′=H′G−A1
校验矩阵 A ∈ Z q n × m A \in Z_q^{n \times m} A∈Zqn×m,其陷门 R R R;对于任意可逆矩阵 H ′ H' H′,利用 R R R做离散高斯采样,可以生成对应的新的随机陷门 R ′ R' R′:
A R ′ = H ′ G AR'=H'G AR′=H′G