Skip to content

算法Algorithm

LLL 格基约化

施工中 · 内容逐步修订

LLL lattice basis reduction · Lenstra–Lenstra–Lovász algorithm · LLL 算法

以整数列操作生成满足 size-reduction 与 Lovász 条件的同格基的多项式时间算法。

形式陈述 ​

给定秩 k≥1 的格基 B=(b1,…,bk),令 bi∗ 与 μi,j 是其 Gram–Schmidt 数据:

bi=bi∗+∑j<iμi,jbj∗.

对参数 δ∈(1/4,1),基称为 LLL-reduced,若同时满足

|μi,j|≤12(j<i)

以及 Lovász 条件

δ‖bi−1∗‖2≤‖bi∗‖2+μi,i−12‖bi−1∗‖2(2≤i≤k).

LLL 算法交替执行整数 size reduction 与相邻列交换;这些操作对应幺模矩阵,故输出仍生成同一格。对整数或有理输入和固定有理参数 δ∈(1/4,1),势函数在每次交换时按固定比例下降,可推出关于维数和输入位长度的多项式运行时间。

一个具体执行顺序是从 i=2 开始,按 j=i−1,i−2,…,1 依次做 bi←bi−⌊μi,j⌉bj,每次更新正交化数据。然后检验第 i 对的 Lovász 条件;成立则令 i←i+1,否则交换 bi−1,bi 并令 i←max(2,i−1)。当 i>k 时停止;k=1 无须循环。最近整数的半整数情形采用任一固定规则即可。

环境维数为 n 时,稠密实现保存基向量、正交化向量和 μ 数据需 O(nk+k2) 个整数或有理数槽;各数的位长度另行计入,槽数并非位空间界。

最常用的首向量保证是

‖b1‖≤(δ−1/4)−(k−1)/2λ1(Λ).

这个估计不要求先求解 SVP。令 a=δ−1/4>0,约化条件给 ‖bi∗‖2≥a‖bi−1∗‖2。对任意非零格点 v=∑zibi,取最大的 j 使 zj≠0;它在前 j−1 个方向正交补中的分量为 zjbj∗,故

‖v‖≥‖bj∗‖≥a(j−1)/2‖b1‖≥a(k−1)/2‖b1‖.

再取最短非零 v 就得到上式。取 δ=3/4 得 ‖b1‖≤2(k−1)/2λ1(Λ)。常数依赖具体的 δ 约定;不能把 2(k−1)/2 原样贴到任意参数。

直觉
LLL 的尺寸约化与基交换

size reduction 把 bi 沿较早方向的 Gram–Schmidt 系数约到最近整数,使投影系数留在 [−1/2,1/2]。Lovász 条件则阻止“真正的新方向”突然变得过短:若 bi∗ 相对前一方向太小,交换两列让短结构向前移动,再重新整理系数。

算法约化的是表示,不是点集。它无法把格变得更密,也没有直接求出所有逐次极小;它保证输出基不会以无限糟糕的顺序和投影系数隐藏短向量。指数近似因子仍会随维数增长,这正是“多项式时间”与“密码参数下足够强的约化”之间的距离。

Gram–Schmidt 向量通常不是格点,只用于分析投影长度。真正输出的每个 bi 始终是原基的整数线性组合;若实现把浮点正交向量当作新列写回格基,便改变了问题。

例子与边界

下面的二维例子固定将半整数向零舍入。取

b1=(1,1),b2=(1,0),δ=3/4.

有 b1∗=(1,1)、μ2,1=1/2、b2∗=(1/2,−1/2)。size-reduction 条件恰好满足,但 Lovász 两边分别为

34‖b1∗‖2=32,‖b2∗‖2+14‖b1∗‖2=1,

所以必须交换。交换后先取 (1,0),再把原 (1,1) 减去它,得到 (0,1);输出是同一个 Z2 的正交短基。这个例子同时表明 size reduction 单独不足以约束基的顺序。

边界 δ≤1/4 不能给上述正的间隙因子,δ=1 又使经典多项式终止分析失去固定收缩余量。实际实现常取接近 1 的值换取较好基,但计算开销与数值精度也随之改变。

精确算术的定理不能直接为朴素浮点实现背书。近乎相关的长基会造成 Gram–Schmidt 严重消去;可靠软件使用动态精度、整数更新与经验证的条件复查。LLL 也不是精确 SVP 算法:首向量保证是上式的维数指数近似。

推论与应用

LLL 为有理数重构、整系数多项式分解、丢番图逼近和低维格攻击提供可审计的基线。它还能作为更强 BKZ 类算法的预处理,但块约化的代价模型与近似质量不属于 LLL 定理本身。

在密码分析中,把噪声关系或模方程嵌入格后运行 LLL,只有在目标向量相对余体积与其他短向量足够突出时才可能恢复秘密。一次玩具实验成功不能推出渐近攻击;需要同时报告嵌入维数、缩放、预测根 Hermite 因子与实际资源。

参考资料
  • Arjen K. Lenstra, Hendrik W. Lenstra Jr., and László Lovász, “Factoring Polynomials with Rational Coefficients,” Mathematische Annalen 261, 1982, pp. 515–534。
  • Phong Q. Nguyen and Brigitte Vallée (eds.), The LLL Algorithm: Survey and Applications, Springer, 2010, Chs. 1–2。
  • Oded Regev(授课),Eyal Kaplan(记录),Lattices in Computer Science, Lecture 2: LLL Algorithm,2004,2013 年修订,§§2–3:整数操作、势函数及位复杂度。
  • Henri Cohen, A Course in Computational Algebraic Number Theory, Springer, 1993, Sec. 2.6。
关系图谱4 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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