28.04.2014 Aufrufe

Gitter und Kryptographie - Goethe-Universität

Gitter und Kryptographie - Goethe-Universität

Gitter und Kryptographie - Goethe-Universität

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Vorlesungen von Prof. Dr. C.P. Schnorr:<br />

<strong>Gitter</strong> <strong>und</strong> <strong>Kryptographie</strong><br />

an der Johann Wolfgang <strong>Goethe</strong>-<strong>Universität</strong> Frankfurt/Main<br />

im Sommersemester 2013<br />

β 5 -Version<br />

12. Juli 2013


Inhaltsverzeichnis<br />

1 <strong>Gitter</strong> in linearen Räumen 5<br />

1.1 Die Geometrie der <strong>Gitter</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.2 Dualität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

1.3 Diskretheit, Primitive Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

1.4 Elementare Reduktionsverfahren zur l 2 -Norm || || . . . . . . . . . . . . . . . . . . . 12<br />

1.5 Hermite Normalform, Untergitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

2 Sukzessive Minima <strong>und</strong> Minkowski-Sätze 17<br />

2.1 Sukzessive Minima <strong>und</strong> erster Satz von Minkowski . . . . . . . . . . . . . . . . . . 17<br />

2.2 Packungsdichte, Hermite-Konstante, kritische <strong>Gitter</strong> . . . . . . . . . . . . . . . . . 19<br />

2.3 Zweiter Satz von Minkowski. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

3 Gauß-Reduktion 25<br />

3.1 Reduzierte Basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

3.2 Reduktionsverfahren für die Euklidische Norm . . . . . . . . . . . . . . . . . . . . 26<br />

4 LLL-reduzierte <strong>Gitter</strong>basen 31<br />

4.1 Definition <strong>und</strong> Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

4.2 Das LLL-Reduktionsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

4.3 LLL-Reduktion ganzzahliger Erzeugendensysteme . . . . . . . . . . . . . . . . . . . 37<br />

4.4 LLL-Reduktion mit Gleitkomma-Arithmetik . . . . . . . . . . . . . . . . . . . . . . 38<br />

4.5 LLL-Reduktion mit ganzzahliger Gram-Matrix . . . . . . . . . . . . . . . . . . . . 40<br />

4.6 LLL-Basen mit großem Approximationsfaktor . . . . . . . . . . . . . . . . . . . . . 40<br />

5 Lösen von Subsetsum-Problemen durch kurze <strong>Gitter</strong>vektoren 43<br />

5.1 Das Subsetsum-Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

5.2 Die Lagarias-Odlyzko-<strong>Gitter</strong>basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

5.3 Das CJLOSS-<strong>Gitter</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

5.4 <strong>Gitter</strong> mit großer Packungsdichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

6 HKZ- <strong>und</strong> Block-Reduktion von <strong>Gitter</strong>basen 49<br />

6.1 HKZ-Basen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

3


4 INHALTSVERZEICHNIS<br />

6.2 Semi Block 2k-Reduktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

6.3 Primal-Duale Reduktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />

6.4 Block-Korkine Zolotareff Reduktion, BKZ . . . . . . . . . . . . . . . . . . . . . . . 57<br />

6.5 BKZ-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

6.6 Kritische k-reduzierte Basen für k = 2, 3 . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

7 N P-vollständige <strong>Gitter</strong>probleme 63<br />

7.1 N P-Vollständigkeit von Rucksack. . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

7.2 N P-Vollständigkeit von SVP l∞ , CVP l∞ , CVP l2 . . . . . . . . . . . . . . . . . . . . 64<br />

8 Konstruktion eines kürzesten <strong>Gitter</strong>vektors 67<br />

8.1 Algorithmus mit vollständiger Aufzählung . . . . . . . . . . . . . . . . . . . . . . . 67<br />

8.2 Algorithmus mit geschnittener Aufzählung . . . . . . . . . . . . . . . . . . . . . . . 68<br />

9 <strong>Gitter</strong>reduktion in beliebiger Norm 71<br />

9.1 Gr<strong>und</strong>begriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

9.2 Reduzierte Basen zur Norm ‖·‖ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

9.3 Konstruktion einer HKZ-reduzierten <strong>Gitter</strong>basis . . . . . . . . . . . . . . . . . . . 80<br />

9.4 Alternative zur Reduktion in ‖·‖ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />

9.5 Konstruktion eines ‖·‖-kürzesten <strong>Gitter</strong>vektors . . . . . . . . . . . . . . . . . . . . 81<br />

10 Anwendungen der <strong>Gitter</strong>reduktion 85<br />

10.1 <strong>Gitter</strong>basis zu 3-SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

10.2 Angriff auf Dåmgards Hashfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />

10.3 Faktorisieren ganzer Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />

11 Komplexität, N P-Vollständigkeit 95<br />

11.1 N P-Vollständigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />

11.2 Schwierige, algorithmische <strong>Gitter</strong>probleme . . . . . . . . . . . . . . . . . . . . . . . 96<br />

12 Gr<strong>und</strong>lagen 101<br />

12.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />

Algorithmenverzeichnis 103<br />

Index 103


Kapitel 1<br />

<strong>Gitter</strong> in linearen Räumen<br />

<strong>Gitter</strong> als Punktmengen des Vektorraums R m sind Gegenstand der Geometrie der Zahlen, die<br />

Minkowski um 1900 entwickelt hat. Der ganzzahlige Lösungsraum eines linearen, reellen Gleichungssystems<br />

ist ein <strong>Gitter</strong>, der größere reelle Lösungsraum ist ein linearer Raum. <strong>Gitter</strong> sind<br />

also ein diskretes Analogon zu linearen Räumen. Probleme der Linearen Algebra werden durch<br />

<strong>Gitter</strong> diskretisiert. Dabei geht es insbesondere um die Konstruktion kleiner Lösungen, also kurzer<br />

<strong>Gitter</strong>vektoren. Die älteren Arbeiten von Hermite, Gauß <strong>und</strong> Korkine - Zolotareff behandeln<br />

<strong>Gitter</strong> in der Sprache der quadratischen Formen.<br />

Ein <strong>Gitter</strong> ist eine diskrete, additive Untergruppen eines reellen Vektorraums R m . Wir behandeln<br />

Gittterbasen sowie ihre Teilbasen, primitive Systeme, die <strong>Gitter</strong>determinante, das einer Basis<br />

zugehörige Orthogonalsystem, isometrische Transformationen <strong>und</strong> die QR-Zerlegung von Basen.<br />

Wir definierenen ferner duale <strong>Gitter</strong> <strong>und</strong> duale Basen, Hermite-Normalformen, sowie elementare<br />

Algorithmen zur Reduktion von <strong>Gitter</strong>basen. Der Leser sollte mit Linearer Algebra vertraut sein.<br />

<strong>Gitter</strong>-Notation. Es bezeichne R die Menge der reellen Zahlen <strong>und</strong> Z die der ganzen Zahlen,<br />

fener sei R m der reelle Vektorraum der Dimension m. Es seien b 1 , . . . , b n ∈ R m beliebige Vektoren<br />

<strong>und</strong> B = [b 1 , ..., b n ] ∈ R m×n die Matrix mit Spaltenvektoren b 1 , . . . , b n . Dann bezeichnet<br />

L(B) = L(b 1 , . . . , b n ) = def {Bz|z ∈ Z n } = ∑ n<br />

i=1 b iZ<br />

die von den Vektoren b 1 , ..., b n erzeugte additive Untergruppe des R n . Sind die Vektoren b 1 , ..., b n<br />

linear unabhängig, so nennen wir L(B) ein <strong>Gitter</strong> mit Basis b 1 , ..., b n bzw. B <strong>und</strong> Dimension<br />

oder Rang dim(L) = def rang(B). Der vom <strong>Gitter</strong> L = L(B) aufgespannte lineare Raum ist<br />

span(L) = def {Bz|z ∈ R n } = ∑ n<br />

i=1 b iR. Alle Basen B von L erzeugen denselben linearen Raum<br />

span(L) <strong>und</strong> haben damit denselben Rang.<br />

1.1 Die Geometrie der <strong>Gitter</strong><br />

Es sei 〈·, ·〉 : R m ×R m → R das Standard-Skalarprodukt, 〈x, y〉 = x t y. Es bezeichne ‖x‖ = √ 〈x, x〉<br />

die Länge des Vektors x. Die multiplikative Gruppe GL n (Z) der ganzzahligen n × n-Matrizen mit<br />

Determinante ±1 nennt man die allgemeine lineare Gruppe über Z. Die Matrizen U ∈ GL n (Z)<br />

heißen unimodular. Die Basen ¯B eines <strong>Gitter</strong>s sind die transformierten einer beliebigen Basis<br />

B ∈ R m×n , transformiert durch unimodulare Matrizen.<br />

Satz 1.1.1<br />

Die Basen des <strong>Gitter</strong>s L(B) mit B ∈ R m×n sind genau die Matrizen B U mit U ∈ GL n (Z).<br />

5


6 KAPITEL 1. GITTER IN LINEAREN RÄUMEN<br />

Beweis. Sei ¯B eine weitere Basis zu L(B). Dann gibt es ein U ∈ Z n×n mit ¯B = B U, denn<br />

jeder Spaltenvektor von ¯B ist ganzzahlige Linearkombination von Spaltenvektoren von B. Wegen<br />

rang( ¯B) = rang(B) gilt det U ≠ 0, <strong>und</strong> somit ¯B U −1 = B. Wegen L( ¯B) = L(B) ist U −1 ganzzahlig,<br />

<strong>und</strong> somit | det U| = 1 <strong>und</strong> U ∈ GL n (Z).<br />

Umgekehrt gilt für U ∈ GL n (Z) offenbar dass L(B U) = L(B), somit ist B U Basis zu L(B).<br />

□<br />

✲<br />

✕<br />

✲<br />

✕<br />

✲<br />

✕<br />

✲<br />

0 ✕<br />

✲<br />

✕<br />

b<br />

♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣<br />

a<br />

♣♣✲♣<br />

♣♣♣♣<br />

✕<br />

✲<br />

♣✕<br />

♣ ♣<br />

♣<br />

♣<br />

♣<br />

♣<br />

♣<br />

♣<br />

✲<br />

✕<br />

✲<br />

✕<br />

✲<br />

Abbildung 1.1.1: Gr<strong>und</strong>masche des <strong>Gitter</strong>s mit Basis a, b ∈ R 2<br />

Gr<strong>und</strong>masche, Gram-Matrix, Determinante. Die Gr<strong>und</strong>masche zur Basis B = [b 1 , . . . , b n ]<br />

ist das Parallelepiped<br />

P = P(B) = { ∑ n<br />

i=1 t ib i | 0 ≤ t 1 , . . . , t n < 1} ⊂ span(L) .<br />

Jeder Punkt x ∈ span(L) hat eine eindeutige Zerlegung x = b + m mit m ∈ P <strong>und</strong> b ∈ L.<br />

Damit ist der Raum span(L) zerlegt in die verschobenen Maschen b + P(B) mit b ∈ L <strong>und</strong> es<br />

gilt span(L) = ⋃ b∈L<br />

b + P(B) = P + L. Die Gram-Matrix zur Basis B ist die n × n-Matrix<br />

B t B = [〈b i , b j 〉] 1≤i,j≤n bestehend aus den Skalarprodukten der Basisvektoren.<br />

Die Determinante det L des <strong>Gitter</strong>s L = L(B) ⊂ R m ist das Volumen von P(B) ⊂ span(L),<br />

det L = def vol P(B) = ( det B t B ) 1 2 .<br />

Die Gleichheit vol P(B) = ( det B t B ) 1 2 gilt offenbar für Basen B ∈ R n×n . Sie gilt allgemein weil<br />

sie bei Isometrie erhalten bleibt, siehe Lemma 1.1.3.<br />

Die Determinante det(B t B) ist unabhängig von der Wahl der Basis B von L. Denn seien B, ¯B<br />

Basen des <strong>Gitter</strong>s mit ¯B = B U, U ∈ GL n (Z). Wegen | det U| = 1 <strong>und</strong> der Multiplikativität der<br />

Determinante gilt det(B t B) 1 2 = det(U t B t BU) 1 2 = det( ¯B t ¯B ) 1 2 .<br />

Theorem 1.1.2<br />

Sei L ⊂ R m <strong>Gitter</strong> <strong>und</strong> B n (0, r) ⊂ span(L) die Kugel mit Mittelpunkt 0 <strong>und</strong> Radius r. Dann gilt<br />

lim r→∞ | L ∩ B n (0, r) |/vol B n (0, r) = 1/det L(B),<br />

d.h. det L(B) ist der Kehrwert der Dichte der <strong>Gitter</strong>punkte.<br />

Beweis. Sei L = L(B) <strong>Gitter</strong> mit Gr<strong>und</strong>masche P(B), dim(L) = n. Dann ist span(L) die disjunkte<br />

Vereinigung der um <strong>Gitter</strong>punkte b verschobenen Gr<strong>und</strong>masche, span(L) = ⋃ b∈L b + P(B).<br />

Da b + P(B) nur den <strong>Gitter</strong>punkt b enthält, gibt es pro det L Volumeneinheiten genau einen<br />

<strong>Gitter</strong>punkt. Diejenigen <strong>Gitter</strong>punkte b, deren Maschen b + P(B) die Kugel B n (0, r) echt schneiden,<br />

können entweder in L ∩ B n (0, r) oder im Komplement liegen. Dies führt in der Gleichung<br />

| L ∩ B n (0, r) |/vol B n (0, r) = 1/det L(B) + O( n r ) zu einem Fehler O( n r<br />

), der proportional zum<br />

Verhältnis Oberfläche zu Volumen von B n (0, r) ist.<br />


1.1. DIE GEOMETRIE DER GITTER 7<br />

Beispiel-<strong>Gitter</strong>. Wir behandeln <strong>Gitter</strong> zu dichtesten Kugelpackungen. Das erste sukzessive Minimum<br />

λ 1 ist die Länge des kürzesten <strong>Gitter</strong>vektors ungleich 0. Die (Packungs-) Dichte des <strong>Gitter</strong>s<br />

L mit dim L = n ist △(L) = (λ 1 /2) n V n / det L, dabei ist V n = vol B n (0, 1) das Volumen der n-dim.<br />

Einheitskugel: V n = π n/2 /(n/2)! ≈ ( )<br />

2 e π n/2/ √ πn <strong>und</strong> (n/2)! = Γ(1 + n/2) für die Gammafunktion<br />

Γ. Das <strong>Gitter</strong><br />

hat die Basis<br />

n<br />

A n := { (x 0 , x 1 , . . . , x n ) ∈ Z n+1 ∣ ∣ ∑ n<br />

i=0 x i = 0 }<br />

⎡<br />

⎤<br />

−1 0 0 · · · · · · 0<br />

1 −1 0 0<br />

. 0 .. . .. . .. .<br />

B =<br />

. . .. . .. . .. . .. .<br />

∈ Z (n+1)×n .<br />

.<br />

⎢ . .. . .. −1 0<br />

⎥<br />

⎣ 0 0 1 −1⎦<br />

0 · · · · · · · · · 0 1<br />

Offenbar gilt λ 1 = √ 2, det A n = √ n + 1. Die Dichte ist △(A n ) = V n 2 −n/2 (n + 1) −1/2 .<br />

Das Schachbrettgitter<br />

D n := {(x 1 , . . . , x n ) ∈ Z n | ∑ n<br />

i=1 x i = 0 mod 2}<br />

hat die Basis<br />

⎡<br />

⎤<br />

2 1 0 · · · · · · 0<br />

. 0 1 1 .. .<br />

.<br />

B =<br />

. .. . .. . .. . .. .<br />

∈ Z n×n .<br />

. ⎢.<br />

.. 1 1 0<br />

⎥<br />

⎣0 0 1 1⎦<br />

0 · · · · · · 0 0 1<br />

Offenbar gilt λ 1 = √ 2 <strong>und</strong> det(D n ) = 2. Die Dichte ist △(D n ) = V n 2 −n/2−1 .<br />

Das folgende <strong>Gitter</strong> E n ist für n = 0 mod 4 Untergitter von D n :<br />

{<br />

∣ ∑ ∣∣∣ n<br />

E n := (x 1 , . . . , x n ) ∈ Z n i=1 x i = 0 mod 4 <strong>und</strong><br />

x j = x j+1 mod 2 für 1 ≤ j < n.<br />

}<br />

Es hat die Basen<br />

⎡<br />

⎤<br />

4 2 0 · · · 0 1<br />

. 0 2 2 .. . .<br />

.<br />

B =<br />

. .. . .. . .. 0 .<br />

,<br />

. ⎢.<br />

.. 2 2 1<br />

⎥<br />

⎣0 0 2 1⎦<br />

0 · · · · · · 0 0 1<br />

⎡<br />

⎤<br />

4 2 2 · · · 2 1<br />

0 2 0 · · · 0 1<br />

. . .. . .. . .. . .<br />

. ∈ Z n×n .<br />

⎢.<br />

.. 2 0 1<br />

⎥<br />

⎣0 0 2 1⎦<br />

0 · · · · · · 0 0 1<br />

Offenbar gilt für n ≥ 8 dass λ 1 = √ 8 <strong>und</strong> det E n = 2 n , △(E n ) = V n 2 −n/2 .<br />

Die <strong>Gitter</strong> E 6 , E 7 sind Untergitter von E 8 ,<br />

E 6 := {x ∈ E 8 | x 6 = x 7 = x 8 }, E 7 := {x ∈ E 8 | x 7 = x 8 }.<br />

Isometrie, orthogonale Matrix, Äquivalenz. Eine lineare Abbildung T : V → W mit linearen<br />

Räumen V, W heißt isometrisch, bzw. eine Isometrie (von V ), wenn T das Skalarprodukt erhält,


8 KAPITEL 1. GITTER IN LINEAREN RÄUMEN<br />

d.h. wenn 〈b, b ′ 〉 = 〈T (b), T (b ′ )〉 für alle b, b ′ ∈ V . Eine Matrix Q ∈ R m×n , m ≥ n, heißt<br />

isometrisch, bzw.Isometrie, wenn die Abbildung x ↦→ Qx isometrisch ist. Damit ist Q ∈ R m×n<br />

genau dann isometrisch, wenn Q t Q = I n die Einheitsmatrix I n ∈ R n×n ist. Das Produkt von<br />

isometrischen Matrizen ist isometrisch. Eine isometrische Quadratmatrix Q ∈ R n×n bezeichnet<br />

man als orthogonale Matrix. Q ist orthogonal genau dann, wenn Q −1 = Q t . Mit Q ist auch Q t<br />

orthogonal. Damit ist Q ∈ R m×n genau dann isometrisch, wenn Q durch Hinzunahme von Spalten<br />

zu einer orthogonalen Matrix ergänzbar ist.<br />

Zwei <strong>Gitter</strong> L, ¯L heißen isometrisch, wenn es eine Isometrie T von span(L) gibt mit T (L) = ¯L.<br />

Zwei Basen B, ¯B heißen isometrisch, wenn es eine Isometrie Q gibt mit ¯B = QB. Offenbar sind<br />

¯B, B genau dann isometrisch, wenn B t B = ¯B t ¯B. Offenbar erzeugen isometrische Basen B, ¯B<br />

isometrische <strong>Gitter</strong> L(B), L( ¯B). Umgekehrt haben isometrische <strong>Gitter</strong> stets isometrische Basen.<br />

Zwei <strong>Gitter</strong> L, ¯L heißen äquivalent oder ähnlich, wenn es ein c > 0 gibt so dass L <strong>und</strong> c ¯L<br />

isometrisch sind, Bez.: L ∼ = ¯L. Die <strong>Gitter</strong> L, cL heißen proportional oder bis auf Skalierung gleich.<br />

Z.B. gilt D 3<br />

∼ = A3 . Z.B. sind folgende Basen isometrisch:<br />

⎡ ⎤<br />

[√ √ ]<br />

1 0<br />

[ ]<br />

2 1/ 2<br />

B := √ , ¯B := ⎣1 1⎦ , B t B =<br />

0<br />

¯B t 2 1 ¯B = .<br />

3/2 1 2<br />

0 1<br />

Geometrische Größen sind Größen, die bei isometrischen Abbildungen erhalten bleiben, also Invarianten<br />

von Isometrien. Volumeninhalte, Determinanten, Skalarprodukte <strong>und</strong> Längen von Vektoren<br />

sind geometrische Größen. Ein <strong>Gitter</strong> L ⊂ R m heißt vollständig, wenn dim L = m. Vollständige<br />

<strong>Gitter</strong> reichen für geometrische Betrachtungen aus, weil jedes <strong>Gitter</strong> nach Lemma 1.1.3(2) isometrisch<br />

zu einem vollständigen <strong>Gitter</strong> ist. Für kombinatorische <strong>und</strong> algorithmische Untersuchungen<br />

reichen vollständige <strong>Gitter</strong> dagegen nicht. Isometrische Abbildungen erhalten nicht die Ganzzahligkeit<br />

von Vektoren.<br />

Orthogonalsystem, orthogonale Projektion. Zur Basis b 1 , ..., b n ∈ R m bezeichne<br />

π i : R m → span(b 1 , . . . , b i−1 ) ⊥ die orthogonale Projektion, derart dass für alle b ∈ R m<br />

π i (b) ∈ span(b 1 , . . . , b i−1 ) ⊥ , b − π i (b) ∈ span(b 1 , . . . , b i−1 ) .<br />

Offenbar sind die Vektoren ̂b i := π i (b i ) für i = 1, ..., n paarweise orthogonal. Man berechnet<br />

̂b 1 , . . . , ̂b n durch das Gram-Schmidt-Verfahren<br />

̂b 1 := b 1 ,<br />

̂bi := π i (b i ) = b i − ∑ i−1<br />

〈b i,̂b j〉<br />

j=1 〈̂b j,̂b j〉<br />

̂b j für i = 2, 3, . . . , n.<br />

Für die Gram-Schmidt-Koeffizienten µ i,j := 〈bi,̂b j〉<br />

gilt insbesondere µ i,i = 1 <strong>und</strong> µ i,j = 0 für<br />

〈̂b j,̂b j〉<br />

j > i, sowie b i = ̂b i + ∑ i−1<br />

j=1 µ ̂b i,j j für i = 1, ..., n. In Matrizenschreibweise bedeutet dies<br />

[b 1 , . . . , b n ] = [ ̂b 1 , . . . , ̂b n ] [µ i,j ] t 1≤i,j≤n.<br />

QR-Zerlegung <strong>und</strong> geometrische Normalform (GNF). Die QR-Zerlegung B = QR der Basis<br />

B = [b 1 , ..., b n ] ∈ R m×n ist die eindeutige Zerlegung B = QR, so dass Q ∈ R m×n isometrisch ist<br />

<strong>und</strong> R ∈ R n×n obere Dreiecksmatrix mit positiven Diagonalelementen. Wir nennen R die geometrische<br />

Normalform (GNF) der Basis, Bez.: R = GNF (B). Es gilt Q := [̂b 1 /‖̂b 1 ‖, ..., ̂b n /‖̂b n ‖] ∈<br />

R m×n <strong>und</strong> für R = [r i,j ] 1≤i,j≤n gilt r i,i = ‖̂b i ‖, µ j,i = r i,j /r i,i ,<br />

⎡<br />

⎤ ⎡<br />

⎤<br />

‖̂b 1 ‖ 0 · · · · · · 0 1 µ 2,1 µ 3,1 · · · µ n,1<br />

0 ‖̂b 2 ‖ 0 · · · 0<br />

0 1 µ 3,2 µ n,2<br />

.<br />

R :=<br />

. .. . .. . .. .<br />

. . .. . .. . .. .<br />

.<br />

⎢<br />

.<br />

⎣ .<br />

.. ⎥ ⎢<br />

‖̂bn−1 ‖ 0 ⎦ ⎣<br />

. ⎥<br />

. .. 1 µn,n−1 ⎦<br />

0 · · · · · · 0 ‖̂b n ‖ 0 · · · · · · 0 1


1.2. DUALITÄT 9<br />

Lemma 1.1.3<br />

1. Zwei Basen B, ¯B sind genau dann isometrisch, wenn GNF (B) = GNF ( ¯B), dh. wenn<br />

B t B = ¯B t ¯B. Insbesondere ist R = GNF (B) eindeutig bestimmt.<br />

2. L(B) ist isometrisch zum vollständigen <strong>Gitter</strong> L(R) mit R = GNF (B).<br />

Beweis. 1. Aus B t B = ¯B t ¯B mit QR-Zerlegungen B = QR <strong>und</strong> ¯B = ¯Q ¯R folgt R t R = ¯R t ¯R.<br />

Weil R, ¯R obere Dreiecksmatrizen mit positiven Diagonalelementen sind, folgt R = ¯R nach einem<br />

elementaren Beweis. Umgekehrt folgt aus GNF (B) = R = GNF ( ¯B), dass B t B = R t R = ¯B t ¯B,<br />

<strong>und</strong> damit sind B, ¯B isometrisch.<br />

2. Für jede QR-Zerlegung B = QR sind L(B), L(R) isometrisch mit der Isometrie Q. □<br />

Für beliebige Basen B = QR gilt det(B t B) = det(R t R) = ∏ n<br />

i=1 ‖̂b i ‖ 2 . Insbesondere bleibt<br />

det L(B) = (det B t B) 1 2 , bei Isometrie erhalten.<br />

Das orthogonale <strong>Gitter</strong>. Das zum Vektor a = (a 1 , . . . , a n ) t ∈ Z n \ {0} orthogonale <strong>Gitter</strong> ist<br />

Wir zeigen det L a = ‖a‖ / ggT(a 1 , . . . , a n ).<br />

L a := span(a) ⊥ ∩ Z n = {z ∈ Z n | 〈a, z〉 = 0} .<br />

Offenbar gilt dim L a = n − 1. Sei b 2 , b 3 , . . . , b n eine Basis von L a . Wegen span(L a ) ∩ Z n =<br />

L a ist diese Basis nach Satz 1.3.2 zu einer Basis von Z n ergänzbar. Es gibt ein b 1 ∈ Z n mit<br />

L(b 1 , . . . , b n ) = Z n . Die Einträge des Vektors b 1 sind teilerfremd, da b 1 ein primitiver Vektor von<br />

Z n ist. Der Anteil von b 1 , der senkrecht auf L a steht, ist<br />

〈b1,a〉 a <strong>und</strong> hat die Länge<br />

‖a‖ 2 |〈b1,a〉|<br />

‖a‖<br />

. Die<br />

Gr<strong>und</strong>masche P(B) von Z n hat die Gr<strong>und</strong>fläche det L a <strong>und</strong> Höhe |〈b1,a〉|<br />

‖a‖<br />

. Die Determinante von<br />

Z n ist vol(Gr<strong>und</strong>masche) = Fläche × Höhe, 1 = det Z n = (det L a ) |〈b1,a〉|<br />

‖a‖<br />

. Also gilt det L a =<br />

‖a‖/| 〈b 1 , a〉 |.<br />

Nach Konstruktion von b 1 ist |〈b 1 , a〉| die kleinste, positive, ganze Zahl in ∑ n<br />

i=1 Z a i =<br />

Z ggT(a 1 , . . . , a n ). Somit gilt | 〈b 1 , a〉 | = | ggT(a 1 , . . . , a n ) | <strong>und</strong> die Behauptung.<br />

1.2 Dualität<br />

Duales <strong>Gitter</strong>. Das duale ( bzw. polare, reziproke) <strong>Gitter</strong> L ∗ zum <strong>Gitter</strong> L ist<br />

L ∗ = def {x ∈ span(L) | 〈x, b〉 ∈ Z für alle b ∈ L}.<br />

Aufgr<strong>und</strong> der Identität (A −1 ) t = (A t ) −1 für A ∈ R n×n , kürzen wir ab<br />

(AB) −1 = B −1 A −1 , (AB) t = B t A t <strong>und</strong> somit (AB) −t = A −t B −t .<br />

A −t := (A −1 ) t . Es gilt<br />

Satz 1.2.1<br />

1. Für jede Basismatrix mit QR-Zerlegung B = QR ∈ R m×n gilt L(B) ∗ = L(QR −t ),<br />

2. dim L ∗ = dim L, 3. det L ∗ = 1/ det L, 4. (L ∗ ) ∗ = L,<br />

5. Ist B t B Gram-Matrix zu L dann ist (B t B) −1 = B −1 B −t Gram-Matrix zu L ∗ .<br />

Die Basis B ist genau dann invertierbar, wenn L(B) vollständig ist. Für invertierbare B gilt<br />

offenbar L(B) ∗ = L(B −t ).<br />

Beweis. 1. Offenbar gilt für ¯B := Q R −t wegen Q t Q = I n dass<br />

B t ¯B = (QR) t Q R −t = R t Q t Q R −t = I n .<br />

Wegen B t ¯B = In liefern die Vektoren ¯b ∈ L( ¯B) alle ganzzahligen Vektoren (〈b 1 , ¯b〉, ..., 〈b n , ¯b〉)<br />

∈ Z n zu den Basisvektoren b 1 , ..., b n . Damit gilt L ∗ = L( ¯B).


10 KAPITEL 1. GITTER IN LINEAREN RÄUMEN<br />

2. - 5. Aus dim L = rang(R) = rang(R −1 ) folgt dim L ∗ = dim L. Weiter folgt det L ∗ = 1/ det L<br />

aus det L = det R = 1/ det R −t . Mit (R −t ) −t = R gilt somit (L ∗ ) ∗ = L. Schließlich gilt 5. wegen<br />

¯B t ¯B = R −1 R −t = (R t R) −1 = (B t B) −1 .<br />

□<br />

Duale Basis. Zur Basis b 1 , . . . , b n ∈ R m von L ist die duale Basis b ∗ 1, . . . , b ∗ n von L ∗ definiert<br />

durch 〈b i , b ∗ n−j+1 〉 = δ i,j. Die QR-Zerlegung B = QR liefert die duale Basis B ∗ = Q R −t U n . Die<br />

⎡ ⎤<br />

1<br />

Multiplikation mit U n = def<br />

⎣ · ⎦ ∈ R n×n , der Matrix mit Einsen in der Gegendiagonalen,<br />

1<br />

invertiert die Spaltenreihenfolge der Basis Q R −t , so dass R −t U n obere Dreiecksmatrix ist.<br />

Die QR-Zerlegung der dualen Basis B ∗ zu B = QR ist B ∗ = (QU n ) (U n R −t U n ).<br />

Denn zur QR-Zerlegung B = QR ist R −t untere Dreiecksmatrix <strong>und</strong> U n R −t U n obere Dreiecksmatrix.<br />

Der Übergang von R −t nach U n R −t U n invertiert die Spalten- <strong>und</strong> die Zeilenreihenfolge in<br />

R −t . Wegen Un t = U n = Un<br />

−1 ist QU n isometrisch.<br />

Korollar 1.2.2<br />

Zur Basis b 1 , . . . , b n mit Orthogonalsystem ̂b 1 , . . . , ̂b n ist ̂bn /‖̂b n ‖ 2 , . . . , ̂b 1 /‖̂b 1 ‖ 2 das Orthogonalsystem<br />

der dualen Basis b ∗ 1, . . . , b ∗ n.<br />

Beweis. Es gilt 〈̂b i , ̂b j 〉 ‖̂b j ‖ 2 = δ i,j für 1 ≤ i, j ≤ n.<br />

□<br />

Satz 1.2.3<br />

Für jedes <strong>Gitter</strong> L <strong>und</strong> jede Isometrie T von span(L) gilt T (L ∗ ) = T (L) ∗ .<br />

Beweis. Sei L = L(B) mit QR-Zerlegung B = QR ∈ R m×n <strong>und</strong> sei T : x ↦→ ¯Qx eine Isometrie.<br />

Weil QR −t Basis von L ∗ ist, gilt nach Satz 1.2.1<br />

L ∗ = L(Q R −t ), T (L ∗ ) = L( ¯QQ R −t ).<br />

Andererseits ist ¯QQ isometrisch <strong>und</strong> damit ist ( ¯QQ) R die QR-Zerlegung der Basis ¯QQR von<br />

T (L). Es folgt T (L) ∗ = L( ¯QQR) ∗ = L( ¯QQ R −t ) = T (L ∗ ). □<br />

Selbstduale <strong>und</strong> ganze <strong>Gitter</strong>. Ein <strong>Gitter</strong> L heißt selbstdual oder unimodular, wenn L = L ∗ .<br />

Offenbar gilt L = L ∗ gdw die Gram-Matrix B t B unimodular ist, d.h., B t B ist ganzzahlig <strong>und</strong><br />

det B t B = 1. Die <strong>Gitter</strong> Z n <strong>und</strong> die geschichteten <strong>Gitter</strong> Λ 8<br />

∼ = E8 , √ 2Λ 24 sind selbstdual.<br />

Ein <strong>Gitter</strong> L heißt ganz (integral), wenn B t B ganzzahlig ist. Ein <strong>Gitter</strong> L ist also genau dann<br />

ganz, wenn L ⊂ L ∗ .<br />

1.3 Diskretheit, Primitive Systeme<br />

Diskretheit. Eine Menge S ⊂ R m heißt diskret, wenn S keinen Häufungspunkt in R m hat.<br />

Für jede additive Untergruppe G ⊂ R m sind offenbar folgende Aussagen äquivalent:<br />

1. G ist diskret,<br />

2. 0 ist kein Häufungdpunkt von G,<br />

3. Es gibt einen kürzesten Vektor in G \ {0}.<br />

Jedes <strong>Gitter</strong> ist diskret. Zum Nachweis der Diskretheit sei ϕ : R n → span(L(B)) ⊂ R m die<br />

lineare Abbildung ϕ : z ↦→ Bz. ϕ ist ein Isomorphismus der Vektorräume R n <strong>und</strong> span(L) mit<br />

ϕ(Z n ) = L. Weil Z n diskret <strong>und</strong> ϕ −1 stetig auf span(L), ist auch L diskret.


1.3. DISKRETHEIT, PRIMITIVE SYSTEME 11<br />

Umgekehrt, ist jede diskrete additive Untergruppe von R m ein <strong>Gitter</strong>. Die Diskretheit charakterisiert<br />

also die <strong>Gitter</strong> unter den additiven Untergruppen des R m .<br />

Satz 1.3.1<br />

Jede diskrete, additive Untergruppe des R m ist ein <strong>Gitter</strong> erzeugt von einer Basis.<br />

Beweis. Sei L ⊂ R m eine diskrete, additive Untergruppe <strong>und</strong> n die Maximalzahl linear unabhängiger<br />

Vektoren in L. Offenbar gilt n ≤ m. Durch Induktion über n zeigen wir die Existenz einer<br />

Basis.<br />

n = 1: Sei b ∈ L ein kürzester Vektor mit b ≠ 0 (ein solcher Vektor existiert, da 0 kein<br />

Häufungspunkt von L ist). Dann gilt L(b) = L.<br />

n > 1: Wähle b 1 ∈ L \ {0} derart dass 1 k b 1 ∉ L für alle k ≥ 2. Offenbar gilt L(b 1 ) =<br />

L∩span(b 1 ). Betrachte die orthogonale Projektion π : R m → span(b 1 ) ⊥ mit π(b) = b− 〈b1,b〉<br />

〈b b 1,b 1〉 1.<br />

Die Induktionsbehauptung ergibt sich aus den beiden Aussagen<br />

1. π(L) ist diskret <strong>und</strong> ein <strong>Gitter</strong> vom Rang n − 1,<br />

2. Für jede Basis π(b 2 ), . . . , π(b n ) von π(L) mit b 2 , . . . , b n ∈ L gilt L = L(b 1 , . . . , b n ).<br />

Beweis von 1. Wir zeigen, dass 0 kein Häufungspunkt von π(L) ist. Angenommen, die paarweise<br />

verschiedenen Vektoren π(y (i) ) mit y (i) ∈ L konvergieren gegen 0. Wir konstruieren unendlich viele<br />

kurze Vektoren in L, im Widerspruch zur Diskretheit von L.<br />

Zu den Vektoren π(y (i) ) erhalten wir kurze π-Urbilder ȳ (i) ∈ L nach der Vorschrift ȳ (i) :=<br />

y (i) − ⌈〈 〉<br />

y (i) , b 1 /〈b1 , b 1 〉 ⌋ b 1 . Dabei bezeichnet ⌈r⌋ := ⌈r − 1 2⌋ die nächste ganze Zahl zur reellen<br />

Zahl r. Offenbar gilt ‖ȳ (i) − π(y (i) )‖ ≤ 1 2 ‖b 1‖. Wegen lim ‖π(ȳ (i) )‖ = 0 gibt es unendlich viele<br />

i→∞<br />

Vektoren ȳ (i) ∈ L mit ‖π(ȳ (i) )‖ ≤ ‖b 1 ‖, im Widerspruch zur Diskretheit von L.<br />

Beweis zu 2. Die Maximalzahl der linear unabhängigen Vektoren in π(L) ist n − 1. Nach<br />

Induktionsvoraussetzung ist π(L) ein <strong>Gitter</strong> vom Rang n − 1. Sei π(b 2 ), . . . , π(b n ) eine Basis<br />

von π(L) mit b 2 , . . . , b n ∈ L. Die Vektoren b 1 , ..., b n sind linear unabhängig. Wir zeigen, dass<br />

L ⊂ L(b 1 , . . . , b n ). Zu beliebigem b ∈ L gilt π(b) ∈ π(L) = L (π(b 2 ), . . . , π(b n )), somit gibt<br />

es ein ¯b ∈ L(b 2 , . . . , b n ) mit π(b) = π( ¯b ). Es gilt b − ¯b ∈ span(b 1 ). Nach Wahl von b 1 gilt<br />

L(b 1 ) = L ∩ span(b 1 ) <strong>und</strong> somit b − ¯b ∈ L(b 1 ). Es folgt b ∈ L(b 1 , . . . , b n ).<br />

□<br />

Primitive Systeme. Wir charakterisieren Teilbasen b 1 , ..., b k mit k ≤ n von <strong>Gitter</strong>basen b 1 , ..., b n .<br />

Offenbar gilt für Teilbasen b 1 , ..., b k dass<br />

1. b 1 , . . . , b k sind linear unabhängig, 2. span(b 1 , . . . , b k ) ∩ L = L(b 1 , . . . , b k ).<br />

Eine Menge von <strong>Gitter</strong>vektoren b 1 , ..., b k nennt man ein primitives System zum <strong>Gitter</strong> L, wenn<br />

1. <strong>und</strong> 2. gilt. Ein einzelner Vektor b ∈ L ist primitiv, wenn 1 k<br />

b ∉ L für alle k ∈ Z \ {0}.<br />

Satz 1.3.2<br />

Genau dann können die <strong>Gitter</strong>vektoren b 1 , . . . , b k zu einer Basis von L ergänzt werden, wenn sie<br />

ein primitives System zu L bilden.<br />

Beweis. Teilbasen bilden offenbar primitive Systeme. Sei nun umgekehrt b 1 , . . . , b k ein primitives<br />

System <strong>und</strong> π : span(L) → span(b 1 , . . . , b k ) ⊥ die orthogonale Projektion. Aus dem Beweis zu<br />

Satz 1.3.1 folgt, dass π(L) ein <strong>Gitter</strong> der Dimension n − k ist. Das <strong>Gitter</strong> π(L) habe die Basis<br />

π(b k+1 ), . . . , π(b n ) mit b k+1 , . . . , b n ∈ L.<br />

Wir zeigen, dass b 1 , ..., b n Basis von L ist. Nach Konstruktion sind b 1 , ..., b k linear unabhängig.<br />

Sei b ∈ L. Wegen π(b) ∈ L(π(b k+1 ), . . . , π(b n )) gibt es ein ¯b ∈ L(b k+1 , . . . , b n ) mit π( ¯b ) =


12 KAPITEL 1. GITTER IN LINEAREN RÄUMEN<br />

π(b), also ist b− ¯b ∈ span(b 1 , . . . , b k ). Weil b 1 , . . . , b k nach Voraussetzung ein primitives System<br />

bildet, gilt b − ¯b ∈ L(b 1 , . . . , b k ). Somit gilt b ∈ L(b 1 , . . . , b n ) <strong>und</strong> b 1 , ..., b n ist Basis von L. □<br />

1.4 Elementare Reduktionsverfahren zur l 2 -Norm || ||<br />

Ziel der Reduktionsverfahren sind <strong>Gitter</strong>basen bestehend aus kurzen <strong>Gitter</strong>vektoren.<br />

Definition 1.4.1<br />

Die Basis b 1 , . . . , b n ist längenreduziert, wenn |µ i,j | ≤ 1 2<br />

für 1 ≤ j < i ≤ n.<br />

Für jede längenreduzierte Basis b 1 , . . . , b n gilt wegen b i = ̂b i + ∑ i−1<br />

j=1 µ ̂b i,j j <strong>und</strong> |µ i,j | ≤ 1 2<br />

‖b i ‖ 2 ≤ ‖̂b i ‖ 2 + 1 ∑ i−1<br />

4 j=1 ‖̂b j ‖ 2 für i = 1, . . . , n.<br />

Algorithmus 1.4.1 zur Längenreduktion<br />

EINGABE : Basis b 1 , . . . , b n ∈ R m<br />

FOR i = 2, . . . , n DO<br />

FOR j = i − 1, . . . , 1 DO b i := b i − ⌈µ i,j ⌋ · b j<br />

AUSGABE :<br />

längenreduzierte Basis b 1 , . . . , b n<br />

Korrektheit.<br />

1. Der Schritt b i := b i − ⌈µ i,j ⌋b j bewirkt, dass µ neu<br />

i,j := µ alt<br />

i,j − ⌈µalt i,j ⌋ µ j,j = µ alt<br />

i,j − ⌈µalt i,j ⌋.<br />

2. Insbesondere gilt ∣ ∣µ neu ∣<br />

i,j ≤ 1 2 , <strong>und</strong> die µ i,ν bleiben für ν > j unverändert.<br />

Die Orthogonalvektoren bleiben erhalten. Die Längenreduktion ist nur eine schwache Reduktion.<br />

Definition 1.4.2<br />

Die Vektoren b 1 , . . . , b¯n ∈ R n \ {0} nennen wir paarweise reduziert, wenn<br />

1.<br />

| 〈b i,b j〉 |<br />

‖b j‖ 2 ≤ 1 2<br />

für 1 ≤ j < i ≤ ¯n, 2. ‖b 1 ‖ ≤ ‖b 2 ‖ ≤ · · · ≤ ‖b¯n ‖ .<br />

Die Eigenschaft 1. bezieht sich nicht auf den Gram-Schmidt-Koeffizienten µ i,j = 〈bi,̂b j〉<br />

. Sie ist<br />

‖̂b j‖ 2<br />

äquivalent zu ‖b i ‖ ≤ ‖b i ± b j ‖ für 1 ≤ j < i ≤ n, denn wegen<br />

‖b i ± b j ‖ 2 = 〈b i ± b j , b i ± b j 〉 = ‖b i ‖ 2 ± 2 〈b i , b j 〉 + ‖b j ‖ 2 gilt<br />

‖b i ‖ 2 ≤ ‖b i ± b j ‖ 2 ⇐⇒ ± 〈b i , b j 〉 ≤ 1 2 ‖b j‖ 2 ⇐⇒ |〈b i , b j 〉| ≤ 1 2 ‖b j‖ 2 .<br />

Korrektheit. Algorithmus 1.4.2 terminiert <strong>und</strong> bei Abbruch des Verfahrens sind die Vektoren<br />

paarweise reduziert. Bei jedem Reduktionsschritt wird nämlich der Vektor b i echt kleiner, <strong>und</strong> die<br />

übrigen Vektoren bleiben unverändert. Somit hat jedes <strong>Gitter</strong> eine paarweise reduzierte Basis.<br />

Die Laufzeit der paarweisen Reduktion ist nicht polynomial. Aber es gibt höchstens polynomial<br />

viele Schritte b i := b i − ⌈r⌋b j , welche ‖b i ‖ um mindestens ε‖b i ‖ für festes ε > 0 erniedrigen.<br />

Satz 1.4.3<br />

Algorithmus 1.4.2 sichert nach höchstens log 1/(1−ε) ( ∏¯n<br />

i=1 ‖b i‖) Schritten b i := b i − ⌈r⌋b j mit<br />

‖b i ‖ neu ≤ ‖b i ‖(1 − ε) dass ‖b i ‖(1 − ε) ≤ ‖b i ± b j ‖ für 1 ≤ j < i ≤ ¯n.


1.5. HERMITE NORMALFORM, UNTERGITTER 13<br />

Algorithmus 1.4.2 zur paarweise Reduktion<br />

EINGABE :<br />

Vektoren b 1 , . . . , b¯n ∈ Z m (möglicherweise linear abhängig)<br />

1. Ordne b 1 , . . . , b¯n so, dass 1 ≤ ‖b 1 ‖ ≤ · · · ≤ ‖b¯n ‖<br />

2. FOR i = 1, . . . , ¯n DO<br />

FOR j = 1, . . . , i − 1 DO<br />

r := 〈b i , b j 〉 ‖b j ‖ −2<br />

IF |r| > 1 2<br />

THEN [ b i := b i − ⌈r⌋b j<br />

falls b i = 0 entferne b i <strong>und</strong> erniedrige ¯n, GO TO 1.<br />

AUSGABE : paarweise reduzierte Vektoren b 1 , . . . , b¯n ( ∑¯n<br />

i=1 b iZ bleibt erhalten)<br />

1.5 Hermite Normalform, Untergitter<br />

Ganzzahlige <strong>und</strong> rationale Matrizen haben eine eindeutig bestimmte Hermite-Normalform (HNF).<br />

Für reelle Matrizen <strong>und</strong> relle <strong>Gitter</strong>basen gilt dies nicht. Aus der HNF einer Transformationsmatrix<br />

T ∈ Z n×n kann man det L(B)/ det L(BT ) = | det T | ablesen.<br />

Definition 1.5.1<br />

Eine Matrix A = [a ij ] ∈ R m×n mit n ≤ m ist in Hermite-Normalform (kurz HNF), wenn<br />

1. a ij = 0 für j > i, d.h. A ist eine untere Dreiecksmatrix.<br />

2. a ii > 0 für i = 1, 2, . . . , m.<br />

3. 0 ≤ a ij < a ii für j < i.<br />

Die Hermite-Normalform ist eine reduzierte Basis, in dem Sinne dass der i-te Basisvektor die<br />

i-te Koordinate minimiert unter der Bedingung, dass seine ersten i−1 Koordinaten Null sind. Für<br />

eine HNF A = [a ij ] = [a 1 , ..., a n ] mit Spaltenvektoren a 1 , ..., a n ist a ii also die absolut kleinste<br />

i-te Koordinate ≠ 0 der Vektoren in L(a i , ..., a n ). Dabei ist L(a i , ..., a n ) das Teilgitter, dessen<br />

Vektoren in den ersten i − 1 Koordinaten Null sind.<br />

In der Definition der HNF kann man statt einer ’unteren’ Dreiecksmatrix ebenso gut eine<br />

’obere’ Dreiecksmatrix verlangen. Der zulässige Bereich der Zahlen a ij in 3. ist ein Intervall der<br />

Länge |a ii |, die Lage dieses Intervals ist willkürlich. In [DKT87] fordern die Autoren<br />

a ij ≤ 0 <strong>und</strong> |a ij | < a ii für j < i.<br />

A. Paz <strong>und</strong> C.P. Schnorr [PS87] fordern, dass die Elemente links der Diagonalen betragsmäßig<br />

minimal sind:<br />

|a ij | < 1 2 |a ii| für j < i.<br />

Die verschiedenen Varianten von Hermite-Normalformen sind einfach ineinander überführbar. Ist<br />

z.B. A ∈ R m×n untere Dreiecksmatrix, dann ist U m A U n obere Dreiecksmatrix für die Matrizen<br />

U m , U n mit Einsen auf der Gegendiagonalen.<br />

Nach C. Hermite [He1850] gilt folgender Satz.<br />

Satz 1.5.2 (Hermite 1850)<br />

Zu jeder Matrix A ∈ Q m×n mit Rang(A) = n gibt es genau eine HNF A U mit U ∈ GL n (Z).


14 KAPITEL 1. GITTER IN LINEAREN RÄUMEN<br />

Beweis. Konstruktion der HNF. Sei L(A) ⊂ R m das <strong>Gitter</strong> zur Basis A. Konstruiere die Vektoren<br />

a ′ 1, ...., a ′ n ∈ L(A), [a ′ 1, ...., a ′ n] = [a ′ ij ] ∈ Rm×n so dass<br />

a ′ ii = min{ |a i | | (a 1 , ..., a n ) t ∈ L(A), a 1 = · · · = a i−1 = 0, a i ≠ 0}.<br />

Weil A rational ist, existiert das Minimum der Absolutwerte |a i |. Wegen der Dreiecksform von<br />

[a ′ 1, ...., a ′ j ] ist a′ 1, ..., a ′ j ein primitives System, <strong>und</strong> a′ 1, ..., a ′ n ist Basis zu L(A). a ′ := [a ′ 1, ..., a ′ n]<br />

hat die HNF-Eigenschaften 1. <strong>und</strong> 2. Um die HNF-Eigenschaft 3. zu sichern, transformiert man<br />

a ′ 2, ..., a ′ n gemäß<br />

a ′ i := a ′ i − ⌈a ′ ij/a ′ jj⌉ a ′ j für j = 1, ..., i − 1.<br />

Eindeutigkeit der HNF. Die Diagonalelemente a ′ ii der HNF sind offenbar durch obige Formel<br />

eindeutig bestimmt. Angenommen 0 < a ′ ij < a′′ ij < a′ ii sind verschiedene Elemente zweier HNF’s<br />

mit j < i <strong>und</strong> i ist minimal gewählt. Dann gilt für j ′ < j dass a ′ ij = ′ a′′ ij <strong>und</strong> es folgt ′ |a′ ij −a′′ ij | ≥ a′ ii ,<br />

im Widerspruch zu |a ′ ij − a′′ ij | < a′ ii .<br />

□<br />

Reelle Matrizen haben im allgemeinen keine HNF, weil die Koordinaten der <strong>Gitter</strong>vektoren<br />

kein absolutes Minimum annehmen müssen. Die Basis<br />

[ √ ]<br />

1 2<br />

A := ∈ R 2×2 .<br />

3 4<br />

erzeugt ein <strong>Gitter</strong> L(A) mit absolut beliebig kleinen ersten Koordinaten der <strong>Gitter</strong>vektoren.<br />

Teilgitter, Untergitter. Sind L ′ , L <strong>Gitter</strong> mit L ′ ⊂ L, so heißt L ′ Teilgitter von L. Haben L ′<br />

<strong>und</strong> L gleichen Rang, dann heißt L ′ Untergitter von L.<br />

[ ] 2 0<br />

Die Basis A = erzeugt das Untergitter 2 Z<br />

0 2<br />

2 von Z 2 . Die Faktorgruppe Z 2 /L(A) besteht<br />

aus den vier Äquivalenzklassen, [Z n : L(A)] = 4.<br />

<br />

(0,6)<br />

<br />

(2,6)<br />

<br />

(4,6)<br />

<br />

(6,6)<br />

<br />

(0,4)<br />

<br />

(2,4)<br />

<br />

(4,4)<br />

<br />

(6,4)<br />

<br />

(0,2)<br />

<br />

(2,2)<br />

<br />

(4,2)<br />

<br />

(6,2)<br />

<br />

(0,0) (2,0) (4,0) (6,0)<br />

Abbildung 1.5.1: Untergitter L(A) von Z 2<br />

Lemma 1.5.3<br />

Sei L = L(B) <strong>Gitter</strong> <strong>und</strong> L ′ = L(BT ) Untergitter von L mit T ∈ Z n×n . Dann gilt<br />

det L ′ = det L · |det T |.<br />

Index des Untergitters. Die ganze Zahl |det T | =<br />

det L<br />

aus Lemma 1.5.3 ist die Elementzahl<br />

<strong>und</strong> ’Ordnung’ der Faktorgruppe L/L ′ , genannt der Index des Untergitters L ′ in L, Bez.: [L : L ′ ].<br />

det L′


1.5. HERMITE NORMALFORM, UNTERGITTER 15<br />

Sei L ′ = L(BT ) Untergitter von L = L(B) <strong>und</strong> T = [t ij ] ∈ Z n×n eine obere (bzw. untere)<br />

Dreiecksmatrix. Dann gilt<br />

[L : L ′ ] =<br />

det L′<br />

det L = det T = ∏ n<br />

i=1 |t ii| .<br />

Insbesondere gilt L ′ = L genau dann wenn |det T | = 1.<br />

Korollar 1.5.4<br />

Zu a = (a 1 , . . . , a n ) ∈ Z n \ {0}, b ∈ N hat das <strong>Gitter</strong> L a,b = {x ∈ Z n | x t a = 0 (mod b)}<br />

Determinante det L a,b = b/ ggT(a 1 , . . . , a n , b) .<br />

die<br />

Beweis. L a,b ⊂ Z n ist offenbar <strong>Gitter</strong> der Dimension n. Sei O.B.d.A. ggT(a 1 , ..., a n , b) = 1, denn<br />

durch Herausdividieren des ggT aus a 1 , ..., a n , b ändert sich L a,b nicht. Die Faktorgruppe Z n / L a,b<br />

besteht den Restklassen<br />

R i := { x ∈ Z n ∣ ∣ x t a = i (mod b) } für i = 0, ..., b − 1.<br />

Offenbar sind diese Restklassen nicht leer. Es folgt [Z n : L a,b ] = b <strong>und</strong> damit det L a,b = b.<br />

□<br />

Satz 1.5.5<br />

Sei L ′ ein Untergitter von L = L(B). Dann gibt es eine untere (bzw. obere) Dreiecksmatrix T ∈<br />

Z n×n mit L ′ = L(BT ). Umgekehrt gibt es zu jeder Basis B ′ von L ′ eine Basis ¯B von L <strong>und</strong> eine<br />

untere (bzw. obere) Dreiecksmatrix T ∈ Z n×n mit B ′ = ¯B T .<br />

Beweis. Wir weisen die unteren Dreiecksmatrizen nach, Die oberen Dreiecksmatrizen erhält man<br />

durch Transformation mit Umkehrmatrizen U n , U m . Sei ¯B ′ eine beliebige Basis zu L ′ <strong>und</strong> ¯B ′ = B T<br />

mit T ∈ Z n×n . Dann gibt es ein S ∈ GL n (Z) so dass T S eine HNF von T ist. Es folgt ¯B ′ S = B(T S)<br />

<strong>und</strong> T S ist untere Dreiecksmatrix. Also ist die Basis B ′ := ¯B ′ S von L ′ von der gewünschten Form.<br />

Ist umgekehrt B ′ gegeben <strong>und</strong> B von der Form B ′ = B T , dann wählt man S ∈ GL n (Z) so dass<br />

S T eine untere Dreiecksmatrix ist. Zur Basis B von L ist dann B S −1 eine Basis der gewünschten<br />

Form.<br />


16 KAPITEL 1. GITTER IN LINEAREN RÄUMEN


Kapitel 2<br />

Minkowski-Sätze,<br />

Hermite-Konstante<br />

Die sukzessiven Minima λ 1 ≤ ... ≤ λ n eines <strong>Gitter</strong>s der Dimension n sind wichtige geometrische<br />

Invarianten. Eine <strong>Gitter</strong>basis b 1 , ..., b n gilt als “stark reduziert“, wenn ‖b i || nicht viel grösser ist<br />

als λ i<br />

√<br />

i. Für <strong>Gitter</strong> L der Dimension n gilt λ<br />

2<br />

1 ≤ γ n det(L) 2/n , dabei ist γ n die Hermite-Konstante.<br />

2.1 Sukzessive Minima <strong>und</strong> erster Satz von Minkowski<br />

Sukzessive Minima. Eine allgemeine Norm ‖·‖ : R m → R ≥0 ist durch ihren Eichkörper<br />

K = {x ∈ R m | ‖x‖ ≤ 1} definiert. K ⊂ R m ist eine beliebige kompakte, konvexe, nullsymmetrische<br />

Menge. Es gilt ‖x‖ = min{r ∈ R ≥0 | x ∈ rK}. Der Eichkörper der l 2 -Norm ist die Einheitskugel<br />

B m (0, 1), der Eichkörper der sup-Norm l ∞ ist der Würfel mit Seitenlängen 2.<br />

Die sukzessiven Minima λ 1 , . . . , λ n des <strong>Gitter</strong>s L ⊂ R m der dim L = n zur Norm ‖·‖ sind<br />

{<br />

}<br />

λ i = λ i (L) := inf r > 0<br />

∃ linear unabhängige a 1 , . . . , a i ∈ L<br />

∣<br />

.<br />

mit ‖a 1 ‖, ..., ‖a i ‖ ≤ r.<br />

Offenbar gilt λ 1 ≤ λ 2 ≤ · · · ≤ λ n . Die Definition der sukzessiven Minima geht auf H. Minkowski<br />

zurück. Wenn nicht anders vermerkt bezieht sich λ i stets auf die Euklidische Norm, λ i,∞ (L) bezieht<br />

sich auf die sup-Norm ‖ ‖ ∞ . Die sukzessiven Minima zur Euklidischen Norm sind geometrische<br />

Invarianten, sie bleiben bei isometrischen Transformationen erhalten. Die Größe λ 1,∞ (L) ist keine<br />

geometrische Invariante. Für <strong>Gitter</strong> L ⊂ R m <strong>und</strong> x ∈ R m gilt ‖x‖ ∞<br />

≤ ‖x‖ ≤ √ m ‖x‖ ∞<br />

.<br />

Die sukzessiven Minima sind Maßstab für die Reduziertheit einer <strong>Gitter</strong>basis. Eine Basis gilt<br />

als ”<br />

reduziert“, wenn die Größen ‖b i ‖ /λ i für i = 1, . . . , n ”<br />

klein“ sind. Für reduzierte Basen sind<br />

deren Vektoren nahezu orthogonal. Im allgemeinen gibt es keine Basis b 1 , . . . , b n mit ‖b i ‖ = λ i<br />

für i = 1, . . . , n. Für das <strong>Gitter</strong> L := Z n + Z ( 1 2 , . . . , 1 2 )t gilt offenbar λ 1 = λ 2 = · · · = λ n = 1 für<br />

n ≥ 4. Für n ≥ 5 gibt es aber keine Basis bestehend aus Vektoren der Länge 1.<br />

Lemma 2.1.1 (Blichfeldt 1914)<br />

Sei L <strong>Gitter</strong> <strong>und</strong> S ⊂ span(L) kompakt mit vol(S) ≥ det L. Dann gibt es ein b ∈ L \ {0} mit<br />

S ∩ (S + b) ≠ ∅, d.h. es existieren x, y ∈ S mit x − y ∈ L \ {0}.<br />

Beweis. Zu i ∈ N sind die Mengen ( 1 + 1 i<br />

)<br />

S + b mit b ∈ L nicht paarweise disjunkt, weil das<br />

Volumen von ( 1 + 1 i<br />

)<br />

S das der Gr<strong>und</strong>masche übersteigt. Zu jedem i gibt es ein bi ∈ L \ {0}, so<br />

dass der folgende Durchschnitt nicht leer ist <strong>und</strong> somit ein y i enthält:<br />

17


18 KAPITEL 2. SUKZESSIVE MINIMA UND MINKOWSKI-SÄTZE<br />

y i ∈ ( ) [( ) ]<br />

1 + 1 i S ∩ 1 +<br />

1<br />

i S + bi<br />

Da S kompakt ist, hat die Folge (y i ) i∈N<br />

einen Häufungspunkt y ∈ S. Für jede Teilfolge ( )<br />

y α(i) i∈N<br />

die gegen y konvergiert ist die Folge ( b α(i) ⊂ L beschränkt <strong>und</strong> hat einen Häufungspunkt<br />

)i∈N<br />

b ∈ L \ {0}. Es folgt: y ∈ S ∩ (S + b).<br />

□<br />

Satz 2.1.2 (Minkowski’s Convex Body Theorem)<br />

Sei L ⊂ R n <strong>Gitter</strong> der dim L = n <strong>und</strong> S ⊂ span(L) konvex, kompakt <strong>und</strong> nullsymmetrisch.<br />

Wenn vol(S) ≥ 2 n det(L) dann gilt |S ∩ L| ≥ 3.<br />

Beweis. Für S ′ := 1 2 S gilt vol(S′ ) = 2 −n vol(S) ≥ det L. Nach Lemma 2.1.1 gibt es x, y ∈ S ′ , x ≠<br />

y so dass x−y ∈ L. Somit gilt 2x, 2y ∈ S <strong>und</strong> −2x ∈ S weil S nullsymmetrisch ist. Weil S konvex<br />

ist folgt ±(2x − 2y)/2 = ±(x − y) ∈ S.<br />

□<br />

Satz 2.1.3<br />

Sei L ⊂ R n <strong>Gitter</strong> der dim L = n <strong>und</strong> K ⊂ R n Eichkörper einer beliebigen Norm ‖ ‖. Dann gilt<br />

λ 1,‖ ‖ (L) ≤ 2 vol(K) −1/n det L 1/n .<br />

Beweis. S := (det L/ vol(K)) 1/n K ist konvex <strong>und</strong> nullsymmetrisch mit vol(S) = det L. Nach<br />

Lemma 2.1.1 gibt es ein b ∈ L \{0} mit S ∩(S +b) ≠ ∅. Sei y im Durchschnitt, also y, b−y ∈ S.<br />

Die Dreiecksungleichung liefert ‖b‖ ≤ ‖b − y‖ + ‖y‖ ≤ 2 (det L/ vol(K)) 1/n .<br />

□<br />

Es bezeichne B n (b, r) = {x ∈ R n : ‖x − b‖ ≤ r} die n-dimensionale Kugel mit Radius r <strong>und</strong><br />

Mittelpunkt b in span(L). Ihr Volumen ist mit e = ∑ ∞<br />

n=0 1/n! :<br />

(2.1)<br />

V n r n<br />

:= r n π n 2 / Γ(1 +<br />

n<br />

2 ) = rn ( 2 eπ<br />

n ) n 2 ( 1<br />

πn )1/2 (1 − Θ( 1 n )).<br />

Dabei gilt Γ ( 1<br />

√<br />

2)<br />

= π, Γ(n + 1) = n!, Γ(x + 1) = x Γ(x) für n ∈ N, x ∈ R. Für x ∈ R>0 gilt<br />

nach Stirling Γ(x + 1) = √ 2πx ( x e )x (1 + 1<br />

12x + Θ( 1 x<br />

)) [Knuth 71, Sektion 1.2.5, 1.2.11.2].<br />

2<br />

Nach Satz 2.1.3 gilt damit für <strong>Gitter</strong> der Dimension n dass λ 2 1(L) ≤ 2n+o(n)<br />

eπ<br />

(det L) 2/n .<br />

Im Falle der Norm l ∞ mit Eichkörper K ∞ gilt in Satz 2.1.3 dass vol(K ∞ ) = 2 n . Damit liefert<br />

Satz 2.1.3 die scharfe Schranke λ 1,∞ (L) ≤ (det L) 1 n . Es gilt λ 1,∞ (Z n ) = 1 = (det Z n ) 1 n .<br />

Satz 2.1.4 (Dirichlet 1842)<br />

Zu beliebigen reellen Zahlen α 1 , . . . , α n <strong>und</strong> ɛ ∈ ] 0, 1 2[<br />

gibt es ganze Zahlen p1 , . . . , p n <strong>und</strong> q mit<br />

0 < q ≤ ɛ −n , so dass | α i − p i /q | ≤ ɛ/q für i = 1, . . . , n.<br />

Beweis. Eine Lösung (p 1 , ..., p n , q) findet man durch Konstruktion eines kürzesten Vektors in der<br />

sup-Norm l ∞ zum <strong>Gitter</strong> L(B) mit folgender <strong>Gitter</strong>basis<br />

⎡<br />

⎤<br />

1 0 · · · 0 α 1<br />

. 0 1 .. . α2<br />

B =<br />

.<br />

⎢.<br />

.. . .. 0 .<br />

∈ R (n+1)2 .<br />

⎥<br />

⎣0 0 1 α n<br />

⎦<br />

0 · · · · · · 0 ɛ n+1<br />

Wegen det B = ɛ n+1 gilt nach Satz 2.1.3 λ 1,∞ (L(B)) ≤ (det B) 1<br />

n+1 = ɛ. Für jeden ‖ ‖∞ -kürzesten<br />

<strong>Gitter</strong>vektor B(p 1 , ..., p n , q) t gilt also |p i − α i q | ≤ ɛ <strong>und</strong> |qɛ n+1 | ≤ ɛ <strong>und</strong> somit |q| ≤ ɛ −n . □


2.2. PACKUNGSDICHTE, HERMITE-KONSTANTE, KRITISCHE GITTER 19<br />

Dirichlet bewies Satz 2.1.4 inkonstruktiv mit dem Schubfachprinzip.<br />

Satz 2.1.5<br />

Sei L <strong>Gitter</strong> der Dimension n <strong>und</strong> ¯b 1 , ..., ¯b n ∈ L linear unabhängig mit ||¯b i || = λ i für i = 1, ..., n.<br />

Dann gibt es eine Basis b 1 , ..., b n von L so dass für i = 1, ..., n<br />

1. L(b 1 , ..., b i ) = span(¯b 1 , ..., ¯b i ) ∩ L,<br />

(<br />

2. bi = ¯b i oder ||π i (b i )|| ≤ 1 2 λ )<br />

i <strong>und</strong> ||bi || 2 ≤ max(1, i 4 )λ2 i .<br />

Damit hat jedes <strong>Gitter</strong> L eine Basis b 1 , ..., b n so dass ||b i || ≤ λ i<br />

√<br />

i/4 für i = 4, .., n. Insbesondere<br />

gilt ||b i || = λ i für i = 1, .., 4 <strong>und</strong> die Schranke ||b i || ≤ λ i<br />

√<br />

i/4 ist scharf für i > 4.<br />

Beweis durch Induktion nach n. Die Induktionsannahme für n − 1 sei für b 1 , ..., b n−1 ∈ L erfüllt.<br />

Wir konstruieren b n . Im Fall<br />

L ∩ P(b 1 , ..., b n−1 , ¯b n ) = {0}<br />

gilt L(b 1 , ..., b n−1 , ¯b n ) = L <strong>und</strong> damit gilt die Induktionsbehauptung für b n := ¯b n . Andernfalls<br />

wählt man für b n eine Minimalstelle von<br />

||π n (b)|| ≠ 0 für b ∈ L ∩ P(b 1 , ..., b n−1 , ¯b n ).<br />

Diese Wahl von b n minimiert vol P(b 1 , ..., b n−1 , b n ) sowie det L(b 1 , ..., b n ). Somit sichert sie dass<br />

L(b 1 , ..., b n ) = L, denn für echte Untergitter ¯L ⊂ L gilt det ¯L > det L.<br />

Weil ||π n (b n )|| minimal ist mit ||π n (b n )|| ≠ 0 folgt<br />

||π n (b n )|| ≤ 1 2 ||¯b n || = 1 2 λ n.<br />

Schliesslich reduzieren wir b n mod ¯b i für i = n − 1, ...., 1 so dass ||¯π i (b n )|| ≤ 1 2 ||¯b i || für die<br />

orthogonale Projektion ¯π i : span(¯b 1 , ..., ¯b i ) → span(¯b 1 , ..., ¯b i−1 ) ⊥ . Im Fall b i = ¯b i sichert dies<br />

¯π i+1 (b n ) = π i (¯b n ). Es folgt<br />

||b n || 2 ≤ ∑ n<br />

i=1 ||¯π i(b n ) − ¯π i+1 (b n )|| 2 ≤ 1 4<br />

∑ n<br />

i=1 ||¯b i || 2 = 1 4<br />

∑ n<br />

i=1 λ2 i ≤ n 4 λ2 n.<br />

Dabei ist ¯π i (b n ) − ¯π i+1 (b n ) der Orthogonalanteil von b n in span(¯b 1 , ..., ¯b i ) ∩ span(¯b 1 , ..., ¯b i−1 ) ⊥ .<br />

Im Fall b i = ¯b i ist dieser Anteil 0. Diese Anteile sind für alle i paarweise orthogonal. □<br />

2.2 Packungsdichte, Hermite-Konstante, kritische <strong>Gitter</strong><br />

<strong>Gitter</strong>artige Kugelpackung. Die gitterartige Kugelpackung ⋃ b∈L B n(b, λ 1 /2) zum <strong>Gitter</strong> L<br />

besteht aus allen Kugeln B n (b, λ 1 /2) mit Radius λ 1 /2 <strong>und</strong> Mittelpunkten b ∈ L.<br />

Dichte des <strong>Gitter</strong>s. Die (Packungs-)Dichte △(L) des <strong>Gitter</strong>s L ist der Volumenanteil der<br />

Kugelpackung ⋃ b∈L B n(b, λ 1 /2) von span(L) <strong>und</strong> △ n das Supremum für alle L mit dim L = n:<br />

△(L) = def λ n 1 2 −n V n / det L,<br />

△ n = def sup{△(L) | dim L = n}.<br />

△(L) ist invariant gegen Äquivalenz, bleibt also bei Isometrie <strong>und</strong> Skalierung von L erhalten. Für<br />

konstante n <strong>und</strong> det(L) ist die Dichte genau dann maximal, wenn λ 1 maximal ist.<br />

Der analoge Kode zum <strong>Gitter</strong> L. Nachrichten werden in <strong>Gitter</strong>vektoren b ∈ L kodiert. Die<br />

Kodeworte b ∈ L werden mit reellen Fehlervektoren e ∈ span(L) übertragen. Ein gestörtes<br />

Kodewort b + e ist genau dann eindeutig dekodierbar, wenn ‖e‖ < λ 1 /2. Dann ist b nämlich<br />

nächster <strong>Gitter</strong>vektor zu b + e. Mit der Dichte △(L) von L wächst also das Korrekturpotential<br />

des analogen Kodes.


20 KAPITEL 2. SUKZESSIVE MINIMA UND MINKOWSKI-SÄTZE<br />

Hermite-Konstante. Die Hermite-Konstante γ n der Dimension n ist<br />

γ n = def sup{λ 1 (L) 2 /(det L) 2 n | dim L = n} = 4 (△ n /V n ) 2/n .<br />

Es genügt das Supremum über die vollständigen <strong>Gitter</strong> L mit λ 1 (L) = 1 (bzw. mit det L = 1) zu<br />

nehmen, denn γ(L) bleibt bei Äquivalenz erhalten. Weil beschränkte Basen dieser <strong>Gitter</strong> über einen<br />

kompakten Bereich des R n×n variieren, wird das Supremum angenommen, ist also ein Maximum.<br />

Global extreme, kritische <strong>Gitter</strong>.<br />

kritisch, wenn △(L) = △ n .<br />

Ein <strong>Gitter</strong> L mit dim(L) = n heißt global extrem oder<br />

Extreme <strong>Gitter</strong>. Ein <strong>Gitter</strong> L heißt extrem, wenn △(L) bei infinitesimal kleiner Veränderung<br />

der Basisvektoren nicht zunimmt. Diese Eigenschaft hängt nicht von der Wahl der Basis von L<br />

ab. Jedes kritische <strong>Gitter</strong> ist extrem, aber die Umkehrung gilt nicht.<br />

Satz 2.2.1<br />

γ n = 4 (△ n /V n ) 2/n < 4 π Γ ( 1 + n 2<br />

) 2<br />

n<br />

< 2n<br />

eπ + 1 4 ln n für n > n 0.<br />

Beweis. Sei L <strong>Gitter</strong> mit dim(L) = n <strong>und</strong> γ(L) = γ n , △(L) = △ n sowie det L = 1. Nach<br />

Abbildung 2.2.1 ergeben die 2 n Kugelteile in der Gr<strong>und</strong>masche des <strong>Gitter</strong>s zusammen gerade eine<br />

Kugel vom Radius λ 1 /2. Es folgt V n (λ 1 /2) n = △ n det L = △ n < 1, somit gilt λ 1 = 2 (△ n /V n ) 1/n<br />

<strong>und</strong> γ n = λ 2 1 = 4 (△ n /V n ) 2/n < 4 π Γ ( )<br />

1 + n 2<br />

n<br />

2<br />

≤ 4 n/2<br />

π e<br />

+ 2<br />

eπ ln n + O( ln2 n<br />

n<br />

) (nach Stirling). □<br />

λ 1 /2<br />

❪<br />

♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣<br />

♣<br />

♣♣♣♣♣♣♣♣♣♣♣♣♣♣<br />

♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣<br />

♣♣♣♣♣<br />

♣♣♣♣♣♣♣♣♣<br />

♣<br />

♣ ♣ ♣<br />

♣<br />

♣ ♣♣♣♣<br />

♣♣♣♣♣♣♣<br />

Abbildung 2.2.1: Veranschaulichung von V n (λ 1 /2) n < det L<br />

Der Beweis von Satz 2.2.1 benutzt nur △ n ≤ 1. Blichfeldt [Bli14] zeigt △ n ≤ ( √ 2 + o(1)) −n<br />

<strong>und</strong> damit die bessere Schranke<br />

(2.2)<br />

γ n ≤ 2 π Γ ( )<br />

2 + n 2<br />

n<br />

2<br />

≤ n eπ<br />

+ (3 + o(1)) ln n.<br />

Z.B. gilt γ 10 ≤ 2 π (6!)0,2 ≈ 2, 373. Kabatiansky, Levenshtein [KaLe78] zeigen dass<br />

γ n ≤ 1,744<br />

2eπ n für n ≥ n 0.<br />

Satz 2.2.2 (Minkowski, Hlawka)<br />

△ n ≥ ∑ ∞<br />

k=1 k−n 2 −n+1 > 2 −n+1 <strong>und</strong> γ n > n<br />

2eπ (4eπ)1/n ≈ n+ln(4eπ)<br />

2eπ<br />

.<br />

Minkowski bewies 1905 inkonstruktiv dass △ n > 2 −n+1 , siehe auch [Hlawka, 44].<br />

Explizite <strong>Gitter</strong> mit Dichte △(L) ≥ 2 −n+1 sind nur für einige Dimensionen n < 200 bekannt. Aus<br />

△ n > 2 −n+1 folgt mit der Stirling Approximation<br />

γ n = 4(△ n /V n ) 2/n ≥ (2/V n ) 2/n =<br />

n<br />

2eπ (4πn)1/n (1 + Θ(n −2 )).<br />

Umgekehrt zeigt die Gauß’sche Volumen-Heuristik dass γ n Vn −2/n ≈ n<br />

2eπ<br />

. Für <strong>Gitter</strong> L ⊂ Rn


2.2. PACKUNGSDICHTE, HERMITE-KONSTANTE, KRITISCHE GITTER 21<br />

mit dim L = n, det L = 1 <strong>und</strong> zufällige t ∈ R n gilt nämlich:<br />

E[|L ∩ B n (t, (2/V n ) 1/n )|] = V n (2/V n ) n/n = 2.<br />

Verhält sich t = 0 wie ein zufälliges t dann gilt λ 1 (L) ≤ (2/V n ) 1/n , also γ n (2/V n ) 2/n ≈<br />

n<br />

2eπ (4eπ)1/n .<br />

Vermutlich gilt also γ n ≈<br />

n<br />

2eπ (4eπ)1/n <strong>und</strong> somit △ n = 2 −n n O(1) . Vermutlich sind die Hermite-<br />

Konstanten γ n als Funktion in n monoton wachsend. Weder dies noch die Existenz des Grenzwertes<br />

lim n→∞ γ n /n ist bewiesen.<br />

n 2 3 4 5 6 7 8 24<br />

γ n n<br />

4<br />

3<br />

2 4 8 2 6 /3 2 6 2 8 2 48<br />

△ n 0, 907 0, 740 0, 617 0, 465 0, 373 0, 295 0, 254 V 24 ≈ (eπ)11.5<br />

12 12<br />

krit. <strong>Gitter</strong> A 2 A 3<br />

∼ = D3 D 4 D 5 E 6 E 7 E 8 Leech G. Λ 24<br />

Tabelle 2.2.2<br />

Die bekannten Hermite-Konstanten. Die Hermite-Konstanten γ 3 , γ 4 , γ 5 wurden von Gauß<br />

(γ 3 ) sowie Korkine <strong>und</strong> Zolotareff (γ 4 , γ 5 ) [KZ1872, KZ1873, KZ1877] bestimmt. Blichfeldt [Bli35]<br />

hat γ 6 , γ 7 , γ 8 ermittelt. Blichfeldts Beweis ist kompliziert <strong>und</strong> wurde von Watson [W66] <strong>und</strong> Vetchinkin<br />

[V82] bestätigt. Für Dimension n ≤ 8 sind die kritischen <strong>Gitter</strong> bis auf Äquivalenz (Isometrie<br />

<strong>und</strong> Skalierung) eindeutig bestimmt. Dies wurde von Barnes [Bar59] <strong>und</strong> Vetchinkin [V82]<br />

bewiesen. Cohn [Co05] hat Λ 24 bestimmt <strong>und</strong> gezeigt, dass das Leech-<strong>Gitter</strong> Λ 24 kritisch <strong>und</strong> bis<br />

aud Äquivalenz eindeutig ist. Die Tabelle 2.2.2 zeigt die bewiesenen γ n n, die ger<strong>und</strong>eten maximalen<br />

Dichten △ n , sowie kritische <strong>Gitter</strong>.<br />

Einfache GNF’s <strong>und</strong> Gram-Matrizen der kritischen <strong>Gitter</strong>. Die kritischen <strong>Gitter</strong> der<br />

Dimension n = 1, ..., 8, skaliert zu λ 1 = √ 2 haben Basen mit einfacher GNF R n = [r 1 , ..., r n ]:<br />

⎡<br />

1 1<br />

1<br />

2 2<br />

0 0 0 0 0<br />

√<br />

1<br />

0 2 3<br />

1<br />

2 √ 1√<br />

3 3<br />

0 0 0 0<br />

√<br />

√<br />

2<br />

0 0<br />

√1<br />

1 3<br />

3<br />

2·3 2 2<br />

0 0 0<br />

R 8 := √ 0 0 0 √2 1 1<br />

2<br />

2 √ 1√<br />

2 2<br />

0 0<br />

0 0 0 0 √2 1 1<br />

2 √ 1√<br />

2<br />

2<br />

0<br />

√<br />

1 3<br />

0 0 0 0 0 2 2<br />

⎢0 0 0 0 0 0 √3 1 1<br />

2<br />

⎣<br />

√<br />

√1<br />

2<br />

2·3 3<br />

0 0 0 0 0 0 0<br />

1<br />

2<br />

Es gilt R 1 ⊂ R 2 ⊂ · · · ⊂ R 8 , dabei bedeutet ⊂ ‘obere linke’Teilmatrix von’. Für die Gram-Matrizen<br />

R t nR n = [〈r i , r j 〉] 1≤i,j≤n gilt für n = 1, ..., n:<br />

(2.3)<br />

⎧<br />

⎪⎨ 2 für i = j<br />

〈r i , r j 〉 = 1 für 1 ≤ |i − j| ≤ 2 <strong>und</strong> 1 ≤ i, j ≤ n<br />

⎪⎩<br />

0 sonst<br />

1√<br />

3<br />

⎤<br />

.<br />

⎥<br />


22 KAPITEL 2. SUKZESSIVE MINIMA UND MINKOWSKI-SÄTZE<br />

⎡<br />

⎤<br />

2 1 1 0 · · · · · · · · · 0<br />

. 1 2 1 .. . .. .<br />

. 1 1 2 .. . .. .<br />

.<br />

R8R t 8 :=<br />

0 .. . .. . .. . .. .<br />

. . .. . .. . .. . ∈ Z 8×8 .<br />

.. 0<br />

. . .. . .. 2 1 1<br />

⎢<br />

⎣<br />

.<br />

.<br />

.. . ⎥<br />

.. 1 2 1 ⎦<br />

0 · · · · · · · · · 0 1 1 2<br />

Nach Lemma 2.2.3 gilt λ 1 (R n ) = √ 2. Man rechnet leicht nach, dass γ n n = λ 2n<br />

1 det(L(R n )) −2 für<br />

die γ n n, n ≤ 8 von Tabelle 2.2.2. Diese <strong>Gitter</strong> Λ n := L(R n ) realisieren die Hermite-Konstanten γ n .<br />

Sie sind kritisch <strong>und</strong> äquivalent zu Z, A 2 , A 3<br />

∼ = D3 , D 4 , D 5 , E 6 , E 7 , E 8 .<br />

Die Gram-Matrizen R t nR n kann man so nicht auf n = 9 fortsetzen, denn dann gilt det(R t 9R 9 ) =<br />

0. Das <strong>Gitter</strong> Λ 8 ist wegen det R 8 = 1 selbstdual, es gilt Λ 8 = Λ ∗ 8. Damit ist jeder Vektor<br />

b ∈ span(Λ 8 ) mit 〈r i , b〉 ∈ Z für i = 1, ..., 8 bereits in Λ 8 . Die nach Def. 2.2.5 geschichteten <strong>Gitter</strong><br />

Λ n haben, skaliert zu λ 1 = √ 2, GNF’s R n mit R 8 ⊂ R n <strong>und</strong> R t nR n ∈ 1 2 Zn×n , siehe [CoSl88,<br />

Figur 4.13]. Man erhält R 9 z.B. mit 〈r 9 , r i 〉 = 1 2 für i = 1, ..., 8 oder mit 〈r 9, r 4 〉 = 〈r 9 , r 6 〉 = 1 ,<br />

1<br />

2 = 〈r 9, r 5 〉 <strong>und</strong> 〈r 9 , r i 〉 = 0 sonst.<br />

Lemma 2.2.3<br />

Für jede ganze Gram-Matrix B t B ∈ Z n×n mit ‖b 1 ‖ 2 = · · · = ‖b n ‖ 2 = 2 gilt λ 1 (L(B)) = √ 2.<br />

Beweis. Wegen ‖b 1 ‖ = √ 2 gilt λ 1 (L) ≤ √ 2. Offenbar gilt ‖b‖ 2 ∈ 2 Z für alle b ∈ L<br />

‖ ∑ n<br />

i=1 t ib i ‖ 2 = ∑ 1≤i,j≤n t it j 〈b i , b j 〉= ∑ n<br />

i=1 t2 i 〈b i, b i 〉 + 2 ∑ j


2.3. ZWEITER SATZ VON MINKOWSKI. 23<br />

Die Erweiterungen R n−1 ⊂ R n <strong>und</strong> Λ n−1 ⊂ Λ n kann man so beschreiben, dass Λ n für n ≤<br />

8 geschichtetes <strong>Gitter</strong> zu Λ n−1 nach Def. 2.2.5 ist. Der Prozess der Schichtung ist in beliebige<br />

Dimension n fortsetzbar. Die <strong>Gitter</strong> Λ n für n = 1, ..., 8 sind äquivalent zu den geschichteten<br />

<strong>Gitter</strong>n Λ n in [CoSl88] <strong>und</strong> sind dort zu λ 1 = 2 skaliert. Zu ihrer Konstruktion, wählen wir<br />

b 1 = √ 2(1, 0, . . . , 0) t ∈ R n <strong>und</strong> b 2 , . . . , b n so dass jeweils b n − ̂b n tiefes Loch von L(b 1 , . . . , b n−1 )<br />

ist <strong>und</strong> ‖b n ‖ 2 = 2. Offenbar liefert diese Konstruktion geschichtete <strong>Gitter</strong> Λ n beliebiger Dimension.<br />

Für n = 11, 12, 13 <strong>und</strong> n > 24 gibt es jedoch mehrere Isometrieklassen geschichteter <strong>Gitter</strong>, siehe<br />

[CoSl88, Figur 6.1].<br />

2.3 Zweiter Satz von Minkowski.<br />

Satz 2.3.1<br />

Für jedes <strong>Gitter</strong> L ⊂ R m mit dim L = n gilt für die l 2 -Norm ∏ n<br />

i=1 λ i(L) ≤ γ n/2<br />

n det L.<br />

Satz 2.3.1 verschärft die Ungleichung λ 2 1 ≤ γ n (det L) 2/n . Für kritische <strong>Gitter</strong> L gilt λ n 1 = γn<br />

n/2 det L<br />

<strong>und</strong> wegen λ i ≥ λ 1 folgt somit λ 1 = λ 2 = · · · = λ n .<br />

Beweis. Seien a 1 , ..., a n ∈ L linear unabhängige Vektoren, so dass ‖a i ‖ = λ i für i = 1, . . . , n.<br />

L(a 1 , . . . , a n ) ist ein Untergitter von L. Wähle die Basis b 1 , ..., b n von L so dass mit einer oberen<br />

Dreiecksmatrix T ∈ Z n×n nach Satz 1.5.5 gilt [b 1 , . . . , b n ] T = [a 1 , . . . , a n ]. Es gilt dann<br />

(2.4)<br />

b ∈ L(b 1 , . . . , b n ) \ L(b 1 , . . . , b s−1 ) =⇒ ‖b‖ ≥ λ s für s = 2, ..., n,<br />

weil b /∈ span(b 1 , . . . , b s−1 ) = span(a 1 , . . . , a s−1 ).<br />

Wir setzen ¯b i := ∑ i<br />

j=1 µ ̂b<br />

(<br />

i,j j /λ j für 1 ≤ i ≤ n, ¯L := L ¯b1 , . . . , ¯b<br />

)<br />

n <strong>und</strong> zeigen λ1 ( ¯L ) ≥ 1.<br />

i=1 t i¯b i ∈ ¯L \ {0} ein beliebiger Vektor, t s ≠ 0 <strong>und</strong> b := ∑ s<br />

Sei ¯b := ∑ s<br />

∥<br />

∥¯b∥ ∥<br />

2<br />

∑ s =<br />

j=1 (∑ s<br />

i=j t iµ i,j ) 2 ‖̂b j ‖ 2 λ −2<br />

j<br />

≥ ∑ s<br />

j=1 (∑ s<br />

i=j t iµ i,j ) 2 ‖̂b j ‖ 2 λ −2<br />

s<br />

i=1 t ib i . Dann gilt<br />

= λ −2<br />

s ‖b‖ 2 ,<br />

so dass wegen (2.4) <strong>und</strong> t s ≠ 0 die Behauptung ‖¯b‖ 2 ≥ 1 <strong>und</strong> damit λ 1 ( ¯L ) ≥ 1 folgt.<br />

Aus det ¯L = det L/ ∏ n<br />

i=1 λ i sowie λ 1 ( ¯L ) ≥ 1 <strong>und</strong> nach Definition von γ n folgt<br />

1 ≤ λ 1 ( ¯L) 2 ≤ γ n (det ¯L) 2/n = γ n (det L) 2/n ( ∏ n<br />

i=1 λ i) −2/n .<br />

Diese Ungleichung potenxiert mit n/2 <strong>und</strong> multipliziert mit ∏ n<br />

i=1 λ i liefert die Behauptung. □<br />

Lemma 2.3.2<br />

Für jedes <strong>Gitter</strong> L mit dim L = n gilt für die l 2 -Norm ∏ n<br />

i=1 λ i ≥ det L.<br />

Beweis. Seien a 1 , . . . , a n linear unabhängige <strong>Gitter</strong>vektoren mit ‖a i ‖ = λ i für i = 1, . . . , n. Weil<br />

L(a 1 , . . . , a n ) ein Untergitter von L ist, gilt det L(a 1 , . . . , a n ) ≥ det L. Ferner liefert die Ungleichung<br />

von Hadamard ∏ n<br />

i=1 λ i = ∏ n<br />

i=1 ‖a i‖ ≥ det L(a 1 , . . . , a n ). Es folgt die Behauptung. □<br />

Satz 2.3.3 verallgemeinert Satz 2.3.1 auf eine allgemeine Norm mit Eichkörper K. Der Satz<br />

stammt von Minkowski 1907, siehe Paragraph 9.1, Kapitel 2, [GrLek87].<br />

Satz 2.3.3<br />

Seien λ 1 , . . . , λ n die sukzessiven Minima des <strong>Gitter</strong>s L ⊂ R m mit dim L = n bezüglich einer<br />

beliebigen Norm mit Eichkörper K, dann gilt det L/n! ≤ vol(K ∩ span(L)) 2 −n ∏ n<br />

i=1 λ i ≤ det L.<br />

Im Fall der sup-Norm l ∞ gilt vol(K ∩ L) ≥ 2 n <strong>und</strong> somit ∏ n<br />

i=1 λ i,∞ ≤ det L. Diese Schranke<br />

ist scharf, denn für L = Z n gilt λ i,∞ = 1 <strong>und</strong> det L = 1.


24 KAPITEL 2. SUKZESSIVE MINIMA UND MINKOWSKI-SÄTZE


Kapitel 3<br />

Gauß-Reduktion<br />

Ziel ist es, für <strong>Gitter</strong> der Dimension 2 eine Basis a, b zu finden, bestehend aus einem kürzesten<br />

Vektor a ≠ 0 <strong>und</strong> einem dazu kürzesten, linear unabhängigen Vektor b. Für beliebige Norm ‖ ‖<br />

sind dies genau die Basen mit ‖a‖ ≤ ‖b‖ ≤ ‖a ± b‖. Wir behandeln Reduktionsverfahren, erst für<br />

die Euklidische Norm dann für eine allgemeine Norm.<br />

3.1 Reduzierte Basis<br />

Reduzierte Basis. Sei ‖ ‖ : R n → R ≥0 eine beliebige Norm. Eine geordnete <strong>Gitter</strong>basis<br />

a, b ∈ R n ist reduziert bezüglich der Norm ‖·‖ wenn ‖a‖ ≤ ‖b‖ ≤ ‖a ± b‖ .<br />

Ist die Basis a, b reduziert, so sind auch ±a, ±b reduzierte Basen des <strong>Gitter</strong>s L(a, b). Abgesehen<br />

von Ausnahmegittern gibt es nur diese vier reduzierten Basen. Die Basen ±a, ±b sind in<br />

natürlicher Weise äquivalent. Wir nennen zwei Basen a, b <strong>und</strong> a ′ , b ′ äquivalent, wenn a = ±a ′ ,<br />

b = ±b ′ . Zwei der reduzierten Basen ±a, ±b erfüllen die Zusatzbedingung ‖a − b‖ ≤ ‖a + b‖.<br />

Der folgende Satz gilt für eine allgemeine Norm ‖ ‖.<br />

Satz 3.1.1<br />

Für jede reduzierte Basis a, b ∈ R n ist a ein kürzester <strong>Gitter</strong>vektor ≠ 0 <strong>und</strong> b ein dazu linear<br />

unabhängiger kürzester <strong>Gitter</strong>vektor.<br />

Beweis. Zu zeigen ist für allgemeine Norm<br />

‖a‖ ≤ ‖ra + sb‖ for all(r, s) ∈ Z 2 \ {(0, 0)} ,<br />

‖b‖ ≤ ‖ra + sb‖ for all(r, s) ∈ Z 2 \ {(0, 0), (1, 0)} , s ≠ 0.<br />

Abb. 4.1.1 illustriert die Lage einer reduzierten Basis a, b. Betrachte das Parallelepiped P<br />

mit den Eckpunkten ±a ± b. Die Reduktionsbedingungen bedeuten, dass auf jeder der vier dicken<br />

Kanten von P der mittlere <strong>Gitter</strong>punkt ±a, ±b minimale Norm gegenüber den beiden Eckpunkten<br />

hat:<br />

‖±a − b‖ ≥ ‖±a‖ ≤ ‖±a + b‖<br />

‖−a ± b‖ ≥ ‖±b‖ ≤ ‖a ± a‖ .<br />

Für eine allgemeine Norm <strong>und</strong> c > 0 ist der Bereich der Vektoren K c = {x | ‖x‖ ≤ c} konvex.<br />

Wegen dieser Konvexität hat die Norm auf jeder der vier Grenzgeraden von P, den Geraden<br />

±a + tb, ±b + ta für t ∈ R, ihr Minimum jeweils auf der Kante des Randes von P. Damit nimmt<br />

die Norm in jedem der vier gepunkteten Bereiche der Abb. 4.1.1 ihr Minimum im jeweiligen<br />

Eckpunkt ±a ± b an. Daher sind a, b offenbar zwei kleinste, linear unabhängige <strong>Gitter</strong>punkte. □<br />

25


26 KAPITEL 3. GAUSS-REDUKTION<br />

♣ ♣ ♣ ♣ ♣ ♣ ♣<br />

♣ ♣ ♣<br />

♣ ♣ ♣ ♣ ♣ ♣ ♣ <br />

<br />

♣ ♣ ♣<br />

♣ ♣ ♣ ♣ ♣ ♣ ♣<br />

♣ ♣ ♣ ♣<br />

♣ ♣ ♣ ♣ ♣ ♣<br />

♣ ♣ ♣ ♣<br />

♣<br />

<br />

♣ ♣ ♣ ♣<br />

<br />

♣<br />

a<br />

<br />

<br />

♣ ♣ ♣ ♣<br />

✶<br />

+a − b<br />

✕<br />

+a + b<br />

<br />

0 ✲ <br />

−b<br />

b<br />

−a − b<br />

<br />

♣ ♣ ♣<br />

♣ ♣<br />

♣ ♣ ♣<br />

♣♣ ♣ <br />

♣<br />

−a + b<br />

<br />

♣ ♣ ♣ ♣ ♣ ♣ ♣<br />

♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣<br />

♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣<br />

♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣<br />

♣ ♣ ♣ ♣ ♣ ♣ ♣<br />

♣<br />

Abbildung 3.1.1: Reduzierte Basis a, b<br />

3.2 Reduktionsverfahren für die Euklidische Norm<br />

Für die Euklidischen Norm ‖x‖ = √ x t x gilt offenbar mit µ 2,1 = a t b ‖a‖ −2 dass<br />

µ 2,1 ≤ 1 2<br />

⇐⇒ ‖b‖ ≤ ‖a − b‖ ,<br />

µ 2,1 ≥ 0 ⇐⇒ ‖a − b‖ ≤ ‖a + b‖ .<br />

Damit ist die Basis a, b genau dann reduziert, wenn ‖a‖ ≤ ‖b‖ , |µ 2,1 | ≤ 1 2<br />

. Wir betrachten nur<br />

reduzierte Basen mit der Zusatzbedingung µ 2,1 ≥ 0.<br />

µ 2,1 = 0<br />

❘<br />

♣♣♣♣♣♣♣♣♣✗♣<br />

♣♣♣♣♣♣♣♣♣<br />

❨<br />

µ2,1 = 1 2<br />

b<br />

✮<br />

‖a‖ = ‖b‖<br />

a<br />

✲<br />

♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣<br />

-<br />

Abbildung 3.2.1: Bereich der reduzierten Basen a, b mit µ 2,1 ≥ 0<br />

Abbildung 3.2.1 zeigt zu festem a den gepunkteten Bereich der Vektoren b der reduzierten<br />

Basen a, b mit µ 2,1 ≥ 0. Sei φ = ∠(a, b) der Winkel zwischen den <strong>Gitter</strong>vektoren a, b, cos φ =<br />

a t b<br />

‖a‖·‖b‖ . Für reduzierte Basen a, b gilt 60◦ ≤ φ ≤ 90 ◦ .<br />

Im Fall µ 2,1 = 1 2<br />

ist mit a, b auch a, a − b reduziert. Im Fall ‖a‖ = ‖b‖ ist mit a, b auch b, a<br />

reduziert. In den übrigen Fällen gibt es nur die reduzierten Basen ±a, ±b.


3.2. REDUKTIONSVERFAHREN FÜR DIE EUKLIDISCHE NORM 27<br />

Algorithmus 3.2.1 Gauß-Reduktionsverfahren für die Euklidische Norm<br />

EINGABE :<br />

<strong>Gitter</strong>basis b 1 , b 2 ∈ R n mit ‖b 1 ‖ ≤ ‖b 2 ‖<br />

WHILE |µ 2,1 | > 1 2 DO /∗ µ2,1 = b⊤ 1 b 2‖b 1‖ −2 ∗/<br />

1. b 2 := b 2 · sign(µ 2,1 ) /∗ wir erreichen µ 2,1 ≥ 0 ∗/<br />

2. b 2 := b 2 − ⌈µ 2,1 ⌋b 1<br />

3. IF ‖b 1 ‖ > ‖b 2 ‖ THEN vertausche b 1 <strong>und</strong> b 2<br />

AUSGABE : Reduzierte Basis b 1 , b 2<br />

Eine R<strong>und</strong>e der Schritte 1. 2. 3. sichert in Schritt 1. durch Vorzeichenwahl von b 2 dass<br />

µ 2,1 ≥ 0, reduziert in Schritt 2. gemäß b 2 := b 2 − ⌈µ 2,1 ⌋b 1 <strong>und</strong> vertauscht in Schritt 3. sofern<br />

nicht schon ‖b 1 ‖ ≤ ‖b 2 ‖ gilt. Nach Schritt 1. gilt stets ‖b 1 ‖ ≤ ‖b 2 ‖ <strong>und</strong> µ 2,1 ≥ 0. Die Schritte 2.<br />

3. lauten bei Vertauschung in Matrizenschreibweise<br />

[ ]<br />

−⌈µ2,1 ⌋ 1<br />

[b 1 , b 2 ] := [b 1 , b 2 ]<br />

.<br />

1 0<br />

In Schritt 3. wird bis auf die letzte R<strong>und</strong>e notwendigerweise vertauscht.<br />

Zu gegebener reduzierten Ausgabebasis b 1 , b 2 <strong>und</strong> R<strong>und</strong>enzahl k der Gauß-Reduktion identifizieren<br />

wir eine minimale Eingabebasis, welche in k R<strong>und</strong>en auf b 1 , b 2 reduziert wird. Die Minimalität<br />

der Basis bedeutet, dass ihre Vektoren minimale Länge haben. Eine solche Eingabebasis<br />

heißt eine minimale k-te Vorgängerbasis zu b 1 , b 2 .<br />

Satz 3.2.1<br />

1. Zur reduzierten Basis b 1 , b 2 <strong>und</strong> R<strong>und</strong>enzahl k ist [b 1 , b 2 ] A k minimale k-te Vorgängerbasis<br />

[ ] [ ] k−2 [ ]<br />

0 1 0 1 0 1<br />

mit A k = def .<br />

1 1 1 2 1 1<br />

2. Algorithmus 3.2.1 macht zur Eingabe b 1 , b 2 höchstens log √<br />

1+ 2<br />

(‖b 1 ‖ /λ 2 ) + 2.54 R<strong>und</strong>en.<br />

Wohlgeordnete Basis. Eine Basis b 1 , b 2 heißt wohlgeordnet wenn ‖b 1 ‖ ≤ ‖b 1 − b 2 ‖ < ‖b 2 ‖.<br />

Dies ist für die Euklidischen Norm äquivalent zu 0 < µ 2,1 ≤ 1 2 , ‖b 1‖ < ‖b 2 ‖. In Schritt 1. wird<br />

also eine wohlgeordnete Basis erzeugt, es sei denn die Basis ist schon reduziert. Offenbar gelten<br />

folgende Aussagen.<br />

Lemma 3.2.2<br />

Für jede nicht reduzierte Basis mit ‖b 1 ‖ ≤ ‖b 2 ‖ ist genau eine der Basen b 1 , ±b 2 wohlgeordnet.<br />

Lemma 3.2.3<br />

Wendet man die Schritte 2. 3. an auf zwei aquivalente Basen b 1 , b 2 <strong>und</strong> b ′ 1, b ′ 2, so bleibt die<br />

Äquivalenz erhalten.<br />

Wegen Lemma 3.2.3 gibt es zu gegebener reduzierten Basis eine minimale k-te Vorgängerbasis,<br />

bei deren Reduktion das Vorzeichen von b 2 in Schritt 1. nie verändert wird. Dies folgt aus dem<br />

Lemma, weil äquivalente Basen in der Länge der Vektoren gleich sind.<br />

Die Gauß-Reduktion mit k R<strong>und</strong>en erzeugt in Schritt 1. eine Folge wohlgeordneter Basen<br />

(b k+1 , b k+2 ), (b k , b k+1 ), . . . , (b 2 , b 3 ) <strong>und</strong> schließlich die reduzierte Basis (b 1 , b 2 ). Bleibt das Vor-


28 KAPITEL 3. GAUSS-REDUKTION<br />

zeichen von b 2 in Schritt 1. stets unverändert, <strong>und</strong> wird in der letzten R<strong>und</strong>e in Schritt 3. getauscht,<br />

dann ist die k-te Vorgängerbasis (b k+1 , b k+2 ) zur reduzierten Basis (b 1 , b 2 ) von der Form<br />

[b k , b k+1 ] = [b 1 , b 2 ]<br />

∏<br />

i=1,...,k<br />

[ ] 0 1<br />

1 µ (i) .<br />

Dabei ist µ (i) = ⌈µ 2,1 ⌋ der ganzzahlige<br />

[<br />

Reduktionskoeffizient<br />

]<br />

der i-ten<br />

[<br />

R<strong>und</strong>e.<br />

]<br />

Die behauptete<br />

0 1<br />

−µ<br />

(i)<br />

1<br />

Form von (b k+1 , b k+2 ) folgt, weil<br />

1 µ (i) die Inverse zur Matrix<br />

ist, welche die<br />

1 0<br />

Schritte 2. 3. beschreibt. Wegen µ 2,1 > 1 2 gilt µ(i) ≥ 1.<br />

Lemma 3.2.4<br />

Sei b 1 , b 2 ∈ R n wohlgeordnete Basis, welche durch die Schritte 2. 3. in die wohlgeordnete Basis<br />

b ′ 1 = b 2 − ⌈µ 2,1 ⌋b 1 , b ′ 2 = b 1 transformiert wird. Im Fall ∠(b 1 , b ′ 1) < 30 o gilt µ ′ 2,1 > 3 2 .<br />

Im Fall ∠(b 1 , b ′ 1) ≥ 30 o gibt es eine reduzierte Basis bestehend aus den Vektoren b ′ 1, b ′ 2, b ′ 2 −b ′ 1.<br />

Das Lemma zeigt, dass der ganzzahlige Reduktionskoeffizient µ (i) = ⌈µ 2,1 ⌋ stets mindestens 2<br />

ist, ausgenommen die erste <strong>und</strong> letzte R<strong>und</strong>e.<br />

Beweis.<br />

ist.<br />

Wir betrachten nur den Fall dass 〈b 1 , b ′ 1〉‖b 1 ‖ −2 = 1 2 , weil dann ‖b′ 1‖/‖b 1 ‖ maximal<br />

Abbildung 3.1: Der Fall ∠(b 1 , b ′ 1) = 30, 〈b 1 , b ′ 1〉‖b 1 ‖ −2 = 1 2<br />

Im Fall ∠(b 1 , b ′ 1) = 30 o gilt 3 4 ‖b′ 1‖ 2 = 1 4 ‖b 1‖ 2 . Daher gilt im Falle ∠(b 1 , b ′ 1) < 30 o offenbar<br />

‖b 1 ‖ 2 < 3 ‖b ′ 1‖ 2 . Es folgt die Behauptung<br />

µ ′ 2,1 = 〈b 1 , b ′ 1〉‖b ′ 1‖ −2 ≥ 3 〈b 1 , b ′ 1〉‖b 1 ‖ −2 > 3 2 .<br />

Im Falle ∠(b 1 , b ′ 1) > 30 o gilt 1 2 < µ′ 2,1 < 3 2 . Sofern die Basis b′ 1, b ′ 2 nicht schon reduziert ist,<br />

wird in der nächsten R<strong>und</strong>e b ′ 2 − b ′ 1 gebildet <strong>und</strong> die Reduktion bricht ab.<br />

□<br />

Beweis von Satz 3.2.1. Betrachte nun den Fall dass (b 2 , b 3 ) = (b ′ 1, b ′ 2) direkte Vorgängerbasis<br />

ist zur reduzierten Basis b 1 , b 2 gemäß Lemma 4.2.4. Es sei also b 1 , b 2 eine Auswahl von b ′ 1, b ′ 2, b ′ 2−<br />

b ′ 1. Dann ist<br />

[b k+1 , b k+2 ] = [b 1 , b 2 ]<br />

[ 0 1<br />

1 1<br />

] [ 0 1<br />

1 2<br />

] k−2 [ 0 1<br />

1 1<br />

eine minimale k-te Vorgängerbasis (b k+1 , b k+2 ) zur reduzierten Basis (b 1 , b 2 ). Wegen Lemma<br />

4.2.4 gilt nämlich µ (i) ≥ 2 für die ganzzahligen Reduktionskoeffizienten mit 1 < i < k <strong>und</strong><br />

µ (1) = µ (k) = 1. Offenbar wird b k+1 , b k+2 minimal, wenn in der letzten R<strong>und</strong>e in Schritt 3.<br />

getauscht wird.<br />

[ ] k [ ]<br />

0 1 ak−2 a<br />

Die Koeffizienten a k der Matrix<br />

=<br />

k−1<br />

genügen der Rekursion<br />

1 2 a k−1 a k<br />

a 0 = 0, a 1 = 1, a 2 = 2 <strong>und</strong> a k = 5 a k−2 + 2 a k−3 für k ≥ 3. Es gilt 2a k−3 + a k−2 ≥ 1.5 (1 + √ 2) k−3 .<br />

Somit gilt<br />

[b k+1 , b k+2 ] [b k+1 , b k+2 ] t = A k [b 1 , b 2 ] t [b 1 , b 2 ]A t k<br />

]<br />

.


3.2. REDUKTIONSVERFAHREN FÜR DIE EUKLIDISCHE NORM 29<br />

[<br />

für die Matrix A k =<br />

]<br />

a k−2 a k−2 + a k−3<br />

a k−4 + a k−3 a k−4 + 2a k−3 + a k−2<br />

. Wegen 〈b 1 , b 2 〉 ≥ 0 folgt<br />

‖b k+1 ‖ ≥ (a k−4 + 2a k−3 + a k−2 )‖b 2 ‖ ≥ 1.5 (1 + √ 2) k−3 λ 2 .<br />

Somit gilt k ≤ 2.54 + log 1+<br />

√<br />

2<br />

(‖b k+1 ‖/λ 2 ), weil 2.54 > 3 − log 1.5/ log(1 + √ 2).<br />

□<br />

Algorithmus 3.2.2 Gauß-Reduktionsverfahren für beliebige Norm<br />

EINGABE :<br />

Wohlgeordnete <strong>Gitter</strong>basis b 1 , b 2 ∈ R n mit ‖b 1 ‖ ≤ ‖b 2 ‖<br />

WHILE ‖b 2 ‖ > ‖b 1 − b 2 ‖ DO<br />

1. b 2 := b 2 − µb 1 mit µ ∈ Z derart, dass ‖b 2 − µb 1 ‖ minimal ist<br />

2. IF ‖b 1 + b 2 ‖ < ‖b 1 − b 2 ‖ THEN b 2 := −b 2<br />

3. vertausche b 1 <strong>und</strong> b 2<br />

AUSGABE : Reduzierte Basis b 1 , b 2<br />

Korrektheit. Nach Schritt 1. gilt ‖|b 2 ‖| ≤ ‖b 1 ± b 2 ‖, nach Schritt 2. gilt ‖b 2 ‖ ≤ ‖b 1 − b 2 ‖ ≤<br />

‖b 1 + b 2 ‖ <strong>und</strong> nach Schritt 3. gilt ‖b 1 ‖ ≤ ‖b 1 − b 2 ‖ ≤ ‖b 1 + b 2 ‖. Falls nach Schritt 3. ‖b 2 ‖ ≤<br />

‖b 1 − b 2 ‖ gilt, dann gilt auch ‖b 1 ‖, ‖b 2 ‖ ≤ ‖b 1 ± b 2 ‖.<br />

Die R<strong>und</strong>enzahl für dieses Verfahren ist beschränkt durch log 1+<br />

√<br />

2<br />

(‖b 1 ‖/λ 2,‖ ‖ ) + O(1). Dabei<br />

ist λ 2,‖ ‖ das zweite sukzessive Minimum zur Norm ‖ ‖. Eine ausführliche Analyse findet sich<br />

in [KS96] sowie in [Ka94]. Dort werden effiziente Algorithmen für den Schritt 1. in der l 1 - <strong>und</strong><br />

sup-Norm vorgestellt.


30 KAPITEL 3. GAUSS-REDUKTION


Kapitel 4<br />

LLL-reduzierte <strong>Gitter</strong>basen<br />

LLL-reduzierte <strong>Gitter</strong>basen b 1 , . . . , b n ∈ R m beliebigen Ranges n wurde 1982 von A.K. Lenstra,<br />

H.W. Lenstra <strong>und</strong> L. Lovász [LLL82] eingeführt. Der LLL-Algorithmus ist das erste Reduktionsverfahren<br />

für ganzzahlige <strong>Gitter</strong>basen mit einer polynomiellen Laufzeit <strong>und</strong> Approximationsfaktor<br />

‖b i ‖ 2 /λ 2 i ≤ 2n . Es iteriert die Gauß-Reduktion in Dimension n = 2.<br />

4.1 Definition <strong>und</strong> Eigenschaften<br />

Wir führen den Begriff der LLL-reduzierten Basis ein <strong>und</strong> zeigen, dass die Längen der Basisvektoren<br />

die sukzessiven Minima des <strong>Gitter</strong>s grob approximieren. Sei [b 1 , ..., b n ] = B = QR ∈ R m×n<br />

<strong>Gitter</strong>basis mit R = [r i,j ] ∈ R n×n .<br />

Definition 4.1.1 (LLL-reduzierte Basis)<br />

Eine <strong>Gitter</strong>basis B = QR ∈ R m×n heißt LLL-reduziert (oder LLL-Basis) mit δ, 1 4<br />

< δ ≤ 1, wenn<br />

1. |r j,i | ≤ 1 2 r j,j für 1 ≤ j < i ≤ n,<br />

2. δ r 2 k−1,k−1 ≤ r2 k−1,k + r2 k,k<br />

für k = 2, . . . , n.<br />

Basen mit 1. sind längenreduziert. Der Parameter δ kontrolliert die Güte der reduzierten Basis:<br />

je kleiner δ um so schwächer ist die Reduktion. A.K. Lenstra, H.W. Lenstra <strong>und</strong> L. Lovász<br />

[LLL82] studieren die LLL-Reduktion speziell für den Parameter δ = 3 4<br />

. Für δ < 1 hat das<br />

LLL-Reduktionsverfahren polynomielle Laufzeit. Die Eigenschaft ’LLL-Basis’ zu sein bleibt bei<br />

Isometrie erhalten : B = QR ist LLL-Basis gdw R LLL-Basis ist.<br />

Die LLL-Basen mit δ [ = 1 <strong>und</strong> n = 2 sind ] genau die Gauß-reduzierten Basen. B ist LLL-Basis<br />

rk−1,k−1 r<br />

mit δ gdw die Matrizen<br />

k−1,k<br />

∈ R<br />

0 r 2×2 für k = 2, ..., n LLL-Basen mit δ sind.<br />

k,,k<br />

Lemma 4.1.2<br />

Für jede LLL-Basis B = QR ∈ R m×n mit δ <strong>und</strong> α = (δ − 1 4 )−1 gilt<br />

r 2 i,i ≤ α j−i r 2 j,j für 1 ≤ i ≤ j ≤ n.<br />

31


32 KAPITEL 4. LLL-REDUZIERTE GITTERBASEN<br />

Für δ = 3 4 , α = 2, i = 1 gilt ‖b 1‖ 2 = r1,1 2 ≤ 2 j−1 rj,j 2 , so dass die ‖̂b j ‖ 2 = rj,j 2 für große j nicht<br />

beliebig klein werden.<br />

Beweis. Die Eigenschaften einer LLL-Basis implizieren<br />

δ rk−1,k−1 2 ≤ rk−1,k 2 + rk,k 2 ≤ 1 4 r2 k−1,k−1 + rk,k<br />

2<br />

<strong>und</strong> somit<br />

(<br />

δ −<br />

1<br />

4)<br />

r<br />

2<br />

k−1,k−1<br />

≤ r 2 k,k . Durch Induktion über j − i folgt r2 i,i ≤ αj−i r 2 j,j . □<br />

Lemma 4.1.3<br />

Für jede Basis b 1 , . . . , b n des <strong>Gitter</strong>s L gilt λ j (L) ≥ min{r j,j , . . . , r n,n } für j = 1, ..., n.<br />

Beweis. Es seien a 1 , . . . , a n ∈ L linear unabhängig , so dass ‖a j ‖ = λ j (L) für j = 1, . . . , n. Sei<br />

a k = ∑ n<br />

i=1 t i,kb i = ∑ n<br />

i=1 t i,k̂b i für k = 1, . . . , n.<br />

Dabei sind die Koeffizienten t i,k ganzzahlig <strong>und</strong> die t i,k reell. Sei µ(k) := max {i : t i,k ≠ 0}.<br />

Wegen b i = ∑ i<br />

j=1 µ i,j ̂b j <strong>und</strong> µ i,i = 1, ist t µ(k),k = t µ(k),k ganzzahlig. Wegen der linearen<br />

Unabhängigkeit der Vektoren a 1 , . . . , a j gibt es zu jedem j ein k ≤ j mit µ(k) ≥ j. Denn aus der<br />

Annahme µ(k) < j für k = 1, . . . , j folgt a 1 , . . . , a j ∈ span(b 1 , . . . , b j−1 ), so dass a 1 , . . . , a j linear<br />

abhängig sind — Widerspruch. Aus k ≤ j, µ(k) ≥ j folgt<br />

λ 2 j ≥ λ 2 k = ‖a‖2 ≥ t 2 µ(k),k r 2 µ(k),µ(k) ≥ r2 µ(k),µ(k) ≥ min{r j,j, ..., r n,n } □<br />

Die untere Schranke zu λ j in Lemma 4.1.3 gilt für beliebige Basen. Für LLL-reduzierten Basen ist<br />

‖b j ‖ grobe Approximation zu λ j , es gilt nämlich<br />

Satz 4.1.4 (Lenstra, Lenstra, Lovász 1982)<br />

Jede LLL-Basis b 1 , ..., b n mit δ des <strong>Gitter</strong>s L erfüllt mit α = (δ − 1 4 )−1<br />

1. α 1−j ≤ r 2 j,j/λ j (L) 2 für j = 1, . . . , n,<br />

2. ‖b j ‖ 2 /λ j (L) 2 ≤ α n−1 für j = 1, . . . , n,<br />

3. ‖b k ‖ 2 ≤ α j−1 r 2 j,j für k ≤ j.<br />

Beweis. Wir zeigen 1. <strong>und</strong> 3. : Offenbar gibt es ein k ≤ j so dass λ j ≤ ‖b k ‖. Es folgt<br />

λ 2 j ≤ ‖b k ‖ 2 ≤ r 2 k,k + 1 4<br />

≤ r 2 j,j (αj−k + 1 4<br />

= r 2 j,j αj−1 (α 1−k + 1 4<br />

∑ k−1<br />

i=1 r2 i,i<br />

∑ k−1<br />

i=1 αj−i ) (nach Lemma 4.1.2)<br />

∑ k−1<br />

i=1 α1−i ).<br />

Damit gilt 3. für alle k ≤ j mit λ j ≤ ‖b k ‖ <strong>und</strong> somit auch für die k ′ ≤ j mit ‖b ′ k ‖ ≤ λ j wegen<br />

‖b k ′‖ 2 ≤ ‖b k ‖ 2 ≤ r 2 j,j αj−1 . Es bleibt noch zu zeigen, dass<br />

α 1−k + 1 4<br />

∑ k−1<br />

i=1 α1−i ≤ 1.<br />

Für k = 1 gilt die Ungleichung offenbar. Für k ≥ 2 gilt mit α −1 = δ − 1 4 ≤ 3 4 dass<br />

α 1−k + 1 4<br />

∑ k−1<br />

i=1 α1−i<br />

} {{ }<br />

geom. Reihe<br />

≤ ( 3<br />

4<br />

) k−1<br />

+<br />

1 1−( 3 4) k−1<br />

4<br />

= 1 1− 3 4<br />

4<br />

1<br />

1− 3 4<br />

= 1.


4.2. DAS LLL-REDUKTIONSVERFAHREN 33<br />

Damit sind 1. <strong>und</strong> 2. gezeigt. Nach Lemma 4.1.3 gibt es ein k ≥ j, so dass λ j ≥ r k,k . Es folgt<br />

λ 2 j ≥ r 2 k,k ≥ α −k+j r 2 j,j (wegen Lemma 4.1.2)<br />

≥ α −k+1 ‖b j ‖ 2 (wegen 3. Aussage des Satzes mit k = j)<br />

≥ α −n+1 ‖b j ‖ 2 (wegen k ≤ n <strong>und</strong> α ≥ 1 □<br />

Korollar 4.1.5<br />

Jede LLL-Basis b 1 , . . . , b n mit δ erfüllt<br />

1. ‖b 1 ‖ 2 ≤ α n−1<br />

2 (det L) 2 n , 2.<br />

∏ n<br />

i=1 ‖b i‖ 2 ≤ α (n 2) (det L) 2 .<br />

Beweis. Aus ∏ n<br />

i=1 r2 i,i = (det L)2 <strong>und</strong> ‖b 1 ‖ 2 ≤ ri,i 2 αi−1 ( Lemma 4.1.2 ) folgt<br />

<strong>und</strong> somit<br />

‖b 1 ‖ 2n ≤ α 1 α 2 · · · α n−1<br />

n ∏<br />

i=1<br />

‖b 1 ‖ 2 ≤ α n−1<br />

2 (det L) 2 n .<br />

r 2 i,i = α (n 2) (det L)<br />

2<br />

Die zweite Aussage folgt aus ∏ n<br />

i=1 r2 i,i = (det L)2 <strong>und</strong> ‖b i ‖ 2 ≤ ri,i 2 αi−1 , der dritten Aussage<br />

von Satz 4.1.4 für k = j = i.<br />

□<br />

4.2 Das LLL-Reduktionsverfahren<br />

Wir beschreiben ein Verfahren zur LLL-Reduktion von ganzzahligen <strong>Gitter</strong>basen mit polynomieller<br />

Laufzeit. Es handelt sich bis auf kleine Verbesserungen um das Verfahren von A.K. Lenstra,<br />

H.W. Lenstra <strong>und</strong> L. Lovász [LLL82]. Wir zählen die Anzahl der arithmetischen Schritte auf<br />

ganzen Zahlen <strong>und</strong> beschränken den Absolutwert der im Verfahren auftretenden ganzen Zahlen.<br />

4.2.1 LLL-Verfahren<br />

Algorithmus 4.2.1 transformiert eine ganzzahlige <strong>Gitter</strong>basis in eine LLL-Basis mit δ desselben <strong>Gitter</strong>s.<br />

Der Algorithmus reduziert sukzessive einen möglichst großen Anfangsabschnitt b 1 , ..., b k−1<br />

der Basis. Bei Eintritt in Stufe k ist die Teilbasis b 1 , . . . , b k−1 stets LLL-Basis mit δ. Am Ende<br />

ist k = n + 1 <strong>und</strong> die gesamte Basis b 1 , ..., b n ist LLL-Basis.<br />

Das Verfahren operiert auf Stufe k mit den rationalen Zahlen µ i,j , ri,i 2 für 1 ≤ i, j ≤ k <strong>und</strong> den<br />

ganzzahligen Vektoren b 1 , ..., b k , siehe Lemma 4.2.2. Die Längenreduktion von b k sichert, dass<br />

die im Verfahren auftretenden ganzen Zahlen polynomielle Bitlänge zur Länge der Eingabe haben.<br />

Dies gilt insbesondere für Zähler <strong>und</strong> Nenner der rationalen Zahlen µ k,j , rk,k 2 , siehe Satz 4.2.6. Es<br />

bezeichne<br />

M := max( ‖b 1 ‖ 2 , ..., ‖b n ‖ 2 ),<br />

D i := det L(b 1 , ..., b i ) 2 = det [〈b s , b t 〉] 1≤s,t≤i<br />

= ∏ i<br />

j=1 r2 j,j ∈ N,<br />

(4.1)<br />

D := ∏ n−1<br />

i=1 D i, M := max i=1,...,n ( ‖b i ‖ 2 , D i ).<br />

Die Gram-Determinante D i ist die Determinante der Gram-Matrix der Teilbasis b 1 , ..., b i . Die<br />

Größen M, M beziehen sich im Folgenden immer auf die Eingabebasis, während D i <strong>und</strong> D sich<br />

bei Basistransformationen ändern. D Start ist der Wert von D zur Eingabe.<br />

Korrektheit. Auf Stufe k ist die Teilbasis b 1 , ..., b k−1 stets LLL-Basist. Dies folgt durch Induktion<br />

über die Abfolge der Iterationen. Eine Iteration ist die Abfolge der Schritte der WHILE-Schleife<br />

bis zur Aktualisierung von k.


34 KAPITEL 4. LLL-REDUZIERTE GITTERBASEN<br />

Algorithmus 4.2.1 zur LLL-Reduktion in Z-Arithmetik<br />

EINGABE : Basis B = [b 1 , . . . , b n ] ∈ Z m , δ mit 1 4 < δ < 1<br />

1. k := 2, r 2 1,1 := ‖b 1 ‖ 2 /∗ k ist die Stufe ∗/<br />

2. WHILE k ≤ n DO /∗ b 1, . . . , b k−1 ist stets LLL-reduziert ∗/<br />

berechne µ k,j = r j,k /r j,j für j = 1, . . . , k <strong>und</strong> rk,k 2 gemäß Lemma 4.2.2<br />

Längenreduziere b k , aktualisiere µ k,1 , . . . , µ k,k−1<br />

IF δ r 2 k−1,k−1 > r2 k−1,k + r2 k,k<br />

THEN vertausche b k−1 <strong>und</strong> b k /∗ kurz b k−1 ↔ b k ∗/<br />

IF k = 2 THEN aktualisiere r 2 1,1 = ‖b 1 ‖ 2<br />

k := max(k − 1, 2)<br />

ELSE k := k + 1<br />

end while<br />

AUSGABE : LLL-Basis B = [b 1 , ..., b n ].<br />

Lemma 4.2.1<br />

Die LLL-Reduktion führt zu gegebener ganzzahligen Basis b 1 , ..., b n ∈ Z m höchstens<br />

log 1/δ<br />

(<br />

D<br />

Start ) ≤ n log 1/δ M Austausche b k−1 ↔ b k durch.<br />

Beweis. Die Gram-Determinante D i ist ganzzahlig <strong>und</strong> positiv. Wir zeigen, dass jeder Austausch<br />

b k−1 ↔ b k D um den Faktor δ erniedrigt, D neu ≤ δ D alt . Wegen D Ende ∈ N folgt dann<br />

(4.2)<br />

D Start ≥ D Ende (1/δ) #Austausche ≥ (1/δ) #Austausche .<br />

Die <strong>Gitter</strong> L(b 1 , . . . , b i ) mit i ≠ k − 1 werden beim Austausch b k−1 ↔ b k nicht verändert. Die<br />

Determinanten D i mit i ≠ k − 1 bleiben erhalten. Im LLL-Verfahren wird nur ausgetauscht wenn<br />

δ r 2 k−1,k−1<br />

> r 2 k−1,k + r 2 k,k.<br />

Wegen D k−1 = ∏ k−1<br />

i=1 r2 i,i bewirkt der Austausch b k−1 ↔ b k , dass<br />

D neu<br />

k−1 ≤ δ D alt<br />

k−1<strong>und</strong> D neu ≤ δ D alt .<br />

(<br />

Nach (4.2) ist die Anzahl der Austausche höchstens log ) 1/δ D<br />

Start<br />

. Wegen Di<br />

Start ≤ D i ≤ M<br />

folgt D Start = ∏ n−1<br />

i=1 D i ≤ M n−1 <strong>und</strong> somit #Austausche ≤ (n − 1) log 1/δ M. □<br />

Wieviele arithmetische Schritte führt das LLL-Verfahren pro Austausch durch ? Wieviele<br />

Schritte kostet die Berechnung von µ k,1 , ..., µ k,k <strong>und</strong> rk,k 2 auf Stufe k ?<br />

Lemma 4.2.2<br />

Die Berechnung von µ k,1 , ..., µ k,k <strong>und</strong> r 2 k,k , sowie die Längenreduktion von b k auf Stufe k gehen<br />

in O(k m) arithmetischen Schritten.<br />

Beweis. Die µ k,j = r j,k /r j,j für j = 1, ..., k <strong>und</strong> rk,k 2 werden durch folgende O (k m) Schritte<br />

berechnet<br />

FOR j = 1, . . . , k − 1 DO µ k,j := (〈b k , b j 〉 − ∑ j−1<br />

i=1 µ k,i µ j,i r 2 i,i )/r2 j,j ,<br />

µ k,k := 1, r 2 k,k := 〈b k, b k 〉 − ∑ k−1<br />

j=1 µ2 k,j r2 j,j .


4.2. DAS LLL-REDUKTIONSVERFAHREN 35<br />

Die Längenreduktion von b k geht mit folgenden O(k m) Schritten<br />

FOR j = k − 1, ..., 1 DO b k := b k − ⌈µ k,j ⌋b j , µ k,i := µ k,i − ⌈µ k,j ⌋µ j,i für i = 1, ..., k. □<br />

Aufgr<strong>und</strong> von Lemma 4.2.1 <strong>und</strong> 4.2.2 führt das LLL-Verfahren höchstens O(n 2 m log 1/δ M)<br />

arithmetischen Schritte aus, siehe Satz 4.2.6. Wie groß werden aber die während des LLL-Verfahrens<br />

auftretenden ganzen Zahlen ? Wir schätzen in den nächsten drei Lemmata die Absolutwerte der<br />

Zähler <strong>und</strong> Nenner der rationalen Zahlen µ j,i , ri,i 2 während der LLL-Reduktion ab.<br />

Lemma 4.2.3<br />

Für jede ganzzahlige Eingabebasis b 1 , ..., b n ∈ Z m gilt 1. D i−1 ̂bi ∈ Z m , 2. D j µ i,j ∈ Z.<br />

Beweis.<br />

1. Aus [b 1 , ..., b n ] = [̂b 1 , . . . , ̂b n ] 1≤i,j≤n [µ i,j ] T 1≤i,j≤n folgt für [ν i,j] := [µ i,j ] −1 : dass<br />

[̂b 1 , . . . , ̂b n ] = [b 1 , ..., b n ] [ν i,j ] T 1≤k,j≤n.<br />

Dabei sind [ν i,j ] ⊤ , [µ i,j ] ⊤ ∈ Q n×n obere Dreiecksmatrizen mit Einsen auf der Diagonalen.<br />

Wegen 〈̂b i , b j 〉 = 0 für j = 1, 2, . . . , i − 1 folgt aus ̂b i = b i + ∑ i−1<br />

t=1 ν i,tb t <strong>und</strong> ν i,i = 1 dass<br />

∑i−1<br />

− 〈b i , b j 〉 = ν i,t 〈b t , b j 〉 für j = 1, 2, . . . , i − 1.<br />

t=1<br />

Diese i − 1 Gleichungen definieren ν i,1 , ν i,2 , . . . , ν i,i−1 . Die Determinante des Gleichungssystems<br />

ist D i−1 = det [〈b j , b k 〉] 1≤j,k≤i−1 ≠ 0. Nach der Cramer’schen Regel gilt<br />

D i−1 ν i,j ∈ Z für j = 1, . . . , i − 1.<br />

Aus ̂b i = b i + ∑ i−1<br />

j=1 ν i,jb j folgt D i−1 ̂bi ∈ Z m .<br />

2. Wegen D j = ∏ j<br />

i=1 r2 i,i gilt<br />

D j µ i,j = D j<br />

〈b i , ̂b j 〉<br />

r 2 j,j<br />

= D j−1 〈b i , ̂b j 〉 = 〈b i , D j−1 ̂bj 〉.<br />

Aus D j−1 ̂bj ∈ Z m folgt somit D j µ i,j ∈ Z.<br />

<br />

Lemma 4.2.4<br />

Auf Stufe k des LLL-Verfahrens gilt stets<br />

1. ‖b i ‖ 2 ≤ i+3<br />

4<br />

M für i = 1, . . . , k,<br />

2. |µ i,j | 2 ≤ i+3<br />

4 M αj−1 für 1 ≤ j < i < k.<br />

Beweis.<br />

1. Im LLL-Verfahren bleiben bis auf die Längenreduktion von b k auf Stufe k die Längen der<br />

Basisvektoren unverändert. Nach der Längenreduktion von b k gilt<br />

‖b k ‖ 2 = ∑ k<br />

j=1 µ2 k,j r2 j,j ≤ r 2 k,k + k−1<br />

4<br />

max( r 2 1,1, ..., r 2 k−1,k−1 ) ≤ k+3<br />

4<br />

M.<br />

Denn im LLL-Verfahren gilt stets max i ri,i 2 ≤ M := max( ‖b 1‖ 2 , ..., ‖b n ‖ 2 ). Für jeden<br />

Austausch b k−1 ↔ b k gilt nämlich (rk−1,k−1 neu )2 ≤ δ (rk−1,k−1 alt )2 , (rk,k neu)2<br />

≤ (rk−1,k−1 alt )2 .


36 KAPITEL 4. LLL-REDUZIERTE GITTERBASEN<br />

2. Nach Definition der Gram-Schmidt-Koeffizienten <strong>und</strong> der Cauchy-Schwarz-Ungleichung gilt<br />

|µ i,j | 2 = |〈b i, ̂b j 〉 2 |<br />

r 4 j,j<br />

≤ ‖b i‖ 2 ‖̂b j ‖ 2<br />

r 4 j,j<br />

= ‖b i‖ 2<br />

rj,j<br />

2 .<br />

Weil b 1 , ..., b k−1 LLL-reduziert ist, gilt<br />

|µ i,j | 2 ≤ i+3<br />

4 M r−2 j,j (wegen ‖b i ‖ 2 ≤ i+3<br />

4 M)<br />

≤ i+3<br />

4 M αj−1 r1,1 −2<br />

(nach Lemma 4.1.2)<br />

≤ i+3<br />

4 M αj−1 (weil ‖b 1 ‖ 2 = r 2 1,1 ∈ Z). □<br />

Lemma 4.2.5<br />

Während der Längenreduktion von b k auf Stufe k gilt |µ k,j | 2 ≤ k+3<br />

4<br />

M ( )<br />

9α k−1<br />

4 für j < k.<br />

Beweis. Der Reduktionsschritt<br />

b k := b k − ⌈µ k,i ⌋ b i<br />

für i < k<br />

der Längenreduktion wird begleitet von<br />

(4.3)<br />

µ k,j := µ k,j − ⌈µ k,i ⌋ µ i,j<br />

}{{}<br />

|µ i,j|≤1/2<br />

für j = 1, 2, ..., k − 1.<br />

Jeder dieser k − 1 Schritte verändert M k := max j


4.3. LLL-REDUKTION GANZZAHLIGER ERZEUGENDENSYSTEME 37<br />

Jede Iteration erfordert O(km) = O(nm) arithmetische Schritte. Damit ist die Schrittzahl höchstens<br />

O(n 3 m log 1/δ M).<br />

Nach Lemma 4.2.3, 4.2.4 <strong>und</strong> 4.2.5 sind die auftretenden Zahlen wie folgt beschränkt<br />

|µ k,j | 2 ≤ k+3<br />

4<br />

M ( )<br />

9α k−1<br />

4 , ‖bk ‖ 2 ≤ k k+3<br />

4<br />

M ( )<br />

9α k−1,<br />

4<br />

<strong>und</strong> für i < k:<br />

|µ i,j | 2 ≤ i+3<br />

4 M αj−1 , ‖b i ‖ 2 ≤ i+3<br />

4 M.<br />

Der Nenner von µ i,j ist absolut beschränkt durch D j−1 ≤ M. Damit ist der Zähler von µ i,j<br />

absolut beschränkt durch<br />

√<br />

n+3<br />

4<br />

M 1 2<br />

( 9α<br />

4<br />

) n−1<br />

2<br />

M.<br />

Zähler <strong>und</strong> Nenner von rj,j 2 = Dj<br />

D j−1<br />

sind durch M beschränkt. Damit sind alle im Verfahren<br />

auftretenden, ganzen Zahlen absolut beschränkt durch<br />

n M 1 2<br />

( 9α<br />

4<br />

) n−1<br />

2<br />

M<br />

<strong>und</strong> haben somit eine Bitlänge O(n + log 2 M) mit einer O-Konstante nahe 1,5 für δ ≈ 1.<br />

□<br />

Nach dem Austausch b k−1 ↔ b k kann man die Gram-Schmidt-Koeffizienten µ k−1,1 , ..., µ k−1,k−2 ,<br />

sowie rk−1,k−1 2 schnell aktualisieren. Dies erfordert nur O(1) Rechenschritte <strong>und</strong> O(k) Datentransporte<br />

während die Neuberechnung nach Lemma 4.2.2 O(k m) Rechenschritte erfordert.<br />

Lemma 4.2.7<br />

Der Austausch b k−1 ↔ b k bewirkt mit µ := µ k,k−1 dass<br />

1. µ neu = µ r2 k−1,k−1<br />

(r neu<br />

k−1,k−1 )2<br />

mit (r neu<br />

k−1,k−1 )2 = µ 2 r 2 k−1,k−1 + r2 k,k ,<br />

2. [µ neu<br />

k,i , µneu k−1,i ] = [µ k−1,i , µ k,i ] für i = 1, . . . , k − 2.<br />

Beweis. 1. Es gilt µ neu = 〈bneu neu<br />

k ,̂b k−1 〉<br />

= 〈π k−1(b neu<br />

k−1 ),π k−1(b neu<br />

k )〉<br />

.<br />

‖̂b neu<br />

k−1 ‖2<br />

‖̂b neu<br />

k−1 ‖2<br />

Weil 〈π k−1 (b k−1 ), π k−1 (b k )〉 bei der Vertauschung b k−1 ↔ b k erhalten bleibt, folgt dass µ neu =<br />

µ rk−1,k−1 2 /(rneu k−1,k−1 )2 . 2. ist offensichtlich.<br />

□<br />

4.3 LLL-Reduktion ganzzahliger Erzeugendensysteme<br />

Wir erweitern die LLL-Reduktion auf ganzzahlige Erzeugendensysteme b 1 , ..., b n ∈ Z m \ 0. Es<br />

genügt, die im LLL-Verfahren entstehenden Nullvektoren zu eliminieren. Der Nullvektor kann nur<br />

durch Längenreduktion von b k auf Stufe k entstehen.<br />

Korrektheit. Algorithmus 4.3.1 operiert auf Stufe k mit den rationalen Zahlen µ i,j , ri,i 2 für i, j ≤ k<br />

<strong>und</strong> den ganzzahligen Basisvektoren. Das Verfahren ist korrekt, weil die Vektoren b 1 , . . . , b k−1 auf<br />

Stufe k stets linear unabhängig <strong>und</strong> somit LLL-reduziert sind. Sind nämlich nach der Längereduktion<br />

von b k die Vektoren b 1 , . . . , b k erstmals linear abhängig, so gilt b k ∈ L(b 1 , . . . , b k−1 ). Die<br />

Längenreduktion von b k erzeugt den Nullvektor. Dieser wird sofort entfernt.


38 KAPITEL 4. LLL-REDUZIERTE GITTERBASEN<br />

Algorithmus 4.3.1 LLL-Reduktion von ganzzahligen Erzeugendensystemen<br />

EINGABE : Erzeugendensystem b 1 , ..., b n ∈ Z m \ {0}, δ mit 1 4 < δ < 1<br />

/∗ L := ∑ n<br />

i=1<br />

biZ ist ein <strong>Gitter</strong> ∗/<br />

1. k := 2, r 2 1,1 := ‖b 1 ‖ 2 /∗ k ist die Stufe ∗/<br />

2. WHILE k ≤ n DO<br />

/∗ b 1, . . . , b k−1 ist LLL-reduziert ∗/<br />

berechne µ k,j für j = 1, . . . , k <strong>und</strong> rk,k 2 gemäß Lemma 4.2.2<br />

Längenreduziere b k , aktualisiere µ k,1 , . . . , µ k,k−1<br />

IF b k = 0 THEN entferne b k aus dem Erzeugendensystem, n := n − 1 RETURN<br />

IF δ r 2 k−1,k−1 > r2 k−1,k + r2 k,k<br />

THEN vertausche b k−1 <strong>und</strong> b k /∗ kurz b k−1 ↔ b k ∗/<br />

IF k = 2 THEN aktualisiere r 2 1,1<br />

k := max(k − 1, 2)<br />

ELSE k := k + 1<br />

end while<br />

AUSGABE : LLL-Basis b 1 , ..., b n des <strong>Gitter</strong>s L.<br />

Laufzeitanalyse. Zu den Teilgittern L(b 1 , . . . , b i ) = ∑ i<br />

j=1 b jZ <strong>und</strong> den Gram-Determinanten<br />

D i = (det L(b 1 , . . . , b i )) 2 setzt man wieder<br />

Dann gilt<br />

M := max ‖b i ‖,<br />

i<br />

D := ∏ n−1<br />

i=1 D i ,<br />

M := max(‖b i ‖ 2 , D i ) .<br />

i<br />

#Austausche ≤ log 1/δ D Start ≤ (n − 1) log 1/δ M<br />

#Iterationen ≤ n − 1 + 2 #Austausche ≤ n + 2n log 1/δ M<br />

#arithm. Schritte = O(n 2 m log 1/δ M).<br />

Damit überträgt sich der Beweis von Satz 4.2.6. Insbesondere gelten die Zahlen-Schranken von<br />

Lemma 4.2.3 4.2.4 <strong>und</strong> 4.2.5 auch für die Werte im Verlauf von Algorithmus 4.3.1. Somit gilt der<br />

Satz 4.3.1<br />

Zu gegebenen ganzzahligen Vektoren b 1 , ..., b n ∈ Z m \ 0 liefert Algorithmus 4.3.1 eine LLLreduzierte<br />

Basis des von b 1 , ..., b n erzeugten <strong>Gitter</strong>s. Mit M := max i (‖b‖ 2 , D i ) macht das LLL-<br />

Verfahren höchstens O(n 2 m log 1/δ M) arithmetische Schritte auf den Koordinaten der b i <strong>und</strong> den<br />

rationalen Zahlen µ i,j , ri,i 2 . Die Bitlänge der auftretenden ganzen Zahlen, insbesondere der Zähler<br />

<strong>und</strong> Nenner von µ i,j , ri,i 2 ist höchstens O(n + log 2 M).<br />

4.4 LLL-Reduktion mit Gleitkomma-Arithmetik<br />

Für eine schnelle LLL-Reduktion muß man die Rechnung überwiegend in Gleitkomma-Arithmetik<br />

durchführen. Ein Schritt in Gleitkomma-Arithmetik geht in einem Maschinenzyklus, die Arithmetik<br />

auf langen ganzen Zahlen erfordert dagegen spezielle Software <strong>und</strong> ist recht langsam. Die<br />

Rechnung auf den Basisvektoren b 1 , . . . , b n wird in exakter Arithmetik durchgeführt. Für die<br />

Rechnung auf den rationalen Zahlen µ i,j , ri,i 2 für i, j ≤ k genügen dagegen gute Näherungen in<br />

Gleitkomma-Arithmetik.


4.4. LLL-REDUKTION MIT GLEITKOMMA-ARITHMETIK 39<br />

Definition 4.4.1 (Relativer Fehler)<br />

Eine Näherung f ′ zu f ∈ R hat relativen Fehler ε > 0, wenn |f − f ′ | ≤ ε min(|f|, |f ′ |). 1<br />

Wir betrachten die LLL-Reduktion nach Algorithmus 4.2.1 für den Fall, dass alle rationalen<br />

Zahlen µ i,j , rj,j 2 mit relativem Fehler ε berechnet werden. Dann führt die Längenreduktion des<br />

Vektors b k nur zu |µ k,j | ≤ 1 2 + ε anstelle von |µ k,j| ≤ 1 2<br />

für j = 1, . . . , k − 1. Wir vernachlässigen<br />

diese geringfügige Abschwächung der Längenreduktion.<br />

Satz 4.4.2<br />

Haben bei der LLL-Reduktion mit δ die rationalen Zahlen ‖π k−1 (b k−1 )‖ 2 , ‖π k−1 (b k )‖ 2 bei der<br />

Entscheidung über den Austausch b k−1 ↔ b k stets relativen Fehler ≤ ε, dann ist die Ausgabebasis<br />

LLL-reduziert mit δ − := δ(1 − ε)/(1 + ε). Die Anzahl der Austausche b k−1 ↔ b k ist höchstens<br />

n log 1/δ+ M mit δ + := δ(1 + ε)/(1 − ε), sofern δ + < 1.<br />

Beweis. Angenommen, bei der LLL-Reduktion mit δ − <strong>und</strong> exakter Rechnung erfolgt ein Austausch<br />

b k−1 ↔ b k . Dann gilt δ − ‖π k−1 (b k−1 )‖ 2 > ‖π k−1 (b k )‖ 2 . Für die Näherungen mit relativem<br />

Fehler ≤ ε folgt — es bezeichnet stets f ′ eine Näherung zu f:<br />

δ − (1 + ε)‖π k−1 b‖ ′2 > ‖π k−1 (b k )‖ ′2 (1 − ε).<br />

Somit erfolgt der Austausch b k−1 ↔ b k auch mit δ = δ − (1 + ε)/(1 − ε) <strong>und</strong> Näherungen. Weil<br />

alle Austausche b k−1 ↔ b k der LLL-Reduktion mit δ − <strong>und</strong> exakter Rechnung korrekt ausgeführt<br />

werden, ist die Ausgabebasis LLL-reduziert mit δ −<br />

Wir zeigen, dass die LLL-Reduktion mit Näherungen abbricht sofern δ + := δ(1+ε)/(1−ε) < 1.<br />

Es folgt nämlich ein Austausch b k−1 ↔ b k mit δ <strong>und</strong> Näherungen, dann gilt<br />

δ‖π k−1 (b k−1 )‖ ′2 > ‖π k−1 (b k )‖ ′2<br />

<strong>und</strong> somit δ(1+ε)‖π k−1 (b k−1 )‖ 2 > ‖π k−1 (b k )‖ 2 (1−ε). Dann wird D k−1 beim Austausch b k−1 ↔<br />

b k um den Faktor δ + = δ(1 + ε)/(1 − ε) erniedrigt, sofern δ + < 1. Damit ist die Anzahl der Austausche<br />

höchstens n log 1/δ+ (M).<br />

□<br />

Wegen Satz 4.4.2 gilt es bei der LLL-Reduktion mit Gleitkomma-Zahlen µ i,j , r j,j den relativen<br />

Fehler zu begrenzen. Wichtigste Punkte dabei sind<br />

1. War vor der Längenreduktion von b k auf Stufe k |µ k,j | ≈ 2 m , dann gehen bei der Reduktion<br />

auf |µ k,j | ≤ 1 2 die m + 1 führenden Bits der Gleitkomma-Zahl µ′ k,j<br />

verloren. Man kann den<br />

relativen Fehler von µ ′ k,j wieder klein machen durch Neuberechnung von µ k,j gemäß Lemma<br />

4.2.2.<br />

2. Bei der Neuberechnung von µ k,j gemäß Lemma 4.2.2 rechnet man 〈b ′ k , b′ j 〉 in Gleitkomma.<br />

Im Falle dass |b k , b j 〉| ≈ 2 −m ‖b k ‖‖b j ‖, gehen dabei m Präzisionsbits verloren. Ist m zu<br />

groß, rechnet man besser 〈b k , b j 〉 exakt.<br />

Mit diesen Maßnahmen haben Schnorr, Euchner [SE94] ein LLL-Verfahren implementiert. Dieser<br />

Algorithmus ist stabil, etwa bis zur Dimension 350.<br />

Auf Stufe k sind die µ i,j mit i, j > k im allgemeinen sehr groß. Statt der Schranke von<br />

Lemma 4.2.4 gilt nur |µ i,j | 2 ≤ i+3<br />

4 D j−1. Unsere Variante des LLL-Verfahrens vermeidet die Gram-<br />

Schmidt-Koeffizienten µ i,j mit i, j > k <strong>und</strong> rechnet auf Stufe k nur mit den Größen µ i,j , rj,j<br />

2 mit<br />

1 ≤ j ≤ i ≤ k nach den Formeln von Lemma 4.2.2. Diese sind geeignet für das Rechnen mit<br />

1 Wir definieren den relativen Fehler ε von f ′ zu f symmetrisch in f <strong>und</strong> f ′ , üblich ist es nur |f − f ′ | ≤ ε|f| zu<br />

fordern.


40 KAPITEL 4. LLL-REDUZIERTE GITTERBASEN<br />

Gleitkommazahlen µ i,j , r 2 j,j . Weil die Basis b 1, . . . , b k−1 stets LLL-reduziert ist, gilt nach Lemma<br />

4.1.2<br />

r 2 j,j ≥ ‖b 1 ‖ 2 α 1−j für j = 1, . . . , k − 1.<br />

Die Divisoren r 2 j,j bei der Berechnung von µ k,j gemäß Lemma 4.2.2 sind daher nicht beliebig klein.<br />

Dies ist wichtig für die Begrenzung von Gleitkommafehlern.<br />

4.5 LLL-Reduktion mit ganzzahliger Gram-Matrix<br />

Für die LLL-Reduktion einer Basismatrix B ∈ R m×n in ganzzahliger Arithmetik ist es nicht<br />

erforderlich, daß B ganzzahlig ist. Es genügt, die Ganzzahligkeit der Gram-Matrix B ⊤ B. Ist<br />

B ⊤ B ∈ Z n×n gegeben, so kann man mit den Einträgen von B ⊤ B rechnen. Genauer gesagt,<br />

genügen die ( )<br />

n+1<br />

2 Einträge 〈bi , b j 〉 für 1 ≤ i ≤ j ≤ n. Gegebenenfalls führt man auch die Transformationsmatrix<br />

T ∈ Z n×n mit, welche die Startbasis B Start in die aktuelle Basis B überführt,<br />

B = B Start T .<br />

Aktualisierung von B ⊤ B. Beim Schritt b k := b k − µb j der Längenreduktion von b k auf Stufe<br />

k wird B ⊤ B wie folgt aktualisiert:<br />

〈b k , b i 〉 := 〈b k , b i 〉 − µ〈b j , b i 〉 für i = 1, . . . , n, i ≠ k<br />

〈b k , b k 〉 := 〈b k , b k 〉 − 2µ〈b k , b j 〉 + µ 2 〈b j , b j 〉<br />

Die Aktualisierung von B ⊤ B bei der Längenreduktion von b k geht in O(kn) arithmetischen Schritten.<br />

Aktualisierung von T. Die Aktualisierung von T = [t i,j ] 1≤i,j∈n beim Schritt b k := b k − µ b j<br />

geht in O(n) Schritten<br />

t j,i := t j,i + µ t k,i für i = 1, . . . , n.<br />

Dann geht die Aktualisierung von T bei der Längenreduktion von b k in O(kn) arithmetischen<br />

Schritten. Beim Austausch b k−1 ↔ b k werden B ⊤ B <strong>und</strong> T durch O(n) Datentransporte aktualisiert,<br />

indem O(n) Einträge in B ⊤ B <strong>und</strong> T getauscht werden. Damit kostet eine Iteration der<br />

LLL-Reduktion O(n 2 ) Schritte <strong>und</strong> es folgt der<br />

Satz 4.5.1<br />

Zu gegebener ganzzahliger Gram-Matrix B ⊤ B ∈ Z n×n geht die LLL-Reduktion gemäß Alg. 4.2.1<br />

in O(n 3 log 1/δ M) arithmetischen Schritten auf ganzen Zahlen der Bitlänge O(n + log 2 M).<br />

Dabei ist M wie für ganzzahlige Eingabebasen erklärt. Im Falle einer ganzzahligen Basis B ∈ Z m×n<br />

mit m >> n ist es wegen Satz 4.5.1 günstig, vorweg B ⊤ B in O(n 2 m) Schritten zu berechnen. Die<br />

LLL-Reduktion geht so in O(n 2 m + n 3 log 1/δ M) Schritten, gegenüber O(n 2 m log 1/δ M) Schritten<br />

von Algorithmus 4.2.1.<br />

4.6 LLL-Basen mit großem Approximationsfaktor<br />

Wir konstruieren LLL-Basen mit großem Approximationsfaktor ‖b 1 ‖ /λ 1 , vergleiche Satz 4.1.4.<br />

Satz 4.6.1<br />

Jede <strong>Gitter</strong>basis b 1 , . . . , b n mit |µ i,j | = |r j,i /r i,i | ≤ 1 2 <strong>und</strong> |µ i+1,i| 2 ≤ 1 12<br />

für 1 ≤ i < j ≤ n <strong>und</strong><br />

(4.5)<br />

r 2 i+1.i+1 = r 2 i,i · (1 − µ 2 i+1,i) für i = 1, . . . , n − 1


4.6. LLL-BASEN MIT GROSSEM APPROXIMATIONSFAKTOR 41<br />

ist eine LLL-Basis mit γ n ‖b 1 ‖ 2 (<br />

≥ λ 2 12<br />

) n−1<br />

2<br />

1 11<br />

.<br />

Beweis. Die Basis ist LLL-reduziert mit δ = 1, weil nach (4.5):<br />

r 2 i+1,i+1 = r 2 + i, i + µ 2 i+1,ir2 i,i = r 2 i,i<br />

Es folgt: λ 2 ∏<br />

1 ≤ γ n (det L) 2 n<br />

n = γ n i=1 r 2 n<br />

i,i = γ n ‖b 1 ‖ 2 ∏ n−1<br />

i=1 (1 − µ2 i+1,i ) n−i<br />

n<br />

<strong>und</strong> somit für |µ i+1,i | 2 ≥ 1/12<br />

‖b 1 ‖ 2 /λ 2 1 ≥ · ( )<br />

∑ 1 n−1<br />

12 n<br />

11<br />

i=1 i /γ n ≥ · ( 12<br />

11<br />

) 1<br />

n( n−1<br />

2 ) /γn ≥ · ( 12<br />

11<br />

) n−1<br />

2<br />

/γ n . <br />

Beachte, für zufällige µ i+1,i ∈ R [− 1 2 , + 1 2 ] ist der Erwartungswert von µ2 i+1,i gerade 1 12 . Damit<br />

ist der Approximationsfaktor ‖b 1 ‖ /λ 1 für zufällige LLL-Basen im Mittel Θ( 12 n−1<br />

2<br />

11<br />

/n).


42 KAPITEL 4. LLL-REDUZIERTE GITTERBASEN


Kapitel 5<br />

Lösen von Subsetsum-Problemen<br />

durch kurze <strong>Gitter</strong>vektoren<br />

Wir lösen fast alle Subsetsum-Probleme kleiner Dichte d durch Vektoren der Länge λ 1 des Lagarias-<br />

Odlyzko-<strong>Gitter</strong>s <strong>und</strong> dann des CJLOSS-<strong>Gitter</strong>. Im CJLOSS-<strong>Gitter</strong> entsprechen Lösungen des<br />

Subsetsum-Problems besonders kurzen <strong>Gitter</strong>vektoren. Die Lösung gelingt für fast alle Subsetsum-<br />

Probleme der Dichte kleiner 0, 9408 <strong>und</strong> für Dimension n ≤ 80 in der Praxis sogar effektiv durch<br />

LLL-Reduktion. Fast alle CJLOSS-<strong>Gitter</strong> für Subsetsum-Probleme der Dichte d < 0, 9408 haben<br />

eine Packungsdichte △ mit<br />

1<br />

n log 2 △ ≥ −1.0158 für hinreichend grosse Dimension n.<br />

5.1 Das Subsetsum-Problem<br />

Definition 5.1.1 (Subsetsum-Problem, oder Knapsack- bzw. Rucksack-Problem.)<br />

• Gegeben: n ∈ N, Gewichte a 1 , . . . , a n ∈ N <strong>und</strong> s ∈ N<br />

n∑<br />

• Finde e ∈ {0, 1} n mit a i e i = s oder zeige, daß kein solcher Vektor existiert.<br />

i=1<br />

Nach Satz 11.2.5 auf Seite 97 ist das Subsetsum-Entscheidungsproblem N P-vollständig, sogar für<br />

beliebig kleine Dichte d.<br />

Annahmen. Der Gewichtsvektor (a 1 , . . . , a n ) variiere über [1, A] n ⊂ N n für ein beliebiges A ∈ N.<br />

Es wird die Existenz einer Lösung e = (e 1 , . . . , e n ) ∈ {0, 1} n vorausgesetzt.<br />

Die Wahrscheinlichkeiten <strong>und</strong> die ”<br />

fast alle“-Aussagen in diesem Kapitel beziehen sich auf<br />

zufällig gewählte (a 1 , . . . , a n ) ∈ R [1, A] n .<br />

Definition 5.1.2 (Inverses Subsetsum-Problem)<br />

Im inversen Problem wird s durch s := t − s mit t = ∑ n<br />

i=1 a i ersetzt.<br />

Jede Lösung e des Ausgangsproblems liefert eine Lösung e des inversen Problems <strong>und</strong> umgekehrt:<br />

e i := 1 − e i<br />

i = 1, . . . , n<br />

Eine der beiden Lösungen e, bzw e hat höchstens n/2 Einsen.<br />

Wir lösen das Subsetsum-Problem durch ein SVP-Orakel welches zur Basis des <strong>Gitter</strong>s L<br />

einen <strong>Gitter</strong>vektor der Länge λ 1 in Euklidischer Norm liefert. Wir zeigen, daß das SVP-Orakel<br />

für fast alle (a 1 , ..., a n ) ∈ [1, A] n entweder das gegebene Subsetsum-Problem oder sein inverses löst.<br />

Die Wahrscheinlichkeit eines Misserfolgs wird für zufällige (a 1 , ..., a n ) ∈ [1, A] n mit wachsendem n<br />

43


44KAPITEL 5. LÖSEN VON SUBSETSUM-PROBLEMEN DURCH KURZE GITTERVEKTOREN<br />

beliebig klein, wenn nur die Dichte d hinreichend klein ist.<br />

Dichte d des Subsetsum-Problems<br />

d :=<br />

n<br />

log 2 ( max<br />

i=1,...,n a i)<br />

<strong>und</strong> somit<br />

max<br />

i=1,...,n a i = 2 n/d .<br />

Für Dichte d ≫ 1 gibt es bei zufälliger Wahl der Gewichte a 1 , . . . , a n “in der Regel“ viele<br />

Lösungen. Am schwierigsten gelten zufällige Subsetsum-Probleme mit Dichte nahe bei 1.<br />

In kleiner Dimension n findet man einen kürzesten <strong>Gitter</strong>vektor durch <strong>Gitter</strong>basenreduktion<br />

siehe [SH95, SE94]. Dies führt zu Angriffen auf Krypto-Schemata, die auf Subsetsum-Problemen<br />

basieren. C.P. Schnorr <strong>und</strong> H.H. Hörner [SH95] haben das Chor-Rivest-System [CR88] mittels<br />

<strong>Gitter</strong>reduktion angegriffen.<br />

5.2 Die Lagarias-Odlyzko-<strong>Gitter</strong>basis<br />

J.C. Lagarias <strong>und</strong> A.M. Odlyzko [LaOd85] schlagen die folgende <strong>Gitter</strong>basis B vor um das Subsetsum-<br />

Problem durch ein SVP-Orakel zu L(B) zu lösen. Die letzte Zeile von B wird von uns zur Beweisvereinfachung<br />

hinzugefügt. Wir überarbeiten die Darstellung von [CJLOSS92].<br />

(5.1)<br />

⎡<br />

⎤<br />

1 0 · · · 0 0<br />

0 1 0 0<br />

.<br />

B = [b 1 , · · · , b n+1 ] :=<br />

.<br />

.. . .<br />

∈ Z (n+2)×(n+1)<br />

⎢ 0 0 1 0<br />

⎥<br />

⎣Na 1 Na 2 · · · Na n Ns⎦<br />

0 0 · · · 0 1<br />

<strong>und</strong> L(B) = L LO sei das zugehörige <strong>Gitter</strong>. Die Lösung e ∈ {0, 1} n von ∑ n<br />

i=1 x ie i = s liefert den<br />

Lösungsvektor<br />

(5.2)<br />

ê := ( ∑ n<br />

i=1 e ib i<br />

)<br />

− bn+1 = (e 1 , . . . , e n , 0, −1) t ∈ L LO .<br />

Entweder e oder e = 1 − e, die Lösung zum inversen Subsetsum-Problem, hat höchstens n/2<br />

Einsen <strong>und</strong> liefert damit einen Lösungsvektor in L LO der Länge ≤ √ n/2 + 1. Für jeden Vektor<br />

̂x = (x 1 , ..., x n+1 , −y) ∈ L LO mit ‖̂x‖ = λ 1 gilt somit für N ≥ √ n/2: ∑ i≠n+1 |x i| ≥ 2, x n+1 = 0.<br />

Satz 5.2.1<br />

Für n > n 0 <strong>und</strong> N ≥ √ n/2 werden fast alle lösbare Subsetsum-Probleme zu (a 1 , . . . , a n ) ∈ [1, A] n<br />

der Dichte d < 0, 6463 durch jeden Vektor der Länge λ 1 von L LO für s oder s = t − s gelöst.<br />

Beweis. Sei ‖e‖ 2 ≤ n/2. Das SVP-Orakel liefere den <strong>Gitter</strong>vektor ̂x := ∑ n<br />

i−1 x ib i − yb n+1 der<br />

Länge λ 1 mit y ≥ 0. Löst ̂x das Subsetsum-Problem nicht so gilt<br />

(5.3)<br />

‖̂x‖ = λ 1 ≤ √ n/2 + 1, ̂x ≠ ê.<br />

Wir analysieren die Wahrscheinlichkeit des Misserfolgs<br />

P (n) := Ws[ Es existiert ein ̂x ∈ L CJLOSS mit (5.3)]<br />

bezüglich zufälliger (a 1 , . . . , a n ) ∈ R [1, A] n . Für N ≥ √ n/2 wurde oben gezeigt dass x n+1 = 0<br />

<strong>und</strong> somit ∑ n<br />

i=1 a ix i = ys. Offenbar gilt 0 ≤ y < λ 1 ≤ √ n/2 + 1. Wir setzen x := (x 1 , ..., x n ).


5.3. DAS CJLOSS-GITTER 45<br />

Dann gilt<br />

[ ∃x ∈ Z n , x /∈ {0, ±e}, ‖x‖ ≤ ‖e‖<br />

P (n) ≤ Ws<br />

∃y ∈ Z : 0 ≤ y < √ ∑ n<br />

n/2 + 1,<br />

i=1 a i(x i − e i y) = 0<br />

]<br />

Faktor 1<br />

{ }} {<br />

∑n<br />

≤ Ws[<br />

i=1 a i(x i − e i y) = 0 für feste e, x, y mit ‖x‖ ≤ ‖e‖, x ≠ e, 0 ≤ y < √ ]<br />

n/2 + 1<br />

{<br />

· ∣ x ∈ Z n : ‖x‖ ≤ √ }∣ { ∣∣<br />

n/2 · ∣ y ∈ Z : 0 ≤ y < √ }∣ ∣∣<br />

n/2 + 1<br />

} {{ } } {{ }<br />

Faktor 2<br />

Faktor 3<br />

Wir schätzen die drei Faktoren nach oben ab:<br />

1. Für feste e 1 , ..., e n , x 1 , ..., x n , y ist die Gleichung ∑ n<br />

i=1 a i(x i − e i y) = 0 höchstens mit<br />

Wahrscheinlichkeit n/A erfüllt, denn falls x i ≠ e i y ist a i durch die a j mit j ≠ i bestimmt.<br />

2. J.C.Lagarias <strong>und</strong> A.M. Odlyzko [LaOd85] haben gezeigt, daß für hinreichend große n gilt:<br />

{<br />

∣ x ∈ Z n : ‖x‖ ≤ √ }∣ ∣∣<br />

n/2 ≤ 2<br />

c 0n<br />

mit c 0 = 1, 54725<br />

{<br />

3. Es gilt: ∣ y ∈ Z : 0 ≤ y < √ }∣ ∣∣ √<br />

n/2 + 1 ≤ n/2 + 1.<br />

Damit folgt P (n) ≤ 2c 0 n<br />

A n √ n/2 + 1. Wegen 1/d > 1, 547269 > c 0 <strong>und</strong> max i=1,...,n a i =<br />

2 n/d gilt A ≥ max a i ≥ 2 n/d <strong>und</strong> somit lim P (n) = 0 für d < 0, 6463.<br />

<br />

i=1,...,n n→∞<br />

5.3 Das CJLOSS-<strong>Gitter</strong><br />

M.J. Coster, A. Joux, B.A. LaMacchina, A.M. Odlyzko, C.P. Schnorr <strong>und</strong> J. Stern [CJLOSS92]<br />

ersetzen den Vektor b n+1 der Basis (5.1) durch b ′ n+1 := ( 1 2 , . . . , 1 2 , Ns, 1)t <strong>und</strong> erhöhen damit die<br />

Grenzdichte von 0, 6463 auf 0, 9408. Die CJLOSS-Basis ist<br />

⎡<br />

1 ⎤<br />

1 0 · · · 0<br />

2<br />

1<br />

0 1 0 2<br />

.<br />

B ′ = [b 1 , · · · , b ′ n+1] :=<br />

.<br />

.. . .<br />

(5.4)<br />

∈ 1 1<br />

0 0 1 2 Z(n+2)×(n+1)<br />

2<br />

⎢<br />

⎥<br />

⎣Na 1 Na 2 · · · Na n Ns⎦<br />

0 0 · · · 0 1<br />

<strong>und</strong> L CJLOSS = L(B ′ ) sei das zugehörige <strong>Gitter</strong>. Die letzte Zeile von B ′ dient der Beweisvereinfachung.<br />

Die Lösung e ∈ {0, 1} n des Subsetsum-Problems liefert den Lösungsvektor<br />

(5.5)<br />

ê ′ := ∑ n<br />

i=1 e ib i − b ′ n+1 = (e 1 − 1 2 , e 2 − 1 2 , . . . , e n − 1 2 , 0, −1)t ∈ L CJLOSS<br />

Offenbar gilt ‖ê ′ ‖ = √ n/4 + 1 <strong>und</strong> damit ist der Lösungsvektor ê ′ der CJLOSS-Basis bis zu einem<br />

Faktor √ 2 kleiner als der Lösungsvektor ê der Lagarias-Odlyzko-Basis.<br />

Satz 5.3.1<br />

Für n > n 0 <strong>und</strong> N ≥ √ n/4 werden fast alle lösbare Subsetsum-Probleme zu (a 1 , . . . , a n ) t ∈ [1, A] n<br />

der Dichte d < 0, 9408 durch jeden Vektor der Länge λ 1 von L CJLOSS gelöst.<br />

Beweis. Das SVP-Orakel liefere ̂x ′ = ∑ n<br />

i=1 y ib i −yb ′ n+1 = (x 1 , ..., x n+2 ) t ∈ L CJLOSS mit y ≥ 0.<br />

Bei Misserfolg gilt<br />

(5.6)<br />

‖̂x ′ ‖ = λ 1 ≤ ‖ê ′ ‖ = √ n/4 + 1, ̂x ′ ≠ ê ′ , 0 ≤ y < λ 1


46KAPITEL 5. LÖSEN VON SUBSETSUM-PROBLEMEN DURCH KURZE GITTERVEKTOREN<br />

Beh.: x n+1 = N( ∑ n<br />

i=1 a iy i − ys) = 0.<br />

Denn aus x n+1 ≠ 0 <strong>und</strong> N ≥ √ n/4 <strong>und</strong> weil offenbar x i ≠ 0 für zwei i ≠ n+1 folgt ‖̂x ′ ‖ 2 > n 4 +1,<br />

ein Widerspruch. Ferner gilt:<br />

(5.7) x i = y i − 1 2 y für i = 1, . . . , n<br />

∑ n<br />

(5.8)<br />

i=1 a i(y i − ye i ) = 0<br />

Es bezeichne P ′ (n) := Ws[ ∃̂x ′ ∈ L CJLOSS mit (5.6), (5.7), (5.8) ] die Wahrscheinlichkeit<br />

des Misserfolgs für zufällige (a 1 , . . . , a n ) t ∈ R [1, A] n , ferner 1/2 := ( 1 2 , ..., 1 2 )t , x :=<br />

(x 1 , ..., x n ) t ∈ Z n − 1/2 · {0, 1}. Offenbar gilt ̂x ′ ≠ ê ′ gdw ∃j : y j ≠ ye j . Zwar hängen x, y von den<br />

a i ab, werden aber in der Ws-Analyse fixiert. Es folgt<br />

P ′ (n) ≤ Ws<br />

Faktor 1<br />

{<br />

[<br />

}} {<br />

für feste e ∈ {0, 1} n , x ∈ Z n − 1/2 · {0, 1}, y ∈ Z, 0 ≤ y < √ ]<br />

n/4 + 1,<br />

∃j : y j ≠ ye j , ‖x‖ ≤ √ n/4, ∑ n<br />

i=1 a i(y i − ye i ) = 0<br />

{<br />

· ∣ x ∈ Z n − 1/2 · {0, 1} : ‖x‖ ≤ √ ∣ { ∣∣<br />

n/4}<br />

· ∣ y ∈ Z : 0 ≤ y < √ ∣∣<br />

n/4 + 1}∣<br />

} {{ } } {{ }<br />

Faktor 2<br />

Faktor 3<br />

Wir schätzen die drei Faktoren nach oben ab:<br />

1. Für festes j mit y j ≠ ye j ist die Gleichung ∑ n<br />

i=1 a i(y i − ye i ) = 0 mit Wahrscheinlichkeit<br />

≤ 1/A erfüllt, denn a j ist durch die a i mit i ≠ j bestimmt. Somit für alle j: Faktor 1 ≤ n/A.<br />

2 J.E. Mazo <strong>und</strong> A.M. Odlyzko [MaOd90] beweisen für hinreichend grosses n <strong>und</strong> alle u ≥ 0<br />

{<br />

∣ x ∈ Z n + 1/2 · {0, 1} : ‖x‖ ≤ √ }∣ ∣∣<br />

n/4 ≤ e δ(u)n + 2 n für δ(u) = u/4 + ln θ(e −u ),<br />

θ(z) := 1+2 ∑ ∞<br />

k=1 zk2 . Für u o = 1, 8132 gilt δ ≈ 0, 7367 <strong>und</strong> e δ(uo)n ≤ 2 c′ o n mit c ′ o = 1.0629 · · · .<br />

3. Offenbar gilt Faktor 3 ≤ 1 + √ n/4 + 1.<br />

Somit gilt P ′ (n) ≤ (1 + √ n/4 + 1) 2 c′ 0 n n/A <strong>und</strong> wegen 1/d > 1, 0628 · · · > c ′ 0 <strong>und</strong><br />

A ≥<br />

max a i ≥ 2 n/d folgt die Behauptung<br />

i=1,...,n<br />

lim P ′ (n) = 0.<br />

n→∞<br />

Towards NP-hardness of SVP. Die Menge der lösbaren Subsetsum-Probleme der Dichte<br />

d < 0.9408 ist NP-vollständig. Satz 5.3.1 liefert eine Polynomialzeit-Transformation von Subsetsumproblemen<br />

mit d < 0, 9408 auf SVP, mit Ausnahme der Misserfolge. Wir eliminieren die<br />

Misserfolge für lösbare Subsetsumprobleme mit höchstens c(a, s) = O(1) linear unabhängigen<br />

Vektoren b = ∑ n<br />

i=1 y ib i − yb ′ n+1 in L = L CJLOSS der Länge ‖b‖ 2 ≤ n 4 + 1 mit b ≠ ±ê′ .<br />

Für c = c(a, s) gibt es 1 ≤ i 1 < · · · < i c ≤ n so dass die Vektoren ∑ c<br />

k=1 y i k<br />

b ik für c solcher b<br />

linear unabhängig von ∑ c<br />

k=1 e i k<br />

b ik sind. Es werden i 1 , ...., i c <strong>und</strong> e i1 , ..., e ic ∈ {0, 1} erraten. Das<br />

<strong>Gitter</strong> L wird zu L red <strong>und</strong> das Subsetsumproblem mit [1, n] red := [1, n] − {i 1 , ..., i c } zu<br />

∑i∈[1,n] red<br />

a i e i = s red , s red := s − ∑ c<br />

k=1 a i k<br />

e ik<br />

einem Subsetsumproblem der Dimension n − c reduziert. In L red ist b ′ n+1 durch b ′red<br />

n+1 mit s red<br />

ersetzt. Das SVP-Orakel liefert zum <strong>Gitter</strong> L red den Vektor ê ′ red = ∑ i∈[1,n] red<br />

a i e i − b ′red<br />

n+1 der<br />

Länge √ (n − c)/4 + 1. Entscheidend ist, dass die störenden kurzen Vektoren b ≠ ±ê ′ von L durch<br />

die Reduktion stark vergrössert werden, sofern ∑ c<br />

k=1 a i k<br />

(y ik − e ik ) ≠ 0. Dies beweist Teil 1. von<br />

Satz 5.3.2<br />

1. Durch 2 c( n<br />

c)<br />

Aufrufe des SVP-Orakels auf die <strong>Gitter</strong> Lred zu L = L CJLOSS mit 1 ≤ i 1 < · · · <<br />

i c ≤ n <strong>und</strong> e i1 , ..., e ic ∈ {0, 1} werden alle Subsetsumprobleme mit c(a, s) ≤ c für alle d gelöst.<br />

2. Der Anteil der Subsetsumprobleme mit c(a, s) > c unter den (a, s) ∈ [1, A] n [1, n 2<br />

A], A ≥ 2·2n/d<br />

ist höchstens P ′ (n) c .


5.4. GITTER MIT GROSSER PACKUNGSDICHTE 47<br />

Beweis. 2. Wir schätzen den Anteil der (a, s) ∈ [1, A] n [1, n 2<br />

A] mit c(a, s) > c ab, analog<br />

zur oberen Schranke von P ′ (n) im Beweis von Satz 5.3.1. Es gibt c(a, s) linear unabhängige<br />

(y 1,j , ..., y n,j , y j ) t ∈ Z n+1 für j = 1, ..., c mit b j = ∑ n<br />

i=1 y i,jb i − y j b ′ n+1 ≠ ±ê ′ <strong>und</strong> ‖b j ‖ 2 ≤ n 4 + 1.<br />

Für diese c Vektoren b j ∈ L gilt ∑ n<br />

i=1 a iy i,j = y j s <strong>und</strong> somit<br />

∑ n<br />

(5.8)<br />

i=1 a i(y i,j − y j e i ) = 0 für j = 1, ..., c<br />

Diese Gleichungen bestimmen c der a 1 , ..., a n durch die übrigen n − c der a i . Der Anteil der<br />

(a 1 , ..., a n ) ∈ [1, A] n der Dichte d < 0, 9408, der diese c Gleichungen (5.8) erfüllt, ist dem Beweis<br />

von Satz 5.3.1 folgend kleiner gleich P ′ (n) c mit lim P ′ (n) = 0.<br />

<br />

n→∞<br />

Fakt Nach Satz 5.3.2 löst das SVP-Orakel alle Subsetsumprobleme mit konstantem c(a, s) durch<br />

polynomial viele Aufrufe. Damit ist der Anteil der Misserfolge bei der Reduktion von Subsetsum<br />

mit d < 0, 9408 auf SVP vernachlássigbar klein, d.h. kleiner als jeder polynomiale Bruchteil.<br />

Satz 5.3.3<br />

Lösbare Subsetsum-Probleme werden für n ≥ n o <strong>und</strong> N ≥ 1, 163 n−1√ n/4 + 1 für fast alle<br />

(a 1 , . . . , a n ) t ∈ [1, A] n der Dichte d < 4, 8/n durch den ersten Vektor jeder LLL-Basis zu δ = 0, 99<br />

von L CJLLOSS gelöst, <strong>und</strong> zwar in Polynomialzeit.<br />

Beweis. (Bezeichnungen wie im Beweis von Satz 5.3.1, B ′ = [b 1 .....b ′ n+1] ist die Basis (5.4) )<br />

Für den ersten Vektor b einer LLL-Basis von L CJLOSS gilt ‖b‖ 2 ≤ λ 2 1/(δ−1/4) n−1 nach Satz 4.1.4<br />

<strong>und</strong> somit für δ = 0, 99 dass ‖b‖ ≤ 1, 163 n−1 λ 1 ≤ 1, 163 n−1√ n/4 + 1. Sei b = ∑ n<br />

i=1 y ib i − yb ′ n+1<br />

mit y ≥ 0. Aus N ≥ 1, 163 n−1√ n/4 + 1 folgt ∑ n<br />

i=1 a iy i = ys <strong>und</strong> somit gilt (5.8). Das x von (5.7)<br />

erfüllt ‖x‖ < √ n/4 + 1 · 1, 163 n .<br />

J.C. Lagarias <strong>und</strong> A.M. Odlyzko [LaOd85] zeigen im Anschluss an Theorem 3.5 für das <strong>Gitter</strong><br />

L LO : der Anteil der (a 1 , . . . , a n ) t ∈ [1, A] n der Dichte d < 4, 8/n mit b ≠ ê für den Lösungsvektor<br />

ê ∈ L LO wird für n → ∞ beliebig klein. Damit gilt für fast alle (a 1 , ..., a n ) ∈ [1, A] n dass b = ê.<br />

Die Grenzdichte 4, 8/n erhöht sich weiter durch stärkere Reduktion als LLL.<br />

<br />

Für n ≤ 80 gilt Satz 5.3.2 in der Praxis schon für N = 16 <strong>und</strong> d < 0, 9408 für den Hauptfall<br />

dass ∑ n<br />

i=1 e i = n/2. Hierzu ersetzt man die LLL-Reduktion durch die stärkere BKZ-Reduktion<br />

mit Blockweite 32 <strong>und</strong> erweitert B ′ durch die (n + 3)-te Zeile (N, ..., N, N 1 2<br />

). Siehe [SS12].<br />

5.4 <strong>Gitter</strong> mit großer Packungsdichte<br />

Zu a = (a 1 , . . . , a n ) ∈ Z n bezeichne L a = L(B a ) ⊂ R n+1 das <strong>Gitter</strong> mit Basismatrix<br />

⎡<br />

⎤<br />

1<br />

. .. L a := L(B a ). B a = ⎢<br />

O<br />

⎥<br />

⎣ O 1 ⎦ ∈ ∑<br />

n<br />

R(n+1)n , det B t aB a = 1 + N 2 i=1<br />

Na 1 · · · Na n<br />

Korollar 5.4.1<br />

Für n ≥ n 0 <strong>und</strong> N ≥ √ n/4 gilt λ 1 (L a ) ≥ √ n/4 für fast alle a ∈ [1, A] n der Dichte d < 0, 9408.<br />

Beweis. B a = [b 1 , ..., b n ] ist die Basis (5.4) ohne die letzte Zeile <strong>und</strong> letzte Spalte. Ergänze B a zu<br />

einer CJLOSS-Basis (ohne letzte Zeile) mit lösbarem Subsetsum-Problem. Im Fall λ 1 (L a ) < √ n/4<br />

gibt es einen <strong>Gitter</strong>vektor in L CJLOSS der Länge λ 1 , der nicht die vorgegebene Subsetsum-Lösung<br />

e liefert. Dies ist nach Satz 5.3.1 für fast alle a mit Dichte d < 0, 9408 ausgeschlossen. Satz 5.3.1<br />

gilt auch ohne die letzte Zeile der Basismatrix (5.4). Der Beweis in [CJLOSS92] kommt ohne diese<br />

letzte Zeile aus. Dann gilt für den Lösungsvektor ê ′ ∈ L CJLOSS dass ‖ê ′ ‖ 2 = n/4.<br />

<br />

a 2 i


48KAPITEL 5. LÖSEN VON SUBSETSUM-PROBLEMEN DURCH KURZE GITTERVEKTOREN<br />

Satz 5.4.2<br />

Für n ≥ n 0 , N 2 = n 4 haben fast alle a ∈ [1, 2 · 2n/0,9408 ] n Dichte d < 0, 9408 <strong>und</strong> L a hat Packungsdichte<br />

△ mit<br />

1<br />

n log 2 △ ≥ −1, 01583.<br />

Beweis. Für fast alle a ∈ [1, 2 · 2 n/0,9408 ] n gilt d =<br />

n<br />

log 2 ( max<br />

i=1,...,n<br />

λ 2 1 ≥ n/4 für fast alle a ∈ [1, A] n . Wegen 4N 2 n = n 2 sowie n 1/n = 1 + o(1) <strong>und</strong><br />

(det L a ) 2 = 2 2n (1 + N 2∑ n<br />

i=1 a2 i ) ≤ 22n (1 + 4N 2 n2 2n/d )<br />

folgt für n ≥ n 0 dass λ 2 1/(det(L a ) 2/n ≥ n 2 −2−2/0,9408 (1 − o(1)) <strong>und</strong> somit<br />

ai)<br />

< 0, 9408. Nach Kor. 5.4.1 gilt<br />

△ (L a ) = 2 −n λ n 1 V n / det L a > (n 2 −2−2/0,9408 (1 − o(1)) eπ<br />

2n n)n/2 > 0.4945438 n > 2 −1.01583 n . <br />

Vergleich mit expliziten Konstruktionen dichter <strong>Gitter</strong>. Die unendlichen Klassenkörpertürme<br />

von Gold, Shafarevitch, Martinet, liefern eine unendliche Folge von <strong>Gitter</strong>n mit<br />

1<br />

n log 2 △ ≥ −2, 218,<br />

siehe [CoSl88, Kap. 8, Sektion 7.4]. Eine praktische Methode zum Auffinden solcher <strong>Gitter</strong> ist<br />

nicht bekannt. Explizite Konstruktionen von <strong>Gitter</strong>n gibt es [CoSl88], so dass<br />

1<br />

n log 2 △ ≥ −1, 2454 für n ≤ 98328,<br />

1<br />

n log 2 △ ≥ −2, 0006 für n ≤ 10 51 .<br />

Verglichen damit kann man nach Satz 5.4.2 die grössere Dichte<br />

1<br />

n log 2 △ ≥ −1, 0158<br />

für beliebige n <strong>und</strong> fast alle a = (a 1 , . . . , a n ) ∈ [0, A] n der Dichte d < 0, 9408 leicht erreichen. Man<br />

wählt a zufällig <strong>und</strong> verifiziert dass λ 1 (L a ) = n/4.<br />

Dichteste bekannte <strong>Gitter</strong>packung. J.A. Rush [R89] zeigt die Existenz von <strong>Gitter</strong>packungen<br />

der Dimension n = p 2 mit p prim <strong>und</strong> Packungsdichte<br />

1<br />

n log 2(△) ≥ −1 − 2(log 2 e)/e 2π2 ) −1, 000000007719...<br />

Dies gilt für die Konstruktion A von [CoSl88] angewandt auf fehlerkorrigierende [n, k, d, p, H]-<br />

Codes. Das Ergebnis ist nicht konstruktiv aber der Suchraum für geeignete Codes ist erheblich<br />

kleiner als beim Beweis der Minkowski-Schranke 1 n log 2 △ ≥ −1.<br />

Die obere Schranke für P ′ (n) ist scharf <strong>und</strong> die Grenzdichte d = 0, 9408... maximal.<br />

Angenommen der kürzeste <strong>Gitter</strong>vektor ̂x ′ = ∑ n<br />

i=1 y ib i − yb ′ n+1 = (x 1 , ..., x n+2 ) t von L CJLOSS<br />

löst das Subsetsum-Problem zu a = (a 1 , ..., a n ), s nicht. Dann gilt x n+1 = 0 <strong>und</strong> der Lösungsvektor<br />

ê ′ := ∑ n<br />

i=1 e ib i − b ′ n+1 ∈ L CJLOSS erfüllt (5.6).<br />

Satz 5.3.1 schätzt die Anzahl der Lösungen (x 1 , ..., x n , y) ∈ 1 2 Zn+1 mit ( √ n/4 + 1)2 c′ 0 n ab.<br />

Ferner ist für x i = y i − y 2 die Wahrscheinlichkeit für ∑ n<br />

∑ i=1 a i(y i − ye i ) = 0 höchstens n/A. Wegen<br />

n<br />

i=1 a i(y i − ye i ) = 0 schränken die Bedingungen<br />

a j = −<br />

n∑<br />

i=1,i≠j<br />

a i<br />

y i − ye i<br />

y j − ye j<br />

∈ [1, A] ∩ N für alle j mit y j ≠ ye j<br />

die Anzahl der (x 1 , ..., x n , y) weiter ein. Für die Varianz V (X) = E[(X − E(X) ) 2 ] von X =<br />

− ∑ n<br />

i=1,i≠j a i yi−yei<br />

y j−ye j<br />

gilt V (X) = O(A 2√ n) . Daraus folgt Ws[ X ∈ [1, A] ] ≥ Θ(1/ √ n). Damit ist<br />

Ws[ X ∈ [1, A] ∩ N ] so groß dass dies c ′ 0 nicht erniedrigt. Somit ist die Grenzdichte d = 0, 9408...<br />

maximal.


Kapitel 6<br />

HKZ- <strong>und</strong> Block-Reduktion von<br />

<strong>Gitter</strong>basen<br />

Die LLL-Reduktion in Kapitel 4 liefert in Polynomialzeit LLL-Basen b 1 , ..., b n mit exponentiellen<br />

Approximationsfaktoren ‖b 2 i ‖/λ2 i ≤ α n für i = 1, ..., n. Die HKZ-Reduktion nach Hermite<br />

<strong>und</strong> Korkine-Zolotareff liefert dagegen in Exponentialzeit HKZ-Basen b 1 , ..., b n mit polynomialen<br />

Approximationsfaktoren ‖b i ‖ 2 /λ 2 i ≤ i+3<br />

4<br />

für i = 1, ..., n. Schnorr [S87] entwickelt eine Hierarchie<br />

von Block-Reduktionsverfahren, welche LLL- <strong>und</strong> HKZ-Reduktion überbrückt, derart dass höhere<br />

Laufzeit die Approximationsfaktoren erniedrigt.<br />

6.1 HKZ-Basen<br />

Zur Basis b 1 , . . . , b n des <strong>Gitter</strong>s L sind die projizierten <strong>Gitter</strong> L i für i = 1, . . . , n erklärt durch<br />

L i = π i (L) ∈ span(b 1 , ..., b i−1 ) ⊥ .<br />

Insbesondere gilt für jede GNF B = R ∈ R n×n dass<br />

π i : (r 1 , ..., r n ) t ↦→ (0, ..., 0, r i , ..., r n ) t ∈ 0 i−1 R n−i+1 .<br />

C. Hermite [He1850] sowie unabhängig A. Korkine <strong>und</strong> G. Zolotareff [KZ1873, KZ1877] definierten<br />

HKZ-Basen in der Sprache quadratischer Formen.<br />

Definition 6.1.1 (HKZ-Basis)<br />

Eine LLL-Basis B = QR ∈ R m×n ist HKZ-Basis, wenn für R = [r i,j ] ∈ R n×n gilt:<br />

r i,i = λ 1 (L i (B)) für i = 1, . . . , n.<br />

Für jede HKZ-Basis [b 1 , . . . , b n ] = B = QR sind auch π j {b j , . . . , b n } <strong>und</strong> [r i,l ] j≤k,l≤n für<br />

1 ≤ j ≤ n HKZ-Basen. Es gilt λ 1 (L i (B)) = λ 1 (L i (R)). Jede -Basis approximiert λ 2 i mit Approximationsfaktor<br />

i+3<br />

4<br />

(fast so gut wie der Approximationsfaktor max(1, i/4) von Satz 2.1.5):<br />

Satz 6.1.2<br />

Für jede HKZ-Basis b 1 , . . . , b n von L gilt<br />

4<br />

i+3 ≤ ‖b i‖ 2 /λ i (L) 2 ≤ i+3<br />

4<br />

für i = 1, . . . , n.<br />

Dagegen gilt für LLL-Basen b 1 , . . . , b n nach Satz 4.1.4 mit α = 1<br />

δ−1/4<br />

α 1−i ≤ ‖̂b i ‖ 2 /λ i (L) 2 ≤ ‖b i ‖ 2 /λ i (L) 2 ≤ α n−1 .<br />

49


50 KAPITEL 6. HKZ- UND BLOCK-REDUKTION VON GITTERBASEN<br />

Beweis.<br />

(6.1)<br />

Obere Schranke ‖bi‖2<br />

λ i(L) 2 ≤ i+3<br />

4 : Für das <strong>Gitter</strong> L i = π i (L) gilt<br />

‖̂b i ‖ = r i,i = λ 1 (L i ) ≤ λ i (L),<br />

denn es gibt linear unabhängige <strong>Gitter</strong>vektoren a 1 , . . . , a i ∈ L mit ‖a 1 ‖ ≤ · · · ≤ ‖a i ‖ ≤ λ i (L).<br />

Daher gilt π i (a j ) ≠ 0 für ein j ≤ i, also π i (a j ) ∈ L i \ {0} <strong>und</strong> somit λ 1 (L i ) ≤ ‖π i (a j )‖ ≤ λ i (L).<br />

Für die HKZ-Basis R = [r 1 , . . . , r n ] gilt nach (6.1) dass<br />

i∑<br />

∑i−1<br />

‖b i ‖ 2 = ‖r i ‖ 2 = rj,i 2 ≤ ri,i 2 + 1 4<br />

rj,j 2 ≤ i+3<br />

4 λ i(L) 2 .<br />

j=1<br />

Untere Schranke 4<br />

i+1 ≤ ‖bi‖2<br />

λ i(L) 2 : Nach Definition der HKZ-Basis gilt für j ≤ i:<br />

j=1<br />

r 2 j,j = λ 1 (L j ) 2 ≤ ‖π j (b i )‖ 2 ≤ ‖b i ‖ 2 .<br />

Somit<br />

‖b j ‖ 2 = ∑ j<br />

l=1 r2 l,j ≤ r2 j,j + 1 ∑ j−1<br />

4 l=1 r2 l,l ≤ j+3<br />

4 ‖b i‖ 2 .<br />

Es folgt die Behauptung λ i (L) 2 ≤ max j=1,...,i ‖b j ‖ 2 ≤ i+3<br />

4 ‖b i‖ 2 . <br />

Zu HKZ-Basen siehe auch [LLS90] von J.C. Lagarias, H.W. Lenstra <strong>und</strong> C.P. Schnorr.<br />

6.2 Semi Block 2k-Reduktion<br />

Block-reduzierte <strong>Gitter</strong>basen bilden eine Brücke, die HKZ-Basen <strong>und</strong> LLL-Basen verbindet, siehe<br />

C.P. Schnorr [S87] [S94]. Während die Algorithmen zur HKZ-Reduktion in Dimension n expontielle<br />

Laufzeit in n haben, ist die Block-Reduktion für Blockweite 20 ähnlich effizient wie die schwächere<br />

LLL-Reduktion. Die Variante der Semi-Block-2k-Reduktion hat polynomielle Laufzeit [S87].<br />

Einer GNF R ∈ R n×n mit n = hk ordnen wir die Untermatrizen R l = [r i,j ] lk−k δ k B Dalt l<br />

für l = 1, ..., h − 1.<br />

Die Bedingung 2. impliziert dass δ k B (D l/D l+1 ) 1/k ≤ β k für l = 1, ..., h − 1 für das folgende β k .<br />

Definition 6.2.2<br />

α k := max r 2 1,1/r 2 k,k<br />

maximiert über alle HKZ-GNF R ∈ Rk×k<br />

β k := max ( D 1 /D 2<br />

) 1/k<br />

maximiert über alle HKZ-GNF R ∈ R 2k×2k .<br />

Für das α = 4 3 = 1/(δ L − 1/4) der LLL-Basen mit δ L = 1 gilt offenbar α 2 = β 1 = 4 3<br />

. Ferner gilt<br />

Damit gilt β 1/k<br />

k<br />

→ 0 für k → ∞.<br />

α k ≤ k 1+ln k<br />

[S87]<br />

k/12 ≤ β k ≤ (1 + k/2) 2 ln 2+1/k . [GHKN06]


6.2. SEMI BLOCK 2K-REDUKTION 51<br />

Satz 6.2.3<br />

Für jede Semi Block 2k-Basis B = QR ∈ R m×n , n = hk zu δ B > 0 von L gilt<br />

1. ‖b 1 ‖ 2 ≤ γ k (β k /δ k B ) h−1<br />

2 (det L) 2/n ,<br />

2. ‖b 1 ‖ 2 ≤ γ k α k (β k /δ k B )h−1 λ 2 1.<br />

Im Vergleich gilt für LLL-Basen<br />

‖b 1 ‖ 2 ≤ α n−1<br />

2 (det L) 2/n , ‖b 1 ‖ 2 ≤ α n−1 λ 2 1.<br />

Für Semi Block 2k-Basen wird das α von LLL-Basen ersetzt durch β 1/k<br />

k<br />

/δ B = o(1) für n → ∞.<br />

Beweis. 1. Sei D l := (det R l ) 2 . Für die HKZ-Basis R 1 ∈ R k×k gilt ‖b 1 ‖ 2 ≤ γ k D 1/k<br />

1 .<br />

Nach Definition von β k <strong>und</strong> Definition 6.2.1, Teil 2 gilt D l ≤ (β k /δ k B )k D l+1 .<br />

Es folgt durch Induktion über l für l = 1, ..., h = n/k<br />

(6.2)<br />

‖b 1 ‖ 2 ≤ γ k D 1/k<br />

1 ≤ γ k (β k /δ k B) l−1 D 1/k<br />

l<br />

.<br />

Wir ziehen aus dem Produkt dieser h Ungleichungen die h-te Wurzel. Dies liefert die Behauptung:<br />

‖b 1 ‖ 2 ≤ γ k (β k /δ k B) (h 2) 1 h (det L)<br />

1<br />

hk<br />

= γk (β k /δ k B) h−1<br />

2 (det L) 2/n .<br />

2. Sei b = ∑¯n<br />

i=1 u ib i ∈ L mit ‖b‖ = λ 1 , u¯n ≠ 0. O.B.d.A. sei ¯n > n − k. Es gilt<br />

‖b 1 ‖ 2 ≤ γ k (β k /δ k B) h−1 D 1/k<br />

h<br />

= γ k (β k /δ k B) h−1 (r 2 n−k+1,n−k+1 · · · r 2 n,n) 1/k ,<br />

Es folgt aus r 2¯n−i,¯n−i /r2¯n,¯n ≤ α i+1 ≤ α k für n − k < ¯n − i wegen α i+1 ≤ α i+2 dass<br />

‖b 1 ‖ 2 ≤ γ k (β k /δ k B ) h−1<br />

2 α k r 2 n,n ≤ γ k (β k /δ k B ) h−1<br />

2 α k λ 2 1 wegen |u¯n | ≥ 1, ¯n > n − k. <br />

Algorithmus 6.2.1, Semi Block 2k-Reduktion<br />

EINGABE LLL-Basis B ∈ Z m×n zu δ, α, n = hk <strong>und</strong> δ B mit 0 < δ B < 1.<br />

1. HKZ-reduziere B 1 = [b 1 , ..., b k ] <strong>und</strong> R 1 , l := 1<br />

2. HKZ-reduziere R l+1 zu R l+1 T k mit T k ∈ GL k (Z).<br />

B l+1 := B l+1 T k , erneuere R l,l+1 .<br />

3. HKZ-reduziere R l,l+1 zu R l,l+1 T 2k mit T 2k ∈ GL 2k (Z).<br />

IF D neu<br />

l<br />

≤ δ k2<br />

B D alt<br />

l<br />

THEN [B l<br />

, B l+1 ] := [B l , B l+1 ]T 2k , l := max(l − 1, 1)<br />

ELSE l := l + 1.<br />

IF l < h THEN GO TO 2 ELSE längenreduziere B.<br />

AUSGABE Semi Block 2k-Basis B.<br />

Korrektheit. Nach Schritt 3 ist b 1 , ..., b kl nach Längenreduktion eine Semi Block 2k-Basis.<br />

Satz 6.2.4<br />

1. Alg. 6.2.1 macht höchstens ( 2h2<br />

k<br />

+h) log 1/δ B<br />

M Iterationen für den Wert M := max(‖b 1 ‖ , ..., ‖b n ‖)<br />

der Eingabebasis. Eine Iteration geht in (2k) k/4 (2k) O(1) arithmetischen Schritten.<br />

2. Alg. 6.2.1 macht höchstens h3<br />

12 log 1/δ B<br />

α Iterationen bis D B ≤ 1 erreicht ist.


52 KAPITEL 6. HKZ- UND BLOCK-REDUKTION VON GITTERBASEN<br />

Beweis.<br />

1. Jeder Schritt 3 mit l := max(l − 1, 1) erniedrigt die Lovász Invariante zu k<br />

D := D h−1<br />

1 D h−2<br />

2 · · · D 1 h−1<br />

so dass D neu ≤ δ k2<br />

B D alt.<br />

Die Eingabebasis hat den D-Wert D Ein ≤ M n(h−1) <strong>und</strong> für die Ausgabebasis gilt D Aus ≥ 1.<br />

Damit ist die Anzahl #It − der Schritte 3 mit l := max(l − 1, 1) beschränkt durch<br />

#It − ≤ n(h−1)<br />

k 2 log 1/δB M = h k (h − 1) log 1/δ B<br />

M.<br />

Für die Gesamtzahl #It der Schritte 3 folgt die Behauptung<br />

#It = h − 1 + 2#It − ≤ ( 2h2<br />

k + h) log 1/δ B<br />

M.<br />

Die HKZ-Reduktion von R l,l+1 ∈ R 2k×2k geht in (2k) k/4+o(k) arithmetischen Schritten.<br />

2. Wir ersetzen die Lovász Invariante D durch die folgende Invariante<br />

D B := ∏ h−1<br />

l=1 (D l/D l+1 ) h2 /4−(h/2−l) 2 .<br />

Der Exponent h 2 /4 − (h/2 − l) 2 ist maximal bei l = h/2, er ist null für l = 0 <strong>und</strong> l = h <strong>und</strong> ist<br />

symmetrisch zu l = h/2. Für die LLL-Eingabebasis gilt D l ≤ α k2 D l+1 <strong>und</strong> somit gilt für ihren<br />

D B -Wert DB Ein dass DB Ein<br />

∑<br />

≤ α k2 s h−1<br />

für s = def l=1 h2 /4 − (h/2 − l) 2 .<br />

Die bekannte Summe ¯s := ∑ h−1<br />

l=1 l2 = h(h − 1)(h − 1/2)/3 liefert<br />

∑ h−1<br />

l=1 (h/2 − l)2 = −h 2 (h − 1)/4 + ¯s = h(h − 1)(h − 2)/12<br />

<strong>und</strong> somit s = (h + 1)h(h − 1)/6 = (h 3 − h)/6.<br />

Es folgt D Ein<br />

B<br />

≤ α k2 (h 3 −h)/6 .Ein aktiver Schritt 3 ändert von D B nur den Faktor<br />

∏<br />

(D t /D t+1 ) t(h−t) = D (l−1)(h−l+1)<br />

l−1<br />

(D l D l+1 ) h−2l−1 Dl 2 .<br />

t=l−1,l,l+1<br />

Ein aktiver Schritt 3 lässt D l−1 <strong>und</strong> D l D l+1 unverändert <strong>und</strong> bewirkt somit DB<br />

neu<br />

Für die Anzahl der Iterationen zum Erreichen von D B ≤ 1 folgt<br />

#It ≤ log 1/δ 2k 2<br />

B<br />

≤ δB<br />

2k2D<br />

B alt.<br />

DB Ein ≤ k2 h 3 1<br />

6 2k<br />

log 2 δB<br />

α = h3<br />

12 log δ B<br />

α. <br />

Die Schrittzahl (2k) k/4+O)1) für die HKZ-Reduktion von R l,l+1 ∈ R 2k×2k ist polynomial wenn<br />

(2k) k/4 = n O(1) , also wenn k = O(log n/ log log n).<br />

Alternativer Beweis zu 2. Beh.: #It ≤ h3 (1+o(1))<br />

2<br />

log 1/δB α — auch für DB<br />

Aus ≪ 1. Für die<br />

LLL-Eingabebasis gilt rj,j 2 ≤ αn−1 λ 2 j . Damit gilt für den Startwert D Ein der Lovász Invariante<br />

D der Eingabebasis<br />

D Ein = D1 h−1 D2 h−2 · · · Dh−1<br />

1<br />

≤ (λ 2(h−1<br />

1 · · · λ 2(h−1)<br />

k<br />

) (λ 2(h−2)<br />

k+1<br />

· · · λ 2(h−2)<br />

2k<br />

) · · · · · · (λ 2 kh−2k+1 · · · λ 2 kh−k) α<br />

Andererseits gilt für HKZ-Basen dass r 2 1,1/r 2 j,j ≤ α j < j 1+ln j<br />

[S87] <strong>und</strong> somit<br />

D ≥ (λ 2(h−1)<br />

1 · · · λ 2(h−1)<br />

k<br />

) (λ 2(h−2)<br />

k+1<br />

· · · λ 2(h−2)<br />

2k<br />

) · · · · · · (λ 2 kh−2k+1 · · · λ 2 kh−k) /n<br />

Der D-Wert der Ausgabebasis ist nicht kleiner als der einer HKZ-Basis, daher folgt<br />

#It ≤ log 1/δB k 2 (D Ein /D Aus )<br />

≤ 1 (n−1)n(h−1)<br />

k 2 2<br />

log 1/δB α + n(h−1)<br />

2k<br />

log 2 1/δB n 1+ln n<br />

h−1<br />

(n−1)n 2 .<br />

(1+ln n)n(h−1)/2


6.3. PRIMAL-DUALE REDUKTION 53<br />

≤ h3 (1+o(1))<br />

2<br />

log 1/δB α sofern log 1/δB n 1+ln n = o(n).<br />

Demgegenüber liefert der Beweis zu Satz 6.2.4, Teil 2 eine obere Schranke für #It, die um den<br />

Faktor 1 6 kleiner ist, aber die Voraussetzung min l D l /D l+1 ≥ 1 gilt mit wenigen Ausnahmen.<br />

Algorithmus 6.2.2, Beschleunigte Semi Block 2k-Reduktion<br />

EINGABE LLL-Basis B = QR ∈ Z m×n zu (δ L , α), n = hk; δ B mit 0 < δ B < 1.<br />

1. Wähle l, 1 ≤ l < n so dass D l /D l+1 maximal ist.<br />

HKZ-reduziere R l zu R l T k mit T k ∈ GL k (Z), B l := B l T k .<br />

2. HKZ-reduziere R l+1 zu R l+1 T k mit T k ∈ GL k (Z),<br />

B l+1 := B l+1 T k , erneuere R l,l+1 .<br />

3. HKZ-reduziere R l,l+1 zu R l,l+1 T 2k mit T 2k ∈ GL 2k (Z).<br />

IF Dl<br />

neu ≤ δB k2D<br />

l alt THEN [B l , B l+1 ] := [B l , B l+1 ]T 2k , GO TO 1<br />

HKZ-reduziere alle R l zu R l T k , B l := B l T k , <strong>und</strong> längenreduziere B.<br />

AUSGABE Semi Block 2k-Basis B.<br />

Satz 6.2.5 (zu Alg. 6.2.2)<br />

1. Bei der Wahl von l ist B Semi Block 2k-Basis für δ B mit δ k B (D l/D l+1 ) 1/k = β k .<br />

2. Sobald max l (D l /D l+1 ) ≤ α k2 /2 t β k k erreicht ist, erreicht Alg. 6.2.2 mit höchstens h3 /12<br />

Iterationen <strong>und</strong> δ B = α −1/2t dass D B ≤ 1 <strong>und</strong> damit dass im Mittel der l : D l /D l+1 ≤ β k k .<br />

Beweis. 2. Wir folgen dem Beweis zu Satz 6.2.4, Teil 2. Wie für die Schranke von DB<br />

Ein gilt<br />

beim Erreichen von max l D l /D l+1 ≤ α k2 /2 t βk k dass D B ≤ (α k2 /2 t βk k)s ≤ (α k2 /2 t βk k /6 . Danach<br />

)h3<br />

führt jeder Schritt 3 mit δ B = α −1/2t zu D neu<br />

B<br />

solchen Iterationen gilt D neu<br />

B<br />

≤ δB<br />

2k2D<br />

alt = α −k2 /2 t D alt . Nach h3<br />

12 log 1/δ B<br />

α<br />

≤ β ks<br />

k ≤ βk h3 /6<br />

k<br />

<strong>und</strong> somit im Mittel D l /D l+1 ≤ β k k . <br />

Folgerungen. Wenn für die Ausgabebasis von Alg. 6.2.2 mit δ B := α −1/2t gilt dass D l /D l+1 βk<br />

k<br />

für alle l dann folgt #It h3<br />

neu<br />

12<br />

. Offen bleibt, wie sich die Dl<br />

/Dl<br />

alt -Werte der Schritte 3 verteilen,<br />

welche D l /D l+1 weiter zu D l /D l+1 ≪ βk k neu<br />

erniedrigen. Wenn auch hier kleine Werte Dl<br />

/Dl<br />

alt<br />

ähnlich häufig sind, dann macht Alg. 6.2.2 mit wachsendem δ B = α −1/2j für j = 1, ..., t δ B =<br />

α −1/2t → 1 für t → ∞ nur O(h 3 t) Iterationen, während Alg. 6.2.1 nach Satz 6.2.4 bis zu O(h 3 2 t )<br />

Iterationen ausführt. Dies ermöglicht einen exponentiellen Speed-up durch Alg. 6.2.2.<br />

6.3 Primal-Duale Reduktion<br />

Koy’s primal-duale Reduktion [Ko05] erniedrigt D l = (det R l ) 2 wie folgt durch HKZ-Reduktion in<br />

Dimension k: Maximiere r kl,kl über alle GNF von R l T mit T ∈ GL k (Z) zu max r kl,kl durch HKZ-<br />

Reduktion der dualen Basis R ∗ l . Minimiere r kl+1,kl+1 durch HKZ-Reduktion von R l+1 . Danach<br />

LLL-reduziert man R l,l+1 , wenn dies r kl,kl <strong>und</strong> damit D l erniedrigt.<br />

Für <strong>Gitter</strong> der Dimension n = hk wird mit polynomial vielen HKZ-Reduktionen der Dimension<br />

k die Approximation ‖b 1 ‖ 2 /λ 2 1 ≤ γ k (αγk 2)h−1 erreicht. Damit wird β k /δk k in Satz 6.2.3 ersetzt<br />

durch αγk 2 . Die primal-duale Reduktion iteriert HKZ-Reduktion in Dimension k, während Semi<br />

Block 2k-Reduktion auf der HKZ-Reduktion in Dimension 2k aufbaut. Primal-duale Reduktion<br />

mit Blockbreite 2k ersetzt β k /δk k in Satz 6.2.3 durch die kleinere Konstante √ αγ k = Θ(k).<br />

T


54 KAPITEL 6. HKZ- UND BLOCK-REDUKTION VON GITTERBASEN<br />

Definition 6.3.1<br />

Eine Basis B = QR ∈ R m×hk ist primal-duale Basis mit Blockweite k wenn<br />

1. R 1 , ..., R h ⊂ R HKZ-Basen sind <strong>und</strong> B längenreduziert ist,<br />

2. max<br />

T r2 kl,kl ≤ α r 2 kl+1,kl+1 für l = 1, ..., h − 1,<br />

dabei wird r 2 kl,kl maximiert über die GNF von R lT mit T ∈ GL k (Z).<br />

Satz 6.3.2 (Ko05, GHKN06)<br />

Für jede primal-duale Basis B = QR ∈ R m×n , n = hk, des <strong>Gitter</strong>s L gilt:<br />

1. ‖b 1 ‖ 2 ≤ γ k (αγ 2 k ) h−1<br />

2 (det L) 2/n ,<br />

2. ‖b 1 ‖ 2 ≤ γ 2 k (αγ2 k )h−1 λ 2 1.<br />

Beweis. 1. Nach Def. 6.3.1 gilt für [r i,j ] = R dass max<br />

T<br />

r2 kl,kl ≤ α rkl+1,kl+1. 2 Die Hermite<br />

Ungleichung λ 2 1(L(R ∗ l )) ≤ γ kD −1/k<br />

l<br />

für L(R ∗ l ) <strong>und</strong> die HKZ-Reduktion von R∗ l<br />

sichern dass<br />

D 1/k<br />

l<br />

≤ γ k max<br />

T r2 kl,kl = γ k /λ 2 1(L(R ∗ l )).<br />

Für die HKZ-Basis R l+1 gilt λ 2 1(L(R l+1 )) = r 2 kl+1,kl+1 ≤ γ kD 1/k<br />

l+1 .<br />

Die Kombination dieser beiden Ungleichungen führt zu<br />

(6.3)<br />

D 1/k<br />

l<br />

≤ γ k max<br />

T r2 kl,kl ≤ α rkl+1,kl+1 2 ≤ αγk 2 D 1/k<br />

l+1 .<br />

Mit der HKZ-Basis R 1 folgt durch Induktion über l dass<br />

‖b 1 ‖ 2 ≤ γ k D 1/k<br />

1 ≤ γ k (αγ 2 k) l D 1/k<br />

l+1<br />

für l = 0, ..., h − 1.<br />

Die h-te Wurzel des Produkts dieser h Ungleichungen ergibt die Behauptung.<br />

2. Die Ungleichung (6.3) gilt auch in dualer Form für Dl ∗ = (det R∗ l )2 . Daher gilt auch das duale<br />

1 ∗ zu Satz 6.3.2, Teil 1 :<br />

1 ∗ . max<br />

T<br />

r2 kl,kl ≥ γ −1<br />

k<br />

(αγ2 k) −h+1<br />

2 (det L) 2/n<br />

mit r 2 kl,kl maximiert über die GNF von R lT mit T ∈ GL k (Z)<br />

1 <strong>und</strong> 1 ∗ ergeben zusammen normb 1 2 ≤ γ 2 k (αγ2 k )l−1 max<br />

T r2 kl,kl. Somit liefert Def. 6.3.1 Teil 2.<br />

‖b 1 ‖ 2 ≤ γk(αγ 2 k) 2 l−1 max<br />

T<br />

r2 kl,kl<br />

≤ (αγ 2 k) l r 2 kl+1,kl+1 für l = 0, ..., h − 1.<br />

Es folgt die Behauptung, denn es gilt für b = ∑¯n<br />

j=1 u jb j ∈ L, u¯n ≠ 0 mit normb 1 = λ 1 O.B.d.A.<br />

dass ¯n > n − k <strong>und</strong> folglich r n−k+1,n−k+1 ≤ ‖π n−k+1 (b)‖ ≤ λ 1 .<br />

<br />

Erläuterungen zu Alg. 6.3.1.<br />

1. Um den letzten Diagonaleintrag r k,k von GNF(R l ) ∈ R k×k über die GNF(R l T) mit T ∈<br />

GL k (Z) zu maximieren HKZ-reduziere R ∗ l = R−t l<br />

= U k R −1<br />

l<br />

U k zu R ∗ l T mit T ∈ GL k(Z). Diese<br />

HKZ-Reduktion minimiert den ersten Diagonaleintrag r 1,1 von GNF(R ∗ l ) <strong>und</strong> 1/r 1,1 ist der letzte<br />

Diagonaleintrag von GNF((R ∗ l T)∗ U k ) = GNF(R l T −t U k ). Die Diagonalen von GNF(R ∗ l<br />

T) <strong>und</strong><br />

GNF(R −t<br />

T ) sind einander invers; U k dreht die Diagonale von GNF(R l T −t ) um.<br />

2. Bei der LLL-Reduktion von R l,l+1 in Schritt 3 sind nur Austausche der Spalten k <strong>und</strong> k + 1<br />

von R l,l+1 möglich. Denn das letzte Diagonalement r k,k von R l ist maximal <strong>und</strong> r k−i,k−i ist maximal<br />

bei festen r k−i1,k−i+1, ..., r k,k . Ebenso sind die Diagonalemente von R l+1 nininimal wenn<br />

alle vorangehenden Diagonalelemente von R l+1 festgehalten werden.


6.3. PRIMAL-DUALE REDUKTION 55<br />

Algorithmus 6.3.1, Primal-Duale Reduktion<br />

EINGABE LLL-Basis B = QR ∈ Z m×n , n = hk, zu δ, α.<br />

0. l := 1,<br />

1. HKZ-reduziere R l+1 zu R l+1 T k mit T k ∈ GL k (Z), B l+1 := B l+1 T k .<br />

2. HKZ-reduziere R ∗ l zu R∗ l T ⋆ mit T ⋆ ∈ GL k (Z), B l := B l T −1<br />

⋆ U k ,<br />

erneuere R l,l+1 , LLL-reduziere R l,l+1 mit δ zu R l,l+1 T 2k<br />

3. IF in Schritt 2 erfolgte ein LLL-Austausch der Spalten k <strong>und</strong> k + 1 von R l,l+1<br />

THEN [B l , B l+1 ] := [B l , B l+1 ]T 2k , l := max(l − 1, 1) ELSE l := l + 1.<br />

4. IF l < h THEN GO TO 1 ELSE längenreduziere B.<br />

AUSGABE primal-duale Basis B<br />

Satz 6.3.3<br />

1. Alg. 6.3.1 macht höchstens 2nh log 1/δ M Iterationen für den Wert M := max(‖b 1 ‖ , ..., ‖b n ‖)<br />

der Eingabebasis. Eine Iteration geht in (2k) k/4 k O(1) arithmetischen Schritten.<br />

2. Alg. 6.3.1 macht höchstens n2 h<br />

12 log 1/δ α Iterationen bis D B ≤ 1 erreicht ist.<br />

Beweis. 1. Jeder Schritt 3 mit l := max(l − 1, 1) erniedrigt D := D1 h−1 D2 h−2 · · · Dh−1 1<br />

D neu ≤ δ D alt für das δ < 1 der LLL-Reduktion <strong>und</strong> D l = (det R l ) 2 .<br />

so dass<br />

Die Eingabebasis hat den D B -Wert D Ein ≤ M n(h−1) <strong>und</strong> für die Ausgabebasis gilt D Aus ≥ 1.<br />

Dies beschränkt die Anzahl #It − der Schritte 3 mit l := max(l − 1, 1) zu<br />

#It − ≤ log 1/δ D Ein ≤ n(h − 1) log 1/δ M.<br />

Die Gesamtzahl #It der Schritte 3 ist #It = h − 1 + 2#It − ≤ 2nh log 1/δ M.<br />

2. Wir folgen dem Beweis von Satz 6.2.4, Teil 2. Jede Iteration mit Dl<br />

neu ≤ δ Dl<br />

alt erniedrigt wie<br />

gezeigt D B zu DB<br />

neu ≤ δ2 DB alt.<br />

Für die Anzahl #It der Iterationen bis zum Erreichen von D B ≤ 1<br />

folgt mit s = ∑ h<br />

l=1 (h2 /4 − (h/2 − l) 2 ) = (h 3 − h)/6<br />

#It ≤ 1 2 log 1/δ D Ein<br />

B ≤ 1 2 log 1/δ α k2s ≤ k2 h 3<br />

12 log 1/δ α = n2 h<br />

12 log 1/δ α. <br />

Die Klausel 2. von Def. 6.3.1 wurde von Gama, Nguyen [GN08] verschärft zu<br />

2 + . max<br />

T r2 kl+1,kl+1 ≤ (1 + ε) 2 r 2 kl+1,kl+1 für l = 1, ..., h − 1. ( slide-reduction [GN08] )<br />

Es bezeichne R ′ l := [r i,j] kl−k+2≤i,j≤kl+1 ∈ R k×k das um eine Einheit nach rechts verschobene<br />

Segment R l von R = [r i,j ] ∈ R n×n . Es bezeichnet max<br />

T<br />

r2 kl+1,kl+1 das Maximum über ¯r<br />

kl+1,kl+1<br />

2<br />

von [¯r i,j ] = GNF(R ′ l T) über alle T ∈ GL k(Z). Ferner sei B ′ l = [b kl−k+2, ..., b kl+1 ] der um eine<br />

Einheit nach rechts verschobenen Block B l .<br />

Def. Eine längenred. Basis B = QR ∈ R m×n mit n = hk ist streng primal-dual, wenn R 1 , ..., R h<br />

HKZ-Basen sind <strong>und</strong> wenn 2 + für l = h−1 <strong>und</strong> für ein l = l max gilt, welches D l /D l+1 maximiert.<br />

Satz 6.3.4 (GN08b)<br />

Für jede streng primal-duale Basis B = QR ∈ R m×n , n = hk, des <strong>Gitter</strong>s L gilt:<br />

1. ‖b 1 ‖ ≤ ((1 + ε) γ k ) 1 n−1<br />

2 k−1 (det L) 1/n ,<br />

2. ‖b 1 ‖ ≤ ((1 + ε) γ k ) n−k<br />

k−1 λ1 .


56 KAPITEL 6. HKZ- UND BLOCK-REDUKTION VON GITTERBASEN<br />

Für slide-reduced Basen wird in [GN08b] 2 + für l = 1, ..., h − 1 gefordert <strong>und</strong> es wird Satz<br />

6.3.4 für slide reduzierte Basen gezeigt. Weil die Bedingung 2 + nur für zwei Werte von l gefordert<br />

wird, macht die streng primal-duale Reduktion höchstens 2 HKZ-Reduktionen pro Iteration <strong>und</strong><br />

ist damit schneller als die slide Reduktion von [GN08b].<br />

Beweis. Für D ′ l := (det R′ l )2 folgt D ′ l /r2 kl+1,kl+1 ≤ ((1 + ε)γ k) k r 2(k−1)<br />

kl+1,kl+1 für l = l max <strong>und</strong><br />

l = h − 1 aus 2 + . Weiter gilt für die HKZ-Basis R l dass<br />

(6.4)<br />

r 2(k−1)<br />

kl−k+1,kl−k+1 ≤ γk k D l /r 2 kl−k+1,kl−k+1.<br />

Kombination der beiden Ungleichungen <strong>und</strong> D ′ l /r2 kl+1,kl+1 = D l/r 2 kl−k+1,kl−k+1<br />

liefert<br />

(6.5)<br />

r kl−k+1,kl−k+1 ≤ ((1 + ε)γ k ) k<br />

k−1 rkl+1,kl+1 für l = l max <strong>und</strong> l = h − 1.<br />

Wir zeigen zunächst, dass<br />

(6.6)<br />

D l ≤ ((1 + ε) γ k ) 2k2<br />

k−1 Dl+1 für l = 0, ..., h − 1.<br />

Bew.: Für l = l max wurde oben gezeigt dass<br />

D ′ l ≤ (1 + ε) k γ k kr 2k<br />

kl+1,kl+1 ≤ (1 + ε) k γ 2k<br />

k D l+1 .<br />

Die zweite Ungleichung gilt weil R l+1 HKZ-Basis ist. Aus (6.5) folgt<br />

(6.7)<br />

D l = r 2 kl−k+1,kl−k+1D ′ l/r 2 kl+1,kl+1 ≤ ((1 + ε) γ k ) 2k<br />

k−1 D<br />

′<br />

l .<br />

Die Kombination der beiden vorangehenden Ungleichungen liefert für l = l max<br />

D l < ((1 + ε) γ k ) 2k<br />

k−1 +2k D l+1 = ((1 + ε) γ k ) 2k2<br />

k−1 Dl+1 .<br />

Weil (6.6) für l max gilt, muss (6.6) für alle l = 1, ..., h − 1 gelten.<br />

1. Weil R 1 HKZ-Basis ist, folgt aus (6.6) für l = 1, ..., h dass<br />

Multiplikation dieser h Ungleichungen liefert<br />

Es folgt die Behauptung<br />

‖b 1 ‖ 2 ≤ γ k D 1/k<br />

1 ≤ γ k ((1 + ε) γ k ) 2k(l−1)<br />

k−1 D 1/k<br />

l<br />

.<br />

‖b 1 ‖ 2h ≤ γk h((1 + ε) γ k) kh(h−1)<br />

k−1 (det L) 2/k.<br />

‖b 1 ‖ 2 ≤ γ k ((1 + ε) γ k ) n−k<br />

k−1 (det L) 2/n < ((1 + ε) γ k ) n−1<br />

k−1 (det L) 2/n .<br />

2. Im Beweis zu 1. wurde für l = h − 1 gezeigt<br />

‖b 1 ‖ 2 ≤ γ k ((1 + ε) γ k ) 2k(h−2)<br />

k−1 D 1/k<br />

h−1 .<br />

Aus 2 + für l = h − 1 folgt (6.5) <strong>und</strong> (6.7) für l = h − 1. Dies <strong>und</strong> 2 + impliziert dass<br />

‖b 1 ‖ 2 ≤ γ k ((1 + ε) γ k ) 2k(h−2)<br />

k−1 + 2<br />

k−1 (D<br />

′<br />

h−1<br />

) 1/k<br />

≤ γ k ((1 + ε) γ k ) 2kh−4k+2)<br />

k−1 (1 + ε)γ k r 2 n−k+1,n−k+1 .<br />

= ((1 + ε) γ k ) 2 n−k<br />

k−1 r<br />

2<br />

n−k+1,n−k+1<br />

.<br />

O.B.d.A. ist π n−k+1 (b) ≠ 0 für ein b ∈ L mit ‖b‖ = λ 1 , sonst kann man n um k erniedrigen. Somit<br />

gilt r n−k+1,n−k+1 ≤ ‖π n−k+1 (b)‖ ≤ λ 1 . Die letzten beiden Ungleichungen liefern die Behauptung<br />

‖b 1 ‖ ≤ ((1 + ε) γ k ) n−k<br />

k−1 λ1 .


6.4. BLOCK-KORKINE ZOLOTAREFF REDUKTION, BKZ 57<br />

Algorithmus 6.3.2, Beschleunigte, Streng Primal-Duale Reduktion<br />

EINGABE LLL-Basis B = QR ∈ Z m×n , n = hk, ε > 0.<br />

1. Wähle l, 1 ≤ l < n so dass D l /D l+1 maximal ist.<br />

2. HKZ-reduziere R l+1 zu R l+1 T mit T ∈ GL k (Z), B l+1 := B l+1 T, erneuere R l+1 .<br />

HKZ-reduziere (R ′ l )∗ zu (R ′ l )∗ T ⋆ mit T ⋆ ∈ GL k (Z), [r neu<br />

kl+i,kl+j ] 2≤i,j≤1+k := GNF(R ′ l T−1 ⋆ U k ),<br />

3. IF rkl+1,kl+1 neu<br />

alt<br />

> (1 + ε) rkl+1,kl+1<br />

THEN B′ l := B′ l T −1<br />

l<br />

U k , erneuere R l,l+1 , GO TO 1<br />

4. Führe die Schritte 2, 3 für l = h − 1 durch, falls dies für das aktuelle R h−1,h noch aussteht;<br />

längenreduziere B.<br />

AUSGABE streng primal-duale Basis B.<br />

Satz 6.3.5<br />

Alg. 6.3.2 führt höchstens<br />

n 2 h<br />

6 log 1+ε α Iterationen durch bis D B ≤ 1 erreicht ist.<br />

Beweis.<br />

Analog zu Satzc 6.2.4 Teil 2; δ k2<br />

B in Alg. 6.2.1 entspricht (1 + ε)2 . <br />

6.4 Block-Korkine Zolotareff Reduktion, BKZ<br />

Definition 6.4.1 (k-reduzierte Basis)<br />

Eine Basis [b 1 , . . . , b n ] = B = QR ∈ R m×n ist k-reduziert, wenn<br />

1. |r i,j | ≤ 1 2 r i,i für 1 ≤ i < j ≤ n<br />

2. Die Basen [r i,j ] l


58 KAPITEL 6. HKZ- UND BLOCK-REDUKTION VON GITTERBASEN<br />

Verdoppelung der Blockweite k reduziert somit den Approximationsfaktor γ 2 n−i<br />

k−1<br />

k<br />

die Quadratwurzel multiplixiert mit 2 2/k .<br />

Wie für LLL- <strong>und</strong> HKZ-Basen sind die oberen Schranken zu ‖bi‖2<br />

λ i(L) 2<br />

Satz 6.4.4<br />

Für jede k-reduzierte Basis b 1 , . . . , b n des <strong>Gitter</strong>s L gilt<br />

λ i (L) 2 / ‖b i ‖ 2 ≤ γ 2 i−1<br />

k−1 i+3<br />

k 4<br />

für i = 1, . . . , n.<br />

<strong>und</strong> λi(L)2<br />

‖b i‖ 2<br />

annähernd auf<br />

fast gleich.<br />

Die Werte γ 2<br />

k−1<br />

k<br />

sind bekannt für k = 2, 3, . . . , 8, 24:<br />

k 2 3 4 5 6 7 8 24<br />

γ 2<br />

k−1<br />

k<br />

4<br />

3<br />

2 1/3 2 1/3 2 3/10 2 2/5 /3 15 2 2/7 2 2/7 2 4/23<br />

≈ 1, 333 1, 260 1, 260 1, 231 1, 226 1, 219 1, 219 1.128<br />

Ajtai [Aj03] zeigt, dass die Schranken von Satz 6.4.3 bis auf einen konstanten Faktor im Exponenten<br />

von γ k optimal sind. Dagegen sind die minimalen oberen Schranken C k,n zum Satz 6.4.3<br />

nicht bekannt Die Schranke aus Satz 6.4.3 ist für n ≥ 3 nicht scharf. Es gilt dass C 2,n = ( )<br />

4 n−1<br />

3<br />

[BaKa84] <strong>und</strong> C 3,n =<br />

( √3/2 ) n−3<br />

für ungerade n ≥ 3 [S94].<br />

Lemma 6.4.5<br />

Für jede k-reduzierte Basis b 1 , . . . , b n ∈ R m gilt ‖b 1 ‖ ≤ γ n−1<br />

k−1<br />

k<br />

M mit<br />

(<br />

)<br />

M := max ‖̂b n−k+2 ‖, . . . , ‖̂b n ‖ .<br />

Beweis.<br />

(6.8)<br />

Wir erweitern die Basis b 1 , . . . , b n durch k − 2 linear unabhängige Vektoren zu<br />

b −k+3 , . . . , b −1 , b 0 , b 1 , . . . , b n<br />

so, dass gilt<br />

(6.9)<br />

(6.10)<br />

‖b i ‖ = ‖b 1 ‖ für i ≤ 0<br />

〈b i , b j 〉 = 0 für i ≤ 0, i < j <strong>und</strong> j = −k + 3, . . . , n.<br />

Dazu betten wir die Basis in den R m+k−2 ein: Wir wählen b −k+3 , b −k+4 , . . . , b −1 , b 0 als ‖b 1 ‖-<br />

Vielfaches der kanonischen Einheitsvektoren in die zusätzlichen k − 2 Richtungen. Die <strong>Gitter</strong>basis<br />

(6.8) ist k-reduziert. Für jedes i mit −k + 3 ≤ i ≤ n − k + 1 bilden die Vektoren<br />

π i (b i ), . . . , π i (b i+k−1 )<br />

eine HKZ-reduzierte Basis. Nach Definition der Hermite-Konstanten γ k gilt<br />

k−1<br />

∏<br />

‖̂b i ‖ k ≤ γ k 2<br />

k<br />

s=0<br />

‖̂b i+s ‖ für i = −k + 3, . . . , n − k + 1.<br />

Durch Multiplikation dieser n − 1 Ungleichungen erhalten wir<br />

n−k+1<br />

∏<br />

i=−k+3<br />

‖̂b i ‖ k ≤ (γ k ) k(n−1)<br />

2<br />

‖̂b −k+3 ‖ 1 ‖̂b −k+4 ‖ 2 · · · ‖̂b 1 ‖ k−1


6.4. BLOCK-KORKINE ZOLOTAREFF REDUKTION, BKZ 59<br />

Durch Kürzen folgt<br />

· ‖̂b 2 ‖ k ‖̂b 3 ‖ k · · · ‖̂b n−k+1 ‖ k ‖̂b n−k+2 ‖ k−1 · · · ‖̂b n−1 ‖ 2 ‖̂b n ‖ 1 .<br />

‖̂b −k+3 ‖ k−1 · · · ‖̂b 0 ‖ 2 ‖̂b 1 ‖ 1 ≤ (γ k ) k(n−1)<br />

2<br />

‖̂b n−k+2 ‖ k−1 ‖̂b n−k+2 ‖ k−1 · · · ‖̂b n−1 ‖ 2 · ‖̂b n ‖ 1 .<br />

Nach Konstruktion gilt ‖̂b i ‖ = ‖b 1 ‖ für i ≤ 0 <strong>und</strong> es folgt<br />

‖b 1 ‖ (k 2) ≤ (γk ) k(n−1)<br />

2<br />

· M (k 2) <strong>und</strong> somit ‖b1 ‖ ≤ γ n−1<br />

k−1<br />

k<br />

M.<br />

Korollar 6.4.6<br />

Für jede k-reduzierte Basis b 1 , . . . , b n des <strong>Gitter</strong>s L gilt<br />

‖b 1 ‖ ≤ γ n−1<br />

k−1<br />

λ 1 (L).<br />

k<br />

<br />

Die Schranke von Korollar 6.4.6 ist suboptimal für k ≈ n denn für k = n gilt ‖b 1 ‖ = λ 1 . Sie ist<br />

besser als die in Theorem 2.6 [S87] für den Fall k|n bewiesene Schranke ‖b 1 ‖ ≤ γ 1/2<br />

k/2 (2k) n k −1 λ 1 .<br />

Beweis. Induktion über n: Für n = k ist b 1 , . . . , b n eine HKZ-Basis mit ‖b 1 ‖ = λ 1 (L) <strong>und</strong><br />

somit gilt die Behauptung.<br />

Sei n > k <strong>und</strong> v ≠ 0 ein kürzester <strong>Gitter</strong>vektoren. O.B.d.A. sei v /∈ L(b 1 , b 2 , . . . , b n−1 ), denn<br />

sonst folgt die Behauptung aus der Induktionsannahme für n − 1. Wegen v /∈ L(b 1 , . . . , b n−1 ) gilt<br />

π i (v) ≠ 0 für i = n − k + 1, . . . , n − 1. Wir erhalten mit L i = π i (L) für i = n − k + 1, . . . , n:<br />

λ 1 (L) = ‖v‖ ≥ λ 1 (L i ) = ‖̂b i ‖.<br />

Die Gleichheit λ 1 (L i ) = ‖̂b i ‖ gilt, weil π n−k+1 { (b i ), für i = n − k + 1, . .}<br />

. , n HKZ-Basis ist. Für<br />

das M von Lemma 6.4.5 gilt λ 1 (L) ≥ max ‖̂b i ‖ : i = n − k + 1, . . . , n = M. Somit folgt die<br />

Behauptung aus Lemma 6.4.5:<br />

‖b 1 ‖ ≤ (γ k ) n−1<br />

k−1<br />

· M ≤ (γ k ) n−1<br />

k−1<br />

· λ 1 (L). <br />

Beweis (zu Satz 6.4.3). . Korollar 6.4.6 liefert für die <strong>Gitter</strong> L i = π i (L) mit i = 1, . . . , n:<br />

(6.11)<br />

‖̂b i ‖ ≤ γ n−i<br />

k−1<br />

k<br />

λ 1 (L i )<br />

Ferner ist λ 1 (L i ) ≤ λ i (L), denn es gibt i linear unabhängige <strong>Gitter</strong>vektoren v, deren Länge<br />

höchstens λ i (L) ist <strong>und</strong> von denen ein Vektor π i (v) ≠ 0 erfüllt. Also λ 1 (L i ) ≤ π i (v) ≤ λ i (L).<br />

Wir erhalten die erste Behauptung, daß für i = 1, . . . , n gilt:<br />

‖̂b i‖ 2<br />

λ i(L) 2<br />

≤ γ<br />

n−i<br />

2· k−1<br />

k<br />

.<br />

Aus (6.11), µ 2 i,j ≤ 1 4 (die Basis ist längenreduziert) <strong>und</strong> λ 1 ≤ λ 2 ≤ · · · ≤ λ j folgt:<br />

∑i−1<br />

‖b i ‖ 2 = ‖̂b i ‖ 2 + (µ i,j ) 2 ‖̂b j ‖ 2<br />

j=1<br />

n−i<br />

2·<br />

∑i−1<br />

k−1<br />

≤ γk · λ i (L) 2 + 1 n−j<br />

2· k−1<br />

4<br />

γk · λ j (L) 2<br />

≤ γ 2·<br />

n<br />

k−1<br />

k<br />

·<br />

(<br />

γ<br />

−i<br />

2· k−1<br />

k<br />

+ 1 4<br />

j=1<br />

∑i−1<br />

γ<br />

j=1<br />

−j<br />

2· k−1<br />

k<br />

)<br />

· λ i (L) 2<br />

Wir schätzen die Summanden durch γ<br />

‖b i ‖ 2 ≤ γ 2·<br />

−1<br />

2· k−1<br />

k<br />

n<br />

k−1<br />

k<br />

· γ<br />

nach oben ab <strong>und</strong> erhalten:<br />

(<br />

1 + i − 1 )<br />

· λ i (L) 2<br />

4<br />

−1<br />

2· k−1<br />

k<br />

·<br />

n−1<br />

2· k−1<br />

≤ γk · i + 3 · λ i (L) 2<br />

4<br />

Damit haben wir die zweite Behauptung auch gezeigt.


60 KAPITEL 6. HKZ- UND BLOCK-REDUKTION VON GITTERBASEN<br />

Beweis (zu Satz 6.4.4). Nach Definition der sukzessiven Minima gilt λ 2 i ≤ max j=1,...,i ‖b j ‖ 2 .<br />

Für B = QR, R = [r i,j ] ∈ R n×n gilt ‖b i ‖ 2 = ∑ i<br />

j=1 r2 j,i ≤ 1 ∑ n<br />

4 j=1 r2 j,j <strong>und</strong> somit<br />

(6.12)<br />

λ 2 i ≤ i+3<br />

4 · max<br />

j=1,...,i ‖̂b j ‖ 2<br />

Lemma 6.4.5 angewandt auf die k-reduzierte Basis π j (b j ), . . . , π j (b i ) liefert für 1 ≤ j ≤ i − k + 1:<br />

(6.13)<br />

Andererseits gilt für i − k + 2 ≤ j ≤ i<br />

‖̂b j ‖ ≤ γ i−j<br />

k−1<br />

k<br />

max(‖̂b i−k+2 ‖, . . . , ‖̂b i ‖).<br />

(6.14)<br />

‖̂b j ‖ ≤ ‖π j (b j )‖ ≤ ‖b i ‖<br />

Aus (6.13) <strong>und</strong> (6.14) erhalten wir für 1 ≤ j ≤ i: ‖̂b j ‖ ≤ γ i−j<br />

k−1<br />

k<br />

‖b i ‖. Diese Ungleichung liefert mit<br />

(6.12) die Behauptung, daß für i = 1, . . . , n gilt:<br />

λ i (L) 2 / ‖b i ‖ 2 ≤ γ 2 i−1<br />

k−1<br />

k<br />

6.5 BKZ-Algorithmus<br />

i+3<br />

4 . <br />

Definition 6.5.1 ((k, δ)-reduzierte Basis)<br />

Eine Basis B = QR ∈ R m×n ist (k, δ)-reduziert zu 2 ≤ k ≤ n <strong>und</strong> 1 4 < δ < 1 wenn<br />

1. |r i,j | ≤ 1 2 r i,i für 1 ≤ i < j ≤ n,<br />

2. δ r 2 j,j ≤ λ 1 ( π j L(b j , . . . , b j+k−1 )) 2 für j = 1, . . . , n − k + 1.<br />

Algorithmus 6.5.1, BKZ-Algorithmus<br />

EINGABE: LLL-Basis [b 1 , . . . , b n ] = B = QR ∈ Z m×n , 2 ≤ k ≤ n,<br />

1<br />

4 < δ < 1.<br />

FOR j = 1, ..., n − 1 DO<br />

¯j := min(j + k − 1, n)<br />

IF some b j<br />

ENUM(j, ¯j) : Find minimal point (u j , . . . , u¯j) ∈ Z k \ {0} of:<br />

c j (u j , . . . , u¯j) := ∑¯j<br />

i=j<br />

b neu<br />

j<br />

∑ i<br />

s=j (u ir s.i ) 2 = ‖π j ( ∑¯j<br />

i=j u ib i )‖ 2 ,<br />

:= ∑¯j<br />

s=j u sb s , c j := c j (u j , . . . , u¯j) .<br />

IF δc j > c j THEN L 3 F P (b 1 , . . . , b j−1 , b neu<br />

j , b j , . . . , b j+k , δ)<br />

ELSE L 3 F P (b 1 , . . . , b j+k , δ)<br />

has been changed THEN repeat with the new basis B ELSE terminate<br />

AUSGABE (k, δ)-reduzierte Basis b 1 , . . . , b n .<br />

Der Algorithmus 6.5.1 aus [SE94] transformiert eine gegebene Basis in eine (k, δ)-reduzierte<br />

Basis des gleichen <strong>Gitter</strong>s. Die Routine L 3 F P aus Kapitel 4.4 macht LLL-Reduktion mit Gleitkommazahlen;<br />

Sie transformiert linear abhängige Eingabevektoren in eine Basis mit vorangehenden<br />

Nullvektoren. Die Routine ENUM(j, ¯j) minimiert c j (u j , . . . , u¯j), siehe Algorithmus 8.1.1 <strong>und</strong><br />

GAUSS-ENUM in Kapitel 8.<br />

Offenbar ist eine Ausgabebasis (k, δ)-reduziert. Die Variable j wird zyklisch durch die Zahlen<br />

1, . . . , n − k + 1 geschoben. Durch LLL-Reduktion wird die Ausgabebasis längenreduziert. In der<br />

Praxis [SE94, GN08a] ist der Algorithmus für k ≤ 20 recht schnell. Zu experimentell erreichten<br />

Approximationsfaktoren ‖b 1 ‖/λ 1 <strong>und</strong> Laufzeiten siehe [GN08a].


6.6. KRITISCHE K-REDUZIERTE BASEN FÜR K = 2, 3 61<br />

6.6 Kritische k-reduzierte Basen für k = 2, 3<br />

In diesem Abschnitt konstruieren wir kritische k-reduzierte Basen für k = 2, 3.<br />

Definition 6.6.1 (kritische k-reduzierte Basis)<br />

Eine k-reduzierte Basis b 1 , . . . , b n des <strong>Gitter</strong>s L heißt kritisch für n <strong>und</strong> k, falls ‖b1‖<br />

λ maximal<br />

1(L)<br />

für alle k-reduzierten Basen vom Rang n ist.<br />

Für k = 2 konstruieren wir die Basismatrix A n := [b 1 , . . . , b n ] ∈ M n,n (R) wie folgt. Sei ρ :=<br />

(6.15)<br />

Es gilt<br />

⎡ 1<br />

⎤<br />

1<br />

2<br />

0 · · · · · · 0<br />

1<br />

0 ρ<br />

2 ρ . .. 0 .<br />

A n :=<br />

. 0 ρ 2 1 . .. 2 ρ2 .<br />

. . . .. . .. . .. 0<br />

⎢<br />

⎣<br />

. ⎥<br />

.<br />

.. ρ<br />

n−2 1<br />

2 ρn−2 ⎦<br />

0 · · · · · · · · · 0 ρ n−1<br />

⎡<br />

A 2 := ⎢<br />

⎣0<br />

1<br />

1<br />

2<br />

√<br />

3<br />

4<br />

⎤<br />

⎥<br />

⎦<br />

√<br />

3<br />

4 :<br />

<strong>und</strong> für n ≥ 2 die Rekursion:<br />

⎡<br />

⎤<br />

1<br />

1<br />

2<br />

0 · · · 0<br />

0<br />

A n := ⎢<br />

⎥<br />

⎣. ρ · A n−1<br />

⎦<br />

0<br />

Satz 6.6.2<br />

√<br />

3<br />

Für die Basismatrix A n = [b 1 , . . . , b n ], des <strong>Gitter</strong>s L = L(b 1 , . . . , b n ) <strong>und</strong> ρ =<br />

4 gilt<br />

1. b 1 , . . . , b n ist eine kritische, 2-reduzierte Basis,<br />

2.<br />

‖b 1 ‖<br />

λ 1 (L) = 1<br />

ρ n−2 = ρ−n+2 ,<br />

3. λ 1 (L) = ρ 2(n+2) ( 1<br />

4 + ρ2) = ρ 2(n+2) .<br />

Beweis. Siehe [S94, Theorem 9]. <br />

Für k = 3 definieren wir die Basismatrix B n := [b 1 , . . . , b n ] ∈ M n,n (R) wie folgt (zur Konstruktion<br />

siehe [S94]):<br />

⎡<br />

1 1<br />

⎤<br />

1<br />

2 2<br />

0<br />

√ 0 3 −1<br />

2 2 √ 1<br />

3 2 √ 3<br />

B 4 :=<br />

√ √<br />

(6.16)<br />

2 1 2<br />

0 0<br />

3 2 3<br />

⎢<br />

⎥<br />

⎣<br />

1<br />

0 0 0 √2<br />


62 KAPITEL 6. HKZ- UND BLOCK-REDUKTION VON GITTERBASEN<br />

Die Matrizen B 2 , B 3 seien die 2 × 2- bzw. 3 × 3-Matrizen in der linken, oberen Ecke von B 4 . Für<br />

n ≥ 4 definieren wir die Basismatrix B n rekursiv:<br />

(6.17)<br />

⎡<br />

1<br />

1<br />

2<br />

0<br />

B n :=<br />

0 0<br />

. .<br />

⎢<br />

⎣<br />

0 0<br />

√<br />

3<br />

2<br />

1<br />

⎤<br />

2<br />

0 0 · · · 0<br />

1<br />

2 √ 0 · · · 0<br />

3<br />

√<br />

2<br />

3 · B n−2<br />

⎥<br />

⎦<br />

−1<br />

2 √ 3<br />

Satz 6.6.3<br />

Die Basismatrix B 2k+1 = [b 1 , . . . , b 2k+1 ] aus (6.17) bzw. (6.16) ist für k = 1, 2, . . . eine kritische,<br />

3-reduzierte Basis.<br />

Beweis. Siehe [S94, Theorem 14].


Kapitel 7<br />

N P-vollständige <strong>Gitter</strong>probleme<br />

7.1 N P-Vollständigkeit von Rucksack.<br />

Sei Σ endl. Alphabet, o.B.d.A. Σ = {0, 1}. Es bezeichne P die Klasse der polynomial-Zeit entscheidbaren<br />

Sprachen L ⊂ Σ ∗ , d.h.<br />

L ∈ P gdw ∃ Turing Maschine M, welche x ↦→ χ L (x) in |x| O(1) Turingschritten<br />

berechnet. D.h. ∃c > 0, so dass die Schrittzahl der Berechnung<br />

x ↦→ χ L (x) höchstens c|x| c ist. Dabei ist |x| die Länge von x ∈ Σ ∗ .<br />

Die Klasse N P der nichtdeterministischen polynomial-Zeit Sprachen:<br />

L ∈ N P gdw ∃c > 0 : ∃R ⊂ Σ ∗ × Σ ∗ polynomial-Zeit entscheidbar so dass<br />

L = {x ∈ Σ ∗ | ∃y : |y| ≤ |x| c , (x, y) ∈ R}<br />

Offenbar gilt P ⊂ N P.<br />

(y ist Zeuge für x ∈ L).<br />

Karp-Reduktion. Sei A, B ⊂ Σ ∗ . A ist Karp-reduzierbar auf B, Bez.: A ≤ pol B, wenn<br />

∃ polynomial Zeit berechenbares f : Σ ∗ → Σ ∗ , so dass x ∈ A ⇐⇒ f(x) ∈ B für alle x ∈ Σ ∗ .<br />

Fakt A ≤ pol B,<br />

B ∈ P ⇒ A ∈ P<br />

A ≤ pol B ≤ pol C ⇒ A ≤ pol C.<br />

Definition 7.1.1<br />

L ∈ N P ist N P-vollständig, wenn A ≤ pol L für alle A ∈ N P.<br />

Fakt Sei A ≤ pol B <strong>und</strong> A L-vollständig, dann ist B N P-vollständig.<br />

Satz 7.1.2 (Cook, Levin 1973)<br />

Für jedes N P-vollständige L gilt L ∈ P gdw P = N P.<br />

Cook’sche Hypothese. P ≠ N P.<br />

Begründung: Schwierige N P-Probleme sind seit Jahrh<strong>und</strong>erten bekannt, z.B. Entscheide zu<br />

gegebenen n, s ∈ N : ∃ Primzahl p ≤ s mit p teilt n.<br />

Satz 7.1.3 (Cook, Karp 1973)<br />

{<br />

∣ }<br />

∣∣∣<br />

Rucksack := (a 1 , . . . , a n , b) ∈ N n+1 ∃x 1 , . . . , x n ∈ {0, 1} :<br />

Σ n i=1 a ist N P-vollständig.<br />

ix i = b, n ∈ N<br />

63


64 KAPITEL 7. N P-VOLLSTÄNDIGE GITTERPROBLEME<br />

Cook zeigte : SAT ist N P-vollständig, Karp zeigte: SAT ≤ pol Rucksack.<br />

7.2 N P-Vollständigkeit von SVP l∞ , CVP l∞ , CVP l2 .<br />

Siehe Micciancio, Goldwasser, Complexity of Lattice Problems, KAP 2002 [MG02], Kapitel 3, 4.<br />

Wir formulieren SVP ‖ ‖ , CVP ‖ ‖ als Sprachen<br />

CVP ‖ ‖ = {(B, y, t) ∈ Z m×n+m+1 | ∃x ∈ Z n : ‖Bx − y‖ ≤ t}<br />

SVP ‖ ‖ = {(B, t) ∈ Z m×n+1 | ∃x ∈ Z n \{0} : ‖Bx‖ ≤ t}.<br />

Satz 7.2.1<br />

SVP l∞ , CVP l∞<br />

sind N P-vollständig.<br />

Beweis.<br />

I. Rucksack ≤ pol SVP ‖ ‖∞ . Reduziere gemäß f : (a 1 , . . . , a n , b) ↦→ (B, 1) mit<br />

⎡<br />

B = [b 1 , . . . , b n+1 ] =<br />

⎢<br />

⎣<br />

2 1<br />

. .. O .<br />

O 2 1<br />

2a 1 · · · 2a n 2b<br />

0 · · · 0 1<br />

⎤<br />

∈ Z (n+2)(n+1) .<br />

⎥<br />

⎦<br />

Beh.: (a 1 , . . . , a n , b) ∈ Rucksack ⇔ λ 1,∞ (L(B)) = 1.<br />

Bew.: “ ⇒“ (trivial) Sei (x 1 , . . . , x n ) ∈ {0, 1} n Rucksacklösung, Σ n i=1 a ix i = b. Dann gilt für<br />

x := (x 1 , . . . , x n , −1) t , dass<br />

Bx = Σ n i=1b i x i − b n+1 , ‖Bx‖ ∞ = 1 ,<br />

denn |2x i − 1| = 1 für x i ∈ {0, 1} <strong>und</strong> 2(Σ n i=1 a ix i − b) = 0.<br />

“ ⇐” Ang. ‖Σ n+1<br />

i=1 x ib i ‖ ∞ = 1. Wir zeigen 1. x 1 , . . . , x n ∈ {0, 1}, 2. Σ n i=1 a ix i = b.<br />

1. Offenbar gilt |2x i − 1| ≤ 1 für i = 1, . . . , n. Aus 2x i − 1 = 0 folgt der Widerspruch x i = 1 2 .<br />

Somit gilt 2x i − 1 = ±1 <strong>und</strong> x i ∈ {1, 0} für i = 1, . . . , n. Offenbar sichert die letzte Zeile von B,<br />

dass |x n+1 | = 1.<br />

2. O.B.d.A. sei x n+1 = −1. Wegen |x n+1 | ≤ 1, x n+1 ≠ 0 liefert die Multiplikation von x mit<br />

−sign(x n+1 ) dass x n+1 = −1. Aus 2 | ∑ n<br />

i=1 a ix i − b| ≤ 1 folgt ∑ n<br />

i=1 a ix i = b.<br />

II. Rucksack ≤ pol CVP l∞ : Reduziere gemäß f : (a 1 , . . . , a n , b) ↦→ (B ′ , y, 1) mit<br />

⎡<br />

⎤<br />

2 1<br />

[B ′ . .. , y] = ⎢<br />

O .<br />

⎥<br />

⎣ O 2 1 ⎦ ∈ Z(n+1)2 .<br />

2a 1 · · · 2a n 2b<br />

Wir zeigen: (a 1 , ..., a n , b) ∈ Rucksack ⇔ (B ′ , y, 1) ∈ CVP.<br />

“⇒” trivial. “⇐” Aus ‖B ′ x − y‖ ∞ = 1 folgt (a 1 , . . . , a n , b) ∈ Rucksack nach Teil I des Beweises.<br />

<br />

Satz 7.2.1 wurde von van Emde Boas [EmBoas 81] bewiesen. Er ist wichtig für den Fall,<br />

dass man Quantencomputer bauen kann. Für Quantencomputer sind Faktorisieren ganzer Zahlen,<br />

Brechen von RSA, Diskreter Logarithmus in pol.-Zeit. Aber P ≠ N P, d.h. P Qu ≠ N P Qu gilt<br />

wohl weiter.


7.2. N P-VOLLSTÄNDIGKEIT VON SVP l∞ , CVP l∞ , CVP l2 . 65<br />

Satz 7.2.2<br />

CVP l2 ist N P-vollständig,( l 2 = ‖ ‖ ).<br />

Beweis. Wir zeigen Rucksack ≤ pol CVP l2 <strong>und</strong> reduzieren gemäß f : (a 1 , . . . , a n , b) ↦→ (B ′ , y, √ n)<br />

mit<br />

⎡<br />

⎤<br />

2 1<br />

[B ′ . .. , y] = ⎢<br />

O .<br />

⎥<br />

⎣ O 2 1 ⎦ ∈ Z(n+1)2 .<br />

2a 1 · · · 2a n 2b<br />

Zu zeigen: (a 1 , . . . , a n , b) ∈ Rucksack ⇔ (B ′ , y, √ n) ∈ CVP l2 .<br />

“⇒” Sei (a 1 , . . . , a n , b) ∈ Rucksack <strong>und</strong> Σ n i=1 a ix i = b, x i ∈ {0, 1} Rucksacklösung. Es folgt<br />

‖ ∑ n<br />

i=1 b ix i − b n+1 ‖ = ‖(±1, . . . , ±1, 0)‖ = √ n.<br />

“⇐” Ang. ‖Σ n i=1 b ix i −y‖ 2 ≤ √ n für x 1 , . . . , x n ∈ Z. Es folgt ‖Σ n i=1 b ix i −y‖ = √ n <strong>und</strong> x i ∈ {0, 1},<br />

somit Σ n i=1 a ix i = b.<br />

<br />

Vergleich CVP, SVP für die l 2 -Norm. SVP ist nicht schwieriger als CVP, es gilt<br />

SVP ≤ pol,multi CVP, d.h. SVP ≤ Cook CVP, siehe [MG02, Sektion 4]. Wir vereinfachen SVP <strong>und</strong><br />

CVP zu GAP-SVP γ <strong>und</strong> GAP-SVP γ mit γ ≥ 1.<br />

GAP-SVP γ -Problem. Gesucht ist ein deterministischer Algorithmus, der alle Ja-Instanzen akzeptiert<br />

<strong>und</strong> alle Nein-Instanzen ablehnt <strong>und</strong> beliebig reagiert, falls die Eingabe weder Ja- noch<br />

Nein-Instanz ist.<br />

Ja-Instanzen sind Paare (B, t) ∈ Z m×n+1 , so dass ∃x ∈ Z n \{0} : ‖Bx‖ ≤ t.<br />

Nein-Instanzen sind Paare (B, t) ∈ Z m×n+1 , so dass ∀x ∈ Z n \{0} : ‖Bx‖ ≥ γt.<br />

GAP-CVP γ -Problem. Gesucht ist ein deterministischer Algorithmus, der alle Ja-Instanzen akzeptiert<br />

<strong>und</strong> alle Nein-Instanzen ablehnt <strong>und</strong> beliebig reagiert, falls die Eingabe weder Ja- noch<br />

Nein-Instanz ist.<br />

Ja-Instanzen sind Tripel (B, y, t) ∈ Z m×n+m+1 mit ∃x ∈ Z n : ‖Bx − y‖ ≤ t.<br />

Nein-Instanzen sind Tripel (B, y, t) ∈ Z m×n+m+1 mit ∀x ∈ Z n : ‖Bx − y‖ ≥ γt.<br />

Satz 7.2.3<br />

GAP-CVP √ ist N P-hart.<br />

1+8/n<br />

Beweis.<br />

Wir zeigen Rucksack ≤ pol GAP-CVP √ 1+8/n , es folgt N P ≤ pol GAP-CVP √ 1+8/n . Wir<br />

reduzieren gemäß f : (a 1 , . . . , a n , b) ↦→ (B ′ , y, √ n) mit<br />

⎡<br />

⎤<br />

2 1<br />

[B ′ . .. |y] := ⎢<br />

O .<br />

⎥<br />

⎣ O 2 1 ⎦ ∈ Z(n+1)2 .<br />

3 a 1 · · · 3 a n 3 b<br />

Korrektheit der Reduktion.<br />

(a 1 , . . . , a n , b) ∈ Rucksack ⇒ (B ′ , y, √ n) Ja-Instanz, d.h. ∃x ∈ {0, 1} n : ‖B ′ x−y‖ ≤ √ n.<br />

(a 1 , . . . , a n , b) ∉ Rucksack ⇒ (B ′ , y, √ n) Nein-Instanz. (wird wie folgt gezeigt)<br />

Im Fall (a 1 , . . . , a n , b) ∉ Rucksack gilt für x ∈ Z n entweder ∃i : x i ∉ {0, 1}, somit |2x − 1| ≥ 3,


66 KAPITEL 7. N P-VOLLSTÄNDIGE GITTERPROBLEME<br />

|2x i − 1| 2 ≥ 9 = 1 + 8, oder ∑ n<br />

i=1 a ix i ≠ b, somit 9(Σ n i=1 a ix i − b) 2 ≥ 9. Wegen |2x i − 1| ≥ 1 für<br />

x i ∈ Z folgt ∀x ∈ Z n : ‖B ′ x − y‖ ≥ √ n + 8. Somit ist (B ′ , y, √ n) Nein-Instanz.<br />

<br />

Satz 7.2.4 (MG02, Cor. 3.9, 3.11)<br />

GAP-CVP γ ist N P-hart für γ = c log n <strong>und</strong> γ = (log n) c für alle c > 0.<br />

Satz 7.2.5 (Ajtai 1998, Micciancio 2001, MG02, Sektion 4)<br />

GAP-SVP γ ist für γ < √ 2 N P-hart bzgl. probabilistischen Karp-Reduktionen.<br />

Satz 7.2.6 (Khot 2005)<br />

GAP-SVP γ ist für beliebige γ > 1 N P-hart bzgl. probabilistischen Karp-Reduktionen.<br />

Die probabilistischen Karp-Reduktionen von Khot erzeugen recht große Zahlen polynomialer<br />

Länge.<br />

Probabilistische Karp-Reduktionen werden erklärt wie ≤ pol , aber die pol. Zeit Transformation<br />

f = f(x, w) benutzt einen Münzwurf w. Der Satz von Ajtai-Micciancio zeigt<br />

Rucksack, N P ≤ pol,prob. SVP l2 .<br />

Die Reduktion Rucksack ≤ pol SVP konnte bisher nur für probabilistische Karp-Reduktionen<br />

gezeigt werden. Man reduziert Rucksack auf das CVP-Problem eines <strong>Gitter</strong>s L(b 1 , ..., b n+1 ) <strong>und</strong><br />

benötigt für die Korrektheit, dass λ 1 (L(b 1 , ..., b n )) > √ 2n. Diese Bedingung kann man nur probabilistisch<br />

sichern. Wir geben die Reduktion ohne diese nicht triviale Bedingung zu sichern. Wir<br />

reduzieren Rucksack auf SVP durch die Reduktion<br />

f : (a 1 , . . . , a n , b) ↦→ (B, √ n) mit<br />

B = [b 1 , . . . , b n+1 ] =<br />

⎡<br />

⎢<br />

⎣<br />

2 1<br />

. .. O .<br />

√<br />

O<br />

√<br />

2<br />

√<br />

1<br />

n a1 · · · n an<br />

√ n b<br />

0 · · · 0 n<br />

⎤<br />

∈ R (n+2)×(n+1) .<br />

⎥<br />

⎦<br />

Satz 7.2.7<br />

Rucksack ≤ pol SVP falls für (a 1 , ..., a n , b) ∈ Rucksack <strong>und</strong> f(a 1 , ..., a n , b) := ([b 1 , ..., b n+1 ] gilt<br />

dass λ 1 (L(b 1 , ..., b n )) > √ 2n.<br />

Beweis. (a 1 , . . . , a n , b) ∈ Rucksack impliziert (B, √ 2n) ∈ SVP, denn für jede Rucksack-Lösung<br />

Σ n i=1 a ix i = b, x i ∈ {0, 1} gilt |2x i − 1| = 1 <strong>und</strong><br />

‖Σ n i=1b i x i − b n+1 ‖ = ‖(±1, . . . , ±1, 0, √ n)‖ = √ 2n.<br />

Umgekehrt sichert λ 1 (L(b 1 , ..., b n )) > √ 2n dass (B, √ 2n) ∈ SVP ⇒ (a 1 , . . . , a n , b) ∈ Rucksack:<br />

Angenommen ‖Σ n i=1 b ix i + b n+1 x n+1 ‖ ≤ √ 2n. Wegen λ 1 (L(b 1 , ..., b n )) > √ 2n gilt ∑ n<br />

i=1 a ix i +<br />

x n+1 b = 0 mit x n+1 ≠ 0, dabei gilt |x n+1 | ≤ 1, denn andernfalls wäre ‖Σ n i=1 b ix i + b n+1 x n+1 ‖ ≥<br />

2 √ n > √ 2n.<br />

Sei O.B.d.A. x n+1 = −1. Es folgt |2x i − 1| = 1 für i = 1, . . . , n, somit x i ∈ {0, 1}. Also<br />

(a 1 , . . . , a n , b) ∈ Rucksack.


Kapitel 8<br />

Konstruktion eines kürzesten<br />

<strong>Gitter</strong>vektors<br />

Die Algorithmen zur Blockreduktion benötigen einen kürzesten <strong>Gitter</strong>vektor ungleich 0. Alg. 8.1.1<br />

Enum [SE94, SH95] findet einen kürzesten <strong>Gitter</strong>vektor durch vollständige Aufzählung kurzer<br />

<strong>Gitter</strong>vektoren. Die Laufzeit von Enum ist im worst case exponentiell n n/2+o(n) . New Enum’s<br />

Laufzeit ist unter GSA <strong>und</strong> der Volumen Heuristik polynomiell für <strong>Gitter</strong> L kleiner Dichte, so<br />

dass ‖b 1 ‖ eπ √ n ≤ γn 1/2 (det L) 1/n zu gegebenem b 1 [S10]. New Enum führt die Stufen (u t , ..., u n )<br />

geordnet nach aufsteigendem t <strong>und</strong> zu festem t mit absteigender Erfolgsquote β t durch.<br />

8.1 Algorithmus mit vollständiger Aufzählung<br />

Gegeben sei eine Basis B = [b 1 , . . . , b n ] = QR ∈ R m×n . Wir berechnen ein b ∈ L(B) mit ‖b‖ =<br />

l 2 (b) = λ 1 (L). Sei b 1 , . . . , b n ∈ R m die Basis mit zugehörigem Orthogonalsystem ̂b 1 , . . . , ̂b n <strong>und</strong><br />

Gram-Schmidt-Koeffizienten µ i,j , also b i = ∑ i<br />

j=1 µ ̂b i,j j = ∑ i<br />

j=1 r i,j/r i,îbj für i = 1, . . . , n.<br />

Zur orthogonalen Projektion π i : R m → span(b 1 , . . . , b i−1 ) ⊥ bezeichne:<br />

c t (u t , . . . , u n ) := ‖π t ( ∑ n<br />

i=t u ib i )‖ 2 = ∑ n<br />

i=t (∑ i<br />

j=t u ir j,i ) 2 .<br />

Die Funktion u ′ := next(u, r) liefert zu u ∈ Z <strong>und</strong> r ∈ R die in der Reihenfolge nach u<br />

betragsmäßig nächste, ganze Zahl zur reellen Zahl r (siehe Grafik 8.1.1). Es gilt:<br />

• |u − r| ≤ |u ′ − r| ≤ |u − r| + 1<br />

• sign(u ′ − r) ≠ sign(u − r)<br />

Falls es zu r zwei ganze Zahlen mit Abstand 1 2<br />

gibt, fordern wir zusätzlich, daß zunächst der<br />

kleinere Wert gewählt wird, also aus |u − r| = |u ′ − r| folgt u < r < u ′ .<br />

r<br />

✛<br />

✲<br />

3. 1. 2. 4.<br />

Z<br />

Abbildung 8.1.1: Reihenfolge der Approximationen bei der Iteration u ′ := next(u· , r)<br />

67


68 KAPITEL 8. KONSTRUKTION EINES KÜRZESTEN GITTERVEKTORS<br />

Algorithmus 8.1.1, Enum [SE94],<br />

EINGABE: B = QR ∈ Z m×n , R = [r i,j ] 1≤i,j≤n ∈ R n×n .<br />

1. FOR i = 1, . . . , n DO ˜c i := u i := ũ i := y i := 0.<br />

Finden eines kürzesten <strong>Gitter</strong>vektors<br />

2. t := 1, ũ 1 := u 1 := 1, c min<br />

1 := ˜c 1 := r 2 1,1. /⋆ stets ist ˜c t = c t (ũ t , . . . , ũ n ) <strong>und</strong><br />

3. WHILE t ≤ n DO<br />

3.1 ˜c t := ˜c t+1 + (y t + ũ t )rt,t<br />

2<br />

3.2 IF ˜c t < c min<br />

1 THEN<br />

IF t > 1 THEN t := t − 1, y t :=<br />

c min<br />

1 = c 1 (u 1 , ..., u t ) ist aktuelles Minimum von c 1 ⋆/<br />

n ∑<br />

i=t+1<br />

ũ i r t,i /r t,t , ũ t := ⌊−y t ⌉<br />

ELSE c min<br />

1 = ˜c 1 , FOR i = 1, . . . , n DO u i := ũ i<br />

{<br />

ũ t + 1 falls t = t max<br />

ELSE, t := t + 1, ũ t :=<br />

.<br />

next(ũ t , −y t ) sonst<br />

/⋆ t max bezeichne den bisherigen maximalen Wert von t vor der Erhöhung ⋆/<br />

AUSGABE: Minimalstelle (u 1 , . . . , u n ) ∈ Z n \ {0} <strong>und</strong> Minimalwert c min<br />

1 = λ 2 1 für Funktion c 1<br />

Die Korrektheit von Alg. 8.1.1 folgt aus den folgenden Beobachtungen:<br />

• Stets gilt: ˜c t = c t (ũ t , , . . . , ũ n ). Beweis durch Induktion über Anzahl der Iterationen. Durch<br />

die Zuweisungen im ersten Schritt gelten die Behauptungen vor der ersten Iteration (Induktionsverankerung).<br />

Induktionsschluß: Es gilt für y 1 :=<br />

n ∑<br />

i=t+1<br />

ũ i r t,i dass<br />

c t (ũ t , . . . , ũ n ) = c t+1 (ũ t+1 , . . . , ũ n ) + ( ∑ n<br />

i=t<br />

} {{ } ũir<br />

) 2<br />

t,i = ˜ct+1 + (y t + ũ t ) 2 rt,t.<br />

2<br />

nach Ind.Ann. = ˜c t+1<br />

• Der Algorithmus zählt in Depth-First-Order alle Vektoren (ũ t , . . . , ũ n ) ∈ Z n−t+1 \ {0} für<br />

t = 1, . . . , n auf mit c t (ũ t , . . . , ũ n ) < c min<br />

1 (c min<br />

1 ist das aktuelle Minimum der Funktion c 1 ).<br />

Es werden nur Vektoren aufgezählt so dass ũ i > 0 für das größte i mit ũ i ≠ 0.<br />

• Für feste ũ t+1 , . . . , ũ n liefert die Folge der ũ t -Werte, erzeugt durch next(·ũ t , −y t ) monoton<br />

wachsende Werte |y t + ũ t |, c t (ũ t , . . . , ũ n ). Wenn ˜c t ≥ c min<br />

1 für den aktuellen Vektor<br />

(ũ t , . . . , ũ n ), dann kann die Aufzählung der weiteren ũ t -Werte entfallen.<br />

8.2 Algorithmus mit geschnittener Aufzählung<br />

Wir schneiden die Aufzählung an der Stelle (ũ t , ..., ũ n ) ab, wenn nach der Vol. Heur. ein kürzerer<br />

Vektor ∑ n<br />

i=1 ũib i nur mit Wahrscheinlichkeit < 2 −s zu gegebenem s zu erwarten ist, siehe [SH95].<br />

8.2.1 Volumen-Heuristik <strong>und</strong> Gauß-ENUM<br />

Folgendes Lemma geht auf C.F. Gauß zurück. Für nicht zufällige z ist es die Volumen-Heuristik.<br />

Lemma 8.2.1 (Volumen-Heuristik)<br />

Sei S ⊆ span(L) Jordan-meßbar, z ∈ R span(L)<br />

mod L zufällig, dann gilt:<br />

E z [ |(z + S) ∩ L|] = vol(S) / det L.


8.2. ALGORITHMUS MIT GESCHNITTENER AUFZÄHLUNG 69<br />

Beweis.<br />

Denn<br />

1<br />

det L =<br />

Anzahl <strong>Gitter</strong>punkte<br />

Volumen Gr<strong>und</strong>masche<br />

Anzahl <strong>Gitter</strong>punkte<br />

= . <br />

Volumeneinheit<br />

Angenommen, wir halten (ũ t , . . . , ũ n ) ∈ Z n−t+1 \ {0} fest <strong>und</strong> suchen ũ 1 , . . . , ũ t−1 ∈ Z mit<br />

c 1 (ũ 1 , . . . , ũ n ) < c min<br />

1 . Setze L t := L(b 1 , . . . , b t−1 )<br />

Wir addieren zum gegebenem <strong>Gitter</strong>vektor b = ∑ n<br />

i=t ũib i einen Vektor b = ∑ t−1<br />

i=1 ũib i ∈ L t so<br />

daß ∥ ∥b + b ∥ 2 < c min<br />

1 . Wir zerlegen b in orthogonale Anteile (es sei Q = [q 1 , ..., q n ] mit B = QR):<br />

(8.1)<br />

b =<br />

∑t−1<br />

n∑<br />

n∑ n∑<br />

ũ i r j,i q j + ũ i r j,i q j = −z + y<br />

j=1 i=1<br />

} {{ }<br />

−z∈span(L t)<br />

j=t i=t<br />

} {{ }<br />

y∈span(L t) ⊥<br />

Wir suchen einen Punkt in (b + L t ) ∩ B t−1 (y, ρ t ) in der Kugel B t−1 (y, ρ t ) der Dimension t − 1<br />

mit Mittelpunkt y <strong>und</strong> Radius ρ t = √ c min<br />

1 − ˜c t . Es gilt für b = −z + y:<br />

∣ ( b + L t<br />

)<br />

∩ Bt−1<br />

(<br />

y, ρt<br />

)∣ ∣ =<br />

∣ ∣Lt ∩ B t−1 (z, ρ t ) ∣ ∣ .<br />

Die Grafik 8.2.1 verdeutlicht diese Aufgabe, hier ist S( √ c min<br />

1 − ˜c t , y) = B t−1<br />

(<br />

y, ρt<br />

)<br />

, L = Lt .<br />

<br />

✻<br />

Punkt in b + L<br />

7<br />

✾<br />

❖<br />

y<br />

0<br />

z<br />

b + span ( L )<br />

<br />

✸<br />

b ∈ L<br />

✛<br />

Sphäre in span(L)<br />

S (√ c 1 − ˜c t , y ) mit Radius √ c 1<br />

Abbildung 8.2.1: Volumenheuristik bei Gauß-ENUM<br />

Wir wenden die Volumen-Heuristik an auf das <strong>Gitter</strong> L t <strong>und</strong> die Kugel B t−1 (0, ρ t ) <strong>und</strong> erhalten<br />

für zufällige z ∈ span(L t ) die Erfolgsquote β t :<br />

β t = E z<br />

[ ∣ ∣<br />

{<br />

(ũ1 , . . . , ũ t−1 ) ∈ Z t−1<br />

: c 1 (ũ 1 , . . . , ũ t−1 ) < c min<br />

1<br />

}∣] ∣ = Vt−1 ρ t−1 / det L t<br />

t<br />

Wir schneiden die weitere Aufzählung an der Stelle (ũ 1 , . . . , ũ t−1 ) ab, falls β t < 2 −s . Je größer<br />

s, desto umfangreicher die Aufzählung. Für s = ∞ erhalten wir die vollständige Aufzählung.<br />

Ersetzen von Schritt 3.2 in Alg. 8.1.1 durch<br />

IF β t > 2 −s<br />

THEN<br />

liefert Alg. 8.2.1 genannt Gauß-ENUM [SH95].


70 KAPITEL 8. KONSTRUKTION EINES KÜRZESTEN GITTERVEKTORS<br />

Algorithmus 8.2.1, Kürzester <strong>Gitter</strong>vektor durch geschnittene Aufzählung<br />

EINGABE: Basis B = QR ∈ Z m×n , R = [r i,j ] 1≤i,j≤n ∈ R n×n<br />

1. FOR i = 1, . . . , n DO ˜c i := u i := ũ i := y i := 0.<br />

2. ũ 1 := u 1 := 1, t := 1, c min<br />

1 := ˜c 1 := ‖b 1 ‖ 2 /⋆ stets ist ˜c t = c t (ũ t , . . . , ũ n ) <strong>und</strong><br />

c min<br />

1 = c 1 (u 1 , ..., u t ) ist aktuelles Minimum von c 1 ⋆/<br />

3. WHILE t ≤ n DO<br />

3.1 ˜c t := ˜c t+1 + (y t + ũ t ) 2 rt,t<br />

2<br />

3.2 IF β t ≥ 2 −s THEN<br />

IF t > 1 THEN t := t − 1, y t := ∑ n<br />

i=t+1 ũi r t,i /r t,t , ũ t := ⌊−y t ⌉<br />

ELSE c min<br />

1 = ˜c 1 FOR i = 1, . . . , n DO u i := ũ i<br />

{<br />

ũ t + 1 falls t = t max<br />

ELSE t := t + 1, ũ t :=<br />

next(ũ t , −y t ) sonst<br />

/⋆ t max bezeichne den bisherigen maximalen Wert von t vor der Erhöhung ⋆/<br />

AUSGABE: Wahrscheinliche Minimalstelle (u 1 , . . . , u n ) <strong>und</strong> Minimalwert c min<br />

1 von c 1<br />

Die Volumen Heuristik nimmt an, dass die orthogonale Projektion von b = ∑ n<br />

i=t ũib i in L t =<br />

L(b 1 , ..., b t−1 ) modulo —mathcalL t zufällig ist. Wenn aber (ũ t , ..., ũ n ) mit den Koordinaten eines<br />

kürzesten <strong>Gitter</strong>vektors übereinstimmt, dann ist diese orthogonale Projektion von b nach Längenreduktion<br />

gegen b 1 , ..., b t−1 oft sehr klein <strong>und</strong> die Volumen Heuristik damit eher inkorrekt.<br />

Aufzählung mit Zurücklegen, New Enum. In der Neufassung New Enum von [S10] wird<br />

(ũ t , ..., ũ n ) im Falle β t < 2 −s nicht verworfen, sondern in eine Liste zur späteren Bearbeitung<br />

zurückgelegt. Nach Ende der Bearbeitung mit dem Wert s wird s erhöht auf s := s + 1 <strong>und</strong> der<br />

Aufzählungsprozess wird ausgehend von allen zurückgelegten (ũ t , ..., ũ n ) mit dem erhöhten s neu<br />

initiiert <strong>und</strong> zwar in der Reihenfolge mit aufsteigendem t <strong>und</strong> bei festem t mit absteigendem β t .<br />

Das Zurücklegen der (ũ t , ..., ũ n ) mit β t < 2 −s erfordert einen Speicherplatz der im allgemeinen<br />

exponentiell in n ist. Diesen grossen Speicherbedarf kann man dadurch reduzieren, dass man das<br />

Abspeichern der (ũ t , ..., ũ n ) unterlässt <strong>und</strong> nach Erhöhung von s den Algorithmus neu initiert.<br />

Dabei werden die schon behandelten Werte (ũ t , ..., ũ n ) nochmals behandelt. Diese Wiederholung<br />

erhöht die Laufzeit höchstens um den Faktor s des letzten s-Wertes. Dieser grösste s-Wert ist aber<br />

höchstens O(n ln n) so dass die Laufzeit nur um einen polynomiellen Faktor wächst.<br />

Ein einfache Abschneid-Methode (pruning) ersetzt die Bedingung IF β t ≥ 2 −s<br />

Schritt 3.2 durch<br />

IF c t ≤ n−t+1<br />

n<br />

c min<br />

1 THEN<br />

THEN von<br />

Diese Bedingung wurde in [SE94] initiiert <strong>und</strong> in [NR10] analysiert. Nguyen <strong>und</strong> Regev zeigen in<br />

[NR10], dass Modifizierung von Schritt 3.2 in<br />

IF c t ≤ n−t+1<br />

n<br />

λ 2 1 THEN<br />

ein kürzester <strong>Gitter</strong>vektor von zufälligen <strong>Gitter</strong>n mit Wahrscheinlichkeit 1/n gef<strong>und</strong>en wird. Für<br />

dieses Abschneiden muss man entweder λ 1 kennen oder eine hinreichend gute Approximation von<br />

λ 1 erraten.<br />

In [SE94] wird Schritt 3.2 angewandt in der modifizierten Form<br />

IF c t ≤ 1.05 n−t+1<br />

n<br />

c min<br />

1 THEN<br />

Mit diesem pruning wurden Subsetsum Probleme der Dimension ≤ 66 <strong>und</strong> fast aller Dichten<br />

durch Konstruktion kürzester Vektoren des CJLOSS-<strong>Gitter</strong>s fast immer gelöst [SE94]. Diese hohe<br />

Erfolgswahrscheinlichkeit beim Finden eines kürzesten <strong>Gitter</strong>vektors mit diesem pruning ist beweisbar<br />

unter GSA <strong>und</strong> der Volumen-Heuristik, die Methode ist effektiv für Dimension n ≤ 250,<br />

nach B. Lange, Februar 2011.


Kapitel 9<br />

<strong>Gitter</strong>reduktion in beliebiger<br />

Norm<br />

Bisher haben wir <strong>Gitter</strong> bezüglich der Euklidischen Norm reduziert. In diesem Kapitel betrachten<br />

wir allgemeine Normen. Besonders die sup-Norm ist von Interesse (siehe Kapitel 10). Bis auf<br />

den Gauß-Reduktionsalgorithmus aus Kapitel 3 für aus zwei Vektoren bestehende Basen ist die<br />

Reduktion in beliebiger Norm in der Praxis ”<br />

schwierig“.<br />

9.1 Gr<strong>und</strong>begriffe<br />

Sei ‖·‖ : R m → R eine beliebige Norm, d.h. es gilt für alle u, v ∈ R m <strong>und</strong> µ ∈ R:<br />

‖µv‖ = |µ| · ‖v‖<br />

(positive Homogenität)<br />

‖u + v‖ ≤ ‖u‖ + ‖v‖<br />

(Dreiecksungleichung)<br />

‖u‖ ≥ 0 für u ≠ 0 (positive Definitheit)<br />

Wir definieren zu einer gegebenen fest geordneten <strong>Gitter</strong>basis Abstandsfunktionen:<br />

Definition 9.1.1 (Abstandsfunktion F i )<br />

Sei b 1 , . . . , b n ∈ R m eine fest geordnete <strong>Gitter</strong>basis. Die i-te Abstandsfunktion (auch Höhen- oder<br />

Distanzfunktion) für 1 ≤ i ≤ n<br />

F i : span(b 1 , . . . , b n ) → R<br />

ist bezüglich der gegebenen Norm ‖·‖ definiert als:<br />

F 1 (x) := ‖x‖<br />

F i (x) :=<br />

min<br />

t 1,...,t i−1∈R<br />

∥ x − ∑ ∥<br />

i−1 ∥∥∥ t jb j = min F i−1 (x − tb i−1 )<br />

j=1 t∈R<br />

i = 2, 3, . . . , n<br />

Die Höhe F i eines Vektors ist sein Abstand zu dem von b 1 , . . . , b i−1 erzeugten Unterraum.<br />

Es gilt F i (x) = 0 genau dann, wenn x ∈ span(b 1 , . . . , b i−1 ). Man rechnet leicht nach, daß jede<br />

Abstandsfunktion F i eine Norm auf span(b 1 , . . . , b i−1 ) ⊥ ist. Im Fall der Euklidischen Norm ist<br />

F i (b i ) = ‖̂b i ‖ 2 . Die Determinante des <strong>Gitter</strong>s L = L(b 1 , . . . , b n ) ist:<br />

det L =<br />

n∏<br />

‖̂b i ‖ 2<br />

i=1<br />

71


72 KAPITEL 9. GITTERREDUKTION IN BELIEBIGER NORM<br />

Wie sieht die Gleichung det L = ∏ i ‖̂b i ‖ bezüglich F 1 , . . . , F n aus? Zu gegebener Norm ‖·‖ definieren<br />

wir:<br />

S ‖·‖ (1) := {x ∈ R m : ‖x‖ ≤ 1}<br />

Diese Menge ist konvex, nullsymmetrisch <strong>und</strong> abgeschlossen. Zu gegebener Norm ‖·‖ <strong>und</strong> <strong>Gitter</strong>basis<br />

b 1 , . . . , b n ∈ R m definiere<br />

(9.1)<br />

V i := vol {x ∈ span(b 1 , . . . , b i ) : ‖x‖ ≤ 1}<br />

} {{ }<br />

=span(b 1,...,b i)∩S ‖·‖ (1)<br />

i = 1, . . . , n<br />

Man beachte, daß sich Volumen stets auf die Euklidische Metrik bezieht.<br />

Lemma 9.1.2<br />

Für jede Basis b 1 , . . . , b n ∈ R m gilt:<br />

2 n<br />

n! ·<br />

n∏<br />

i=1<br />

‖̂b i ‖ 2<br />

F i (b i ) ≤ V n ≤ 2 n ·<br />

n∏<br />

i=1<br />

‖̂b i ‖ 2<br />

F i (b i )<br />

Bevor wir das Lemma beweisen, eine Folgerung: Da V n unabhängig von der Basis ist, gilt:<br />

Korollar 9.1.3<br />

Seien b 1 , . . . , b n <strong>und</strong> b ′ 1, b ′ 2, . . . , b ′ n Basen des <strong>Gitter</strong>s L, dann gilt:<br />

m∏<br />

m∏<br />

F i (b i ) ≤ n! F i ′ (b ′ i)<br />

i=1<br />

i=1<br />

oder<br />

m∏<br />

m∏<br />

F i ′ (b ′ i) ≤ n! F i (b i )<br />

i=1<br />

i=1<br />

Beweis (zu Lemma 9.1.2). Wir zeigen durch Induktion über n:<br />

2 n<br />

n! ·<br />

n∏<br />

i=1<br />

‖̂b i ‖ 2<br />

F i (b i ) ≤ V n ≤ 2 n ·<br />

n∏<br />

i=1<br />

‖̂b i ‖ 2<br />

F i (b i )<br />

−<br />

✛<br />

b1<br />

F 1(b 1)<br />

<br />

✲<br />

0 + b1<br />

F 1(b 1)<br />

Abbildung 9.1.1: Induktionsverankerung im Beweis zu Lemma 9.1.2<br />

• Induktionsverankerung n = 1: Es gilt (vergleiche Abbildung 9.1.1):<br />

V 1 = 2 · ‖b 1‖ 2<br />

‖b 1 ‖ = 2 · ‖̂b 1 ‖ 2<br />

F 1 (b 1 )<br />

• Induktionsschluß von n − 1 auf n: Wir wählen einen Punkt z = b n − ∑ n−1<br />

i=1 t ib i ∈ R n mit<br />

‖z‖ = F n (b n ) (siehe Abbildung 9.1.2). Man erhält eine obere Schranke für V n durch:<br />

V n ≤ 2 · V n−1 ·<br />

‖̂b n ‖ 2<br />

F n (b n )


9.1. GRUNDBEGRIFFE 73<br />

z<br />

<br />

♣♣<br />

♣♣♣♣♣<br />

♣<br />

♣♣♣♣<br />

♣♣♣<br />

♣<br />

♣♣♣ ♣♣♣ ♣♣♣♣ ♣♣♣♣<br />

♣♣♣♣♣<br />

♣<br />

♣<br />

♣♣<br />

♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣<br />

♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣<br />

0<br />

S n−1<br />

✻ +<br />

̂b n<br />

F n(b n)<br />

span(b 1 , . . . , b n−1 )<br />

S n<br />

❄−<br />

̂b n<br />

F n(b n)<br />

Abbildung 9.1.2: Induktionsschluß im Beweis zu Lemma 9.1.2<br />

Die konvexe Hülle von S n−1 <strong>und</strong> z (gepunktetes Gebiet in Abbildung 9.1.2) ist in S n enthalten.<br />

Da es sich um eine Pyramide mit Gr<strong>und</strong>fläche S n−1 <strong>und</strong> Höhe ‖̂b n‖ 2<br />

F n(b n)<br />

Es folgt wegen der Symmetrie:<br />

V n−1<br />

n · ‖̂b n ‖ 2<br />

F n (b n ) = vol n (konvexe Hülle von S n−1 <strong>und</strong> z) ≤ V n<br />

2<br />

2 · Vn−1<br />

n · ‖̂b n ‖ 2<br />

F n (b n ) ≤ V n<br />

Aus der Induktionsannahme erhalten wir:<br />

[ ] [<br />

V n ≥ 2 · Vn−1<br />

n · ‖̂b n ‖<br />

F n (b n ) ≥ 2<br />

n · ‖̂b n ‖<br />

·<br />

F n (b n )<br />

2 n−1<br />

(n − 1)! ·<br />

n−1<br />

∏<br />

i=1<br />

‖̂b i ‖ 2<br />

F i (b i )<br />

]<br />

= 2n<br />

n! ·<br />

handelt, gilt:<br />

n∏<br />

i=1<br />

‖̂b i ‖ 2<br />

F i (b i )<br />

Für die obere Schranke betrachten wir den Quader mit Gr<strong>und</strong>fläche S n−1 <strong>und</strong> Höhe<br />

Da S n in zwei dieser Quader enthalten ist (siehe Abbildung 9.1.2), gilt:<br />

Aus der Induktionsannahme erhalten wir:<br />

V n ≤ 2 · V n−1 ·<br />

Es gilt für das erste sukzessive Minimum:<br />

V n ≤ 2 · V n−1 ·<br />

‖̂b n ‖ 2<br />

F n (b n )<br />

n−1<br />

‖̂b n ‖ 2<br />

F n (b n ) ≤ 2 · ‖̂b n ‖ 2<br />

F n (b n ) · ∏ ‖̂b i ‖ 2<br />

2n−1 ·<br />

F i (b i ) = 2n ·<br />

i=1<br />

n∏<br />

i=1<br />

‖̂b i ‖ 2<br />

F i (b i )<br />

‖̂b n‖<br />

F n(b n) .<br />

<br />

Satz 9.1.4 (Kaib 1994)<br />

Für jede <strong>Gitter</strong>basis b 1 , . . . , b n ∈ R m gilt:<br />

min F i(b i ) ≤ λ 1,‖·‖ ≤<br />

i=1,...,n<br />

(<br />

n! ·<br />

n∏<br />

F i (b i )<br />

i=1<br />

) 1<br />

n


74 KAPITEL 9. GITTERREDUKTION IN BELIEBIGER NORM<br />

Zum Vergleich für die l 2 -Norm: Wir wissen aus der Minkowski’schen Ungleichung 2.3.1 (Seite 23),<br />

daß wegen λ 1,‖·‖ ≤ λ 2,‖·‖ ≤ · · · ≤ λ n,‖·‖ für das <strong>Gitter</strong> L = L(b 1 , . . . , b n ) gilt:<br />

min<br />

i=1,...,n ‖̂b i ‖ ≤ λ i,l2 ≤ (γ n ) 12 · (det L) 1 n<br />

Beweis (zu Satz 9.1.4).<br />

Betrachten wir beide Abschätzungen:<br />

• Wir zeigen:<br />

min<br />

i=1,...,n F i(b i ) ≤ λ i,‖·‖<br />

Sei b = ∑ n<br />

i=1 t ib i ∈ L mit ‖b‖ = λ 1,‖·‖ . Setze s := max {i | t i ≠ 0}. Wegen t s ∈ Z \ {0} gilt:<br />

Die Behauptung folgt aus:<br />

λ 1,‖·‖ = ‖b‖ ≥ F s (b) = F s (t s b s ) = |t s | ·F s (b s ) ≥ F s (b s )<br />

}{{}<br />

≥1<br />

min<br />

i=1,...,n F i(b i ) ≤ F s (b s ) ≤ λ i,‖·‖<br />

• Sei L = L(b 1 , . . . , b n ). Aus dem zweiten Satz von Minkowski [Mi1896] folgt wegen λ 1,‖·‖ ≤<br />

λ 2,‖·‖ ≤ · · · ≤ λ n,‖·‖ :<br />

(9.2)<br />

V n · λ n 1,‖·‖ ≤ 2n · det L<br />

Aus Lemma 9.1.2 wissen wir:<br />

(9.3)<br />

Aus det L = ∏ n<br />

i=1 ‖̂b i ‖ 2 erhalten wir:<br />

λ n 1,‖·‖ ≤ 2n · V −1<br />

n ·<br />

≤ 2 n ·<br />

= n! ·<br />

n!<br />

2 n ·<br />

n∏<br />

i=1<br />

F i (b i )<br />

≥ 1<br />

‖̂b i ‖ 2<br />

V n<br />

n∏<br />

‖̂b i ‖ 2 (wegen (9.2))<br />

i=1<br />

(<br />

n!<br />

n∏<br />

2 n ·<br />

i=1<br />

n∏<br />

F i (b i )<br />

i=1<br />

) ( n<br />

)<br />

F i (b i ) ∏<br />

· ‖̂b i ‖ 2<br />

‖̂b i ‖ 2 i=1<br />

(wegen (9.3))<br />

<br />

Es gilt für das Produkt der sukzessiven Minima:<br />

Satz 9.1.5<br />

Für jede <strong>Gitter</strong>basis b 1 , . . . , b n ∈ R m gilt:<br />

1<br />

n! ·<br />

n∏<br />

F i (b i ) ≤<br />

i=1<br />

n∏<br />

n∏<br />

λ i,‖·‖ ≤ n! · F i (b i )<br />

i=1<br />

Zum Vergleich: Die Minkowski’sche Ungleichung für die l 2 -Norm, Satz 2.3.1 auf Seite 23, besagt:<br />

n∏<br />

λ i,l2 ≤ (γ n ) n2 · det L<br />

i=1<br />

i=1


9.2. REDUZIERTE BASEN ZUR NORM ‖·‖ 75<br />

Beweis (zu Satz 9.1.5). Die Behauptung folgt aus dem Beweis zu Satz 9.1.4 durch Anwenden<br />

des zweiten Satzes von Minkowski:<br />

det L<br />

n!<br />

≤ V n<br />

2 n ·<br />

n∏<br />

λ i,‖·‖ ≤ det L<br />

i=1<br />

<br />

9.2 Reduzierte Basen zur Norm ‖·‖<br />

Analog zur Euklidischen Norm führen wir Reduktionsbegriffe ein <strong>und</strong> versuchen, Eigenschaften<br />

reduzierter Basen zu beweisen.<br />

9.2.1 Definitionen<br />

Wir übertragen die Reduktionsbegriffe auf den Fall einer beliebig vorgegebenen Norm:<br />

Definition 9.2.1 (HKZ-reduzierte Basis zu ‖·‖)<br />

Eine geordnete Basis b 1 , . . . , b n ∈ R m ist eine HKZ-reduzierte Basis zur Norm ‖·‖, wenn:<br />

a) F j (b i ) ≤ F j (b i ± b j ) für 1 ≤ j < i ≤ n (längenreduziert)<br />

b) F i (b i ) = min {F i (b) | b ∈ L(b i , b i+1 , . . . , b n ) \ {0} } für i = 1, . . . , n<br />

Beim zweiten Kriterium kann b auch aus L(b 1 , . . . , b n ) \ {0} gewählt werden. Für die Eigenschaft<br />

längenreduziert“ gilt mit 1 ≤ j < i ≤ n:<br />

”<br />

F j (b i ) ≤ F j (b i ± b j ) ⇐⇒ F j (b i ) = min<br />

t∈Z F j (b i + t · b j )<br />

Diese Äquivalenz nutzt die Konvexität der Norm F j . Die ”<br />

⇐“-Richtung folgt unmittelbar <strong>und</strong> für<br />

die ”<br />

⇒“-Richtung beachtet man, daß gilt:<br />

F j (b i ) ≤ F j (b i − b j ) <strong>und</strong> F j (b i ) ≤ F j (b i + b j )<br />

Definition 9.2.2 (β-reduzierte Basis zu ‖·‖)<br />

Sei b 1 , . . . , b n ∈ R m eine geordnete Basis <strong>und</strong> β ∈ {2, 3, . . . , n} gegeben. b 1 , . . . , b n ∈ R m heißt<br />

β-reduziert (blockreduziert mit Blockgröße β) zur Norm ‖·‖, wenn:<br />

a) F j (b i ) ≤ F j (b i ± b j ) für 1 ≤ j < i ≤ n<br />

b) F i (b i ) = min { F i (b) ∣ ∣ b ∈ L(b i , b i+1 , . . . , b min(i+β−1,n) ) \ {0} } für i = 1, . . . , n − 1<br />

Wir betrachten den Spezialfall einer 2-reduzierten Basis zu ‖·‖: Die geordnete Basis b 1 , . . . , b n ∈<br />

R m ist 2-reduziert zur Norm ‖·‖, wenn:<br />

a) F j (b i ) ≤ F j (b i ± b j ) für 1 ≤ j < i ≤ n<br />

b) F i (b i ) = min { F i (sb i + tb i+1 ) ∣ ∣ (s, t) ∈ Z 2 \ {(0, 0)} } für i = 1, . . . , n − 1<br />

Eine 2-reduzierte Basis zur l 2 -Norm ist eine LLL-reduzierte Basis.


76 KAPITEL 9. GITTERREDUKTION IN BELIEBIGER NORM<br />

9.2.2 Eigenschaften 2-reduzierter <strong>Gitter</strong>basen<br />

Wir untersuchen die Eigenschaften 2-reduzierter Basen <strong>und</strong> vergleichen die Resultate mit denen<br />

im Spezialfall der l 2 -Norm (LLL-reduziert) aus Kapitel 3.<br />

Satz 9.2.3<br />

Sei b 1 , . . . , b n ∈ R m eine 2-reduzierte Basis zur Norm ‖·‖. Dann gilt für i = 1, . . . , n − 1:<br />

F i+1 (b i+1 ) ≥ 1 2 · F i(b i )<br />

Zum Vergleich: Für die l 2 -Norm ist mit δ = 3 4 nach Lemma 4.1.2 auf Seite 31 ‖̂b i ‖ 2 2 ≤ 2 · ‖̂b i+1 ‖ 2 2,<br />

also:<br />

√<br />

1<br />

‖̂b i+1 ‖ 2 ≥<br />

2 · ‖̂b i ‖ 2<br />

Beweis (zu Satz 9.2.3).<br />

Nach Definition gilt<br />

a) F j (b i ) ≤ F j (b i ± b j ) für 1 ≤ j < i ≤ n <strong>und</strong><br />

b) F i (b i ) = min { F i (sb i + tb i+1 ) ∣ ∣ (s, t) ∈ Z 2 \ {(0, 0)} } für i = 1, . . . , n − 1.<br />

Die Behauptung F i (b i ) ≤ 1 2 · F i(b i+1 ) erhalten wir aus:<br />

F i (b i ) ≤ F i (b i+1 )<br />

≤ min {F i (b i+1 − tb i ) | t ∈ Z}<br />

≤ F i (b i+1 ) + 1 2 · F i(b i )<br />

(wegen Eigenschaft b))<br />

(wegen Eigenschaft a))<br />

Wir nutzen, daß die Abstandsfunktionen F i jeweils Normen auf span(b 1 , . . . , b i−1 ) ⊥ sind:<br />

F i+1 (b i+1 ) = min {F i (b i+1 − sb i ) | s ∈ R}<br />

= min { ( ) ∣ [<br />

F i bi+1 − (r + t)b i t ∈ Z, r ∈ −<br />

1<br />

2 , + ] }<br />

1<br />

2<br />

(<br />

≤ min {F i (b i+1 − tb i ) | t ∈ Z} + F 1 i 2 · b )<br />

i<br />

≤ min {F i (b i+1 − tb i ) | t ∈ Z} + 1 2 · F i(b i )<br />

(Definition)<br />

(Dreiecksungleichung)<br />

(Linearität)<br />

<br />

Im folgenden Satz untersuchen wir, wie gut im allgemeinen Fall der erste Vektor der 2-reduzierten<br />

Basis das erste sukzessive Minimum approximiert.<br />

Satz 9.2.4<br />

Sei b 1 , . . . , b n ∈ R m eine 2-reduzierte Basis zur Norm ‖·‖. Dann gilt:<br />

‖b 1 ‖ ≤ 2 n−1 · λ 1,‖·‖<br />

Zum Vergleich: Für die l 2 -Norm wissen wir mit δ = 3 4<br />

aus Satz 4.1.4 auf Seite 32:<br />

‖b 1 ‖ 2<br />

≤ ( ) n−1<br />

4 2<br />

3<br />

· λ 1,l2


9.2. REDUZIERTE BASEN ZUR NORM ‖·‖ 77<br />

Beweis. Sei b = ∑ n<br />

i=1 t ib i ‖·‖-minimaler Vektor in L = (b 1 , . . . , b n ) \ {0}. O.B.d.A. sei t n ∈<br />

Z \ {0}. Es gilt:<br />

‖b‖ ≥ F n (b)<br />

= min<br />

t 1,...,t n−1∈R<br />

= F n (t n b n )<br />

∥ b − ∑ ∥<br />

n−1 ∥∥∥ t jb j (Definition)<br />

j=1<br />

= |t n | · F n (b n ) (Linearität der Norm F n )<br />

≥ F n (b n ) (wegen t n ∈ Z \ {0})<br />

≥ 2 −n+1 · F 1 (b 1 ) (induktiv aus Satz 9.2.3)<br />

= ‖b 1 ‖ · 2 −n+1 (wegen F 1 (b i ) = ‖b i ‖ <strong>und</strong> ̂b 1 = b 1 )<br />

Wegen λ 1,‖·‖ = ‖b‖ folgt die Behauptung.<br />

<br />

9.2.3 Eigenschaften HKZ-reduzierter Basen<br />

Wir untersuchen die Eigenschaften von HKZ-Basen <strong>und</strong> vergleichen die Resultate, die wir im<br />

Spezialfall der l 2 -Norm in Kapitel 6.1 (Seite 49 <strong>und</strong> folgende) bewiesen haben. Es gilt für HKZreduzierte<br />

Basen zur Norm ‖·‖:<br />

Satz 9.2.5 (Lovász, Scarf 1992)<br />

Sei b 1 , . . . , b n eine HKZ-reduzierte Basis zu ‖·‖ des <strong>Gitter</strong>s L. Es gilt für i = 1, . . . , n:<br />

2<br />

i + 1 · ‖b i‖ ≤ λ i,‖·‖ ≤ i + 1 · F i (b i ) ≤ i + 1 · ‖b i ‖<br />

2<br />

2<br />

Zum Vergleich: Für die l 2 -Norm wissen wir aus Satz 6.2.3 auf Seite 51, daß für i = 1, . . . , n gilt:<br />

i + 3<br />

4<br />

· ‖b i ‖ ≤ λ i,l2 ≤ i + 1<br />

4<br />

‖b i ‖<br />

Beweis (zu Satz 9.2.5).<br />

Wir zeigen die untere <strong>und</strong> obere Schranke:<br />

• Wir zeigen 2<br />

i+1 · ‖b i‖ ≤ λ i,‖·‖ für i = 1, . . . , n. Angenommen, h 1 , . . . , h n ∈ L realisieren die<br />

sukzessiven Minima λ 1 , . . . , λ n , d.h. es ist ‖h i ‖ = λ i,‖·‖ für i = 1, . . . , n, <strong>und</strong> die Vektoren<br />

h 1 , . . . , h n sind linear unabhängig. Es gilt<br />

(9.4)<br />

max<br />

j≤i F i(h j ) ≥ F i (b i ),<br />

weil:<br />

– wegen dim (span(h 1 , . . . , h i )) = i ist max j≤i F i (h j ) ≠ 0 <strong>und</strong><br />

– b 1 , . . . , b n eine HKZ-reduzierte Basis ist, also<br />

F i (b i ) = min {F i (b) | b ∈ L(b i , . . . , b n ) \ {0} }<br />

gilt.<br />

Wir erhalten aus (9.4) <strong>und</strong> λ 1,‖·‖ ≤ λ 2,‖·‖ ≤ · · · ≤ λ n,‖·‖ :<br />

(9.5)<br />

λ i,‖·‖ = ‖h i ‖ = max<br />

j≤i ‖h i‖ ≥ F i (b i )


78 KAPITEL 9. GITTERREDUKTION IN BELIEBIGER NORM<br />

Wir wenden aus Beweis zu Satz 9.2.3 die Ungleichung<br />

min<br />

µ∈Z F j(x + µ · b j ) ≤ F j+1 (x) + 1 2 · F j(b j )<br />

rekursiv beginnend mit x := b i <strong>und</strong> j = i − 1 an:<br />

F i−1 (b i ) ≤ F i−1 (b i + µ i,i−1 · b i−1 )<br />

≤ F i (b i ) + 1 2 · F i−1(b i−1 )<br />

für alle µ i,i−1 ∈ Z<br />

für Minimalstelle µ i,i−1 ∈ Z<br />

Im nächsten Schritt sei x := b i + µ i,i−1 · b i−1 mit Minimalstelle µ i,i−1 ∈ Z <strong>und</strong> j := i − 1<br />

usw. Nach i − 1 Schritten erhalten wir mit Abschätzung (9.5) die Behauptung:<br />

(9.6)<br />

⎛<br />

⎞<br />

∑i−1<br />

‖b i ‖ = F 1 (b i ) ≤ F 1<br />

⎝b i + µ i,j · b j<br />

⎠ ≤ i + 1 · λ i,‖·‖<br />

2<br />

j=1<br />

• Wir zeigen für i = 1, . . . , n:<br />

Es gilt:<br />

≤ max<br />

j≤i<br />

λ i,‖·‖ ≤ i + 1<br />

2<br />

λ i,‖·‖ ≤ max F 1(b j )<br />

j≤i<br />

{<br />

}<br />

j−1<br />

F j (b j ) + 1 2 ·<br />

∑<br />

F t (b t )<br />

≤ max<br />

j≤i<br />

t=1<br />

· F i (b i ) ≤ i + 1<br />

2<br />

· ‖b i ‖<br />

(wegen F 1 (b) = ‖b‖)<br />

(wegen (9.6))<br />

{ j+1<br />

2<br />

· F j (b j ) } (wegen (9.6))<br />

≤ i+1<br />

2 · F 1(b i ) (wegen F t (b t ) ≤ F 1 (b j ) für t < j)<br />

≤ i+1<br />

2 · ‖b i‖ (wegen F 1 (b i ) = ‖̂b i ‖ ≤ ‖b‖)<br />

<br />

9.2.4 Eigenschaften β-reduzierter <strong>Gitter</strong>basen<br />

Wir untersuchen die Eigenschaften von HRZ-Basen <strong>und</strong> vergleichen die Resultate, die wir im<br />

Spezialfall der l 2 -Norm in Kapitel 6.4 (Seite 57 <strong>und</strong> folgende) bewiesen haben. Wir definieren:<br />

Definition 9.2.6 (α β )<br />

Wir setzen:<br />

{ ‖b1 ‖<br />

α β := sup<br />

F β (b β )<br />

∣<br />

b 1 , . . . , b n HKZ-reduzierte<br />

Basis <strong>und</strong> ‖·‖ Norm<br />

}<br />

Satz 9.2.7<br />

Für jede β-reduzierte Basis b 1 , . . . , b n zu ‖·‖ gilt:<br />

‖b 1 ‖ ≤ α ⌈ n−1<br />

β−1 ⌉<br />

β<br />

· λ 1,‖·‖


9.2. REDUZIERTE BASEN ZUR NORM ‖·‖ 79<br />

Beweis. Sei h i := F i (b i ). Bestimme Index µ mit minimalem h µ . Nach Satz 9.1.4 gilt h µ ≤ λ 1,‖·‖ .<br />

Für j < β sind die Basen b i , b i+1 . . . , b i+j HKZ-reduzierte Basen zur Norm F i . Nach Definition<br />

von α β <strong>und</strong> wegen α k ≤ α k+1 gilt:<br />

(9.7)<br />

h i ≤ α β · h i+j<br />

Wir erhalten durch wiederholtes Anwenden von (9.7):<br />

h 1 ≤ α β · h 1+1(β−1) ≤ αβ 2 · h 1+2(β−1) ≤ αβ 3 · h 1+3(β−1) ≤ . . . ≤ α ⌊ µ−1<br />

β−1⌋<br />

β<br />

· h 1+⌊<br />

µ−1<br />

β−1⌋(β−1)<br />

Insgesamt erhalten wir:<br />

h 1 ≤ α ⌈ µ−1<br />

β−1⌉<br />

β<br />

· h µ ≤ α ⌈ n−1<br />

β−1 ⌉<br />

β<br />

· λ 1,‖·‖<br />

<br />

Für die l 2 -Norm zeigt C.P. Schnorr [S87, Korollar 2.5], daß für<br />

(9.8)<br />

α β,l2<br />

:= sup<br />

{<br />

‖b 1 ‖ 2<br />

‖̂b β ‖<br />

: b 1, . . . , b n HKZ-reduzierte Basis<br />

}<br />

gilt, wobei α β,l2<br />

wird):<br />

als Quadrat von (9.8) definiert <strong>und</strong> als Korkine-Zolotareff-Konstante bezeichnet<br />

α β,l2<br />

≤ k 1+ln k<br />

2<br />

Analog zeigt man für beliebige Norm:<br />

α k ≤ k(k − 1) ln(k−1)<br />

Satz 9.2.8<br />

Jede β-reduzierte Basis b 1 , . . . , b n erfüllt für i = 1, . . . , n<br />

mit γ ′ β = (β!) 2 β ≈<br />

(<br />

β<br />

e<br />

) 2.<br />

2<br />

i + 1 · γ′ − i−β/2<br />

β−1<br />

β ≤ ‖b i‖<br />

≤ i + 1 · γ ′ n−β/2<br />

β−1<br />

β<br />

λ i,‖·‖ 2<br />

Zum Vergleich: In der l 2 -Norm gilt für die Hermite-Konstante γ β nach Satz 6.4.3 auf Seite 57:<br />

√<br />

4<br />

i + 3<br />

i−1<br />

β−1<br />

· γ−<br />

β<br />

≤ ‖b i‖<br />

λ i,l2<br />

≤<br />

√<br />

i + 3<br />

4<br />

· γ n−1<br />

β−1<br />

β<br />

Der Beweis zu Satz 9.2.8 ist im wesentlichen analog zum Beweis zur l 2 -Norm. Wichtiger ”<br />

Baustein“<br />

ist folgendes Analogon zu Lemma 6.4.5 auf Seite 58: Für jede β-reduzierte Basis b 1 , . . . , b n gilt:<br />

‖b 1 ‖ ≤ γ ′ β<br />

m−β/2<br />

β−1<br />

· M mit M := max<br />

n−β+2≤i≤n F i(b i )


80 KAPITEL 9. GITTERREDUKTION IN BELIEBIGER NORM<br />

9.3 Konstruktion einer HKZ-reduzierten <strong>Gitter</strong>basis<br />

Gegeben sei ein <strong>Gitter</strong> L vom Rang n. Wir konstruieren eine HKZ-reduzierte Basis in zwei Schritten,<br />

wobei die Konstruktion allerdings nicht effizient ist.<br />

1. Wir wählen für i = 1, . . . , n ein b i ∈ L mit:<br />

F i (b i ) = min {F i (b) | b ∈ L, F i (b) ≠ 0}<br />

Beachte, F i (b) ist definiert, da wir im i-ten Schritt bereits b 1 , . . . , b i−1 festgelegt haben. Es<br />

gilt genau dann F i (b) ≠ 0, wenn b /∈ span(b 1 , . . . , b i−1 ). Die Vektoren b 1 , . . . , b n bilden eine<br />

Basis von L: Falls dies nicht der Fall ist, existiert ein minimales i, so daß b 1 , . . . , b i kein<br />

primitives System ist:<br />

(9.9)<br />

(9.10)<br />

L ∩ span(b 1 , . . . , b i−1 ) = L(b 1 , . . . , b i−1 )<br />

L ∩ span(b 1 , . . . , b i ) L(b 1 , . . . , b i )<br />

Wegen 9.10 existiert ein b ∈ L ∩ span(b 1 , . . . , b i ) \ L(b 1 , . . . , b i ) mit:<br />

∑i−1<br />

b = t j b j + t i b i<br />

j=1<br />

mit t 1 , . . . , t i−1 ∈ Z <strong>und</strong> t i /∈ Z<br />

Sei k > 1 der Index der additiven Untergruppe L(b 1 , . . . , b i ) in span(b 1 , . . . , b i ) ∩ L. Wegen<br />

(9.9) gilt:<br />

t i ∈ 1 k + Z<br />

Wähle t ′ = t i<br />

mod Z, d.h. t ′ = 1 k<br />

∈]0, 1[. Es folgt der Widerspruch zur Minimalität:<br />

F i (t 1 b 1 + t 2 b 2 + · · · + t ′ b i ) = F i (t ′ b i ) = |t ′ | · F i (b i ) < F i (b i ).<br />

2. Längenreduktion: Für i = 1, . . . , n, für j = i − 1, i − 2, . . . , 1 wähle µ i,j ∈ Z, so daß:<br />

F j (b i + µ i,i−1 b i−1 + µ i,i−2 b i−2 + · · · + µ i,j b j )<br />

minimal ist. Setze:<br />

∑i−1<br />

b i := b i + µ i,j b j<br />

j=1<br />

Die Längenreduktion sichert F j (b j ) ≤ F j (b i ± b j ) für j < i.<br />

Lemma 9.3.1<br />

Obige Konstruktion liefert eine HKZ-reduzierte Basis b 1 , . . . , b n des <strong>Gitter</strong>s L.<br />

Beweis. Nachrechnen! <br />

9.4 Alternative zur Reduktion in ‖·‖<br />

Alternativ zur Reduktion in ‖·‖ kann man S ‖·‖ (1) durch S ‖·‖E (1) mit Ellipsoid-Norm ‖·‖ E<br />

approximieren<br />

<strong>und</strong> die Reduktion in der Ellipsoid-Norm durchführen.<br />

‖x‖ 2 E := xT B T Bx


9.5. KONSTRUKTION EINES ‖·‖-KÜRZESTEN GITTERVEKTORS 81<br />

Die Sätze für die l 2 -Norm übertragen sich. Nach [J48] gilt: Zu jeder Norm ‖·‖ : R n → R gibt es<br />

eine Ellipsoid-Norm ‖·‖ E<br />

mit<br />

‖x‖ E<br />

≤ ‖x‖ ≤ √ n · ‖x‖ E<br />

Dann folgt für die ‖·‖ E<br />

β-reduzierte Basis nach Satz 6.4.3:<br />

(9.11)<br />

√<br />

1<br />

n ·<br />

4<br />

i+3<br />

i−1<br />

β−1<br />

· γ−<br />

β<br />

≤ ‖b √<br />

i‖<br />

i+3<br />

≤ n ·<br />

λ i,‖·‖<br />

4 · γ n−1<br />

β−1<br />

β<br />

Dabei geht ein Faktor √ √<br />

n verloren bei der Approximation von ‖·‖ durch ‖·‖ E<br />

. Ein weiterer Faktor<br />

n geht verloren durch die Approximation von λi,‖·‖ durch λ i,l2 .<br />

)<br />

Für kleine Blockweiten β ist die Aussage (9.11) schärfer als Satz 9.2.8, weil γ<br />

β<br />

(γ ′ = Θ β<br />

2 . Für<br />

große Blockweiten β ≈ n ist Satz 9.2.8 schärfer. Für β = n sind die Schranken für HKZ-reduzierte<br />

Basen zu ‖·‖ um den Faktor √ n besser als die Schranken (9.11).<br />

9.5 Konstruktion eines ‖·‖-kürzesten <strong>Gitter</strong>vektors<br />

Wir übertragen unseren Algorithmus zur Bestimmung eines kürzesten <strong>Gitter</strong>vektors für die Euklidische<br />

Norm aus Kapitel 8.1 auf beliebige Normen. H. Ritters [Ri96] gibt eine Übersicht über<br />

die Aufzählung kürzester <strong>Gitter</strong>vektoren in der sup-Norm.<br />

9.5.1 ENUM-Algorithmus für beliebige Norm<br />

Wir verallgemeinern Algorithmus ?? von Seite ??. Es bezeichne:<br />

( n<br />

)<br />

∑<br />

c t (u t , u t+1 , . . . , u n ) := F t u i b i<br />

Wir bezeichnen zu ũ t , ũ t+1 , . . . , ũ n mit next Ft (u) die erste, ganzzahlige Minimalstelle u ′ von<br />

(<br />

)<br />

)∣ n∑<br />

n∑ ∣∣∣∣<br />

(9.12)<br />

∣ F t u · b t + ũ i b i − F t<br />

(u ′ · b t + ũ i b i<br />

i=t<br />

<strong>und</strong> mit next Ft (ũ t , u) die nächste, ganzzahlige Nullstelle von (9.12) nach ũ t . Falls S ‖·‖ ein Polytop<br />

ist, z.B. für die 1- <strong>und</strong> sup-Norm, kann F t durch lineare Optimierung bestimmt werden.<br />

i=t<br />

i=t<br />

9.5.2 Gauß-ENUM-Algorithmus für beliebige Norm<br />

Betrachten wir Schritt 2 des Algorithmus’ 9.5.1. Gegeben sind b 1 , . . . , b n sowie ũ 1 , . . . , ũ n <strong>und</strong> c min<br />

1 .<br />

Sei L := L(b 1 , . . . , b t−1 ) <strong>und</strong> setze:<br />

Dann gilt:<br />

∣ { (ũ 1 , . . . , ũ t−1 ) ∈ Z t−1<br />

z := −<br />

n∑<br />

ũ i b i<br />

i=t<br />

: c 1 (ũ 1 , . . . , ũ t−1 ) ≤ c min<br />

1<br />

}∣ ∣ = ∣ ∣ ( L + w ) ∩ S ‖·‖ ( c min<br />

1 ) ∣ ∣<br />

= ∣ ∣ L ∩<br />

(<br />

S‖·‖ ( c min<br />

1 ) + z )∣ ∣


82 KAPITEL 9. GITTERREDUKTION IN BELIEBIGER NORM<br />

Algorithmus 9.5.1 ‖·‖-ENUM: kürzester <strong>Gitter</strong>vektor (vollständige Aufzählung)<br />

EINGABE :<br />

<strong>Gitter</strong>basis b 1 , . . . , b n ∈ R m<br />

1. FOR i = 1, . . . , n DO ˜c i := u i := ũ i := y i := 0<br />

2. ũ 1 := u 1 := 1; t := 1;<br />

3. c min<br />

1 := ˜c 1 := ‖b 1 ‖ 2<br />

/∗ stets gilt: ˜c t = c t(ũ t, ũ t+1, . . . , ũ n) <strong>und</strong> c min<br />

1 ist aktuelles Minimum der Funktion c 1 ∗/<br />

4. WHILE t ≤ n DO<br />

( n∑<br />

)<br />

4.1. ˜c t := c t (ũ t , ũ t+1 , . . . , ũ n ) = F t ũ i b i<br />

i=t<br />

4.2. IF ˜c t < c min<br />

1 THEN<br />

END while<br />

ELSE<br />

END if<br />

IF t > 1 THEN<br />

ELSE<br />

END if<br />

t := t + 1<br />

t := t − 1<br />

(<br />

u reelle Minimalstelle von F t ub t +<br />

ũ t := next Ft (u)<br />

c min<br />

1 := ˜c 1<br />

FOR i = 1, . . . , n DO u i := ũ i<br />

n ∑<br />

i=t+1<br />

ũ i b i<br />

)<br />

/∗ t max bezeichne den bisherigen maximalen Wert von t vor der Erhöhung ∗/<br />

{<br />

ũ t + 1 falls t = t max<br />

ũ t :=<br />

next Ft (ũ t , u) sonst<br />

AUSGABE :<br />

Minimalstelle (u 1 , . . . , u n ) ∈ Z \ {0} <strong>und</strong> Minimalwert c min<br />

1 für die Funktion c 1<br />

Nach der Volumenheuristik ist:<br />

∣<br />

∣L ∩ [ S ‖·‖ ( c min<br />

1 ) + z ]∣ ∣ ≈ vol ( ( ) [<br />

t−1 span L ∩ S‖·‖ ( c min<br />

1 ) + z ])<br />

(<br />

det L<br />

)<br />

[w ( )]<br />

vol t−1 + span L ∩ S‖·‖ ( c min<br />

1 )<br />

=<br />

det L


9.5. KONSTRUKTION EINES ‖·‖-KÜRZESTEN GITTERVEKTORS 83<br />

Wann gilt die Volumen-Heuristik streng? Hinreichende Voraussetzung: Bei festem y ist z uniformly<br />

distributed modulo L (vergleiche Definition ?? auf Seite ??):<br />

b =<br />

∑t−1<br />

n∑<br />

n∑ n∑<br />

ũ i µ i,ĵbj + ũ i µ i,ĵbj<br />

j=1 i=1<br />

} {{ }<br />

=−z∈span( L )<br />

j=t i=t<br />

} {{ }<br />

:=y∈span( L ) ⊥<br />

Die Menge ( b + span ( L )) ∩ S ‖·‖ ( c min<br />

1 ) hängt nur von z, aber nicht von y ab. Es folgt aus der<br />

Volumenheuristik Lemma 8.2.1 (Seite 68):<br />

Lemma 9.5.1<br />

Angenommen, z ist uniformly distributed modulo L <strong>und</strong> unabhängig von y. Dann gilt<br />

( )<br />

[y ( )]<br />

E [ ∣ [ w + L ] ∩ S ‖·‖ ( c min<br />

1 ) ∣ ] vol t−1 + span L ∩ S‖·‖ ( c min<br />

1 )<br />

=<br />

,<br />

det L<br />

wobei y + span ( L ) = b + span ( L ) .<br />

Wir erhalten analog zu Satz ??:<br />

Satz 9.5.2<br />

Angenommen, ({µ i,j } : 1 ≤ j < i ≤ n) ist gleichverteilt in [0, 1[ (n 2) . Dann gilt in Algorithmus 9.5.1<br />

‖·‖-ENUM stets:<br />

• z ist uniformly distributed modulo L <strong>und</strong> unabhängig von y.<br />

( )<br />

[y ( )]<br />

• E [ ∣ [ w + L ] ∩ S ‖·‖ ( c min<br />

1 ) ∣ ] vol t−1 + span L ∩ S‖·‖ ( c min<br />

1 )<br />

=<br />

det L<br />

Wir erhalten Gauß-‖·‖-ENUM aus Algorithmus’ 9.5.1, indem wir Schritt 2 ersetzen durch:<br />

( )<br />

[y ( )]<br />

vol t−1 + span L ∩ S‖·‖ ( c min<br />

1 )<br />

IF<br />

≥ 2 −p<br />

det L


84 KAPITEL 9. GITTERREDUKTION IN BELIEBIGER NORM


Kapitel 10<br />

Anwendungen der <strong>Gitter</strong>reduktion<br />

In Kapitel 5 (Seite 43 <strong>und</strong> folgende) haben wir versucht, Subsetsum-Aufgaben durch <strong>Gitter</strong>reduktion<br />

zu lösen. In diesem Kapitel werden wir weitere Anwendungen der <strong>Gitter</strong>reduktion kennenlernen:<br />

Lösen des 3-SAT-Problems, Angriff auf Dåmgards Hashfunktion (finde zwei verschiedene<br />

Vektoren, denen der gleiche Werte zugewiesen wird) <strong>und</strong> Faktorisieren ganzer Zahlen. Für weitere<br />

Anwendungen der <strong>Gitter</strong>reduktion in der <strong>Kryptographie</strong> verweisen wir auf die Arbeit [JoSt94] von<br />

A. Joux <strong>und</strong> J. Stern.<br />

Für eine effiziente Aufzählung kürzester <strong>Gitter</strong>vektor in der sup-Norm verweisen wir auf H. Ritters<br />

Arbeit [Ri96], in der er mit Hilfe der <strong>Gitter</strong>reduktion G. Ortons Kryptosystem basierend auf<br />

dem Subsetsum-Problem mit Dichte größer als 1 bricht. Die Methoden können auf beliebige Normen<br />

l p übertragen werden.<br />

10.1 <strong>Gitter</strong>basis zu 3-SAT<br />

Wir beschreiben zunächst die konjunktive Normalform. Seien x 1 , . . . , x n Boole’sche Variablen. Wir<br />

schreiben x −1<br />

i := ¬ x i , x 1 i := x i <strong>und</strong> x 0 i := 0. Die Klauseln der konjunktiven Normalform (KNF)<br />

schreiben wir als:<br />

C j = x aj1<br />

1 ∨ x aj2<br />

2 ∨ · · · ∨ x ajn<br />

n<br />

mit (a j1 , a j2 , . . . , a jn ) ∈ {0, ±1} n . Falls eine Variable x i nicht in der Klausel C j auftritt, setze<br />

a ji := 0. Die KNF γ hat folgenden Aufbau<br />

γ(x 1 , . . . , x n ) :=<br />

m∧<br />

C j (x 1 , . . . , x n )<br />

j=1<br />

Wir betrachten nur konjunktive Normalformen, deren Klauseln aus maximal drei Literalen bestehen,<br />

also ∑ n<br />

i=1 |a ji| ≤ 3 für j = 1, . . . , m. Beim 3-SAT-Problem ist zu entscheiden, ob eine<br />

erfüllende Belegung für die konjunktive Normalform existiert:<br />

Definition 10.1.1 (3-SAT)<br />

Das 3-SAT-Problem lautet:<br />

∧<br />

• Gegeben: KNF γ(x 1 , . . . , x n ) := m C j (x 1 , . . . , x n ) mit max. 3 Literalen pro Klausel<br />

j=1<br />

• Finde (y 1 , . . . , y n ) ∈ {0, 1} n mit γ(y 1 , . . . , y n ) = 1 oder zeige, daß keine erfüllende Belegung<br />

existiert.<br />

85


86 KAPITEL 10. ANWENDUNGEN DER GITTERREDUKTION<br />

Das 3-SAT-Problem ist N P-vollständig [GaJo79]. Wir ordnen dem 3-SAT-Problem eine <strong>Gitter</strong>basis<br />

zu <strong>und</strong> versuchen, durch <strong>Gitter</strong>reduktion in der sup-Norm eine erfüllende Belegung der<br />

konjunktiven Normalform zu bestimmen.<br />

Wir reduzieren zunächst 3-SAT auf {0, 1}-Integer-Programming, indem wir ein äquivalentes<br />

Ungleichungssystem bilden:<br />

c j := 2 − |{i : a ji = −1}| ≤ 1<br />

für j = 1, . . . , m<br />

Betrachte das folgende Ungleichungssystem in den Unbekannten y 1 , . . . , y n ∈ {0, 1}:<br />

∣ n∑ ∣∣∣∣<br />

(10.1)<br />

a<br />

∣ ji y i − c j ≤ 1 für j = 1, . . . , m<br />

i=1<br />

Beispiel:<br />

x 1 ∨ x 2 ∨ x 3 ↔ |y 1 + y 2 + y 3 − 2| ≤ 1<br />

¬ x 1 ∨ x 2 ∨ x 3 ↔ |−y 1 + y 2 + y 3 − 1| ≤ 1<br />

Wir können jede Restriktion in zwei ≤-Relationen aufspalten. Durch Fallunterscheidung über die<br />

Anzahl negierter/nicht-negierter Literale in der Klausel folgt:<br />

Lemma 10.1.2<br />

Die {0, 1}-IP-Aufgabe (10.1) hat genau dann eine Lösung y ∈ {0, 1} n , wenn γ(y) = 1.<br />

Die <strong>Gitter</strong>basis zum 3-SAT-Problem besteht aus den folgenden n + 1 ganzzahligen Zeilenvektoren<br />

b 1 , . . . , b n+1 ∈ Z n+m+1 :<br />

(10.2)<br />

⎡ ⎤ ⎡<br />

⎤<br />

b 1 2 0 · · · 0 a 11 a 21 · · · a m1 0<br />

b 2 0 2 0 a 12 a 22 · · · a m2 0<br />

⎢ .<br />

:=<br />

.<br />

⎥ ⎢ . .. . . . . .<br />

⎥<br />

⎣ b n<br />

⎦ ⎣ 0 0 2 a 1n a 2n · · · a mn 0 ⎦<br />

b n+1 −1 −1 · · · −1 −c 1 −c 2 · · · −c m +1<br />

Sei y = (y 1 , . . . , y n ) eine erfüllende Belegung der KNF. Der zugehörige Lösungsvektor ist:<br />

b(y) =<br />

n∑<br />

y i b i + b n+1<br />

Dieser Vektor liegt wegen (10.1) in {±1} n × {±1, 0} m × {+1}.<br />

i=1<br />

Satz 10.1.3<br />

Sei L das von den Zeilenvektoren b 1 , . . . , b n+1 aus (10.2) erzeugte <strong>Gitter</strong>. Dann gilt für alle <strong>Gitter</strong>vektoren<br />

z ∈ L:<br />

Es existiert eine erfüllende Belegung<br />

y ∈ {0, 1} n zu γ(y) mit z = ±b(y)<br />

⇐⇒ ‖z‖ ∞<br />

= 1<br />

Beweis.<br />

Wir zeigen beide Richtungen:<br />

” ⇒“ Wegen b(y) ∈ {±1, 0}n+m+1 gilt ‖z‖ ∞<br />

= 1.


10.2. ANGRIFF AUF DÅMGARDS HASHFUNKTION 87<br />

” ⇐“ Gegeben ist ein Vektor z ∈ L mit ‖z‖ ∞<br />

= 1. Der Vektor habe die Darstellung<br />

(10.3)<br />

n+1<br />

∑<br />

z = y ib ′ i<br />

i=1<br />

mit y ′ 1, y ′ 2, . . . , y ′ n+1 ∈ Z. Wegen ‖z‖ ∞<br />

= 1 folgt aus der letzten Komponente der Basisvektoren,<br />

daß y ′ n+1 = ±1 ist. Aus den ersten n Einträgen erhalten wir nach Fallunterscheidung:<br />

1. Aus y n+1 = +1 folgt (y ′ 1, y ′ 2, . . . , y ′ n) ∈ {0, +1} n .<br />

2. Aus y n+1 = −1 folgt (y ′ 1, y ′ 2, . . . , y ′ n) ∈ {0, −1} n .<br />

Setze:<br />

y := y ′ n+1 · (y ′ 1, y ′ 2, . . . , y ′ n)<br />

Es ist y ∈ {0, +1} n <strong>und</strong> (y, 1) = y n+1 ′ ·y ′ . Wegen ‖z‖ ∞<br />

= 1 <strong>und</strong> y n+1 ′ ∈ {±1} gilt nach (10.3)<br />

∣ n∑ ∣∣∣∣ a ji y i − c j = ∣ ∣<br />

∣ y<br />

′<br />

∣<br />

n+1 n∑ ∣∣∣∣<br />

·<br />

a ji y i − c j ≤ ‖z‖<br />

∣<br />

∞<br />

≤ 1<br />

i=1<br />

für j = 1, . . . , m. Nach Lemma 10.1.2 ist y eine erfüllende Belegung.<br />

Wir versuchen durch <strong>Gitter</strong>reduktionen, einen in der sup-Norm kürzesten, nicht-trivalen <strong>Gitter</strong>vektor<br />

zu finden, um eine erfüllende Belegung der konjunktive Normalformen mit höchstens<br />

drei Literalen pro Klausel zu bestimmen. Unter der Cook’schen Hypothese P ≠ N P ist dies in<br />

einigen Fällen schwierig, denn das 3-SAT-Problem ist N P-vollständig.<br />

Wir haben mit Satz 10.1.3 einen alternativen Beweis zu Korollar 11.2.9 von Seite 99 kennengelernt:<br />

Das Problem ‖·‖ ∞<br />

-kürzester <strong>Gitter</strong>vektor ist N P-vollständig.<br />

i=1<br />

<br />

10.2 Angriff auf Dåmgards Hashfunktion<br />

I.B. Dåmgard [Då89] hat der EuroCrypt-Konferenz 1989 die folgende kryptographische Hashfunktion<br />

basierend auf dem Subsetsum-Problem vorgestellt. Wähle zufällig <strong>und</strong> unabhängig<br />

<strong>und</strong> definiere zu a die Hashfunktion:<br />

a = (a 1 , . . . , a n ) ∈ R [1, 2 m − 1] n<br />

h a : {0, 1} n → N<br />

(x 1 , . . . , x n ) ↦→ ∑ n<br />

i=1 a ix i<br />

Eine Kollision nennen wir x, x ′ ∈ {0, 1} n , x ≠ x ′ , mit h a (x) = h a (x ′ ). Als Pseudo-Kollision<br />

bezeichnen wir x, x ′ ∈ {0, 1} n , x ≠ x ′ , mit h a (x) = h a (x ′ ) (mod 2 m ). Wir werden versuchen,<br />

Pseudo-Kollisionen zu finden.<br />

Weshalb suchen wir nach Kollisionen? Um eine lange Nachricht M durch eine kurze, digitale<br />

Unterschrift zu versehen, wendet man in der <strong>Kryptographie</strong> die Hashfunktion h auf die Nachricht<br />

an <strong>und</strong> erhält einen im Vergleich zur Nachricht kleinen Wert. Nur h(M) wird digital unterschrieben.<br />

Der Teilnehmer veröffentlicht M <strong>und</strong> seine digitale Unterschrift von h(M). Falls wir eine andere<br />

Nachricht M ′ mit h(M) = h(M ′ ) finden, können wir die digitale Unterschrift für M einfach<br />

übernehmen. Wir haben eine Nachricht mit digitaler Unterschrift eines fremden Teilnehmers.


88 KAPITEL 10. ANWENDUNGEN DER GITTERREDUKTION<br />

Jedem Vektor x = (x 1 , . . . , x n ) ∈ {±1, 0} n \ {0} mit<br />

n∑<br />

a i · x i = 0 (mod 2 m )<br />

i=1<br />

entspricht eine Pseudo-Kollision x, x ′ gemäß<br />

{<br />

1 falls x i = 1<br />

x i :=<br />

0 sonst<br />

x ′ i :=<br />

<strong>und</strong> umgekehrt. Wir wählen als Basis:<br />

⎡ ⎤ ⎡<br />

⎤<br />

b 1 1 0 · · · 0 a 1 n<br />

b 2 0 1 0 a 2 n<br />

⎢ .<br />

:=<br />

.<br />

⎥ ⎢.<br />

.. (10.4)<br />

. .<br />

⎥<br />

⎣ b n<br />

⎦ ⎣0 0 1 a n n⎦<br />

b n+1 0 0 · · · 0 2 m n<br />

{<br />

1 falls x i = −1<br />

0 sonst<br />

Wir bezeichnen:<br />

P-Kollision :=<br />

{<br />

(x 1 , . . . , x n+1 ) ∈ {±1, 0} n+1 ∣ ∣∣∣ x n+1 = 0 <strong>und</strong> (x 1 , . . . , x n )<br />

entspricht Pseudo-Kollision<br />

}<br />

Es gilt offenbar: P-Kollision ⊆ L(b 1 , . . . , b n+1 ). Wir versuchen durch <strong>Gitter</strong>reduktion, einen kurzen<br />

<strong>Gitter</strong>vektor in der Euklidischen Norm zu finden. Was ist das Minimum der Menge<br />

{‖x‖ 2<br />

: x ∈ P-Kollision} ,<br />

also die Länge des kürzesten <strong>Gitter</strong>vektors, der einer Pseudo-Kollision entspricht? Wir führen eine<br />

probabilistische Analyse zu a ∈ R [1, 2 m − 1] n <strong>und</strong> festem x durch. Zu α ∈ [ 0, 2] 1 mit αn ∈ N sei:<br />

{<br />

∣ }<br />

∣∣∣∣ ∑<br />

n<br />

N α := (x 1 , . . . , x n ) ∈ {±1, 0} n |x i | = αn<br />

Für x ∈ N α ist ‖x‖ 2<br />

= √ αn, da x ∈ {±1, 0} n . Es gilt:<br />

( ) n<br />

(10.5)<br />

N α := |N α | = · 2 αn<br />

αn<br />

Denn wir können die αn Einträge ungleich 0 beliebig auf die n Positionen verteilen <strong>und</strong> als Wert<br />

jeweils +1 oder −1 setzen. Es gilt<br />

i=1<br />

(10.6)<br />

N α ≈ 2 (H(α,1−α)+α)·n ,<br />

wobei H die Shannon’sche Entropie-Funktion ist:<br />

H(α, 1 − α) = −α · log 2 α − (1 − α) · log 2 (1 − α)<br />

Wir möchten bezüglich a ∈ R [1, 2 m − 1] n die Wahrscheinlichkeit berechnen, mit der in N α ein<br />

Vektor aus P-Kollision liegt. Dazu definieren wir zu a <strong>und</strong> festem x ∈ N α die Zufallsvariable:<br />

⎧<br />

⎨<br />

n∑<br />

1 falls a i x i = 0 (mod 2 m )<br />

ξ x :=<br />

i=1<br />

⎩<br />

0 sonst<br />

Offenbar ist<br />

(10.7)<br />

E a [ ξ x ] = 2 −m


10.2. ANGRIFF AUF DÅMGARDS HASHFUNKTION 89<br />

Wir definieren die Zufallsvariable ξ x := ξ x − 2 −m , so daß:<br />

[ ]<br />

(10.8) E a ξx = 0<br />

[ ] [ ]<br />

E a = E a ξ<br />

2<br />

x − 2 · 2<br />

−m (10.9)<br />

· E a [ ξ x ] + 2 −2m ≤ 2 · 2 −m<br />

ξ 2 x<br />

Beachte, daß für die Indikatorvariable ξ i gilt Ws a [ ξ i = 1] = Ws a<br />

[<br />

ξ<br />

2<br />

i = 1 ] . Wir verwenden aus der<br />

Stochastik (siehe u.a. [Fe68]) für eine Zufallsvariable X:<br />

Var[ X] = E [ X 2] − E[ X] 2<br />

Var[ cX] = c 2 · Var[ X]<br />

Ws[ |X − E[ X]| ≥ ɛ] ≤ 1 · Var[ X]<br />

ɛ2 (Tschebycheff-Ungleichung)<br />

(Definition Varianz)<br />

(c > 0 konstant)<br />

Wir wenden die Tschebycheff-Ungleichung auf<br />

1<br />

N α<br />

· ∑x∈N α<br />

ξ x an <strong>und</strong> erhalten wegen der Erwartungswerte<br />

(10.8) <strong>und</strong> (10.9):<br />

Ws a<br />

[ ∣ ∣∣∣∣<br />

1<br />

N α<br />

·<br />

∑<br />

x∈N α<br />

ξ x − 2 −m ∣ ∣∣∣∣<br />

≥ ɛ<br />

]<br />

≤ 1 ɛ 2 · Var [<br />

1<br />

=<br />

ɛ 2 · Nα<br />

2 ·<br />

]<br />

1 ∑<br />

· ξ x<br />

N α<br />

x∈N α<br />

∑ ∑ [ ]<br />

E a ξx · ξ y<br />

y∈N α<br />

x∈N α<br />

Wegen des Erwartungswerts (10.9) ist:<br />

(10.10)<br />

∑<br />

x∈N α<br />

∑ [ ] ∑ [<br />

E a ξx · ξ y = E a<br />

y∈N α x∈N α<br />

ξ 2 x<br />

= ∑ [ ]<br />

E a ξ 2 x<br />

x∈N α<br />

= N α · E a<br />

[<br />

ξ 2 x<br />

]<br />

+ ∑<br />

]<br />

x,y∈N α<br />

x≠y<br />

Aus Abschätzung (10.10) <strong>und</strong> dem Erwartungswert (10.8) folgt:<br />

[ ∣ ∣ ]<br />

∣∣∣∣<br />

1 ∑ ∣∣∣∣<br />

Ws a · ξ x − 2 −m ≥ ɛ ≤<br />

N α<br />

x∈N α<br />

1<br />

[ ]<br />

ɛ 2 · E a ξ 2 x ≤<br />

· N α<br />

E a<br />

[<br />

ξx<br />

]<br />

· Ea<br />

[<br />

ξy<br />

]<br />

2<br />

ɛ 2 · N α · 2 m<br />

Für ɛ = 2 −m erhalten wir<br />

(10.11)<br />

Ws a<br />

[ ∑<br />

x∈N α<br />

ξ x = 0<br />

]<br />

≤ 2m+1<br />

N α<br />

<strong>und</strong> für ɛ = 2 −m−l :<br />

(10.12)<br />

[ ∑<br />

Ws a ξ x ≤ N α · (2 −m − 2 −m−l)] ≤ 2m+1+2l<br />

N α<br />

x∈N α<br />

Aus (10.11) folgt unmittelbar:<br />

Satz 10.2.1<br />

Es gilt:


90 KAPITEL 10. ANWENDUNGEN DER GITTERREDUKTION<br />

a) Für m ≤ log 2 N α − 2 ≈ (H(α, 1 − α) + α) · n gibt es bezüglich a ∈ R [1, 2 m − 1] n mit Wahrscheinlichkeit<br />

mindestens 1 2 Pseudo-Kollisionen in N α.<br />

b) Für m ≤ log 2 N α − 4 ≈ (H(α, 1 − α) + α) · n gibt es bezüglich a ∈ R [1, 2 m − 1] n mit Wahrscheinlichkeit<br />

mindestens 1 2 mindestens N α · 2 −m−1 Pseudo-Kollisionen in N α .<br />

Beweis. Die Aussage a) folgt aus (10.11), die Aussage b) folgt aus (10.12) mit l = 1. <br />

Im nächsten Schritt möchten wir N α = |N α | maximieren: Aus dem Ansatz<br />

mit (10.6) erhalten wir:<br />

∂N α<br />

∂α = 0<br />

Dazu äquivalent:<br />

− log 2 2 ≈ ∂ (−α · log 2 α − (1 − α) · log 2 (1 − α))<br />

∂α<br />

Wegen − log 2 2 = −1 <strong>und</strong> −1 + log 2 α = log 2<br />

1<br />

α<br />

log 2 α + log 2 (1 − α) ≈ − log 2 2<br />

erhalten wir den Anzatz α =<br />

k−1<br />

k<br />

− log 2<br />

k−1<br />

k<br />

+ log 2<br />

1<br />

k = log 2(k − 1) ≈ − log 2 2<br />

<strong>und</strong> somit k − 1 = 2 bzw. k = 3, also α = 2 3 als ungefähre Maximalsstelle von N α.<br />

Satz 10.2.2<br />

Bezüglich a ∈ R [1, 2 m − 1] n gibt es mit Wahrscheinlichkeit mindestens 1 2<br />

Pseudo-Kollisionen, wenn<br />

N 2/3 ≥ 2 m−1 oder äquivalent n ≥ m−1<br />

log 2 3 ist.<br />

Beweis.<br />

Aus (10.7) wissen wir, daß:<br />

Wegen N 2/3 ≥ 2 m−1 folgt:<br />

Damit N 2/3 ≥ 2 m−1 ist, muß wegen<br />

E a [ Anzahl Pseudo-Kollisionen in N α ] = N α · 2 −m<br />

Ws a<br />

[<br />

Anzahl Pseudo-Kollisionen in N2/3<br />

]<br />

≥<br />

1<br />

2<br />

log 2 N 2/3 = n · [− 2 3 · log 2 2 3 − 1 3 · log 2 1 3 + 2 3 · log 2 2 ]<br />

= n · [− 2 3 · (− log 2 3 + log 2 ) − 1 3 · (− log 2 3) + 2 3<br />

= n · [+ 2 3 · log 2 3 − 2 3 + 1 3 · log ]<br />

2 3 + 2 3<br />

= n · log 2 3<br />

]<br />

gelten n · log 2 3 ≥ m − 1 oder äquivalent n ≥ m−1<br />

log 2 3 .<br />

<br />

Betrachten wir die Situation bei den von I.B. Dåmgard vorgeschlagenen Parametern:<br />

• Für m = 120 gibt es Pseudo-Kollisionen, falls n ≥ 77.<br />

• Für m = 120 <strong>und</strong> n = 100 gibt es im Mittel N 2/3 · 2 −m ≈ 3, 8 · 10 11 Pseudo-Kollisionen.


10.3. FAKTORISIEREN GANZER ZAHLEN 91<br />

Betrachten wir die Anzahl der kurzen <strong>Gitter</strong>vektoren:<br />

{<br />

}∣ ∣ z ∈ L(b 1 , . . . , b n+1 ) : ‖z‖ 2 ∣∣<br />

2 ≤ αn N(0, n, α)<br />

≈<br />

2 m<br />

J.E.Mazo <strong>und</strong> A.M.Odlyzko haben in [MaOd90] die Funktion<br />

{<br />

N(z, n, α) := ∣ x ∈ Z n : ‖x − z‖ 2 ∣∣<br />

≤ α · n}∣<br />

untersucht. Als Vektoren z kommen nur Vektoren in Frage, deren letzter Eintrag 0 ist. Der Anteil<br />

der Vektoren (x 1 , . . . , x n ) mit ∑ n<br />

i=1 a ix i = 0 (mod 2 m ) ist 2 −m . Es gilt:<br />

}∣ ∣<br />

{z ∈ L(b 1 , . . . , b n+1 ) : ‖z‖ 2 ∣∣<br />

2 ≤ αn (2eπα) n 2<br />

≈<br />

Wir wählen m <strong>und</strong> α derart, daß in etwa gilt<br />

Also wegen (10.5) <strong>und</strong> (10.6):<br />

2 m<br />

E a [ Anzahl Pseudo-Kollisionen in N α ] ≈ 1,<br />

m = n · [H(α, 1 − α) + α] bzw. N α =<br />

( ) n<br />

· 2 αn = 2 m<br />

αn<br />

Gibt es zur Länge √ αn kürzere, nicht-triviale <strong>Gitter</strong>vektoren, die keiner Pseudo-Kollision entsprechen?<br />

Wir würden bei der <strong>Gitter</strong>-Reduktion unter Umständen diese kürzeren Vektoren anstatt der<br />

gewünschten erhalten. Für m = 120 <strong>und</strong> n = 100 ist (2eπα) n 2<br />

2<br />

≈ 2 0,0039n , d.h. die sog. parasitären,<br />

m<br />

kurzen <strong>Gitter</strong>vektoren sind leicht in der Überzahl.<br />

10.3 Faktorisieren ganzer Zahlen mit Hilfe Diophantischer<br />

Approximationen<br />

Sei N ∈ Z das Produkt mindestens zweier verschiedener Primzahlen <strong>und</strong> p 1 , p 2 , . . . die Folge der<br />

Primzahlen. C.P. Schnorr [S93] hat das Problem der Faktorisierung von N auf das Finden von<br />

t + 2 Lösungen (e 1 , . . . , e t ) ∈ Z t der Ungleichungen (c > 1 fest)<br />

t∑<br />

e<br />

∣ i ln p i − ln N<br />

∣ ≤ N −c · p o(1)<br />

t<br />

i=1<br />

(10.14)<br />

t∑<br />

|e i ln p i | ≤ (2c − 1) · log 2 N + 2 · ln p t<br />

i=1<br />

reduziert. Wir möchten in diesem Kapitel die Idee <strong>und</strong> den Algorithmus vorstellen. Für eine<br />

ausführliche Betrachtung verweisen wir auf die Originalarbeit.<br />

Wir assoziieren mit den Primzahlen p 1 , . . . , p t ein <strong>Gitter</strong> im R t+1 <strong>und</strong> mit N einen Punkt ⃗ N im<br />

R t+1 . Das Problem der Diophantischen Approximation (10.14) reduzieren wir auf die Bestimmung<br />

eines in der l 1 -Norm hinreichend nahen <strong>Gitter</strong>punktes.<br />

Sei p 1 , . . . , p t die Folge der ersten Primzahlen, also 2, 3, 5, . . .. Wir definieren zu N <strong>und</strong> festem<br />

c > 1 das <strong>Gitter</strong> L α,c ⊆ R t+1 , welches von den Zeilenvektoren b 1 , . . . , b t , N ⃗ aufgespannt wird:<br />

⎡ ⎤ ⎡<br />

⎤<br />

b 1 ln p 1 0 · · · 0 N c · ln p 1<br />

b 2 0 ln p 2 0 N c · ln p 2<br />

⎢ .<br />

:=<br />

.<br />

⎥ ⎢ .<br />

.. (10.15)<br />

. .<br />

⎥<br />

⎣b t<br />

⎦ ⎣ 0 0 ln p n N c · ln p t<br />

⎦<br />

N ⃗ 0 0 · · · 0 N c · ln N


92 KAPITEL 10. ANWENDUNGEN DER GITTERREDUKTION<br />

Die reellen Vektoren kann man durch rationale Vektoren approximieren. In der Praxis genügen<br />

sogar ganzzahlige Vektoren.<br />

Betrachten wir Algorithmus 10.3.1. Da N das Produkt mindestens zweier verschiedener Primzahlen<br />

ist, hat x 2 mindestens 4 Wurzeln modulo N, wobei sich zwei nur im Vorzeichen unterscheiden.<br />

x 2 − y 2 = (x − y)(x + y) = 0 (mod N)<br />

Im Fall x ≠ ±y (mod N) sind 0 < x − y < N <strong>und</strong> 0 < x + y < N, also 1 < x ± y < N, wobei x ± y<br />

modulo N reduziert sei. Dann liefert ggT(x ± y, N) nicht-triviale Teiler von N. Falls x <strong>und</strong> y sich<br />

wie unabhängige Zufallsvariable verhalten, hat Schritt 7 Erfolgswahrscheinlichkeit mindestens 1 2 .<br />

Der Schritt 4 erfordert, daß |u i − v i N| über der Basis P t faktorisiert werden kann. Satz 10.3.2<br />

zeigt, daß für Punkte z ∈ L α,c , die ”<br />

nahe“ bei ⃗ N liegen, diese Voraussetzung mit hoher Wahrscheinlichkeit<br />

erfüllt ist.<br />

Satz 10.3.1<br />

Sei c > 1, β, δ ≥ 0 fest <strong>und</strong> p t < N. Falls (e 1 , . . . , e t ) ∈ Z t das Ungleichungssystem<br />

t∑<br />

a<br />

∣ i ln p i − ln N<br />

∣ ≤ N −c · p o(1)<br />

t<br />

i=1<br />

t∑<br />

|a i ln p i | ≤ (2c − 1) · log 2 N + 2 · ln p t<br />

i=1<br />

löst, gilt für das in Schritt 3 konstruierte Paar (u i , v i ) mit<br />

(10.16)<br />

u i :=<br />

∏<br />

p aij<br />

j <strong>und</strong> v i := ∏<br />

daß:<br />

a i,j>0<br />

|u i − v i N| ≤ p β+δ+o(1)<br />

t<br />

a i,j0<br />

p aij<br />

j <strong>und</strong> |u i − v i N| ≤ p t<br />

Dies ist nur mit vernachlässigbarer Wahrscheinlichkeit nicht der Fall [S93, Theorem 4].<br />

Satz 10.3.2<br />

Sei α > 1, c > 1, δ ≥ 0 <strong>und</strong> p t = (ln N) α < N. Falls z ∈ L α,c die Ungleichung<br />

‖z − N‖ 1<br />

≤ (2c − 1) · ln N + 2δ · ln p t<br />

erfüllt, gilt für die in Schritt 3 konstruierten Paare (u i , v i ):<br />

|u i − v i N| ≤ p 1 α +β+o(1)<br />

t<br />

Beweis. Siehe [S93, Theorem 2].


10.3. FAKTORISIEREN GANZER ZAHLEN 93<br />

Aus den beiden Sätzen 10.3.1 <strong>und</strong> 10.3.2 folgt, daß es zum Faktorisieren von N genügt, hinreichend<br />

viele <strong>Gitter</strong>vektoren z ∈ L α,c zu finden, die in der l 1 -Norm nahe bei ⃗ N liegen. Diese <strong>Gitter</strong>punkte<br />

findet man in der Praxis durch Anwenden mächtiger Reduktionsalgorithmen auf die Vektoren<br />

b 1 , . . . , b n , ⃗ N in der l 2 -Norm. Die reduzierte Basis enthält im allgemeinen dann Vektoren, die<br />

bezüglich der l 1 -Norm kurz sind. Man kann erreichen, daß diese Vektoren die Form<br />

t∑<br />

e i b i − N ⃗<br />

haben (e 1 , . . . , e n ∈ Z) <strong>und</strong> wählen z := ∑ t<br />

i=1 e ib i für Satz 10.3.2.<br />

i=1


94 KAPITEL 10. ANWENDUNGEN DER GITTERREDUKTION<br />

Algorithmus 10.3.1 Faktorisieren einer ganzen Zahl<br />

EINGABE : ⊲ N ∈ Z (Produkt mindestens zweier verschiedener Primzahlen)<br />

⊲ α <strong>und</strong> c ∈ Q mit c ≥ 1<br />

1. Bilde Liste p 1 , . . . , p t der ersten Primzahlen, p t = (ln N) α . Sei P t := {p 1 , . . . , p t }.<br />

2. Reduziere mit geeignetem“ Reduktionsalgorithmus das <strong>Gitter</strong> L ” α,c ⊆ R t+1 (siehe Basismatrix<br />

(10.15)).<br />

3. Bilde für Vektoren z (i) := ∑ t<br />

j=1 a ∥<br />

i,jb j ∈ L mit kleiner l 1 -Norm ∥z − N ⃗ ∥ mit Hilfe von P t<br />

1<br />

<strong>und</strong> den ganzzahligen Koeffizienten (a i,1 , a i,2 , . . . , a i,t ) m ≥ t + 2 Tupel (u i , v i ) ∈ N 2 :<br />

4. FOR i = 1, . . . , m DO<br />

u i :=<br />

v i :=<br />

∏<br />

a i,j>0<br />

∏<br />

a i,j


Kapitel 11<br />

Komplexität, N P-Vollständigkeit<br />

Wir fassen mit Hinblick auf die <strong>Gitter</strong>theorie die Gr<strong>und</strong>begriffe der Komplexitätstheorie, speziell<br />

die N P-Vollständigkeit, zusammen.<br />

11.1 N P-Vollständigkeit<br />

Wir definieren die Bitlänge endlicher Objekte (das Vorzeichen speichern wir getrennt):<br />

• l(0) := 1<br />

• l(n) := ⌈log 2 (n + 1)⌉ für n ∈ N<br />

( )<br />

• l p<br />

q<br />

:= l(p) + l(q) mit p, q ∈ N <strong>und</strong> ggT(p, q) = 1<br />

• l(A) = ∑ i,j l(a ij) für A = [a ij ] ∈ Q m×n<br />

Wir setzen die Laufzeit des Algorithmus’ in Beziehung zur Eingabelänge. Wir interessieren uns<br />

für Polynomialzeit-Verfahren:<br />

Definition 11.1.1 (Polynomialzeit)<br />

Ein Algorithmus ist in Polynomialzeit, falls die Schrittzahl (Turing-Maschine oder Anzahl Bit-<br />

Operationen) polynomiell in der Länge der Eingabe beschränkt ist:<br />

Schrittzahl(Eingabe) = poly(l(Eingabe))<br />

In der theoretischen Informatik betrachtet man die Polynomialzeit-Algorithmen als effizient.<br />

Definition 11.1.2 (Charakteristische Funktion)<br />

Zu einer Menge A ⊆ {0, 1} ∗ ist die charakteristische Funktion χ A : {0, 1} ∗ → {0, 1} definiert<br />

durch: χ A (a) = 1 genau dann, wenn a ∈ A ist.<br />

Wir definieren mit charakteristischen Funktionen die Klasse der Polynomialzeit-Sprachen:<br />

Definition 11.1.3 (Klasse P der Polynomialzeit-Sprachen)<br />

Die Klasse P der Polynomialzeit-Sprachen besteht genau aus den Sprachen A ⊆ {0, 1} ∗ , für welche<br />

die charakteristische Funktion χ A in Polynomialzeit berechenbar ist.<br />

95


96 KAPITEL 11. KOMPLEXITÄT, N P-VOLLSTÄNDIGKEIT<br />

Die Klasse N P umfaßt die Sprache, so daß es genau für jedes Wort aus der Sprache einen Bitstring<br />

gibt, anhand dessen wir effizient überpüfen können, daß dieses Wort in der Sprache liegt.<br />

Definition 11.1.4 (Klasse N P)<br />

Die Klasse N P der nichtdeterministischen Polynomialzeit-Sprachen A ⊆ {0, 1} ∗ ist erklärt durch:<br />

A ∈ N P ⇐⇒ ∃B ∈ {0, 1}∗ × {0, 1} ∗ , B ∈ P :<br />

A = { x ∈ {0, 1} ∗ ∣ ∣ ∃y ∈ {0, 1} poly(l(x)) mit (x, y) ∈ B }<br />

Sei (x, y) ∈ B. Dann heißt y Zeuge für x ∈ A.<br />

Die Cook’sche Hypothese ist P ≠ N P, d.h. es gibt Sprachen in der Klasse N P, für die wir nicht<br />

in Polynomialzeit einen Zeugen finden können.<br />

Definition 11.1.5 (Karp-Reduktion)<br />

Seien A, B ⊆ {0, 1} ∗ :<br />

A ≤ pol B ⇐⇒<br />

∃ Polynomialzeit-Abbildung h mit:<br />

∀x ∈ {0, 1} ∗ : x ∈ A ⇔ h(x) ∈ B<br />

Aus A ≤ pol B <strong>und</strong> B ≤ pol C folgt A ≤ pol C.<br />

Definition 11.1.6 (N P-vollständig)<br />

A ⊆ {0, 1} ∗ heißt N P-vollständig, wenn: 1. A ∈ N P, 2.∀B ∈ N P : B ≤ pol A.<br />

Falls wir einen Polynomialzeit-Algorithmus zu einem N P-vollständigen Problem finden, folgt P =<br />

N P. Dies würde der Cook’schen Hypothese widersprechen. Daher gelten die N P-vollständigen<br />

Probleme als die schwierigsten in N P.<br />

11.2 Schwierige, algorithmische <strong>Gitter</strong>probleme<br />

Wir lernen in diesem Abschnitt mit der <strong>Gitter</strong>theorie verb<strong>und</strong>ene Probleme kennen, die N P-<br />

vollständig sind oder für die bisher keine effizienten Algorithmen bekannt sind. Ein solches Problem<br />

ist die ganzzahlige, lineare Programmierung (Integer Programming):<br />

Definition 11.2.1 (Ganzzahlige, lineare Programmierung)<br />

Das Problem der ganzzahligen, linearen Programmierung lautet:<br />

• Gegeben: m, n ∈ N, A ∈ (Z) m×n <strong>und</strong> b ∈ Z m<br />

• Finde x ∈ Z n mit Ax ≤ b oder zeige, daß kein solcher Vektor existiert.<br />

Die ganzzahlige, lineare Programmierung ist ”<br />

schwierig“. Wir werden in Satz 11.2.5 sehen, daß<br />

das zugehörige Entscheidungsproblem N P-vollständig ist:<br />

Definition 11.2.2 (Entscheidungsproblem der ganzzahligen, linearen Programmierung)<br />

Das Problem der ganzzahligen, linearen Programmierung lautet:<br />

• Gegeben: m, n ∈ N, A ∈ Z m×n <strong>und</strong> b ∈ Z m


11.2. SCHWIERIGE, ALGORITHMISCHE GITTERPROBLEME 97<br />

• Entscheide, ob ein x ∈ Z n mit Ax ≤ b existiert.<br />

Falls P ≠ N P, gibt es keinen Lösungsalgorithmus in Polynomialzeit. Dagegen gibt es zum analogen<br />

Problem der rationalen, linearen Programmierung Polynomialzeit-Verfahren:<br />

Definition 11.2.3 (Rationale, lineare Programmierung)<br />

Das Problem der rationalen, linearen Programmierung lautet:<br />

• Gegeben: m, n ∈ N, A ∈ Z m×n <strong>und</strong> b ∈ Q m<br />

• Finde x ∈ Q n mit Ax ≤ b oder zeige, daß kein solcher Vektor existiert.<br />

Das erste Polynomialzeit-Verfahren für die lineare Programmierung ist die Ellipsoid-Methode<br />

von L.G. Khachiyan [Kh79, Kh80]. Diese Methode ist aber nicht praktikabel. Ein bekannter<br />

Polynomialzeit-Algorithmus stammt von M. Karmarkars [Ka84]. Dieser hat zur Entwicklung der<br />

Interior-Point-Methoden für die lineare Programmierung geführt. Ein bekannter Interior-Point-<br />

Algorithmus stammt von Y. Ye [Ye91]. Ein einfaches, praktisches Verfahren ist der Simplex-<br />

Algorithmus [Da63, Schr86] von G.B. Dantzig, der allerdings im Wortcase exponentielle Laufzeit<br />

haben kann. Weitere Probleme, die man in Polynomialzeit lösen kann, sind:<br />

Satz 11.2.4 (Sieveking 1976)<br />

Folgende Probleme sind zu gegebenen m, n ∈ N, A ∈ Z m×n <strong>und</strong> b ∈ (Z) in Polynomialzeit lösbar:<br />

a) Löse Ax = b, x ∈ Z n oder weise Unlösbarkeit nach.<br />

b) Finde eine Z-Basis b 1 , . . . , b k von {x ∈ Z n | Ax = 0}, dem Z-Kern. Eine Z-Basis besteht aus<br />

linear unabhängigen Vektoren b 1 , . . . , b k , so daß:<br />

{ k∑<br />

∣ ∣∣∣∣<br />

{x ∈ Z n | Ax = 0} = t i b i t 1 , . . . , t k ∈ Z<br />

i=1<br />

}<br />

Beweis. Modifikation des Gauß-Eliminationsverfahrens (M. Sieveking in [SS76]). Alternativer<br />

Beweis in [KaBa79].<br />

<br />

Im folgenden Satz führen wir weitere mit der <strong>Gitter</strong>theorie verb<strong>und</strong>ene Aufgaben bzw. Entscheidungsprobleme<br />

auf, die N P-vollständig sind.<br />

Satz 11.2.5<br />

Folgende Sprachen sind N P-vollständig:<br />

1. Integer-Programming:<br />

IP :=<br />

{<br />

(m, n, A, b)<br />

∣<br />

A ∈ Z m×n , b ∈ Z m ,<br />

∃x ∈ Z n : Ax ≤ b<br />

}<br />

2. Rucksack (Knapsack) oder Subsetsum:<br />

{<br />

∣ }<br />

∣∣∣∣ n∑<br />

SubsetSum := (n, a 1 , . . . , a n , b) ∈ N n+2 ∃x ∈ {0, 1} n : a i x i = b<br />

i=1


98 KAPITEL 11. KOMPLEXITÄT, N P-VOLLSTÄNDIGKEIT<br />

3. {0, 1}-Integer-Programming:<br />

{0, 1}-IP :=<br />

{<br />

(m, n, A, b)<br />

∣<br />

A ∈ Z m×n , b ∈ Z m ,<br />

∃x ∈ {0, 1} n : Ax ≤ b<br />

}<br />

4. Schwache Zerlegung:<br />

{<br />

(n, a 1 , . . . , a n ) ∈ N n+1 ∣ ∣∣∣∣<br />

∃ (x 1 , . . . , x n ) ∈ {0, ±1} n \ {0 n } :<br />

}<br />

n∑<br />

a i x i = 0<br />

Beweis. Für 1,2,3 siehe [GaJo79][SS76], für 4 siehe [EB81]. Den Nachweis, daß es für die Sprache<br />

Integer-Programming polynomiell lange Zeugen gibt, also IP ∈ N P, werden wir in Satz 11.2.6<br />

führen.<br />

<br />

Satz 11.2.6 (von zur Gathen, Sieveking 1978)<br />

IP ∈ N P.<br />

Beweis. Wir wählen als Zeugen für (m, n, A, b) ∈ IP ein geeignetes x ∈ Z n mit Ax ≤ b. Offenbar<br />

existiert x genau dann, wenn (m, n, A, b) ∈ IP. Wir müssen noch zeigen, daß der Zeuge polynomielle<br />

Länge hat.<br />

Sei A =: (a ij ) ij <strong>und</strong> b =: (b 1 , . . . , b m ) T . Setze M := max i,j {|a ij | , |b i |}. Nach [GaSi78] gilt:<br />

(∃x ∈ Z n : Ax ≤ b) ⇐⇒ ( ∃x ∈ Z n : Ax ≤ b, ‖x‖ ∞<br />

≤ (n + 1)n n 2 M<br />

n )<br />

Die obere Schranke von ‖x‖ ∞<br />

impliziert, daß die Länge des Zeugen x polynomiell in der Länge<br />

von A <strong>und</strong> b beschränkt ist. Wegen l(m, n, A, b) ≥ nm + log 2 M gilt:<br />

l(x) = O ( n 2 (log n + log M ) = O ( l(m, n, A, b) 3)<br />

Wir definieren die Begriffe, die elementar für die weiteren Kapitel sind:<br />

i=1<br />

<br />

Definition 11.2.7 (<strong>Gitter</strong>, Basis, Dimension, Rang)<br />

Seien b 1 , . . . , b n ∈ R m linear unabhängige Vektoren. Wir nennen die additive Untergruppe<br />

L(b 1 , . . . , b n ) :=<br />

{<br />

n∑<br />

n<br />

∣ }<br />

∑ ∣∣∣∣<br />

b i Z = t i b i t 1 , . . . , t m ∈ Z<br />

i=1<br />

des R m ein <strong>Gitter</strong> mit der Basis b 1 , . . . , b n . Ist die Reihenfolge der Basisvektoren fest, sprechen<br />

wir von einer geordneten Basis. Der Rang oder auch die Dimension des <strong>Gitter</strong>s ist Rang(L) := n.<br />

i=1<br />

Betrachten wir ein Beispiel:<br />

Beispiel 11.2.8 (<strong>Gitter</strong>)<br />

Z m ist ein <strong>Gitter</strong> vom Rang m, die Einheitsvektoren bilden eine Basis. Zur Matrix A ∈ M m,n (Z)<br />

ist {x ∈ Z n | Ax = 0} ein <strong>Gitter</strong> vom Rang n − Rang(A); nach Satz 11.2.4 können wir in Polynomialzeit<br />

eine Basis konstruieren.<br />

⋄<br />

Wir versuchen, durch <strong>Gitter</strong>reduktion einen kürzesten, nicht-trivialen <strong>Gitter</strong>vektor zu finden.<br />

Im Fall der sup-Norm ist dies unter der Annahme P ≠ N P nicht immer effizient möglich:


11.2. SCHWIERIGE, ALGORITHMISCHE GITTERPROBLEME 99<br />

Korollar 11.2.9<br />

Das Problem ‖·‖ ∞<br />

-kürzester <strong>Gitter</strong>vektor<br />

ist N P-vollständig.<br />

L ∞ -SVP :=<br />

{<br />

(m, n, b 1 , . . . , b n )<br />

∣<br />

m, n ∈ N, b 1 , . . . , b n ∈ Z m ,<br />

∃x ∈ L(b 1 , . . . , b n ) : ‖x‖ ∞<br />

= 1<br />

}<br />

Beweis. Das Problem ‖·‖ ∞<br />

-kürzester <strong>Gitter</strong>vektor liegt in N P: Als Zeugen wählt man einen<br />

Vektor x ∈ L(b 1 , . . . , b n ) \{0} mit ‖x‖ ∞<br />

= 1. Das N P-vollständige Problem schwache Zerlegung“<br />

”<br />

aus Satz 11.2.5 kann in Polynomialzeit auf ‖·‖ ∞<br />

-kürzester <strong>Gitter</strong>vektor reduziert werden. <br />

Beim Problem des kürzesten <strong>Gitter</strong>vektors in der l 2 -Norm soll man zu gegebener <strong>Gitter</strong>basis<br />

b 1 , . . . , b n <strong>und</strong> k entscheiden, ob es einen <strong>Gitter</strong>vektor z ∈ L(b 1 , . . . , b n ) gibt mit z ≠ 0 <strong>und</strong><br />

‖z‖ 2<br />

≤ √ k.<br />

Definition 11.2.10 (Shortest Vector Problem SVP)<br />

Die Sprache zum kürzesten <strong>Gitter</strong>vektorproblem (Shortest Vector Problem) für die l 2 -Norm lautet:<br />

L 2 -SVP :=<br />

{<br />

(k, m, n, b 1 , . . . , b n )<br />

∣<br />

k, m, n, ∈ N, b 1 , . . . , b n ∈ Z m }<br />

,<br />

∃x ∈ L(b 1 , . . . , b n ) \ {0} : ‖x‖ 2 2 ≤ k<br />

Der Status dieses Problems ist offen. Anstrengungen, die Vermutung, daß L 2 -SVP N P-hart ist,<br />

nachzuweisen, sind im Gegensatz zur sup-Norm (siehe Korollar 11.2.9) bislang fehlgeschlagen (vergleiche<br />

[K87]).<br />

Das Problem des kürzesten <strong>Gitter</strong>vektors ist der homogene Spezialfall des Problems nächster<br />

<strong>Gitter</strong>vektor, von dem man aber weiß, daß es (auch) in der l 2 -Norm N P-vollständig ist:<br />

Satz 11.2.11 (Closest Vector Problem CVP)<br />

Das Problem l 2 -nächster <strong>Gitter</strong>vektor<br />

L 2 -CVP :=<br />

ist N P-vollständig.<br />

{<br />

(k, m, n, b 1 , . . . , b n , z)<br />

∣<br />

k, m, n, ∈ N, b 1 , . . . , b n , z ∈ Z m }<br />

,<br />

∃x ∈ L(b 1 , . . . , b n ) : ‖z − x‖ 2 2 ≤ k<br />

Beweis. Siehe Kannan [K87].<br />

<br />

Wir fassen zusammen: Zu gegebener <strong>Gitter</strong>basis b 1 , . . . , b n ∈ Z m sind folgende Aufgaben nach<br />

heutigem Stand schwierige, algorithmische <strong>Gitter</strong>probleme:<br />

• Finde kurze <strong>Gitter</strong>vektoren ungleich dem Nullvektor.<br />

• Finde eine Basis bestehend aus kurzen <strong>Gitter</strong>vektoren.<br />

• Finde zu gegebenem z ∈ span(b 1 , . . . , b n ) einen möglichst nahen <strong>Gitter</strong>vektor.<br />

Dagegen kann man in Polynomialzeit zu einem gegebenen Erzeugendensystem b 1 , . . . , b n ∈ Z m des<br />

<strong>Gitter</strong>s L, n ≥ Rang(L), eine <strong>Gitter</strong>basis konstruieren.


100 KAPITEL 11. KOMPLEXITÄT, N P-VOLLSTÄNDIGKEIT<br />

.


Kapitel 12<br />

Gr<strong>und</strong>lagen<br />

12.1 Notation<br />

Mit M m,n (S) bezeichnen wir die Menge aller m × n-Matrizen mit Einträgen aus der Menge S.<br />

Zum Beispiel ist M m,n (Z) die Menge aller ganzzahligen m × n-Matrizen. Zur Matrix B bezeichne<br />

B T die transponierte Matrix. Die Elemente aus Z n , R n , etc. schreiben wir, sofern nicht anders<br />

angegeben, als Spaltenvektoren.<br />

Zur reellen Zahl r bezeichne ⌈r⌋ := ⌈ r − 1 2⌉<br />

die nächste ganze Zahl. Wir schreiben R+ :=<br />

{x ∈ R | x > 0} für die Menge der positiven, reellen Zahlen.<br />

Skalarprodukt<br />

Der Vektorraum R n sei mit einem beliebigen Skalarprodukt 〈·, ·〉 : R n × R n → R ausgestattet<br />

(Euklidischer Vektorraum). Das Skalarprodukt hat die folgenden Eigenschaften: Für alle u, v, w ∈<br />

R n <strong>und</strong> λ ∈ R gilt:<br />

• 〈·, ·〉 ist bilinear:<br />

• 〈·, ·〉 ist symmetrisch:<br />

〈u + w, v〉 = 〈u, v〉 + 〈w, v〉<br />

〈λu, v〉 = λ 〈u, v〉<br />

〈u, v + w〉 = 〈u, v〉 + 〈u, w〉<br />

〈u, λv〉 = λ 〈u, v〉<br />

〈u, v〉 = 〈v, u〉<br />

• 〈·, ·〉 ist positiv definit:<br />

〈u, u〉 > 0 für u ≠ 0<br />

Die meisten Anwendungen beziehen sich auf das Standard-Skalarprodukt:<br />

〈(u 1 , . . . , u n ) , (v 1 , . . . , v n )〉 :=<br />

101<br />

n∑<br />

u i v i<br />

i=1


102<br />

Jedes Skalarprodukt 〈·, ·〉 : R n × R n → R läßt sich schreiben als:<br />

〈u, v〉 := u T Sv<br />

mit symmetrischer Matrix S ∈ R n×n . Im Fall des Standard-Skalarprodukts ist die Matrix S die<br />

Identität.<br />

Normen<br />

Eine Abbildung ‖·‖ : R n → R heißt Norm, falls für alle u, v ∈ R n <strong>und</strong> λ ∈ R gilt:<br />

‖λv‖ = |λ| · ‖v‖<br />

‖u + v‖ ≤ ‖u‖ + ‖v‖<br />

(positive Homogenität)<br />

(Dreiecksungleichung)<br />

‖u‖ ≥ 0 für u ≠ 0 (positive Definitheit)<br />

Die reelle Zahl ‖u‖ heißt Norm (oder Länge) des Vektors u = (u 1 , . . . , u n ). Aus einem Skalarprodukt<br />

erhält man die Euklidische Norm durch: ‖u‖ := √ 〈u, u〉.<br />

Die l 1 -Norm oder auch Betragsnorm ist:<br />

Die l 2 -Norm zum Standard-Skalarprodukt ist:<br />

‖ (u 1 , . . . , u n ) ‖ 1 := ∑ n<br />

i=1 |u i|<br />

‖ (u 1 , . . . , u n ) ‖ 2 := √ 〈u, u〉 = ( ∑ n<br />

i=1 u2 i<br />

Die l p -Norm ist: ‖ (u 1 , . . . , u n ) ‖ p := ( ∑ n<br />

i=1 |u i| p) 1 p<br />

.<br />

Die sup-Norm, Maximums-Norm oder auch l ∞ -Norm ist: ‖ (u 1 , . . . , u n ) ‖ ∞ := max i=1,...,n |u i |.<br />

) 1<br />

2<br />

.<br />

Ungleichungen<br />

Für die sup-, Betrags- <strong>und</strong> 2-Norm eines Vektors u ∈ R n gelten die folgenden Beziehungen:<br />

‖u‖ 2<br />

≤ ‖u‖ 1<br />

≤ √ n · ‖u‖ 2<br />

‖u‖ ∞<br />

≤ ‖u‖ 2<br />

≤ n · ‖u‖ ∞<br />

Für die Beziehung Skalarprodukt <strong>und</strong> zugehörige Norm ‖u‖ := √ 〈u, u〉 gilt die Cauchy-Schwarz-<br />

Ungleichung (seien u, v ∈ R n ):<br />

|〈u, v〉| ≤ ‖u‖ · ‖v‖<br />

Die Gleichheit gilt genau dann, wenn beide Vektoren linear abhängig sind. Seien b 1 , . . . , b n ∈ R n die<br />

Spaltenvektoren (oder Zeilenvektoren) der Matrix B ∈ M n,n (R). Die Hadamard’sche Ungleichung<br />

besagt:<br />

det B ≤<br />

n∏<br />

‖b i ‖ 2<br />

Sind die Vektoren b 1 , . . . , b n orthogonal, gilt die Gleichheit.<br />

i=1


Algorithmenverzeichnis<br />

1.4.1 zur Längenreduktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

1.4.2 zur paarweise Reduktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

3.2.1 Gauß-Reduktionsverfahren für die Euklidische Norm . . . . . . . . . . . . . . . . 27<br />

3.2.2 Gauß-Reduktionsverfahren für beliebige Norm . . . . . . . . . . . . . . . . . . . 29<br />

4.2.1 zur LLL-Reduktion in Z-Arithmetik . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

4.3.1 LLL-Reduktion von ganzzahligen Erzeugendensystemen . . . . . . . . . . . . . . 38<br />

9.5.1 ‖·‖-ENUM: kürzester <strong>Gitter</strong>vektor (vollständige Aufzählung) . . . . . . . . . . . 82<br />

10.3.1 Faktorisieren einer ganzen Zahl . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />

103


Index<br />

Abstandsfunktion, 71<br />

Algorithmus<br />

k-Reduktion (BZK), 60<br />

ENUM, 82<br />

Faktorisieren, 91<br />

Gauß-ENUM, 70, 83<br />

Gauß-Reduktion, 27, 29<br />

kürzester <strong>Gitter</strong>vektor, 70, 82, 83<br />

Lovász-, 33<br />

α β , 78<br />

Barnes, E.S., 21<br />

Basis, 98<br />

k-reduzierte Basis, 57, 60, 61<br />

β-reduzierte Basis zu ‖·‖, 75, 78<br />

Betragsnorm, 102<br />

Bitlänge, 95<br />

Blichfeldt, H.F., 17, 20<br />

Cauchy-Schwarz-Ungleichung, 102<br />

charakteristische Funktion, 95<br />

CJLOSS-Basis, 45<br />

Closest Vector Problem, 99<br />

Cook’sche Hypothese, 96<br />

Cook-Karp-Reduktion, 96<br />

Coster, M.J., 45<br />

CVP, 99<br />

Dåmgard, I.B., 87<br />

Dantzig, G.B., 97<br />

Determinante, 6<br />

Dichte, 19, 44<br />

Dimension, 98<br />

Diophantische Approximationen, 91<br />

Dirichlet, G.L., 18<br />

Distanzfunktion, 71<br />

duales <strong>Gitter</strong>, 9<br />

Entropie-Funktion, 88<br />

Euklidische Norm, 102<br />

Euklidischer Vektorraum, 101<br />

extremes<br />

<strong>Gitter</strong>, 20<br />

lokal extremes <strong>Gitter</strong>, 20<br />

F i , 71<br />

ganzzahlige lineare Programmierung, 96<br />

Gathen, J. von zur, 98<br />

Gauß, C.F., 27, 29, 68, 81<br />

Gauß-reduzierte <strong>Gitter</strong>basis, 25<br />

geordnete Basis, 98<br />

<strong>Gitter</strong><br />

-Basis, 98<br />

-Determinante, 6<br />

-Dimension, 98<br />

-Gr<strong>und</strong>masche, 6<br />

-Rang, 98<br />

L a , 9<br />

L a , 15<br />

A n , 7<br />

D n , 7<br />

Definition, 98<br />

Dichte, 19<br />

duales, 9<br />

geordnete -Basis, 98<br />

global extremes, 20<br />

kritisches, 20<br />

laminated, 22<br />

lineare Kongruenz, 15<br />

lokal extremes, 20<br />

selbstduales, 22<br />

Unter-, 14<br />

vollständiges, 8<br />

gitterartige Kugelpackung, 19<br />

<strong>Gitter</strong>basis<br />

CJLOSS-, 45<br />

Dåmgard-, 88<br />

3-SAT-, 85<br />

zur Faktorisierung, 91<br />

global extremes <strong>Gitter</strong>, 20<br />

Gram-Schmidt-Koeffizienten µ i,j , 8<br />

Gr<strong>und</strong>masche, 6<br />

Hadamard’sche Ungleichung, 102<br />

Hash-Funktion, 87<br />

Hermite, C., 20, 49, 75, 77<br />

Hermite-Konstante γ n , 20<br />

obere Schranke, 20<br />

Hermite-Konstanteγ n<br />

bekannte, 21<br />

Hermite-Normalform, 13<br />

104


INDEX 105<br />

HKZ-Basis, 49<br />

HKZ-reduzierte Basis zu ‖·‖, 75, 77, 80<br />

Hlawka, E., 20<br />

HNF, siehe Hermite-Normalform<br />

Höhenfunktion, 71<br />

Horner, H.H., 44<br />

Index<br />

Untergitter, 14<br />

IP, 97<br />

isometrisch<br />

-es <strong>Gitter</strong>, 8<br />

Joux, A., 45, 85<br />

Kabatiansky, G.A., 20<br />

Kaib, M., 73<br />

Karmarkar, M., 97<br />

Khachiyan, L.G., 97<br />

Knapsack-Problem, siehe Subsetsum<br />

KNF, siehe konjunktive Normalform<br />

Kollision, 87<br />

konjunktive Normalform (KNF), 85<br />

Korkine, A., 49, 75, 77, 79<br />

Korkine-Zolotareff-Konstante, 79<br />

kritische k-reduzierte Basis, 61<br />

kritisches <strong>Gitter</strong>, 20<br />

<strong>Kryptographie</strong>, 44<br />

Kugelpackung, 19<br />

kürzester <strong>Gitter</strong>vektor, 87, 99<br />

Kyptographie, 85<br />

l, 95<br />

Lagarias, J.C., 44, 45, 50<br />

LaMacchina, B.A., 45<br />

laminated <strong>Gitter</strong>, 22<br />

Länge, 102<br />

längenreduziert, 75<br />

längenreduzierte Basis, 12<br />

Lenstra, A.K., 31–33<br />

Lenstra, H.W., 31–33, 50<br />

Levenshtein, V.I., 20<br />

lineare Programmierung<br />

ganzzahlige, 96<br />

rationale, 97<br />

Lovász, L., 31, 33<br />

LLL-reduziert, 31, 41, 57, 75<br />

LLL-Verfahren, 33<br />

Algorithmus, 33<br />

linear abhangige Erzeugendensysteme, 38<br />

lokal extremes <strong>Gitter</strong>, 20<br />

Lovász, L., 32, 77<br />

Maximums-Norm, 102<br />

Mazo, J.E., 46, 91<br />

Minkowski<br />

erster Satz, 18<br />

<strong>Gitter</strong>punktsatz, 18<br />

Ungleichung von, 23<br />

zweiter Satz, 23<br />

Minkowski, H., 17, 18, 20, 23<br />

nächster <strong>Gitter</strong>vektor, 99<br />

Norm, 71, 102<br />

Betrags-, 102<br />

Euklidische, 102<br />

l 1 -, 102<br />

l 2 -, 102<br />

l p -, 102<br />

Maximums-, 102<br />

sup-, 102<br />

Notation, 101<br />

N P, 96<br />

N P-vollständig, 96<br />

{0, 1} − IP, 98<br />

Odlyzko, A.M., 44–46, 91<br />

orthogonale Projektion, 8<br />

Orthogonalsystem, 8<br />

Orton, G., 85<br />

P, 95<br />

p-Norm, 102<br />

paarweisereduzierte Vektoren, 12<br />

parasitärer <strong>Gitter</strong>vektor, 91<br />

Paz, A., 13<br />

polares <strong>Gitter</strong>, siehe duales <strong>Gitter</strong><br />

Polynomialzeit, 95<br />

primitives System, 11<br />

Pseudo-Kollision, 87<br />

Rang, 98<br />

Reduktion, 96<br />

reduzierte <strong>Gitter</strong>basis, 25<br />

2-reduzierte Basis zu ‖·‖, 75<br />

β-, 75, 78<br />

k-, 57, 60<br />

block-, 57, 60, 75, 78<br />

(δ, k)-block-, 60<br />

HKZ-, 49, 50, 75, 77, 80<br />

kritische k-, 61<br />

längen-, 12<br />

LLL-, 31, 41, 57, 75<br />

wohlgeordnete, 27<br />

reziprokes <strong>Gitter</strong>, siehe duales <strong>Gitter</strong><br />

Ritter, H., 81, 85<br />

Rucksack-Problem, siehe Subsetsum<br />

3-SAT, 85<br />

Scarf, H., 77


106 INDEX<br />

Schnorr, C.P., 13, 44, 45, 50, 79, 91<br />

schwache Zerlegung, 98<br />

selbstdual, 22<br />

2k-Reduktion (BZK), 51<br />

Semi Block 2k-Basis, 50<br />

Shannon, C.<br />

Entropie-Funktion, 88<br />

Shortest Vector Problem, 99<br />

Sieveking, M., 97, 98<br />

Simplex-Algorithmus, 97<br />

Skalarprodukt, 101<br />

Standard-Skalarprodukt, 101<br />

Stern, J., 45, 85<br />

Subsetsum-Problem, 43, 85, 97<br />

sukzessive Minima, 17<br />

sup-Norm, 102<br />

SVP, 99<br />

tiefes Loch, 22<br />

Tschebycheff-Ungleichung, 89<br />

Ungleichung<br />

Cauchy-Schwarz-, 102<br />

Hadamard’sche, 102<br />

Minkowski’sche, 23<br />

Tschebycheff, 89<br />

unimodulare Matrix, 5<br />

Untergitter, 14<br />

Vetchinkin, N.M., 21<br />

vollständiges <strong>Gitter</strong>, 8<br />

Volumen-Heuristik, 68, 81<br />

Watson, G.L., 21<br />

Ye, Y., 97<br />

Z-Kern, 97<br />

Zeuge, 96<br />

Zolotareff, G., 49, 75, 77, 79


Literaturverzeichnis<br />

[Aj98]<br />

[Aj03]<br />

M. Ajtai, The Shortest Vector Problem in L 2 is NP-hard for Randomized Reductions.<br />

Proc. 30th STOC, pp. 10–19, 1998.<br />

M. Ajtai, The Worst-case Behavior of Schnorr’s Algorithm Approximating the Shortest<br />

Nonzero Vector in a Lattice. Proc. 35th STOC, pp. 396–406 2003.<br />

[AKS01] M. Ajtai, R. Kumar, and D. Sivakumar, A Sieve Algorithm for the Shortest Lattice<br />

Vector Problem. Proc. 33th STOC, pp. 601–610, 2001.<br />

[Ak02] A. Akhavi, Random Lattices, Threshold Phenomena and Efficient Reduction Algorithms.<br />

Theoret. Comput. Sci., 287, pp. 359–385, 2002.<br />

[Ba86]<br />

L. Babai , On Lovász’ Lattice Reduction and the nearest Lattice Point Problem, Combinatorica,<br />

Band 6, Seiten 1–13, 1986.<br />

[Bar59] E.S. Barnes , The Contruction of perfect and extreme Forms II, Acta Arithmetica, Band<br />

5, Seiten 205-222, 1959.<br />

[BaKa84] A. Bachem <strong>und</strong> R. Kannan , Lattices and the Basis Reduction Algorithm, Technischer<br />

Report, Carnegie-Mellon-<strong>Universität</strong> (USA), (1984).<br />

[BeWe93] Th. Becker <strong>und</strong> V. Weispfennig, Gröbner Bases — a computational Approach to<br />

commutative Algebra, Graduate Texts in Mathematics, Band 141, Springer-Verlag, Berlin/Heidelberg,<br />

1993.<br />

[Bli14] H.F. Blichfeldt, A new Principle in the Geometry of Numbers with some Applications,<br />

Transaction of the American Mathematical Society, Band 15, Seiten 227–235, 1914.<br />

[Bli29] H.F. Blichfeldt , The Minimum Value of quadratic Forms and the closet Packing of Sphere,<br />

Mathematische Annalen, Band 101, Seiten 366-389, 1929.<br />

[Bli35] H.F. Blichfeldt, The minimum Value of positive Quadratic Forms in six, seven and eight<br />

Variables, Mathematische Zeitschrift, Band 39, Seiten 1–15, 1935.<br />

[Be80]<br />

G. Bergman, Notes on Ferguson and Forcade’s Generalized Euclidean Algorithm. TR.<br />

Dep. of Mathematics, University of Berkeley, CA, 1980.<br />

[BM03] J. Blömer and A. May New Partial Key Exposure Attacks on RSA. Proc. Crypto’2003,<br />

Lecture Notes in Comp.Sci., 2729, Springer, New York, pp. 27 - 43, 2003.<br />

[BS99] J. Blömer and J.P. Seifert, On the Complexity of Computing Short Linearly Independent<br />

Vectors and Short Bases in a Lattice. Proc. 31th STOC, pp. 711–720, 1999.<br />

[Bo00]<br />

D. Boneh, Finding Smooth Integers in Small Intervals Using CRT Decoding. Proc. 32th<br />

STOC, pp. 265-272, 2000.<br />

107


108 LITERATURVERZEICHNIS<br />

[Bb65] B. Buchenberger 1965, Ein Algorithmus zum Auffinden der Basiselemente des Restklassenrings<br />

nach einem nulldimensionalen Polynomideal, Dissertation, Fachbereich Mathematik,<br />

<strong>Universität</strong> Insbruck (Österreich), 1965.<br />

[Ca00]<br />

[Co97]<br />

[Co01]<br />

[Ca71]<br />

[Co93]<br />

J. Cai, The Complexity of some Lattice Problems. Algorithmic Number Theory, Lecture<br />

Notes in Comput. Sci., 1838, Springer, New York, pp. 1-32, 2000.<br />

D. Coppersmith, Small Solutions to Polynomial Equations, and Low Exponent RSA Vulnerabilities.<br />

J. Cryptology, 10, pp. 233-260, 1997.<br />

D. Coppersmith, Finding Small Solutions to Small Degree Polynomials. Cryptography and<br />

Lattices, Lecture Notes in Comput. Sci., Springer, New York, 2146, pp. 20-31, 2001.<br />

J.W.S. Cassels , An Introduction to the Geometry of Numbers, Springer-Verlag, Berlin/Heidelberg,<br />

1971.<br />

H. Cohen , A Course in Computational Algebraic Number Theory, Graduate Texts in<br />

Mathematics, Band 138, Springer-Verlag, Berlin/Heidelberg, 1993.<br />

[CoSl88] J.H. Conway <strong>und</strong> N.J. Sloane , Sphere Packings, Lattices and Groups, Springer-Verlag,<br />

New York, 1988.<br />

[CJLOSS92] M.J. Coster, A. Joux, B.A. LaMacchina, A.M. Odlyzko, C.P. Schnorr <strong>und</strong> J. Stern,<br />

An improved low-density Subset Sum Algorithm, Computational Complexity, Band 2,<br />

Seiten 111–128, 1992.<br />

[CR88] B. Chor <strong>und</strong> R.L. Rivest, A Knapsack type Public Key Cryptosystem based on Arithmetic<br />

in finite Fields, IEEE Transaction Information Theory, Band IT-34, Seiten 901–909, 1988.<br />

[Då89] I.B. Dåmgard, A Design Principle for Hash Functions, Advances in Cryptology, Proceedings<br />

EuroCrypt ’89, Lecture Notes in Computer Science, Band 435 (1990), Springer-<br />

Verlag, Berlin/Heidelberg, Seiten 416–427, 1989.<br />

[Da63] G.B. Dantzig , Linear Programming and Extensions, Princeton University Press, Princeton,<br />

New Jersey (dt. Übersetzung ”<br />

Lineare Programmierung <strong>und</strong> Erweiterungen“ 1966 im<br />

Springer-Verlag, Berlin/Heidelberg, erschienen), 1963.<br />

[DV94] H. Daudé and B. Vallée, An Upper Bo<strong>und</strong> on the Average Number of Iterations of the<br />

LLL algorithm, Theoret. Comput. Sci., 123, pp. 395–115, 1994.<br />

[Di1842] G.L. Dirichlet, Verallgemeinerung eines Satzes aus der Lehrere von Kettenbrüchen nebst<br />

einigen Anwendungen auf die Theorie der Zahlen, Bericht über die zur Bekanntmachung<br />

geeigneter Verhandlungen der Königlich Preussischen Akademie der Wissenschaften zu<br />

Berlin, Seiten 93–95, 1842.<br />

[DKT87] P.D. Domich, R. Kannan <strong>und</strong> L.E. Trotter, Hermite normal Form Computation using<br />

modulo Determinant Arithmetic, Mathematics of Operation Research, Band 12, Nr. 1<br />

(Februar), Seiten 50–59, 1987.<br />

[EB81] P. van Emde Boas, Another N P-complete Partition Problem and the Complexity of Computing<br />

short Vectors in a Lattice, Technischer Report 81-04, Fachbereich Mathematik der<br />

<strong>Universität</strong> Amsterdam, 1981.<br />

[E91]<br />

[Fe68]<br />

M. Euchner , Praktische Algorithmen zur <strong>Gitter</strong>reduktion <strong>und</strong> Faktorisierung, Diplomarbeit,<br />

Fachbereich Informatik der Johann-Wolfgang-<strong>Goethe</strong>-<strong>Universität</strong>, Frankfurt/Main,<br />

1991.<br />

W. Feller, An Introduction to Probability Theory and its Application, Band I, 3. Auflage,<br />

John Wiley & Sons, New York, 1968.


LITERATURVERZEICHNIS 109<br />

[Fr86]<br />

A.M. Frieze , On the Lagarias-Odlyzko Algorithm for the Subset Sum Problem, SIAM<br />

Journal on Computing, Band 15, Nr. 2, Seiten 536–539, 1986.<br />

[GaSi78] J. von zur Gathen <strong>und</strong> M. Sieveking , A Bo<strong>und</strong> on Solution of linear Integer Equations<br />

and Inequations, Proceedings of the American Mathematical Society, Band 72, Seiten<br />

155–158, 1978.<br />

[GaJo79] M.R. Garey, D.S. Johnson, Computer and Intractability: A Guide to the Theory of<br />

N P-Completness, W.H. Freeman and Company, San Francisco, 1979.<br />

[G1801] C.F. Gauß , Disquisitiones Arithmeticae, Gerhard Fleischer, Leipzig. Deutsche Übersetzung<br />

(1889): ”<br />

Untersuchung über höhere Arithmetik“, Springer-Verlag, Berlin/Heidelberg,<br />

1801.<br />

[GrLek87] M. Gruber <strong>und</strong> C.G. Lekkerkerker, Geometry of Numbers, 2. Auflage, North-Holland,<br />

Amsterdam, 1987.<br />

[GLLS88] M. Grötschel, L. Lovász and A. Schrijver, Geometric Algorithms and combinatorial Optimization,<br />

Algorithms and Combinatorics, Band 2, Springer-Verlag, Berlin/Heidelberg,<br />

1988.<br />

[GHKN06] N. Gama, N. How-Grave-Graham, H. Koy and P. Nguyen, Rankin’s Constant and<br />

Blockwise Lattice Reduction, In Proc. CRYPTO 2006, LNCS 4117, Springer-Verlag, Berlin/Heidelberg,<br />

pp. 112–139, 2006.<br />

[GN08a] N. Gama and P. Nguyen, Predicting Lattice Reduction. In Proc. EUROCRYPT 2008,<br />

LNCS 4965, Springer-Verlag, Berlin/Heidelberg, pp. 31–51, 2008.<br />

[GN08b] N. Gama and P. Nguyen, Finding Short Lattice Vectors within Mordell.s Inequality, In<br />

Proc. of the 2008 ACM Symposium on Theory of Computing, pp. 208–216, 2008.<br />

[GNR10] N. Gama, P.Q. Nguyen and O. Regev, Lattice enumeration using extreme pruning, Proc.<br />

EUROCRYPT 2010, LNCS 6110, Springer-Verlagg, pp. 257–278, 2010, final version to be<br />

published.<br />

[HaMcC91] J. Hafner <strong>und</strong> K. McCurley , Asymptotic Fast Triangulation of Matrices over Ring,<br />

SIAM Journal on Computing, Band 20, Nr. 6, Seiten 1068–1083, 1991.<br />

[HJLS89] J. Håstad, B. Just, J.C. Lagarias <strong>und</strong> C.P. Schnorr , Polynomial Time Algorithms for<br />

Finding Integer Relations among real Numbers, SIAM Journal on Computing, Band 18,<br />

Nr. 5, Seiten 859–881, 1989.<br />

[HT98] C. Heckler and L. Thiele Complexity Analysis of a Parallel Lattice Basis Algorithm. Siam<br />

J. Comput. 27(5), pp. 1295–1302, 1998.<br />

[He85]<br />

B. Helfrich 1985, Algorithms to construct Minkowski reduced and Hermite reduced Lattice<br />

Bases, Theoretical Computer Science, Band 41, Seiten 125–139, 1985.<br />

[He1850] C. Hermite , Extraits de lettres de M. Ch. Hermite à M. Jacobi sur differents objets de<br />

la théorie des nombres, Deuxième lettre, Reine Angewandte Mathematik, Band 40, Seiten<br />

279–290, 1850.<br />

[Hl44] E. Hlawka , Zur Geometrie der Zahlen, Mathematische Zeitschrift, Band 49, Seiten 285–<br />

312, 1944.<br />

[J48]<br />

F. John , Extremum Problems with Inequalities as subsidiary Conditions, in K.O. Friedrichs,<br />

O.E. Neugebauer <strong>und</strong> J.J. Stoker (Ed.): ”<br />

Studies and Essays presented to R. Courant<br />

on his 60th Birthday Januar 8, 1948“, Interscience Publisher, New York, Seiten 187–204,<br />

1948.


110 LITERATURVERZEICHNIS<br />

[JoSt94] A. Joux <strong>und</strong> J. Stern , Lattice Reduction: A Toolbox for the Cryptanalyst, Technischer<br />

Report, DGA/CELAR, Bruz (Frankreich). Eingereicht bei Journal of Cryptology, 1994.<br />

[KaLe78] G.A. Kabatiansky <strong>und</strong> V.I. Levenshtein , Bo<strong>und</strong>s for Packings on a Sphere and in Space,<br />

Problems of Information Transmission, Band 14, Seiten 1–17, 1978.<br />

[Ka91] M. Kaib , The Gauß Lattice Basis Reduction succeeds with any Norm, Proceedings of<br />

F<strong>und</strong>amentals of Computation Theory (FCT ’91), Springer Lecture Notes in Computer<br />

Science, Band 591, Seiten 275–286, 1991.<br />

[Ka94] M. Kaib , <strong>Gitter</strong>basenreduktion für beliebige Normen, Dissertation, Fachbereich Mathematik<br />

der Johann-Wolfgang-<strong>Goethe</strong>-<strong>Universität</strong>, Frankfurt/Main, 1994.<br />

[KS96] M. Kaib <strong>und</strong> C.P. Schnorr, The Generalized Gauss Reduction Algorithm, Journal of<br />

Algorithms, Band 21, Nr. 3 (November), Seiten 565–578, 1996.<br />

[KaBa79] R. Kannan <strong>und</strong> A. Bachem, Polynomial Algorithm for Computing the Smith and the<br />

Hermite Normal Form of an Integer Matrix, SIAM Journal on Computing, Band 8, Seiten<br />

499–507, 1979.<br />

[K87]<br />

R. Kannan, Minkowski’s Convex Body Theorem and Integer Programming. Math. Oper.<br />

Res., 12, pp. 415–440, 1987.<br />

[Ka01] H. Koy, Notes of a Lecture. Frankfurt 2004., //www.mi.informatik.unifrankfurt.de/index.html#publications<br />

[Ka84] M. Karmarkar, A new Polynomial-Time Algorithm for Linear Programming, Combinatorica,<br />

Band 4, Seiten 373–395, 1984.<br />

[Kh79] L.G. Khachiyan, A Polynomial Algorithm in Linear Programming, Soviet Mathmatics<br />

Doklady, Band 20, Seiten 191–194, 1979.<br />

[Kh80] L.G. Khachiyan, Polynomial Algorithms in Linear Programming, U.S.S.R. Computational<br />

Mathematics and Mathematical Physics, Band 20, Seiten 53–72, 1980<br />

[Kh05] S. Khot, Hardness of Approximating the Shortest Vector Problem in Lattices, Journal of<br />

the ACM, Vol. 52, No. 5, Seiten 789–803, 2005.<br />

[Kh71] D.E. Knuth, The Art of Computer Programming, F<strong>und</strong>amental Algorithms, Band I,<br />

Addison-Wesley, Reading, 2001.<br />

[KZ1872] A. Korkine <strong>und</strong> G. Zolotareff, Sur les formes quadratique positive quaternaires, Mathematische<br />

Annalen, Band 5, Seiten 366-389, 1872.<br />

[KZ1873] A. Korkine <strong>und</strong> G. Zolotareff, Sur les formes quadratique, Mathematische Annalen,<br />

Band 6, Seiten 366–389, 1873<br />

[KZ1877] A. Korkine <strong>und</strong> G. Zolotareff, Sur les formes quadratique positive, Mathematische Annalen,<br />

Band 11, Seiten 242–292, 1877.<br />

[KS01a] H. Koy and C.P. Schnorr, Segment LLL-Reduction. Cryptography and Lattices,<br />

Lecture Notes in Comput. Sci., 2146, Springer, New York, pp.67–80, 2001.<br />

//www.mi.informatik.uni-frankfurt.de/research/papers.html<br />

[KS01b] H. Koy and C.P. Schnorr, Segment LLL-Reduction with Floating Point Orthogonalization.<br />

Cryptography and Lattices, Lecture Notes in Comput. Sci., 2146, Springer, New York,<br />

pp. 81–96, 2001. //www.mi.informatik.uni-frankfurt.de/research/papers.html<br />

[KS02] H. Koy and C.P. Schnorr, Segment and Strong Segment LLL-Reduction of<br />

Lattice Bases. TR <strong>Universität</strong> Franfurt, April 2002, //www.mi.informatik.unifrankfurt.de/research/papers.html


LITERATURVERZEICHNIS 111<br />

[Ko04] H. Koy, Files of a lecture, Frankfurt, May 2004, //www.math.uni-frankfurt.de/ dmst/,<br />

see publications.<br />

[LA]<br />

M. Kaib, R. Mirwald, C. Rössner, H.H. Hörner, H. Ritter (1994): Programmieranleitung<br />

für LARIFARI — Version 13.07.1994, Fachbereiche Mathematik <strong>und</strong> Informatik der<br />

Johann-Wolfgang-<strong>Goethe</strong>-<strong>Universität</strong>, Frankfurt/Main.<br />

[La1773] J.L. Lagrange, Recherches d’arithmétique, Nouveaux Mémoires de l’Académie Royale<br />

des Sciences et Belles-Lettres, Berlin, Seiten 265–312,1773.<br />

[Lang93] S. Lang, Algebra, 3. Auflage, Addison-Wesley, Reading, 1993<br />

[LLS90] J.C. Lagarias, H.W. Lenstra <strong>und</strong> C.P. Schnorr, Korkin-Zolotarev Bases and successive<br />

Minima of a Lattice and its reciprocal lattice, Combinatorica, Band 10, Seiten 333–348,<br />

1998.<br />

[LaOd85] J.C. Lagarias <strong>und</strong> A.M. Odlyzko, Solving low-density Subset Sum Problems, Journal of<br />

ACM, Band 32, Nr. 1, Seiten 229–246, 1985.<br />

[LLL82] A.K. Lenstra, H.W. Lenstra <strong>und</strong> L. Lovász, Factoring Polynomials with Rational Coefficients,<br />

Springer Mathematische Annalen, Band 261, Seiten 515–534, 1982.<br />

[Lenstra83] H.W. Lenstra, Integer Programming in a fixed Number of Variables, Mathematics of<br />

Operation Research, Band 8, Nr. 4 (November), Seiten 538–548, 1983.<br />

[Lováz86] L. Lovász, An algorithmic Theory of Numbers, Graphs and Convexity, CBMS-NSF<br />

Regional Conference Series in Applied Mathematics, Band 50, SIAM Publications, Philadelphia,<br />

1986<br />

[LoSc92] L. Lovász <strong>und</strong> H. Scarf, The Generalized Basis Reduction Algorithm, Mathematics of<br />

Operation Research, Band 17, Nr. 3 (August), Seiten 751–764, 1992<br />

[MaOd90] J.E. Mazo <strong>und</strong> A.M. Odlyzko, Lattice Points in high-dimensional Sphere, Monatsheft<br />

Mathematik, Band 110, Seiten 47–61, 1930.<br />

[Ma03] A. May, New RSA Vulnerabilities Using Lattice Reduction Methods. Dissertation Thesis,<br />

University of Paderborn, October 2003.<br />

[ML01] S. Mehrotra and Z. Li, Reduction of Lattice Bases Using Modular Arithmetic. TR. Dept.<br />

of Industrial Engeneering and Management Sciences, Northwestern University, Evanston,<br />

Il. Oct 2001, mehrotra, zhifeng@iems.nwu.edu.<br />

[MH78] R.C. Merkle and M.E. Hellman, Hiding Information and Signatures in Trapdoor<br />

Knapsacks, IEEE Trans. Inform. Theory, vol, IT-30, 594–601, 1984.<br />

[MG02] D. Micciancio and S. Goldwasser, Complexity of Lattice Problems: A Cryptographic<br />

Perspective. Kluwer Academic Publishers, Boston, London, 2002.<br />

[Mi1896] H. Minkowski, Geometrie der Zahlen, erste Auflage, Teubner-Verlag, Leipzig, 1896.<br />

[Mi1911] H. Minkowski, Gesammelte Abhandlungen, Band I <strong>und</strong> II, Teubner-Verlag, Leipzig, 1911.<br />

[Mis93] B. Mishra, Algorithmic Algebra, Texts and Monographs in Computer Science, Springer-<br />

Verlag, New-York, 1993.<br />

[NS06] P. Nguyen and D. Stehlé, LLL on the average. In Proc. ANTS-VII, LNCS 4076, Springer-<br />

Verlag, Berlin New York, pp. 238–356, 2006.<br />

[O90]<br />

A. M. Odlyzko, The rise and fall of knapsack cryptosystems. In Cryptology and Computational<br />

Number Theory, C. Pomerance ed., Proc. Symp. Appl. Math. 12 Amer. Math,<br />

Soc, Providence, 1990, 75–88,


112 LITERATURVERZEICHNIS<br />

[PS87]<br />

A. Paz and C.P.Schnorr, Approximating integer lattices by lattices with cyclic factor<br />

groups. Proceedings 14th International Colloquium on Automata, Languages and Programming<br />

(ICALP), LNCS 267, Springer-Verlag, Berlin New York, pp. 386–393, 1987.<br />

[R89] J.A. Rush, A lower bo<strong>und</strong> on packing spheres. Invent. math., 98, pp. 499–509, 1989.<br />

[Ri96]<br />

[S87]<br />

[S93]<br />

[S94]<br />

[SE94]<br />

H. Ritter: Breaking Knapsack Cryptosystems by l ∞ -norm enumeration. Proceedings of 1st<br />

International Conference on the Theory and Applications of Cryptography–PragoCrypt<br />

’96, CTU Publishing House, Prag, Seiten 480–492, 1996.<br />

C.P.Schnorr, A Hierarchy of polynomial time lattice basis reduction algorithms. Theoretical<br />

Computer Science, 53, pp. 201–224, 1987.<br />

C.P.Schnorr, Factoring integers and computing discrete logarithms via Diophantine approximation.<br />

In Advances in Computational Complexity, AMS, DIMACS Series in Discrete<br />

Mathematics and Theoretical Computer Science, 13, pp. 171–182, 1993. Preliminary<br />

version in Proc. EUROCRYPT’91, LNCS 547, Springer-Verlag, Berlin New York, pp. 281–<br />

293, 1991. //www.mi.informatik.uni-frankfurt.de.<br />

C.P.Schnorr, Block reduced lattice bases and successive minima. Comb. Prob. and Comp.<br />

3, pp. 507–522, 1994.<br />

C.P. Schnorr and M. Euchner, Lattce basis reduction: Improved practical algorithms<br />

and solving subset sum problems. Mathematical Programming 66, pp. 181–199, 1994.<br />

Preliminary version in Proc. FCT’91, LNCS 591, Springer-Verlag, Berlin New York, pp.<br />

68–85, 1991. //www.mi.informatik.uni-frankfurt.de.<br />

[SH95] C.P. Schnorr and H.H. Hörner, Attacking the Chor–Rivest cryptosystem by improved<br />

lattice reduction. In Proc. EUROCRYPT’95, LNCS 921, Springer-Verlag, Berlin New<br />

York, pp. 1–12, 1995. //www.mi.informatik.uni-frankfurt.de.<br />

[S03]<br />

[S06]<br />

[S07]<br />

[S10]<br />

[Sc84]<br />

C.P. Schnorr, Lattice reduction by sampling and birthday methods. Proc. STACS<br />

2003: 20th Annual Symposium on Theoretical Aspects of Computer Science, LNCS<br />

2007, Springer-Verlag, Berlin New York, pp. 146–156, 2003. //www.mi.informatik.unifrankfurt.de<br />

C.P. Schnorr, Fast LLL-type lattice reduction. Information and Computation, 204, pp.<br />

1–25, 2006. //www.mi.informatik.uni-frankfurt.de<br />

C.P. Schnorr, Progress on LLL and lattice reduction, Proceedings LLL+25, Caen,<br />

France, June 29–July 1, 2007, Final version to appear by Springer-Verlag, 2009.<br />

//www.mi.informatik.uni-frankfurt.de<br />

C.P. Schnorr, Average Time Fast SVP <strong>und</strong> CVP Algorithms for Low Density Lattices<br />

and the Factorization of Integers. Technical Report, University Frankfurt, Sepember 2010.<br />

//www.mi.informatik.uni-frankfurt.de<br />

i<br />

C.P. Schnorr <strong>und</strong> T. Shevchenko, Solving Subset Sum Problems of Density<br />

close to 1 by randomized”BKZ-reduction. Cryptology ePrint Archiv: Report<br />

¯bitem[SS12]SS12<br />

2013/620,<br />

A. Schönhage, Factorization of Univariate Integer Polynomials by Diophantine Approximation<br />

and Improved Lattice Basis Reduction Algorithm. Proc. 11-th Coll. Automata,<br />

Languages and Programming, Antwerpen 1984, Lecture Notes in Comput. Sci., 172, Springer,<br />

New York, pp. 436–447, 1984.<br />

[Schr86] A. Schrijver, Theory of Linear and Integer Programming, Wiley-Interscience Series in<br />

discrete Mathematics and Optimization, John Wiley & Son Ltd, 1986.<br />

[Se93]<br />

M. Seysen, Simultaneous Reduction of a Lattice and its reciprocal Basis, Combinatorica,<br />

Band 13, Seiten 363–376, 1993.


LITERATURVERZEICHNIS 113<br />

[Si89]<br />

C.L. Siegel, Lectures on the Geometry of Numbers, Springer-Verlag, Berlin/Heidelberg,<br />

1989.<br />

[Sm1861] H.J.S. Smith, On Systems of linear indeterminate Equations and Congruences, Philosophical<br />

Transaction of the Royal Society of London, Band 151, Seiten 293–326, 1861.<br />

[SS76]<br />

[St96]<br />

[V82]<br />

[W66]<br />

[Ye91]<br />

E. Specker <strong>und</strong> V. Strassen, Komplexität von Entscheidungsproblemem, Lecture Notes in<br />

Computer Science, Band 43, Springer-Verlag, Berlin/Heidelberg, 1976.<br />

A. Storjohann, Faster Algorithms for Integer Lattice Basis Reduction.<br />

TR 249, Swiss Federal Institute of Technology, ETH-Zurich, Department of Computer<br />

Science, Zurich, Switzerland, July 1996.<br />

//www.inf.ethz.ch/research/publications/html.<br />

N.M. Vetchinkin, Uniqueness of Classes of positive quadratic Forms on which Values of<br />

the Hermite Constants are attained for 6 ≤ n ≤ 8, Proceedings of the Steklov Institute of<br />

Mathematics, Nr. 3, Seiten 37–95, 1982.<br />

G.L. Watson, On the Minimum of a positiv Quadratic Form in n (n ≤ 8) Variables<br />

(Verification of Blichfeldt’s Calculations), Proceeedings of the Cambrigde Philosophical<br />

Society (Mathematical and Physical Science), Band 62, Seite 719, 1966.<br />

Y. Ye, Potential Reduction Algorithm for Linear Programming, Mathematical Programming,<br />

Band 51, Seiten 239–258, 1991.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!