LWE求解算法

问题转换

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

  1. 等价于格 L = { A z m o d    q ∣ z ∈ Z q n } L=\{Az \mod q | z\in Z^n_q\} L={AzmodqzZqn}上的BDD问题。因为模 q q q,所以格基是 { A 1 , A 2 , ⋯   , A n , q ⋅ e 1 , q ⋅ e 2 , ⋯   , q ⋅ e n } \{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 ∣ v A ≡ 0 m o d    q } L=\{v|vA \equiv 0 \mod q\} L={vvA0modq}上的SIS问题。寻找一个足够短的非零向量 v v v,使得 v A ≡ 0 m o d    q vA \equiv 0 \mod q vA0modq换句话说,格 L L L上的所有格点,都落在法向量是 v v v的超平面上,超平面之间的距离是 q ∥ v ∥ \dfrac{q}{\|v\|} vq v ⋅ b ≡ v ⋅ e m o d    q v \cdot b \equiv v \cdot e \mod q vbvemodq十分接近 0 0 0,所以 b b b接近某个 v v v的超平面。它的格基,可以随机采样 m m m个满足 v i A ≡ 0 m o d    q v_iA \equiv 0 \mod q viA0modq的向量 { v i } \{v_i\} {vi},然后对 { v 1 , v 2 , ⋯   , v m , q ⋅ e 1 , q ⋅ e 2 , ⋯   , q ⋅ e m } \{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}做格基约化。

其实,上面两个格都是 q q q阶随机格: q Z m ⊂ L ⊂ Z m qZ^m \subset L \subset Z^m qZmLZm

格基约简(SIS策略)

形如 L = { v ∣ v A ≡ 0 m o d    q } L=\{v|vA \equiv 0 \mod q\} L={vvA0modq}的随机格,它以高概率秩为 m m m,且体积为 V o l ( L ) ≈ q n Vol(L) \approx q^n Vol(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,\alpha n,q,α的LWE问题实例,格约简算法如果可以达到
log ⁡ δ = log ⁡ 2 ( 1 / f α ( ϵ ) ) 4 n log ⁡ q \log \delta = \dfrac{\log^2(1 / f_\alpha(\epsilon))}{4n \log q} logδ=4nlogqlog2(1/fα(ϵ))
那么区分出 L s , χ L_{s,\chi} Ls,χ的概率为 ϵ \epsilon ϵ

最近平面算法(BDD策略)

Babai算法:

给定格基 B = { b 1 , b 2 , ⋯   , b n } B=\{b_1,b_2,\cdots,b_n\} B={b1,b2,,bn},计算GS正交基 B ~ = { b 1 ~ , b 2 ~ , ⋯   , b n ~ } \tilde{B} = \{\tilde{b_1},\tilde{b_2},\cdots,\tilde{b_n}\} B~={b1~,b2~,,bn~}

对于任意的点 t ∈ S p a n ( 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 , v t,v t,v属于同一个基本平行体。

具体计算方法:
v = ∑ i = 1 n ⌊ b i ~ ⋅ t b i ~ ⋅ b i ~ ⌉ ⋅ b i 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
如果格基 B B B是满足Lovasz条件的,那么 ∥ v − t ∥ < ∥ b n ~ ∥ ⋅ 2 n 2 − 1 \|v-t\| < \|\tilde{b_n}\| \cdot 2^{\frac{n}{2}-1} vt<bn~22n1

对于LWE问题, b = A s + e b=As+e b=As+e,目标是正确地计算出 v = A s v=As v=As,这对于Babai算法来说,条件是 e ∈ P ( B ~ ) e \in P(\tilde{B}) eP(B~)

但是根据几何级数假设, b k ~ / b k + 1 ~ ≈ r > 1 \tilde{b_k}/\tilde{b_{k+1}} \approx r>1 bk~/bk+1~r>1,由GS正交基所围成的基本平行体 P ( B ~ ) P(\tilde{B}) P(B~)的形状将十分狭长。因此 e e e很可能不会落在 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 ′ ≠ v v' \neq v v=v

为了求出正确的格点,Lindner和Peikert将基本平行体扩大,使得
P ′ ( B ~ ) = ∑ i = 1 n b i ~ ⋅ [ − d i 2 , d i 2 ) = P ( B ~ ⋅ d i a g ( d 1 , ⋯   , d n ) ) 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))
其中 d 1 , ⋯   , d n ∈ Z + d_1,\cdots,d_n \in Z^+ d1,,dnZ+ P ( B ~ ) P(\tilde{B}) P(B~)沿各个方向扩大的倍数。因此,LP算法复杂度恰好是Babai算法的 D = ∏ i = 1 n d i D = \prod_{i=1}^{n} d_i D=i=1ndi倍。

由于离散高斯分布是对称的,为了让 e e e尽可能落在 P ′ ( B ~ ) P'(\tilde{B}) P(B~)里,因此启发式的可以令 d i ⋅ ∥ b i ~ ∥ d_i \cdot \|\tilde{b_i}\| dibi~都尽可能的一样长。

Liu和Nguyen分析了Babai算法和LP算法,认为它们都是在枚举树的一些高概率枝丫上运行。因此,可以认为这两种算法都是一种剪枝枚举算法。使用极端剪枝技术(GNR),将LP算法的 d i d_i di ⌈ c ⋅ d i ⌉ , c < 1 \lceil c \cdot d_i \rceil,c<1 cdi,c<1代替,LP算法的效率提升了 c c c倍,同时成功概率任大于原始LP算法的 1 / c 1/c 1/c倍。利用随机化技术,多次调用LP算法,效率比原始版本提升了 2 32 2^{32} 232倍。

线性化算法(直接求解策略)

Arora-Ge线性化算法。

变量 x 1 , x 2 , ⋯   , x n x_1,x_2,\cdots,x_n x1,x2,,xn,非负整数 v 1 , v 2 , ⋯   , v n v_1,v_2,\cdots,v_n v1,v2,,vn,令 v = [ v 1 , v 2 , ⋯   , v n ] v=[v_1,v_2,\cdots,v_n] v=[v1,v2,,vn],单项 ∏ i = 1 n x i v i \prod_{i=1}^{n} x_i^{v_i} i=1nxivi的系数记做 c v c_v cv,则 D D D n n n元多项式写作:
p ( x 1 , ⋯   , x n ) = ∑ v 1 + ⋯ + v n ≤ D ( c v ⋅ ∏ i = 1 n x i v i ) 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 ) = ∑ v 1 + ⋯ + v n ≤ D c v ⋅ y v L(p) = \sum_{v_1+\cdots+v_n \le D} c_v \cdot y_v L(p)=v1++vnDcvyv
将每个单项里的 ∏ i = 1 n x i v i \prod_{i=1}^{n} x_i^{v_i} i=1nxivi用未知变量 y v y_v yv代替,那么 L ( p ) L(p) L(p)是多元线性多项式。变量的的个数是 N = ( n + D n ) N = \binom{n+D}{n} N=(nn+D),等于横向 n n n步纵向 D D D步的路径个数。

由于LWE问题的噪声 e ← D Z , α q e \leftarrow D_{Z,\alpha q} eDZ,αq的大小以高概率约束在 3 α q 3 \alpha q 3αq范围内,因此可以写出约束 e e e的大小的多项式
P ( x ) = x ∏ i = 1 d ( 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 \rceil d=kαq,多项式度数为 D = 2 d + 1 D=2d+1 D=2d+1

对于一个离散高斯噪声 e ← D Z , α q e \leftarrow D_{Z,\alpha q} eDZ,αq,它高概率满足 P ( e ) = 0 P(e)=0 P(e)=0

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值