For AI agents: the complete documentation index is available at https://shijin.space/llms.txt, the full documentation bundle is available at https://shijin.space/llms-full.txt, and this page is available as Markdown at https://shijin.space/knowledge/svp-cvp-and-sivp/index.md.

04 基本计算格问题:SVP、CVP 与 SIVP

适用范围:计算格与格密码中的基本计算问题,使用欧氏范数。整理日期:2026-10-16。 前置笔记:03 逐次极小值与 Minkowski 定理。

上一篇说明短向量的存在与长度界;本篇明确计算任务:输入什么、需要找到什么,以及“近似”如何衡量。

约定:输入格基 B∈Zm×nB\in\mathbb Z^{m\times n} 列满秩,Λ=L(B)\Lambda=\mathcal L(B),使用欧氏范数。CVP 还输入目标向量 t∈Qmt\in\mathbb Q^m。

使用整数或有理数输入,是为了能够用有限比特表示问题。有理输入可以通过统一缩放转为整数输入。近似因子记为 γ=γ(n)≥1\gamma=\gamma(n)\ge1;γ=1\gamma=1 对应精确求解,γ\gamma 越大,对输出质量的要求越宽松。[1,第 9—10 页,§4]

SVP:寻找一个最短非零格向量

最短向量问题(Shortest Vector Problem,SVP):

给定 BB,找到

v∈Λ∖{0},∥v∥2=λ1(Λ).v\in\Lambda\setminus\{0\}, \qquad \|v\|_2=\lambda_1(\Lambda).

其近似搜索版本 SVPγ\mathrm{SVP}_\gamma 要求找到

v∈Λ∖{0},∥v∥2≤γλ1(Λ).\boxed{ v\in\Lambda\setminus\{0\}, \qquad \|v\|_2\le\gamma\lambda_1(\Lambda) }.

“非零”条件不可省略,否则总可以输出 00。输出也不必是输入基中的某一列,它可以是基向量的任意非零整数线性组合。[1,第 9—10 页,Search SVP 与 Search SVPγ_\gamma]

CVP:寻找距离目标最近的格向量

定义目标 tt 到格的距离:

dist⁡(t,Λ)=min⁡v∈Λ∥t−v∥2.\operatorname{dist}(t,\Lambda) = \min_{v\in\Lambda}\|t-v\|_2.

最近向量问题(Closest Vector Problem,CVP):

给定 B,tB,t,找到

v∈Λ,∥t−v∥2=dist⁡(t,Λ).v\in\Lambda, \qquad \|t-v\|_2=\operatorname{dist}(t,\Lambda).

近似搜索版本 CVPγ\mathrm{CVP}_\gamma 要求找到

v∈Λ,∥t−v∥2≤γdist⁡(t,Λ).\boxed{ v\in\Lambda, \qquad \|t-v\|_2 \le\gamma\operatorname{dist}(t,\Lambda) }.

这里衡量的是到目标的距离,而非输出向量自身的长度;零向量也可以是合法答案。特别地,令 t=0t=0 时,CVP 的最优解就是 00,所以不能直接通过这一替换把 CVP 当作 SVP。[3,PDF 第 7—8 页,§5、Definition 9]

SIVP:寻找一组线性无关的短格向量

最短独立向量问题(Shortest Independent Vectors Problem,SIVP)的近似版本 SIVPγ\mathrm{SIVP}_\gamma:

给定 BB,找到 nn 个线性无关格向量 v1,…,vnv_1,\ldots,v_n,满足

max⁡1≤i≤n∥vi∥2≤γλn(Λ).\boxed{ \max_{1\le i\le n}\|v_i\|_2 \le\gamma\lambda_n(\Lambda) }.

它以 λn\lambda_n 为基准,因为 λn\lambda_n 是容纳 nn 个线性无关格向量所需的最小半径。

