格密码3:最短向量问题、Minkowski 定理和 Babai 算法

格上的最短向量问题、Mingkowski 定理和 Babai 算法

Short vectors in lattices

这一节对应教材的6.5.

格中最基本的计算困难问题为寻找格中最短的非零向量和给定一个不在格中的向量,寻找一个与之最近的向量。这一节我们主要从理论上来讨论这些问题。

不过在讨论最短向量问题之前,首先应该证明格中最短向量的存在性。格的离散性保证了长度最短的非零向量的存在性[1]。至于再严格的证明我也真的没有找到😭

格的离散性(discret)是指:每个点 x ∈ Z n x\in\Z^n xZn R n \R^n Rn 中都存在一个邻域,在该邻域内 x x x​ 是唯一的格点。[2]

The shortest vector problem and the closest vector problem

我们首先对两个格上的基本问题进行讨论。

最短向量问题(The Shortest Vector Problem, SVP): 寻找一个非零格向量 v v v,使得 Euclidean norm ∥ v ∥ \left\lVert v\right\rVert v 最小。

最近向量问题(The Closest Vector Problem, CVP): 给定一个不在 L L L 中的向量 w ∈ R m w\in \mathbb{R}^m wRm,寻找一个格中的向量 v ∈ L v\in L vL,使得 Euclidean norm ∥ w − v ∥ \left\lVert w-v\right\rVert wv 最小。

Remark. 注意,格中的最短非零向量不止一个,例如在 Z 2 \mathbb{Z}^2 Z2 中, ( 0 , ± 1 ) , ( ± 1 , 0 ) (0,\pm1), (\pm1,0) (0,±1),(±1,0) 都是 SVP 的解。CVP同理。

SVP 和 CVP 属于计算上的困难问题。此外,即使是 SVP 和 CVP 的近似解,在纯数学或者应用数学的不同领域也有很多有趣的应用。在计算复杂性框架下,SVP 在随机归约假设(randomized reduction hypothesis*)下是 N P \mathcal{NP} NP-hard,而精确的 CVP 是 N P \mathcal{NP} NP-hard.

*This hypothesis means that the class of polynomial-time algorithms is enlarged to include those that are not deterministic, but will, with high probability, terminate in poly nomial time with a correct result. (教材小注)

在实际中,CVP 被认为比 SVP 稍难一点(a little bit harder),因为 CVP 经常能够被归约到稍微更高维度(a slightly higher dimension)的 SVP。下面我们介绍 SVP 和 CVP 的几个重要的变体。

最短基问题(Shortest Basis Problem, SBP): 寻找格的一个基底 v 1 , … , v n v_1,\dots,v_n v1,,vn 使得在某种意义下是最短的。例如,我们可能会要求:
max ⁡ 1 ≤ i ≤ n ∥ v i ∥ or ∑ i = 1 n ∥ v i ∥ 2 \max_{1\leq i \leq n} \left\lVert v_i\right\rVert\quad \text{or}\quad \sum_{i=1}^n \left\lVert v_i\right\rVert^2 1inmaxviori=1nvi2
最小。因此 SBP 有很多不同的版本,这取决于我们如何衡量一组基的“大小(size)”。

近似最短向量问题(Approximate Shortest Vector Problem, apprSVP): ψ ( n ) ≥ 1 \psi(n) \geq 1 ψ(n)1 n n n 的一个函数。在 n n n 维 lattice L L L 中,寻找一个非零向量,它的长度不会超过最短非零向量长度的 ψ ( n ) \psi(n) ψ(n) 倍。即,令 v shortest v_{\text{shortest}} vshortest 表示 L L L 中的最短非零向量,寻找非零向量 v ∈ L v\in L vL 满足:
∥ v ∥ ≤ ψ ( n ) ∥ v shortest ∥ . \left\lVert v\right\rVert \leq \psi(n) \left\lVert v_{\text{shortest}}\right\rVert. vψ(n)vshortest.
ψ ( n ) \psi(n) ψ(n) 的不同选择会得到不同的 apprSVP。例如:
∥ v ∥ ≤ 3 n ∥ v shortest ∥ or ∥ v ∥ ≤ 2 n / 2 ∥ v shortest ∥ \left\lVert v\right\rVert \leq 3\sqrt{n}\left\lVert v_\text{{shortest}}\right\rVert \quad \text{or} \quad \left\lVert v\right\rVert \leq 2^{n/2} \left\lVert v_\text{{shortest}}\right\rVert v3n vshortestorv2n/2vshortest
显然能够解决前一个问题的算法,也能被用来解决后一个问题。

近似最近向量问题(Approximate Closest Vector Problem, apprCVP): ψ ( n ) ≥ 1 \psi(n) \geq 1 ψ(n)1 n n n 的一个函数。给定一个向量 w ∈ R m w\in \mathbb{R}^m wRm,寻找一个非零格向量 v ∈ L v\in L vL 使得:
∥ v − w ∥ ≤ ψ ( n ) ⋅ dist ( w , L ) . \left\lVert v-w\right\rVert \leq \psi(n)\cdot \text{dist}(w, L). vwψ(n)dist(w,L).
其中, dist ( w , L ) \text{dist}(w,L) dist(w,L) 表示 w w w 与格 L L L 中最近的向量之间的 Euclidean 距离。

Hermite’s theorem and Minkowski’s theorem

格中最短非零向量的长度,在一定程度上取决于维数(dimension)和行列式(determinant)。下面的定理给出了我们一个显式的上界。

Theorem (Hermite’s Theorem). 每一个维数为 n n n 的格均包含了一个非零向量 v ∈ L v\in L vL 满足:
∥ v ∥ ≤ n det ⁡ ( L ) 1 / n . \left\lVert v\right\rVert \leq \sqrt{n} \det(L) ^{1/n}. vn det(L)1/n.
Remark. 对于给定的维数 n n n,Hermite 常数(Hermite’s constant) γ n \gamma_n γn 表示使得任何 n n n 维的格 L L L,都包含一个满足下式的非零向量 v ∈ L v\in L vL
∥ v ∥ 2 ≤ γ n det ⁡ ( L ) 2 / n . \left\lVert v\right\rVert^2 \leq \gamma_n \det(L) ^{2/n}. v2γndet(L)2/n.
的最小值。

