LWE求解算法
问题转换
搜索版本的LWE问题(A,b=As+e)←Ls,χ(A,b=As+e)\leftarrow L_{s,\chi}(A,b=As+e)←Ls,χ,
-
等价于格L={Azmod q∣z∈Zqn}L=\{Az \mod q | z\in Z^n_q\}L={Azmodq∣z∈Zqn}上的BDD问题。因为模qqq,所以格基是{A1,A2,⋯ ,An,q⋅e1,q⋅e2,⋯ ,q⋅en}\{A_1,A_2,\cdots,A_n, q \cdot e_1,q \cdot e_2, \cdots, q \cdot e_n\}{A1,A2,⋯,An,q⋅e1,q⋅e2,⋯,q⋅en}的格基约化结果。
-
等价于格L={v∣vA≡0mod q}L=\{v|vA \equiv 0 \mod q\}L={v∣vA≡0modq}上的SIS问题。寻找一个足够短的非零向量vvv,使得vA≡0mod qvA \equiv 0 \mod qvA≡0modq换句话说,格LLL上的所有格点,都落在法向量是vvv的超平面上,超平面之间的距离是q∥v∥\dfrac{q}{\|v\|}∥v∥q。v⋅b≡v⋅emod qv \cdot b \equiv v \cdot e \mod qv⋅b≡v⋅emodq十分接近000,所以bbb接近某个vvv的超平面。它的格基,可以随机采样mmm个满足viA≡0mod qv_iA \equiv 0 \mod qviA≡0modq的向量{vi}\{v_i\}{vi},然后对{v1,v2,⋯ ,vm,q⋅e1,q⋅e2,⋯ ,q⋅em}\{v_1,v_2,\cdots,v_m, q \cdot e_1,q \cdot e_2, \cdots, q \cdot e_m\}{v1,v2,⋯,vm,q⋅e1,q⋅e2,⋯,q⋅em}做格基约化。
其实,上面两个格都是qqq阶随机格:qZm⊂L⊂ZmqZ^m \subset L \subset Z^mqZm⊂L⊂Zm
格基约简(SIS策略)
形如L={v∣vA≡0mod q}L=\{v|vA \equiv 0 \mod q\}L={v∣vA≡0modq}的随机格,它以高概率秩为mmm,且体积为Vol(L)≈qnVol(L) \approx q^nVol(L)≈qn
令ϵ=exp(−π(∥v∥⋅α)2)\epsilon = \exp(-\pi(\|v\| \cdot \alpha)^2)ϵ=exp(−π(∥v∥⋅α)2),解得∥v∥=1α⋅ln(1/ϵ)π\|v\| = \dfrac{1}{\alpha} \cdot \sqrt{\dfrac{\ln(1 / \epsilon)}{\pi}}∥v∥=α1⋅πln(1/ϵ),记做fα(ϵ)f_{\alpha}(\epsilon )fα(ϵ)
对于参数是n,q,αn,q,\alphan,q,α的LWE问题实例,格约简算法如果可以达到
logδ=log2(1/fα(ϵ))4nlogq
\log \delta = \dfrac{\log^2(1 / f_\alpha(\epsilon))}{4n \log q}
logδ=4nlogqlog2(1/fα(ϵ))
那么区分出Ls,χL_{s,\chi}Ls,χ的概率为ϵ\epsilonϵ
最近平面算法(BDD策略)
Babai算法:
给定格基B={b1,b2,⋯ ,bn}B=\{b_1,b_2,\cdots,b_n\}B={b1,b2,⋯,bn},计算GS正交基B~={b1~,b2~,⋯ ,bn~}\tilde{B} = \{\tilde{b_1},\tilde{b_2},\cdots,\tilde{b_n}\}B~={b1~,b2~,⋯,bn~}
对于任意的点t∈Span(B)t \in Span(B)t∈Span(B),返回格点v∈L(B)v \in L(B)v∈L(B),满足t∈v+P(B~)t \in v+P(\tilde{B})t∈v+P(B~),即t,vt,vt,v属于同一个基本平行体。
具体计算方法:
v=∑i=1n⌊bi~⋅tbi~⋅bi~⌉⋅bi
v = \sum_{i=1}^{n} \lfloor \dfrac{\tilde{b_i} \cdot t}{\tilde{b_i} \cdot \tilde{b_i}} \rceil \cdot b_i
v=i=1∑n⌊bi~⋅bi~bi~⋅t⌉⋅bi
如果格基BBB是满足Lovasz条件的,那么∥v−t∥<∥bn~∥⋅2n2−1\|v-t\| < \|\tilde{b_n}\| \cdot 2^{\frac{n}{2}-1}∥v−t∥<∥bn~∥⋅22n−1
对于LWE问题,b=As+eb=As+eb=As+e,目标是正确地计算出v=Asv=Asv=As,这对于Babai算法来说,条件是e∈P(B~)e \in P(\tilde{B})e∈P(B~)
但是根据几何级数假设,bk~/bk+1~≈r>1\tilde{b_k}/\tilde{b_{k+1}} \approx r>1bk~/bk+1~≈r>1,由GS正交基所围成的基本平行体P(B~)P(\tilde{B})P(B~)的形状将十分狭长。因此eee很可能不会落在P(B~)P(\tilde{B})P(B~)内部,这使得b∉v+P(B~)b \notin v+P(\tilde{B})b∈/v+P(B~),因此Babai算法的输出是满足b∈v′+P(B~)b \in v' + P(\tilde{B})b∈v′+P(B~)的另一个格点v′≠vv' \neq vv′=v
为了求出正确的格点,Lindner和Peikert将基本平行体扩大,使得
P′(B~)=∑i=1nbi~⋅[−di2,di2)=P(B~⋅diag(d1,⋯ ,dn))
P'(\tilde{B}) = \sum_{i=1}^{n} \tilde{b_i} \cdot [-\dfrac{d_i}{2},\dfrac{d_i}{2}) = P(\tilde{B} \cdot diag(d_1,\cdots,d_n))
P′(B~)=i=1∑nbi~⋅[−2di,2di)=P(B~⋅diag(d1,⋯,dn))
其中d1,⋯ ,dn∈Z+d_1,\cdots,d_n \in Z^+d1,⋯,dn∈Z+是P(B~)P(\tilde{B})P(B~)沿各个方向扩大的倍数。因此,LP算法复杂度恰好是Babai算法的D=∏i=1ndiD = \prod_{i=1}^{n} d_iD=∏i=1ndi倍。
由于离散高斯分布是对称的,为了让eee尽可能落在P′(B~)P'(\tilde{B})P′(B~)里,因此启发式的可以令di⋅∥bi~∥d_i \cdot \|\tilde{b_i}\|di⋅∥bi~∥都尽可能的一样长。
Liu和Nguyen分析了Babai算法和LP算法,认为它们都是在枚举树的一些高概率枝丫上运行。因此,可以认为这两种算法都是一种剪枝枚举算法。使用极端剪枝技术(GNR),将LP算法的did_idi用⌈c⋅di⌉,c<1\lceil c \cdot d_i \rceil,c<1⌈c⋅di⌉,c<1代替,LP算法的效率提升了ccc倍,同时成功概率任大于原始LP算法的1/c1/c1/c倍。利用随机化技术,多次调用LP算法,效率比原始版本提升了2322^{32}232倍。
线性化算法(直接求解策略)
Arora-Ge线性化算法。
变量x1,x2,⋯ ,xnx_1,x_2,\cdots,x_nx1,x2,⋯,xn,非负整数v1,v2,⋯ ,vnv_1,v_2,\cdots,v_nv1,v2,⋯,vn,令v=[v1,v2,⋯ ,vn]v=[v_1,v_2,\cdots,v_n]v=[v1,v2,⋯,vn],单项∏i=1nxivi\prod_{i=1}^{n} x_i^{v_i}∏i=1nxivi的系数记做cvc_vcv,则DDD次nnn元多项式写作:
p(x1,⋯ ,xn)=∑v1+⋯+vn≤D(cv⋅∏i=1nxivi)
p(x_1,\cdots,x_n) = \sum_{v_1+\cdots+v_n \le D} (c_v \cdot \prod_{i=1}^{n} x_i^{v_i})
p(x1,⋯,xn)=v1+⋯+vn≤D∑(cv⋅i=1∏nxivi)
多项式p(⋅)p(\cdot)p(⋅)的线性化定义为
L(p)=∑v1+⋯+vn≤Dcv⋅yv
L(p) = \sum_{v_1+\cdots+v_n \le D} c_v \cdot y_v
L(p)=v1+⋯+vn≤D∑cv⋅yv
将每个单项里的∏i=1nxivi\prod_{i=1}^{n} x_i^{v_i}∏i=1nxivi用未知变量yvy_vyv代替,那么L(p)L(p)L(p)是多元线性多项式。变量的的个数是N=(n+Dn)N = \binom{n+D}{n}N=(nn+D),等于横向nnn步纵向DDD步的路径个数。
由于LWE问题的噪声e←DZ,αqe \leftarrow D_{Z,\alpha q}e←DZ,αq的大小以高概率约束在3αq3 \alpha q3αq范围内,因此可以写出约束eee的大小的多项式
P(x)=x∏i=1d(x+i)(x−i)
P(x) = x \prod_{i=1}^{d}(x+i)(x-i)
P(x)=xi=1∏d(x+i)(x−i)
其中d=⌈kαq⌉d = \lceil k \alpha q \rceild=⌈kαq⌉,多项式度数为D=2d+1D=2d+1D=2d+1
对于一个离散高斯噪声e←DZ,αqe \leftarrow D_{Z,\alpha q}e←DZ,αq,它高概率满足P(e)=0P(e)=0P(e)=0
将b=a⋅s+eb=a \cdot s+eb=a⋅s+e代入多项式,得到P(e)=P(b−a⋅s)P(e) = P(b - a \cdot s)P(e)=P(b−a⋅s),这是关于nnn维向量sss的多项式。
给定mmm个LWE样本(ai,bi=ai⋅s+ei)(a_i,b_i = a_i \cdot s+e_i)(ai,bi=ai⋅s+ei),我们便得到了线性方程组。线性方程组的所有解y=[yv]y=[y_v]y=[yv],有高概率满足yei=siy_{e_i}=s_iyei=si(这有问题),其中eie_iei是第iii个分量是111的单位向量。
更多推荐

所有评论(0)