问题转换

搜索版本的LWE问题(A,b=As+e)←Ls,χ(A,b=As+e)\leftarrow L_{s,\chi}(A,b=As+e)Ls,χ

  1. 等价于格L={Azmod  q∣z∈Zqn}L=\{Az \mod q | z\in Z^n_q\}L={AzmodqzZqn}上的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,qe1,qe2,,qen}的格基约化结果。

  2. 等价于格L={v∣vA≡0mod  q}L=\{v|vA \equiv 0 \mod q\}L={vvA0modq}上的SIS问题。寻找一个足够短的非零向量vvv,使得vA≡0mod  qvA \equiv 0 \mod qvA0modq换句话说,格LLL上的所有格点,都落在法向量是vvv的超平面上,超平面之间的距离是q∥v∥\dfrac{q}{\|v\|}vqv⋅b≡v⋅emod  qv \cdot b \equiv v \cdot e \mod qvbvemodq十分接近000,所以bbb接近某个vvv的超平面。它的格基,可以随机采样mmm个满足viA≡0mod  qv_iA \equiv 0 \mod qviA0modq的向量{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,qe1,qe2,,qem}做格基约化。

其实,上面两个格都是qqq阶随机格:qZm⊂L⊂ZmqZ^m \subset L \subset Z^mqZmLZm

格基约简(SIS策略)

形如L={v∣vA≡0mod  q}L=\{v|vA \equiv 0 \mod q\}L={vvA0modq}的随机格,它以高概率秩为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⁡δ=log⁡2(1/fα(ϵ))4nlog⁡q \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)tSpan(B),返回格点v∈L(B)v \in L(B)vL(B),满足t∈v+P(B~)t \in v+P(\tilde{B})tv+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=1nbi~bi~bi~tbi
如果格基BBB是满足Lovasz条件的,那么∥v−t∥<∥bn~∥⋅2n2−1\|v-t\| < \|\tilde{b_n}\| \cdot 2^{\frac{n}{2}-1}vt<bn~22n1

对于LWE问题,b=As+eb=As+eb=As+e,目标是正确地计算出v=Asv=Asv=As,这对于Babai算法来说,条件是e∈P(B~)e \in P(\tilde{B})eP(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})bv+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=1nbi~[2di,2di)=P(B~diag(d1,,dn))
其中d1,⋯ ,dn∈Z+d_1,\cdots,d_n \in Z^+d1,,dnZ+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}\|dibi~都尽可能的一样长。

Liu和Nguyen分析了Babai算法和LP算法,认为它们都是在枚举树的一些高概率枝丫上运行。因此,可以认为这两种算法都是一种剪枝枚举算法。使用极端剪枝技术(GNR),将LP算法的did_idi⌈c⋅di⌉,c<1\lceil c \cdot d_i \rceil,c<1cdi,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,则DDDnnn元多项式写作:
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++vnD(cvi=1nxivi)
多项式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++vnDcvyv
将每个单项里的∏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}eDZ,α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=1d(x+i)(xi)
其中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}eDZ,αq,它高概率满足P(e)=0P(e)=0P(e)=0

b=a⋅s+eb=a \cdot s+eb=as+e代入多项式,得到P(e)=P(b−a⋅s)P(e) = P(b - a \cdot s)P(e)=P(bas),这是关于nnn维向量sss的多项式。

给定mmm个LWE样本(ai,bi=ai⋅s+ei)(a_i,b_i = a_i \cdot s+e_i)(ai,bi=ais+ei),我们便得到了线性方程组。线性方程组的所有解y=[yv]y=[y_v]y=[yv],有高概率满足yei=siy_{e_i}=s_iyei=si(这有问题),其中eie_iei是第iii个分量是111的单位向量。

更多推荐