Cryptography Reference
In-Depth Information
Algorithm 24 LLL algorithm with Euclidean norm (typically, choose δ
=
3 / 4)
m .
OUTPUT: LLL reduced basis b 1 ,..., b n
1: Compute the Gram-Schmidt basis b 1 ,..., b n and coefficients µ i,j for 1
INPUT: b 1 ,..., b n ∈ Z
j<i
n
b i , b i =
b i
2
2: Compute B i =
for 1
i
n
3: k
2
4: while k
=
n do
for j
=
( k
1) downto 1 do
Perform size reduction
5:
Let q j =
µ k,j
and set b k =
b k
q j b j
6:
Update the values µ k,j for 1
j<k
7:
end for
8:
if B k
µ k,k 1 ) B k 1 then
Check Lovasz condition
( δ
9:
k
=
k
+
1
10:
else
11:
Swap b k with b k 1
12:
Update the values b k , b k 1 , B k , B k 1 , µ k 1 ,j and µ k,j for 1
j<k , and
13:
µ i,k i,k 1 for k<i
n
k
=
max
{
2 ,k
1
}
14:
15: end if
16: end while
Lemma 17.4.1 Throughout the LLL algorithm the values b i and B i for 1
i
n and µ i,j
for 1
j<i
n are all correct Gram-Schmidt values.
Exercise 17.4.2 Prove Lemma 17.4.1 . In other words, show that line 6 of the LLL algorithm
does not change b i or B i for 1
n . Similarly, line 12 of the algorithm does not change
any values except those mentioned in line 13.
i
It is illuminating to compare the LLL algorithm with the Lagrange-Gauss reduction
algorithm. The basic concept of size reduction followed by a swap is the same; there are,
however, two crucial differences.
1. The size reduction operation in the Lagrange-Gauss algorithm gives the minimal value
for
. In LLL, the coefficient µ k,j is chosen to depend on b k and b j
so it does not necessarily minimise
b 2 +
q b 1
over q
∈ Z
can grow during the algorithm.
Of course, in the two-dimensional case of LLL then µ 2 , 1 is the same as the value used
in the Lagrange-Gauss algorithm and so the size reduction step is the same.
2. The size check in LLL (the Lovasz condition) is on the lengths of the Gram-Schmidt
vectors, unlike the size check in the Lagrange-Gauss algorithm, which is on the length
of the basis vectors themselves.
b k
. Indeed,
b k
These features of LLL may seem counterintuitive, but they are essential to the proof that
the algorithm runs in polynomial-time.
 
Search WWH ::




Custom Search