根据定义我们可以得到 γ n ≤ n \gamma_n \leq n γnn. 而对于 γ n \gamma_n γn 的准确值我们只知道 1 ≤ n ≤ 8 1\leq n \leq 8 1n8 n = 24 n=24 n=24 的情况:
γ 2 2 = 4 3 , γ 3 3 = 2 , γ 4 4 = 4 , , γ 5 5 = 8 , γ 6 6 = 64 3 , γ 7 7 = 64 , γ 8 8 = 256 \gamma_2^2=\frac{4}{3},\quad \gamma_3^3=2,\quad\gamma_4^4=4,\quad,\gamma_5^5=8,\quad\gamma_6^6=\frac{64}{3},\quad\gamma_7^7=64,\quad\gamma_8^8=256 γ22=34,γ33=2,γ44=4,,γ55=8,γ66=364,γ77=64,γ88=256
以及 γ 24 = 4 \gamma_{24}=4 γ24=4.

在密码学中,我们主要对 γ n \gamma_n γn n n n 比较大的时候感兴趣。当 n n n 很大时, Hermite 常数满足:
n 2 π e ≤ γ n ≤ n π e , \frac{n}{2\pi e} \leq \gamma_n \leq \frac{n}{\pi e}, 2πenγnπen,
其中 π = 3.14159 … \pi=3.14159\dots π=3.14159 e = 2.71828 … e=2.71828\dots e=2.71828 都是一般的常数。

Remark. Hermite 定理有很多版本,能够处理不止一个向量的情形。例如,我们可以证明一个 n n n 维的 lattice L L L 总有一组基满足:
∥ v 1 ∥ ∥ v 2 ∥ … ∥ v n ∥ ≤ n n / 2 ( det ⁡ ( L ) ) \left\lVert v_1\right\rVert\left\lVert v_2\right\rVert\dots\left\lVert v_n\right\rVert\leq n^{n/2}(\det(L)) v1v2vnnn/2(det(L))

这个证明我能想到的就是利用 Minkowski 第二定理来直接得到,Minkowski 定理将在后面介绍。

结合 Hadamard 不等式: ∥ v 1 ∥ ∥ v 2 ∥ … ∥ v n ∥ ≥ det ⁡ ( L ) \left\lVert v_1\right\rVert\left\lVert v_2\right\rVert\dots\left\lVert v_n\right\rVert \geq \det(L) v1v2vndet(L),可以得到:
1 n ≤ ( det ⁡ ( L ) ∥ v 1 ∥ ∥ v 2 ∥ … ∥ v n ∥ ) 1 / n ≤ 1 \frac{1}{\sqrt{n}} \leq \left( \frac{\det(L)}{\left\lVert v_1\right\rVert\left\lVert v_2\right\rVert\dots\left\lVert v_n\right\rVert}\right)^{1/n} \leq 1 n 1(v1v2vndet(L))1/n1
定义基底 B = { v 1 , … , v n } \mathcal{B}=\{v_1,\dots,v_n\} B={v1,,vn} 的 Hadamard 比率(Hadamard ratio)为:
H ( B ) = ( det ⁡ ( L ) ∥ v 1 ∥ ∥ v 2 ∥ … ∥ v n ∥ ) 1 / n \mathcal{H}(\mathcal{B})=\left( \frac{\det(L)}{\left\lVert v_1\right\rVert\left\lVert v_2\right\rVert\dots\left\lVert v_n\right\rVert}\right)^{1/n} H(B)=(v1v2vndet(L))1/n
因此 0 < H ( B ) ≤ 1 0<\mathcal{H}(\mathcal{B})\leq 1 0<H(B)1,且比值越接近于1,基底向量越趋向于正交(其实就是 Hadamard 不等式的结论)。Hadamard 比率的倒数有时被称为正交性缺陷(orthogonality defect)。

Hermite 定理的证明利用了 Minkowski 定理,我们将在后面介绍。为了介绍 Minkowski 定理,我们引入一个有用的符号表示法并给出一些基本定义。

Definition. 对于任意的 a ∈ R n a \in \mathbb{R}^n aRn 和任意的 R > 0 R >0 R>0,以 a a a 为中心,半径为 R R R 的(闭)球(closed ball)是集合:
B R ( a ) = { x ∈ R n :   ∥ x − a ∥ ≤ R } . \mathbb{B}_R(a)=\{x\in \mathbb{R}^n:\ \left\lVert x-a\right\rVert\leq R\}. BR(a)={xRn: xaR}.
Definition. S S S R n \mathbb{R}^n Rn 的一个子集。

  1. S S S 是有界的(bounded),如果 S S S 中的向量长度是有界的。即如果存在一个半径 R R R,使得 S S S 被包含在球 B R ( 0 ) \mathbb{B}_R(0) BR(0)中,则称 S S S 有界。
  2. S S S​ 是对称的(symmetric),如果对于 S S S​ 中的每个点 a a a​,则其逆 − a -a a​ 也在 S S S​ 中。
  3. S S S 是凸的(convex),如果 S S S 中的任意两点 a a a b b b 满足,连接 a a a b b b 的整个线段完全位于 S S S 内。
  4. S S S 是闭的(closed),如果对于点 a ∈ R n a\in \mathbb{R}^n aRn 满足,每个以 a a a 为中心、半径为 R R R 的球 B R ( a ) \mathbb{B}_R(a) BR(a) 都包含 S S S 中的点,则 a a a 属于 S S S​。

可以在2维或3维上举个例子帮助理解。

