23
Solving problems with the LLL algorithm Mark van Hoeij Florida State University [email protected] October 17, 2015 Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 1 / 23

Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Solving problems with the LLL algorithm

Mark van Hoeij

Florida State University

[email protected]

October 17, 2015

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 1 / 23

Page 2: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Lattice basis reduction (LLL)

A lattice is a discrete Z-module ⊆ Rn

Example: If b1,b2 ∈ R2 are R-linearly independent then

L = SPANZ(b1,b2) = {n1b1 + n2b2 ∣n1,n2 ∈ Z}

is a lattice of rank 2 and b1,b2 is a basis of L.

Lattice basis reduction

Input: a basis of L.Output: a good basis of L.

For rank 2 this is easy (≈ Euclidean algorithm). For a long time it wasnot known how to handle rank n > 2 until:

[LLL 1982] (Lenstra, Lenstra, Lovasz): Efficient algorithm for any rank.

Has lots of applications!

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 2 / 23

Page 3: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Figure 1 : A lattice with a bad basis b1,b2 and a good basis v1, v2.

L = {dots in Figure 1} = SPANZ(b1,b2) = SPANZ(v1, v2)

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 3 / 23

Page 4: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Gram-Schmidt process (n = 2)

1 v∗1 = v12 v∗2 = v2 − µv∗1 Compute µ ∈ R such that v∗1 ⊥ v∗2 .

G.S.-vectors v∗1 , . . . , v∗

n ; very useful information on L

even though v∗2 , . . . , v∗

n are generally not in L.

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 4 / 23

Page 5: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

b1,b2 is a bad basis because:

1 b1,b2 are almost parallel,

2 ∣∣b∗2 ∣∣ ≪ ∣∣b2∣∣ (good basis Ô⇒ ∣∣v∗i ∣∣ ≈ ∣∣vi ∣∣)3 min(∣∣b∗1 ∣∣, ∣∣b∗2 ∣∣) is tiny, and thus a poor bound:

Let bmin ∶=min(∣∣b∗i ∣∣)Shortest-vector-bound: bmin ⩽ ∣∣shortest v ≠ 0 in L∣∣

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 5 / 23

Page 6: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Given a bad basis b1,b2, how to find a good basis?

1 Subtract an integer-multiple of a one vector from another.(First step in the picture is: replace b1 with b1 − b2).

2 Repeat as long as Step 1 can make a vector shorter.

This strategy works well for rank n = 2.

Efforts to extend to n > 2 failed until the breakthrough [LLL 1982], whichuses lengths of G.S.-vectors b∗i and not the lengths of the bi themselves!

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 6 / 23

Page 7: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Application #1: p = a2 + b2

Theorem (Fermat)

If p prime and p ≡ 1 mod 4, then p = a2 + b2 for some a,b ∈ Z.

Example: p = 10400 + 69 = 10000000000000 . . . . . . . . .00000000000069

How to find a,b ∈ Z with a2 + b2 equal to p?

Observation: a2 + b2 ≡ 0 mod p

Hence a ≡ αb mod p for some solution of α2 + 1 ≡ 0 mod p.

Compute α (e.g. Berlekamp’s algorithm). Then

( ±ab

) ∈ SPANZ((p0

) ,( α1

))

(the ± is irrelevant) (α2 + 1 ≡ 0 has two solutions mod p)

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 7 / 23

Page 8: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Application #1: p = a2 + b2

p = 10400 +69 = 1000000000000000000 . . . . . . . . .000000000000000069

Find: a,b ∈ Z with a2 + b2 = p.

If

v = ( ab

) ∈ SPANZ((p0

) ,( α1

))

then∣∣v2∣∣ = a2 + b2 ≡ (αb)2 + b2 = (α2 + 1)b2 ≡ 0 mod p.

So ∣∣v ∣∣2 is divisible by p.So ∣∣v ∣∣2 is p if v is short enough: 0 < ∣∣v ∣∣2 < 2p

Such v is easy to find in a good basis.

However, {( p0

) ,( α1

)} is a bad basis (angle ≈ 10−400 radians!)

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 8 / 23

