问题转换
搜索版本的LWE问题 ( A , b = A s + e ) ← L s , χ (A,b=As+e)\leftarrow L_{s,\chi} (A,b=As+e)←Ls,χ,
-
等价于格 L = { A z m o d q ∣ z ∈ Z q n } L=\{Az \mod q | z\in Z^n_q\} L={Azmodq∣z∈Zqn}上的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,q⋅e1,q⋅e2,⋯,q⋅en}的格基约化结果。
-
等价于格 L = { v ∣ v A ≡ 0 m o d q } L=\{v|vA \equiv 0 \mod q\} L={v∣vA≡0modq}上的SIS问题。寻找一个足够短的非零向量 v v v,使得 v A ≡ 0 m o d q vA \equiv 0 \mod q vA≡0modq换句话说,格 L L L上的所有格点,都落在法向量是 v v v的超平面上,超平面之间的距离是 q ∥ v ∥ \dfrac{q}{\|v\|} ∥v∥q。 v ⋅ b ≡ v ⋅ e m o d q v \cdot b \equiv v \cdot e \mod q v⋅b≡v⋅emodq十分接近 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 viA≡0modq的向量 { 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,q⋅e1,q⋅e2,⋯,q⋅em}做格基约化。
其实,上面两个格都是 q q q阶随机格: q Z m ⊂ L ⊂ Z m qZ^m \subset L \subset Z^m qZm⊂L⊂Zm
格基约简(SIS策略)
形如 L = { v ∣ v A ≡ 0 m o d q } L=\{v|vA \equiv 0 \mod q\} L={v∣vA≡0modq}的随机格,它以高概率秩为 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) 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 , 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=1∑n⌊bi~⋅bi~bi~⋅t⌉⋅bi
如果格基
B
B
B是满足Lovasz条件的,那么
∥
v
−
t
∥
<
∥
b
n
~
∥
⋅
2
n
2
−
1
\|v-t\| < \|\tilde{b_n}\| \cdot 2^{\frac{n}{2}-1}
∥v−t∥<∥bn~∥⋅22n−1
对于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}) e∈P(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}) b∈v′+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=1∑nbi~⋅[−2di,2di)=P(B~⋅diag(d1,⋯,dn))
其中
d
1
,
⋯
,
d
n
∈
Z
+
d_1,\cdots,d_n \in Z^+
d1,⋯,dn∈Z+是
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}\| di⋅∥bi~∥都尽可能的一样长。
Liu和Nguyen分析了Babai算法和LP算法,认为它们都是在枚举树的一些高概率枝丫上运行。因此,可以认为这两种算法都是一种剪枝枚举算法。使用极端剪枝技术(GNR),将LP算法的 d i d_i di用 ⌈ c ⋅ d i ⌉ , c < 1 \lceil c \cdot d_i \rceil,c<1 ⌈c⋅di⌉,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+⋯+vn≤D∑(cv⋅i=1∏nxivi)
多项式
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+⋯+vn≤D∑cv⋅yv
将每个单项里的
∏
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}
e←DZ,α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=1∏d(x+i)(x−i)
其中
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} e←DZ,αq,它高概率满足 P ( e ) = 0 P(e)=0 P(e)=0
将 b = a ⋅ s + e b=a \cdot s+e b=a⋅s+e代入多项式,得到 P ( e ) = P ( b − a ⋅ s ) P(e) = P(b - a \cdot s) P(e)=P(b−a⋅s),这是关于 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=ai⋅s+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的单位向量。