LLL 与 BKZ 算法:理论、实现与优化
一、引言
1.1 研究背景与意义
格基约减是数学和计算机科学中的一个核心问题,其在密码分析、后量子密码学、整数规划等领域具有广泛的应用。随着量子计算的发展,传统的基于数论的密码系统面临被破解的风险,而格基密码学因其抗量子特性成为后量子密码学的重要研究方向。
LLL 算法(Lenstra-Lenstra-Lovász 算法)和 BKZ 算法(Block Korkine-Zolotarev 算法)是格基约减领域的两个里程碑式成果。LLL 算法实现了多项式时间复杂度的突破,而 BKZ 算法通过块优化升级进一步提升了约减质量。这两种算法构成了现代格基约减技术的基础,在密码分析、后量子密码等领域发挥着关键作用。
本文基于 10 份格基约减领域的核心文献,全面覆盖 LLL 和 BKZ 算法的基础理论、优化变体和工程实现:
- 《The LLL Algorithm: Survey and Applications》- LLL 基础、变种、概率分析、数理基础
- 《Finding Short Lattice Vectors within Mordell's Inequality》- Mordell 不等式与 LLL 关联、块 wise 约减
- 《LLL on the average》- LLL 平均情况分析、误差特性
- 《A Complete Analysis of the BKZ Lattice Reduction Algorithm》- BKZ 完整理论分析
- 《BKZ 2.0: Better Lattice Security Estimates》- BKZ 2.0 优化、安全性估计
- 《Improved Pump and Jump BKZ by Sharp Simulator》- Pump and Jump BKZ 优化
- 《Lattice Basis Reduction: Improved Practical Algorithms and Solving Subset Sum Problems》- LLL/BKZ 实践优化、子集和问题应用
- 《Lattice enumeration using extreme pruning》- 极端剪枝枚举与 BKZ 局部 SVP
- 《Orthogonalized lattice enumeration for solving SVP》- 正交化枚举与 BKZ 协同
- 《Practical, Predictable Lattice Basis Reduction》- LLL/BKZ 工程实现、可预测性
1.2 文档核心目标
本文的核心目标是:
- 攻克 LLL 和 BKZ 算法的关键误解与理解难点
- 完整呈现算法的数理推理与实现流程
- 量化分析算法的复杂度与实验性能
- 衔接理论研究与工程实现落地
二、预备知识:格与格基约减基础
2.1 格的核心定义与性质
格的数学定义
定义 2.1 设 $\mathbf{b}_1, \mathbf{b}_2, \ldots, \mathbf{b}_d$ 是 $\mathbb{R}^n$ 中的线性无关向量,由这些向量生成的格 $L$ 定义为:
$$ L = \mathcal{L}(\mathbf{b}_1, \mathbf{b}_2, \ldots, \mathbf{b}d) = \left{ \sum{i=1}^d a_i \mathbf{b}_i \mid a_i \in \mathbb{Z} \right} $$
其中 $\mathbf{b}_1, \mathbf{b}_2, \ldots, \mathbf{b}_d$ 称为格 $L$ 的基,$d$ 称为格的秩。
格基等价性与体积不变性
定理 2.1 若 $B = [\mathbf{b}_1, \mathbf{b}_2, \ldots, \mathbf{b}_d]$ 和 $C = [\mathbf{c}_1, \mathbf{c}_2, \ldots, \mathbf{c}_d]$ 是同一格 $L$ 的基,则存在一个 $d \times d$ 的整数幺模矩阵 $U$ (即 $U \in GL_d(\mathbb{Z})$ 且 $\det(U) = \pm 1$),使得 $C = BU$。
证明:
- 由于 $B$ 和 $C$ 都是格 $L$ 的基,每个 $\mathbf{c}_i$ 都可以表示为 $B$ 的整数线性组合,即存在整数矩阵 $U$ 使得 $C = BU$。
- 同理,每个 $\mathbf{b}_i$ 也可以表示为 $C$ 的整数线性组合,即存在整数矩阵 $V$ 使得 $B = CV$。