Page 9: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Application #1: p = a2 + b2

p = 10400 +69 = 1000000000000000000 . . . . . . . . .000000000000000069

Find: a,b ∈ Z with a2 + b2 = p.

The simple strategy from slide 6 reduces the bad basis to a good basis.

From it we can immediately read off a solution:

( ab

) = ( 858038135984417422601 . . . . . .0688928009299704710513585978387637054198 . . . . . .0249251426547937937

)

The computation (finding α and reducing the basis) takes < 0.1 seconds.

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 9 / 23

Page 10: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Lattice basis reduction for arbitrary rank n

Apply the Gram-Schmidt process to b1, . . . ,bn

b∗1 = b1

b∗2 = b2 − µ2,1b∗1 (take µij ∈ R s.t. b∗i ⊥ b∗j ) (j < i)

b∗3 = b3 − µ3,1b∗1 − µ3,2b∗2⋯

Det(L) = ∣∣b∗1 ∣∣⋯∣∣b∗n ∣∣ (the determinant is basis-independent).

Replacing bi ← bi − kbj reduces µij to µij − k (k ∈ Z).

LLL lattice basis reduction1 Reduce to ∣µij ∣ ⩽ 0.51 (⩽ 0.5 if µij known exactly).

2 If swapping bi−1 ↔ bi increases ∣∣b∗i ∣∣ at least 10% for some i , then doso and go back to Step 1.

Output: good basis: ∣∣b∗i−1∣∣ ⩽ 1.28 ⋅ ∣∣b∗i ∣∣ and ∣µij ∣ ⩽ 0.51

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 10 / 23

Page 11: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Properties of LLL reduced basis

If Output(LLL) = b1, . . . ,bn then

∣∣b∗1 ∣∣ ⩽ 1.28 ⋅ ∣∣b∗2 ∣∣ ⩽ 1.282 ⋅ ∣∣b∗3 ∣∣ ⩽ ⋯ ⩽ 1.28n−1 ⋅ bmin

hence

∣∣b1∣∣ ⩽ fn ⋅ ∣∣shortest v ≠ 0 in L∣∣ “fudge factor” fn = 1.28n−1

If L has a short non-zero vector then b1 is not much longer.If L has short independent S1, . . . ,Sk then b1, . . . ,bk are not much longer.

Many problems P can be solved this way:

1 Construct a lattice L = SPANZ(b1, . . . ,bn) for which Solution(P)can be read some solution-vectors S1, . . . ,Sk ∈ L.

2 Construct L in such a way that vectors in L − SPANZ(S1, . . . ,Sk)are ⩾ fn times longer than S1, . . . ,Sk .

3 Replace b1, . . . ,bn by an LLL-reduced basis, then:

4 S1, . . . ,Sk ∈ SPANZ(b1, . . . ,bk). Separates S1, . . . ,Sk from rest of L

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 11 / 23

Page 12: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Application #2:Reconstruct algebraic number from an approximation

Suppose β is an algebraic number, a root of an irreducible P ∈ Z[x].Suppose P = ∑n−1

i=0 cixi with ∣ci ∣ ⩽ 10b.

Suppose we have an approximation α ∈ R with error < 10−a. We needa ⩾ bn+ εn2 because P has ≈ bn digits of data. (fudge factor fn ; εn2)

Problem: Compute exact β (compute P) from the approximation α.

Can read P from solution-vector S ∶= (c0, . . . , cn−1) ∈ Zn.Problem: Zn contains unwanted vectors as well.

S = Sculpture ⊆ rock. Use chisel to separate unwanted rock.

Idea:

Add one (or more) entries Zn → Zn+1 that make unwanted vectorsat least fn times longer than S . Use LLL to separate them.

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 12 / 23

Page 13: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Application #2:Reconstruct algebraic number from an approximation

Define E ∶ Zn → Zn+1

(c0, . . . , cn−1)↦ (c0, . . . , cn−1, ∑ ci [10aαi] )

b1, . . . ,bn ∶= E( standard basis of Zn )

b1, . . . ,bn spans a lattice L ⊆ Zn+1 of rank n.

