Skip to content

格基

Lattice basis · 格的基

以整数线性组合恰好生成同一欧氏格的一组线性无关向量。

条目类型
定义

形式陈述

k 欧氏格 Λ 的一个格基是有序组 B=(b1,,bk),其中向量实线性无关且

Λ=BZk.

它既是 VΛ 的实向量空间基,又满足更强的整数生成条件。每个 xΛ 都有唯一坐标 zZk 使 x=Bz;只知道 x 有唯一实坐标还不够。

BB 都是同一格的基,则存在唯一的幺模矩阵

UGLk(Z),detU=±1,B=BU.

反之,每个这样的 U 都给出同一格的新基,因为 UZk=Zk。证明关键是把 B 的每一列写成 B 的整数坐标得到 U,再把 B 写成 B 的整数坐标得到 W;由 UW=WU=I 可知 U1=W 仍为整数矩阵,故行列式只能是整数单位 ±1

直觉

格基像一套可更换的整数坐标尺。剪切、交换方向或翻转方向不会改变可到达的格点;把某个方向放大两倍却会漏掉原来奇数层的点。因而“张成同一实空间”只回答方向是否齐全,“生成同一格”还要回答步长与整数网格是否完全一致。

基的几何质量差异可以很大。幺模变换能把短而近乎正交的基改成极长、几乎平行的向量,格点集合却一丝不变。许多格算法输入的是基,运行时间和近似质量会受这套表示影响;这不等于格的固有困难性随换基改变。

一个可复算的表示质量指标是正交亏格

od(B)=i=1kbi2detΛ1.

不等式来自 Hadamard,等号恰在各列两两正交时成立。它会随幺模换基而改变,所以只能评价输入表示,不能作为格同构不变量;两个基即便亏格相近,也未必给格算法相同的 Gram–Schmidt 轮廓。

基本平行多面体 P(B)=B[0,1)k 也随基变形,但它始终为 VΛ/Λ 提供一个基本区域。它的体积不随幺模换基改变,这一不变量正是格行列式

例子与边界

B=I2 生成 Z2,并取

U=(1201),B=BU=((1,0),(2,1)).

detU=1,而任意 (a,b)Z2 可写成 (a2b)(1,0)+b(2,1),所以 B 确为同一格的基。相反,C=2I2 的列也线性无关并张成 R2,却只生成 2Z2;其坐标变换行列式为 4,在 Z2 中漏掉三个非零陪集。

即使每列都是格向量也不够。对 Z2,向量 (1,1)(1,1) 的行列式为 2,只生成坐标奇偶性相同的点。这个子格在原格中的指数为 2,恰与行列式绝对值相符。两列长度均为 2,该子格余体积为 2,所以其正交亏格恰为 1:它们是这个子格的好基,却仍不是 Z2 的基。这说明几何质量检查不能替代整数生成检查。

Gram–Schmidt 正交化通常产生与 B 张成同一空间的正交向量,却一般不在 Λ 中,也不以整数系数生成 Λ。格算法使用正交化结果估计长度和逐层舍入,但不能把它误认成新格基。秩亏矩阵更不是基:坐标不唯一,基本区域的内在体积也退化为零。

推论与应用

格基把无限点集压缩成有限矩阵,使成员判定、基本区域约化和对偶基计算成为线性代数问题。若 B 是方阵且可逆,检查 xΛ 可计算 B1x 是否为整数;低秩时则先验证 xVΛ,再用左逆求坐标。对 Zn 的满秩整数子格,还可用 Hermite normal form 选出规范的三角表示;其对角元乘积给出指数。规范形适合判等与成员计算,却不保证列向量短或近乎正交,因此与格基约化承担不同任务。

坐标位长度也是算法输入的一部分。把 b2 替换成 b2+Nb1 是合法幺模换基,但会随 N 增大输入整数和中间算术;任何“关于秩多项式时间”的说法若不计 logN,都遗漏了标准位复杂度。

好基与坏基的差别催生了LLL 格基约化:它只施加幺模列变换,所以保留格,同时让 Gram–Schmidt 数据满足可控条件。密码构造常公开一个看似坏的基而把具有额外短性或采样能力的表示作为陷门;“两套基生成同一格”并不意味着从公开基高效恢复秘密基。

参考资料
  • Daniele Micciancio and Shafi Goldwasser, Complexity of Lattice Problems: A Cryptographic Perspective, Kluwer, 2002, Sec. 1.1。
  • Henri Cohen, A Course in Computational Algebraic Number Theory, Springer, 1993, Sec. 2.6。
  • Phong Q. Nguyen and Brigitte Vallée (eds.), The LLL Algorithm: Survey and Applications, Springer, 2010, Chs. 1–2。
关系图谱9 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组