04 基本计算格问题:SVP、CVP 与 SIVP 适用范围:计算格与格密码中的基本计算问题,使用欧氏范数。整理日期:2026-10-16。
前置笔记:03 逐次极小值与 Minkowski 定理 。
上一篇说明短向量的存在与长度界;本篇明确计算任务:输入什么、需要找到什么,以及“近似”如何衡量。
约定:输入格基 B ∈ Z m × n B\in\mathbb Z^{m\times n} B ∈ Z m × n 列满秩,Λ = L ( B ) \Lambda=\mathcal L(B) Λ = L ( B ) ,使用欧氏范数。CVP 还输入目标向量 t ∈ Q m t\in\mathbb Q^m t ∈ Q m 。
使用整数或有理数输入,是为了能够用有限比特表示问题。有理输入可以通过统一缩放转为整数输入。近似因子记为 γ = γ ( n ) ≥ 1 \gamma=\gamma(n)\ge1 γ = γ ( n ) ≥ 1 ;γ = 1 \gamma=1 γ = 1 对应精确求解,γ \gamma γ 越大,对输出质量的要求越宽松。[1,第 9—10 页,§4]
SVP:寻找一个最短非零格向量
最短向量问题(Shortest Vector Problem,SVP):
给定 B B B ,找到
v ∈ Λ ∖ { 0 } , ∥ v ∥ 2 = λ 1 ( Λ ) . v\in\Lambda\setminus\{0\},
\qquad
\|v\|_2=\lambda_1(\Lambda). v ∈ Λ ∖ { 0 } , ∥ v ∥ 2 = λ 1 ( Λ ) .
其近似搜索版本 S V P γ \mathrm{SVP}_\gamma SVP γ 要求找到
v ∈ Λ ∖ { 0 } , ∥ v ∥ 2 ≤ γ λ 1 ( Λ ) . \boxed{
v\in\Lambda\setminus\{0\},
\qquad
\|v\|_2\le\gamma\lambda_1(\Lambda)
}. v ∈ Λ ∖ { 0 } , ∥ v ∥ 2 ≤ γ λ 1 ( Λ ) .
“非零”条件不可省略,否则总可以输出 0 0 0 。输出也不必是输入基中的某一列,它可以是基向量的任意非零整数线性组合。[1,第 9—10 页,Search SVP 与 Search SVPγ _\gamma γ ]
CVP:寻找距离目标最近的格向量
定义目标 t t t 到格的距离:
dist ( t , Λ ) = min v ∈ Λ ∥ t − v ∥ 2 . \operatorname{dist}(t,\Lambda)
=
\min_{v\in\Lambda}\|t-v\|_2. dist ( t , Λ ) = v ∈ Λ min ∥ t − v ∥ 2 .
最近向量问题(Closest Vector Problem,CVP):
给定 B , t B,t B , t ,找到
v ∈ Λ , ∥ t − v ∥ 2 = dist ( t , Λ ) . v\in\Lambda,
\qquad
\|t-v\|_2=\operatorname{dist}(t,\Lambda). v ∈ Λ , ∥ t − v ∥ 2 = dist ( t , Λ ) .
近似搜索版本 C V P γ \mathrm{CVP}_\gamma CVP γ 要求找到
v ∈ Λ , ∥ t − v ∥ 2 ≤ γ dist ( t , Λ ) . \boxed{
v\in\Lambda,
\qquad
\|t-v\|_2
\le\gamma\operatorname{dist}(t,\Lambda)
}. v ∈ Λ , ∥ t − v ∥ 2 ≤ γ dist ( t , Λ ) .
这里衡量的是到目标的距离 ,而非输出向量自身的长度;零向量也可以是合法答案。特别地,令 t = 0 t=0 t = 0 时,CVP 的最优解就是 0 0 0 ,所以不能直接通过这一替换把 CVP 当作 SVP。[3,PDF 第 7—8 页,§5、Definition 9]
SIVP:寻找一组线性无关的短格向量
最短独立向量问题(Shortest Independent Vectors Problem,SIVP)的近似版本 S I V P γ \mathrm{SIVP}_\gamma SIVP γ :
给定 B B B ,找到 n n n 个线性无关格向量 v 1 , … , v n v_1,\ldots,v_n v 1 , … , v n ,满足
max 1 ≤ i ≤ n ∥ v i ∥ 2 ≤ γ λ n ( Λ ) . \boxed{
\max_{1\le i\le n}\|v_i\|_2
\le\gamma\lambda_n(\Lambda)
}. 1 ≤ i ≤ n max ∥ v i ∥ 2 ≤ γ λ n ( Λ ) .
它以 λ n \lambda_n λ n 为基准,因为 λ n \lambda_n λ n 是容纳 n n n 个线性无关格向量所需的最小半径。
需要区分:
线性无关不等于原格的一组基。 输出向量可以只生成原格的一个真子格。
所有向量共用 λ n \lambda_n λ n 这一长度基准。 即使 γ = 1 \gamma=1 γ = 1 ,也不要求逐个满足 ∥ v i ∥ 2 = λ i ( Λ ) \|v_i\|_2=\lambda_i(\Lambda) ∥ v i ∥ 2 = λ i ( Λ ) 。
如果要求每个向量分别满足
∥ v i ∥ 2 ≤ γ λ i ( Λ ) , \|v_i\|_2\le\gamma\lambda_i(\Lambda), ∥ v i ∥ 2 ≤ γ λ i ( Λ ) ,
对应的是逐次极小值问题(SMP),要求更强。[2,PDF 第 10 页,Definition 13、15]
搜索、优化与判定:输出要求不同
以精确 SVP 为例:
搜索版本 :输出一个最短非零格向量 v v v 。
优化版本 :求出最短长度 λ 1 ( Λ ) \lambda_1(\Lambda) λ 1 ( Λ ) 。
判定版本 :给定阈值 r > 0 r>0 r > 0 ,判断是否有 λ 1 ( Λ ) ≤ r \lambda_1(\Lambda)\le r λ 1 ( Λ ) ≤ r 。
近似判定通常写成承诺问题 G a p S V P γ \mathrm{GapSVP}_\gamma GapSVP γ 。输入 B B B 和正有理数 r r r ,区分
{ YES , λ 1 ( Λ ) ≤ r , NO , λ 1 ( Λ ) > γ r . \begin{cases}
\text{YES},&\lambda_1(\Lambda)\le r,\\
\text{NO},&\lambda_1(\Lambda)>\gamma r.
\end{cases} { YES , NO , λ 1 ( Λ ) ≤ r , λ 1 ( Λ ) > γ r .
若
r < λ 1 ( Λ ) ≤ γ r , r<\lambda_1(\Lambda)\le\gamma r, r < λ 1 ( Λ ) ≤ γ r ,
输入落在承诺之外,算法无需给出规定的判定结果。
因此,S V P γ \mathrm{SVP}_\gamma SVP γ 要求输出向量,G a p S V P γ \mathrm{GapSVP}_\gamma GapSVP γ 要求区分两类输入;讨论二者关系时需要说明具体归约。[1,第 9—10 页,§4]
类似地,G a p C V P γ \mathrm{GapCVP}_\gamma GapCVP γ 区分
dist ( t , Λ ) ≤ r 与 dist ( t , Λ ) > γ r . \operatorname{dist}(t,\Lambda)\le r
\quad\text{与}\quad
\operatorname{dist}(t,\Lambda)>\gamma r. dist ( t , Λ ) ≤ r 与 dist ( t , Λ ) > γ r .
[1,第 10 页,Promise CVPγ _\gamma γ ]
沿用一个二维例子
取上一篇的格
Λ = Z × 3 Z , λ 1 = 1 , λ 2 = 3. \Lambda=\mathbb Z\times3\mathbb Z,
\qquad
\lambda_1=1,\quad\lambda_2=3. Λ = Z × 3 Z , λ 1 = 1 , λ 2 = 3.
三个搜索问题分别可以这样理解:
SVP :输出 ( 1 , 0 ) (1,0) ( 1 , 0 ) ,其长度为 1 1 1 。
CVP :若目标 t = ( 2 / 5 , 13 / 5 ) t=(2/5,13/5) t = ( 2/5 , 13/5 ) ,则最近格点为 ( 0 , 3 ) (0,3) ( 0 , 3 ) ,距离为 2 2 / 5 2\sqrt2/5 2 2 /5 。
SIVP1 _1 1 :输出 ( 2 , 0 ) (2,0) ( 2 , 0 ) 和 ( 0 , 3 ) (0,3) ( 0 , 3 ) 也合法。它们线性无关,最大长度为 3 = λ 2 3=\lambda_2 3 = λ 2 。
最后一组向量生成的是
2 Z × 3 Z ⊊ Λ , 2\mathbb Z\times3\mathbb Z\subsetneq\Lambda, 2 Z × 3 Z ⊊ Λ ,
并且长度分别为 2 , 3 2,3 2 , 3 ,没有逐个达到 λ 1 , λ 2 \lambda_1,\lambda_2 λ 1 , λ 2 。这同时说明了 SIVP 对“格基”和“逐次最短”的两点区别。
来源与阅读位置
Oded Regev,Lattices in Computer Science ,Lecture 1: Introduction ,Fall 2004。主阅读位置为 §4、第 9—10 页,涵盖 SVP、CVP 的搜索、优化、判定与近似版本。原文
Daniele Micciancio,Minkowski's theorem ,PDF 页首标注 Fall 2017,由 2019 年课程页链接。PDF 第 10 页 Definition 13、15,补充 SIVP 与 SMP。原文
Daniele Micciancio,The dual lattice ,PDF 页首标注 Fall 2017,由 2019 年课程页链接。PDF 第 7—8 页 §5、Definition 9,对照 CVP 定义。原文
来源于 2026-09-27 核对,正文按已确认的草稿整理。
下一篇计划:《05 格基约化与 LLL 算法》,从什么样的基更利于寻找短向量开始,再连接正交化、尺寸约化和 Lovász 条件。
引用此笔记