b1, . . . ,bn is a bad basis. Typical example: degree(P) < 40 and∣coefficients∣ ⩽ 10100. Angles will be ≈ 10−4000 radians!

LLL quickly turns this into a good basis.

With suitable precision a, this either leads to the minpoly P = ∑ cixi

or a proof that no P exists within the chosen bounds.

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 13 / 23

Page 14: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Application #3: Polynomial-time factorization

Theorem (LLL 1982)

Factoring in Q[x] can be done in polynomial time.

Proof sketch: Compute a root of f to precision a. Use the previous slideto compute its minpoly. Choose a in such a way that this produces eithera non-trivial factor, or an irreducibility proof.

Remarks:1 [LLL 1982] uses a p-adic root, while [Schonhage 1984] uses a real or

complex root. Both work in polynomial time.

2 Neither was used in computer algebra systems;[Zassenhaus 1969] (not polynomial time!) is usually much faster.

3 Faster algorithm [vH 2002]: apply LLL to a much smaller lattice.

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 14 / 23

Page 15: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Integer solutions of approximate and/or modular equations.

Find: x1, . . . , xn ∈ Z when given:

1 Approximate linear equations: ∣ai ,1x1 +⋯ + ai ,nxn∣ < εi (aij ∈ R)

2 or modular linear equations bi ,1x1 +⋯ + bi ,nxn ≡ 0 mod mi

3 or a mixture of the above, and other variations

then use LLL.

Remarks:

Linear equations over R: Ordinary linear algebra gives a basissolutions over R, but this does not help to find solutions over Z.

Equations (approximate and/or modular etc.) areinserted in a lattice by adding entries (like E ∶ Zn → Zn+1 on p. 13).

[vH, Novocin 2010]: Efficient method for:”amount(data in equations)” ≫ ”amount(data in solution)”

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 15 / 23

Page 16: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Application: Integer relation finding

Given a1, . . . , an ∈ R, find x1, . . . , xn ∈ Z (say ∣xi ∣ ⩽ 10100) with

a1x1 +⋯ + anxn = 0.

Notable algorithms:

[LLL 1982]

[PSLQ 1992] ( ≡ [HJLS 1986] ?)

Beautiful applications e.g. PSLQ ; Bailey-Borwein-Plouffe formula for π

Remarks:

[LLL 1982] is a more complete solution because [PSLQ 1992] gave nobound(precision(ai)) ; provable result.

PSLQ won SIAM Top 10 Algorithms of the Century award.

The fastest implementations I have seen can handle n = 500(using modern versions of LLL).

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 16 / 23

Page 17: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Counting # LLL uses in one paper