需要区分:

  • 线性无关不等于原格的一组基。 输出向量可以只生成原格的一个真子格。
  • 所有向量共用 λn\lambda_n 这一长度基准。 即使 γ=1\gamma=1,也不要求逐个满足 ∥vi∥2=λi(Λ)\|v_i\|_2=\lambda_i(\Lambda)。

如果要求每个向量分别满足

∥vi∥2≤γλi(Λ),\|v_i\|_2\le\gamma\lambda_i(\Lambda),

对应的是逐次极小值问题(SMP),要求更强。[2,PDF 第 10 页,Definition 13、15]

搜索、优化与判定:输出要求不同

以精确 SVP 为例:

  • 搜索版本:输出一个最短非零格向量 vv。
  • 优化版本:求出最短长度 λ1(Λ)\lambda_1(\Lambda)。
  • 判定版本:给定阈值 r>0r>0,判断是否有 λ1(Λ)≤r\lambda_1(\Lambda)\le r。

近似判定通常写成承诺问题 GapSVPγ\mathrm{GapSVP}_\gamma。输入 BB 和正有理数 rr,区分

{YES,λ1(Λ)≤r,NO,λ1(Λ)>γr.\begin{cases} \text{YES},&\lambda_1(\Lambda)\le r,\\ \text{NO},&\lambda_1(\Lambda)>\gamma r. \end{cases}

若

r<λ1(Λ)≤γr,r<\lambda_1(\Lambda)\le\gamma r,

输入落在承诺之外,算法无需给出规定的判定结果。

因此,SVPγ\mathrm{SVP}_\gamma 要求输出向量,GapSVPγ\mathrm{GapSVP}_\gamma 要求区分两类输入;讨论二者关系时需要说明具体归约。[1,第 9—10 页,§4]

类似地,GapCVPγ\mathrm{GapCVP}_\gamma 区分

dist⁡(t,Λ)≤r与dist⁡(t,Λ)>γr.\operatorname{dist}(t,\Lambda)\le r \quad\text{与}\quad \operatorname{dist}(t,\Lambda)>\gamma r.

[1,第 10 页,Promise CVPγ_\gamma]

沿用一个二维例子

取上一篇的格

Λ=Z×3Z,λ1=1,λ2=3.\Lambda=\mathbb Z\times3\mathbb Z, \qquad \lambda_1=1,\quad\lambda_2=3.

三个搜索问题分别可以这样理解:

  • SVP:输出 (1,0)(1,0),其长度为 11。
  • CVP:若目标 t=(2/5,13/5)t=(2/5,13/5),则最近格点为 (0,3)(0,3),距离为 22/52\sqrt2/5。
  • SIVP1_1:输出 (2,0)(2,0) 和 (0,3)(0,3) 也合法。它们线性无关,最大长度为 3=λ23=\lambda_2。

最后一组向量生成的是

2Z×3Z⊊Λ,2\mathbb Z\times3\mathbb Z\subsetneq\Lambda,

并且长度分别为 2,32,3,没有逐个达到 λ1,λ2\lambda_1,\lambda_2。这同时说明了 SIVP 对“格基”和“逐次最短”的两点区别。

来源与阅读位置

  1. Oded Regev,Lattices in Computer Science,Lecture 1: Introduction,Fall 2004。主阅读位置为 §4、第 9—10 页,涵盖 SVP、CVP 的搜索、优化、判定与近似版本。原文
  2. Daniele Micciancio,Minkowski's theorem,PDF 页首标注 Fall 2017,由 2019 年课程页链接。PDF 第 10 页 Definition 13、15,补充 SIVP 与 SMP。原文
  3. Daniele Micciancio,The dual lattice,PDF 页首标注 Fall 2017,由 2019 年课程页链接。PDF 第 7—8 页 §5、Definition 9,对照 CVP 定义。原文

来源于 2026-09-27 核对,正文按已确认的草稿整理。

下一篇计划:《05 格基约化与 LLL 算法》,从什么样的基更利于寻找短向量开始,再连接正交化、尺寸约化和 Lovász 条件。

引用此笔记