Skip to content

LLL 格基约化

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

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

条目类型
算法

形式陈述

给定秩 k格基 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 条件

δbi12bi2+μi,i12bi12(2ik).

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

最常用的首向量保证是

b1(δ1/4)(k1)/2λ1(Λ).

δ=3/4b12(k1)/2λ1(Λ)。常数依赖具体的 δ 约定;不能把 2(k1)/2 原样贴到任意参数。

直觉

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/2b2=(1/2,1/2)。size-reduction 条件恰好满足,但 Lovász 两边分别为

34b12=32,b22+14b12=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。
  • Henri Cohen, A Course in Computational Algebraic Number Theory, Springer, 1993, Sec. 2.6。
关系图谱6 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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