Recent paper: [Derickx, vH, Zeng]Computing Galois representations and equations for modular curves XH(`).

This paper uses LLL for:

1 Finding low-degree functions:To a function, associate a vector containing root/pole orders. Lowdegree functions have short vectors, use LLL to find them.

2 The paper computes an algebraic number α mod primes p1, . . . ,pn.Use LLL to reconstruct the minpoly P of α.

3 P has huge coefficients (> 101000).Use LLL to find a smaller Q ∈ Z[x] with Q[x]/(P) ≅ Q[x]/(Q).

4 One of the tests for Q is to compute its Galois group.Galois group computations use LLL directly and indirectly (factoringresolvent polynomials uses [vH 2002], which uses LLL).

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 17 / 23

Page 18: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Other applications

[Imamoglu, vH 2015]: solve linear differential equations in terms ofhypergeometric functions 2F1(a,b; c ∣ f ) where f is a rational function.

Problem:

We can recover f if the first term cxd of the Taylor series of f is known.We have no direct way to compute c , but given c , we can check if c is OK.

Strategy for finding c :

Work modulo a prime p, then try all p cases! Then work mod higherp-powers (or other primes) until one can recover c ∈ Q with LLL.

This strategy has other applications. It may help if a system of polynomialequations is too complicated to be solved directly with Grobner basis.

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 18 / 23

Page 19: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Polynomial factorization until 2000.

f ∈ Z[x], degree N, square-free and primitive.

Step 1:

Factor f ≡ f1⋯ fr mod pand Hensel lift:

f ≡ f1⋯ fr mod pa

Step 2 in [Zassenhaus 1969]:

Try S ⊆ {f1, . . . , fr} with 1,2, . . . ⌊r/2⌋ elements, and check if theproduct (lifted to Z[x]) is a factor of f in Z[x].Up to 2r−1 cases S ⊆ {f1, . . . , fr} (Combinatorial Problem)

[LLL 1982] Bypasses Combinatorial Problem:

L ∶= {(c0, . . . , cN−1) ∣ ∑ cixi ≡ 0 mod (pa, f1)} (rank = N)

LLL-reduce, take first vector, and compute gcd(f ,∑ cixi).

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 19 / 23

Page 20: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Factor f in Q[x], degree N = 1000

[LLL 1982] reduces a lattice of rank N

Algorithm runs in polynomial time.

However, lattice reduction for rank 500 is very time consuming.

rank N = 1000 is a problem!

[Zassenhaus 1969] tries ⩽ 2r−1 cases

r = 12 ; , (Finishes in seconds)

r = 80 ; / (Millions of years, even with 109 cases per second)

If: f has degree N = 1000, few factors in Q[x] but r = 80 factors in Fp[x]Then: Out of reach for any algorithm in 2000.

However, 80 bits of data reduces CPU time from eons to seconds!

[vH 2002]: Use lattice reduction to compute only those bits! (rank ≈ r)

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 20 / 23

Page 21: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

Factor f in Q[x], degree N , with f ≡ f1⋯fr mod pa

[LLL 1982]: (polynomial time)

Reduce a lattice of rank N (and large entries)

[Zassenhaus 1969]: (not poly time, usually faster than [LLL 1982])

Try (exponentially many) subsets S ⊆ {f1, . . . , fr} (Combinatorial Problem)

[vH 2002]: (fastest)

S ⇐⇒ (v1, . . . , vr) ∈ {0,1}r

Insert data: {0,1}r ⊆ Zr → Zr+ε to construct lattice of rank r + εSequence of lattice reductions leads to v1, . . . , vr , and hence S .

Test (as in Zassenhaus) if ∏S mod pa ; a factor in Q[x].[vH 2002]: correctness and termination proof, no complexity bound.

Complexity bound: [vH, Novocin 2010] and [vH 2013].

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 21 / 23

Page 22: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

[vH 2002] factoring

S ⊆ {f1, . . . , fr} ⇐⇒ v ∈ {0,1}r ⊆ Zr → Zr+ε

If: we have: approximate/modular linear equations for v = (v1, . . . , vr)then: lattice reduction ; v .

However, the factor ∏S =∏ f vii of f depends non-linearly on v .

Idea: coefficients(f ⋅ f ′i /fi) ; equations for v(f ′i /fi is the logarithmic derivative; turns products into sums)

Remarks:

[vH 2002] runs fast; lattice reduction is only used to construct r bits.

Lots of data in coefficients(f ⋅ f ′i /fi ) N ⋅ log2(pa) bits ; r bits.

How to select from this data? (select all ; no speedup)

Arbitrary choice ; fast in practice but no complexity bound.

[vH Novocin 2010] and [vH 2013] solve this ; best complexity boundand practical performance, in the same algorithm.

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 22 / 23

Page 23: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither

References, polynomial factorization over Q

H. Zassenhaus (1969)

On Hensel Factorization I.

J. Number Theory, 1, 291-311

Lenstra, Lenstra, Lovasz (1982)

Factoring polynomials with rational coefficients

Math Ann. 261, 515-534

M. van Hoeij (2002)

Factoring polynomials and the knapsack problem

J. of Number Theory, 95, 167-189

M. van Hoeij, A. Novocin (2010)

Gradual sub-lattice reduction and a new complexity for factoring polynomials

LATIN, 539-553

M. van Hoeij (2013)

The complexity of factoring univariate polynomials over the rationals

ISSAC’2013 tutorial, slides at www.math.fsu.edu/∼hoeij

Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 23 / 23