The Lenstra–Lenstra–Lovász (LLL) lattice basis reduction algorithm is a polynomial time lattice reduction algorithm invented by Arjen Lenstra, Hendrik Lenstra and László Lovász in 1982. Given a basis
Contents
where B is the largest length of
The original applications were to give polynomial-time algorithms for factorizing polynomials with rational coefficients, for finding simultaneous rational approximations to real numbers, and for solving the integer linear programming problem in fixed dimensions.
LLL reduction
The precise definition of LLL-reduced is as follows: Given a basis
define its Gram–Schmidt process orthogonal basis
and the Gram-Schmidt coefficients
Then the basis
- (size-reduced) For
1 ≤ j < i ≤ n : | μ i , j | ≤ 0.5 . By definition, this property guarantees the length reduction of the ordered basis. - (Lovász condition) For k = 1,2,..,n
: δ ∥ b k − 1 ∗ ∥ 2 ≤ ∥ b k ∗ ∥ 2 + μ k , k − 1 2 ∥ b k − 1 ∗ ∥ 2
Here, estimating the value of the
The LLL algorithm computes LLL-reduced bases. There is no known efficient algorithm to compute a basis in which the basis vectors are as short as possible for lattices of dimensions greater than 4. However, an LLL-reduced basis is nearly as short as possible, in the sense that there are absolute bounds
LLL Algorithm
The following description is based on (Hoffstein, Pipher & Silverman 2008, Theorem 6.68), with the corrections from the errata
INPUT:
PROCEDURE:
Perform Gram-Schmidt, but do not normalize:OUTPUT: LLL reduced basis
Example
The following presents an example due to W. Bosma.
Let a lattice basis
Then according to the LLL algorithm we obtain the following:
Apply a SWAP, continue algorithm with the lattice basis, which is given by columns
Implement the algorithm steps again.
LLL reduced basis
Applications
The LLL algorithm has found numerous other applications in MIMO detection algorithms and cryptanalysis of public-key encryption schemes: knapsack cryptosystems, RSA with particular settings, NTRUEncrypt, and so forth. The algorithm can be used to find integer solutions to many problems.
In particular, the LLL algorithm forms a core of one of the integer relation algorithms. For example, if it is believed that r=1.618034 is a (slightly rounded) root to an unknown quadratic equation with integer coefficients, one may apply LLL reduction to the lattice in
Implementations
LLL is implemented in
lll_reduction_int
LLLReducedBasis
LLL
in the package LLLBases
LLL
and LLLGram
(taking a gram matrix)IntegerRelations[LLL]
LatticeReduce
LLL
qflll
analysis.get_lll_reduced_lattice
LLL
driven by fpLLL and NTL