Theorem (Minkowski’s Theorem). L ⊂ R n L \subset \mathbb{R}^n LRn 是一个 n n n 维的 lattice,令 S ⊂ R n S \subset \mathbb{R}^n SRn 是一个对称凸集合(symmetric convex set),其体积(volume)满足:
Vol ( S ) > 2 n det ⁡ ( L ) . \text{Vol}(S) > 2^n\det(L). Vol(S)>2ndet(L).
S S S 包含一个非零的格向量。如果 S S S 同时也是闭的,则条件可以放宽到 Vol ( S ) ≥ 2 n det ⁡ ( L ) . \text{Vol}(S) \geq 2^n\det(L). Vol(S)2ndet(L).

定理也称被为 Minkowski 凸体定理(Minkowski convex body theorem)。

Proof. F \mathcal{F} F 表示 L L L 的基本域。我们在基本域一节已经讨论过,对于任意 a ∈ S a\in S aS,都能被唯一的表示为:
a = v a + w a with  v a ∈ L  and  w a ∈ F . a=v_a+w_a\quad \text{with}\ v_a\in L\ \text{and}\ w_a \in \mathcal{F}. a=va+wawith vaL and waF.
我们令 S ′ = 1 2 S S^{'} = \frac{1}{2}S S=21S,即将 S S S 缩小两倍:
S ′ = 1 2 S = { 1 2 a :   a ∈ S } S^{'}=\frac{1}{2}S=\left\{\frac{1}{2}a:\ a\in S\right\} S=21S={21a: aS}
考虑映射:
f :   S ′ → F , 1 2 a ↦ w 1 2 a . \begin{aligned} f:\ &S^{'} \rightarrow \mathcal{F},\\ &\frac{1}{2}a \mapsto w_{\frac{1}{2}a}. \end{aligned} f: SF,21aw21a.
S S S 缩小 2 倍会使其体积变为原来的 2 n 2^n 2n,于是:
Vol ( 1 2 S ) = 1 2 n Vol ( S ) > det ⁡ ( L ) = Vol ( F ) . \text{Vol}(\frac{1}{2}S)=\frac{1}{2^n}\text{Vol}(S) > \det(L) = \text{Vol}(\mathcal{F}). Vol(21S)=2n1Vol(S)>det(L)=Vol(F).
这里我们利用了假设 Vol ( S ) > 2 n det ⁡ ( L ) \text{Vol}(S)>2^n \det(L) Vol(S)>2ndet(L)

映射 f f f 由有限个平移映射(translation map)组成(这里使用了 S S S 有界的假设),因此该映射是保持体积的。定义域 S ′ S^{'} S 的体积严格大于值域 F \mathcal{F} F 的体积,意味着存在不同的点 1 2 a 1 \frac{1}{2}a_1 21a1 1 2 a 2 \frac{1}{2}a_2 21a2,映射到了 F \mathcal{F} F​ 中相同的像:
1 2 a 1 = v 1 + w and 1 2 a 2 = v 2 + w with  v 1 , v 2 ∈ L  and  w ∈ F . \frac{1}{2}a_1=v_1+w\quad \text{and} \quad \frac{1}{2}a_2=v_2 + w \quad\text{with}\ v_1,v_2\in L\ \text{and}\ w \in \mathcal{F}. 21a1=v1+wand21a2=v2+wwith v1,v2L and wF.

S , S ′ , F S, S^{'}, \mathcal{F} S,S,F 都是 R n \mathbb{R}^n Rn 的子集合,那么映射 f f f 相当于是将在 S ′ S^{'} S 中的那些点/向量给平移 到了 F \mathcal{F} F 中,本质其实都是在 R n \mathbb{R}^n Rn 中移动点。因此经过有限次的平移后,这些点所构成的体积应该是不变的,即保持体积。

但现在经过映射后,反而体积变小了,这说明 f f f 不是一个单射,否则应该有
f ( S ′ ) ⊂ F ⇒ Vol ( S ′ ) = Vol ( f ( S ′ ) ) ≤ Vol ( F ) f(S^{'}) \subset \mathcal F \Rightarrow \text{Vol}(S^{'})=\text{Vol}(f(S^{'})) \leq \text{Vol}(\mathcal{F}) f(S)FVol(S)=Vol(f(S))Vol(F)
在这里插入图片描述

但这就与我们的假设 Vol ( S ) > 2 n det ⁡ ( L ) \text{Vol}(S)>2^n \det(L) Vol(S)>2ndet(L) 矛盾了,因此有 S ′ S^{'} S 中不同的原像映射到了相同的 F \mathcal{F} F 中的像。
在这里插入图片描述

两式相减得到非零向量:
1 2 a 1 − 1 2 a 2 = v 1 − v 2 ∈ L . \frac{1}{2}a_1-\frac{1}{2}a_2=v_1-v_2 \in L. 21a121a2=v1v2L.
同时:
1 2 a 1 + ( − 1 2 a 2 ) ⏞ S  is symmetric, so  − a 2  is in  S ⏟ This is the midpoint of the  line segment from  a 1  to  − a 2 , so it is in  S  by convexity ∈ S \underbrace{\frac{1}{2}a_1+\overbrace{(-\frac{1}{2}a_2)}^{S\text{ is symmetric, so } -a_2 \text{ is in } S}}_{ \begin{aligned} \text{This is the midpoint of the }\\ \text{line segment from }a_1\text{ to }-a_2,\\ \text{so it is in } S \text{ by convexity} \end{aligned} }\in S This is the midpoint of the line segment from a1 to a2,so it is in S by convexity 21a1+(21a2) S is symmetric, so a2 is in SS
因此:
0 ≠ v 1 − v 2 ∈ S ∩ L , 0 \neq v_1 -v_2 \in S\cap L, 0=v1v2SL,
于是我们在 S S S 中构建了一个非零格点。

Proof of Hermite’s theorem. L ⊂ R n L \subset \mathbb{R}^n LRn 是一个 lattice,令 S S S 表示 R n \mathbb{R}^n Rn 上的以0为中心,边长长为 2 B 2B 2B 的一个超方形 (hypercube),
S = { ( x 1 , … , x n ) ∈ R n :   − B ≤ x i ≤ B for all  1 ≤ i ≤ n } . S=\{(x_1,\dots,x_n)\in \mathbb{R}^n:\ -B \leq x_i\leq B \quad \text{for all }1 \leq i \leq n\}. S={(x1,,xn)Rn: BxiBfor all 1in}.
集合 S S S 满足对称性、封闭性且有界,其体积为:
Vol ( S ) = ( 2 B ) n \text{Vol}(S) = (2B)^n Vol(S)=(2B)n
因此,如果我们令 B = det ⁡ ( L ) 1 / n B=\det(L)^{1/n} B=det(L)1/n,则 Vol ( S ) = 2 n det ⁡ ( L ) \text{Vol}(S)=2^n\det(L) Vol(S)=2ndet(L),此时应用 Minkowski 定理便能推导出存在一个非零向量 0 ≠ a ∈ S ∩ L 0\neq a \in S \cap L 0=aSL。用坐标表示 a = ( a 1 , … , a n ) ,   − B ≤ a i ≤ B a=(a_1,\dots,a_n),\ -B \leq a_i\leq B a=(a1,,an), BaiB,根据 S S S 的定义我们有:
∥ a ∥ = a 1 2 + ⋯ + a n 2 ≤ n B = n det ⁡ ( L ) 1 / n . \left\lVert a \right\rVert = \sqrt{a_1^2+\dots+a_n^2} \leq \sqrt{n}B = \sqrt{n} \det(L)^{1/n}. a=a12++an2 n B=n det(L)1/n.
这就完成了 Hermite 定理的证明。

这里补充一下格的逐次最小长度(successive minima) 与 Minkowski 第一第二定理。

参考论文:格的计算和密码学应用,并将符号与本书做了下统一。

Definition. L L L n n n 维格,对于 i ∈ { 1 , … , n } i\in\{1,\dots,n\} i{1,,n},我们定义第 i i i 个逐次最小长度 λ i ( L ) \lambda_i(L) λi(L) 为包含 i i i 个线性无关的格向量的以原点为球心的球的最小半径,即
λ i ( L ) = min ⁡ { r > 0 : dim ⁡ ( Span ( L ∩ B r ( 0 ) ) ) ≥ i } , \lambda_i(L)=\min\{r>0:\dim(\text{Span}(L\cap\mathbb{B}_r(0)))\geq i\}, λi(L)=min{r>0:dim(Span(LBr(0)))i},
特别地, λ 1 ( L ) \lambda_1(L) λ1(L) 是格 L L L 中最短非零向量的长度。下面两个结果分别被称为 Minkowski 第一和第二定理.

Theorem. 对于任意 n n n 维格 L L L,有

  1. λ 1 ( L ) < n det ⁡ ( L ) 1 n \lambda_1(L) < \sqrt{n}\det(L)^{\frac{1}{n}} λ1(L)<n det(L)n1
  2. ∏ i = 1 n λ i ( L ) 1 n < n det ⁡ ( L ) 1 n \prod_{i=1}^n\lambda_i(L)^{\frac{1}{n}}<\sqrt{n}\det(L)^{\frac{1}{n}} i=1nλi(L)n1<n det(L)n1.

The Gaussian heuristic

通过将 Minkowski 定理应用于超球面(hypersphere),而不是超立方体(hypercube),可以改进出现在 Hermite 定理中的常数。为了实现这一点,我们需要知道在 R n \mathbb{R}^n Rn 中球体的体积。

Definition. 对于 s > 0 s>0 s>0,伽马函数(gamma function) Γ ( s ) \Gamma(s) Γ(s) 用积分定义为:
Γ ( s ) = ∫ 0 ∞ t s e − t d t t . \Gamma(s)=\int_0^{\infty} t^s e^{-t}\frac{dt}{t}. Γ(s)=0tsettdt.
我们列出一些基本性质。

Proposition.

  1. 对于所有的 s > 0 s>0 s>0,定义 gamma 函数 Γ ( s ) \Gamma(s) Γ(s) 的积分是收敛的。

  2. Γ ( 1 ) = 1 \Gamma(1)=1 Γ(1)=1 Γ ( s + 1 ) = s Γ ( s ) \Gamma(s+1)=s \Gamma(s) Γ(s+1)=sΓ(s)。这使得我们能够将 Γ ( s ) \Gamma(s) Γ(s) 扩展到所有 s ∈ R s \in \mathbb{R} sR 上,对于 s ≠ 0 , − 1 , − 2 , … s\neq 0,-1,-2,\dots s=0,1,2,.

  3. 对于所有的整数 n ≥ 1 n\geq 1 n1,我们有 Γ ( n + 1 ) = n ! \Gamma(n+1)=n! Γ(n+1)=n!。因此 gamma 函数即为阶乘函数在实数与复数域上的推广。

  4. Γ ( 1 2 ) = π \Gamma(\frac{1}{2})=\sqrt{\pi} Γ(21)=π ​.

  5. (Stirling’s 公式) 当 s s s 很大时我们有:
    Γ ( 1 + s ) 1 / s ≈ s e . \Gamma(1+s)^{1/s}\approx\frac{s}{e}. Γ(1+s)1/ses.
    更精确来说,
    ln ⁡ Γ ( 1 + s ) = ln ⁡ ( s e ) s + 1 2 ln ⁡ ( 2 π s ) + O ( 1 )  as  s → ∞ . \ln\Gamma(1+s)=\ln(\frac{s}{e})^s+\frac{1}{2}\ln(2\pi s) +O(1)\ \text{as } s \rightarrow \infty. lnΓ(1+s)=ln(es)s+21ln(2πs)+O(1) as s∞.

n n n 维空间中的球体体积公式包含了 gamma 函数。

Theorem. B R ( a ) \mathbb{B}_R(a) BR(a) 表示 R n \mathbb{R}^n Rn 中半径为 R R R 的球体。则其体积为:
Vol ( B R ( a ) ) = π n / 2 R n Γ ( 1 + n 2 ) . \text{Vol}(\mathbb{B}_R(a))=\frac{\pi^{n/2}R^n}{\Gamma(1+\frac{n}{2})}. Vol(BR(a))=Γ(1+2n)πn/2Rn.
n n n 很大时, B R ( a ) \mathbb{B}_R(a) BR(a) 的体积可以近似表示为:
Vol ( B R ( a ) ) 1 / n ≈ 2 π e n R . \text{Vol}(\mathbb{B}_R(a))^{1/n}\approx\sqrt{\frac{2\pi e}{n}}R. Vol(BR(a))1/nn2πe R.
Remark. 利用上面的定理我们可以改进 Hermite 定理当 n n n 很大时的情况。球体 B R ( 0 ) \mathbb{B}_R(0) BR(0) 是有界的、封闭的、凸的且对称的,于是根据 Minkowski 定理,如果我们选择 R R R 满足:
Vol ( B R ( 0 ) ) ≥ 2 n det ⁡ ( L ) , \text{Vol}(\mathbb{B}_R(0)) \geq 2^n \det(L), Vol(BR(0))2ndet(L),
则球体 B R ( 0 ) \mathbb{B}_R(0) BR(0) 包含了一个非零格点。当 n n n 很大时,利用球体体积1的近似公式,我们需要选择 R R R 满足:
2 π e n R ⪆ 2 det ⁡ ( L ) 1 / n \sqrt{\frac{2\pi e}{n}}R \gtrapprox 2\det(L)^{1/n} n2πe R2det(L)1/n
根据 B R ( 0 ) \mathbb{B}_R(0) BR(0) 的定义,有:
B R ( 0 ) = { x ∈ R n :   ∥ x ∥ ≤ R } \mathbb{B}_R(0)=\{x \in \mathbb{R}^n:\ \left\lVert x\right\rVert \leq R\} BR(0)={xRn: xR}
因此,存在一个非零向量 v ∈ L v \in L vL​ 满足:
∥ v ∥ ⪅ 2 n π e ⋅ ( det ⁡ ( L ) ) 1 / n \left\lVert v \right\rVert\lessapprox\sqrt{\frac{2n}{\pi e}} \cdot (\det(L))^{1/n} vπe2n (det(L))1/n
这便通过一个因子 2 / π e ≈ 0.484 \sqrt{2/\pi e} \approx 0.484 2/πe 0.484 改进了 Hermite 定理。

尽管最短向量的准确界在 n n n 很大时是未知的,但我们可以基于以下原理的概率论证来估计其范围:

B R ( 0 ) \mathbb{B}_R(0) BR(0) 是以 0 为中心的大球体。则 B R ( 0 ) \mathbb{B}_R(0) BR(0) 内的格点数约等于 B R ( 0 ) \mathbb{B}_R(0) BR(0) 的体积除以基本域 F \mathcal{F} F 的体积。

这是合理的,因为 # ( B R ( 0 ) ∩ L ) \#(\mathbb{B}_R(0)\cap L) #(BR(0)L) 应该近似于 B R ( 0 ) \mathbb{B}_R(0) BR(0) 中能够容纳的 F \mathcal{F} F 的数量。

例如,如果我们令 L = Z 2 L=\mathbb{Z}^2 L=Z2,则这条原理告诉我们一个圆的面积约等于落在该圆内的整数点的个数。
图 1. 半径为 2 的圆(笔者所绘)

图 1. 半径为 2 的圆(笔者所绘)

而关于误差项的估计:
# { ( x , y ) ∈ Z 2 :   x 2 + y 2 ≤ R 2 } = π R 2 + (error term) \#\{(x,y) \in \mathbb{Z}^2:\ x^2+y^2 \leq R^2\} = \pi R^2 +\text{(error term)} #{(x,y)Z2: x2+y2R2}=πR2+(error term)
是一个著名的经典问题。随着维数的增大,问题会更加困难,因为当半径不够大时,由靠近球边界的格点所造成的误差会相当大。因此下面的估计:
# { v ∈ L :   ∥ v ∥ ≤ R } ≈ Vol ( B R ( 0 ) ) Vol ( F ) \#\{v \in L:\ \left\lVert v \right\rVert \leq R\}\approx \frac{\text{Vol}(\mathbb{B}_R(0))}{\text{Vol}(\mathcal{F})} #{vL: vR}Vol(F)Vol(BR(0))
n n n 很大且 R R R 不够大的情况下是有问题的。尽管如此,我们仍然可以寻找使右边等于1的 R R R 的值,因为从某种意义上说,这个 R R R 值是我们可能首次在球内发现非零格点的那个半径值。

考虑 n n n 很大的情形,我们用球体体积的估计值公式计算。令:
2 π e n R ≈ Vol ( B R ( 0 ) ) 1 / n equal to Vol ( F ) = det ⁡ ( L ) , \sqrt{\frac{2\pi e}{n}}R \approx\text{Vol}(\mathbb{B}_R(0))^{1/n}\quad \text{equal to}\quad \text{Vol}(\mathcal{F})=\det(L), n2πe RVol(BR(0))1/nequal toVol(F)=det(L),
解得:
R ≈ n 2 π e ( det ⁡ ( L ) ) 1 / n . R\approx \sqrt{\frac{n}{2\pi e}}(\det(L))^{1/n}. R2πen (det(L))1/n.
我们便推出了下面的启发式算法。

Definition. L L L n n n 维的 lattice。高斯的期望最短长度(Gaussian expected shortest length)是:
σ ( L ) = n 2 π e ( det ⁡ ( L ) ) 1 / n . \sigma(L) = \sqrt{\frac{n}{2\pi e}}(\det(L))^{1/n}. σ(L)=2πen (det(L))1/n.
高斯的启发式(Gaussian heuristic)方法指的是:一个随机选择的格中,最短非零向量将满足:
∥ v shortest ∥ ≈ σ ( L ) . \left\lVert v_{\text{shortest}}\right\rVert \approx \sigma(L). vshortestσ(L).
更精确来说,若 ϵ > 0 \epsilon > 0 ϵ>0 固定,那么对于所有足够大的 n n n,一个随机选择的 n n n 维格满足:
( 1 − ϵ ) σ ( L ) ≤ ∥ v shortest ∥ ≤ ( 1 + ϵ ) σ ( L ) . (1-\epsilon) \sigma(L) \leq\left\lVert v_{\text{shortest}}\right\rVert\leq(1+\epsilon)\sigma(L). (1ϵ)σ(L)vshortest(1+ϵ)σ(L).
Remark. 对于较小的 n n n 值,使用体积的精确公式更好,此时高斯的期望最短长度为:
σ ( L ) = Γ ( 1 + n / 2 ) π ( det ⁡ ( L ) ) 1 / n \sigma(L)=\frac{\Gamma(1+n/2)}{\sqrt{\pi}}(\det(L))^{1/n} σ(L)=π Γ(1+n/2)(det(L))1/n
我们会发现高斯启发式方法在量化格中 SVP 的困难程度时很有用。特别是,如果一个特定格 L L L 的实际最短向量明显比 σ ( L ) \sigma(L) σ(L)​ 短,那么诸如 LLL 等格约化算法在定位最短向量时似乎就会容易得多。

Example. ( m 1 , … , m n , S ) (m_1,\dots,m_n,S) (m1,,mn,S) 是一个背包问题。相关联的格 L M , S L_{M,S} LM,S 是由 ( ∗ ) (*) () 矩阵的行生成的。矩阵 L M , S L_{M,S} LM,S 的维度为 n + 1 n+1 n+1,行列式为 det ⁡ ( L M , S ) = 2 n S \det(L_{M,S})=2^nS det(LM,S)=2nS。在子集和问题一节中说过, S S S 的大小满足 S = O ( 2 2 n ) S=O(2^{2n}) S=O(22n),所以 S 1 / n ≈ 4 S^{1/n}\approx 4 S1/n4。所以我们可以估计高斯的最短长度为:
σ ( L M , S ) = n + 1 2 π e ( det ⁡ ( L M , S ) ) 1 / ( n + 1 ) = n + 1 2 π e ( 2 n S ) 1 / ( n + 1 ) ≈ n 2 π e ⋅ 2 S 1 / ( n + 1 ) ≈ n 2 π e ⋅ 8 ≈ 1.936 n . \begin{aligned} \sigma(L_{M,S})&=\sqrt{\frac{n+1}{2\pi e}}(\det(L_{M,S}))^{1/(n+1)}=\sqrt{\frac{n+1}{2\pi e}}(2^nS)^{1/(n+1)}\\ &\approx\sqrt{\frac{n}{2\pi e}}\cdot2S^{1/(n+1)}\approx\sqrt{\frac{n}{2\pi e}}\cdot8\approx 1.936\sqrt{n}.\\ \end{aligned} σ(LM,S)=2πen+1 (det(LM,S))1/(n+1)=2πen+1 (2nS)1/(n+1)2πen 2S1/(n+1)2πen 81.936n .
这就证明了在子集和一节所说的,格 L M , S L_{M,S} LM,S 包含一个长度为 n \sqrt{n} n 的向量 t t t,并且知道 t t t 就可以求得子集和问题的解。因此,解决格 L M , S L_{M,S} LM,S 的 SVP 问题就很可能解决子集和问题。有关使用格中的方法解决子集和问题的进一步讨论,可以见专栏最后一篇文章的第二个例子。

我们会发现高斯启发式方法在量化寻找格中短向量的难度方面很有用。特别是,如果特定格 L L L 的实际最短向量明显短于 σ ( L ) \sigma(L) σ(L),那么像 LLL 这样的格约化算法在定位最短向量时似乎要容易得多。

将高斯启发式方法应用于 CVP 也有类似的结果。设 L ⊂ R n L \subset \mathbb{R}^n LRn 是一个 n n n 维的 lattice, w ∈ R n w\in \mathbb{R}^n wRn 是一个随机点,那么我们期望与 w w w 最接近的格向量满足:
∥ v − w ∥ ≈ σ ( L ) . \left\lVert v - w\right\rVert \approx\sigma(L). vwσ(L).
与 SVP 类似,如果 L L L 包含一个与 w w w 之间的距离比 σ ( L ) \sigma(L) σ(L)​ 小得多的向量,则格约化算法在解决 CVP 时就会更容易。

Babai’s algorithm and using a “good” basis to solve apprCVP

这一节对应教材的6.6.

如果格 L ⊂ R n L \subset \mathbb{R}^n LRn 有一组相互正交的基 v 1 , … , v n v_1,\dots,v_n v1,,vn,即满足:
v i ⋅ v j = 0 for all  i ≠ j , v_i \cdot v_j = 0 \quad\text{for all }i\neq j, vivj=0for all i=j,
则我们可以轻松解决 SVP 和CVP。为解决 SVP,我们观察到 L L L 中的任何向量的长度都由下面公式给出:
∥ a 1 v 1 + ⋯ + a n v n ∥ 2 = a 1 2 ∥ v 1 ∥ 2 + ⋯ + a n 2 ∥ v n ∥ 2 . \left\lVert a_1v_1+\dots+a_nv_n\right\rVert^2=a_1^2\left\lVert v_1 \right\rVert^2+\dots+a_n^2\left\lVert v_n \right\rVert^2. a1v1++anvn2=a12v12++an2vn2.
因为 a 1 , … , a n ∈ Z a_1,\dots,a_n\in \mathbb{Z} a1,,anZ,所以 L L L 中的最短非零向量就是集合 { ± v 1 , … , ± v n } \{\pm v_1,\dots,\pm v_n\} {±v1,,±vn} 中的最短向量。即
v shortest = { v i :   ∥ v i ∥ = min ⁡ { ∥ v 1 ∥ , … , ∥ v n ∥ } } v_{\text{shortest}}=\{v_i:\ \left\lVert v_i \right\rVert=\min\{\left\lVert v_1 \right\rVert, \dots, \left\lVert v_n \right\rVert\} \} vshortest={vi: vi=min{v1,,vn}}
类似地可以解决 CVP。我们想要寻找 L L L 中的一个最短向量,使其与给定向量 w ∈ R n w\in \mathbb{R}^n wRn 的距离最近。我们首先将 w w w 表示为:
w = t 1 v 1 + ⋯ + t n v n with  t 1 , … , t n ∈ R . w=t_1v_1+\dots+t_nv_n \quad \text{with }t_1,\dots,t_n\in \mathbb{R}. w=t1v1++tnvnwith t1,,tnR.
那么对于 v = a 1 v 1 + ⋯ + a n v n ∈ L v=a_1v_1+\dots+a_nv_n \in L v=a1v1++anvnL,我们有:
∥ v − w ∥ 2 = ( a 1 − t 1 ) 2 ∥ v 1 ∥ 2 + ⋯ + ( a n − t n ) 2 ∥ v n ∥ 2 . \left\lVert v-w \right\rVert^2=(a_1-t_1)^2\left\lVert v_1 \right\rVert^2+\dots+(a_n-t_n)^2\left\lVert v_n \right\rVert^2. vw2=(a1t1)2v12++(antn)2vn2.
a i a_i ai 是整数,因此上式要想取得最小值,我们只需将每个 a i a_i ai 设置为与相应的 t i t_i ti 最为接近的整数即可。

如果基中的向量是相互正交的,那么我们很有可能能够成功解决 CVP;但是如果基向量高度不正交,那么该算法就不会运行得很好。我们简要讨论一下潜在的几何原理,然后描述一般的方法,最后以一个二维的例子作结。

L L L 的一组基确定了一个基本域 F \mathcal{F} F,我们在基本域一节已经证明了:用 L L L 中的元素对 F \mathcal{F} F 进行平移将会得到整个 R n \mathbb{R}^n Rn 空间,因此任何 w ∈ R n w\in \mathbb{R}^n wRn 都有 F \mathcal{F} F 的唯一一个平移 F + v ,   v ∈ L \mathcal{F}+v,\ v\in L F+v, vL。我们将平行六面体(parallelepiped) L + v L+v L+v 中最靠近 w w w 的顶点(vertex)作为我们对 CVP 的假设解。找到最近的顶点其实是很容易,因为:
w = v + ϵ 1 v 1 + ϵ 2 v 2 + ⋯ + ϵ n v n for some  0 ≤ ϵ 1 , ϵ 2 , … , ϵ n < 1 , w=v+\epsilon_1v_1+\epsilon_2v_2+\dots+\epsilon_nv_n\quad \text{for some }0\leq \epsilon_1,\epsilon_2,\dots,\epsilon_n <1, w=v+ϵ1v1+ϵ2v2++ϵnvnfor some 0ϵ1,ϵ2,,ϵn<1,
则我们只需对 ϵ i \epsilon_i ϵi 进行如下替换:
ϵ i = { 0 , if   ϵ i < 1 2 1 , if   ϵ i ≥ 1 2 \epsilon_i = \left\{ \begin{aligned} 0,&\quad \text{if }\ \epsilon_i<\frac{1}{2}\\ 1,&\quad \text{if }\ \epsilon_i\geq\frac{1}{2}\\ \end{aligned} \right. ϵi= 0,1,if  ϵi<21if  ϵi21
下图展示了整个过程:
图 2. 尝试用给定的基本域来求解 CVP,源自《An Introduction to Mathematical Cryptography》

图 2. 尝试用给定的基本域来求解 CVP,源自《An Introduction to Mathematical Cryptography》

观察图 2,看上去这个过程一定有效,但这是因为图中的基向量彼此相对较为正交(reasonably orthogonal to one another)。图 3 说明了同一个格内的两组不同的基。第一个基是“好的(good)”,因为这些向量相当正交(fairly orthogonal);第二个基是“坏的(bad)”,因为基向量之间的角度非常小。
图 3. 同一个格的两组不同的基,源自《An Introduction to Mathematical Cryptography》

图 3. 同一个格的两组不同的基,源自《An Introduction to Mathematical Cryptography》

如果我们尝试使用一个坏的基来求解 CVP,就像图 4 所示,我们可能会遇到问题。非格点的目标点实际上非常接近一个格点(见图 4 中的 Target Point 与 Closest Lattice Point),但由于平行四边形过于细长,最靠近目标点的顶点实际上相当远(Target Point 与 Closest Vertex)。需要注意的是,随着格的维度增加,这些困难会变得更加严重。在二维或三维,甚至四维或五维中可视化的例子,并不能充分展示在基不够正交的情况下,最近顶点算法在解决 CVP 甚至是 apprCVP 上的失败程度。
在这里插入图片描述

图 4. 对于“坏的”基,Babai's algorithm 的效果会很差。源自《An Introduction to Mathematical Cryptography》

Theorem (Babai’s Closest Vertex Algorithm). L ⊂ R n L \subset \mathbb{R}^n LRn 是一个 n n n 维的 lattice, v 1 , … , v n v_1,\dots,v_n v1,,vn 是其一组基,令 w w w R n \mathbb{R}^n Rn​ 中任意的一个向量。如果基底中的向量相互足够正交,那么我们有以下算法来解决 CVP。
图 5. Babai's algorithm。源自《An Introduction to Mathematical Cryptography》

图 5. Babai's algorithm。源自《An Introduction to Mathematical Cryptography》

一般来说,如果基中的向量彼此较为正交,那么该算法可以解决某种形式的 apprCVP。但是,如果基向量高度非正交,那么算法返回的向量通常与 w w w​ 相距甚远。

Example. L ⊂ R 2 L \subset \mathbb{R}^2 LR2 是一个 2 维的 lattice。我们给定一组基:
v 1 = ( 137 , 312 ) and v 2 = ( 215 , − 187 ) . v_1=(137,312) \quad \text{and}\quad v_2=(215,-187). v1=(137,312)andv2=(215,187).
我们将用 Babai’s algorithm 来寻找 L L L 的一个向量,使其与下面的向量最为接近:
w = ( 53172 , 81743 ) . w=(53172, 81743). w=(53172,81743).
首先我们将 w w w 表示为 v 1 , v 2 v_1,v_2 v1,v2 的实系数线性组合的形式。即我们需要寻找 t 1 , t 2 ∈ R t_1, t_2 \in \mathbb{R} t1,t2R 满足:
w = t 1 v 1 + t 2 v 2 . w = t_1 v_1+t_2v_2. w=t1v1+t2v2.
我们可以得到两个线性方程:
53172 = 137 t 1 + 215 t 2 and 81743 = 312 t 1 − 187 t 2 . 53172=137t_1+215t_2 \quad \text{and} \quad 81743=312t_1-187t_2. 53172=137t1+215t2and81743=312t1187t2.
或者我们可以用矩阵的形式表示,
KaTeX parse error: Unknown column alignment: 1 at position 46: … \begin{array} 1̲137 & 312\\ 215…
不管哪种方式,我们都能很轻易地计算 ( t 1 , t 2 ) (t_1,t_2) (t1,t2)。最后求出 t 1 ≈ 296.85 ,   t 2 ≈ 58.15 t_1\approx296.85,\ t_2\approx 58.15 t1296.85, t258.15。Babai’s algorithm 告诉我们将 t 1 ,   t 2 t_1,\ t_2 t1, t2 圆整(round,即四舍五入)到最近的整数,然后计算:
v = ⌊ t 1 ⌉ v 1 + ⌊ t 2 ⌉ v 2 = 297 ⋅ ( 137 , 312 ) + 58 ⋅ ( 215 , − 187 ) = ( 53159 , 81818 ) . \begin{aligned} v&=\lfloor t_1\rceil v_1+\lfloor t_2\rceil v_2\\ &=297\cdot(137,312)+58\cdot(215,-187)\\ &=(53159,81818). \end{aligned} v=t1v1+t2v2=297(137,312)+58(215,187)=(53159,81818).

⌊ t 1 ⌉ \lfloor t_1\rceil t1 符号表示对 t 1 t_1 t1 四舍五入为整数。

v ∈ L v\in L vL v v v 应该接近于 w w w。我们发现:
∥ v − w ∥ ≈ 76.12 \left\lVert v-w \right\rVert \approx 76.12 vw76.12
的确足够小。这是可以预测的,因为给定基中的向量彼此相当正交,这一点可以从 Hadamard 比率就可以看出:
H ( v 1 , v 2 ) = ( det ⁡ ( L ) ∥ v 1 ∥ ∥ v 2 ∥ ) 1 / 2 ≈ ( 92699 340.75 × 284.95 ) 1 / 2 ≈ 0.977 \mathcal{H}(v_1,v_2)=\left(\frac{\det(L)}{\left\lVert v_1\right\rVert \left\lVert v_2\right\rVert} \right)^{1/2}\approx \left(\frac{92699}{340.75 \times 284.95}\right)^{1/2}\approx 0.977 H(v1,v2)=(v1v2det(L))1/2(340.75×284.9592699)1/20.977
非常接近于 1.

我们现在尝试用一组新的基来解决同样的问题:
v 1 ′ = ( 1975 , 438 ) = 5 v 1 + 6 v 2 and v 2 ′ = ( 7548 , 1627 ) = 19 v 1 + 23 v 2 . v_1^{'}=(1975,438)=5v_1+6v_2 \quad\text{and}\quad v_2^{'}=(7548,1627)=19v_1+23v_2. v1=(1975,438)=5v1+6v2andv2=(7548,1627)=19v1+23v2.
线性方程组
KaTeX parse error: Unknown column alignment: 1 at position 46: … \begin{array} 1̲1975 & 438\\ 75…
的解为 ( t 1 , t 2 ) ≈ ( 5722.66 , − 1490.34 ) (t_1,t_2)\approx (5722.66,-1490.34) (t1,t2)(5722.66,1490.34),于是我们令:
v ′ = 5723 v 1 ′ − 1490 v 2 ′ = ( 56405 , 82444 ) . v^{'}=5723v_1^{'}-1490v_2^{'}=(56405,82444). v=5723v11490v2=(56405,82444).
v ′ ∈ L v^{'}\in L vL,但 v ′ v^{'} v 并没有足够接近 w w w,因为:
∥ v ′ − w ∥ ≈ 3308.12. \left\lVert v^{'}-w \right\rVert \approx 3308.12. vw 3308.12.
基底 { v 1 ′ , v 2 ′ } \{v_1^{'},v_2^{'}\} {v1,v2} 的非正交性也反映在 Hadamard 比率上:
H ( v 1 ′ , v 2 ′ ) = ( det ⁡ ( L ) ∥ v 1 ′ ∥ ∥ v 2 ′ ∥ ) 1 / 2 ≈ ( 92699 2022.99 × 7721.36 ) 1 / 2 ≈ 0.077 \mathcal{H}(v_1^{'},v_2^{'})=\left(\frac{\det(L)}{\left\lVert v_1^{'}\right\rVert \left\lVert v_2^{'}\right\rVert} \right)^{1/2}\approx \left(\frac{92699}{2022.99 \times 7721.36}\right)^{1/2}\approx 0.077 H(v1,v2)=( v1 v2 det(L))1/2(2022.99×7721.3692699)1/20.077

参考

[1] 格的计算和密码学应用

[2] A Decade of Lattice Cryptography 的 2.2.1

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值