Zahlentheorie und Kryptographie

Werbung
Seminarausarbeitungen
Zahlentheorie und Kryptographie
Sommersemester 2007
Betreut von Ralf Gramlich und Max Horn
Inhaltsverzeichnis
1 Finite Fields
Desislava Ruseva & Preslava Valkova
1.1 Introduction . . . . . . . . . . . . . . . . .
1.2 Multiplicative Generators of Finite Fields
1.3 Existence and Uniqueness of Finite Fields
1.4 Explicit Construction . . . . . . . . . . .
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Komplexitätstheorie
Karl Ferdinand Ebert & Lotta Heckmann
2.1 Landau-Symbole . . . . . . . . . . . . . . . . . . . .
2.1.1 o-Notation und asymptotische Gleichheit . .
2.2 Eingabelänge . . . . . . . . . . . . . . . . . . . . . .
2.3 Zeitaufwand . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Einfache Rechenoperationen . . . . . . . . . .
2.3.2 Algorithmen . . . . . . . . . . . . . . . . . .
2.3.3 Der Euklidische Algorithmus . . . . . . . . .
2.3.4 Polynomieller und exponentieller Zeitaufwand
2.4 P , N P und N P -Vollständigkeit . . . . . . . . . . . .
2.4.1 Entscheidungs- und Suchprobleme, Instanzen
2.4.2 Klassen P und N P . . . . . . . . . . . . . . .
2.4.3 Reduzierung von Problemen . . . . . . . . . .
2.4.4 N P -vollständige Probleme . . . . . . . . . .
3 Öffentliche Schlüssel
Florian Bruse & Juha Ojansivu
3.1 Definitions . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Cryptosystems . . . . . . . . . . . . . . . .
3.1.2 Public Key Cryptosystems . . . . . . . . .
3.1.3 One-way functions . . . . . . . . . . . . . .
3.1.4 Comparison to classical cryptosystems . . .
3.1.5 Cryptoanalysis of public-key cryptosystems
3.2 The RSA cryptosystem . . . . . . . . . . . . . . .
3.2.1 Key generation . . . . . . . . . . . . . . . .
3.2.2 Encryption and Decryption . . . . . . . . .
3.2.3 Security of RSA . . . . . . . . . . . . . . .
3.2.4 Computational Complexity . . . . . . . . .
3.2.5 Choice of Parameters . . . . . . . . . . . .
3.3 The Discrete Logarithm Problem . . . . . . . . . .
3.3.1 Definitions . . . . . . . . . . . . . . . . . .
3.3.2 Diffie-Hellman . . . . . . . . . . . . . . . .
3.3.3 Massey-Omura . . . . . . . . . . . . . . . .
3.3.4 ElGamal . . . . . . . . . . . . . . . . . . . .
3.3.5 Solving the Discrete Logarithm Problem . .
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
8
8
10
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
11
11
12
12
13
13
14
14
15
16
16
17
18
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
18
19
20
21
21
22
22
22
23
23
24
24
24
24
25
25
25
Inhaltsverzeichnis
4 Primalität und Faktorisierung
Lora Boiadjieva & Stefan Wiedenmann
4.1 Primzahltests . . . . . . . . . . . .
4.1.1 Pseudoprimzahlen . . . . .
4.2 Faktorisierungsmethoden . . . . .
4.2.1 Probedivision . . . . . . . .
4.2.2 Die Rho-Methode . . . . .
4.2.3 Fermat-Faktorisierung . . .
4.2.4 Faktor-Basis . . . . . . . .
4.2.5 Die Kettenbruchmethode .
26
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Einführung in die elliptischen Kurven
Alexandra Fischer & Alexander Hoffmann
5.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 Ebene Kurven . . . . . . . . . . . . . . . . . . . . . .
5.1.2 Rationale Punkte auf rationalen Geraden . . . . . . .
5.1.3 Rationale Punkte auf rationalen Kegeln . . . . . . . .
5.1.4 Rationale kubische Kurven und der Satz von Mordell
5.2 Gruppengesetz auf kubischen und elliptischen Kurven . . . .
5.2.1 Berechnung des Inversen . . . . . . . . . . . . . . . . .
5.2.2 Addition zweier Punkte . . . . . . . . . . . . . . . . .
5.3 Elliptische Kurven Kryptographie . . . . . . . . . . . . . . . .
5.3.1 Schlüsselerzeugung . . . . . . . . . . . . . . . . . . . .
5.3.2 Verschlüsselungsschema . . . . . . . . . . . . . . . . .
5.3.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
27
31
31
32
33
34
35
38
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Das Zahlkörpersieb
Adrian Sichau
6.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Kurzfassung des Algorithmus . . . . . . . . . . . . . . . . . . . .
6.3 Die Idee des Algorithmus . . . . . . . . . . . . . . . . . . . . . .
6.4 Konstruktion des Zahlkörpers Q(α) und des Homomorphismus ϕ
6.5 Glattheit im Zahlkörper . . . . . . . . . . . . . . . . . . . . . . .
6.6 Ideale, Primideale und Ideale vom Grad 1 . . . . . . . . . . . . .
6.7 Schritt 1 des Zahlkörpersiebs - Auswahl der Faktorbasis . . . . .
6.8 Schritt 2 des Zahlkörpersiebs - Sammeln von Relationen . . . . .
6.9 Full relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.10 Partial relations . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.11 Free relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.12 Das Sieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.13 Laufzeitanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 Ein polynomieller Primzahltest
Erdmute Oehmke
7.1 Einleitung . . . . . . . . . . . . .
7.1.1 Das Sieb des Eratosthenes
7.1.2 Kleiner Satz von Fermat .
7.2 Grundidee . . . . . . . . . . . . .
7.3 Der Algorithmus . . . . . . . . .
7.4 Korrektheit des Algorithmus . .
7.4.1 Schritt 1 . . . . . . . . . .
7.4.2 Schritt 2 . . . . . . . . . .
7.4.3 Schritt 3 . . . . . . . . . .
7.4.4 Schritt 4 . . . . . . . . .
7.4.5 Schritt 5 . . . . . . . . . .
7.5 Komplexität . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
38
39
40
40
41
43
44
44
44
45
45
46
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
46
46
47
47
48
49
50
50
51
51
52
52
53
54
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
54
54
55
55
56
56
57
57
57
57
57
60
Inhaltsverzeichnis
8 Das XTR Public Key System
Markus Schupp
8.1 Einführung . . . . . . . . . . . . . . . . . .
8.2 Darstellung der Elemente einer Untergruppe
8.2.1 Definitionen und Grundlagen . . . .
8.2.2 Die Spur . . . . . . . . . . . . . . . .
8.2.3 Das Polynom Fc (x) . . . . . . . . .
8.3 Anwendungen . . . . . . . . . . . . . . . . .
8.3.1 XTR-Diffie-Hellman . . . . . . . . .
8.3.2 XTR-ElGamal Verschlüsselung . . .
8.4 Sicherheit von XTR . . . . . . . . . . . . .
8.4.1 Äquivalenz von Problemen . . . . .
8.4.2 Relation zu elliptischen Kurven . . .
61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9 The NTRU Public Key Cryptosystem
Silke Möser
9.1 Description of the NTRU-PKCS . . . . . . . . . .
9.1.1 Parameters . . . . . . . . . . . . . . . . . .
9.1.2 Sample Spaces . . . . . . . . . . . . . . . .
9.1.3 Key Generation . . . . . . . . . . . . . . . .
9.1.4 Encryption . . . . . . . . . . . . . . . . . .
9.1.5 Decryption . . . . . . . . . . . . . . . . . .
9.1.6 Why should this work? . . . . . . . . . . .
9.2 NTRU and Lattices . . . . . . . . . . . . . . . . .
9.2.1 Basic Facts on Lattices . . . . . . . . . . .
9.2.2 Convolution Modular Lattices . . . . . . . .
9.2.3 The CVP underlying an NTRU private key
9.2.4 NTRU decryption as a CVP . . . . . . . .
9.3 Comparison of Operation Characteristics . . . . . .
10 Isomorphism Classes of Elliptic Curves
Armin Straub
10.1 Preliminaries . . . . . . . . . . . . . . . .
10.1.1 Elliptic Curves . . . . . . . . . . .
10.1.2 Reduced Weierstrass Equations . .
10.2 Nonsingularity And The Discriminant . .
10.3 Classifying Isomorphism Types . . . . . .
10.4 Applications . . . . . . . . . . . . . . . . .
10.4.1 Elliptic Curves Over F2 . . . . . .
10.4.2 The Legendre and Deuring Normal
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
61
61
61
62
63
66
67
67
67
68
68
70
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
70
70
70
71
71
71
71
71
71
73
74
74
74
75
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Forms
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11 Elliptische Kurven über endlichen Körpern
Rebecca Kiesl
11.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 Die Riemann-Vermutung für elliptische Kurven über endlichen Körpern
11.3 Supersinguläre Kurven . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.4 Die Endomorphismen-Algebra und supersinguläre Kurven . . . . . . . .
11.5 Divisionspolynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 Rationale Punkte elliptischer Kurven
Catherina Köhl
12.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3 Schoofs Algorithmus I: Grundriss . . . . . . . . . . . . . . .
12.4 Schoofs Algorithmus II: Suche nach Eigenwerten . . . . . .
12.5 Schoofs Algorithmus III: Schoofs Algorithmus . . . . . . . .
12.6 Schoofs Algorithmus IV: t mod l = 2c bestimmen . . . . . .
12.7 Schoofs Algorithmus V: Baby-Step Giant-Step-Algorithmus
12.8 Schoofs Algorithmus VI: Ergebnisse überprüfen . . . . . . .
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
75
75
77
79
80
83
83
84
85
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
85
85
87
89
89
91
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
91
92
93
94
95
96
97
98
Inhaltsverzeichnis
12.9 Forschung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13 Factoring integers with elliptic
Stefan Witzel
13.1 Pollard’s p − 1 method . .
13.2 Lenstra’s ECM . . . . . .
13.2.1 Basics . . . . . . .
13.2.2 Description . . . .
13.2.3 Analysis . . . . . .
13.2.4 Achievements . . .
curves
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
98
99
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14 Pseudorandom Sequences from Elliptic Curves
Andreas Mars
14.1 Introduction . . . . . . . . . . . . . . . . . . . . . .
14.2 Pseudorandom Sequences . . . . . . . . . . . . . .
14.3 Pseudorandom Sequences from Elliptic Curves . .
14.4 Properties of pseudorandom sequences and results
14.5 Generalisations and Perspectives . . . . . . . . . .
15 Elliptic curves and large prime numbers
Alesinskyy Yevgen
15.1 Preliminaries . . . . . . . . . . . . . . . .
15.2 Prime-generating elliptic curves . . . . . .
15.3 A primality test for certain elliptic curves
15.4 The Wagstaff conjecture . . . . . . . . . .
15.5 Jacobinians of prime order . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
99
101
101
103
104
105
106
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
106
107
108
109
110
111
.
.
.
.
.
Bibliography
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
111
112
113
116
117
120
5
Chapter
1
Finite Fields
Desislava Ruseva & Preslava Valkova, 23.07.2007
Based on: [Kob98, chapter 3]
1.1 Introduction
In order to start working on finite fields, which play a very important role in both cryptography and
number theory, and to investigate them more closely, we should first recall some basic definitions and
properties of a field.
Definition 1.1.1. A field F is an algebraic structure that consists of a base set, two binary operations
over this set and two different constants, called neutral elements, adhering to certain relations. A field
actually consists of an abelian group with respect to both addition (F, +, 0) and multiplication (F\{0}, ∗, 1)
and thus it satisfies the following well-known rules – associativity and commutativity of both addition
and multiplication, existence of an additive identity 0 and a multiplicative identity 1, additive inverses,
multiplicative inverses for each element except 0, and the distributivity laws:
• x ∗ (y + z) = x ∗ y + x ∗ z ∀x, y, z ∈ F
• (y + z) ∗ x = y ∗ x + z ∗ x ∀x, y, z ∈ F
A finite field, as one can see just from the name, is nothing else, but a field with a finite number of
elements. The exact number of elements, or the so called order, of a finite field is of the form pn , where n
is a natural number and p is the characteristic of the field. The following definitions make it clear what
exactly the characteristic of a field means.
p−times
z
}|
{
Definition 1.1.2. Let F be a field. If there exists a positive number p s.t. 1 + 1 + . . . + 1 = 0, then F is
said to have characteristic p. Otherwise F has characteristic 0.
Proposition 1.1.3. Let Fq be a field with a finite number q of elements in it and let p be the characteristic
of Fq . Then p is a prime, Fp ∼
= Z/pZ is a subset of Fq and in fact Fq is a vector space over Fp . Let
Fq have dimension f , then q = pf . In particular, the size of a finite field is always a power of a prime,
namely its characteristic p.
1.2 Multiplicative Generators of Finite Fields
In a finite field Fq there are q − 1 nonzero elements, which form an abelian group with respect to
multiplication. It is denoted by F∗q .
Theorem 1.2.1 (Lagrange). The multiplicative order of any element in a finite group divides the number
of elements in the group. Thus, the order of any a ∈ F∗q divides q − 1.
Definition 1.2.2. An element g of Fq is a generator (and thus has order q − 1), if the powers of g run
through all nonzero elements of Fq .
6
1 Finite Fields
In order to understand one of the basic theorems about finite fields, we should first introduce the notion
of the Euler ϕ-function, also called totient function.
Definition 1.2.3. The Euler ϕ-function is defined to be function which maps every positive integer n
to the number of positive integers a ≤ n that are coprime to n.
One can show that an explicit formula for ϕ is given by
Y
1
ϕ (n) = n
1−
p
(1.2.1)
p|n
where p runs through all prime factors of n. Note: If n is prime ⇒ ϕ (n) = n − 1
Example 1.2.4. We want to compute ϕ (15).
1
1
2 4
ϕ (15) = ϕ (3 ∗ 5) = 15 1 −
1−
= 15 ∗ ∗ = 8.
3
5
3 5
(1.2.2)
As we already mentioned, the next theorem explains a basic fact about finite fields. It says that
the nonzero elements of any finite field form a cyclic group, which means that they are all powers of a
single element. But before introducing this theorem and especially its proof, we should have in mind the
following lemma:
Lemma 1.2.5. For any integer n > 1, we have
X
ϕ (d) = n.
d|n
Theorem 1.2.6. Every finite field has a generator. Assume g is a generator of F∗q . Then g i is also a
generator, if and only if gcd (i, q − 1) = 1. Thus there are ϕ (q − 1) different generators of F∗q , where ϕ
denotes the Euler ϕ-function.
Proof. (Taken from [Kob98, chapter 2].) Suppose that a ∈ F∗q has order d, which means that ad = 1 and
no lower power of a gives 1. So d divides (q − 1) and since ad is the smallest power that equals 1, it follows
that the elements a, a2 , a3 , ......, ad = 1 are distinct. We claim that the elements of order d are precisely
the ϕ(d) values for ai for which g.c.d.(i, d) = 1. Since the d distinct powers of a all satisfy the equation
X d = 1 and since the polynomial X d − 1 has at most d roots in a field, it follows that the powers of a
exhaust all the roots of this equation. Therefore any element of order d must be among the powers of a.
However, not all powers of a have order d. Namely, if g.c.d.(i, d) = d0 > 1, then ai has lower order – in
0
fact, (ai )d/d . Conversely, if g.c.d.(i, d) = 1, then after applying the extended Euclidean algorithm we get
iu − dv = 1 for some integers u and v, and from this we get a = a1 = a1 ∗ 1 = a1 ∗ adv = a1+dv = (ai )u .
It follows that a is a power of ai and so they have both the same order. Thus ai has order d ⇔ g.c.d.
(i, d) = 1. This means that, if there is any element a of order d, then there are exactly ϕ(d) elements of
order d. So for every d dividing q − 1 there are two possibilities:
• no element has order d, or
• exactly ϕ(d) elements are from order d.
Using Lemma 1.2.5 for n = q − 1, we have
X
ϕ (d) = q − 1
(1.2.3)
d|q−1
which is the number of elements in F∗q . But now we see that the only way that every element can have
some order d dividing (q − 1) is if there are always ϕ(d) (and never 0) elements of order d. In particular,
there are ϕ(q − 1) elements of order (q − 1). And, as already shown in the first paragraph of the proof,
if g is any element of order (q − 1), then the other elements of order (q − 1) are precisely the powers g i
for which g.c.d. (i, q − 1) = 1. This completes the proof.
Corollary 1.2.7. For every prime p, there exists an integer g such that the powers of g exhaust all
nonzero residue classes modulo p.
7
1 Finite Fields
Example 1.2.8. Consider Z/7Z. Write down all residues mod 7 for g = 3.
31 = 3 in Z/7Z
32 = 9 ≡ 2 in Z/7Z
33 = 27 ≡ 6 in Z/7Z
34 = 81 ≡ 4 in Z/7Z
35 = 243 ≡ 5 in Z/7Z
36 = 729 ≡ 1 in Z/7Z
1.3 Existence and Uniqueness of Finite Fields
In this section we will continue dealing with finite fields, and especially with the existence and uniqueness
of those fields, both of which are proved by showing that a finite field of q = pf elements is the splitting
field of the polynomial X q − X. Here are some of the basic definitions and properties.
Definition 1.3.1. A splitting field of a polynomial P (X) over a given field F is a minimal field extensions
K of F such that P (X) splits into a product of linear factors over K.
Remark 1.3.2. The splitting field K is unique up to isomorphism.
Theorem 1.3.3. Let Fq be a field with q = pf elements. Then every element satisfies the equation
X q − X = 0 and Fq is exactly the set of roots of that equation. Conversely, for every prime power q = pf ,
the splitting field over Fp of the polynomial X q − X is a field of q elements.
Definition 1.3.4. An automorphism is an isomorphism, which is a 1-to-1 correspondence between two
fields that preserves addition and multiplication, from a given field to itself.
p
Lemma 1.3.5. (a + b) = ap + bp in any field of characteristic p > 0.
p
Proof. We observe that all of the intermediate terms of the binomial expansion : (a + b) =
p!
vanish because: pj = (p−j!)j!
is divisible by p for 0 < j < p.
Pp
p p−j j
b
j=0 j a
Theorem 1.3.6. Let Fq be a finite field with q = pf elements. Let σ be the map such that σ(a) = ap .
Then σ is an automorphism of Fq , which is called the Frobenius automorphism. Moreover the elements of
Fq which are kept fixed by σ are exactly the elements of Fp . The f -th power of the map σ is the identity
map.
Theorem 1.3.7 (Fermat’s Little Theorem). If p is a prime number, then for any integer a, (ap − a) is
divisible by p (ap ≡ a (mod p)).
Definition 1.3.8. The degree d of a polynomial in one variable is the highest power of X that occurs
with nonzero coefficient. We say that the polynomial is monic if the coefficient of X d is 1.
Theorem 1.3.9. In the notation of Theorem 1.3.6, if α is any element of Fq , then the conjugates of α
over Fp (the elements of Fq which satisfy the same monic irreducible polynomial with coefficient in Fp )
j
are the elements σ j (α) = αp .
Proof. (Taken from [Kob98, chapter 2].) Let d be the degree of Fp (α) as an extension of Fp . That is,
d
j
Fp (α) is a copy of Fpd . Then α satisfies X p − X but does not satisfy X p − X for any j < d. Thus,
one obtains d distinct elements by repeatedly applying σ to α. It now suffices to show that each of these
elements satisfies the same monic irreducible polynomial f (X) that α does, in which case they must be
the d roots. To do this,
f (X) ∈ Fp [X], then so
P it isj enough to prove that, if α satisfiesPa polynomial
j
does αp . Let f (X)
=
a
X
,
where
a
∈
F
.
Then
0
=
f
(α)
=
a
α
.
Raising
both sides to the p-th
j
p
j
jp
P
power gives 0 =
aj αj (where we use Lemma 1.3.5). But apj = aj , by Fermat’s Little Theorem, and
P
j
so we have: 0 = aj (αp ) = f (αp ), as desired.
1.4 Explicit Construction
So far our only practical experience has been with the finite field of the form Fp = Z/pZ. We now discuss
how to work with finite extensions
of Fp . In the case of the rational numbers Q, for example, we work
√
with an extension such as Q( 2). Namely, we get this field by taking a root α of the equation X 2 − 2
8
1 Finite Fields
and looking at expressions of the form a + bα, which are added
√ and multiplied in the usual way, except
that α2 should always be replaced by 2. In the case of Q( 3 2) we work with expressions of the form
a + bα + cα2 , and when we multiply we always replace α3 by 2. We can take the same general approach
with finite fields.
Example 1.4.1. Here we will show how we can construct F9 as an extension of F3 . F3 consists of the
elements 0, 1, 2 ≡ −1. We take any monic quadratic polynomial in F3 [X], which has no roots in F3 (the
coefficients of the polynomial are from F3 , but the roots not). By trying all possible choices of coefficients
we find three such polynomials: X 2 + 1, X 2 ± X − 1. Each of these polynomials gives an extension F9 of
the field of coefficients F3 . If we take X 2 + 1 and one of its roots i, the elements of F9 are all combinations
a + bi, a, b ∈ F3 . However, i is no generator of F∗9 , because it is of order 4, and not q − 1 = 8. The roots of
X 2 − X − 1 are generators. Let α be a root of X 2 − X − 1, then we can generate all nonzero elements of
F9 (Rule: α2 = α + 1): α1 = α, α2 = α + 1, α3 = −α + 1, α4 = −1, α5 = −α, α6 = −α − 1, α7 = α − 1,
α8 = 1.
F∗9 has ϕ (8) = 4 generators (Theorem 1.2.6): the roots of X 2 − X − 1 and X 2 + X − 1. The remaining
nonzero elements are the roots of the polynomials X 2 + 1 (±i = ± (α + 1)), X ± 1 (±1).
Let us take the prime finite field Fp and its extension Fq such that q = pf , then each element α ∈ Fq
satisfies a unique monic irreducible polynomial over Fp of some degree d ≤ f . Moreover, when we adjoin
such element α to Fp , we obtain Fp (α), which is an extension of degree d of the field Fp (Fpd ) and Fpd .
f 0
It follows that the number of elements in Fpf must be pd : so actually f = df 0 . Thus d|f . Conversely,
d
for any d|f the finite field is contained in Fq , because any solution of X p − X = 0 is a solution to
f
X p − X = 0. Thus we proved:
Theorem 1.4.2. The subfields of Fpf are the Fpd for d dividing f . If an element of Fpf is adjoined to
Fp , one obtains one of these fields.
It is now easy to prove a formula that is useful in determining the number of irreducible polynomials
of a given degree.
Theorem 1.4.3. For any q = pf the polynomial X q − X factors in Fp [X] into the product of all monic
irreducible polynomials of degrees d dividing f .
Corollary 1.4.4. If f is a prime number, then there are pf − p /f distinct monic irreducible polynomials of degree f in Fp [X].
We omit the proofs of Theorem 1.4.3 and Corollary 1.4.4, because they are rather technical.
Theorem 1.4.5. Let Fq where q = pf , be a finite field, and let g(X) be an irreducible polynomial of
degree f over Fp . Then two elements of Fq can be multiplied or divided in O(ln2 q) bit operations. If N is
a positive integer, then an element of Fq can be raised to the N-th power in O(ln N ln2 q) bit operations.
Proof. (Even only the proof of the formula for multiplication is enough to show how we use here the
characteristics of Fq we developed by now.)
An element of Fq is a polynomial with coefficients in Fp = Z/pZ regarded modulo g(X). The multiplication of two such elements requires O(f 2 ) of integers modulo p (and some additions which take much less
time), then we divide the result by g(X) (the last involves O(f ) divisions mod p and O(f 2 ) multiplications
mod p) and the remainder is our answer. According the euclidean Algorithm multiplication and division
modulo p requires O(ln2 p). In total: O(f 2 ln2 p) = O(ln2 q).
9
Kapitel
2
Komplexitätstheorie
Karl Ferdinand Ebert & Lotta Heckmann, 23.07.2007
Basierend auf: [Kob98, chapter 2]
2.1 Landau-Symbole
Definition 2.1.1. Die O-Notation.
Für zwei gegebene Funktionen f (n) und g(n) schreiben wir f ∈ O(g), falls es ein n0 ∈ R gibt, so dass
gilt: Für alle n ∈ R : n ≥ n0 sind f und g definiert, f (n), g(n) ≥ 0 und es gibt eine Konstante C ∈ R, so
dass f (n) ≤ C · g(n). Eine äquivalente Notation ist g ∈ Ω(f ) ⇔ f ∈ O(g). Man nennt Ω(f ) bzw. O(f )
untere bzw. obere Schranke.
Die O-Notation f ∈ O(g) ist sinnvoll, falls
• g ein einfacherer Ausdruck ist als f , oder
• g eine gute Abschätzung darstellt, also nicht viel schneller wächst als f .
Beispiele 2.1.2.
• Abschätzung eines Polynoms durch die höchste Potenz ist eine sinnvolle“ Ab”
schätzung: 3.142n3 + 2.718n2 + 1.618n + 1.414 ∈ O(n3 ).
• Ein Polynom durch eine Exponentialfunktion abzuschätzen, ist zwar definitionsgemäß korrekt, liefert
aber dann eine schlechte Abschätzung, z.B. n ∈ O(en ).
• Falls f ∈ O(g) und g eine Konstante ist, so ist f ∈ O(1).
Lemma 2.1.3. Eigenschaften der O-Notation.
Es gilt f ∈ O(f ) (Reflexivität) und f ∈ O(g), g ∈ O(h) ⇒ f ∈ O(h) (Transitivität).
Beweis. Man überprüft leicht: f ∈ O(f ) mit C ≥ 1 und n0 beliebig. Falls f ∈ O(g) mit n1 , C1 und
g ∈ O(h) mit n2 , C2 , so ist f ∈ O(h) mit n0 := max(n1 , n2 ), C := C1 C2 .
Die O-Notation ist im Allgemeinen nicht symmetrisch, z.B. ist n ∈ O(n2 ), aber n2 6= O(n). Es gibt
deshalb eine eigene Notation für Funktionen, bei denen die Rollen vertauscht werden können:
Definition 2.1.4. Die Θ-Notation.
Man schreibt f ∈ Θ(g), wenn für f und g gilt, dass f ∈ O(g) und g ∈ O(f ), d.h. es gibt Konstanten
C1 , C2 , so dass für alle n ≥ n0 gilt: C1 f (n) ≤ g(n) ≤ C2 f (n).
Im obigen Beispiel ist z.B. 3.142n3 + 2.718n2 + 1.618n + 1.414 ∈ Θ(n3 ).
Die O-Notation lässt sich auch für Funktionen mehrerer Variablen verwenden. Man schreibt f (n1 , . . . , nk ) ∈
O(g(n1 , . . . , nk )), falls es Konstanten m, C gibt, so dass für alle ni ≥ m, 1 ≤ i ≤ k gilt: f (n1 , . . . , nk ) ≤
C · g(n1 , . . . , nk ).
10
2 Komplexitätstheorie
2.1.1 o-Notation und asymptotische Gleichheit
(n)
Definition 2.1.5 (Die o-Notation). Für zwei positivwertige Funktionen f (n) und g(n) gelte limn→∞ fg(n)
=
C (C konstant). Falls C = 0, so schreiben wir f ∈ o(g). Falls C = 1 so ist f asymptotisch gleich zu g und
wir schreiben f g.
Bemerkung 2.1.6. Sobald der Grenzwert eine Konstante C ist, so gilt: f ∈ O(g). Wenn C > 0, gilt
sogar g ∈ O(f ).
Nun noch ein paar Beispiele zur Notation:
Beispiele 2.1.7.
• n ∈ o(en )
Pk
i
k
•
i=0 ai n ak n
• Primzahlsatz: π(n) sind.
n
ln n ,
wobei π(n) die Anzahl der Primzahlen angibt, die kleiner oder gleich n
2.2 Eingabelänge
Konvention: Alle aufgeführten Zahlen sind binär und die Rechenoperationen erfolgen zur Basis 2.
Definition 2.2.1 (Länge). Die Länge einer natürlichen Zahl n ∈ N ist die Anzahl von Bits, die nötig
sind, um die Zahl darzustellen. Wir schreiben
ln x
length(n) = 1 + dlog2 ne = 1 +
ln 2
welches in O(ln n) Zeit berechnet werden kann.
Unsere Eingabegröße können wir durch diese Länge abschätzen. Allgemein gilt für eine Zahl m der
Länge k:
2k−1 ≤ m < 2k (Binärdarstellung).
Beispiel 2.2.2. Was ist die Länge der Summe bzw. des Produkts zweier Zahlen m1 und m2 , wobei diese
Zahlen positiv sind und höchstens Länge k haben?
Antwort:
Die Summe zweier Zahlen hat die Länge der größeren Zahl oder diese um eins erhöht. Wenn wir n Zahlen
der Länge höchstens k summieren, d.h. jede ist kleiner als 2k , dann ist deren Summe kleiner als n2k und
hat demnach höchstens die Länge length(n2k ) = 1 + log2 (n2k ) = k + 1 + log2 (n) = k + length(n).
Bei der Multiplikation nutzen wir die obige Abschätzung aus:
Seien m1 und m2 Zahlen der Länge k1 und k2 mit 2k1 −1 ≤ m1 < 2k1 . und 2k2 −1 ≤ m2 < 2k2 . So erhalten
wir 2k1 +k2 −2 ≤ m1 m2 < 2k1 +k2 . Daher gilt für die Länge des Produkts, dass sie entweder der Summe
der Längen der einzelnen Zahlen entspricht oder diese um eins unterschreitet. Längen verhalten sich also
entsprechend den Rechenregeln des Logarithmus.
k−1
Betrachten wir das
≤ mi < 2k , i = 1, . . . , n.
1 , · · · , mn von n Zahlen der Länge k mit 2
QnProdukt m
nk−n
nk
Dann gilt 2
≤ i=1 mi < 2 , demnach liegt die Länge des Produkts zwischen nk − (n − 1) und nk.
Im Allgemeinen interessiert uns nur eine Grenze für die Länge. Das Produkt von n Zahlen mit Länge
höchstens k ergibt höchstens eine Zahl der Länge nk.
Beispiel 2.2.3 (Länge von n!). Nach obiger Aussage können wir length(n!) ≤ n(length(n)) ∈ O(n ln n)
abschätzen. Aber für die Hälfte der Zahlen 1, 2, · · · , n gilt, dass deren Länge größer oder gleich log2 (n − 1)
ist. Damit folgt, dass length(n!) ≥ n2 (log2 n − 2) und somit für große n Konstanten C und C 0 existieren
mit C 0 n ln n ≤ length(n!) ≤ Cn ln n. Demnach gilt length(n!) ∈ Θ(n ln n).
Beispiel 2.2.4. Längen in O-Notation.
• n4 + 25n2 + 40 → O(ln n)
• ak nk + ak−1 nk−1 + · · · + a1 n + a0 → O(ln n)
• Das Produkt aller Primzahlen bis zur Länge kleiner gleich n Bits → O(2n )
• (n2 )! → O(n2 ln n)
• n-te Fibonacci-Zahl → O(n)
11
2 Komplexitätstheorie
1. Ziffer
0
1
0
0
1
1
0
1
2. Ziffer
0
0
1
0
1
0
1
1
Summe
0
1
1
1
0
0
0
1
Übertrag
0
0
0
1
0
1
1
1
neuer Übertrag
0
0
0
0
1
1
1
1
Tabelle 2.1: Addition zweier Bits
1
1
1
0
1
1
1
0
1
1
1
1
1
1
·
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
Abbildung 2.1: Multiplikation zweier Binärzahlen
2.3 Zeitaufwand
2.3.1 Einfache Rechenoperationen
Um eine Abschätzung zu erhalten, welche Zeit ein Algorithmus in Abhängigkeit von den Eingabedaten benötigt, betrachtet man die Operationen, die mit einzelnen Bits durchgeführt werden. Dabei besteht einen
Operation z.B. darin, zwei Bits zu addieren/subtrahieren. Dies kann man sich für die Addition anhand
der Tabelle 2.1 klarmachen: Außer den beiden zu addierenden Bits kann es noch eine Übertrag geben. Je
nachdem welcher der acht Fälle eintritt, wird ein Summenbit“ und ein neuer Übertrag gespeichert.
”
Wir gehen davon aus, dass diese Operation konstante Zeit erfordert, also in O(1) liegt. Weiterhin nehmen wir an, dass einfache Überträge von Ziffern, Speicherzeiten etc. nicht in den Zeitaufwand einfließen.
Addiert man nun zwei Zahlen m und n mit den binären Längen k und l, so erfordert dies O(max(k, l)) =
O(max(ln m, ln n)) Operationen (für jedes Bit eine).
Für die Subtraktion zweier Zahlen kann man eine analoge Tabelle für die Subtraktion zweier Bits
aufstellen. Auch hier sind O(max(k, l)) = O(max(ln m, ln n)) Operationen notwendig.
Um den Aufwand für eine Multiplikation abzuschätzen, kann man sich die schriftliche Multiplikation
in Erinnerung rufen. Bei der Multiplikation x · y multipliziert man jeweils eine Ziffer von y mit x und
schreibt die Produkte dann versetzt untereinander, um sie zu addieren. Wendet man diesen Prozess auf
Binärzahlen an, vereinfacht er sich noch, da das Produkt stets entweder x selbst oder 0 ergibt. Dies wurde
beispielhaft in Abbildung 2.1 dargestellt. Man beachte dazu, dass die Summanden in der Mitte gleich
sind.
Dadurch wird das Problem der Multiplikation auf die Addition zurückgeführt. Wir gehen davon aus,
dass immer zwei Zeilen zusammengezählt werden können, dann die Summe zur dritten usw. Die letzten
Stellen müssen dabei nur übertragen werden, wir nehmen an, dass dieser Vorgang keinen Zeitaufwand
erfordert.
In dem speziellen Beispiel in Abbildung 2.1 kann man nun die Zahl der Operationen bestimmen: Addiert
man zunächst die ersten beiden Zeilen, dann das Ergebnis zur dritten, so benötigt man für beide Vorgänge
5 Bitadditionen, insgesamt also 2 · 5 = 10 Operationen.
Allgemein muss man bei der Multiplikation einer k-stelligen Zahl n mit einer l-stelligen Zahl m maximal
(l − 1) Additionen ausführen, die jeweils k Operationen erfordern. Insgesamt kommt man so auf eine
Abschätzung O(kl) = O(ln m · ln n).
Bemerkung 2.3.1. Wir betrachten hier immer den schlimmsten Fall, natürlich wird es oft weniger als
(l − 1) Additionen geben. Auf die Abschätzung in der O-Notation hat dies aber keinen Einfluss.
Bemerkung 2.3.2. Für die Multiplikation zweier k-stelliger Zahlen benötigt man nach bisherigen Überlegungen O(k 2 ) Operationen. Es gibt Möglichkeiten, dies zu verkürzen auf O(k · ln k · ln ln k) Operationen.
Wir bleiben im folgenden aber bei der gröberen (und einfacheren) Abschätzung.
12
2 Komplexitätstheorie
2.3.2 Algorithmen
Mit den Abschätzungen von oben kann man nun die Komplexität von größeren Berechnungen analysieren.
Dabei sprechen wir von einem Algorithmus, wenn es sich um eine explizite Angabe der hintereinander
auszuführenden Rechenschritte handelt.
Bemerkung 2.3.3. Für die gleiche Rechnung kann es viele verschiedene Algorithmen geben, die einen
unterschiedlichen Zeitaufwand benötigen (vgl. Bemerkung 2.3.2). Das oben beschriebene Verfahren für
die Multiplikation zweier Zahlen ist nicht der schnellste Algorithmus, aber er ist relativ einfach nachvollziehbar.
Beispiel 2.3.4 (Division). Die Division einer k-stelligen Zahl n durch eine l-stellige Zahl m lässt sich
wie folgt durchführen, modelliert nach der schriftlichen Division aus der Schule:
1. Schritt: Vergleiche die ersten l Stellen (=: b) von n mit m.
Falls b ≥ m ⇒ 1“, b1 = b0 − n
”
Falls b < m ⇒ 0“, b1 = b0 mit einer weiteren Stelle von n
”
2. Schritt: Nehme b1 und führe die gleiche Prozedur durch.
Nach k − l + 1 Schritten hat man das Ergebnis als Binärzahl erhalten. Ein eventueller Rest entsteht bei
der letzten Subtraktion automatisch. Jede Subtraktion erfordert O(l) Operationen, so dass die Division
insgesamt einen Aufwand von O(l · (k − l + 1)) = O(lk + l2 ) erfordert.
Beispiel 2.3.5 (Umrechnung von Binär- in Dezimaldarstellung). Gegeben sei eine k-stellige Binärzahl n,
die in Dezimaldarstellung umgeformt werden soll. Wir verwenden den Algorithmus aus der Division und
teilen zunächst n durch 10 = (1010)2 . Der Rest liefert die Einerstelle (zunächst in Binärdarstellung). Nun
kann auf den Quotienten das gleiche Verfahren angewendet werden, man erhält somit die Zehnerstelle usw.
Am Ende kann man die erhaltenen Stellen selbstverständlich noch in die gebräuchlichen Ziffern umtauschen, also 0, 1, 10, 11, . . . , 1001 → 0, 1, 2, 3, . . . , 9. Dieser Prozess erfordert O(k) Divisionen (da die Länge
von n in Dezimaldarstellung O(k) ist), jede benötigt O(4k) Operationen. So kommt man insgesamt auf
einen Zeitaufwand von O(4k 2 ) = O(k 2 ) = O (ln n)2 für die Umrechnung von n in Dezimaldarstellung.
2.3.3 Der Euklidische Algorithmus
Beispiel 2.3.6. Seien a, b ∈ N : a > b > 0. Zu zeigen ist, dass der größte gemeinsame Teiler ggT(a, b) =: d
von a und b existiert und sich in der Zeit O(ln(a) ln(b)) berechnen lässt.
Beweis. Wir erinnern uns an den erweiterten Euklidischen Algorithmus. Erst teilen wir:
a = q0 b + r1 , 0 < r1 < b,
b = q1 r1 + r2 , 0 < r2 < r1 ,
..
..
.
.
rj−1 = qj rj + rj+1 , 0 < rj+1 < rj ,
..
..
.
.
rl−2 = ql−1 jrl−1 + rl , 0 < rl < rl−1 ,
rl−1 = ql rl + rl+1 , 0 < rl+1 < rl ,
rl = ql+1 rl+1 .
Somit ist d = rl+1 . Wir schreiben dies nun rückwärts auf:
d
= rl+1 = rl−1 − ql rl
= vl rl + ul−1 rl−1 , vl = −ql , ul−1 = 1
= vl−1 rl−1 + ul−2 rl−2 , vl−1 = −ul−1 − ql−1 vl , ul−2 = vl
..
.
= vj rj + uj−1 rj−1 , vj = −uj − qj vj+1 , uj−1 = vj+1
..
.
= v1 r1 + u0 b, v1 = −u1 − q1 v2 , u0 = v2
= vb + ua, v = −u0 − q0 v1 , u = v1 .
13
2 Komplexitätstheorie
Die Bit-Operationen mit Division a = q0 b + r1 wird höchstens length(b) · length(q0Q
) Zeit beanspruchen.
Die Gesamtzeit Q
beträgt demnach O((ln b)(ln q0 + ln q1 + · · · + ln ql+1 )) = O((ln b)(ln qj )). Per Induktion
zeigt man, dass qj ≤ a, somit die Grenze O(ln b ln a) gilt. Die Rückwärtsbetrachtung ergibt den gleichen
Zeitbedarf.
Tatsache 2.3.7. Sei m ∈ N, a ∈ Z mit |a| < m, ggT(a, m) = 1. Dann existiert x ∈ Z, so dass
ax ≡ 1 mod m,
und diese Gleichung kann in O(ln2 m) gelöst werden.
2.3.4 Polynomieller und exponentieller Zeitaufwand
Definition 2.3.8. Ein Algorithmus benötigt polynomielle Zeit, falls es eine Zahl d gibt, so dass die
Anzahl von benötigten Elementaroperationen bei der Anwendung des Algorithmus auf ganze Zahlen der
Länge kleiner oder gleich k sich durch O(k d ) abschätzen lässt.
Die bisher beschriebenen Grundrechenarten haben polynomielle Laufzeit, die Berechnung von n! mit
beliebiger Genauigkeit hingegen nicht.
Man muss hierbei stets beachten, in welcher Form die Eingabe geschieht. Es gibt Probleme, bei denen
je nach Art der Eingabe die Laufzeit polynomiell oder nicht sein kann.
m
Beispiel 2.3.9 (m-te Fermatsche Zahl). Will man herausfinden, ob die m-te Fermatsche Zahl n = 22 +1
eine Primzahl ist, so kann dies in polynomieller Zeit geschehen, falls n in Binärdarstellung der Eingabewert
ist. Wird hingegen
die Zahl m als Eingabe geliefert, so ist kein Algorithmus bekannt, der in einer Laufzeit
von O (log2 m)d zum Ziel führt.
Definition 2.3.10. Ein Algorithmus benötigt exponentielle Zeit, falls die Anzahl von benötigten Elementaroperationen bei der Anwendung des Algorithmus auf ganze Zahlen der Länge kleiner oder gleich
k sich durch O(eck ) abschätzen lässt, wobei c konstant ist.
Eine Verbindung der beiden Laufzeiten erhält man durch folgende Beschreibung:
γ
1−γ
Definition 2.3.11. Wir definieren: Ln (γ; c) := O(ec(ln n) (ln ln n) ). Ein Algorithmus wird L(γ)-Algorithmus
genannt, wenn er bei Anwendung auf die ganze Zahl n eine Laufzeit von Ln (γ; c) für eine Konstante c
hat.
c
c
Nun entspricht Ln (0; c) = O ((ln n) ) gerade der polynomiellen Laufzeit und Ln (1; c) = O ((n) ) der exponentiellen Laufzeit. Man spricht von subexponentieller Laufzeit, falls es sich um einen L(γ)-Algorithmus
mit γ < 1 handelt.
Bemerkung 2.3.12. Die Beschreibung durch L(γ) ist nicht immer geeignet, z.B. für Algorithmen, die
mehr als exponentielle Laufzeit erfordern.
Es gibt auch eine alternative Definition von subexponentieller Laufzeit, die nicht mit der oben gegebenen
übereinstimmt. Hierbei verwendet man die Bezeichnung, wenn die Laufzeit eines Algorithmus durch eine
Funktion ef (k) beschränkt ist, wobei k die Eingabelänge und f (k) = o(k) gilt.
2.4 P , N P und N P -Vollständigkeit
Einige fundamentalen Notationen aus der Informatik1 :
• Die Klasse P der Entscheidungsprobleme in polynomieller Zeit.
• Die Klasse N P der Entscheidungsprobleme in nichtdeterministisch polynomieller Zeit.
• Die Klasse N P -vollständig.
1 Genauere
Informationen in [Kob98] und [CLR01, Chapter 12: Theory of Complexity]
14
2 Komplexitätstheorie
2.4.1 Entscheidungs- und Suchprobleme, Instanzen
Definition 2.4.1. Ein Entscheidungsproblem ist ein Problem, dessen Lösung (Ausgabe) aus Ja“ oder
”
Nein“ besteht.
”
Definition 2.4.2. Ein Suchproblem ist ein Problem, dessen Lösung eine konkrete Zahl, Karte oder z.B.
Weg ist.
Der Ausdruck Eingabe“ muss für jede Instanz eines Problems konkretisiert werden. Die Eingabelänge
”
meint die Anzahl von Symbolen, welche benötigt werden, um die Eingabe aufzulisten.
Beispiel 2.4.3. Das Faktorisierungsproblem ist das Problem, zu einer gegebenen natürlichen Zahl N
nichttriviale Faktoren zu finden oder festzustellen, dass keine solchen existieren, mit anderen Worten: N
ist prim. Dieses Problem für eine konkrete Zahl für N nennen wir eine Instanz des Faktorisierungsproblem.
Wir schreiben:
EINGABE: N, k mit N, k ∈ N.
FRAGE: Hat N einen Faktor M mit 2 ≤ M ≤ k?
Es wird auch das Primfaktor-Suchproblem genannt, dessen Eingabelänge 1 + [log2 N ] ist.
Beispiel 2.4.4. Das Problem des Handlungsreisenden besteht darin, den kürzesten Weg von Stadt A
entlang aller Städte auf der Liste des Händlers und wieder zurück zu Stadt A zu finden. Eine Instanz
bestünde aus konkrete Angaben zu Städten und deren Distanzen zueinander. Formal:
EINGABE: m ∈ N, eine Karte aus Paaren (i, j) ∈ N × N, 1 ≤ i < j ≤ m, Distanzen dij von Stadt i zu
Stadt j und k ∈ N.
FRAGE: Existiert einer Route entlang der Städte der Länge kleiner gleich k?
Das Problem des Handlungsreisenden entspricht dem Finden einer minimalen Route.
Beispiel 2.4.5. Das 3-Farben-Problem erfordert die Bestimmung einer Färbung, ob zu einer gegebenen
Karte mittels dreier Farben, die Möglichkeit besteht diese so einzufärben, dass keine zwei benachbarten
Regionen dieselbe Farbe haben. Hier werden keine Karten, sondern Graphen betrachtet, da diese allgemeiner sind. Ein Graph ist eine Liste von Knoten und Kanten, welche gewisse Knoten verbinden. Damit
ist das 3-Farben-Problem für Graphen die Aufgabe, jedem Knoten eine von drei Farben so zu zuordnen,
dass kein anderer durch eine Kante verbundener Knoten dieselbe Farbe hat. Formal:
EINGABE: Ein Graph G=(V,E).
FRAGE: Existiert eine 3-Färbung für den Graphen?
Für viele Probleme gilt, dass ein Entscheidungsproblem äquivalent zu einem Suchproblem ist und somit
ein Algorithmus, der das erstere löst, ohne großen Aufwand in einen konvertiert werden kann, der letzteres
beherrscht.
Am Beispiel des Faktorisierungsverfahren verdeutlichen wir das Prinzip. Angenommen uns steht ein
Algorithmus zur Verfügung, der das Faktorisierungssuchproblem löst, dann können wir zu gegebenen N
nichttriviale Faktoren M und N/M finden, sodass N als Produkt von Primpotenzen geschrieben werden
kann. Wir stellen unmittelbar fest, ob im Intervall [2, k] ein Faktor von N ist. Die Antwort ist Ja“ genau
”
dann, wenn der kleinste Primteiler von N in diesem Intervall liegt.
Sei nun ein Algorithmus gegeben, der das Entscheidungsproblem löst (z.B. mittels Intervallhalbierung).
Sei n = 1 + dlog2 N e die kleinste Potenz von 2, die größer als N ist.
1. Schritt: k = 2n−1 − 1. Wenn der Algorithmus Nein“ liefert, ist N prim, denn für jeden Faktor M
”
muss M ≤ N/2 < 2n−1 sein. Fertig. Bei Ja“ gehe zum
”
2. Schritt: k = 2n−2 − 1. Bei Nein“ ist M von der Form M = 1 · 2n−2 + n−3 2n−3 + · · · + 0 mit i
”
das i-te Bit von M . Bei Ja“ hingegen ist M = 0 · 2n−2 + n−3 2n−3 + · · · + 0 = n−3 2n−3 + · · · + 0 . Um
”
n−3 zu bestimmen, gibt der Algorithmus bei Ja“ ein k = 2n−2 + 2n−3 − 1 vor, andernfalls k = 2n−3 − 1.
”
Wiederhole den Algorithmus n − 2-mal. Dies liefert die Binärdarstellung von M .
Beispiel 2.4.6 (Zerlegung der 91). Frage: Hat 91 einen Faktor zwischen 2 und 63?
Antwort: Ja.
Frage: Hat 91 einen Faktor zwischen 2 und 31?
Antwort: Ja.
Frage: Hat 91 einen Faktor zwischen 2 und 15?
Antwort: Ja.
Frage: Hat 91 einen Faktor zwischen 2 und 7?
15
2 Komplexitätstheorie
Antwort: Ja.
Frage: Hat 91 einen Faktor zwischen 2 und 3?
Antwort: Nein.
Frage: Hat 91 einen Faktor zwischen 2 und 5?
Antwort: Nein.
Frage: Hat 91 einen Faktor zwischen 2 und 6?
Antwort: Nein.
Damit ist 7 ein nichttrivialer Faktor von 91. Diese Methode liefert stets nur den kleinsten nichttrivialen
Faktor von N . Für die anderen Faktoren wiederhole das Verfahren für N/M .
2.4.2 Klassen P und N P
Definition 2.4.7. Ein Entscheidungsproblem P ist in der Klasse P der in polynomieller Zeit2 lösbaren
Probleme, wenn ein Polynom p(n) und ein Algorithmus existiert, sodass für eine Instanz von P, deren
Eingabelänge kleiner gleich n ist, der Algorithmus die Probleminstanz richtig in kleiner gleich p(n) Zeit
beantwortet.
Bemerkung 2.4.8. Diese Definition erfasst eine Klasse von Problemen, die praktisch gesehen relativ
effizient gelöst werden können. Dennoch ist von vornherein nicht klar, dass P die richtige Klasse für diesen
Zweck ist. Beispielsweise ist ein Algorithmus mit Laufzeit O(n100 ) (n Eingabelänge) für n < 10.000.000
langsamer als ein Algorithmus mit Laufzeit O(e0.0001n ), obwohl letzterer exponentielle Zeit benötigt.
Definition 2.4.9. Ein Entscheidungsproblem P liegt in der Klasse N P , wenn für jede gegebene Instanz
von P eine Person mit unbegrenzter Rechenkraft nicht nur die Frage beantworten kann, sondern auch im
Falle Ja“ zeigt, dass jemand dies in polynomieller Zeit verifizieren kann. Die Korrektheit von Ja“ nennt
”
”
man Zertifikat“ oder genauer ein polynomielles Zeitzertifikat“.
”
”
Hingegen sagt man, dass ein Entscheidungsproblem P in der Klasse co-N P liegt, wenn die obige Antwort
Nein“ lautet und ein polynomielles Zeitzertifikat“ für die Verifikation der Antwort Nein“ existiert.
”
”
”
Beispiel 2.4.10. Das Faktorisierungsverfahren ist in N P , aber ist es unbekannt, ob es in P liegt. Beispielsweise zerlegt obige Person N und findet einen Faktor M ∈ [2, k]. Antwortet diese Person mit Ja“
”
und nennt M , verifiziert man in polynomieller Zeit seine Antwort durch simples Dividieren von N durch
M . Außerdem ist das Faktorisierungsverfahren in co-N P , denn lautet die Antwort Nein“ erhalten wir
”
die vollständige Primfaktorzerlegung von N , woran man direkt erkennen kann, dass kein Faktor in [2, k]
liegt. Gleichzeitig muss uns ein polynomielles Zertifikat für jeden Primfaktor ausgehändigt werden, um
auch zu wissen, ob diese prim sind.
Ähnliche Überlegungen gelten auch für das Problem des Handlungsreisenden und des 3-Farben-Problem.
Allgemein gilt, wenn ein Problem in P ist, dann auch in N P . P ⊂ N P aber auch P ⊂ co−N P . Die Vermutung P 6= N P ist das wohl berühmteste Problem der modernen Informatik.
2.4.3 Reduzierung von Problemen
Definition 2.4.11. Seien P1 und P2 zwei Entscheidungsprobleme. Wir sagen, P1 reduziert sich zu P2
in polynomieller Zeit, wenn ein Algorithmus existiert, welcher in polynomieller Zeit als Funktion der
Eingabelänge von P1 für jede gegebene Instanz P1 von P1 eine Instanz P2 von P2 konstruiert, sodass die
Antwort von P1 dieselbe wie für P2 ist.
Beispiel 2.4.12. Sei P1 folgendes Problem:
EINGABE: Ein quadratisches Polynom p(X) mit ganzzahligen Koeffizienten
FRAGE: Hat p(X) zwei verschiedene, reelle Wurzeln?
und sei P2 :
EINGABE: N ∈ Z.
FRAGE: Ist N positiv?
Wir zeigen, dass P1 sich zu P2 reduziert. Sei p(X) = aX 2 +bX +c eine Instanz von P1 . Setze N = b2 −4ac,
welches in polynomieller Zeit berechnet werden kann. Dann hat P2 mit Eingabe N die Antwort Ja“ genau
”
dann, wenn P1 mit Eingabe aX 2 + bX + c die Antwort Ja“ hat.
”
2 meint
die Laufzeit eines Algorithmus auf dem Computer; denkbar wie auch die Zeit, die der Computer benötigt, um die
Antwort auszugeben.
16
2 Komplexitätstheorie
Die obige Definition kann uns auch in einem anderen Sinne hilfreich sein. Angenommen wir wüssten oder
glauben fest, dass ein Problem P1 sehr schwierig zu lösen ist, d.h. es existiert kein effizienter Algorithmus.
Wenn P1 sich zu P2 reduziert, dann folgt, dass auch für P2 kein effizienter Algorithmus existiert.
Dennoch ist diese Definition der Reduzierung zu restriktiv, daher wählen wir eine, welche mehrere
verschiedene Instanzen von P2 erlaubt, um eine Instanz von P1 zu lösen.
Definition 2.4.13. Sei P2 ein Entscheidungs- oder Suchproblem. Zur Beschreibung eines Algorithmus
für ein anderes Problem P1 sagen wir mit anrufen des P2 -Orakels“, dass der Algorithmus eine Instanz
”
von P2 erzeugt hat und setzen voraus, dass ein weiterer Algorithmus die zugehörige P2 -Ausgabe liefert.
Die beanspruchte Zeit dieses Algorithmus fließt nicht in die Laufzeit des Algorithmus für P1 ein. Mit
anderen Worten: der Algorithmus für P2 ist eine Blackbox“, die sofort Ergebnisse liefert.
”
Im Sinne der Programmiersprachen können wir uns ein Orakel als Methode vorstellen, die beliebig
aufrufbar ist, und dennoch nicht in die Gesamtlaufzeitkosten unseres Algorithmus einfließt.
Definition 2.4.14. Seien P1 und P2 zwei Probleme. P1 reduziert sich zu P2 in polynomieller Zeit, wenn
ein Algorithmus in polynomieller Zeit für P1 existiert, welcher höchstens polynomiell oft das P2 -Orakel
anruft.
Beispiel 2.4.15. Sei P1 das Faktorisierungs-Suchproblem und sei P2 das Faktorisierungs-Entscheidungsproblem.
Wir haben gesehen, dass P1 gelöst werden kann, indem man n-mal das P2 -Orakel anruft, mit n als Eingabelänge. Damit reduziert P1 sich zu P2 .
2.4.4 N P -vollständige Probleme
Definition 2.4.16. Ein Entscheidungsproblem P in N P heißt N P -vollständig, wenn jedes andere Problem Q in N P auf P in polynomieller Zeit reduziert werden kann.
Um es anders auszudrücken: wenn uns ein Algorithmus mit polynomieller Laufzeit für ein N P -vollständiges
Problem P zur Verfügung stünde, könnten wir jedes andere N P -Problem Q mittels eines polynomiellen
Algorithmus lösen.
Das würde bedeuten, dass P = N P (und daraus folgernd auch N P = co−N P ). In diesem Sinne sind die
N P -vollständigen Probleme die schwierigsten in der Klasse N P . Selbst wenn jemand einen effizienten
Algorithmus für fast alle Instanzen eines gewissen N P -vollständigen Problems findet, würde dies nicht
der Hypothese P 6= N P widersprechen. Bisher ist es außergewöhnlich schwierig bestimmte Instanzen für
ein N P -vollständiges Problem effizient zu lösen. Alle bisher bekannten Algorithmen verhalten sich hierzu
exponentiell zur Eingabelänge.
Für das Problem des Handlungsreisenden und das 3-Farben-Problem wurde gezeigt, dass sie N P -vollständig
sind. Außerdem kann ein Problem P auf ein N P -Problem reduziert werden, selbst wenn P wahrscheinlich
nicht in P liegt.
Beispiel 2.4.17 (Das exakte Problem des Handlungsreisenden). EINGABE: Eine Menge von Städten
und deren Distanzen untereinander und k ∈ Z,
FRAGE: Hat eine kürzeste Route entlang aller Städte exakt die Länge k?
Um ein Zertifikat für ein Ja“ Antwort zu erhalten, genügt es nicht, eine einzige Route dieser Länge
”
anzugeben, sondern wir müssten (mittels z.B. einer Person mit unbegrenzter Rechenkraft) zeigen, dass
keine kürzere Route existiert. Es ist unwahrscheinlich, dass dies je eintritt. Die Existenz dieses Zertifikat
würde N P = co−N P bedeuten (unbekannt ist die Richtigkeit der Umkehrung, also P = N P ). Trotzdem
ist es möglich, wie bei dem Faktorisierungsverfahren das exakte auf das (allgemeine) Problem des Handlungsreisenden zu reduzieren, schwieriger hingegen ist die Umkehrung (in diesem Falle sagen wir zwei
Probleme sind polynomielle zeitlich äquivalent oder anders N P -äquivalent).
Wir schließen mit einer Definition, welche dadurch motiviert ist, dass Probleme nicht notwendigerweise
in N P liegen müssen.
Definition 2.4.18. Ein Entscheidungs- oder Suchproblem P heißt N P -schwer, wenn jedes N P -Problem
auf P reduziert werden kann.
Da Reduzierung transitiv ist, reicht es um zu zeigen, dass ein Problem N P -schwer ist, ein einziges
N P -vollständiges Problem anzugeben, das dieses reduziert.
17
Chapter
3
Öffentliche Schlüssel
Florian Bruse & Juha Ojansivu, 23.07.2007
Based on: [Kob94, chapter IV]
3.1 Definitions
3.1.1 Cryptosystems
A cryptosystem is a mechanism which allows two parties to exchange messages such that no third party is
able to obtain the content of their communication. Mathematically speaking, a cryptosystem is a family
of functions
fa : Pa → Ca
and the inverse function
fa−1 : Ca → Pa
where Pa is the set of all possible plain text messages, Ca is the set of all possible ciphertext messages
and for each a ∈ A there is a pair (Ka,e , Ka,d ) of parameters. A message c ∈ C is enciphered by choice of
a suitable parameter a ∈ A and an application of the function fa . The ciphertext can be deciphered by
applying the correct inverse function fa−1 . This requires of course knowledge of the correct parameter a.
In light of this, a is called the key. We distinguish Ka,e , the encryption key and Ka,d , the decryption key.
Example 3.1.1 (Caesar cipher). According to Sueton [Sue120], this encryption method traces back to
Julius Caesar. Here, the plaintext alphabet as well as the ciphertext alphabet is the numerical equivalents
of the letters A to Z. To encipher the text, letters are shifted by a fixed number, and to decipher, they
are shifted in reverse direction by the same number. So we have A to be {(1, −1) , (2, −2) , . . . , (25, −25)}
and Pa = Ca = Z/26Z for all a ∈ A. The function fa is defined by
fa (x) = x + Ka,e mod 26
and the inverse function is
fa−1 (x) = x + Ka,d mod 26 = x − Ka,e mod 26.
Example 3.1.2 (AES). AES is a classical cryptosystem based on Rijndael. It can handle a block size
of 128 KB and key sizes of 128, 192 or 256 byte, although Rijndael allows for more flexibility. AES is
a fast encryption algorithm and there has not yet been a successful attack against the algorithm itself
(implementations may be weaker than the underlying algorithm, of course). There have been some
attempts and it is possible that AES will be broken, but at the moment the US Government considers it
safe enough for protecting classified data.
For simplicity, we shall assume that we wish to encipher one single block of 128 KB with a key of 128
byte. Both the message and the key have the form of a 4 × 4-matrix (with indices from 0 to 3, not from
1 to 4) of byte values, i.e. integer values between 0 and 255. Instead of a bitstring, one might wish to
write a byte as a hexadecimal number in between 0 and F F . Four bytes form a word. A column of
a 4 × n-matrix is interpreted as a word. The algorithm extensively uses a 4 × 4-matrix that is called
the State. We shall now describe how we can add and multiply elements (bytes) and rows (words) of a
matrix.
18
3 Öffentliche Schlüssel
A byte consists of eight bits b0 . . . b7 and is interpreted as the polynomial Σ7i=0 bi ·xi , which is regarded as
an element in F28 . Adding two polynomials is done by adding the corresponding coefficients modulo 2, i.e.
1 + 1 = 0. At the bit level, this is an exclusive or operation, which is very efficient on most machines. The
multiplication is defined via the usual multiplication of polynomials modulo m(x) = x8 + x4 + x3 + x + 1
(with the addition as described above). m(x) is irreducible, therefore for any nonzero byte b(x), the
Euclidean algorithm can be used to find an a(x) (and also a c(x)) such that a(x) · b(x) + m(x) · c(x) = 1.
This a(x) is the inverse of b(x). So the set of all bytes with this addition and multiplication is indeed a
field with neutral elements 0 and 1.
A word a = a0 . . . a3 (where ai are bytes) is interpreted as the polynomial a(x) = Σ3i=0 ai · xi with
coefficients in F28 . Here, the addition is, technically speaking, again an exclusive or operation. The
multiplication is performed modulo the polynomial x4 + 1. As this polynomial is not irreducible, not all
words are multiplicatively invertible.
Before the encryption progress, we need to extend the key to a 4 × 44-matrix that we call w. The
i-th column of w is referred to as wi . The first four columns are filled with the key. For i going
from 4 to 43 (remember we start counting at 0), we do the following: If i is a multiple of 4, we set
wi = wi−1 . Then we rotate the word to the left, i.e. for wi−1 (x) = a0 + a1 · x + a2 · x2 + a3 · x3 we set
wi (x) = a1 + a2 · x + a3 · x2 + a0 · x3 . This is the inverse operation to multiplication by x. Then replace
every byte by its inverse in F28 (only 0 is left unchanged) and apply a certain affine transformation. Both
can be done in one step if a substitution table (with 256 entries), the so-called S-Box, has been prepared.
Then add the word wi−4 to wi . If i is not a multiple of 4, simply set wi = wi−1 + wi−4 .
Now that the matrix w is prepared, we may start the encryption progress. The input is copied into the
State matrix. Then for i from 0 to 8, repeat the following four steps:
(i) AddRoundKey: For j from 0 to 3, add w4·i+j to the j-th column of the State.
(ii) SubBytes: For every element of the State matrix, perform an inversion and afterwards an affine
transformation. This can be realised by creating a substitution table. This is again the S-Box used
for extending the key.
(iii) ShiftRows: Row number 0 (the first row) is left unchanged. The other rows are shifted to the left:
The r-th row is shifted r times. The shift moves the first element to the last position.
(iv) MixColumns: We define a(x) = 02 + 01 · x + 01 · x2 + 03 · x3 , a polynomial with coefficients in F28
written in hexadecimal. Every column (treated as a word) of the State is multiplied with a. This
can be implemented by a matrix multiplication.
Those were the first 9 rounds. The tenth round is different:
First, AddRoundKey is applied again, using w36 , . . . , w39 . Then, SubBytes and ShiftRows is applied. MixColumns is left out in the last round. In the end, AddRoundKey is once more applied, using
w40 , . . . , w43 .
Now we are done and the content of the State matrix is the encrypted message. We can now send it
over any channel to the receiver.
To decrypt the message, we need the same key. Again, we expand the key to a 4x44-matrix. Then
we can reverse the steps each after another. For MixColumns, we compute the inverse of the matrix we
used (alternatively, we compute the inverse of a). For SubBytes, we construct an inverse S-Box. Note
that both only needs to be done once and can then be used for any key. The other two steps can also be
easily reversed.
Looking at AES, we notice that it is indeed very fast. Most operations can be efficiently implemented
using single machine code instructions or lookup tables. The most complex step is the multiplication.
But even this takes only a few machine code instructions. In conclusion, AES is way more efficient than
RSA or Discrete Logarithm Cryptosystems that require excessive exponentiation in finite fields.
3.1.2 Public Key Cryptosystems
It is easy to see, that an encryption such as the Caesar encryption (cf. 3.1.1) is easy to break. Once the
enciphering key Ka,e is known to the attacker, decrypting the ciphertext is no problem. The key itself
can be obtained by simply trying all 26 possibilities for a. Even if one changes to k-letter-block units of
plaintext and ciphertext or uses several shifting alphabets (those cryptosystems are referred to as affine
cryptosystems), once the attacker knows the key, he will have the plaintext in no time.
19
3 Öffentliche Schlüssel
Additionally, the organizational effort necessary to exchange keys between potential communication
parties explodes with the number of participants in a communication network. In general, the number of
necessary keys to guarantee, that every two parties in a system of n participants get their own, private
Pn
keys are
key, corresponds to the number of edges in a complete graph with n nodes, so i=1 i = n·(n+1)
2
necessary. According to data of the ISC [ISC07], there were approximately 433.2 million hosts connected
to the Internet in January 2007. For all hosts to be able to communicate safely, there would be need for
93 billion keys - and all these keys would have to be transferred by a trustworthy courier - an impossible
task.
The number of necessary keys can be reduced by introducing a key center, which holds keys for secure
communication to each participant. If now participant A wants to communicate with participant B, he
sends his message, encrypted with his key to the key center which then decrypts A’s message, encrypts
again with B’s encryption key and sends it to B. This would reduce the number of necessary keys to
the number of participants involved, however the key center would be able to see all messages sent in
plaintext, which violates our assumption that, save A and B, nobody should be able to read the encrypted
message.
The fundamental weakness in the system above is the close connection between enciphering and deciphering. Once the attacker knows the enciphering key, he can obtain the deciphering key with little or
no effort (maybe he needs an application of the Euclidean algorithm, but this is a relatively easy computation). Such a cryptosystem is called a symmetric or classical cryptosystem. Conversely, we define an
asymmetric cryptosystem:
Definition 3.1.3 (Public-key cryptosystems). An asymmetric cryptosystem is a cryptosytem in which
knowledge of the enciphering key Ka,e does not yield the deciphering key Ka,d without lengthy computations. Such a system is also called a public-key cryptosystem.
In a public-key cryptosystem, the key Ka,e for enciphering a message can be made public. Actually, it’s
in the interest of the owner (we will call him Bob) of an enciphering key to propagate it, since anybody
knowing his enciphering key can send him a message which only Bob is able to decipher, as long as he
keeps his deciphering key Ka,d secret. As in the example above, there is still need for a key for every
participant of a communication network, but there is no need to keep the enciphering keys secret, and no
need to exchange deciphering keys. In fact, two persons are able to communicate with each other without
having had any prior contact, they just look up their respective public keys and send their messages.
It is conceivable that a third person C acts as a man in the middle: When Bob sends Alice his
enciphering key KBob,e , C intercepts this message and replaces the key by his own enciphering key KC,e .
Alice will believe this key to be KBob,e , and encrypt all future messages to Bob using KC,e . Now C is
going to intercept all messages intended for Bob, decrypt them using his private key KC,d , encrypt them
using KBob,e and forward them to Bob. Alice and Bob are not going to notice something is wrong, and C
will be able to read any message Alice sends to Bob. At a first glance, it seems that Alice and Bob need
a secure channel (e.g. a personal meeting) to exchange their public keys. This problem can be solved by
introducing trust centers. A trust center holds a list of persons and their public keys and guarantees its
correctness. One might have to send the trust center one’s key along with a copy of one’s passport to get
listed. Of course, every participant of the communication needs to trust the trust center, but the center
(as opposed to the key center mentioned above) will not be able to read messages, as long as it does not
act as a man in the middle itself. There are also decentralized approaches that solve this problem, but
are less performant, e.g. PGP and its web of trust.
3.1.3 One-way functions
The alert reader may have noticed that the notion of a lengthy computation is not a precise mathematical
definition. Generally, a lengthy computation is a computation needing more resources than available
to a supposed attacker, preferably by a large factor. Imagine e.g. that breaking the cipher requires
computational effort comparable to solve some NP-hard problem, whereas enciphering can be reduced to
a problem only in P. We then could reasonably assume that from the viewpoint of practical computation,
Ka,d can not be obtained from Ka,e . We also say that fa is a trapdoor- or one-way-function. We shall
refer to Big-O estimates in the future to show that a function is one-way.
Example 3.1.4 (Authentication). Public-key cryptosystems can also be used for authentication. Assume
that Alice wants to send a message to Bob, but additionally she wants Bob to be sure that it was really
she who sent that message (Remember, anyone could have looked up Bob’s enciphering key and sent it).
Thus, Alice types her message and appends some chunk of information at the end (e.g. the time she is
20
3 Öffentliche Schlüssel
going to send the message), which she enciphers using her own, private decryption key KAlice,d . Then
she encrypts the message with Bob’s public key KBob,e . When Bob gets the message, he deciphers it, but
some text at the end stays unreadable. If he now applies Alice’s public enciphering function equipped with
KAlice,e he gets the information Alice attached, since the encryption function is by definition the inverse
of the decryption function. Since, save Alice, nobody knows her decryption key KAlice,d , the message can
not have been forged by somebody else. In a classical cryptosystem, the enciphering (and deciphering)
key is only known by trusted parties, i.e. Alice and Bob. Therefore, in a classical cryptosystem, the
signature is an integral (while implicit) part of enciphering a message, and one does not need an explicit
separate signature.
3.1.4 Comparison to classical cryptosystems
We have seen that public-key cryptosystems have certain advantages compared to classical cryptosystems.
Not only is it possible for any two parties to communicate safely without having established any relations
before, the authenticity of a message’s sender can also be verified. However, public key cryptosystems have
a striking disadvantage: They are slow, compared to classical systems. Most public key cryptosystems
rely on certain number theoretical problems that are hard to solve, but generating such problems is also
a nontrivial task. To give an example, the security of the RSA cryptosystem (cf. 3.2) bases on the fact
that no fast algorithm to factor big integers is known by today. However, RSA needs the user to perform
modular exponentiation on very large numbers, which requires some effort, although clearly less than the
integer factoring involved in breaking the encryption. Conversely, affine cryptosystems require only some
matrix operations for comparably small matrices, so they are faster by a large factor. In the light of these
problems, public key cryptosystems are often used only to safely share a key for a classical cryptosystem,
which then can be used to communicate by relatively secure means. To give an example, the HTTPS
[Res00] protocol uses the Diffie-Hellman (cf. 3.3.2) key exchange protocol to exchange a so called session
key for a symmetric protocol like AES (cf. 3.1.2) which then is used for secure communication.
To make things worse, until now it is not known whether one-way functions actually exist. A lot of
public-key cryptosystems rely on certain unsolved number-theoretical problems, but one day somebody
could publish a solution to one of these problems and make the corresponding public-key cryptosystems
worthless. It’s even possible that some intelligence agency has found a way e.g. to factor integers in a
reasonable time, but keeps their knowledge secret to exploit their advantage. However, the problems on
which modern public key cryptosystems are founded are at least empirically hard to solve. Given the
fact that a lot of people work on these problems because of their interest outside of cryptography, it is
unlikely that information about progress on these problems can be kept secret for long.
3.1.5 Cryptoanalysis of public-key cryptosystems
There are numerous notions of security of cryptosystems, most of them involving being invulnerable
against a certain kind of attack. To begin, there is the so called ciphertext-only-attack. For example,
most classical cryptosystems are vulnerable against the method of frequency analysis, based on the fact
that the most frequently used letter in the ciphertext should correspond to the most frequently used
letter in the plaintext language, for example, the letter e is one of the most frequently used ones in the
English language. Of course this method can be generalized to most classical cryptosystems, although
the occurrences of blocks become less distinct than e.g. in the Caesar cipher. Another method is the
so called exhaustive search, i.e. trying to decipher with every possible key. This attack type generally
performs well for cryptosystems with a small key space. Today’s public key cryptosystems provide a key
space big enough to make such an attack senseless, the key lengths will have to be adapted from time to
time though.
Public key systems have a weakness that does not directly originate from the cryptosystem itself,
but from its use. If for instance the cryptosystem is used for communication between a client and a
stockbroker, and both only use the words buy, sell and hold, any attacker will know after a few orders
which command corresponds to which ciphertext, just by observing the actions of the stockbroker. Since
the same plaintext yields the same ciphertext in every instance of the encryption, the eavesdropper will
know which command was issued without actually having broken the cryptosystem. This type of attack of
course is only applicable in situations where very few plain texts are possible. It is therefore essential that
the message is somehow obfuscated or the plaintext space is expanded. This can be done by introducing
some random component, e.g. using a symmetric cryptosystem before using the public key system and
making the key of this system public for any communication session. Since the message has also been
encrypted via public key cryptography, the attacker cannot use his knowledge of the symmetric key, but
21
3 Öffentliche Schlüssel
he also can not tell for sure which ciphertext corresponds to which plaintext, since the same plaintext can
yield different ciphertext. Since the symmetric key has been made public, the recipient of the message
can reverse the procedure after decrypting the message using his private key. Such an obfuscation is
called randomization.
Additionally, since the public key - by its very definition - has been made public, anyone can send a
message to the owner of the corresponding private key, pretending to be somebody else. In a symmetric
cryptosystem, as long as one assumes that nobody broke the cipher or got knowledge of the encryption/decryption key, one could trust a message to come from a very limited circle of persons. In public
key cryptosystems, every message has to be signed as described in example 3.1.4, to prevent such forgery.
3.2 The RSA cryptosystem
The RSA1 cryptosystem relies on the difficulty of an ancient problem in number theory: Finding the
complete factorization of a large integer. However, we will need an auxiliary definition first:
Definition 3.2.1 (Euler’s totient function). Euler’s totient function assigns to each positive integer n
the number of positive integers smaller than or equal to n, that are coprime to n, that is to say the
number of integers i ∈ {1, 2, . . . , n} such that gcd (i, n) = 1. This function is also called the phi function,
since it’s often denoted by the Greek letter ϕ.
Note that ϕ (n) is the number of units in the residue class Ring Z/nZ. Naturally, ϕ (n) = n − 1 for n
prime, that is to say Z/nZ is a field. Additionally, we have:
Lemma 3.2.2. The phi function is comprime multiplicative, i.e. for n, m coprime, ϕ (n) · ϕ (m) =
ϕ (n · m).
Proof. As seen above, ϕ (n) is the number of units in Z/nZ. Since n and m are coprime, we have that
lcm (n, m) = n · m, which equals the size of the residue class ring generated by n times m. Since both
n and m divide the size of the ring, their multiples are not units in this ring, as are multiples of the
non-invertible elements in Z/nZ and Z/mZ, so we have that ϕ (n) · ϕ (m) ≥ ϕ (n · m). Conversely, if p
is not invertible in Z/(n · m)Z, we have that p is a divisor of n · m. Since gcd (n, m) = 1 by assumption,
either p|n or p|m. So ϕ (n) · ϕ (m) ≤ ϕ (n · m).
3.2.1 Key generation
Let us see how a user of the RSA cryptosystem, we will call her Alice, generates her public and private
keys. First of all, Alice randomly generates two sufficiently large primes p and q. We will see later on what
is meant by sufficiently large. Alice now sets n = p·q (the number n is called the RSA modulus), and using
the multiplicativity of ϕ, it’s easy to compute ϕ (n) = n + 1 − p − q. Thereafter, she generates an integer
e between 1 and ϕ (n) which is coprime to ϕ (n). In the next step, Alice computes the multiplicative
inverse of e modulo ϕ (n), i.e. an integer d smaller or equal to ϕ (n) such that e · d = 1 mod ϕ (n). Such
a number exists, since e is coprime to ϕ (n) The pair (n, e) forms the encryption key and is made public,
whereas the pair (n, d) is used for decryption and is kept secret by Alice. If we look at more than one
key, we write na , ea , da instead of n, e, d.
3.2.2 Encryption and Decryption
To make things easier, at first we will only explain the RSA cryptosystem with integers and will explore
enciphering of real text later. Let us assume that Bob wants to send Alice a message without anyone
else eavesdropping. Here, the message is just some random positive integer m. for the sake of simplicity,
we will assume that m < n. Bob looks up Alice’s public key (n, e) in a public key directory. Then he
computes c = me mod n, for example by using fast exponentiation (c.f. [Buc04, Chapter 2.12]). The result
is again a number strictly between 1 and n. This number c can be transferred via any public channel to
d
Alice, since only she knows how to decrypt the message. To do this, she calculates cd = (me ) mod n.
The number d was chosen as the multiplicative inverse of e modulo ϕ (n), i.e. d · e = 1 mod ϕ (n).
Therefore, d · e = 1 mod (p − 1), which is equivalent to d · e − 1 = k · (p − 1) for a k ∈ Z. By Fermat’s
k
little theorem, mp−1 = 1 mod p and also mp−1 = 1 mod p. The left side of this congruence can be
1
Named after the initials of the inventors Ronald Rivest, Adi Shamir and Leonard Adleman
22
3 Öffentliche Schlüssel
transformed via mk·(p−1) to md·e−1 . Therefore, md·e = m mod p. The same holds for q instead of p. This
implies via the Chinese Remainder Theorem me·d = m mod n.
To transfer text, we choose an alphabet Σ and compute k = blogΣ nc. As in 3.1.1, we fix numerical
Pk
equivalents of our alphabet’s letters in (1 . . . Σ − 1). A k-letter word can now be identified with i=1 k i ·αi ,
where αi is the number corresponding to the ith letter of our word. We apply the encryption procedure
as described above, and get a number which we interpret as an l-letter word, where l = k + 1 since
generally, k < logΣ n holds 2 . Note that not all l-letter words can arise by this procedure. In this way, a
text can be split up into k-letter words, encrypted and sent. The recipient divides the received message
into chunks of length l (since n and Σ are publicly known, this is no problem), decrypts the blocks via
the procedure described above and passes from numbers back to k-letter blocks respectively text stream.
3.2.3 Security of RSA
We assume that an attacker (to stick with tradition, we will call her Eve) wants to break RSA. Somehow
she has managed to factor Alice’s RSA modulus n into p and q. By the very definition of a public key
cryptosystem, she has knowledge of the public encryption key e. In the same way Alice calculated d, Eve
solves the problem d · e = 1 mod (p − 1) (q − 1). Thus, if Eve knows a way to factor a large integer, she
has approximately the same amount of work to do as Alice to eavesdrop on Alice. The ability to factor
large compound integers implies the ability to efficiently break RSA.
Conversely, being able to break RSA effectively does not imply the ability to factor large integers.
Still, we show that the ability to calculate the private key of an RSA cryptosystem implies the ability
to factor the RSA modulus (at least, with a high probability). Suppose we somehow managed to find d
corresponding to a pair e, n of an RSA cryptosystem. Then be·d = b mod n for all b prime to n. Then
m = ed − 1 is a multiple of lcm (p − 1, q − 1). If we take b = −1, we see that m is even. We can check
whether m/2 has the same property of yielding bm/2 = 1 mod n for all b prime to n. (If we have limited
resources, which is the case, we may check for this with a very high probability.) We repeat this procedure
until we we arrive at some r = m/2i for some i ∈ N that does not have this property. Now either r is a
multiple of exactly one of p − 1, q − 1, or both, since 2r was a multiple of lcm (p − 1, q − 1).
If r is a multiple of neither p − 1 nor q − 1, then br = 1 modulo p and q in 25%3 of the time, and hence
modulo n. Additionally, br yields −1 modulo both p and q exactly 25% of the time, and the remaining
50%, br is 1 modulo p and −1 modulo q or vice versa. If r is a multiple of exactly one of the numbers
p − 1 and q − 1 (say, p − 1), we know br = 1 mod p and br = −1 mod q. If we now randomly try bs, we
will soon hit a case were br − 1 is divisible by p since with every try, we have a 50% chance of getting
such a result. But then gcd (br − 1, n) = p. Obtaining q is then a matter of a simple division.
How do we efficiently test whether passing from m to m/2 keeps the property that bm/2 = 1 mod n
for all b? If this property does not hold, we have that it does not hold for at least 50% of the numbers,
so with repeatedly trying a few of these bs, with a high probability we make a legal step by halving m.
Note that this algorithm does not guarantee the success of the factoring in the first place, but one should
get it with a high probability by repeating the process.
3.2.4 Computational Complexity
Both encryption and decryption of a number require one exponentiation
modulo the RSA modulus. By
using the repeated square method, both of these can be done in O k 3 bit operations (a detailed proof
for this can be found in [Buc04, Chapter 2.12]), where k is the bigger number of bits in the RSA modulus
and the exponent. Today, modulus bit lengths of 1500 up to 2000 bits are regarded as safe [BSI06,
page 31]. Especially on slow computers, e.g. smart cards, doing these calculations will take some time.
Additionally, two primes p and q have to be found. The complexity of this task will be explored in
greater detail in chapter 4. Generally, the frequency of primes around m is about 1/ log m, so one should
expect to perform approximately O (log m) primality tests to find the next prime after a number m. Then
again, factoring the RSA modulus into primes is a task not to be completed in polynomial time (again
see chapter 4). Thus, even if there is no direct proof for the fact that factoring a number into its prime
factors is ”difficult”, for the time being RSA can be considered a public key cryptosystem, since by now
no efficient factoring algorithm is publicly known.
2 If
3A
k = logΣ n, we get l = k, of course.
proof for this can be found in [Kob98], chapter II
23
3 Öffentliche Schlüssel
3.2.5 Choice of Parameters
We will now glance at a few common pitfalls in the choice of the RSA modulus and the encryption and
decryption keys. Assume for example that one of p and q, say p, is such that p − 1 has only prime factors
that are bounded by some B. If somebody knows B, he could just form the product
Y
k=
re
r∈P,r e ≤B
where P is the set of all primes. If all factors (or their powers, respectively) of p − 1 are below B, then the
attacker will have a good chance to generate a multiple of p − 1. By Fermat’s little theorem, we get that
k
ak = 1 mod p for all integers a that
are not divisible by p. But if a − 1 is not a multiple of n, the RSA
k
modulus, then g = gcd a − 1, n is a proper divisor of n, which of course implies, that g = q. Certainly
in most cases the attacker will not know B, but why not just try (this method is called (p − 1)-method)
before giving in and starting a brute force attack? Thus, p − 1 and q − 1 should have at least one large
prime factor.
It is also a good idea to ensure that p − 1 and q − 1 have a small greatest common divider. And
one should never forget that as soon as somebody invents a factorization method that works quickly
for integers with certain properties, existing keys must be checked for those properties and, if necessary,
replaced.
Furthermore, choosing p and q to be very close isn’t a good idea, too. If this would be the case, then
2
2
2
2
− p−q
has a very small second summand s = p−q
. Hence t = p+q
is quite close to
n = p+q
2
2
2
2
2
4pq
p−q 2
n. Additionally, t − √
n = p+q
−
=
=
s.
Note
that
both
t
and
s
are
squares
of
integers. Thus,
2
4
2
testing integers i > n, one should soon find an integer j such that i2 − n = j 2 . Calculating p = i + j
and q = i − j gives the factors of n.
It should be clear that by taking very low numbers for d and e, one sacrifices security. Having small
encryption or decryption keys speeds up the message enciphering, but there are so-called low-exponent
attacks. So generally, p and q should be large primes, with one having a few digits more than the other,
to avoid the attacks described above. However, one should be aware of the fact that the probability e.g.
for a prime to be vulnerable to a (p − 1)-attack is quite low, so it should be a matter of desired security
versus available computing power and time to perform additional tests on certain properties or not.
3.3 The Discrete Logarithm Problem
3.3.1 Definitions
RSA is based on the difficulty of factoring large numbers. There are several public key cryptosystems
that are based on the difficulty of solving the discrete logarithm problem.
Definition 3.3.1 (Discrete Logarithm). Let G be a cyclic finite group and b, y ∈ G, where b is a generator
of G. The discrete logarithm of y to the base b is any number x ∈ G such that bx = y.
Note that such a number need not exist if b is not a generator. If, however, b is a generator of G, the
discrete logarithm to the base b does exist for all elements of G.
Computing bx can be done in time polynomial in log x by using the repeated squaring method4 . At the
same time, computing x from b and y is considered very difficult; there is no publicly known algorithm
that solves the discrete logarithm problem in time comparable to exponentiation. We are therefore able
to derive public key cryptosystems from this situation.
3.3.2 Diffie-Hellman
The Diffie-Hellman key exchange system is a cryptosystem designed to (as the name suggests) secretly
exchange keys for a classical cryptosystem. It was the first system explicitly designed for this purpose. The
key to be exchanged is a large positive integer (which is no problem, as we know that every information
that can be handled by a computer can be injectively transformed into a positive integer). This key will
be in between 1 and q. Furthermore, we need a generator g of F∗q , where Fq is a finite field of order q.
The numbers q and g are public knowledge.
4 This
method is described in [Kob98, Chapter I.3]
24
3 Öffentliche Schlüssel
Two users A and B want to agree upon a key, i.e. a random element in Fq . User A chooses a random
a ∈ Fq and makes public g a . In the same way, B makes public g b for a random b. As their shared secret
a
b
key, they use g a·b , which is the same as (g a ) and g b . Computing this key from g a and g b without
knowledge of a or b is conjectured (but not proved) to be no easier than computing the discrete logarithm
of g a or g b , which is considered practically insolvable for large numbers. So A and B have agreed in public
upon a secret key without anyone else knowing it.
Note that this system does not include an authentication process. So when using this, A will have
to make sure she exchanges keys with B and not with some third party C, and vice versa. So for the
Diffie-Hellman system, a separate authentication is necessary.
3.3.3 Massey-Omura
For the Massey-Omura cryptosystem, we have again a finite field Fq that is publicly known. Each user
chooses a d ∈ Fq , computes its multiplicative inverse d and keeps those two numbers secret.
Assume that A wants to send P to B. She computes P eA and sends this to B. From this, B can compute
d
eA ·eB
P
and sends it back. A then computes P eB = P eA ·eB ·dA = (P eA ·eB ) A and again sends this to B. B
is then able to compute P and read the message.
Once again, this cryptosystem does not include any signature scheme, so A has to ensure the persons
she receives answers from is in fact B. Furthermore, B must not be able to compute eA after having
received several P and P eA from A. Otherwise, he would be able to read any future (or past, if he has
stored them) messages from or to A not intended for him.
3.3.4 ElGamal
The ElGamal cryptosystem works with a publicly known finite field Fq and generator g ∈ Fq . Every user
chooses as his private key an a ∈ Fq and computes his public key g a .
To send a message P to a user A, we select a random k ∈ Fq and send g k as well as P · g a·k to A (but
a
not k). A can recover the message P by computing g a·k = g k and dividing P · g a·k by this.
3.3.5 Solving the Discrete Logarithm Problem
There is a fast algorithm for finding the discrete logarithm of a y ∈ Fq to the base b if all prime factors
of q − 1 are small and b is a generator of Fq . We shall have a look at it, to get an impression that we
need to be cautious when choosing a q for the cryptosystems presented.
From 3.2.5, we know how to factor q − 1 fast, as it only has small prime factors. Then, for every prime
factor p of q − 1 and j = 0, . . . , q − 1, we compute the roots of unity rp,j = bj·(q−1)/p . This we only need
to do once for the cryptosystems we looked at, as q and b are fixed, as the rp,j are independent of y.
Let q − 1 = Πp pα(p) , where the p are the prime factors of q − 1. We are looking for an x such that
x
b = y. If we know x mod pα(p) for every prime factor p of q − 1, we can easily compute x by the
Chinese Remainder Theorem. So let p be fixed and define α = α (p). There are xi < p such that
x = x0 + x1 p + · · · + xα−1 pα−1 mod pα .
As a first step, we compute x0 . We have a closer look at y (q−1)/p = bx·(q−1)/p = bx0 ·(q−1)/p = rp,x0 .
From y (q−1)/p = rp,x0 , it is easy to find x0 .
(q−1)/p2
To get x1 , we set y1 = y/bx0 = bx−x0 . Then we examine y1
(q−1)/p
2
= b(x−x0)·(q−1)/p = bx1 ·(q−1)/p =
2
rp,x1 . From y1
= rp,x1 , we find x1 .
By complete induction, we find all the xi for this p. We do this for every prime factor of q − 1. Then
we compute x with the Chinese Remainder Theorem and are done.
There are also other algorithms for solving the discrete logarithm problem. One should keep in mind
that another algorithm could be invented that makes cryptosystems like Diffie-Hellman useless, although
this seems very unlikely.
25
Kapitel
4
Primalität und Faktorisierung
Lora Boiadjieva & Stefan Wiedenmann, 23.07.2007
Basierend auf: [Kob94, chapter V]
In der Praxis werden Primzahltests insbesondere bei Verschlüsselungsverfahren (zur Verschlüsselung
von elektronischen Nachrichten) in der Kryptographie eingesetzt.
Viele Verschlüsselungsverfahren, beispielsweise das RSA-Verfahren basieren darauf, dass man sehr
schnell große Primzahlen finden und multiplizieren kann. Man kann Primzahlen in einer Größenordnung
von 500 Stellen in binärer Darstellung innerhalb von Sekunden problemlos finden und multiplizieren.
Es gibt jedoch keine effiziente Verfahren, um diese Zahlen wieder zu faktorisieren.
Algorithmen wie RSA benötigen große Primzahlen, die beliebig gewählt sind. Statt der Verwendung
einer bekannten Primzahl rät der Algorithmus (mit ein Paar Tricks) eine beliebige“ Zahl und stellt mit
”
Hilfe eines Primzahltests möglichst schnell fest, ob diese tatsächlich prim ist.
Zwei praktische Anwendungen von Primzahltests sind:
1) Ausgehend von einer großen ungeraden Zahl n0 , will man testen ob eine der Zahlen n0 , n0 + 2, .. eine
Primzahl ist. Die erste solche Zahl ist ≥ n0 (große Primzahlen finden)
2) Man möchte wissen ob eine Zahl einer bestimmten Art, Primzahl ist.
4.1 Primzahltests
1) Deterministische Primzahltests stellen mit Sicherheit fest ob eine Zahl n ∈ N prim oder zusammengesetzt ist. Das Bestehen eines solchen Tests ist also eine notwendige und hinreichende Bedingung
dafür, dass n eine Primzahl ist.
2) Probabilistische Primzahltests(Monte-Carlo-Algorithmen) ermitteln mit einer hohen Wahrscheinlichkeit ob eine Zahl prim ist oder nicht. Die Bedingungen in so einem Primzahltest sind also notwendig
(aber nicht unbedingt hinreichend) für die Primalität einer Zahl n. Wenn eine Zahl n die Bedingungen
in so einem Test nicht besteht, dann ist n zusammengesetzt.
Da die deterministischen Primzahltests bei sehr großen Zahlen zu lange dauern, wird meist ein probabilistischer Algorithmus verwendet. Solche Algorithmen können mit einer nach oben beschränkten Wahrscheinlichkeit ein falsches Ergebnis liefern, dafür sind sie im Vergleich zu deterministischen Algorithmen
häufig effizienter.
Besteht eine Zahl n den Primzahltest, dann ist diese Zahl wahrscheinlich eine Primzahl. Besteht diese
Zahl viele Primzahltests, dann ist diese Zahl mit einer sehr großen Wahrscheinlichkeit eine Primzahl.
Besteht n einen beliebigen Primzahltest nicht, dann ist n mit Sicherheit zusammengesetzt. Es bleibt
in diesem Fall die Frage nach der Faktorisierung von n in Primfaktoren.
Im Allgemein ist es viel aufwendiger eine große Zahl zu faktorisieren wenn man weist, dass diese eine
zusammengesetzte Zahl ist, als es ist eine Primzahl zu finden die von der gleichen Größenordnung ist.
26
4 Primalität und Faktorisierung
4.1.1 Pseudoprimzahlen
Die Menge der Restklassen mod m wird mit (Z/Zm ) = Zm bezeichnet. Sie hat m Elemente, weil genau
die Reste {0, 1, 2, .., m − 1} bei der Division durch m auftreten.
Die Menge der primen Restklassen mod m wird mit (Z/Zm )∗ = Z∗m bezeichnet und besteht aus der
primen Restklassen modulo m, d.h. (Z/Zm )∗ = {b|b ∈ {0, 1, ..m − 1}, ggT (b, m, =) 1}. Ihre Ordnung
bezeichnet man mit ϕ(m).
ϕ(m) gibt also die Anzahl der Zahlen b in {0, 1, 2, ..., m − 1} mit ggT (b, m, =) 1.
ϕ : N 7→ N, m 7→ ϕ(m) heißt Eulersche Funktion
Für eine Primzahl p gilt also ϕ(p) = p − 1
Für m, n mit ggT (m, n) = 1 gilt ϕ(mn) = ϕ(m)ϕ(n) (ϕ ist multiplikativ)
Für k ∈ N gilt ϕ(pk ) = pk − pk−1 , denn es gibt genau pk−1 Vielfache von p, die kleiner oder gleich pk
sind, nämlich {1p, 2p, .., pk−1 p}
Eine Pseudoprimzahl ist eine natürliche Zahl, die keine Primzahl ist, aber durch einen Primzahltest als
solche identifiziert wird.
Wenn eine zusammengesetzte Zahl fälschlicherweise für eine Primzahl gehalten wird, kann die Verschlüsselung mit einem Verschlüsselungsverfahren wie RSA unsicher werden. Es müssen solche Primzahltests
verwendet werden, die mit einer sehr hohen Wahrscheinlichkeit Primzahlen von zusammengesetzten Zahlen unterscheiden können (diese Wahrscheinlichkeit ist bei dem kleinen Satz von Fermat als Basis nicht
hoch genug).
Für eine große, ungerade Zahl n möchte man feststellen ob n eine Primzahl ist:
√
Am Einfachsten kann man das feststellen, indem man für alle ungerade ganze Zahlen 1 < m < n
überprüft ob m|n. Damit deckt man alle mögliche Primfaktoren von n ab. Diesen Primzahltest nennt
man Brute-Force-Methode. Dies ist aber eine sehr aufwendige Methode.
Die meisten effizienten Primzahltests sind ähnlich zu dem folgenden Test:
Nach dem kleinen Satz vom Fermat, wenn n eine Primzahl ist, dann gilt für jedes b mit ggT (b, n) = 1
die Kongruenz
bn−1 ≡ 1 mod n.
(4.1.1)
Im Allgemeinen gilt für jedes b mit ggT (b, n) = 1 die Kongruenz bϕ(n) ≡ 1 mod n, wobei ϕ(n) die
Eulersche Funktion ist.(Satz von Euler-Fermat)
Definition 4.1.1. Seien n eine ungerade zusammengesetzte ganze Zahl und b eine ganze Zahl für die
ggT (n, b) = 1 und 4.1.1 gilt, dann wird n eine fermatsche Pseudoprimzahl zur Basis b (oder Pseudoprimzahl zur Basis b) genannt.
D.h. eine Pseudoprimzahl n verhält sich wie eine Primzahl zu einem Teil der Basen, indem sie den
kleinen Satz von Fermat erfüllt, aber keine Primzahl ist.
Beispiel 4.1.2. n = 91 ist eine Pseudoprimzahl zur Basis b = 3, denn 390 ≡ 1 mod 91 aber 290 ≡ 64 6=
1 mod 91, d.h. 91 ist keine Primzahl.
Für ein g aus Z∗n ist die Ordnung von g (geschrieben order(g)) die kleinste natürliche Zahl e für die
gilt: g e ≡ 1 mod n
Proposition 4.1.3. Für n eine zusammengesetzte ungerade ganze Zahl gilt:
(i) n ist eine Pseudoprimzahl zur Basis b mit ggT (b, n) = 1 genau dann wenn order(b)| n − 1 (in Zn∗ )
(ii) n sei eine Pseudoprimzahl zur Basen b1 und b2 , wobei ggT (b1 , n) = ggT (b2 , n) = 1, dann ist n
−1
eine Pseudoprimzahl zur Basis b1 b2 und auch zur Basis b1 b−1
ist die Inverse von b2 mod n)
2 .(b
(iii) Wenn n den Test 4.1.1 für eine b aus Zn∗ nicht erfüllt, dann erfüllt n den Test 4.1.1 für mindestens
eine Hälfte der Basen b aus Zn∗ nicht.
Beweis. (i) ⇐=: gilt order(b) := k| n − 1 =⇒ ∃ z ∈ Z: kz = n − 1 =⇒ bn−1 ≡ (bk )z = (1)z ≡ 1 modn
=⇒: gilt bn−1 ≡ 1 modn, ggT (b, n) = 1, 0 ≤ order(b) := k < n − 1, =⇒ bk ≡ bn−1 ≡ 1 modn und sei
n − 1 = kz + r, 0 ≤ r < k (r ist der Rest von der Division von n − 1 durch k, z ∈ Z)
Dann gilt bkz+r ≡ bn−1 ≡ 1 modn ⇐⇒ br ≡ bn−1 b−kz ≡ bn−1 (bk )−z ≡ 1 ∗ 1 ≡ 1 modn
aber k ist die kleinste natürliche Zahl für die gilt bk ≡ 1 modn =⇒ r = 0 (da r < k)
(ii) bn−1
≡ bn−1
≡ 1 modn, ggT (b1 , n) = ggT (b2 , n) = 1
1
2
(n−1) (n−1)
n−1
Dann gilt: 1) (b1 b2 )n−1 ≡ b1
b2
≡ 1 modn ; 2) (b1 b−1
≡ (bn−1
)−1 ≡ 1 modn
2 )
2
27
4 Primalität und Faktorisierung
(iii) Sei {b1 , b2 , . . . , bs } die Menge aller Basen für die n eine Pseudoprimzahl ist. Das sind alle ganze
Zahlen 0 < bi < n (0, n nicht in Zn∗ ) für die 4.1.1 gilt.
Sei b eine Basis, die nicht zur obigen Menge gehört, d.h. für die n keine Pseudoprimzahl ist. Wäre n
eine Pseudoprimzahl zu einer der Basen bbi , dann wäre n eine Pseudoprimzahl zur Basis b = (bbi )b−1
i
mod n wegen Teil (ii). Dies ist ein Widerspruch. Daher erfüllt n die Kongruenz 4.1.1 für die s verschiedene
Reste {bb1 , bb2 , .., bbs } nicht. Folglich gibt es mindestens so viele Basen in Zn∗ für die n die Kongruenz
4.1.1 nicht erfüllt, wie die Basen für die n eine Pseudoprimzahl ist.
Die Wahrscheinlichkeit dafür, dass die Zahl n den Test 4.1.1 für eine beliebige Basis b nicht erfüllt ist
daher 50% (außer wenn n den Test 4.1.1 für alle mögliche b mit ggT (b, n) = 1 erfüllt).
Wenn man feststellen möchte ob eine Zahl prim ist, kann man also folgenderweise vorgehen: Man wählt
eine beliebige Zahl b ∈ N, 0 < b < n und berechnet mit dem Euklidischen Algorithmus den ggT (b, n) := d.
Ist d > 1, dann ist n mit Sicherheit zusammengesetzt und d ist ein nichttrivialer Teiler von n. Ist
d = 1, dann berechnet man b(n−1) (z.B. mit schneller Exponentiation). Gilt b(n−1) 6= 1 modn, dann ist
n zusammengesetzt, sonst ist n vielleicht prim und man kann eine neue Basis wählen.
Besteht n den Test 4.1.1 für eine beliebige Basis b nicht, dann ist n zusammengesetzt. Besteht n den
Test 4.1.1 für k unterschiedliche Basen b, dann ist die Wahrscheinlichkeit, dass n zusammengesetzt ist
höchstens 21k (es sei denn, n besteht den Test zu allen Basen b ∈ Zn∗ )
Für große k kann man mit einer großen Wahrscheinlichkeit sicher sein, dass n eine Primzahl ist (es sein
denn, n ist eine Pseudoprimzahl zu allen Basen)
Gibt es zusammengesetzte Zahlen n für die 4.1.1 für jede Basis b gilt ?
In diesem Fall würde ein probabilistisches Verfahren nicht erkennen, dass n eine zusammengesetzte
Zahl ist, es sei denn, wir finden glücklicherweise eine b für die gilt ggT (b, n) > 1.
Es gibt solche Zahlen und sie werden Carmichael-Zahlen genannt (nach dem Mathematiker Robert
Daniel Carmichael).
Definition 4.1.4. Eine Carmichael-Zahl ist eine zusammengesetzte natürliche Zahl n für die gilt: ∀b mit
ggT (b, n) = 1 =⇒ bn−1 ≡ 1 modn (d.h. 4.1.1 ist für alle b ∈ Z∗p erfüllt)
Proposition 4.1.5. Sei n ungerade, zusammengesetzte, ganze Zahl
(i) Wenn es eine Quadratzahl > 1 gibt, die n teilt, dann ist n keine Carmichael-Zahl.
(ii) Ist n quadratfrei (d.h. es gibt keine Primzahl, deren Quadrat n teilt), dann ist n eine Carmichael
zahl, genau dann wenn p − 1|n − 1 für jede Primzahl p, die n teilt. (Korselts Kriterium)
Beweis. (i) Sei p eine Primzahl > 1, p2 |n und sei g ein Erzeuger modp2 (In Zpα existiert immer ein
Erzeuger), d.h. es gilt order(g) = |Zp∗2 | = p2 − p (denn es gibt genau p Vielfache von p , die ≤ p2 sind →
(1p, 2p, .., pp)).
Q
Sei n0 = q−P rimz,q|n,q6=p q =⇒ ggT (n0 , p)) = 1, dann gibt es nach dem Chinesischer Restsatz ein
0
b ∈ Z, so dass: 1) b ≡ g modp2 und 2) b ≡ 1 modn
Dann ist b auch ein Erzeuger modp2 (wegen 1)), und da b weder durch n0 noch durch p2 teilbar, gilt:
ggT (b, n) = 1
n ist also keine Pseudoprimzahl zur Basis b ( 4.1.1 nicht erfüllt):
Wäre n eine Pseudoprimzahl zur Basis b =⇒ bn−1 ≡ 1 mod n =⇒ bn−1 ≡ 1 mod p2 da p2 |n. Außerdem
gilt order(b) = p(p − 1) in Zp∗2 =⇒ p(p − 1)|n − 1 (Proposition 1.3 (i))
Aber n − 1 ≡ −1 modp (da p|n) =⇒ n − 1 ist nicht durch p teilbar, also auch nicht durch p(p − 1).
Dies ist ein Widerspruch. Es existiert also eine Basis b für die n keine Primzahl ist, und damit ist n keine
Carmichael Zahl.
(ii) ⇐=: gilt p − 1|n − 1 ∀ p Primzahl, p|n
Sei b eine Basis, ggT (b, n) = 1, dann gilt für jede Primzahl p, die n teilt (∃k ∈ Z : (p − 1)k = n):
bn−1 = (bp−1 )k ≡ 1Qmodp ⇐⇒ p|bn−1 − 1
Dann gilt: n = ( p−prim,p|n p)|bn−1 − 1, und damit ist 4.1.1 erfüllt, d.h. n ist eine Carmichael-Zahl.
=⇒: Für n Carmichael-Zahl. Sei p-Primzahl, für die n−1 durch p−1 nicht teilbar. Sei g ein Erzeuger von
Zp∗ . Dann analog zu a): ∃b ∈ Z: 3) b ≡ g modp und 4) b ≡ 1 mod(n/p) dann gilt ggT (b, n = p(n/p)) =
1 =⇒ bn−1 ≡ g n−1 modp (wegen 3)). Aber g n−1 ist nicht kongruent 1 modp, denn n − 1 ist durch
order(g) = p − 1 nicht teilbar. Dann ist auch bn−1 nicht kongruent 1 modp und 4.1.1 ist somit nicht
erfüllt. Dies ist ein Widerspruch. Dann folgt: p − 1|n − 1 ∀p Primzahl, p|n.
Beispiel 4.1.6. n = 561 = 3 · 11 · 17(quadratfrei) ist eine Carmichael Zahl, da 3 − 1|560, 11 − 1|560 und
17 − 1|560
28
4 Primalität und Faktorisierung
Proposition 4.1.7. Eine Carmichael-Zahl ist das Produkt aus mindestens 3 verschiedene Primzahlen
Beweis. Wir wissen aus 4.1.5 (ii), dass eine Carmichael-Zahl n das Produkt aus verschiedenen Primzahlen
sein muss. Dann bleibt nur noch zu zeigen, dass n nicht als Produkt aus zwei verschiedenen Primzahlen
darstellbar ist. (d.h, dass es keine Primzahlen p, q gibt, p 6= q sodass n = pq)
Wäre n = p ∗ q; p < q; p, q Primzahlen und wäre n eine Carmichael-Zahl. Dann gelte n − 1 ≡ 0
mod(q − 1) nach Proposition 4.1.5 (ii).
Aber n − 1 = p((q − 1) + 1) − 1 ≡ p(q − 1) + p − 1 ≡ p − 1 mod (q − 1) (⇐⇒ q − 1|p(q − 1 + 1) − 1 − p + 1
und p − 1 ist nicht ≡ 0 mod (q − 1), da 0 < p − 1 < q − 1 (nach Voraussetzung). Daraus folgt die
Behauptung.
Eulersche Pseudoprimzahlen
Sei p eine Primzahl, p > 2, dann heißt ( ap ) Legendre-Symbol


falls p|n (⇐⇒ n ≡ 0 mod p)
0
n
= 1
falls n quadratischer Rest modulo p (∃b ganze Zahl, n ≡ b2 mod p)

p

−1 falls n kein quadratischer Rest modulo p
2
(für p = 2: ( np )= 0 falls n gerade und ( np )= (−1)(n −1)/8 sonst)
αr
1
Sei a eine natürliche Zahl, n eine ungerade Zahl, n > 1, n = pα
1 · . . . · pr die Primzahlzerlegung von n
a
a αr
a
a α1
Dann heißt ( n ) = ( p1 ) · .. · ( pr ) Jacobi-Symbol, wobei ( pi ), i = 1, .., r das Legendre- Symbol
bezeichnet.
Es gibt ein Paar Regeln die sowohl für das Legendre- als auch für das Jacobi-Symbol gelten und mit
denen sich den Jacobi Symbol effizient bestimmen lässt.
Einige von diesen Regeln sind:
n
n
)( mn0 )=( mm
(i) ( m
0)
0
0
n
(ii) ( m
)( nm )=( nn
m )
0
n
(iii) gilt n ≡ n0 modm =⇒ ( m
)=( nm )
(m−1)/2
(iv) ( −1
m ) = (−1)
n
(v) ( m
)= 0 falls ggT (m, n) > 1
n
(vi) ( m
) = (−1)(m−1)(n−1)/4 ( m
n ) für m, n ungerade ganze Zahlen, m, n > 1 (das ist das quadratische
Reziprozitätsgesetz für das Jacobi-Symbol)
1
)=1
(vii) ( m
(viii) ( n1 ) = 1 ∀n
Euler-Kriterium
Ist p > 2 eine Primzahl, dann gilt:
a
( ) ≡ a(p−1)/2 mod p
p
(4.1.2)
D.h. es gilt: a(p−1)/2 ≡ 1 mod p wenn a ein quadratischer Rest modp, a(p−1)/2 ≡ −1 mod p sonst, und
a(p−1)/2 ≡ 0 modp, wenn p|a).
Behauptung: Ist n eine zusammengesetzte ungerade Zahl, dann ist der Test 4.1.2 für mindestens 50%
der Basen b mit ggT (b, n) = 1 nicht erfüllt.
(bei Fermat-Zahlen gilt diese Behauptung für den Test 4.1.1, nur wenn eine b existiert für die 4.1.1
nicht erfüllt ist. Hier existiert eine solche b nach dem Chinesischen Restsatz immer)
Beweis. wir zeigen das in drei Schritten:
a) Wenn 4.1.2 für b1 erfüllt ist aber für b2 nicht, dann ist 4.1.2 für b1 b2 nicht erfüllt, d.h. der Anzahl
der b für die 4.1.2 nicht erfüllt ist ist ≥ der Anzahl der b für die 4.1.2 erfüllt ist:
(n−1)/2
(n−1)/2
(n−1)/2
( bn1 ) ≡ b1
mod n, ( bn2 ) 6= b2
mod n. Wäre ( b1nb2 ) ≡ b1 b2
mod n ⇐⇒( bn1 )( bn2 ) ≡ (b1 )(n−1)/2 (b2 )(n−1)/2
(n−1)/2
(n−1)/2
mod n |(multipliziert man beide Seiten mit der multiplikativen Inversen von b1
) ⇐⇒( bn2 ) ≡ b2
modn Widerspruch.
29
4 Primalität und Faktorisierung
b) Gibt es eine Quadratzahl>1, die n teilt, dann existiert ein b mit ggT (b, n) = 1, sodass 4.1.2 nicht
erfüllt.
1+pk
1+pk 2 1+pk
Sei b = 1 + np , p2 |n (⇐⇒ ∃k ∈ Z: p2 k = n ⇐⇒ pk = np ) =⇒: 1)( nb ) = ( 1+pk
p2 )( k ) = ( p ) ( k ) =
( (1+pk)p mod p )2 ( (1+pk)k mod n ) = ( p1 )2 ( k1 ) = 1 · 1 = 1
Pj
Pj
j
j
n k
k
2) bj ≡ 1modn ⇐⇒ p|j, denn bj = (1 + np )j =(binom.F −la)
k=0 ( k ) · 1 · ( p ) =
k=0 ( k )(pk) =
j
j
j
j
2
j
2
j
( 0 ) + ( 1 )pk + ( 2 )(pk) + .. + ( j )(pk) = 1 + jpk + j(j − 1)(pk) + . . . + (pk) ≡ 1 modn(n = p2 k)
⇐⇒ jpk + j(j − 1)(pk)2 + . . . + (pk)j ≡ 1 modn ⇐⇒ jpk ≡ 0 modp2 k ⇐⇒ jpk − p2 kz = 0 ⇐⇒ j =
p2 kz
(n−1)/2
6= 1 = ( nb ), d.h. 4.1.2 nicht
pk = pz ⇐⇒ p|j, aber für j = (n − 1)/2 gilt nicht p|(n − 1)/2 =⇒ b
erfüllt.
c) Ist n quadratfrei (Produkt aus verschiedenen Primzahlen) und gilt ( pb ) = −1 (d.h. b ist quadratischer
Nichtrest modp) und b ≡ 1mod np , dann ist 4.1.2 nicht erfüllt und so ein b existiert immer.
b
) =
( pb ) = −1 und b ≡ 1 mod(n/p), n quadratfrei, dann gilt für p Primzahl, p|n: 1) ( nb ) = ( pb )( n/p
b
) = −1 (da b ≡ 12 mod(n/p)) und 2) b(n−1)/2 ≡ 1 mod (n/p) 6= −1 (b ≡ 1 mod(n/p)) ⇐⇒
−1( n/p
b(n−1)/2 = 1 +
(n−1)
2
n
p z ⇐⇒ p
(n−1)/2
· b(n−1)/2 = p + nz ⇐⇒ p(b
(n−1)
2
− 1) ≡ 0 mod n ⇐⇒ n|p(b
(n−1)
2
− 1) ⇐⇒
n|b
− 1 ⇐⇒ b
≡ 1 6= −1 mod n
Existenz von b: Sei a1 quadratischer Nichtrest modp und a2 = 1. Da n, n/p teilerfremd nach Voraussetzung, dann existiert nach dem Chinesischen Restsatz immer eine Zahl b sodass b ≡ a1 6= m2 mod p(=⇒
( pb ) ≡ −1 mod p) und b ≡ a2 = 1 mod (n/p), d.h. ein b, das 4.1.2 nicht erfüllt existiert immer!
Definition 4.1.8. Sei n eine ungerade, zusammengesetzte Zahl, b eine ganze Zahl, die zu n teilerfremd
sei und sei weiterhin 4.1.2 erfüllt. Dann ist n eine Eulersche Pseudoprimzahl zur Basis b .
Wegen der obigen Behauptung gibt es also kein Analogon von Eulerschen Pseudoprimzahlen zu den
Carmichael Zahlen: Für jede zusammengesetzte Zahl n ist 4.1.2 für mindestens 12 der möglichen Basen
nicht erfüllt.
Proposition 4.1.9. Eine eulersche Pseudoprimzahl n zur Basis b ist auch eine fermatsche Pseudoprimzahl zur Basis b.
Beweis. Gilt 4.1.2 für eine Zahl n, dann gilt auch 4.1.1, da bn−1 ≡n ( nb )2 ≡n (±1)2 = 1 für alle b mit
ggT (b, n) = 1
Die Umkehrung gilt jedoch nicht:
Beispiel 4.1.10. wir haben im Beispiel 1.2 gesehen, dass 91 eine fermatsche Pseudoprimzahl zur Basis 3
90
ist. Aber 3 2 = 345 ≡ 27 mod 91. Für b = 3 und n = 91 ist 4.1.2 also nicht erfüllt. (kennt man die Ordnung
∗
von 3 in Z91 dann kann man sofort 345 mod 91 berechnen: 345 mod 91 = (36 )7 33 ≡ 1 · 33 ≡ 27 mod 91)
Der Solovay-Strassen Primzahltest
Für eine ungerade ganze Zahl n > 0 möchte man bestimmen ob n prim ist oder zusammengesetzt. Man
geht folgenderweise vor:
1) wähle k verschiedene ganze Zahlen b, 0 < b < n
2) für jede Zahl b berechne: 1. b(n−1)/2 und 2. ( nb )
3) sind 1. und 2. nicht äquivalent, dann ist n zusammengesetzt
4) gilt 4.1.2 für alle k beliebig gewählte b, dann ist die Wahrscheinlichkeit, dass n trotzdem zusammengesetzt ≤ 21k
Der Test ist also ein probabilistischer Primzahltest, der entweder das Ergebnis n ist (mit Sicherheit)
”
zusammengesetzt“ liefert, oder das Ergebnis n ist (eventuell) prim“
”
Der Test ist effizient, da der ggT, Potenzen und Jacobi-Symbole effizient berechnet werden können.
Starke Pseudoprimzahlen
Wir werden noch einen Primzahltest diskutieren, der auf die Definition der Starken Pseudoprimzahl
basiert, der Miller-Rabin Test.
Sei n eine fermatsche Pseudoprimzahl zur Basis b ∈ Z∗n , d.h. es gilt b(n−1) ≡ 1 mod n. Die Definition
der starken Pseudoprimzahl hat die folgende Motivation: Betrachten wir nacheinander die Wurzeln von
b(n−1) mod n, d.h. ((n − 1)/2), ((n − 1)/4), ..((n − 1)/2s ) wobei t = (n − 1)/2s ungerade (d.h. solange die
30
4 Primalität und Faktorisierung
Wurzel betrachten bis das nicht mehr möglich ist, bis (n − 1)/2s ungerade für eine s), dann wird der erste
Rest der ungleich 1 ist, -1 sein müssen, da ±1 die einzige Wurzel von 1 modulo einer Primzahl sind:
(Sei a ∈ Z∗p und a2 ≡ 1 mod p, d.h. p|(a − 1)(a + 1) ⇐⇒ p|(a + 1) oder p|(a − 1) (da p Primzahl)
⇐⇒ a ≡p −1 oder a ≡p 1)
In der Praxis geht man in die andere Richtung: Sei n − 1 = 2s t mit t ungerade ⇐⇒= (n − 1)/2s ).
2
Berechnet man bt mod n: Ist bt 6= 1 mod n =⇒ berechne b2t mod n, b2 t mod n, .. u.s.w. solange bis
r
2 (n−1)
i−s
r
r
≡ b(2 )(n−1) mod n). Dann muss 2r−1 t ≡
b2 t ≡ 1 mod n für eine 0 ≤ r < s(b2 t mod n ≡ b 2s
−1 mod n gelten, sonst wissen wir, dass n zusammengesetzt ist (d.h. Zn ist kein Körper)
Definition 4.1.11. Sei n eine ungerade, zusammengesetzte Zahl, n − 1 = 2s t, t ungerade. Sei b ∈ Z∗n
r
und es gelte entweder bt ≡ 1 mod n oder ∃r : 0 ≤ r < s : b2 t ≡ −1 mod n (3), dann ist n eine starke
Pseudoprimzahl zur Basis b.
Proposition 4.1.12. Gilt n ≡ 3 mod 4, dann ist n eine starke Pseudoprimzahl zur Basis b genau dann,
wenn n eine eulersche Pseudoprimzahl zur Basis b ist.
Es folgen zwei wichtige Propositionen:
Proposition 4.1.13. Eine starke Pseudoprimzahl zur Basis b ist auch eine Eulersche Pseudoprimzahl
zur Basis b (Die Umkehrung gilt i.A nicht)
Proposition 4.1.14. Eine ungerade zusammengesetzte ganze Zahl n ist eine starke Pseudoprimzahl zur
Basis b für höchstens 25% der b, 0 < b < n.
Der Miller-Rabin-Primzahltest
Wir wollen für eine ungerade, positive ganze Zahl n bestimmen ob sie prim oder zusammengesetzt ist.
Sei n − 1 = 2s t, t ungerade und wähle eine beliebige b, 0 < b < n. Wir berechnen zuerst bt mod n, dann
(bt )2 mod n u.s.w. solange bis das Ergebnis −1 ist. Wird das Ergebnis −1, dann hat n den Primzahltest
r+1
r
bestanden, gilt jedoch für eine r: b2
≡n 1 aber b2 6= −1 mod n, dann ist n zusammengesetzt. Besteht
n den Test für k beliebige b, dann ist die Wahrscheinlichkeit, dass n zusammengesetzt ist höchstens 1/4k
(wegen Prop.1.13, wenn n zusammengesetzt, dann erfüllen höchstens 1/4 der Basen b, 0 < b < n die
Definition einer starken Pseudoprimzahl beim ersten Wahl von b).
Das ist eine bessere Wahrscheinlichkeit als bei den Solovay-Strassen-Test, wo die entsprechende Wahrscheinlichkeit 1/2k war (weil es zusammengesetzte Zahlen existieren, die zu 1/2 der Basen 0 < b < n
eulersche Pseudoprimzahlen sind)
Man braucht in der Praxis nicht zu viele Basen b zu wählen um fast sicher zu sein, dass n eine Primzahl
ist, falls n eine starke Pseudoprimzahl zu allen Basen b ist. Zum Beispiel ist es bekannt, dass es nur eine
zusammengesetzte Zahl < 2.5 · 1010 gibt, das ist n = 3215031751, dass eine starke Pseudoprimzahl zu alle
4 Basen 2,3,5,7 ist.
Es wurde bewiesen: Unter der Annahme, dass die Riemannsche Vermutung gültig ist, und n ∈ Z
zusammengesetzte ungerade Zahl, besteht n den Test (3) für mindestens eine Basis < 2 log2 n nicht. D.h.
unter der Annahme, dass die Riemannsche Vermutung gültig ist, ist der Miller-Rabin Test deterministisch
mit polynomieller Zeit (in log n).
4.2 Faktorisierungsmethoden
Im letzten Abschnitt haben wir gesehen, wie man feststellen kann, ob eine Zahl n zusammengesetzt oder
prim ist. In diesem untersuchen wir, welche Möglichkeiten es gibt die Faktoren jener zusammengesetzten
Zahl zu finden, denn dies ist das Prinzip von Verschlüsselungsmethoden wie RSA. Eine Person, die die
Faktorzerlegung des öffentlichen Schlüssels kennt, kann eine Nachricht in Sekunden entschlüsseln, ein
Angreifer, dem dieses Wissen fehlt, kann sie, nach heutigem Wissen, jedoch nicht in einhundert Jahren
entziffern.
4.2.1 Probedivision
√
Eine einfache Methode ist, einfach die Zahl durch alle Primzahlen bis zu n, probe zu dividieren, also
durch 2, 3, 5, 7, 11, . . ., wie beim Sieb des Erastosthenes. Wenn wir irgendwann auf eine ganze Zahl kommen,
√ dann haben wir einen Faktor. Um mittels Probedivision einen Faktor zu finden braucht es mehr als
O ( n) Operationen, dies sind in der Praxis zu viele Rechenoperationen, um das Ergebnis in vernünftiger
Zeit zu erhalten.
31
4 Primalität und Faktorisierung
4.2.2 Die Rho-Methode
In diesem Abschnitt gehen wir auf die Rho- oder Monte-Carlo-Methode ein. Es ist die einfachste Methode,
die wesentlich schneller ist als die Methode der Probedivision. Zuerst wählen wir eine Funktion, die schnell
zu berechnen ist und möglischst gleichmäßig, aber auch möglischst sprunghaft, von Z/nZ auf sich selbst
abbildet, z. B. ein Polynom wie f (x) = x2 +1. Als nächstes wählen wir eine Zahl x0 , oder, noch besser, wir
nehmen eine Zufallszahl x0 , dann ist auch der Name Monte-Carlo-Methode gerechtfertigt. Nun definieren
wir
xi+1 = f (xi )
i ∈ N0
und damit eine Folge von (hoffentlich) gleichmäßig verteilten Zahlen zwischen 0 und n. Nun vergleichen
wir die xj s in der Hoffnung, dass wir Zwei finden, die einen unterschiedlichen Rest bei der Division durch
n haben, aber den gleichen Rest bei der Division durch einen Teiler von n. Sobald wir ein solches xj und
xk gefunden haben, haben wir mit ggT (xj − xk , n) einen Teiler von n gefunden.
Beispiel 4.2.1. Wir wollen 91 faktorisieren. Dazu verwenden wir f (x) = x2 + 1 und x0 = 1. Wir erhalten
für die ersten 3 Werte x1 = 2, x2 = 5 und x3 = 26. Nachdem wir nachgerechnet haben, dass x0 − x1 ,
x2 − x1 und x2 − x0 keine gemeinsamen Teiler mit n haben, berechnen wir den größten gemeinsamen
Teiler von x3 − x2 und n: ggT (x3 − x2 , n) = ggT (21, 91) = 7.
Um nicht für jedes k den größten gemeinsamen Teiler zwischen xk und jedem xj mit j < k berechnen
zu müssen, können wir das Verfahren wie folgt modifizieren. Sobald für k0 und j0 die Relation xj0 ≡
xk0 mod r erfüllt ist, ist wegen der Eindeutigkeit einer Funktion die Relation die Beziehung xj ≡ xk mod n
für alle j und k erfüllt, wenn j und k genau so weit voneinander entfernt sind, wie k0 und j0 , wenn
also k0 − j0 = k − j gilt. Die Modifikation im Algorithmus besteht nun darin, dass wir für ein xk
mit 2h ≤ k < 2h+1 , nur noch ggT (xk − x2h −1 , n) berechnen. Damit müssen wir zwar mehr Werte xj
berechnen, aber da das Berechnen des größten gemeinsamen Teilers aufwändiger ist, als das Anwenden
eines Polynoms, ist der Zeitgewinn dennoch vorhanden.
Berechnen wir nun wie viele Berechnungen im statischen Mittel benötigt werden um mit der RhoMethode einen Faktor einer großen Zahl zu finden. Wir haben f (x) so gewählt, dass f möglichst zufällig
nach Z/nZ abbildet, deshalb wollen wir nun davon ausgehen, dass f eine Funktion ist, die auf eine
zufällige Zahl aus Z/nZ abbildet. Wir suchen bei der Rho-Methode nach zwei Iterationen xj und xk , so
dass xj − xk einen nichttrivialen gemeinsamen Teiler mit n hat. Dazu nehemen wir uns einen festen Teiler
r von n, den wir noch nicht kennen und überlegen uns wie viele Rechenschritte wir brauchen, um zum
ersten Mal auf einen Index k zu kommen, so dass es ein j < k gibt, mit xj ≡ xk mod r. Alternativ können
wir auch sagen, dass wir f nun als eine Funktion von Z/rZ nach Z/rZ betrachten und nachschauen wann
das erste Mal ein Wert wiederholt wird.
Proposition 4.2.2. Sei S eine Menge mit r Elementen. Gegeben seien eine Abbildung f : S → S,
ein Element
√ x0 ∈ S und eine Folge xi+1 = f (xi ) für j = 0, 1, 2, . . .. Für eine positive, reele Zahl λ mit
l = 1 + [ 2λr] ist das Verhältnis der Anzahl der Paare (f, x0 ), für die x0 , x1 , . . ., xl−1 und xl verschieden
sind, zu allen Paaren (f, x0 ) mit einer beliebiegen Funktion f und einem beliebigen x0 ∈ S, kleiner gleich
e−λ .
Beweis. Wir haben insgesamt rr+1 Möglichkeiten ein Paar zwischen der Funktion und dem Startwert zu
wählen, da wir r Möglichkeiten für den Startwert haben und es rr Funktionen von S nach S gibt. Wenn
die einzelnenen xj unterschiedlich sein sollen, haben wir r − 1 Möglichkeiten x1 zu wählen, da der Wert
x0 schon vergeben ist. Weiterhin haben wir r − 2 Möglichkeiten x2 zu wählen, und analog für die weiteren
Werte, bis wir bei xl−1 angelangt sind. Für die übrigen r − l Werte können wir die Werte beliebig wählen,
das bedeutet, dass wir dafür rr−l Möglichkeiten haben. Das heißt, dass wir insgesamt
rr−l
l
Y
(r − j)
j=0
Möglichkeiten haben die Funktion und den Startwert zu wählen, ohne dass sich Überscheidungen ergeben. Um das Verhältnis zwischen diesen Möglichkeiten und allen zu berechnen, müssen wir durch rr+1
dividieren und erhalten
l
l
Y
Y
j
r−l−1
(r − j) =
(1 − ).
r
j=0
j=0
32
4 Primalität und Faktorisierung
Wenn wir nun logarithmieren und ausnutzten, dass log(1 − x) < −x, ergibt sich


l l
2
√
Y
X
j
j
<
log 
2λr = −λ.
1−
− = −l(l + 1)/2r < l2 /2r < −
r
r
j=1
j=1
Das beendet den Beweis.
Das ist eine Abschätzung wie wahrscheinlich es ist, dass wir so ein Paar gefunden haben, dass der größte
gemeinsame Teiler nicht eins ergibt. Mit Hilfe der Proposition 4.2.2 zeigt man, unter der Annahme, dass
Polynome tatsächlich gleichverteilte Abbildungen sind (was noch nicht bewiesen wurde), nun
Proposition 4.2.3. Es gibt eine Konstante C, so dass die Rho-Methode mit einer√Wahrscheinlichkeit
√
von mehr als 1−e−λ einen nichttrivialen Teiler von n in einer Zeitabschätzung von C λ 4 n log3 n findet.
4.2.3 Fermat-Faktorisierung
Wenden wir uns nun der Fermat-Faktorisierung zu. Im folgenden meinen wir mit dne die kleinste ganze
Zahl, die größer oder gleich n ist, dies bedeutet einfach eine Aufrundung. Wir wollen von nun an davon
ausgehen, dass die Zahl n den Faktor 2 nicht enthält. Dies kann durch einfache Probedivision überprüft
werden. Ist n in der Form n = ab, so können wir uns zwei Zahlen s und t als halbe Summe, bzw. als
halbe Differenz der Faktoren definieren und erhalten
t=
a+b
,
2
s=
a−b
;
2
⇐⇒
b = t − s.
a = t + s,
2
2
Wir können nun n umstellen auf n = ab = ((a + b)/2) − ((a − b)/2) = t2 − s2 , die Differenz zweier
Quadratzahlen. Wir haben unser Problem nun darauf reduziert, zwei Quadratzahlen zu finden,
√ deren
Differenz die Zahl ist, die es zu faktorisieren gilt. Damit s2 positiv bleibt, fangen wir mit t = d ne an zu
probieren und rechnen nach, ob t2 − n eine Quadratzahl ist oder
√ nicht und erhöhen daraufhin t um eins.
Sobald t2 − n eine Quadratzahl ist, haben wir mit t und s = n − t2 die gesuchten Zahlen gefunden und
können nun mit a = s + t und b = s − t zwei Faktoren von n angeben.
√
Beispiel 4.2.4. Lasst uns nun 200819 faktorisieren. Wir probieren zuerst t = d 200819e
√ = 449 aus und
sehen, dass 4492 − 200819 = 782 keine Quadratzahl ist. Deshalb probieren wir nun d ne + 1 = 450 aus.
Glücklicherweise ist 4502 −200819 = 1681 = 412 eine Quadratzahl und wir haben damit die Quadratzahlen
gefunden. Nun können wir umstellen und erhalten 200819 = 4502 −412 = (450+41)·(450−41) = 491·409.
Da 409 und 491 Primzahlen sind, haben wir die Primfaktorzerlegung von 200819 gefunden.
Verallgemeinerte Fermat-Faktorisierung
Die Fermat-Faktorisierung wird immer eine Zerlegung finden, es kann nur passieren, dass sie dafür sehr
lange braucht. Es gibt eine Verallgemeinerung der Methode von Fermat. Wir wählen uns eine kleine Zahl
k und bestimmen nach der Fermat-Methode wieder die Zahlen s und t, aber diesmal soll die Differenz
der Quadrate nicht n, sondern kn ergeben. Denn dann ist (t + s)(t − s) = kn und offensichtlich hat t + s
einen gemeinsamen Faktor mit kn, den wir mittels Euklidischen Algorithmuses berechnen können.
Beispiel 4.2.5. Wir wollen nun 141467 faktorisieren. Wenn wir nach der alten Methoden rechnen wollten, würden wir mit t = 377 anfangen, würden bemerken, dass n − t2 keine Quadratzahl, würden die
nächste Zahl nehmen, festellen, dass n − t2 wieder keine Quadratzahl ist und würden lange so weiter
machen, bis wir endlich die Faktorisierung bekämen. Deshalb wollen wir nun die Verallgemeinerte Methode verwenden. Wir wählen k als 3. Nun nehmen wir t = d3ne = 652. Diesmal kommen wir auch
nicht auf eine Quadratzahl, aber mit t = 655 bekommen wir 6552 − 3 · 141467 = 682 . Nun berechnen wir
ggT (655 + 68, 141467) = 241. Dividieren wir 141467 durch 241 erhalten wir 587. Beides sind Primzahlen
und damit haben wir die Primfaktorzerlegung von 141467 gefunden. Nach der speziellen Farmat-Methode
mit n = 1 hätten wir (241 + 587)/2 − 377 + 1 = 38 verschiedene ts gebraucht um auf das Ergebnis zu
kommen, mit der verallgemeinerten Methode nur vier.
Man erkennt am letzten Beispiel sehr gut, dass die verallgemeinerte Fermat-Methode dann am besten
arbeitet, wenn beide Faktoren ungefähr gleich groß sind. Also ist der Grund, weshalb es im letzten Beipiel
mit k = 3 schneller ging, liegt darin, dass in einer Faktorisierung von n = ab der Faktor b ungefähr 3a
ist.
33
4 Primalität und Faktorisierung
4.2.4 Faktor-Basis
Das Prinzip der Faktor-Basis beruht auf der selben Überlegung, wie das der verallgemeinerten FermatMethode, die wir im letzten Abschnitt untersucht haben.
Wir suchten Zahlen s und t, für die gilt, dass ihre Quadrate, reduziert nach n, identisch sind, s und ±t
jedoch nicht. Haben wir s2 ≡ t2 mod n, so folgt daraus direkt (s−t)(s+t) ≡ 0 mod n. Wenn s 6≡ ±t mod n,
so haben wir mit s + t bzw. s − t eine Zahl mit einem nichttrivalen gemeinsamen Teiler von n gefunden.
Wir wollen nun untersuchen, wie wir auf die Zahlen s und t kommen.
Wir suchen uns nun Zahlen b, deren Quadrat, faktorisiert nach n, ein Produkt aus möglichst kleinen
Primfaktoren, eventuell auch noch von −1, ist. Somit können wir über Probedivision relativ einfach die
Primfakorzerlegung von n angeben. Offensichtlich haben wir eine hohe Chance, geringe Primfaktoren zu
erhalten, wenn wir die Zahlen auch gering halten. Deshalb soll von nun an das Ergebniss einer ModuloRechnung zwischen −n/2 und n/2 liegen.
Aus dem Vektorraum über demQKörper mit 2 Elementen, F2 , ordnen wir jedem bj einen Vektor ε~bj ∈ Fh2
a
zu. Da b2j faktorisiert nach n als pi ij mit p0 = −1 und pi der i-ten Primzahl geschrieben werden kann,
können wir i-te Komponente als 0, wenn aij gerade ist, ansonsten als 1 definieren. Wir suchen uns mehrere
Zahlen bj und hoffen, dass sich die dazugehörigen Vektoren imP
Fh2 auf den Nullvektor aufsummieren. Wenn
1
wir solche Zahlen gefunden
Q γ haben, dann definieren wir γj = 2 i aij . Nun haben wir mit dem Produkt der
bj und dem Produkt j pj j zwei Zahlen konstruiert, die das gleiche Quadrat modulo n haben, aber ganz
unterschiedlich konstruiert wurden. Wir hoffen nun, dass diese Zahlen, auf Grund ihrer Unterschiedlichen
Konstruktion, sich nicht nur bis auf das Vorzeichen unterscheiden.
Beispiel 4.2.6. Wir wollen 4633 faktorisieren. Als Faktorbasis B wählen wir {−1; 61} und als verschiedene bj nehmen wir 68, 152 und 153.
682 = 4624 ≡ −9 = −1 · 32 ⇒ ~ε68 = (1; 0)
152 = 23104 ≡ −61 = −1 · 61 ⇒ ~ε152 = (1; 1)
1532 = 23409 ≡ 244 = 22 · 61 ⇒ ~ε153 = (0; 1)
2
Glücklicherweise addieren sich die Vektoren auf den Nullvektor auf und wir erhalten:
(68 · 152 · 153)2 ≡ (2 · 3 · 61)2 mod n
15552 ≡ 3662 mod n
Da 1555 6≡ 366, haben wir die passenden Zahlen gefunden. Nun berechnen wir den größten gemeinsamen
Teiler ggT (1555 − 366, 4633) = ggT (1189, 4633) = 41. Damit haben wir einen Faktor gefunden. Wenn
wir 4633 durch 41 dividieren erhalten wir 113. Damit erhalten wir 4633 = 41 · 113.
Man könnte jetzt behaupten, dass wir nur Glück gehabt hätten, dass die beiden Zahlen sich nicht nur
um einen Vorfaktor von ±1 unterschieden, sondern fundamental andere Zahlen waren. Es ist allerdings
bekannt, dass eine Zahl n mit r verschiedenen Primfaktoren, 2r verschiedene Wurzeln hat. Die Wahrscheinlichkeit, dass wir also zwei Zahlen erwischen, die identisch sind, ist 2/2r ≤ 21 . Es ist allerdings auch
p
offensichtlich, dass Zahlen, die kleiner sind als n/2 als Faktor auf beidenpSeiten stehen und damit sehen
wir, dass wir nur Zahlen betrachten müssen, deren Betrag größer ist als n/2.
Wir wollen nun eine formale Definition des Verfahrens angeben. Zuerst wählen wir eine mittelgroße
Zahl y. Nun wählen wir uns eine Menge B, die sogenannte Faktorbasis, die aus −1 und allen Primzahlen,
pn
die kleiner oder gleich als y sind. Nun wählen wir uns zufällig eine große Anzahl bi s, die zwischen
2
und n liegen, und versuchen nun das betragsmäßig kleinste b2i mod n als ein Produkt der Zahlen in B
zu schreiben. Dazu bilden wir die dazugehörigen Vektoren aus dem F2 . Sobald wir genügend Vektoren
haben (aus der linearen Algebra wissen wir, dass, wenn π(y) die Anzahl der Primzahlen kleiner der gleich
y bezeichnet, π(y) + 2 Vektoren ausreichen) können wir mit Hilfe des Gauß-Verfahrens eine Kombination von Vektoren herausfinden,
Q die sich zum Nullvektor
Q γ aufsummiert. Haben wir so eine Kombination
gefunden, so bilden wir b = j bj mod n und c = j pj j mod n. Wenn c = ±b, müssen wir entweder
eine neue Kombination von bj s nehmen oder wir nehmen ein neues bj hinzu und wählen dann eine neue
Kombination. Gilt b 6≡ ±c mod n, so berechnen wir den größten gemeinsamen Teiler von b + c und n und
haben damit einen Teiler von n.
Bemerkung 4.2.7. Es existiert eine Konstante C, so dass das Verfahren O(eC
Rechenschritte benötigt.
34
√
log n log log n
) fundamentale
4 Primalität und Faktorisierung
4.2.5 Die Kettenbruchmethode
Im letzten Abschnitt haben wir gesehen, dass die (dort beschriebene) Faktorisierungsmethode, am besten
dann funktioniert, wenn es einen guten Algorithmus zur Bestimmung von Zahlen b ∈ Z, 0 ≤ b ≤ n gibt,
für die der kleinste Rest b2 mod n im Betrag (d.h. zwischen −n/2 und n/2) ein Produkt von kleinen
Primzahlen ist.
Das ist sehr wahrscheinlich wenn |b2 mod n| klein ist.
Wir werden in diesem Abschnitt eine
√ Methode beschreiben (ursprünglich von Legendre), die viele solche
Zahlen b findet, mit |b2 mod n| < 2 n
Die Methode Verwendet Kettenbrüche und wir fangen deswegen mit einer kurzen Beschreibung von
Kettenbrüche an.
Kettenbrüche
Sei x ∈ R. Wir entwickeln x in einen (regelmässigen) Kettenbruch auf folgender Weise:
a0 := bxc = die größte ganze Zahl ≤ x, x0 := x − a0 , a1 := b x10 c, x1 := x10 − a1
1
1
c und xi := xi−1
− ai
Für i > 1: ai := b xi−1
1
1
Ist xi−1 eine ganze Zahl =⇒ xi = xi−1 − ai = 0 =⇒ Ende der Entwicklung.
Es ist leicht zu sehen, dass die Entwicklung von x genau dann endlich ist, wenn x ∈ Q:
Die xi aus Q haben fallende Nenner: Sei x = pq ∈ Q, p, q ∈ Z
0q
Dann gilt x0 = pq − b pq c := pq − m0 = p−m
mit m0 ∈ Z, m0 := b pq c ≤ pq ,
q
q−m1 (p−m0 q)
q
q
q
, wobei m1 = b p−m
c ≤ p−m
, m1 ∈
p−m0 q − m1 =
p−m0 q
0q
0q
p−m
q−m
(q−m
(p−m
q))
p−m0 q
0
2
1
0
x2 := q−m1 (p−m0 q) − m2 =
, u.s.w.
q−m1 (p−m0 q)
Offensichtlich gilt q ≥ p − m0 q = q( pq − m0 ), p − m0 q ≥ q − m1 (p − m0 q) = (p
Analog x1 :=
u.s.w.
Wegen der Konstruktion von a0 , a1 , .. gilt für jede i
1
x = a0 + a
1
1+
a2 +..+
Z
q
− m0 q)( p−m
− m1 )
0q
1
ai +xi
(wenn x ∈ Q, dann wird es ein i geben, für die xi = 0 =⇒ der Kettenbruch wird endlich sein)
1
Eine andere Schreibweise ist: x = a0 + a11+ a21+ ... ai +x
= ha0 , a1 , .., ai i
i
Die ai heißen Elemente (oder auch Teilnenner) des Kettenbruchs.
(Den Kettenbruch einer Zahl kann man auch mit dem Euklidischen Algorithmus berechnen. Dann
entsprechen die partielle Quotienten im Euklidischen Algorithmus den Elementen des Kettenbruchs.)
Beispiel 4.2.8. ggT (574, 252) = 14
574 = 252 · 2 + 70 (1)
252 = 70 · 3 + 42 (2)
70 = 42 · 1 + 28 (3)
42 = 28 · 1 + 14 (4)
28 = 14 · 2 + 0
Dann ist die entsprechende Entwicklung von
2+
1
3+ 42
70
= 2+
1
1
3+ 70
=(3) 2 +
1
3+
42
1
1+ 28
42
= 2+
574
252
1
3+
in einer Kettenbruch:
1
1
1+ 42
28
=(4) 2 +
1
3+
1+
1
1
1+ 14
42
574
252
=(1) 2 +
= 2+
70
252
1
3+
1+
1
1
1+ 1
2
= 2+
1
252
70
=(2)
= h2, 3, 1, 1, 2i )
Sei x eine irrationale Zahl. Löschen wir in die obige Entwicklung xi =⇒ es bleibt eine Rationale Zahl
Diese Zahl nennt man i-te Näherungsbruch des (eventuell endlichen) Kettenbruchs ha0 , a1 , ...i
bi
ci .
Proposition 4.2.9. In der obigen Notation gilt:
(i)
b0
c0
=
a0
1 ,
b1
c1
=
a0 a1 +1
,
a1
bi
ci
=
ai bi−1 +bi−2
ai ci−1 +ci−2
für i ≥ 2
(ii) die Brüche von der rechten Seite in (i) sind in gekürzter Form, d.h. gilt bi = ai bi−1 + bi−2 , ci =
ai ci−1 + ci−2 =⇒ ggT (bi , ci ) = 1
(iii) für i ≥ 1 gilt: i) bi ci−1 − bi−1 ci = (−1)i−1 und ii) bi ci−2 − bi−2 ci = (−1)i ai
Beweis. (i) Definieren wir die Folgen bi , ci wie oben (rekursiv). Wir beweisen per Induktion, dass cbii des
i-ten Näherungsbruchs entspricht:
+b0
0
2 +a0
Ist i = 0, 1 dann ist das offensichtlich. Für i = 2 gilt: cb22 = aa22 cb11 +c
= a2 (aa02aa11+1)+a
= a0 a1aa22a+a
=
+1
0
1 +1
1
a0 + a + 1
1
a2
35
4 Primalität und Faktorisierung
Annahme: die Aussage gilt für i (für den i-ten Näherungsbruch). Für den (i+1)-ten Näherungsbruch
1
in der Gleichung für i ≥ 2 ersetzt.
wird ai durch ai + ai+1
bi
ci
Dann gilt:
=
1
i+1
1
(ai + a
i+1
(ai + a
)bi−1 +bi−2
)ci−1 +ci−2
ai+1 (ai bi−1 +bi−2 )+bi−1
ai+1 (ai ci−1 +ci−2 )+ci−1
=
=IA
ai+1 bi +bi−1
ai+1 ci +ci−1
Teil (iii) a) kann man wieder per Induktion beweisen. Der Induktionsschritt lautet: bi+1 ci − bi ci+1 =(i)
(ai+1 bi + bi−1 )ci − bi (ai+1 ci + ci−1 ) = −(bi ci−1 − bi−1 ci ) =IA −(−1)i−1 = (−1)i
b) bi ·ci−1 −bi−1 ·ci =(i) (ai bi−1 +bi−2 )ci−2 −bi−2 (ai ci−1 +ci−2 ) = ai (bi−1 ci−2 −bi−2 ci−1 ) =(iii)a) (−1)i ai
(ii) für bi = ai bi−1 + bi−2 , ci = ai ci−1 + ci−2 , d := ggT (bi , ci ), =⇒ d|bi , d|ci , =⇒ d|bi ci−1 − bi−1 ci =
(−1)i−1 ⇐⇒ d = ±1
Teilen wir die erste Gleichung aus Proposition 4.2.9 (iii) durch ci ci−1 und die zweite durch ci ci−2 dann
i−1
bi−2
(−1)i ai
bi
gilt (*) cbii − cbi−1
= (−1)
ci ci−1 und (**) ci − ci−2 = ci ci−2
i−1
Die Folge ci ist eine Folge von streng monoton steigende Zahlen in Z>0 : ci > 0 für i ≥ 0, c0 = 1,
c1 = a1 ≥ 1, c2 = a2 a1 + 1 > a1 = c1 ,..., ci+1 = ai+1 ci + ci−1 ≥ ci + ci−1 > ci (offensichtliche Induktion)
Die Gleichung (*) zeigt also, dass sich die Näherungsbrüche wie eine alternierende Reihe verhalten. Da
im Betrag immer kleiner wird, können wir schliesen, dass die Folge cbii
der Abstand zwischen cbii und cbi−1
i−1
gegen einen Grenzwert konvergiert:
i+1
Pn
Pn
1
) + cb00 = a0 + i= (−1)
Wegen (*) gilt: cbii = i=1 ( cbii − cbi−1
ci ci−1 , und da die ci ci−1 eine streng monotone
i−1
Nullfolge bilden =⇒ die Reihe konvergiert nach dem Leibnitz-Kriterium.
Es bleibt noch zu zeigen, dass der Grenzwert von cbii x ist:
Betrachtet man den (i+1)-ten Näherungsbruch, wobei statt ai+1 , x1i geschrieben wird, =⇒ cbii = a0 +
1
1
1
= a0 + a +
−ai nach Konstruktion)
= a0 + a + 1 1
(da xi = xi−1
1
1
a +
1
a
2+..+
1
1
ai +
1
ai+1
weiter ist das gleich a0 +
a2 +..+
1
1
ai +xi
1
a1 + a
a
2+..+
ai +
1
1 −a
i
xi−1
= ... = a0 +
1
1
2+..+
ai−1 +xi−1
1
1
x0
= a0 + x0 = a0 + (x − a0 ) = x
Es gilt also nach Proposition 4.2.9, wobei i −→ i + 1 und ai+1 =
x=
bi+1
ci+1
=
ai+1 bi +bi−1
ai+1 ci +ci−1
=
bi
xi
ci
xi
+bi−1
+ci−1
=
bi +xi bi−1
ci +xi ci−1
Es gilt dann wegen Proposition 4.2.9 (iii) a): 1)
wenn i ungerade.
(nach Proposition 4.2.9 (iii) gilt: ist i gerade =⇒
ist i ungerade, dann gilt:
Die Folge
bi
ci
bi
ci
−
bi−1
ci−1
1
xi :
> 0 und
bi
ci
−
bi
ci
bi
ci
bi−2
ci−2
<x<
−
bi−1
ci−1
bi−1
ci−1
wenn i gerade und 2)
< 0 und
bi
ci
−
bi−2
ci−2
bi−1
ci−1
<x<
bi
ci
>0
< 0)
oszilliert also um x und konvergiert gegen x.
Einige Eigenschaften von Kettenbrüchen:
1) Kettenbrüche stellen eine gute rationale Approximation zu reellen Zahlen dar, in dem Sinn, dass jede
andere rationale Zahl, die näher zu x ist als cbii , einen Nenner haben muss, der größer als alle ci ist.
2) Die Folge von ai ist endlich genau dann wenn x ∈ Q, wie wir schon gesehen haben.
√
3) Die ai wiederholen sich genau dann wenn x von der Form x1 + x2 n mit x1 , x2 ∈ Q und n ist keine
Quadratzahl, d.h. x ist quadratisch irrational (Lagrange’s Theorem)
Proposition 4.2.10. Für x > 1, x ∈ R,
bi
ci
sei der i-ten Näherungsbruch von x, gilt: |b2i − x2 c2i | < 2x
bi+1
bi+1
(−1)i−2
bi
bi
1
2
2 2
ci und ci+1 und da | ci − ci+1 | = | ci ci+1 | = ci ci+1 (Proposition 4.1c)): |bi −x ci | =
ci
c2i |x − cbii ||x + cbii | = c2i ci c1i+1 |x + (x + cbii − x)| < c2i ci c1i+1 (x + (x + ci c1i+1 )) = ci+1
(2x) + c2ci
i+1
ci
ci
1
Dann gilt: |b2i − x2 c2i | − 2x < 2x(−1 + ci+1
+ 2xc12 ) < 2x(−1 + ci+1
+ ci+1
) (da 2xc2i+1 > ci+1 ) und
i+1
i+1
das ist < 2x(−1 + cci+1
)
(da
c
+
1
<
c
,
c
≥
i).
Da
|b2i − x2 c2i | − 2x < 2x(−1 + cci+1
) = 0 =⇒ folgt die
i
i+1
i
i+1
Beweis. Da x zwischen
Behauptung.
√
Proposition 4.2.11. Sei n ∈ Z > 0, n keine Quadratzahl und sei cbii der i-ten Näherungsbruch von n.
√
Dann ist der kleinste Rest(im Betrag) von b2i mod n kleiner als 2 n
√
√
Beweis.
Sei x := n. Es gilt b2i − ( n)2 c2i ≡ b2i mod n. Dann gilt nach Proposition 2.10: |b2i mod n| <
√
2 n
36
4 Primalität und Faktorisierung
2
Die Proposition besagt, dass wir eine Folge von
√ bi finden können, für die bi mod n klein sind, mit bi
gleich dem Zähler im i-ten Näherungsbruch von n.
Die Kettenbruchmethode basiert auf diesem Fakt. Wir brauchen sogar nicht die i-te Näherungsbruche
berechnen, nur die bi und nur modulo n. Da wir immer mit ganzen Zahlen modulo n rechnen, werden
wir nie mit Zahlen größer als n2 rechnen müssen.
Die Kettenbruchmethode
In der Kettenbruchmethode werden wir den Faktorisierungsalgorithmus aus dem vorherigen Kapitel benutzen aber statt die bi beliebig zu wählen, werden wir hier die bi wie im Proposition 2.11 erzeugen:
Sei n ∈ Z, wir wollen n faktorisieren.
Alle Rechnungen werden modulo n gemacht und die kleinste Reste modulo n werden betrachtet(d.h.
diese zwischen −n/2 und n/2)
[1] wir erzeugen die bi :
√
√
0)Sei b−1 := 1, b0 := a0 := b nc, x0 := n − a0 , berechne b20 mod n
für i = 1, 2, ...:
1
1
1) berechne ai := b xi−1
c, xi := xi−1
− ai
2) berechne bi := ai bi−1 + bi−2
3) berechne b2i mod n
erzeuge einige bi auf dieser Weise.
[2] Die Faktor-Basis-Methode:
Beispiel 4.2.12. Wir faktorisieren 9073:
[1]
b−1 := 1
√
b0 = a0 = b95.25..c = 95, x0 = n − a0 = 0.25229656, b20 = 952 mod 9073 ≡ −48 = −1 · 24 · 3
1
a1 = b x0 c = b3.9c = 3, x1 = 0.9635.., b1 = 3 · b0 + b−1 = 286, b21 mod 9073 = 139
a2 = b1.0377..c = 1, x2 = 0.0337786, b2 = a2 b1 + b0 = 381, b22 mod n = −7 = −1 · 7
a3 = b26.46..c = 26, x3 = 0.464616, b3 = 26 · 381 + 286 ≡9073 1119, b23 mod n = 87 = 3 · 29
a4 = 2, x4 = 0.152314, b4 = 2 · 1119 + 381 = 2619, b24 ≡9073 27 = −1 · 32 [2] Nun benutzen wir die
Faktorbasismethode.
37
Kapitel
5
Einführung in die elliptischen Kurven
Alexandra Fischer & Alexander Hoffmann, 24.07.2007
Basierend auf: [Hus03, Chapter 0 & 1]
5.1 Einleitung
In diesem Vortrag beschäftigen wir uns mit den elliptischen Kurven als eine besondere Klasse der ebenen
Kurven und mit ihrer Anwendung in der Kryptographie. Von besonderem Interesse sind dabei die Menge
der rationalen Punkte auf einer Kurve, die Gruppenstruktur, die diese Punkte zusammen mit dem SehneTangente-Gesetz bilden, die Darstellung von rationalen Punkten und die Isomorphie zwischen elliptischen
Kurven. Von großer Bedeutung sind auch die Fragen nach der Existenz rationaler Punkte auf einer Kurve
und nach der Anzahl der Elemente in der Gruppe einer elliptischen Kurve.
Damit man Kryptographie auf Basis der elliptischen Kurven betreiben kann, braucht man eine Gruppenstruktur von Punkten der Kurve und eine Funktion, deren Funktionswerte effizient berechnet werden
können, aber für die die Berechnung von Werten der zugehörenden Umkehrfunktion ein schwieriges Problem darstellt oder es zumindest angenommen wird, dass dies der Fall ist.
5.1.1 Ebene Kurven
Gegeben sei ein Polynom f (x, y) in zwei Variablen mit rationalen Koeffizienten vom Grad n ∈ N.
Dann
ist Cf die Ortskurve
der polynomiellen Gleichung f (x, y) = 0 in der x,y-Ebene, also Cf :=
(x, y) ∈ R2 : f (x, y) = 0 . Besteht die Ortskurve nur aus Punkten in R2 , so schreibe auch Cf (R) und es
gilt Cf (R) ⊂ R2 . Da manche Polynome, z.B. f (x, y) = x2 + y 2 + 1, keine reelle Nullstellenmenge haben,
ist auch Cf (R) leer. In diesem Fall arbeitet man mit der Menge Cf (C) ⊂ C2 , die aus komplexen Punkten
besteht. Besonders interessant ist die Menge Cf (Q) der rationalen Punkte (x, y) ∈ Q2 , die der Gleichung
f (x, y) = 0 genügen.
Einige Eigenschaften der ebenen Kurven:
• Ebene Kurven können für beliebige nichtkonstante komplexe Polynome mit komplexen Koeffizienten
f (x, y) ∈ C[x, y] durch f (x, y) = 0 definiert werden.
• Für k 6= 0 haben f (x, y) = 0 und kf (x, y) = 0 die gleichen Lösungen und definieren damit die
gleiche Kurve Cf = Ckf .
Je nach Grad des Polynoms sehen die Kurven in R2 unterschiedlich aus:
38
5 Einführung in die elliptischen Kurven
5.1.2 Rationale Punkte auf rationalen Geraden
Definition 5.1.1. Eine rationale Kurve hat die Form Cf , wobei f (x, y) ein Polynom mit rationalen
Koeffizienten ist.
Eine rationale Gerade ist durch ein Polynom ersten Grades f (x, y) = a+bx+cy mit a, b, c ∈ Q definiert.
Versucht man nun eine rationale Gerade Cf (Q) zu beschreiben, so gibt es mehrere Möglichkeiten.
Für c 6= 0 kann man eine bijektive Entsprechung zwischen rationalen Punkten auf Cf und solchen auf
der x-Achse mit Hilfe der senkrechten Geraden bestimmen. Dabei entspricht der Punkt (x, 0) dem Punkt
(x, −(1/c)(a + bx)) = (x, y) ∈ Q2 auf Cf .
Für b 6= 0 entsteht eine bijektive Entsprechung zwischen rationalen Punkten auf der y-Achse und solchen
auf Cf mit Hilfe der horizontalen Geraden. In diesen Fall entspricht der Punkt (0, y) dem Punkt (−1/b(a+
cy), y) = (x, y) ∈ Q2 auf Cf .
0
Hat man zwei Geraden L = Cf und L = Cf 0 gegeben, so definiert man eine Beziehung zwischen den
0
0
Punkten auf L und L mit Hilfe eines Punktes P0 = (x0 , y0 ), der weder auf L noch auf L liegt, und der
0
0
0
Familie aller Geraden durch P0 . Dann entsprechen sich P auf L und P auf L genau dann, wenn P , P
und P0 auf einer Gerade liegen.
0
0
Sind L, L und P0 rational, dann gilt für die sich entsprechende P und P , dass P genau dann rational
0
ist, wenn P rational ist. Damit haben wir auch hier eine bijektive Entsprechung zwischen Cf (Q) und
0
Cf 0 (Q) gefunden. Diejenigen Geraden durch P0 , die parallel zu L oder L verlaufen, liefern aber kein sich
entsprechendes Paar von Punkten. Die Lösung des Problems liefert uns die projektive Geometrie.
Eine projektive Ebene ist die kartesische bzw. affine Ebene zusammen mit einer zusätzlichen Geraden,
der Geraden im Unendlichen. Zwei parallele Geraden schneiden sich in der projektiven Ebene und zwar
in einem Punkt auf der Geraden im Unendlichen.
Definition 5.1.2. Die projektive Ebene P2 ist die Menge aller Tripel w : x : y mit (w, x, y) 6= 0. Die
0
0
0
Punkte w : x : y und w : x : y werden als gleich angesehen, falls eine Konstante k 6= 0 existiert mit
0
0
0
w = kw, x = kx und y = ky.
Weiterhin gilt in der projektiven Ebene folgendes:
• Eine ebene Gerade CF in P2 ist die Ortskurve aller w : x : y mit F (w, x, y) = aw + bx + cy = 0.
• Die Gerade im Unendlichen ist gegeben durch die oben genannte Gleichung mit w = 0.
• Der Punkt 1 : x : y in P2 entspricht (x, y) in der Kartesischen Ebene.
Definition 5.1.3. Eine rationale bzw. reelle ebene Kurve in P2 hat die Form CF , wobei F (w, x, y)
rationale bzw. reelle Koeffizienten hat.
Wie in der x,y-Ebene, hat auch hier eine rationale Kurve CF rationale, reelle und komplexe Punkte, also
CF (Q) ⊂ CF (R) ⊂ CF (C).
39
5 Einführung in die elliptischen Kurven
5.1.3 Rationale Punkte auf rationalen Kegeln
Eine rationale Kurve vom Grad 2 ist ein Kegelschnitt, gegeben durch
0 = f (x, y) = a + bx + cy + dx2 + exy + f y 2
in der x,y-Ebene oder durch
0 = F (w, x, y) = aw2 + bwx + cwy + dx2 + exy + f y 2
in der projektiven Ebene.
Versucht man die Menge der rationalen Punkte Cf (Q) auf der Kurve Cf zu bestimmen, stellen sich
zunächst zwei Fragen:
(i) Sei ein rationaler Punkt P0 auf Cf gegeben. Wie bestimmt man dann alle anderen rationalen Punkte
auf Cf ?
(ii) Existiert überhaupt ein rationaler Punkt P0 auf Cf ?
Die erste Frage läßt sich analog zum Fall der rationalen Gerade beantworten, in dem man auch hier
eine bijektive Entsprechung zwischen rationalen Punkten auf der Kurve und solchen auf einer rationalen
Gerade findet.
Bemerkung 5.1.4. Wenn einer der zwei Schnittpunkte eines rationalen Kegelschnittes mit einer rationalen Gerade ein rationaler Punkt ist, dann ist der zweite Schnittpunkt auch rational.
Sei C eine rationale Kurve vom Grad 2 und O ein rationaler Punkt auf C. Wähle eine rationale Gerade
L, die nicht durch O geht und projiziere C auf L von O aus.
Eine Gerade durch einen beliebigen Punkt Q auf L und O schneidet C in einem weiteren Punkt P .
Umgekehrt wird eine Gerade durch O, die durch einen beliebigen Punkt P auf C geht, L schneiden. Der
Punkt O selber entspricht dem Punkt R auf L, der der Schnittpunkt von L und der Tangente T von C
in O ist. Da nach Annahme O rational ist, können wir aus Bemerkung 5.1.4 entnehmen, dass P genau
dann rational ist, wenn Q rational ist. Damit haben wir eine Entsprechung zwischen rationalen Punkten
auf C, der Menge C(Q), und solchen auf L, der Menge L(Q), gefunden.
Die Existenz der rationalen Punkte auf C lässt sich mit Hilfe des Satzes von Hasse-Minkowski bestimmen.
Satz 5.1.5. Satz von Hasse-Minkowski
Sei F (x1 , ..., xn ) eine quadratische Form mit rationalen Koeffizienten. Dann gilt:
F (x1 , ..., xn ) = 0 nicht-trivial lösbar in Q ⇔ F (x1 , ..., xn ) = 0 nicht-trivial lösbar in R und nicht-trivial
lösbar in Qp ∀p ∈ P.
5.1.4 Rationale kubische Kurven und der Satz von Mordell
Die allgemeine Form einer kubischen Kurve C in projektiven Koordinaten ist gegeben durch
0 = c1 w3 + c2 x3 + c3 y 3 + c4 w2 x + c5 wx2 + c6 x2 y + c7 xy 2 + c8 w2 y + c9 wy 2 + c10 wxy.
Wie im Fall der quadratischen Kurven sind wir an rationalen Punkten auf C interessiert. Aber anders
als in 5.1.3 projizieren wir C nicht auf eine Gerade, sondern wir bewegen uns zwischen den rationalen
Punkten innerhalb von C, um eine algebraische Struktur der Kurve zu erhalten.
40
5 Einführung in die elliptischen Kurven
Bemerkung 5.1.6. Wenn zwei der drei Schnittpunkte einer rationalen kubischen Kurve mit einer rationalen Gerade rationale Punkte sind, dann ist der dritte Schnittpunkt auch rational.
Definition 5.1.7. Ein Punkt O auf C heißt singulär, wenn jede Gerade durch O die Kurve C höchstens
in einem weiteren Punkt schneidet. C heißt nicht-singulär, falls sie keine singulären Punkte enthält.
Betrachtet man eine nicht-singuläre kubische Kurve C, so schneidet eine Gerade im allgemeinen Fall
C in drei Punkten. So definiert man mit Hilfe einer Geraden durch zwei rationale Punkte P und Q einen
dritten rationalen Punkt P Q auf C. Hat man nur einen rationalen Punkt P gegeben, so wird der zweite
Punkt durch den Schnittpunkt der Tangente von C in P definiert. Die Tangente trifft den rationalen
Punkt P zweimal und somit ist nach Bemerkung 5.1.6 auch der dritte Schnittpunkt P P rational.
Die Abbildung, die den Punkten P und Q einen Punkt P Q zu ordnet, nennt man das Sehne-TangenteGesetz.
Satz 5.1.8. Vereinfachte Form des Satzes von Mordell
Auf einer nicht-singulären rationalen kubischen Kurve C existiert eine endliche Menge rationaler Punkte,
so dass alle rationalen Punkte auf C aus dieser Menge durch das Sehne-Tangente-Gesetz erzeugt werden
können.
Es existiert momentan keine Methode, mit der man die Existenz eines rationalen Punktes auf einer
kubischen Kurve in einer endlichen Anzahl von Schritten zeigen kann.
5.2 Gruppengesetz auf kubischen und elliptischen Kurven
Das Sehne-Tangente-Gesetz gibt uns noch keine Gruppenstruktur auf der Menge der rationalen Punkte
einer kubischen Kurve, da kein neutrales Element existiert. Doch mit einem rationalen Punkt O auf der
Kurve als Nullelement und der Sehne-Tangente-Komposition P Q kann man die Gruppenaddition durch
P + Q = O(P Q) definieren. Das bedeutet, dass P + Q der dritte Schnittpunkt der Gerade durch O und
P Q mit der kubischen Kurve ist.
Die Kommutativität P + Q = Q + P ist gegeben, da es P Q = QP gilt. Da O, P O und P die drei
Schnittpunkte einer Gerade durch P und O sind, sieht man sofort, dass O wirklich ein neutrales Element
bezüglich der oben eingeführten Addition ist. Um das inverse Element −P zu finden, wird die Tangente
am Punkt O und der dritte Schnittpunkt OO der Tangente mit der Kurve C verwendet. Man legt eine
Gerade durch die Punkte P und OO. Der dritte Schnittpunkt dieser Gerade mit der Kurve C ist das
gesuchte Inverse zu P . Also P + (−P ) = O(OO) = O.
41
5 Einführung in die elliptischen Kurven
Der folgende Satz liefert uns ein Zwischenergebnis, das wir später beim Beweis der Assoziativität des
Sehne-Tangente-Gesetzes brauchen.
Satz 5.2.1. Sei k ein endliches Feld und seien D und D0 zwei kubischen Kurven, deren Schnittpunktmenge in P2 (k) genau aus neun Punkten besteht. Wenn D00 eine ebene kubische Kurve ist, die durch acht der
Schnittpunkte verläuft, dann verläuft sie auch durch den neunten Punkt und hat die Form D00 = aD+a0 D0 .
Die Assoziativität wäre gezeigt, falls für drei Punkte P , Q und R auf C P (Q + R) = (P + Q)R gelte.
Um P (Q + R) zu bilden, müssen wir zuerst QR bestimmen und mit O verknüpfen, um so den dritten
Schnittpunkt Q + R zu erhalten. Legt man nun eine Gerade durch Q + R und P , so liefert uns der
dritte Schnittpunkt mit C den Punkt P (Q + R), welcher auch der Punkt (P + Q)R sein sollte. Aus der
Abbildung kann man entnehmen, dass die Punkte O, P , Q, R, P Q, P + Q, QR und Q + R auf einer
gestrichelten bzw. durchgezogenen Gerade liegen. Zu zeigen wäre, dass der Schnittpunkt T der Geraden
durch P und Q + R bzw. P + Q und R auch auf C liegt.
Es existieren zwei degenerierte kubische Kurven, die durch alle neun Punkte verlaufen. Wir nennen die
Vereinigung der drei gestrichelten Geraden C1 und die Vereinigung der drei durchgezogenen Geraden C2 .
Da C durch die acht Punkte O, P , Q, R, P Q, P + Q, QR und Q + R verläuft, liegt der neunte Punkt
auch auf C und damit gilt C P (Q + R) = (P + Q)R.
Definition 5.2.2. Eine elliptische Kurve E über einem Körper F ist eine nicht-singuläre kubische Kurve
über F der Form
y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 .
Die Gruppenoperation auf E(F) zusammen mit dem Punkt O ∈ E(F) macht E(F) zu einer Gruppe.
Satz 5.2.3. Mordell 1921
Sei E eine rationale elliptische Kurve. Die Gruppe der rationalen Punkte E(Q) ist eine endlich erzeugte
abelsche Gruppe.
Jede kubische Gleichung in allgemeiner Form
0 = c1 w3 + c2 x3 + c3 y 3 + c4 w2 x + c5 wx2 + c6 x2 y + c7 xy 2 + c8 w2 y + c9 wy 2 + c10 wxy
42
5 Einführung in die elliptischen Kurven
kann in die Normalform
wy 2 + a1 wxy + a3 w2 y = x3 + a2 wx2 + a4 w2 x + a6 w3
überführt werden. Eine elliptische Kurve in dieser Form hat nur einen Schnittpunkt mit der Gerade
im Unendlichen nämlich (0, 0, 1). In kartesischen Koordinaten ist die Normalform der Gleichung y 2 +
a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 . Der Punkt im Unendlichen (0, 0, 1) ist das neutrale Element der
Gruppe der elliptischen Kurve. Die senkrechten Geraden der kartesischen Ebene sind genau die Geraden
durch das neutrale Element. Dieses neutrale Element hat bezüglich des Sehne-Tangente-Gesetzes folgende
Eigenschaft OO = O. Das bedeutet, dass drei Punkte auf der elliptischen Kurve sich zu Null addieren
dann und nur dann, wenn sie auf einer Geraden liegen.
Satz 5.2.4. Gruppenstruktur einer elliptischen Kurve
Sei E eine elliptische Kurve , die über Fq definiert ist, wobei Fq ein endlicher Körper der Ordnung q ist.
Dann ist E(Fq ) isomorph zu Z/n1 Z ⊕ Z/n2 Z, wobei n1 und n2 eindeutig bestimmte ganze Zahlen sind,
so dass n1 und q − 1 von n2 geteilt wird.
Anzumerken ist, dass die Ordnung von E(Fq ) n1 n2 ist. Falls n2 = 1 ist, dann ist E(Fq ) eine zyklische
Gruppe.
Beispiel 1 Wir betrachten F24 bestehend aus Restklassen von Polynomen modulo f (z) = z 4 + z + 1.
Die Gruppe E(F24 ) hat Ordnung 22, wenn E : y 2 + xy = x3 + z 3 x2 + (z 3 + 1). Da 22 keine mehrfachen
Faktoren hat, ist E(F24 ) zyklisch. Der Punkt P = (z 3 , 1) = (1000, 0001) hat Ordnung 11.
0P = ∞, P = (1000, 0001), 2P = (1001, 1111), 3P = (1100, 0000), 4P = (1111, 1011), 5P = (1011, 0010), 6P =
(1011, 1001), 7P = (1111, 0100), 8P = (1100, 1100), 9P = (1001, 0110), 10P = (1000, 1001)
5.2.1 Berechnung des Inversen
Sei E eine elliptische Kurve in Normalform y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 . Da die Gleichung
quadratisch bezüglich y ist, schneidet eine senkrechte Gerade x = x0 die Kurve in entweder keinem
oder in zwei Punkten (x0 , y1 ) und (x0 , y2 ), wobei y1 und y2 die Lösungen der quadratischen Gleichung
y 2 + (a1 x0 + a3 )y − (x0 3 + a2 x0 2 + a4 x0 + a6 ) = 0 sind.
Sei nun P = (x, y) ein Punkt auf E. Dann ist das Inverse −P = (x, y ∗ ) mit y + y ∗ = −a1 x − a3 , d.h.
−(x, y) = (x, −y − a1 x − a3 ), da die Summe von Lösungen nach dem Satz von Vieta gleich dem Koeffizienten von y mit negativem Vorzeichen ist.
Die Operation P 7→ −P definiert eine Abbildung E(F) → E(F) und es gilt −(−P ) = P . Die Kurve hat
3
weiterhin eine vertikale Symmetrie bezüglich der Gerade y = − a1 x+a
.
2
Beispiel 2 In Fig.1 ist E gegeben durch y 2 + y − xy = x3 . Für P = (x, y) ergibt sich somit das Inverse −P = (x, −y − 1 + x) und die Kurve ist vertikal symmetrisch bzgl. y = (1/2)x − 1/2.
43
5 Einführung in die elliptischen Kurven
5.2.2 Addition zweier Punkte
Sei E wieder eine elliptische Kurve in Normalform y 2 + a1 xy + a3 y = f (x) = x3 + a2 x2 + a4 x + a6 . Um
zwei Punkte P1 = (x1 , y1 ) und P2 = (x2 , y2 ) zu addieren, bildet man zuerst eine Gerade durch P1 und
P2 oder eine Tangente, falls P1 = P2 . Der dritte Schnittpunkt ist nun P1 P2 = (x3 , y3 ). Für die Summe
von P1 und P2 gilt dann P1 + P2 = −P1 P2 .
(i) Fall: Falls x1 6= x2 , so dass P1 6= P2 , dann hat die Gerade durch P1 und P2 die Gleichung y = λx+β
−y2
mit λ = xy11 −x
.
2
(ii) Fall: Falls x1 = x2 , aber P1 6= P2 , dann ist die Gerade durch P1 und P2 vertikal mit x = x1 und
P2 = −P1 .
0
(iii) Fall: Falls P1 = P2 , dann hat die Tangente in P1 die Gleichung y = λx + β mit λ =
f (x1 )−a1 y1
2y1 +a1 x1 +a3 .
Setzt man nun für y λx + β in die Normalform der kubischen Gleichung ein und bringt alles auf
eine Seite, so bekommt man (λx + β)2 + a1 x(λx + β) + a3 (λx + β) = x3 + a2 x2 + a4 x + a6 und
0 = x3 + (a2 − λ2 − λa1 )x2 + (a4 − 2λβ − a1 β − λa3 )x + (a6 − β 2 − a3 β). Die drei Lösungen x1 , x2
und x3 dieser Gleichung sind die x-Koordinaten der Schnittpunkte P1 , P2 und P1 P2 im 1. und im 2. Fall
oder P1 , P1 und P1 P1 im 3. Fall. Da die Summe der Lösungen gleich dem Koeffizient bei x2 mit negativem
Vorzeichen ist, bekommt man x3 = λ2 + λa1 − a2 − x1 − x2 im 1. und 2. Fall und x3 = λ2 + λa1 − a2 − 2x1
im 3.Fall. Die y-Koordinate ist dann durch die Geradengleichung y3 = λx3 + β gegeben.
Letztendlich erhält man für die Summe (x1 , y1 ) + (x2 , y2 ) = (x3 , −y3 − a1 x3 − a3 ) im 1. und 2.Fall und
2(x1 , y1 ) = (x3 , −y3 − a1 x3 − a3 ) im 3. Fall.
Beispiel 2 (Fortsetzung) Zurück zur Fig.1. Sei P = (1, 1) unser Startpunkt. Die Tangente T in P
schneidet E in (0, −1) = −(0, 0), somit ist 2P = (0, 0). Die Gerade y = x durch P und 2P liefert uns den
dritten Schnittpunkt (−1, −1) mit E. Da gilt (−1, −1) = −(−1, −1), haben wir unser 3P gefunden. Da
die Tangente in 3P senkrecht ist, gilt 2(−1, −1) = 2 ∗ 3P = 6P = 0 und wir können folgern, dass P die
Ordnung 6 hat. Weiterhin gilt, dass 4P = −2P = −(0, 0) = (0, 1) und 5P = −P = −(1, 1) = (1, −1) ist.
O zusammen mit den Punkten P , 2P , 3P , 4P und 5P bilden eine zyklische Untergruppe der Ordnung 6
in E(Q).
5.3 Elliptische Kurven Kryptographie
5.3.1 Schlüsselerzeugung
Sei E eine elliptische Kurve über dem Körper Fp . Sei P ein Punkt aus E(Fp ) mit der Primordnung n.
Dann ist die von P generierte zyklische Gruppe hP i = {∞, P, 2P, 3P, ..., (n − 1)P }.
Die Primzahl p, die Gleichung der elliptischen Kurve E, der Punkt P und die Ordnung n sind die öffentlichen Parameter. Der private Schlüssel d ist eine ganze Zahl, die zufällig aus dem Intervall [1, n − 1]
gewählt wird, und der entsprechende öffentliche Schlüssel ist Q = dP . Das Problem der Bestimmung von
d aus gegebenen öffentlichen Parametern und Q heißt elliptic curve discrete logarithm problem (ECDLP).
Schlüsselerzeugung:
44
5 Einführung in die elliptischen Kurven
• INPUT: Öffentliche Parameter (p, E, P, n).
• OUTPUT : Öffentlicher Schlüssel Q und privater Schlüssel d.
(i) Wähle d ∈ [1, n − 1].
(ii) Berechne Q = dP .
(iii) Ausgabe (Q, d).
5.3.2 Verschlüsselungsschema
ElGamal-Verschlüsselung:
• INPUT: Öffentliche Parameter (p, E, P, n), öffentlicher Schlüssel Q und Klartext m.
• OUTPUT : Chiffretext (C1 , C2 ).
(i) Representiere m als ein Punkt M aus E(Fp ) .
(ii) Wähle k ∈ [1, n − 1].
(iii) Berechne C1 = kP .
(iv) Berechne C2 = M + kQ.
(v) Ausgabe (C1 , C2 ).
ElGamal-Entschlüsselung:
• INPUT: Öffentliche Parameter (p, E, P, n), privater Schlüssel d und Chiffretext (C1 , C2 ).
• OUTPUT : Klartext m.
(i) Berechne M = C2 − dC1 und extrahiere m aus M .
(ii) Ausgabe m.
5.3.3 Fazit
Wo liegt nun der Vorteil der auf elliptischen Kurven basierten Kryptosystemen? Man betrache hierzu die
folgende Abbildung aus [HMV04]:
Der Vergleich zwischen Kryptosystemen (RSA, DL und ECCDL) zeigt, dass ECCDL wesentlich kleinere
Parameter als RSA und DL für dasselbe Sicherheitsniveau braucht. Diese Differenz in der Parametergrößen ist besonders spürbar beim hohen Sicherheitsniveau. Die kleineren Parameter wirken sich positiv auf
die Geschwindigkeit der Kryptooperationen und auf die Größe der Schlüssel und des Zertifikats aus. Im
Besonderen die Operationen mit privaten Schlüsseln wie Signaturerzeugung und Entschlüsselung sind
für ECC viel effektiver als für RSA und DL. Die Operationen mit den öffentlichen Schlüsseln wie Signaturverifikation und Verschlüsselung sind für ECC effektiver als für DL. Die Vorteile, die ECC bietet,
können entscheidend sein für Systeme mit leistungsschwachen Prozessoren, wenig Speicherplatz, kleiner
Bandbreite und beschränkten Energieressourcen.
45
Kapitel
6
Das Zahlkörpersieb
Adrian Sichau, 24.07.2007
Basierend auf: [LLMP93]
6.1 Einleitung
Das Zahlkörpersieb ist ein Algorithmus zur Faktorisierung natürlicher Zahlen der Form re − s, mit kleinen r, |s| ∈ N. Der Algorithmus basiert auf Arithmetik in einem Algebraischen Zahlkörper und greift
darüber hinaus auf traditionelle“ Siebtechniken zurück. Berühmt geworden ist das Zahlkörpersieb durch
9
”
die Faktorisierung der neunten Fermatzahl F9 = 22 + 1 = 2512 + 1 im Jahr 1993. Von der 155-stelligen
Zahl F9 war bereits ein 7-stelliger Primfaktor bekannt. Mit dem Zahlkörpersieb gelang schließlich die
komplette Faktorisierung von F9 in drei Primfaktoren mit 7, 49, bzw. 99 Stellen. Die Gesamtdauer der
Faktorisierung betrug dabei etwa vier Monate.
Der Algorithmus kann angepasst werden, um beliebige natürliche Zahlen handhaben zu können. Allerdings
ist diese Variante langsamer und wesentlich komplizierter. Damit unterscheidet sich das Zahlkörpersieb
z.B. vom Quadratischen Sieb und der Continued Fraction Methode, die beide unabhängig von der Gestalt
der zu faktorisierenden Zahl sind. Heuristische Laufzeitanalysen weisen darauf hin, dass das Zahlkörpersieb sowohl in der speziellen, als auch in der allgemeinen Form, mutmaßlich das asymptotisch schnellste
bekannte Faktorisierungsverfahren ist.
Der Vortrag konzentriert sich auf das spezielle Zahlkörpersieb und geht nur am Ende sehr kurz auf die
Probleme bei der Faktorisierung allgemeiner natürlicher Zahlen ein.
6.2 Kurzfassung des Algorithmus
Sei n ∈ N, n > 1 die zu faktorisierende Zahl. Wir nehmen an, dass n weder eine Primzahl noch eine
Primzahlpotenz ist. Hierfür gibt es, wie wir gesehen haben bzw. noch sehen werden, gute und schnelle
(probabilistische) Verfahren. Außerdem gehen wir davon aus, dass n oder ein kleines Vielfaches von n von
der Form re −s ist, wobei r > 1 eine kleine natürliche Zahl, s ∈ Z, s 6= 0 mit kleinem Absolutbetrag und e ∈
N deutlich größer als r und s ist. Des weiteren seien r, e, s und n bekannt. Da die (mutmaßliche) Laufzeit
des Zahlkörpersiebs von der Größe von n und nicht von der Größe der Primfaktoren von n abhängt, wird
man in der Praxis, neben den oben angesprochenen Tests, zunächst versuchen kleine Primfaktoren von
n, mit hierfür besonders geeigneten Methoden, zu finden. Neben der trivialen Probedivision wären dabei
vor allem Pollard’s p ± 1 und Pollard’s Rho Methode sowie Elliptische Kurven zu nennen.
Ähnlich wie bei einigen, in vorangegangen Vorträgen, bereits angesprochenen Verfahren, wird auch beim
Zahlkörpersieb eine Zahl x ∈ N gesucht für die gilt
x2 ≡ 1 mod n
und x 6≡ ±1 mod n ,
da dann gcd(n, x − 1) bzw. gcd(n, x + 1) echte Teiler von n sind. Tatsächlich ist die Wahrscheinlichkeit,
dass x 6≡ ±1 mod n mindestens 21 , falls x2 ≡ 1 mod n und n keine Primzahlpotenz ist, siehe [Kob94]. Um
n zu faktorisieren, möchte man daher möglichst viele Lösungen x der Gleichung
x2 ≡ 1 mod n
46
(6.2.1)
6 Das Zahlkörpersieb
konstruieren.
Um solche Lösungen x zu finden, gehen wir in drei Schritten vor:
Schritt 1: Wahl der Faktorbasis
Die Faktorbasis wird gewählt als eine Menge F := {ai ∈ Z/nZ : i ∈ I}, mit einer endlichen Indexmenge
I und ai 6= 0. Dabei ist zu beachten, dass die Faktorbasis F keine Liste potenzieller Faktoren von n ist.
Weiter können wir annehmen, dass gcd(ai , n) = 1, dass also alle ai Einheiten in Z/nZ sind, da wir sonst
bereits einen Faktor von n gefunden hätten.
Schritt 2: Sammeln von Relationen
Wir suchen Relationen zwischen den ai ∈ F, d.h. Vektoren v = (vi )i∈I ∈ ZI so, dass
Y
avi i ≡ 1 mod n .
(6.2.2)
i∈I
Wir können die Suche stoppen, sobald wir etwas mehr als #I solcher Relationen v gefunden haben.
Bezeichne mit V die Menge aller gefundenen Relationen.
Schritt 3: Finden von Abhängigkeiten
P
Hier werden Teilmengen W von V gesucht so, das v∈W v = 2 · z mit z = (zi )i∈I ∈ ZI . Damit ist
Y
Y Y
i
≡ 1 mod n ,
a2z
avi i ≡
i
v∈W i∈I
i∈I
Q
und x = ( i∈I azi i mod n) erfüllt die Gleichung 6.2.1.
Im folgenden werden wir nicht weiter auf Schritt 3 eingehen, da es sich hier lediglich“ um Gauß”
Ellimination in einer, zugegebenermaßen, sehr großen Matrix handelt. Um die numerischen Schwierigkeiten und weitere Probleme bei der Handhabung solch riesiger Matrizen z.B. das Speichern, wollen wir uns
in diesem Seminar jedoch nicht kümmern; ein kurzer Überblick findet sich in [LLMP93b]. Wir richten
unser Augenmerk daher auf die Schritte 1 und 2.
6.3 Die Idee des Algorithmus
Das Zahlkörpersieb basiert auf der Beobachtung, dass es möglich ist, einen Zahlkörper K = Q(α) und
einen Ringhomomorphismus ϕ : Z[α] → Z/nZ mit ϕ(α) = (m mod n) zu konstruieren, wobei α und
|m| klein sind im Vergleich zu n. Dabei wird die Größe“ von α in der Summe der Absolutbeträge der
”
Koeffizienten seines irreduziblen Polynoms gemessen, welche ganze Zahlen sind. Die Idee ist nun, Paare
von teilerfremden ganzen Zahlen a und b zu suchen, so dass sowohl a+bα als auch a+bm glatt sind, wobei
wir den Begriff Glattheit noch definieren müssen. Auf diese Weise erhalten wir ϕ(a+bα) = (a+bm mod n)
und damit eine Gleichheit von zwei Produkten in Z/nZ. Die Faktoren der beiden Produkte sind gerade
die Elemente der Faktorbasis und wir erhalten damit eine der von uns gesuchten Kongruenzen.
6.4 Konstruktion des Zahlkörpers Q(α) und des Homomorphismus ϕ
Um den Zahlkörper Q(α) und den Homomorphismus ϕ zu konstruieren, gehen wir wie folgt vor. Zunächst
wählen wir eine natürliche Zahl d, die als Grad der Körpererweiterung fungiert. Die optimale Wahl von
d hängt von der Größe von n ab. Bei aktuellen Faktorisierungen gilt i.d.R. d ∈ {4, 5, 6}. Sei dann k die
kleinste natürliche Zahl mit k · d ≥ e. Wir setzen weiter t = s · rk·d−e und f (X) = X d − t. Damit gilt
f (rk ) = rkd − t = rkd − s · rk·d−e = (re − s) · rk·d−e .
Also erfüllt m := rk die Kongruenz f (m) ≡ 0 mod n, da ja c · n = re − s mit kleinem c ∈ N gilt, n
also insbesondere f (m) teilt. Wir wählen nun ein α mit f (α) = 0 und definieren unseren Zahlkörper
K := Q(α).
Wir nehmen an, dass das Polynom f irreduzibel ist. Ist dies nicht der Fall, so finden mit der Zerlegung
von f entweder einen nichttrivialen Faktor von n, oder wir können n durch einen seiner irreduziblen
Faktoren ersetzen. Die Irreduziblität von f kann dabei schnell und einfach z.B. mit dem Eisensteinschen
”
Kriterium“ überprüft werden.
47
6 Das Zahlkörpersieb
Aus der Irreduziblität von f folgt, dass der Grad des Zahlkörpers
K tatsächlich gleich d ist und dass
Pd−1
jedes Element aus K eine eindeutige Darstellung der Form i=0 qi αi mit qi ∈ Q besitzt. Die Gestalt des
Ringhomomorphismus ϕ liefert der folgende
Satz 6.4.1. Sei f (X) ∈ Z[X] ein normiertes, irreduzibles Polynom vom Grad d mit komplexer Nullstelle
α. Außerdem gelte f (m) ≡ 0 mod n für ein m ∈ Z. Dann wird durch α 7→ m ein Ringhomomorphismus
φ : Z[α] → Z/nZ induziert. Umgekehrt wird jeder Ringhomomorphismus φ : Z[α] → Z/nZ durch eine
Nullstelle m von f (X) in Z/nZ induziert vermöge α 7→ m.
Beweis. Wegen der Irreduziblität von f , hat jedes Element β aus Z[α] eine eindeutige Darstellung der
Pd−1
Form β = i=0 si αi , mit si ∈ Z für alle i = 1, · · · , d − 1. Wir definieren das Bild von β unter φ als
Pd−1
Pd−1
i
φ(β) = φ( i=0 si αi ) :=
i=0 si m mod n. Damit ist klar, dass sowohl φ(β + γ) = φ(β) + φ(γ) für
β, γ ∈ Z[α], als auch φ(1) = 1 gilt. Die multiplikative Verträglichkeit von φ erhält man, da in Z[α] und
Z/nZ aufgrund von f (α) = 0 und f (m) ≡ 0 mod n analoge Reduktionsformeln gelten.
Sei umgekehrt φ : Z[α] → Z/nZ ein Ringhomomorphismus. Für α ∈ Z[α] gilt dann f (φ(α)) = φ(f (α)) =
φ(0) = 0. Mit m := φ(α) ∈ Z/nZ ist also f (m) ≡ 0 mod n. Da ein Homomorphismus von Z[α] durch das
Bild
von
α
bereits
eindeutig
beschrieben
ist,
folgt
die
Behauptung.
Wir sehen, dass einen Ringhomomorphismus von Z[α] nach Z/nZ anzugeben, nichts anderes ist, als
ein Element m ∈ Z zu finden, für das f (m) ≡ 0 mod n gilt.
Um die Darstellung des Algorithmus zu vereinfachen und übersichtlich zu gestalten, nehmen wir im
folgenden an, dass der Ring Z[α] ein Hauptidealring, also insbesondere faktoriell ist. D.h. für jedes Element
aus Z[α] existiert eine eindeutige Zerlegung in Primelemente. Es ist zu beachten, dass dies eine sehr starke
Forderung ist, die in den allermeisten Fällen nicht erfüllt ist. Im allgemeinen betrachtet man den Ring
der ganzen algebraischen Zahlen Oα in Q[α]. In Oα lässt sich tatsächlich jedes echte Ideal eindeutig, bis
auf die Reihenfolge, in ein Produkt von Primidealen zerlegen, siehe [Art98]. Weiterhin gilt Z[α] ⊆ Oα
und man kann zeigen, dass Z[α] = Oα genau dann gilt, wenn Z[α] ein Hauptidealring ist, vgl. [LLMP93]
und [Sch02].
Man beachte, dass wir in der oben beschriebenen Konstruktion von K und ϕ die spezielle Form von n
ausgenutzt haben. Bei allgemeinen n ist man in der Regel gezwungen, deutlich größere“ Zahlkörper zu
”
betrachten, die wesentlich schwerer zu handhaben sind. Insbesondere ist nicht sofort klar,wie man ein
geeignetes m und damit ϕ findet.
Bemerkung 6.4.2. Eine komplexe Zahl α heißt algebraisch, wenn sie Nullstelle eines Polynoms f (x) 6≡=
0 mit rationalen Koeffizienten ist. Eine algebraische Zahl α ist dann natürlich auch Nullstelle eines Polynoms mit ganzzahligen Koeffizienten. Man nennt die Zahl α ganze algebraische Zahl, wenn sie Nullstelle
eines normierten Polynoms mit ganzzahligen Koeffizienten ist.
6.5 Glattheit im Zahlkörper
Als nächstes wollen wir den Begriff der Glattheit definieren. Wir wissen bereits, dass eine natürliche Zahl
B-glatt ist, wenn alle ihre Primfaktoren kleiner oder gleich B sind. Um zu definieren wann eine ganze
algebraische Zahl B-glatt ist, müssen wir zunächst die Normabbildung auf Q[α] einführen. Wir haben
Pd−1
gesehen, dass wir jedes Element aus Q[α] eindeutig schreiben können als i=0 qi αi mit qi ∈ Q. Wir
identifizieren also jedes Element aus Q[α] mit einem Vektor (q0 , q1 , · · · qd−1 )T aus Qd . Sind nun zwei
Elemente β, γ ∈ Q[α] gegeben, mit β =
b (q0 , q1 , · · · qd−1 )T und γ =
b (p0 , p1 , · · · pd−1 )T , dann können diese
wie folgt miteinander multipliziert werden

 

q0
αd qd−1 · · · · · · αd q2
α d q1
p0

  p 
..
..
..
..
1 
 q1
.
.
.
.
α d q2 

 
 .. 
 ..

.
.
.
.
.

..
..
..
..
..   . 
 .
· . 
β·γ =
b
.
 .
  . 
.
.
.
.
.
.
.
.
.
.
.
 .
  . 
.
.
.
.

.

  . 

  . 
..
..
..
..
d
.
 q1
.
.
.
. α qd−1 
p
d−1
qd−1
qd−2
··· ···
q1
q0
Die Norm N (β) ist nun definiert, als Determinante der obigen Matrix. Für die Normabbildung gilt
N (βγ) = N (β) · N (γ) und N (1) = 1. Außerdem sieht man leicht, dass
N (a + bα) = ad − αd (−b)d = ad − t(−b)d ,
48
6 Das Zahlkörpersieb
denn f (α) = αd − t = 0. Eine ganze algebraische Zahl heißt nun B-glatt, wenn der Betrag ihrer Norm
B-glatt ist im üblichen Sinne. Insbesondere ist a + bα also B-glatt, wenn |ad − t(−b)d | ein Produkt von
Primzahlen kleiner oder gleich B ist.
6.6 Ideale, Primideale und Ideale vom Grad 1
Im folgenden sei p ∈ N stets eine Primzahl. Wir erinnern uns, dass eine Teilmenge von Z[α] ein Ideal
ist, genau dann wenn sie dem Kern eines Ringhomomorphismus entspricht, der auf Z[α] definiert ist. Ein
Primideal war dann folgendermaßen definiert:
Definition 6.6.1. Sei a 6= Z[α], (0) ein Ideal in Z[α]. Man nennt a ein Primideal, wenn aus a · b ∈ a mit
a, b ∈ Z[α] stets folgt, dass a ∈ a oder b ∈ a gilt.
Nun kann man zeigen, dass ein von Null verschiedenes Ideal p in Z[α] genau dann ein Primideal ist,
wenn es dem Kern eines Ringhomomorphismus von Z[α] in einen endlichen Körper entspricht, siehe
[LLMP93b] und [Sch02]. Kann der endliche Körper sogar als Primkörper Fp gewählt werden, so nennt
man das Ideal p ein Primideal vom Grad 1.
Aus dem Isomorphiesatz erhält man folgende Beziehung für ein Primideal p vom Grad 1:
Z[α]/p ∼
= Fp ,
Definiert man nun die Norm Na eines von Null verschiedenen Ideals a von Z[α] durch Na := #(Z[α]/a)
so ergibt sich die für uns entscheidende
Beobachtung 6.6.2.
⇔
Np = p
p ist Primideal vom Grad 1.
In Satz 6.4.1 haben wir gesehen, dass durch eine Primzahl p und c ∈ Z mit f (c) ≡ 0 mod p ein eindeutiger Ringhomomorphismus φp,c : Z[α] → Z/pZ gegeben ist (und umgekehrt). D.h. auch die Primideale
vom Grad 1 in Z[α] korrespondieren bijektiv mit solchen Paaren (p, c mod p). Wir wollen daher für ein
Primideal p vom Grad 1, das einem Paar (p, c mod p) entspricht, nun stets pp,c schreiben. Für p = pp,c
gilt damit Np = Npp,c = p und φp,c : Z[α] → Z/pZ bildet α auf (c mod p) ab. Mit der Abbildung φp,c
können wir außerdem überprüfen, ob ein gegebenes Element aus Z[α] in p enthalten ist. Es gilt:
X
X
si αi ∈ p ⇔
si ci ≡ 0 mod p .
(6.6.1)
i
i
Wir wollen nun ein Lemma beweisen, dass es uns ermöglichen wird, die Primidealzerlegung von (a +
bα)Z[α] auf die Primfaktorzerlegung von N (a + bα) ∈ Z zurückzuführen. Dabei nutzen wir eine besondere
Eigenschaft des Ringes der ganzen Zahlen Oα in unserem Zahlkörper Q[α].
Definition 6.6.3. Ein Ideal a teilt ein anderes Ideal b, wenn es ein Ideal c gibt, so dass b = a · c.
Tatsache 6.6.4. Es gilt a teilt b für Ideale a, b ∈ Oα genau dann, wenn b ⊆ a erfüllt ist.
Lemma 6.6.5. Seien a, b ∈ Z mit gcd(a, b) = 1. Dann ist jedes Primideal p, das a + bα enthält, vom
Grad 1.
Beweis. Sei p ein Primideal und es gelte a + bα ∈ p. Sei außerdem ψ ein Ringhomomorphismus von Z[α]
in einen endlichen Körper F so, dass p der Kern von ψ ist. Die Primzahl p sei die Charakteristik von F, so
dass also Fp ein Teilkörper von F ist. Wegen a + bα ∈ p, gilt ψ(a + bα) = 0, also auch 0 = ψ(a) + ψ(b)ψ(α)
und insbesondere
ψ(a) = −ψ(b)ψ(α).
(6.6.2)
Weiterhin gilt ψ(a), ψ(b) ∈ Fp , da a, b ∈ Z (vgl. Satz 6.4.1). Wäre nun ψ(b) = 0, hätten wir wegen (6.6.2)
auch ψ(a) = 0. Damit wären aber sowohl a als auch b durch p teilbar, im Widerspruch zu gcd(a, b) = 1.
Also gilt ψ(b) 6= 0 und wir erhalten ψ(α) = − ψ(a)
ψ(b) ∈ Fp . Aus ψ(α) ∈ Fp folgt nun, dass jedes Element aus
Z[α] nach Fp abgebildet wird. Folglich ist p der Kern eines Ringhomomorphismus von Z[α] nach Fp und
somit per Definition ein Primideal vom Grad 1.
Wir fassen die Ergebnisse der obigen Aussagen noch einmal kurz zusammen.
Folgerung 6.6.6. Seien a, b ∈ Z mit gcd(a, b) = 1. Dann ist jedes Primideal p, das (a + bα) teilt, vom
Grad 1. Wir schreiben daher p = pp,c und es gilt N(p) = N(pp,c ) = p.
49
6 Das Zahlkörpersieb
Die Primidealzerlegung von (a + bα) mit gcd(a, b) = 1 enthält also ausschließlich Primideale vom Grad
1. Für ein solches Primideal pp,c ergibt sich mit Gleichung 6.6.1 die folgende Implikationskette
pp,c | (a + bα)
⇔
(a + bα) ⊆ pp,c
⇔
a + bα ∈ pp,c
⇔
a + bc ≡ 0 mod p .
Hieraus erhält man
p | N (a + bα)
⇔
∃ pp,c :
pp,c | (a + bα)
⇔
a + bc ≡ 0 mod p .
Nun ist (c mod p) eindeutig durch a + bc ≡ 0 mod p bestimmt, also ist auch pp,c mit N(pp,c ) = p eindeutig
bestimmt. Insbesondere gibt es zu jedem Primfaktor p von N (a + bα) genau ein Primideal vom Grad 1
mit Norm p, das (a + bα) teilt. D.h. wenn ein Primfaktor p die Norm N (a + bα) genau k-mal teilt, so
teilt auch pp,c das Ideal (a + bα) genau zur k-ten Potenz.
Da wir angenommen haben, dass Z[α] ein Hauptidealring ist, existiert ein Element πp ∈ Z[α], welches
das Ideal p erzeugt. Es ist eindeutig, bis auf die Multiplikation mit einer Einheit. Um von der Primidealfaktorisierung von (a + bα) zur Primfaktorisierung von a + bα zu gelangen, genügt es daher, jeden
Primidealfaktor p durch seinen entsprechenden Erzeuger πp zu ersetzen und mit einer geeigneten Einheit
zu multiplizieren.
Damit können wir uns jetzt der Beschreibung der Schritte 1 und 2 den Zahlkörpersiebs widmen.
6.7 Schritt 1 des Zahlkörpersiebs - Auswahl der Faktorbasis
Wir wählen zunächst zwei Glattheitsgrenzen B1 und B2 . Dabei bestimmt man B1 und B2 , wie eigentlich
alle Parameter beim Zahlkörpersieb, am besten empirisch. Es scheint B1 = B2 die optimal Wahl zu
sein, wobei die Grenzen bei aktuellen Faktorisierungen etwa die Größenordnung 2 · 105 bis 106 besitzen,
abhängig von der Größe von n. B1 dient als Glattheitsgrenze für die ganzen Zahlen a + bm und B2 dient
als Glattheitsgrenze für die ganzen algebraischen Zahlen a + bα. Wir setzen:
• P ist die Menge aller Primzahlen ≤ B1 ;
• U ist eine Menge von Erzeugern der Einheitengruppe von Z[α];
• G ist die Menge aller πp ∈ Z[α], welche die Primideale vom Grad 1 von Z[α] mit Norm ≤ B2
erzeugen;
• I = P ∪ U ∪ G.
Damit ist die Faktorbasis wie folgt definiert:
F := {ϕ(i) ∈ Z/nZ : i ∈ I}.
Im weiteren setzen wir ai = ϕ(i) für die Elemente der Faktorbasis. Es ist klar, dass wir ohne Einschränkung
annehmen können, das gcd(ai , n) = 1, da wir sonst bereits einen Faktor von n gefunden hätten.
Auf die Frage, wie die Mengen U und G gefunden bzw. konstruiert werden können, werden wir hier
im Einzelnen nicht eingehen. In [LLMP93b] bzw. [LLMP93] wird gezeigt, dass dies mit einem einfachen
Brute-Force-Algorithmus“ in wenigen Stunden auf einem einzelnen Rechner zu schaffen ist.
”
6.8 Schritt 2 des Zahlkörpersiebs - Sammeln von Relationen
Wir beginnen zunächst mit der Wahl von zwei weiteren Glattheitsgrenzen B3 und B4 . Diese müssen
B3 ≥ B1 und B4 ≥ B2 erfüllen. Bei aktuellen Faktorisierungen wählt man meist B3 = B4 ≈ 108 . Um
jetzt Relationen zwischen den ai ∈ Z/nZ zu finden, sucht man nach Paaren von ganzen Zahlen (a, b), mit
b > 0, die folgenden Bedingungen genügen:
(i) gcd(a, b) = 1 ,
(ii) |a + bm| ist B1 -glatt mit Ausnahme von maximal einem zusätzlichen Primfaktor p1 , mit B1 < p1 <
B3 ,
(iii) a + bα ist B2 -glatt mit Ausnahme von maximal einem zusätzlichen Primidealfaktor p2 , mit B2 <
N(p2 ) = p2 < B4 .
50
6 Das Zahlkörpersieb
Wir gehen im folgenden ohne Einschränkung davon aus, dass a + bm > 0.
Die Primzahl p1 bezeichnet man dabei als large prime und das zusätzliche Primideal p2 als large prime
ideal. Tauchen die large prime, bzw. das large prime ideal nicht auf, so schreibt man symbolisch p1 = 1
bzw. p2 = 1. Paare (a, b) mit p1 = p2 = 1 nennt man full relations, alle anderen Paare heißen partial
relations. Obwohl das Betrachten von partial relations keinen Einfluss auf die theoretische Laufzeit hat,
wird das Zahlkörpersieb hierdurch erst praktikabel und bei aktuell zu faktorisierenden Zahlen besser
als andere Algorithmen. Der Grund hierfür ist, dass es deutlich mehr partial relations als full relations
gibt (Größenordnung 70-100 mal mehr), und man die partial relations mit nur geringem Mehraufwand
während der Suche nach full relations finden kann. Oft gibt es für eine Glattheitsgrenze B gar nicht genug
full relations, und es wäre deutlich aufwendiger und teurer ein größeres B zu wählen, als nach partial
relations zu suchen. Während jede full relation eine der von uns gesuchten Relationen liefert, müssen
mehrere partial relations kombiniert werden um eine nutzbare Relation zu erhalten. Nichtsdestoweniger
werden bei aktuellen Faktorisierungen etwa 80% der genutzten Relationen aus den gefundenen partial
relations konstruiert.
Bevor wir darauf eingehen, wie man die Paare (a, b) mittels Siebtechniken findet, wollen wir zunächst
klären, wie man aus den gefundenen full relations bzw. partial relations (d.h. aus den Paaren (a, b) mit
obigen Eigenschaften) Relationen zwischen den Elementen ai der Faktorbasis findet.
6.9 Full relations
Sei (a, b) eine full relation. Wegen (ii) gilt
a + bm =
Y
pe(p) ,
p∈P
mit e(p) ∈ Z≥0 . Aus (i), (iii) und dem Abschnitt 6.6 folgt
Y u(p)
Y
Y
a + bα = ε ·
πp =
ue(u) ·
g e(g) ,
p
u∈U
g∈G
mit e(u) ∈ Z und e(g) ∈ Z≥0 . Nach Konstruktion von ϕ gilt ϕ(a + bα) = a + bm = ϕ(a + bm) und damit
ergibt sich folgenden Identität in Z/nZ
Y
Y
Y
ϕ(p)e(p) =
ϕ(u)e(u) ·
ϕ(g)e(g) .
p∈P
u∈U
g∈G
Also gilt
Y
ϕ(p)e(p) ·
p∈P
Y
ϕ(u)−e(u) ·
u∈U
Y
ϕ(g)−e(g) = 1
g∈G
und wir erhalten eine Relation v = (vi )i∈I ∈ ZI zwischen den Elementen ai der Faktorbasis, indem wir
setzen:
(
e(i),
wenn i ∈ P
vi =
−e(i), wenn i ∈
/ P.
Da gcd(ai Q
, n) = 1 für i ∈ I, existieren sowohl ϕ(u)−e(u) als auch ϕ(g)−e(g) und wir haben eine Relation
der Form i∈I avi i = 1 gefunden.
6.10 Partial relations
Da man wie bereits erwähnt, relativ viele partial relations findet, ist es nicht unwahrscheinlich, dass
darunter einige mit identischer large prime“ bzw. large prime ideal“ auftauchen. Ist dies der Fall, sucht
”
”
man sogenannte Zykel, also eine Menge von partial relations C, so dass für alle (a, b) ∈ C ein s(a, b) ∈
{+1, −1} existiert, für das gilt
Y
Y
(a + bm)s(a,b) =
pe(p) ,
p∈P
(a,b)∈C
mit e(p) ∈ Z und
Y
(a,b)∈C
Y
(a + bm)s(a,b) =
u∈U
51
ue(u) ·
Y
g∈G
g e(g) ,
6 Das Zahlkörpersieb
mit e(u), e(g) ∈ Z. Dies bedeutet im Prinzip nicht anderes, als dass solche partial relations gesucht
werden, für die sich die large prime“ bzw. large prime ideal“ herausdividieren lassen. Man kann sich
”
”
die Suche nach solchen Zykeln als Suche nach Kreisen in einem Graphen vorstellen. Dabei stehen die
Knoten für die large primes p bzw. die large prime ideals p. Eine Kante zwischen p und p gibt an, dass
eine partial relation existiert, mit large prime p und large prime ideal p. Für eine partial relation, die nur
eine large prime oder nur ein large prime ideal besitzt, führt die enstprechende Kante zu einem zusätzlich
eingeführten Knoten mit dem label 1. In dem Graphen, der auf diese Weise aus allen partial relations
entsteht, ist es nicht nötig alle Kreis zu finden. Es genügt eine maximale Menge von Zykeln zu finden die
in einem geeigneten Sinne unabhängigen“ sind.
”
6.11 Free relations
Als free relation bzw. freie Relation bezeichnet man solche Relationen, die bereits vor der Anwendung
von ϕ im Ring Z[α] gültig sind. Man muss keine Siebmethoden bemühen, um diese Relationen zu finden
und bekommt sie daher sozusagen for free“. Man erhält eine solche free relation für jede Primzahl
”
p ≤ min{B1 , B2 }, für die das Polynom f (X) = X d − t komplett in Linearfaktoren modulo p zerfällt,
wenn also gilt
Y
Xd − t ≡
(X − c)ec mod p,
c
mit c ∈ Z paarweise verschieden modulo p. Wie zuvor gesehen, liefert jede Nullstelle c von f (modp) eine
Primideal p vom Grad 1. Setzt man nun e(p) = ec , so lässt sich zeigen, dass
Y
Y
e(p)
p=
ue(u) ·
πp
u∈U
p,Np=p
gilt, mit e(u) ∈ Z und man somit die Identität
Y
Y
ϕ(p) =
ϕ(u)e(u) ·
ϕ(πp )e(p)
u∈U
p,Np=p
erhält, welche wiederum die von uns gewünschte Form besitzt. Mit der Wahl d = 5 sind nur etwa 2.5%
der Relationen frei, so dass den free relations keine entscheidende Rolle im Algorithmus zukommt.
6.12 Das Sieben
Wir wollen in diesem Abschnitt näher auf die Suche nach den full und partial relations eingehen. Wir
müssen klären, wie Paare (a, b) von ganzen Zahlen gefunden werden können, die den oben genannten Bedingungen genügen. Natürlich könnte man für jedes mögliche Paar (a, b) per trial and error“ überprüfen,
”
ob die Bedingungen (i) bis (iii) erfüllt sind. Dies ist jedoch wenig effizient. Wie beim Quadratischen Sieb,
wollen wir nur die erfolgreichen Probedivisionen durchführen und greifen daher auf ein sehr ähnliches
Siebverfahren zurück.
Für ein feste natürliche Zahl b wollen wir alle Zahlen a + bm mit a ∈ [amin , amax ) auf B1 -Glattheit testen.
Für jede Primzahl p ≤ B1 gilt
p | a + bm
⇔
a ≡ −bm mod p .
Wenn also p | a∗ + bm für a∗ ∈ [amin , amax ), dann haben wir auch p | a∗ + k · p + bm für alle k ∈ Z. Also
genügt es, für jede Primzahl p ≤ B1 ein Intervall [a0 , a0 + 1, · · · , a0 + p − 1] ⊆ [amin , amax ) der Länge p
zu betrachten und darin alle a∗i mit p | a∗i + bm zu finden. Geht man nun von diesen a∗i in Schritten der
Länge p durch das Intervall [amin , amax ) so findet man leicht alle a mit p | a + bm. Nachdem man mit
allen Primzahlen p ≤ B1 gesiebt hat, kann man die Paare (a, b) identifizieren, bei denen eine gute Chance
besteht, dass (ii) erfüllt ist. Für diese viel versprechenden Paare muss man nun die entsprechenden Ausdrücke a + bα auf B2 -Glattheit untersuchen. Dabei kann man ein ganz analoges Siebverfahren anwenden,
da wir im Abschnitt 6.6 gesehen haben, dass ein Primideal pp,c vom Grad 1 den Ausdruck a + bα genau
dann teilt, wenn a ≡ −bc mod p gilt. Nur solche Paare (a, b), für die sowohl a + bm (nach dem ersten
Sieb) als auch a + bα (nach dem zweiten Sieb) mit hoher Wahrscheinlichkeit die Glattheitsbedingung (ii)
bzw. (iii) erfüllen, werden per Probedivison und gcd-Test weitergehend untersucht, ob sie tatsächlich eine
full bzw. eine partial relation liefern. Dieses Vorgehen wendet man nacheinander auf alle b ∈ [1, bmax ]
52
6 Das Zahlkörpersieb
an, wobei bmax nicht fest gewählt wird. Vielmehr fährt man so lange fort, größere b zu betrachten, bis
genug Paare (a, b) gefunden wurden. Dabei ist zu beachten, dass die Wahrscheinlichkeit gute Paare (a, b)
zu finden, für wachsendes b immer geringer wird. D.h. wenn B1 und B2 zu klein gewählt wurden, kann
es passieren, dass man nie genug Relationen finden wird. In diesem Fall müsste man mit neuen Grenzen
B1 und B2 von vorne beginnen.
Um zu verstehen, warum wir oben von viel versprechenden Paare“ gesprochen haben, muss man sich
”
einige Details der konkreten Implementierung des Siebschrittes klar machen. Zunächst wird anstatt zu dividieren, logarithmiert und subtrahiert, wodurch Rechenzeit gespart wird, aber aufgrund der begrenzten
Rechengenauigkeit auch Rundungsfehler auftreten können. Des weiteren werden i.A. keine Primzahlpotenzen gesiebt. Ebenso werden kleine Primzahlen entweder gar nicht gesiebt, oder aber es werden nur
kleine Potenzen dieser Primzahlen gesiebt. Hierbei wird sehr genau abgewägt zwischen dem zu erwartenden Erfolg und der zu investierenden Rechenzeit. Des weiteren muss die mögliche Existenz einer large
prime berücksichtigt werden.
6.13 Laufzeitanalyse
Wie zu Beginn kurz erwähnt, gibt es keine rigorosen Laufzeitanalysen für das Zahlkörpersieb. Aussagen
zur Laufzeit des Zahlkörpersiebs basieren auf plausiblen, aber noch nicht bewiesenen Annahmen. Da wir
hierauf im Rahmen dieses Vortrages nicht näher eingehen können, wollen wir uns auf die Präsentation der
wesentlichen Ergebnisse beschränken und auf die sehr ausführliche Darstellung in [LLMP93] verweisen.
Um die mutmaßliche Laufzeit des Zahlkörpersiebs zu beschreiben definieren wir
Lx [v, λ] := exp(λ(log x)v (log log x)1−v )
für reelle Zahlen x, v und λ mit x > e. In dieser Notation ist die mutmaßliche Laufzeit des Zahlkörpersiebs
in der speziellen Form, d.h. für ganze Zahlen der Form n = re − s, gegeben durch
#
" 1
1 32 3
,
+ o(1) .
Ln
3
9
Für ganze Zahlen allgemeiner Form erwartet man eine Laufzeit des Zahlkörpersiebs von
" 1
#
1 64 3
,
Ln
+ o(1) .
3
9
Damit ist das Zahlkörpersieb mutmaßlich deutlich schneller als das Quadratische Sieb, dessen vermutete
Laufzeit
1
Ln , 1 + o(1)
2
beträgt. Dabei liegt der Hauptunterschied der beiden Verfahren darin, dass das Quadratische Sieb Zahlen
1
der Größenordnung n 2 auf Glattheit untersucht, wohingegen das Zahlkörpersieb lediglich Zahlen der
o(1)
Größenordnung n
betrachtet.
53
Kapitel
7
Ein polynomieller Primzahltest
Erdmute Oehmke, 24.07.2007
Basierend auf: [AKS04]
7.1 Einleitung
Ist n eine Primzahl ?
Die Aufgabe von Primzahltests ist es, eine Antwort auf diese Frage zu finden. Doch warum ist diese
Fragestellung überhaupt von Interesse?
Primzahlen werden zum Beispiel vom RSA-Verschlüsselungsverfahren benutzt. Der Anwender muss sich
zwei große Primzahlen erzeugen, die ihm zur Ver- und Entschlüsselung dienen.
Wie aber lassen sich zwei solche Primzahlen erzeugen?
7.1.1 Das Sieb des Eratosthenes
Die einfachste Methode wäre wohl, eine große Zahl zu wählen und dann zu testen, ob sie sich durch
2,3,4,5,6,7 . . . teilen lässt. Der Aufwand zum Suchen beträgt also schon O(n). Verfeinert man diese Idee
ein wenig, so erhält man das Sieb des Eratosthenes:
• Ist n eine Primzahl?
• Schreibe alle Zahlen bis zur Zahl n

1
2
 11 12

 21 22

 31 32
...
• Streiche alle Vielfachen der Zahl 2:

1
2
 11 1
2

 21 2
2

 31 3
2
...
auf:
3
13
23
33
7
17
27
37
n
8 9
18 19
28 29
38 39
10
20
30
40

4
14
24
34
5
15
25
35
...
6
16
26
36
3 4
13 1
4
23 2
4
33 3
4
5
15
25
35
...

6
7 8
9 10

1
6 17 1
8 19 20


2
6 27 2
8 29 30


3
6 37 3
8 39 40
n





• Streiche alle Vielfachen der Zahl 3:







1
2 3 4
5
7 8
10
6
9 
15
1
6 17 1
8 19 20
11 1
2 13 1
4 

2
2 23 2
4 25 2
6 27
2
8 29 30
21


31 3
2 33
3
4 35 3
6 37 3
8 3
9 40
...
...
n
54
7 Ein polynomieller Primzahltest
• Streiche alle Vielfachen der Zahl 5:

1
2
 11 1
2

 2
2
 21
 31 3
2
...
3
13
23
33
5
7 8
4
6
1
4 15
1
6 17 1
8
24 25 26 27 2
8
3
4 35
3
6 37 3
8
...
n
9
19
29
3
9
10
20
30
40






√
• Fahre entsprechend bis ca. n fort, die Zahl n wurde entweder gestrichen (zusammengesetzt) oder
bleibt übrig (Primzahl). Da alle verbleibenden Zahlen Primzahlen sind, findet man also mit dem
Sieb des Eratosthenes sogar alle Primzahlen bis n.
Der Aufwand dieses Verfahrens
ist allerdings immer noch sehr hoch. Benutzt man das Vorgehen naiv, so
√
braucht man ungefähr O( n) Schritte plus die Streichungen“, falls n eine Primzahl ist.
”
7.1.2 Kleiner Satz von Fermat
Eine weitere, weniger aufwändige Methode benutzt den kleinen Satzes von Fermat:
Satz 7.1.1 (Kleiner Satz von Fermat).
Wenn p Primzahl ⇒ ap ≡ a (mod p)
(7.1.1)
Man kann nun für einige a die Behauptung für eine Zahl n überprüfen. Ist die Kongruenz nicht erfüllt,
so weiß man sicher, dass n eine zusammengesetzte Zahl ist. Mit hoher Wahrscheinlichkeit ist n eine
Primzahl, falls die Kongruenz erfüllt ist. Leider kann man sich in diesem Fall aber nicht sicher sein,
denn die umgekehrte Implikation gilt nicht. Es gibt sogar eine ganze Klasse von Zahlen, die sogenannten
Carmichael-Zahlen, die die Kongruenz für alle a erfüllen, aber keine Primzahlen sind.
7.2 Grundidee
Der AKS Primzahltest beruht auf einer groben Verallgemeinerung des kleinen Satzes von Fermat. Der
folgende Satz beschreibt die Grundidee
Satz 7.2.1 (Identität von Primzahlen). Seien a ∈ Z und n ∈ N, sodass ggT(a, n) = 1 und n ≥ 2, dann
gilt:
n ist Primzahl ⇔ (X + a)n ≡ (X n + a) (mod n).
(7.2.1)
Beweis. Betrachten wir (X + a)n − (X n + a) und formen zunächst wie folgt um:
(X + a)n − (X n + a) =
n−1
n X n X
n n−i i
n
an−i X i + X n − (X n + a) =
a X − (X + a) =
i
i
i=0
i=0
n−1
n−1
X n X n an−i X i − a =
an−i X i + an − a.
i
i
i=0
i=1
Dabei werden, falls n eine Primzahl ist, alle Koeffizenten der X i für 1 ≤ i ≤ n − 1 zu 0. In diesem Fall
gilt nämlich:
n
n!
(n − 1)(n − 2) . . . (n − i + 1)
=
=n
∈N
i
i!(n − i)!
i!
n
⇒
≡ 0 (mod n)
i
und i!kürzt sich aus dem oberen Produkt heraus, jedoch nicht mit n, da n Primzahl ist und i kleiner n
ist. ni enthält also n als Faktor und ist somit kongruent zu 0 (mod n).
Es bleibt noch zu zeigen:
!
an − a ≡ 0
55
(mod n)
7 Ein polynomieller Primzahltest
Dies sagt uns aber gerade der kleine Satz von Fermat. Für n prim ist die Kongruenz (7.2.1) also erfüllt.
Sei n nun keine Primzahl, sondern n = mq k , wobei q ein Primfaktor von n ist und m nicht teilt. Betrachte
n
q :
n
n!
(n − 1)(n − 2) . . . (n − q + 1)
=
=n
=
q
q!(n − q)!
q!
(n − 1)(n − 2) . . . (n − q + 1)
mq k−1
(q − 1)!
Dieser Term ist durch q k−1 , aber nicht durch q k teilbar und somit nicht kongruent zu 0 (mod n). Auch
ist ggT(q k ,an−q )=1, da ggT(a, n) = 1 nach
Voraussetzung.
D.h. der Koeffizient von X q , nämlich nq an−q , wird nicht 0 (mod n) und somit ist die Kongruenz (7.2.1)
nicht erfüllt.
Mit Hilfe dieser Identität lässt sich also sicher feststellen, ob n prim ist oder nicht und nicht nur mit
großer Wahrscheinlichkeit vermuten.
Leider nimmt dieser Test sehr viel Zeit in Anspruch, denn es müssen ja n Koeffizienten erst ausgerechnet
und anschließend getestet werden.
Die Anzahl der Koeffizienten kann folgendermaßen reduziert werden:
Statt (7.2.1) löse die folgende Kongruenz:
(X + a)n ≡ X n + a (mod X r − 1, n)
(7.2.2)
Wenn ein n (7.2.1) erfüllt, so auch (7.2.2).
Nun können allerdings nicht mehr beliebige a und r benutzt werden, denn sonst würde auch ein zusammengesetztes n unter Umständen (7.2.2) erfüllen. Überraschenderweise ist es jedoch möglich, die Wahl so
zu treffen, dass der gewünschte Effekt erzielt wird, ohne Ergebnisse zu verlieren. Dazu müssen zu einem r,
2
das
k ist (hier r : or (n) > log n), nur eine bestimmte Anzahl von Werten für a (hier höchstens
jp groß genug
φ(r) log n viele) getestet werden.
Das zusätzliche Reduzieren der Kongruenz (mod X r − 1) spart Rechenaufwand, denn der Höchstgrad
beim Ausmultiplizieren von (X + a)n ist nun r. Es wird also Speicherplatz gespart und somit auch der
Rechenaufwand reduziert.
Auch beim Berechnen der Potenzen kann mit Hilfe des sukzessiven Quadrierens noch einmal Rechenaufwand gespart werden.
7.3 Der Algorithmus
Input: n ∈ Z mit n ≥ 1
(i) If (n = ab für a ∈ N und b > 1) then output COMPOSITE
(ii) Finde das kleinste r, sodass die Ordnung von n (mod r) > log2 n ist
(iii) If 1 < ggT(a, n) < n für ein a < r then output COMPOSITE
(iv) If n ≤ r then output PRIME
p
(v) For a = 1 to b = φ(r) log nc do
if (X + a)n 6= (X n + a (mod X r − 1) (mod n)) then output COMPOSITE
(vi) Output PRIME
7.4 Korrektheit des Algorithmus
Satz 7.4.1 (Korrektheit). Der Algorithmus gibt PRIME aus ⇔ n ist Primzahl
Es ist leicht zu verifizieren, dass die Ausgabe bei Eingabe einer Primzahl PRIME ist. Schwieriger ist es
zu beweisen, dass falls die Ausgabe PRIME ist die Eingabe auch wirklich eine Primzahl war.
56
7 Ein polynomieller Primzahltest
7.4.1 Schritt 1
Falls n die nichttriviale Potenz einer Zahl a ist, so ist die Ausgabe COMPOSITE und n war keine Primzahl.
Falls dies nicht der Fall, also n prim oder Produkt von verschiedenen Zahlen ist, bleibt der erste Schritt
bedeutungslos.
7.4.2 Schritt 2
Die Existenz eines solchen r wird durch das folgende Lemma sichergestellt:
Lemma 7.4.2. Es existiert ein r ≤ max 3, log5 n sodass or (n) > log2 n ist.
Bis zu dieser
Zahl
muss also in Schritt 5 getestet werden, deshalb ist es wichtig, dass r klein ist, nämlich
höchstens log5 n .
7.4.3 Schritt 3
Falls der ggT(a, n) nicht 1 ist, so enthält n einen nichttrivialen Faktor und ist keine Primzahl, es folgt
die Ausgabe COMPOSITE.
Falls n eine Primzahl ist, kann ggT(a, n) nicht zwischen 1 und n liegen.
7.4.4 Schritt 4
Nach Lemma 1 ist r ≤ log5 n . Für n ≤ 5, 690, 034 ist log5 n ≥ n. Falls nun der Fall eintritt, dass n
kleiner oder gleich r ist, muss n Primzahl sein, da ja in Schritt 3 bis r geprüft wurde.
Dieser Schritt ist also nur für n ≤ 5, 690, 034 relevant, sei aber der Vollständigkeit halber erwähnt.
7.4.5 Schritt 5
Schritt 5 ist der Kern des Algorithmus. Satz 7.2.1 garantiert bereits, dass die Kongruenz für Primzahlen
erfüllt ist, es also nicht zur Ausgabe COMPOSITE kommen kann, falls die Eingabe eine Primzahl ist.
Wesentlich aufwändiger ist nun zu zeigen, dass es für eine zusammengesetzte Zahl wirklich immer zur
richtigen Ausgabe COMPOSITE kommt.
Es muss nun also gezeigt werden, dass für ein zusammengesetztes n dieser Schritt immer ein Paar (a, r)
produziert, für das die Kongruenz (3) nicht erfüllt ist.
Falls es in Schritt
jp 5 nicht zur
k Ausgabe COMPOSITE kommt, so wurden l Kongruenzen der Form (7.2.2)
geprüft mit l =
φ(r) log n .
Da or (n) > log2 n ist or (n) > 1, es muss also ein Primteiler p von n existieren, sodass or (p) > 1
(insbesondere kann auch p = n sein). Desweiteren ist p > r, da sonst Schritt 3 bzw. Schritt 4 eine
Ausgabe geliefert hätten. Deshalb gilt auch ggT(n, r) = 1 und schließlich sind p, n ∈ Z∗r .
Es gilt nun also für jedes a, 0 ≤ a ≤ l
(X + a)n = X n + a (mod X r − 1, n)
(7.4.1)
Da p ein Primteiler von n ist gilt ebenfalls:
(X + a)n = X n + a (mod X r − 1, p)
(7.4.2)
(X + a)p = X p + a (mod X r − 1, p)
(7.4.3)
Aus Satz 2 folgt desweiteren:
Aus den obigen beiden Gleichungen ergibt sich auch:
n
n
(X + a) p = X p + a (mod X r − 1, p)
n und
n
p
verhalten sich hier also wie p, sie sind introspektiv:
Definition 7.4.3. Für ein Polynom f (X) und eine Zahl m , heißt m introspektiv zu f (X), falls
(f (X))m = f (X m )
57
(mod X r − 1, p).
(7.4.4)
7 Ein polynomieller Primzahltest
Lemma 7.4.4. Wenn m und m0 introspektiv zu f (X) sind, so auch mm0 .
Beweis. Da m introspektiv zu f (X) ist, gilt:
0
0
(f (X))mm = (f (X m ))m
(mod X r − 1, p)
und da andererseits m0 introspektiv zu f (X) ist, gilt ebenfalls:
0
0
(f (X))m = f (X m )
(mod X r − 1, p)
0
0
⇒ (f (X m ))m = f ((X m )m )
0
0
⇒ (f (X m ))m = f (X mm )
(mod X mr − 1, p) , mit X substituiert durch X m
(mod X r − 1, p) , da X r − 1 auch X rm − 1 teilt.
Es folgt also aus obigen Rechnungen:
0
0
0
(f (X))mm = (f (X m ))m = f (X mm )
(mod X r − 1, p).
Lemma 7.4.5. Wenn m introspektiv ist zu Polynomen f (X) und g(X), so auch zu ihrem Produkt
f (X)g(X).
Beweis.
(f (X)g(X))m = (f (X))m (g(X))m = f (X m )g(X m ) (mod X r − 1, p).
n
o
Definiere I = ( np )i pj : i, j ≥ 0 eine Menge von Zahlen, und
o
nQ
l
ea
: ea ≥ 0 eine Menge von Polynomen. Insbesondere sind die Mengen I und P
P =
a=0 (X + a)
Halbgruppen, denn beliebige Produkte ihrer Elemente liegen jeweils wieder in der Menge, und es existieren
ebenfalls neutrale Elemente (die 1). Lemma 7.4.4 und Lemma 7.4.5 besagen, dass alle Zahlen der Menge
I introspektiv zu allen Polynomen der Menge P sind.
Anhand dieser beiden Mengen werden nun zwei Gruppen G und G konstruiert mit deren Hilfe der
Beweis zu ende geführt wird. Die Konstruktion von G benutzt sogenannte Kreisteilungspolynome:
Definition 7.4.6 (Kreisteilungspolynome). Ein Polynom Qr (X), das X r − 1 teilt und teilerfremd zu
allen X d − 1 mit d < r ist, heißt r-tes Kreisteilungspolynom.
Lemma 7.4.7 (Eigenschaften). Ein Kreisteilungspolynom Qr (X) besitzt folgende Eigenschaften:
(i) Teilt man X r − 1 durch Qr (X), so ist das Ergebnis ein Produkt irreduzibler Polynome.
(ii) Das Polynom Qr (X) ist Minimalpolynom jeder primitiven n-ten Einheitswurzel.
Definiere G als die Menge aller Restklassen von Zahlen aus I (mod r). Versehen mit der vom Ring Z/r Z
induzierten Multiplikation ist dies eine Gruppe, sogar eine Untergruppe der Einheitengruppe (Z/r Z)∗ ,
denn es gilt ggT(n, r) = ggT(p, r) = 1. Da G von n und p (mod r) erzeugt wird, und da or (n) > log2 n
ist, so ist auch |G| = t > log2 n.
Definiere G als die Gruppe, die von den Polynomen X, X + 1, X + 2, . . . , X + l in Fp [X] /(h(X)) erzeugt
wird. Das Polynom h(X), soll dabei folgende Eigenschaften haben:
Sei Qr (X) das r-te Kreisteilungspolynom über Fp . Das Polynom Qr (X) teilt X r − 1 so, dass der Quotient
aus irreduziblen Polynomen besteht, die die Ordnung or (p) haben. Sei h(X) ein solches Polynom. Da
or (p) > 1 hat auch h(X) mindestens den Grad 2.
Eine untere Schranke für die Größe von G liefert folgendes Lemma:
t+l
Lemma 7.4.8. |G| ≥ t−1
.
Falls n keine Potenz von p ist, insbesondere also falls n 6= p, so liefert folgendes Lemma eine obere
Schranke für die Größe von G:
√
Lemma 7.4.9. Falls n keine Potenz von p ist, dann |G| ≤ n
58
t
.
7 Ein polynomieller Primzahltest
Beweis. Betrachte die folgende Teilmenge von I:
j√ k
n i j
e
t
I = ( ) p : 0 ≤ i, j ≤
p
√ Falls n keine Potenz von p ist, so hat die Menge Ie die Größe( t +1)2 > t. Da |G| = t müssen mindestens
zwei Zahlen in Ie gleich sein (mod r). Seien diese beide Zahlen m1 und m2 mit m1 > m2 . Es ist dann
also:
X m1 = X m2 (mod X r − 1)
Sei f (X) ∈ P , dann gilt:
(f (X))m1 ≡ f (X m1 ) ≡ f (X m2 ) ≡ (f (X))m2
In Fp [X]/h(x) ist also:
(mod X r − 1, p)
(f (X))m1 = ((f (X))m2
Deswegen ist f (X) ∈ G eine Wurzel des Polynoms Q0 (Y ) = Y m1 − Y m2 in Fp [X]/h(x). Da f (X) ein
0
beliebiges Element von G √
ist, hat Q
(Y ) mindestens |G| √verschiedene Wurzeln in Fp [X]/h(x). Der Grad
√
n b tc
0
b
von Q (Y ) ist m1 ≤ ( p p)
≤ n tc . Also ist |G| ≤ nb tc .
Mit Hilfe dieser Größenabschätzungen für G kann das gewünschte Ergebnis gezeigt werden:
Lemma 7.4.10. Wenn der Algorithmus PRIME ausgibt, ist n Primzahl.
Beweis.
der Algorithmus gibt PRIME aus. Lemma 7.4.8 besagt, dass für t = |G| und
jp Angenommen,
k
l=
φ(r) log n :
t+l
|G| ≥
t−1
√
Aus |G| = t > log2 n folgt t > t log n, somit gilt:
√
t log n
l+1+
t+l
√
≥
t−1
t log n
k
jp
√
φ(r) log n ist und φ(r) ≥ t, ist l ≥
t log n und es gilt die Abschätzung:
Da l =
Weil
√
√
√
l+1+
t log n
2 t log n + 1
√
√
≥
t log n
t log n
t log n > log2 n ≥ 1 lässt sich dieser Binomialkoeffizient wie folgt abschätzen:
√
√
2 t log n + 1
√
> 2b t log nc+1
t log n
Schließlich gilt:
2b
√
t log nc+1
√
≥n
t
√
Also zusammenfassend: |G| > n t .√
Lemma 7.4.9 besagt, dass |G| ≤ n t , falls n keine Potenz von p ist, n muss also eine p-Potenz sein. Da
p ≤ n muss p = n, denn sonst hätte schon Schritt 1 n als zusammengesetzte Zahl identifiziert.
Hiermit ist Satz 7.4.1 und also die Korrektheit des Algorithmus bewiesen.
59
7 Ein polynomieller Primzahltest
7.5 Komplexität
Es kann davon ausgegangen werden, dass Addition, Division und Multiplikation von zwei m-bit Zahlen
O(m poly(log m) benötigt. Diese Operationen benötigen für Polynome vom Grad d deren Koeffizienten
höchsten m-bit große Zahlen sind O(md poly(log md)).
• Die Komplexität von Schritt 1 ist O(log3 n poly(log(log3 n))). Einfaches Nachrechnen.
• Die Komplexität von Schritt 2 ist O(log7 n poly(log(log7 n))). Es kann sukzessive für höchstens
O(log5 n) verschiedene r-Werte getestet werden, ob nk 6= 1 (mod r) ist für k ≤ log2 n. Jedes r
braucht also höchstens O(log2 n) Multiplikationen.
• Die Komplexität von Schritt 3 ist O(log6 n). Es muss der ggT für r verschiedene Zahlen berechnet
werden.
• Die Komplexität von Schritt 4 ist O(log n).
jp
k
• Die Komplexität von Schritt 5 ist O(log21/2 n poly(log(log21/2 n))). Es müssen
φ(r) log n Gleichungen geprüft werden in denen jeweils Polynome vom Grad r auftauchen deren Koeffizienten Größe O(log n) haben. Jede einzelne Gleichung kann also in O(r log2 n poly(log(r log2 n)) Schritten gelöst werden. Da φ(r) ≤ r und r ≤ log5 n braucht Schritt 5 also insgesamt O(log21/2 n poly(log(log21/2 n)))
Schritte.
Schritt 5 besitzt die größte Komplexität und stellt die Komplexität des gesamten Algorithmus dar.
60
Kapitel
8
Das XTR Public Key System
Markus Schupp, 25.07.2007
Basierend auf: [LV00]
8.1 Einführung
XTR ist eine Schreibweise für
Efficient and Compact Subgroup Trace Representation“ (ECSTR).
”
Die Methode beschreibt eine Darstellung der Elemente bestimmter Untergruppen der multiplikativen
Gruppe eines endlichen Körpers. Durch Verwendung dieser Darstellung werden die benötigten Rechnungen vereinfacht und Speicherplatz gespart, ohne dass die Sicherheit verringert wird.
Aufgrund der Effizienz des Verfahrens wird das Verfahren häufig als Alternative zu elliptischen Kurven
betrachtet. Daher heißt es gerüchteweise, dass ECSTR eigentlich folgendes bedeute:
Elliptic Curves Soon To Retire“
”
Wir beginnen mit dem mathematischen Hintergrund des Verfahrens.
8.2 Darstellung der Elemente einer Untergruppe
Im Folgenden sei p immer eine Primzahl, so dass p ≡ 2 (mod 3). Weiter sei g ∈ Fp6 ein Element der
Ordnung q, so dass q prim ist und q|p2 − p + 1.
8.2.1 Definitionen und Grundlagen
Wir betrachten den Körper Fp6 . Dieser hat folgende Unterkörper:
• Fp = x ∈ Fp6 |xp = x ,
n
o
2
• Fp2 = x ∈ Fp6 |xp = x ,
n
o
3
• Fp3 = x ∈ Fp6 |xp = x ,
n
o
6
• Fp6 = x ∈ Fp6 |xp = x .
Da Fp6 Charakteristik p hat, gelten für alle x, y ∈ Fp6 und alle a, b ∈ Z weiterhin folgende Gleichungen:
(x + y)p = xp + y p ,
(xap + y bp ) = (xa + y b )p .
Darüber hinaus betrachten wir Untergruppen der multiplikativen Gruppe F∗p6 . Wir wissen, dass
61
8 Das XTR Public Key System
∗ Fp6 = p6 − 1 = (p − 1) (p + 1) p2 + p + 1 p2 − p + 1 .
Wir betrachten nun verschiedene Ordnungen von Untergruppen von F∗p6 . Untergruppen,
• deren Ordnung (p − 1) teilt, lassen sich in Fp einbetten,
• deren Ordnung (p + 1) teilt, lassen sich in Fp2 einbetten,
• deren Ordnung p2 + p + 1 teilt, lassen sich in Fp3 einbetten,
da F∗p2 = p2 − 1 = (p − 1) (p + 1) und F∗p3 = p3 − 1 = (p − 1) p2 + p + 1 . Untergruppen, deren prime
Ordnung q Teiler von p2 − p + 1 ist, lassen sich in keinen echten Unterkörper von Fp6 einbetten. (Siehe
[Len97])
Definition 8.2.1 (XTR Gruppe und XTR Supergruppe). XTR verwendet folgendes System von Untergruppen von F∗p6 :
hgi ⊂ U ⊂ F∗p6 .
Hier ist U die Untergruppe von F∗p6 der Ordnung p2 − p + 1 . Diese Gruppe wird als XTR Supergruppe
bezeichnet.
g ist ein Element der primen Ordnung q. Die von g erzeugte Gruppe hgi wird als XTR (Unter)gruppe
bezeichnet.
Der kleinste Körper F, für welchen hgi eine Untergruppe von F∗ ist, ist der Körper Fp6 . Hiermit kann
man zeigen, dass die Berechnung von diskreten Logarithmen in hgi genauso schwierig ist, wie im Körper
Fp6 (siehe [LV00, Section 5.1]). In Abschnitt 8.4 findet sich mehr zum Thema Sicherheit.
8.2.2 Die Spur
Definition 8.2.2 (Konjugierte). Sei h ein Element einer Körpererweiterung L ⊃ K. Dann sind die
Konjugierten von h die Wurzeln des Minimalpolynoms p ∈ K[x] von h.
2
4
Tatsache 8.2.3. Sei h ∈ Fp6 . Die Konjugierten zu h über Fp2 sind h, hp und hp . Weiterhin gelten
folgende Gleichungen:
p2 ≡ p − 1
p4 ≡ −p
(mod p2 − p + 1),
(mod p2 − p + 1).
2
4
Hat g daher die Ordnung q|p2 −p+1, so kann man für die Konjugierten auch g, g p = g p−1 und g p = g −p
schreiben.
Definition 8.2.4 (Spur). Sei h ∈ Fp6 . Die Spur von h über Fp2 ist die Summe der Konjugierten zu h
über Fp2 :
2
4
Tr(h) = h + hp + hp .
Hat g die Ordnung q, so gilt darüberhinaus
2
4
Tr(g) = g + g p + g p = g + g p−1 + g −p .
Bemerkung 8.2.5.
(i) Tr(h) ∈ Fp2 , da folgendes gilt:
2
6
4 p
2
4
2
2
hp = Tr(h).
Tr(h)p = h + hp + hp
= hp + hp + |{z}
=h
(ii) Die Spur ist eine Fp2 -lineare Abbildung. Für h1 , h2 ∈ Fp6 und c ∈ Fp2 gilt
Tr(h1 + h2 ) = Tr(h1 ) + Tr(h2 ) und Tr(c · h1 ) = c · Tr(h1 )
Lemma 8.2.6. Die Wurzeln des Polynoms
62
8 Das XTR Public Key System
p
x3 − Tr (g) x2 + (Tr (g)) x − 1
sind g und seine Konjugierten, also g, g p−1 und g −p .
Beweis. Wir vergleichen die Koeffizienten des obigen Polynoms mit den Koeffizienten von
(x − g) x − g p−1 (x − g −p )
Absolutglied: (−g) −g p−1 (−g −p ) = −g 1+p−1−p = −g 0 = −1.
x-Koeffizient: (−g) −g p−1 + (−g) (−g −p ) + −g p−1 (−g −p ) = g p + g −p+1 + g −1 =
p
2
2
p
= g p + g −p + g p −p = g + g −p + g p−1 = (Tr(g)) .
x2 -Koeffizient: (−g) + −g p−1 + (−g −p ) = − Tr(g).
Somit sind alle Koeffizienten gleich, so dass die beiden Polynome identisch sein müssen.
Folgerung 8.2.7. Für alle n ∈ Z sind die Wurzeln des Polynoms
p
x3 − Tr (g n ) x2 + (Tr (g n )) x − 1
die Konjugierten von g n .
Beweis. Man wendet die gleiche Technik an, wie im Beweis von Lemma 8.2.6
Schreibweise 8.2.8. Für ein beliebiges c ∈ Fp2 bezeichnen wir das Polynom
x3 − cx2 + cp x − 1 ∈ Fp2 [x]
mit Fc (x).
Mit der Spur Tr(g n ), die in Fp2 liegt, erhält man eine Darstellung der Konjugierten von g n in Fp6 . Da
Polynome über endlichen Körpern effizient faktorisierbar sind, kann man aus dem Polynom FTr(gn ) (x)
die Werte g n und seine Konjugierten berechnen. Durch diese Darstellung ergeben sich einige Vorteile.
Zum einen finden alle Rechnungen in Fp2 statt, was den Rechenaufwand reduziert. Zum anderen ist der
Speicherbedarf geringer.
Um nun die Spurdarstellung“ für konkrete Anwendungen benutzen zu können, entwickeln wir im Fol”
genden einen effizienten Algorithmus, der Tr(g n ) aus den Werten Tr(g) und n berechnen kann. Hierfür
betrachten wir das allgemeine Polynom Fc (x).
8.2.3 Das Polynom Fc (x)
Definition 8.2.9. Seien h0 , h1 , h2 ∈ Fp6 Nullstellen des Polynoms Fc (x). Für n ∈ Z definieren wir
cn := hn0 + hn1 + hn2
als Summe der n-ten Potenzen der Wurzeln von Fc (x).
Bemerkung 8.2.10. Laut Korollar 8.2.7 sind die Nullstellen von FTr(gn ) (x) genau g n und seine Konjugierten. Weiterhin sind die Konjugierten von g n genau die n-ten Potenzen der Konjugierten von g, so
dass aus c = Tr(g) folgt, dass cn = Tr(g n ).
Lemma 8.2.11. Sei n ∈ Z, c ∈ Fp2 und seien h0 , h1 , h2 die Wurzeln von Fc (x). Dann gilt
(i) c0 = 3, c = c1 .
(ii) h0 · h1 · h2 = 1.
(iii) hn0 · hn1 + hn0 · hn2 + hn1 · hn2 = c−n .
(iv) Für j = 0, 1, 2 sind neben den hj auch die h−p
Nullstellen von Fc (x), d.h. Fc h−p
= 0.
j
j
(v) c−n = cnp = cpn .
(vi) Entweder sind alle Ordnungen von h0 , h1 , h2 größer als 3 und teilen p2 − p + 1 oder alle Wurzeln
h0 , h1 , h2 liegen in Fp2 .
(vii) cn ∈ Fp2 .
63
8 Das XTR Public Key System
Beweis. Es gilt Fc (x) = x3 − cx2 + cp x − 1 = (x − h0 ) (x − h1 ) (x − h2 )
(i) c0 = h00 + h01 + h02 = 1 + 1 + 1 = 3.
Vergleicht man c1 = h0 + h1 + h2 mit dem x2 -Koeffizienten in der obigen Gleichung, so folgt, dass
c = c1 .
(ii) Dies folgt durch Koeffizientenvergleich des Absolutglieds in obiger Gleichung.
(iii) Da h0 · h1 · h2 = 1 gilt, folgt
n
n
−n
−n
c−n = c−n (h0 · h1 · h2 ) = h−n
(h0 · h1 · h2 ) = hn1 · hn2 + hn0 · hn2 + hn0 · hn1 .
0 + h1 + h2
64
8 Das XTR Public Key System
(iv) Da Fc (0) = −1, folgt, dass hj 6= 0. Daher existieren die Inversen h−1
j . Da für c ∈ Fp2 gilt, dass
2
cp = c, folgt:
p
3p
−2p
−3p
−p p 2p
p2 p
p −p
0 = Fc (hj ) = h3p
−
c
h
+
c
h
−
1
=
−h
−1
+
c
h
−
ch
+
h
= −h3p
.
j
j
j
j
j
j
j
j Fc h j
Da hj 6= 0, folgt die Behauptung.
(v) Aus (iv) folgt, dass o.B.d.A. einer der folgenden Fälle vorliegt:
• hj = h−p
für j = 0, 1, 2,
j
−p
−p
• h0 = h−p
0 , h1 = h2 und h2 = h1 ,
−p
−p
• h0 = h−p
1 , h1 = h2 und h2 = h0 .
In all diesen Fällen gilt
2
P
j=0
cpn
2
P
hnp
j =
j=0
2
P
=
j=0
h−n
j , so dass
!p
hnj
=
2
P
j=0
2
P
hnp
j = cnp =
j=0
h−n
= c−n .
j
(vi) Mit der gleichen Fallunterscheidung erhalten wir folgendes:
p+1
• Ist hj = h−p
= 1. Dann liegen die Wurzeln alle in Fp2 , da
j , so folgt hj
2
(p+1)(p−1)+1
hpj = hj
= 1(p−1) · hj = hj .
−p
−p
• Ist h0 = h−p
0 , h1 = h2 und h2 = h1 , so gilt hj ∈ Fp2 , da
2
hp0
2
hp1
2
hp2
= h0 ,
=
=
h−p
1
−p
−p −p
h2
= h−p
2 = h1 und
= h−p
1 = h2
−p
−p
• Ist h0 = h−p
1 , h1 = h2 und h2 = h0 , so folgt
2
2
−p
p
−p
p
1 = h0 · h1 · h2 = h0 · h−p
2 · h 0 = h0 · h0 · h0 = h0
−p+1
.
Dies gilt auch für h1 und h2 . Damit folgt, dass die Ordnungen der hj den Wert p2 − p + 1
teilen.
Angenommen (o.B.d.A.) die Ordnung ord(h0 ) ≤ 3. Weil p2 − p + 1 ungerade ist, folgt, dass
ord(h0 ) 6= 2. Damit folgt ord(h0 )|3. Da p2 − 1 ≡ 0 (mod 3) gilt, dass ord(h0 ) Teiler von p2 − 1
ist. Somit folgt, dass h0 in Fp2 liegt. Nach unseren Voraussetzungen gilt dann:
2
3
hp2 = h−p
= h−p
0
0 = h2
und
2
3
hp1 = h2−p = h−p
2 = h1 .
Ist also eine der Ordnungen ord(hj ) ≤ 3, so folgt direkt, dass alle hj in Fp2 liegen.
(vii) Liegt eine der Wurzeln hj in Fp2 , so folgt nach Punkt (vi), dass h0 , h1 , h2 ∈ Fp2 , so dass cn =
hn0 + hn1 + hn2 ∈ Fp2 .
2
4
Im anderen Fall ist Fc (x) irreduzibel über Fp2 , so dass die Wurzeln h0 , hp0 und hp0 sind. Dann folgt
2
4
cn = hn0 + hn1 + hn2 = h0 + hp0 + hp0 = Tr(hn0 ) ∈ Fp2 .
Aus Punkt (vi) des Lemmas ergibt sich direkt folgendes
Folgerung 8.2.12. Das Polynom Fc (x) ∈ Fp2 [x] ist genau dann irreduzibel über Fp2 , wenn die Ordnungen
seiner Wurzeln größer als 3 sind und p2 − p + 1 teilen.
Lemma 8.2.13.
(i) Die Wurzeln von Fcn (x) sind n-te Potenzen der Wurzeln von Fc , (x),
d.h. Fcn hnj = 0.
65
8 Das XTR Public Key System
(ii) cu+v = cu · cv − cpv · cu−v + cu−2v .
(iii) Fc (x) ist genau dann reduzibel über Fp2 , wenn cp+1 ∈ Fp .
Beweis.
(i) Wir vergleichen die Koeffizienten von Fcn (x) und (x − hn0 ) (x − hn1 ) (x − hn2 ).
n
n
Absolutglied: hn
0 · h1 · h2 = 1.
n
n
n
n
n
p
x-Koeffizient: Nach Lemma 8.2.11 (iii) und (v) gilt hn
0 · h1 + h0 · h2 + h1 · h2 = c−n = cn .
n
n
x2 -Koeffizient: −hn
0 − h1 − h2 = −cn .
Somit sind alle Koeffizienten gleich, so dass die beiden Polynome identisch sein müssen.
2v
p v
(ii) Nach (i) gilt 0 = Fcv hvj = h3v
j − cv hj + cv hj − 1,
3v
2v
p v
woraus wir hj = cv hj − cv hj + 1 erhalten. Dies multiplizieren wir mit hju−2v :
hu+v
= cv huj − cpv hju−v + hju−2v
j
Da cn = hn0 + hn1 + hn2 gilt, erhalten wir durch Addition der obigen Gleichung für j = 0, 1, 2 die
Behauptung.
(iii) Angenommen Fc (x) ist reduzibel über Fp2 . Dann gilt nach Lemma 8.2.11 (vi), dass alle Nullstellen
in Fp2 liegen. Wir berechnen
(p+1)p
hj
2
= hpj
−1+p+1
= hp+1
.
j
Also liegen alle hp+1
∈ Fp , so dass cp+1 = hp+1
+ hp+1
+ hp+1
∈ Fp .
0
1
2
j
p
Angenommen cp+1 ∈ Fp , dann ist cp+1 = cp+1 und damit
Fcp+1 (x) = x3 − cp+1 x2 + cp+1 x − 1
Damit gilt Fcp+1 (1) = 0. Aus Punkt (i) wissen wir, dass die Wurzeln von Fcp+1 (x) die (p + 1)-ten
Potenzen der Wurzeln von Fc (x) sind. Also hat Fc (x) eine Wurzel, deren Ordnung p + 1 und damit
auch p2 − 1 = (p + 1)(p − 1) teilt. Diese Wurzel liegt also in Fp2 , so dass nach Lemma 8.2.11 (vi)
Fc (x) reduzibel ist.
Folgerung 8.2.14. Gegeben seien c, cn−1 , cn und cn+1 . Dann gilt:
(i) c2n = c2n − 2cpn ,
(ii) cn+2 = c · cn+1 − cp · cn + cn−1 ,
(iii) c2n−1 = cn−1 · cn − cp · cpn + cpn+1
(iv) c2n+1 = cn+1 · cn − cp · cpn +
und
cpn−1 .
Beweis. Man wendet Lemma 8.2.11 (v) und Lemma 8.2.13 (ii) folgendermaßen an:
(i) u = v = n,
(ii) u = n + 1, v = 1,
(iii) u = n − 1, v = n
und
(iv) u = n + 1, v = n.
Mit diesem Korollar und den beiden Lemmata 8.2.11 und 8.2.13 kann man einen effizienten Algorithmus
bestimmen, der aus c ∈ Fp2 und n ∈ Z den Wert cn berechnet. 1
Nach Bemerkung 8.2.10 ist Tr (g n ) die Summe cn der n-ten Potenzen der Wurzeln des Polynoms FTr(g) (x).
Daher kann dieser Algorithmus auch zur Berechnung von Tr (g n ) aus Tr(g) verwendet werden.
8.3 Anwendungen
Wir stellen hier zwei Verfahren vor, die durch XTR verbessert werden können. Beide basieren in den
traditionellen Implementierungen auf Untergruppen der multiplikativen Gruppe eines endlichen Körpers.
1 Für
Details siehe [LV00, Definition 2.3.6 und Algorithmus 2.3.7]
66
8 Das XTR Public Key System
8.3.1 XTR-Diffie-Hellman
Das Diffie-Hellman (DH) Protokoll bietet zwei Parteien die Möglichkeit einen geheimen gemeinsamen
Schlüssel zu vereinbaren. Mit Hilfe von XTR kann man dieses Verfahren abwandeln:
Algorithmus 8.3.1 (XTR-DH). Seien p, q, Tr(g) XTR public key Daten. Wenn Alice und Bob sich auf
den geheimen Schlüssel K einigen wollen, wenden sie folgendes Verfahren an:
1. Alice wählt eine Zufallszahl a ∈ [2, q − 3]. Anschließend berechnet sie Tr(g a ) und sendet diese an
Bob.
2. Bob erhält Tr(g a ) von Alice. Er wählt eine Zufallszahl b ∈ [2, q − 3]. Anschließend berechnet er
Tr(g b ) und sendet diese an Alice.
3. Alice erhält Tr(g b ) von Bob. Anschließend berechnet sie Tr(g ab ).
Dann bestimmt sie mit Hilfe von Tr(g ab ) den geheimen Schlüssel K.
4. Bob berechnet Tr(g ab ) und bestimmt mit Hilfe von Tr(g ab ) den geheimen Schlüssel K.
Durch diese Version reduziert sich die Kommunikation und der Rechenaufwand gegenüber klassischen
Implementierungen auf jeweils ca. ein Drittel.
8.3.2 XTR-ElGamal Verschlüsselung
Algorithmus 8.3.2 (XTR-ElGamal-Verschlüsselung).
Seien p, q, Tr(g) XTR public key Daten, die von
Alice veröffentlicht sind. Weiterhin
sei Tr g k der von Alice veröffentlichte Wert zu einer geheimen Zahl
k. Mit Hilfe von p, q, Tr (g) , Tr g k kann Bob folgendermaßen eine Nachricht M für Alice verschlüsseln.
1. Bob wählt eine Zufallszahl b ∈ [2, q − 3]. Anschließend berechnet er Tr(g b ).
2. Bob berechnet anschließend Tr(g bk ).
3. Bob bestimmt einen symmetrischen Schlüssel K basierend auf Tr g bk .
4. Bob verschlüsselt mit einem vereinbarten symmetrischen Verschlüsselungsverfahren die Nachricht
M mit dem Schlüssel K und erhält die verschlüsselte Nachricht E.
5. Bob sendet Tr(g b ), E an Alice.
Algorithmus 8.3.3 (XTR-ElGamal Entschlüsselung). Alice kann eine auf diese Weise verschlüsselte
Nachricht Tr(g b ), E mit dem Wert k folgendermaßen entschlüsseln:
1. Alice berechnet Tr(g bk )
2. Alice bestimmt den symmetrischen Schlüssel K basierend auf Tr g bk .
3. Alice benutzt das vereinbarte symmetrische Verschlüsselungsverfahren mit dem Schlüssel K, um aus
E die Ausgangsnachricht M zu erhalten.
Auch hier vermindert sich die Rechenzeit und die Kommunikation auf ca. ein Drittel gegenüber traditionellen Implementierungen des ElGamal Verschlüsselungsverfahrens.
8.4 Sicherheit von XTR
In diesem Abschnitt möchten wir zeigen, dass die oben genannten Varianten der Verfahren genauso sicher sind, wie die traditionellen Implementierungen. Darüberhinaus werden wir kurz einen Vergleich zu
elliptischen Kurven ziehen.
67
8 Das XTR Public Key System
8.4.1 Äquivalenz von Problemen
In den oben genannten Verfahren (und auch in anderen Verfahren, die XTR nutzen), werden die Elemente
der XTR Gruppe durch die Spuren dieser Elemente ersetzt. Daher basiert die Sicherheit der abgeänderten
Verfahren nicht auf den üblichen Problemen, sondern auf den jeweiligen XTR-Varianten.
Wir benötigen einige Begriffe:
Problem 8.4.1 (Diskreter Logarithmus).
DL Sei a ∈ hgi. Dann gilt a = g x . Finde x = DL(g x ).
XTR-DL Sei a ∈ Tr (hgi). Finde ein 0 ≤ x < q, so dass a = Tr (g x ) und bezeichne x = XT RDL(g x ).
Problem 8.4.2 (Diffie-Hellman-Problem).
DH Seien g x , g y ∈ hgi. Bestimme g xy = DH(g x , g y )
XTR-DH Seien Tr (g x ) , Tr (g y ) ∈ Tr (hgi). Bestimme Tr (g xy ) = XT RDH(g x , g y )
Definition 8.4.3. Problem A ist (a, b)-äquivalent zu Problem B, wenn Problem A (bzw. B) mit höchstens
a (bzw. b) Aufrufen eines Algorithmus zum Lösen von B (bzw. A), lösbar ist.
Satz 8.4.4. (a) Das XTR-DL Problem ist (1, 1)-äquivalent zum DL Problem.
(b) Das XTR-DH Problem ist (1, 2)-äquivalent zum DH Problem.
Beweis. (a) Um das DL Problem für ein Element a = g y zu lösen, bestimmen wir x = XT RDL (Tr (a)).
Dann ist DL(a) = y = x · p2j (mod q) für j = 0, j = 1 oder j = 2.
Um umgekehrt das XTR-DL Problem für ein Element a = Tr (g y ) zu lösen, bestimmen wir eine
2j
Wurzel r(a) des Polynoms Fa (x). Dann ist r(a) = g yp und damit XT RDL(a) = DL(r(a)).
(b) Um DH(e, f ) = DH(g x , g y ) zu bestimmen, berechnen wir di = XT RDH Tr e · g i , Tr(f ) =
Tr ((x + i)y) für i = 0, 1. Dann ist
n
o
p2j
r(d0 ) ∈ (DH(e, f )) | j = 0, 1, 2 und
n
o
p2j
r(d1 ) ∈ (DH(e, f ) · f ) | j = 0, 1, 2 .
Man hat nun also jeweils drei mögliche Werte für d0 und d1 . Nun kann man testen, in welchem der
Fälle man sich befindet und so DH(e, f ) bestimmen.
Umgekehrt gilt XT RDH(e, f ) = Tr (DH(r(e), r(f ))), wobei r(e), r(f ) Wurzeln des Polynoms
Fe (x), bzw. Ff (x) sind.
8.4.2 Relation zu elliptischen Kurven
Wie in der Einführung bereits angekündigt hier ein kurzer Vergleich zwischen XTR und elliptischen
Kurven.
Die Anzahl der Fp2 -rationalen Punkte einer elliptischen Kurve über Fp2 hat die Form p2 − t + 1, wobei
−2p ≤ t ≤ 2p. Diese Punkte bilden eine Gruppe.
Definition 8.4.5 (Supersinguläre elliptische Kurven). Eine supersinguläre elliptische Kurve über Fp2 ,
ist eine elliptische Kurve der Ordnung p2 − p + 1.
68
8 Das XTR Public Key System
Tatsache 8.4.6.
(a) Supersinguläre elliptische Kurven existieren.
(b) Es gibt einen effizient berechenbaren (polynominale Laufzeit) Isomorphismus von einer supersingulären elliptischen Kurve in die XTR-Supergruppe.
Von Menezes und Vanstone [MV00] wurde vermutet, dass das Inverse eines solchen Isomorphismus
auch effizient berechenbar sei. Damit wäre die XTR-Gruppe eine Variante einer Untergruppe einer supersingulären elliptischen Kurve. Also würde unter dieser Vermutung jeder Angriff auf eine elliptische Kurve
auch ein XTR-basierendes Verfahren betreffen. Somit wäre die Sicherheit von XTR nicht besser, als die
einer elliptischen Kurve.
Wir präzisieren die oben genannte Vermutung:
Vermutung 8.4.7. Man kann mit effizienten Berechnungen eine supersinguläre elliptische Kurve über
Fp2 finden, so dass die Gruppe C der Punkte der Kurve über Fp2 die Ordnung p2 − p + 1 hat. Gleichzeitig
kann man einen injektiven Homomorphismus von der XTR-Gruppe nach C finden.
Diese Vermutung ist bis heute weder bewiesen, noch widerlegt worden. Allerdings geht man heute
davon aus, dass sie falsch ist. Nimmt man nämlich an, dass sie gilt, so lassen sich einige als schwer lösbare
Probleme effizient berechnen. Man kann z.B. folgenden Satz beweisen:
Satz 8.4.8. Wenn Vermutung 8.4.7 gilt, können folgende Probleme effizient berechnet werden:
1. Das Diffie-Hellman Problem in der XTR-Gruppe und
2. das Diffie-Hellman Problem in der Gruppe der Punkte der Ordnung q einer supersingulären elliptischen Kurve über Fp2 der Ordnung p2 − p + 1.
Beweis. Siehe [Ver01].
Geht man davon aus, dass die Vermutung nicht richtig ist, so folgt, dass das XTR System eine höhere
Sicherheit bietet, als die supersinguläre elliptische Kurve gleicher Ordnung.
69
Chapter
9
The NTRU Public Key Cryptosystem
Silke Möser, 25.07.2007
Based on: [HPS98]
9.1 Description of the NTRU-PKCS
We will work in the ring R = Z[X]/(X N − 1) (this is by the way where NTRU, which is short for “N-th
degree truncated polynomial ring”, gets its name from) and write an element F ∈ R as a polynomial or
a vector:
N
−1
X
Fi xi = (F0 , . . . , FN −1 ).
F =
i=0
Multiplication in R is given by
F · G = H with Hk =
k
X
i=0
Fi Gk−i +
N
−1
X
i=k+1
X
Fi GN +k−i =
i+j=k
Fi G j .
mod N
This means we multiply polynomials using the extra rule X N = 1.
When we multiply modulo q for instance we will reduce the coefficients modulo q and choose them in
the interval [− 2q , 2q ].
9.1.1 Parameters
In order to describe the NTRU-cryptosystem we need the following parameters:
• Three integers N, p, q. Here p and q need not be prime, but we will assume gcd(p, q) = 1. Moreover,
q shall be considerably larger than p.
• Four sets Lf , Lg , Lφ , Lm of polynomials in R with. Lf will be the set of private keys, Lm the set of
plain texts.
9.1.2 Sample Spaces
It is convenient to take
Lm
p−1 p−1
= m ∈ R | m has coefficients in the interval −
,
.
2
2
For the other sample spaces we will use sets of the form
L(d) := {F ∈ R | F has d coefficients 1, the rest 0} .
Now we choose three positive integers df , dg , dφ and set
Lf = L(df ), Lg = L(dg ), Lφ = L(dφ ).
70
9 The NTRU Public Key Cryptosystem
9.1.3 Key Generation
To create an NTRU-key Bob (the decrypter) randomly chooses two polynomials f ∈ Lf , g ∈ Lg , where f ,
additionally, must satisfy the requirement that it have inverses modulo p and modulo q. We will denote
these inverses with Fp and Fq respectively, i.e.
Fp · f ≡ 1
mod p and Fq · f ≡ 1
mod q.
(9.1.1)
These inverses can be computed using a variant of the Euclidean Algorithm.
Moreover, he computes
h ≡ Fq · g
mod q.
(9.1.2)
Bob’s public key is h, his private key is f . The safety of the encryption relies on the presumed difficulty
of factoring polynomials in the ring R into two polynomials with very small (in this case 0,1) coefficients,
i.e. it is supposed to be hard to compute f from h.
9.1.4 Encryption
If Alice (the encrypter) wants to send a message m ∈ Lm to Bob she randomly chooses a polynomial
φ ∈ Lφ and uses Bob’s public key to compute
e ≡ pφ · h + m mod q.
Now she transmits the encrypted message e to Bob.
9.1.5 Decryption
Suppose Bob received the encrypted message e from Alice. He computes
a ≡ f · e mod q,
where he chooses the coefficients of a in the interval [− 2q , 2q ]. Now he decrypts the message by computing
m = Fp · a mod p.
(He should have precomputed the polynomial Fp .)
9.1.6 Why should this work?
The polynomial a, that Bob computes, satisfies
a ≡ f · e ≡ f · pφ · h + f · m mod q
(9.1.2)
=
(9.1.1)
=
f · pφ · Fq · g + f · m mod q
pφ · g + f · m mod q.
For appropriate parameter choices (see [HPS98] for more details), one can ensure that (almost always)
all coefficients of the polynomial pφ · g + f · m lie in the interval [− 2q , 2q ], so that they do not change when
reduced modulo q. This means that Bob recovers exactly the polynomial
a = pφ · g + f · m in R.
Reducing a modulo p gives him f · m mod p and multiplication with Fp retrieves m mod p.
9.2 NTRU and Lattices
9.2.1 Basic Facts on Lattices
Definition 9.2.1 (Lattice 1). A lattice is a discrete additive subgroup of some Rn .
Example 9.2.2. Z ⊂ R is a lattice.
71
9 The NTRU Public Key Cryptosystem
Example 9.2.3. Let A ∈ Zn×m , m ≥ n with linearly independent row vectors. Then the set {x ∈
Zm |Ax = 0} is a lattice.
For many purposes an equivalent definition of lattices is more convenient:
Definition 9.2.4 (Lattice 2). Let b1 , . . . , bd ∈ Rn , d ≤ n linearly independent. Then the Z-linear span
of the bi , i.e. the set
( d
)
X
L=
ai bi |ai ∈ Z
i=1
is a lattice.
The set B := {b1 , . . . , bd } is a basis for L, which we will write as a d × n-matrix. The parameter
dim L := d will be called the dimension of L. If d = n (i.e. if we have a quadratic basis matrix) we define
the determinant of L to be det L := | det B|.
Here we will always assume that our lattices have full rank, i.e. d = n. This is no actual restriction as
for each d-dimensional lattice we can find an isomorphic one in Rd .
Unfortunately (or fortunately – as NTRU is in a sense based on this), the basis of a lattice is not
unique. We can transform one basis into another one by
• permuting the basis vectors or
• adding an integral multiple of one basis vector to another one.
These transformations are usually called unimodular transformations and correspond to a multiplication
of the basis matrix by a d × d-matrix with determinant ±1. (This implies also that the determinant of a
lattice is well-defined!)
Since there are (for most lattices – Z for instance is boring anyway...) infinitely many unimodular
transformations there are as well infinitely many different bases for each lattice. Some bases are, however,
“better” than others: For most computional problems we would like to have basis vectors that are short
and pairwise orthogonal.
Although the set of the shortest linearly independent vectors in a lattice is in general not a basis for
the lattice, we can always find a basis containing the shortest vector of the lattice.
Example 9.2.5. Consider the lattice in R5 spanned by v1 = (2, 0, 0, 0, 0), v2 = (0, 2, 0, 0, 0), v3 =
(0, 0, 2, 0, 0), v4 = (0, 0, 0, 2, 0), v5 = (1, 1, 1, 1, 1). The five shortest vectors are v1 , . . . , v4 , (0, 0, 0, 0, 2)
and the lattice spanned by these is (2Z)5 , which does not contain v5 .
The determinant can be interpreted geometrically as the d-dimensional volume of the parallelepiped
( d
)
X
P =
xi bi | 0 ≤ xi ≤ 1
i=1
spanned by the basis vector of the lattice. Hence we would expect the length of the shortest edge to be
roughly the d-th root of the determinant. Up to a small factor this is what we actually get from a famous
theorem by Minkowski:
Theorem 9.2.6 (Minkowski’s First Theorem). In a d-dimensional lattice we have
√
1
λ1 ≤ d(det L) d ,
where λ1 is the length of the shortest nonzero vector.
Proof. We will instead prove the following statement: Let L a lattice with dimension n. Then every
compact convex symmetric region R with volume at least 2n det L contains a non-zero lattice point.
From this the theorem follows by applying some suitable estimate for the volume of the n-dimensional
unit ball.
First assume that vol(R) > 2n det L. Let v1 , . . . , vn a basis of L and define the fundamental region F
by F = {t1 v1 + . . . , tn vn |0 ≤ ti ≤ 1}. For each v ∈ L consider the translate v + F of F. As v varies over
L these translates cover Rn , i.e.
[
(F + v) = Rn .
v∈L
72
9 The NTRU Public Key Cryptosystem
Each r ∈ R can be written uniquely as r = vr + wr with vr ∈ L, wr ∈ F.
Now consider the dilation of R by factor 2 (i.e. consider 12 R = { 12 r|r ∈ R}) and define a function
1
1
1
2 R → F : 2 w 7→ w 2 r .
We have that vol( 12 R) = 21n vol(R) > vol(F)(= det L). Thus, there must exist two points 12 r1 , 12 r2
with the same image, i.e. 21 r1 = v1 + w and 21 r2 = v2 + w for some v1 , v2 ∈ L and w ∈ F. Then
1
1
1
1
1
2 r1 − 2 r2 = v1 −v2 ∈ L. Moreover, observe that − 2 r2 ∈ R by symmetry of R and 2 r1 +(− 2 r2 ) ∈ R (this
is the midpoint of the line segmentr1 r2 and hence contained in R by convexity). Hence 0 6= v1 −v2 ∈ R∩L.
This completes the proof for vol(R) > 2n det L.
Now assume vol(R) = 2n det L. Apply the already established result to find non-zero points vk ∈
(1 + k1 )R ∩ L for k = 1, 2, . . .. As vk ∈ 2R for all k, there can be only finitely many different vk . This
completes the proof.
There are two fundamental hard computational problems concerning lattices:
Problem 9.2.7 (SVP). Given a lattice L the Shortest Vector Problem (SVP) is the problem of finding
a nonzero vector with minimal length in L.
Problem 9.2.8 (CVP). Given a lattice L and a vector t 6∈ L the Closest Vector Problem (CVP) is the
problem of finding a vector v ∈ L that is closest to t, i.e. minimizes kv − tk.
It is known that CVP is NP-hard, SVP is NP-hard under a certain additional hypothesis. The practical
process of finding short(est) or close(st) vectors in lattices is called Lattice Reduction.
There is, however, a polynomial time algorithm that can find approximate solutions for SVP and CVP
with an error of about 2d . Albeit exponentially bad in the dimension of the lattice, this approximation
suffices for many interesting problems.
Fact 9.2.9 (The LLL-Algorithm, 1982, cf. [LLL82]). Let L a lattice with basis v1 , . . . , vd ∈ Qn . Then
the LLL-Algorithm finds a basis b1 , . . . , bd with
1
kb1 k ≤ cd (det L) d ,
where c =
.
4
3
14
. The running time of the LLL-Algorithm is O(d5 n log3 bmax ), where bmax = max{kbi k}
The LLL-Algorithm and its variants are currently the best known algorithms to tackle SVP and CVP.
Moreover, a vector is the more likely to be found the shorter it is, respectively the closer it is to the
lattice.
9.2.2 Convolution Modular Lattices
Definition 9.2.10. The convolution modular lattice Lh associated to the vector h ∈ R and the modulus
q ∈ Z is the lattice with basis given by the rows of the 2N × 2N -matrix


1 0 ··· 0
h0
h1 · · · hN −1
 0 1 · · · 0 hN −1 h0 · · · hN −2 


 .. .. . .

..
..
..
..
..
 . .

.
.
.
.
.
.


 0 0 ··· 1

h
h
·
·
·
h
1
2
0

.
Bh := 

0
0
·
·
·
0
q
0
·
·
·
0


 0 0 ··· 0

0
q
·
·
·
0


 . . .

.
.
.
.
.
. . ..
..
..
..
..
 .. ..

0 0 ··· 0
0
0 ···
q
In an NTRU convolution modular lattice Lh (i.e. the lattice with basis matrix Bh ) we have
f ·h=g
mod q
for suitable f and g. (We chose f and g with small coefficients.) This implies that Lh contains the short
vector
(f, g) = (f0 , . . . , fN −1 , g0 , . . . , gN −1 ).
73
9 The NTRU Public Key Cryptosystem
To see this let
u=
−f h + g
q
mod [X N − 1] ∈ R
Then
(f, u)Bh = (f, g).
Remark 9.2.11. We can consider Lh as a 2-dimensional module over R. Then Lh can be described as
the set
Lh = {(u, v) ∈ R2 |uh = v mod q}.
9.2.3 The CVP underlying an NTRU private key
The lattice Lh contains the short vector (f, g) (from which we can read off the private key f ) and the
long vectors (1, h), (0, q) (which can be computed from the public key h).
Let d = df + dg . The vector (f, g) with norm
v
uN
uX
√
k(f, g)k = t (fi2 + gi2 ) = d
i=1
is almost certainly the shortest vector in Lh and can thus be found by solving an SVP in Lh .
However, the centered norm
r
√
(f, g) − d , d , . . . , d = d 1 − d ,
N N
N N
which is the distance from (f, g) to ( Nd , Nd , . . . , Nd ), is even smaller.
Thus, it is probably easier to find (f, g) by solving CVP in Lh .
Still, when N is large and the target distance not too small, the (extrapolated) running time for LLL
to find the private key vector (f, g) is very large.
9.2.4 NTRU decryption as a CVP
Recall that the ciphertext e has the form e = pφ · h + m mod q. We can rewrite this relation in vector
form as
(0, e) = (0, pφ · h + m mod q)
= (φ, pφ · h mod q) + (−φ, m).
The vector (φ, pφ · h mod q) is in the convolution modular lattice Lph . Further, the vector (−φ, m)
is quite short. Thus, for appropriate parameters, recovery of the plaintext m from the ciphertext e is
equivalent to finding the vector in Lh that is closest to the vector (0, e).
9.3 Comparison of Operation Characteristics
The following table compares operating characteristics of naive implementations of RSA, ECC and NTRU.
Encrypt/Decrypt
Key size (bits)
Key Creation
Typical n
RSA
O(n3 )
n
none
1024
74
ECC
O(n3 )
n
O(n3 )
168
NTRU
O(n2 )
1
2 nlog2 n
O(n2 )
502
Chapter
10
Isomorphism Classes of Elliptic Curves
Armin Straub, 25.07.2007
Based on: [Hus03, Chapter 3]
10.1 Preliminaries
10.1.1 Elliptic Curves
Our main reference will be [Hus03]. Let k denote a field throughout these notes. To feel safe we will
assume that k is perfect (this means that all its algebraic extensions are separable, or, equivalently, that
either char k = 0 or char k = p and every element has a p-th root).
Definition 10.1.1. An affine curve C : f (x, y) = 0 over k is defined by a polynomial f (x, y) ∈ k[x, y]
which is absolutely irreducible (that is irreducible over an algebraic closure of k). For any field K > k
we denote with
C(K) , {(x, y) ∈ k 2 : f (x, y) = 0}
the K-rational points of C.
The irreducibility condition ensures that we are really working with one curve and not a union of
curves.
Example 10.1.2. y 2 +y 2 x−x2 +1 = 0 is not an affine curve as defined above (definitions in the literature
may vary) since
y 2 + y 2 x − x2 + 1 = (y 2 − x + 1)(x + 1).
However, C1 : y 2 − x + 1 = 0 and C2 : x + 1 = 0 are curves.
It is an open and important problem to decide whether a curve over k actually contains k-rational
points. There is not even an algorithm known that decides this problem for cubics over Q.
Example 10.1.3. C : x3 + y 3 − 1 = 0 is an affine curve over Q. It is a special case of Fermat’s Last
Theorem that its only Q-rational points are (1, 0) and (0, 1).
Definition 10.1.4. The homogenization of a polynomial f (x, y) of total degree d is given by
x y
fh (x, y, z) , z d f
,
,
z z
that is every monomial xα y β of f (x, y) is multiplied by z d−α−β to make its total degree d.
Definition 10.1.5. A projective curve C : h(x, y, z) = 0 over k is defined by an absolutely irreducible
homogeneous polynomial h(x, y, z) ∈ k[x, y, z]. For any field K > k we denote with
C(K) , {[x, y, z] ∈ P2 (k) :
h(x, y, z) = 0}
the K-rational points of C. The projective closure of an affine curve C : f (x, y) = 0 is the curve
Ch : fh (x, y, z) = 0 where fh denotes the homogenization of f .
75
10 Isomorphism Classes of Elliptic Curves
Note that every homogeneous polynomials h(x, y, z) arises as the homogenization of some polynomial
f (x, y) whence every projective curve arises uniquely as the projective closure of an affine curve.
Also note that Ch (K) is well-defined for a projective curve Ch since fh is homogeneous.
The projective curve Ch : fh (x, y, z) = 0 can be thought of as the affine curve C : f (x, y) = 0 with
some “points at infinity” added. The affine points (x, y) uniquely correspond to [x, y, 1] ∈ P2 (k), while
the “points at infinity” are those of the form [x, y, 0] ∈ P2 (k).
Example 10.1.6. The projective closure of the affine curve C : x3 + y 3 = 1 is Ch : x3 + y 3 = z 3 . The
projective Q-rational points are Ch (Q) = {[1, 0, 1], [0, 1, 1], [1, −1, 0]}. When contrasted with C(Q) =
{(1, 0), (0, 1)} we see that [1, −1, 0] is such an added point at infinity.
Definition 10.1.7. A point (a, b) on an affine curve f (x, y) = 0 is called singular if the partial derivatives
fx , fy both vanish at (a, b). Similarly, the points on a projective curve f (x, y, z) = 0 where grad f vanishes
are called singular.
A curve without singular points is called nonsingular.
Example 10.1.8. Consider the curve defined by y 2 = x3 . It has a singularity at (0, 0), where it has two
coincident tangents. Such a singularity is called a cusp.
The second kind of singularity, called a node, is a point on a curve having two distinct tangents, for
instance (0, 0) on the curve y 2 = x3 + x2 .
A cubic curve is nonsingular if for each point there exists a line intersecting the curve in two more
points.
Definition 10.1.9. An elliptic curve over k is a nonsingular projective cubic curve over k together with
a k-rational point O.
Remark 10.1.10. One important aspect of elliptic curves is that they also carry an abelian group
structure with O taken as the unit element. Modulo some details, the group operation + is defined as
follows: given two points P, Q on the elliptic curve C we find the point P Q as the third intersection of
C with the line going through P and Q. P + Q is then defined as O(P Q). We won’t pursue this any
further though.
For more information about projective curves and related issues we refer the interested reader to
[Poo01]. Here, we will leave this point of view, and think of an elliptic curve as being defined by a
particular kind of cubic equation. For a sketch of the proof of this equivalence we refer to [Hus03].
Theorem 10.1.11. Every elliptic curve over a field k has a Weierstrass model, that is it is isomorphic
to a projective curve of the form
y 2 z + a1 xyz + a3 yz 2 = x3 + a2 x2 z + a4 xz 2 + a6 z 3 .
Remark 10.1.12. The numbering of the indices does make sense and can be remembered as follows. If
we count x with weight 2, y with weight 3, z with weight 0, and ai with weight i, then each monomial
has weight 6.
Remark 10.1.13. Note that the cubic
y 2 z + a1 xyz + a3 yz 2 − x3 − a2 x2 z − a4 xz 2 − a6 z 3
is irreducible over any field, see for instance [Con06].
What happens if we consider instead of the projective curve h(x, y, z) = 0 its affine restriction
h(x, y, 1) = 0? Since every element [x, y, z] with z 6= 0 has a unique representative [x0 , y 0 , 1], we have to
only think about elements [x, y, 0]. But for h in Weierstrass form
⇐⇒
h(x, y, 0) = 0
x = 0,
and hence there is only the point [0, 1, 0] that lies on the line “at infinity”, and thus has no affine counterpart. Also note that hz (0, 1, 0) = 1 6= 0, which shows that h is nonsingular at [0, 1, 0]. Finally, a point
[x, y, z] on the projective curve is K-rational if and only if the corresponding point (x/z, y/z) on the affine
restriction is K-rational.
In the sequel we will therefore prefer to think of an elliptic curve as a nonsingular affine curve given by
a Weierstrass equation
y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 ,
with an additional point O added for the group law which we won’t consider any further here as promised.
76
10 Isomorphism Classes of Elliptic Curves
10.1.2 Reduced Weierstrass Equations
We have mentioned before that every elliptic curve is isomorphic to an elliptic curve defined by a Weierstrass equation. While we didn’t define what we actually meant by isomorphic, we will now do so for
elliptic curves in Weierstrass form.
Definition 10.1.14. Two elliptic curves over k in Weierstrass form are isomorphic over a field extension
K of k, short K > k, if they are related by an invertible linear change of variables with coefficients in K.
Remark 10.1.15. The linearity ensures that such an isomorphism over K also induces a group isomorphism. Lines are sent to lines. Clearly, it also preserves K-rational points.
In fact, these are the only birational changes of variables that fix [0, 1, 0] (when viewed projectively)
and preserve the Weierstrass form. Further, any two Weierstrass models for an elliptic curve differ by
such a change of variables. More details can be found for instance in [Sil86].
Example 10.1.16. The elliptic curve E : y 2 = x3 + 3x2 + 2x is isomorphic to Ē : y 2 = x3 − x by the
change of variables
x ← x − 1, y ← y.
Example 10.1.17. Consider the elliptic curve E : y 2 = x3 − x over Q. The change of variables
x ← −x,
y ← iy
defines an automorphism of E over C.
Proposition 10.1.18. An isomorphism over K > k between two elliptic curves over k has the form
x ← u2 x + r,
y ← u3 y + u2 sx + t,
where u, r, s, t ∈ K and u 6= 0.
Proof. Since the Weierstrass form has no y 3 term we find that the transformation has to be of the form
x ← ax + r,
y ← by + sx + t,
where a, b 6= 0. To normalize the coefficients of the resulting y 2 and x3 terms, we further need that
b2 = a3 . Now, define u = b/a and observe that a = u3 and b = u2 .
Let’s start with a curve C over k defined by a Weierstrass equation
y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 .
By completing the square we can get rid of a1 , a3 assuming that 2 6= 0.
Proposition 10.1.19. Let char k 6= 2. Then the change of variable y ← y − (a1 x + a3 )/2 transforms the
equation into
b2
b4
b6
y 2 = x3 + x2 + x + ,
4
2
4
where
b2
b4
b6
, a21 + 4a2 ,
, a1 a3 + 2a4 ,
, a23 + 4a6 .
Now we further complete the cube to get rid of b2 . For this we need 6 6= 0.
Proposition 10.1.20. If char k 6= 2, 3 then an additional x ← x − b2 /12 produces the short Weierstrass
form
c4
c6
y 2 = x3 − x −
,
48
864
where
c4
c6
, b22 − 24b4
, −b32 + 36b2 b4 − 216b6 .
77
10 Isomorphism Classes of Elliptic Curves
Given a curve
y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6
C:
over k, we have defined the quantities b2, b4 , b6 as well as c4 , c6 . These definitions are valid (and will
turn out to be useful) no matter what the characteristic of k is although they have been motivated while
reducing the Weierstrass equations under restrictions upon the characteristic of k. We summarize, and
further define the discriminant ∆ and the j-invariant.
Definition 10.1.21. To a curve defined by a Weierstrass equation
y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6
we attach the following quantities
b2
b4
b6
b8
∆
c4
c6
j
,
,
,
,
,
,
,
,
a21 + 4a2 ,
a1 a3 + 2a4 ,
a23 + 4a6 ,
b2 a6 − a1 a3 a4 + a2 a23 − a24 ,
−b22 b8 − 8b34 − 27b26 + 9b2 b4 b6 ,
b22 − 24b4 ,
−b32 + 36b2 b4 − 216b6 ,
c34 /∆.
Remark 10.1.22. The bi ’s are related by 4b8 = b2 b6 − b24 which serves to define b8 whenever the
characteristic is not equal to 2.
Remark 10.1.23. We have 123 ∆ = c34 − c26 , and hence
j = 123
c34
c34
− c26
whenever char k 6= 2, 3.
Proposition 10.1.24. Let E and Ē be elliptic curves that are isomorphic under
x ← u2 x + r,
y ← u3 y + u2 sx + t.
Then j(E) = j(Ē) and ∆(E) = u12 ∆(Ē).
Proof. Be brave and calculate.
Isomorphic elliptic curves therefore have the same j value, and either both discriminants are zero or
both are nonzero. The j-invariant will play a crucial role in the classification of the isomorphism classes
of elliptic curves, while nonvanishing of the discriminant will ensure nonsingularity.
We now summarize how the Weierstrass equation can be reduced depending on char k, and include the
computation of ∆ and j in each case. We also include the case char k = 2, in which depending on whether
a1 = 0 (equivalently j = 0) or not we can either complete the cube or apply another linear change of
variables to reduce the Weierstrass equation.
Theorem 10.1.25. Up to isomorphism, every elliptic curve is defined by a reduced Weierstrass equation
of the following form.
char k 6= 2, 3 :
char k = 3 :
char k = 2 :
y 2 = x3 + a4 x + a6 ,
∆ = −16(4a34 + 27a26 ),
4a3
4
j = 123 4a3 +27a
2.
4
a6
6
y 2 = x3 + a2 x2 + a4 x + a6 , ∆ = a22 a24 − a32 a6 − a34 , j = a2 a2 −a32 a6 −a3 .
2 4
2
4
y 2 + a3 y = x3 + a4 x + a6 ,
∆ = a43 ,
j = 0,
y 2 + xy = x3 + a2 x2 + a6 ,
∆ = a6 ,
j = a16 .
78
(10.1.1)
10 Isomorphism Classes of Elliptic Curves
10.2 Nonsingularity And The Discriminant
Proposition 10.2.1. Let char k 6= 2. A curve C : y 2 = f (x) is nonsingular if and only if f (x) has no
multiple root.
Proof. At a singularity (xs , ys ) we have
ys2 = f (xs ),
2ys = 0,
0 = f 0 (xs ),
which under the assumption 2 6= 0 implies that f (x) and f 0 (x) share a nontrivial factor, or equivalently
that f (x) has a multiple root.
It would thus be nice to have an easy way to decide whether a polynomial has a multiple root. In the
case of a quadratic polynomial x2 + s1 x + s2 we know that this is the case if and only if the discriminant
s21 − 4s2 6= 0.
Remark 10.2.2. Of course, a polynomial f has a multiple root if and only if gcd (f, f 0 ) 6= 1 which can
be tested easily for a particular f . But we wish to have an explicit expression in the coefficients of f , just
as the quadratic discriminant, that tells us about multiple roots.
(n)
(n)
(n)
(n)
Let pn (x) = xn + s1 xn−1 + s2 xn−2 + . . . + sn−1 x + sn
splitting field we can factor pn (x) into linear factors, namely
be a polynomial over k. Passing to its
pn (x) = (x − t1 )(x − t2 ) · · · (x − tn ).
Then
(n)
s1
=
X
ti ,
(n)
s2
=
X
ti tj ,
...,
s(n)
n =
Y
ti ,
i<j
are the elementary symmetric polynomials in t1 , . . . , tn . Clearly, pn has a multiple root if and only if
Y
∆(pn ) =
(ti − tj )2 = 0.
i<j
By definition, ∆(pn ) is a symmetric polynomial in t1 , . . . , tn , and hence can be expressed as a polynomial
(n)
(n)
in the elementary symmetric polynomials s1 , . . . , sn . Here we make use of the following well-known
fact, that we only cite for theoretical reasons.
Theorem 10.2.3. The algebra of symmetric polynomials in n variables is freely generated by the ele(n)
(n)
mentary symmetric polynomials s1 , . . . , sn .
(n)
Therefore ∆(pn ) is a polynomial in the coefficients si
In particular, ∆(pn ) takes values in k.
of pn , a fact that is not a priori evident at all.
Example 10.2.4. The conic p2 (x) = x2 + s1 x + s2 = (x − t1 )(x − t2 ) has a multiple root if and only if
the discriminant
∆(p2 ) = (t1 − t2 )2 = (t1 + t2 )2 − 4t1 t2 = s21 − 4s2 = 0,
which doesn’t come as a total surprise.
Of course, here we will be especially interested in the discriminant of a cubic.
Proposition 10.2.5. The cubic p3 (x) = x3 + s1 x2 + s2 x + s3 = (x − t1 )(x − t2 )(x − t3 ) has a multiple
root if and only if the discrimant
∆(p3 ) = 18s1 s2 s3 + s21 s22 − 4s32 − 4s31 s3 − 27s23 = 0.
Proof. We just have to verify that
(t1 − t2 )2 (t1 − t3 )2 (t2 − t3 )2 = 18s1 s2 s3 + s21 s22 − 4s32 − 4s31 s3 − 27s23 .
Corollary 10.2.6. We have ∆(x3 + s2 x + s3 ) = −4s32 − 27s23 .
We now state a criterion that tells us when a curve defined by a Weierstrass equation is nonsingular
and hence is elliptic.
79
10 Isomorphism Classes of Elliptic Curves
Theorem 10.2.7. An affine curve C in Weierstrass form
C:
y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6
over k is nonsingular if and only if ∆(C) 6= 0.
Proof. We consider the following cases.
char k 6= 2, 3. By virtue of proposition 10.1.24 and theorem 10.1.25 we can assume that C is in short
Weierstrass form
C : y 2 = x3 + a4 x + a6 .
The right-hand side has a multiple root if and only if its discriminant vanishes, which according to
corollary 10.2.6 is given by
−4a34 − 27a26 .
Recall from theorem 10.1.25 that ∆(C) = −16(4a34 + 27a26 ).
char k = 3. By reducing the Weierstrass equation as in theorem 10.1.25 we can work with
y 2 = x3 + a2 x2 + a4 x + a6 ,
C:
which has discriminant ∆(C) = a22 a24 − a32 a6 − a34 . The discriminant of the cubic on the right-hand
side, by proposition 10.2.5, also equals
a22 a24 − a32 a6 − a34 .
char k = 2. First, suppose that a1 = 0. By theorem 10.1.25 we assume that
C:
y 2 + a3 y = x3 + a4 x + a6 ,
which has a singularity at (xs , ys ) iff the following conditions hold:
ys2 + a3 ys = x3s + a4 xs + a6 ,
a3 = 0,
0 = x2s + a4 .
Therefore the curve is nonsingular iff a3 6= 0 (here we use the assumption that k is perfect so that
we can take square roots), and hence iff ∆(C) = a43 6= 0.
If a1 6= 0 we can, by theorem 10.1.25, assume that
C:
y 2 + xy = x3 + a2 x2 + a6 ,
so that ∆(C) = a6 . The partial derivatives at (xs , ys ) vanish iff
y = x2 ,
x = 0,
and we have a singularity iff (0, 0) lies on the curve. This is the case iff ∆(C) = a6 = 0.
10.3 Classifying Isomorphism Types
We have seen that j is an invariant of elliptic curves, that is for isomorphic curves E, Ē we have j(E) =
j(Ē). The converse is almost true, and the following example shows exactly what can go wrong, and,
even better, how to resolve it.
Example 10.3.1. The elliptic curves E1 : y 2 = x3 + 1 and E2 : y 2 = x3 + 2 over Q both have j(Ei ) = 0.
An isomorphism E1 → E2 would have to be of the form
x ← u2 x,
y ← u3 y,
6
and we compute that it does the trick iff 1/u
= 2. This isn’t possible over Q, and we thus conveniently
√
6
pass to its algebraic
closure
(although
Q(
2)
would suffice) to give the desired isomorphism E1 → E2
√
with u = 1/ 6 2.
Theorem 10.3.2. Two elliptic curves E and Ē over k are isomorphic over an algebraic closure of k if
and only if j(E) = j(Ē).
80
10 Isomorphism Classes of Elliptic Curves
Proof. We distinguish the following cases.
char k 6= 2, 3. We assume both curves to be in short Weierstrass form
E:
y 2 = x3 + a4 x + a6 ,
Ē :
y 2 = x3 + ā4 x + ā6 .
An isomorphism E → Ē
x ← u2 x + r,
y ← u3 y + u2 sx + t,
where u 6= 0 has to be of the form
x ← u2 x,
y ← u3 y
in order to preserve the short Weierstrass form. Then u4 ā4 = a4 and u6 ā6 = a6 . We now have to
distinguish whether a4 or a6 are zero (note that they can’t both be zero). Recall that
j(E) = 123
4a34
1
4a34
= 123
+ 27a26
1 + 27a26 /4a34
so that j , j(E) = j(Ē) is equivalent to
a26
ā26
=
.
a34
ā34
j 6= 0, 123 , or equivalently a4 6= 0 6= ā4 , a6 6= 0 6= ā6 . If we have an isomorphism of the above form
then u4 ā4 = a4 and u6 ā6 = a6 imply that
u−2 =
a4 ā6
.
ā4 a6
Let’s thus assume that we have u satisfying this relation (for this we need the right-hand
side to be a square which might not be the case in k but definitely in any algebraic closure).
j(E) = j(Ē) or equivalently a26 /a34 = ā26 /ā34 now imply that indeed u4 ā4 = a4 and u6 ā6 = a6 ,
that is we have an isomorphism E → Ē.
To summarize, we have an isomorphism E → Ē over an extension K > k if and only if j(E) =
j(Ē) and a4 ā6 /ā4 a6 is a square in K. Further, setting Ē = E we see that Aut(E) ∼
= Z/2.
j = 0, or equivalently a4 = 0 = ā4 . Then we have an isomorphism of the above form if and only if
we can find u such that u6 ā6 = a6 , that is a6 /ā6 is a sixth power.
We thus have an isomorphism E → Ē over an extension K > k if and only if j(E) = j(Ē) and
a6 /ā6 is a sixth power in K. Further, Aut(E) ∼
= Z/6 corresponding to the six roots of unity
that can be chosen for u.
j = 123 , or equivalently a6 = 0 = ā6 . We have an isomorphism of the above form if and only if we
can find u such that u4 ā4 = a4 , that is a4 /ā4 is a fourth power.
We thus have an isomorphism E → Ē over an extension K > k if and only if j(E) = j(Ē) and
a4 /ā4 is a fourth power in K. Further, Aut(E) ∼
= Z/4.
char k = 3. We may assume both curves to be in the following Weierstrass form
E:
y 2 = x3 + a2 x2 + a4 x + a6 ,
We have
j(E) =
Ē :
y 2 = x3 + ā2 x2 + ā4 x + ā6 .
a62
.
a22 a24 − a32 a6 − a34
The form of an isomorphism varies according to the following cases.
j 6= 0, or equivalently a2 6= 0. We may assume a4 = ā4 = 0 by completing the squares. An isomorphism E → Ē then has to be of the form
x ← u2 x,
y ← u3 y.
Thus we need u2 ā2 = a2 , which because of j(E) = −a32 /a6 = −ā32 /ā6 = j(Ē) also implies that
u6 ā6 = a6 .
Hence we have an isomorphism E → Ē over an extension K > k if and only if j(E) = j(Ē)
and a2 /ā2 is a square in K. Further, setting Ē = E we see that Aut(E) ∼
= Z/2.
81
10 Isomorphism Classes of Elliptic Curves
j = 0, or equivalently a2 = 0. Here a4 = ∆ 6= 0, and an isomorphism E → Ē has to be of the form
(recall 3 = 0 when expanding the cube)
x ← u2 x + r,
y ← u3 y,
whence
u4 ā4 = a4 ,
u6 ā6 = a6 + ra4 + r3 .
Therefore we find an isomorphism over K > k if and only if a4 /ā4 is a fourth power in K
and the cubic r3 + a4 r + a6 − u6 ā6 in r has a root in K. Setting Ē = E we find that
Aut(E) ∼
= Z/3 o Z/4, which is illustrated in a subsequent example.
char k = 2. As before we consider two cases.
j 6= 0, or equivalently a1 6= 0. We can assume, as in theorem 10.1.25, that
E:
y 2 + xy = x3 + a2 x2 + a6 ,
y 2 + xy = x3 + ā2 x2 + ā6 .
Ē :
An isomorphism E → Ē then has to be of the form
x ← x,
y ← y + sx,
whence
ā2 = s2 + s + a2 ,
ā6 = a6 .
Since j(E) = 1/a6 = 1/ā6 = j(Ē) such an isomorphism exists over K > k if and only if the
conic s2 + s + a2 − ā2 has a root in K. Further, Aut(E) ∼
= Z/2.
j = 0, or equivalently a1 = 0. By theorem 10.1.25 we may assume
E:
y 2 + a3 y = x3 + a4 x + a6 ,
E:
y 2 + ā3 y = x3 + ā4 x + ā6
with a3 6= 0. This admits isomorphisms E → Ē of the form
x ← u2 x + s2 ,
y ← u3 y + u2 sx + t.
The coefficients are affected as
u3 ā3 = a3 ,
u4 ā4 = a4 + a3 s + s4 ,
u6 ā6 = a6 + a3 t + a4 s2 + s6 + t2 ,
and we thus find an isomorphism over K > k if and only if a3 /ā3 is a cube in K, the quartic
s4 + a3 s + (a4 − u4 ā4 ) in s has a root in K, and the conic t2 + a3 t + (s6 + a4 s2 + a6 − u6 ā6 ) in t
has a root in K. We see that # Aut(E) = 24, and one can show that Aut(E) ∼
= SL2 (F3 ).
From this proof we also learned about the structure of the automorphism group of an elliptic curve.
We summarize.
Theorem 10.3.3. Let E be an elliptic curve over

Z/2
if




if
 Z/4
∼
Z/6
if
Aut(E) =

 Z/3 o Z/4 if



SL2 (F3 )
if
an algebraically closed field k.
j(E) 6= 0, 123 ,
char k 6= 2, 3 and j(E) = 123 ,
char k 6= 2, 3 and j(E) = 0,
char k = 3 and j(E) = 0,
char k = 2 and j(E) = 0.
Example 10.3.4. Consider E : y 2 = x3 − x over an algebraically closed field of characteristic 3. As in
the above proof, an isomorphism has to be of the form
x ← u2 x + r,
y ← u3 y,
with u4 = 1 and r3 = r. Let’s denote this isomorphism with ϕ(r, u). Then
ϕ(r, u) ◦ ϕ(s, v) = ϕ(r + u2 s, uv),
and we see that indeed Aut(E) ∼
= Z/3 o Z/4 where Z/4 acts in the unique nontrivial way on the normal
subgroup Z/3. u2 = ±1, and s 7→ u2 s is the identity for u = ±1 and inversion for the other two fourth
roots of unity.
82
10 Isomorphism Classes of Elliptic Curves
Corollary 10.3.5. Let char k =
6 2, 3. If two elliptic curves E and Ē over k are isomorphic over an
algebraic closure of k then they are already isomorphic over an extension K > k of degree at most 6.
Of course, a this statement is also true for characteristic 2 and 3 if we confine our expectations, and
consider extensions K > k of degree at most 24 respectively 12.
We now demonstrate that j : E → k takes any value thus giving a bijection between k and isomorphism
classes of elliptic curves whenever k is algebraically closed.
Proposition 10.3.6. Let char k 6= 2, 3 and j 6= 0, 123 . The elliptic curve E in Weierstrass form
y 2 = 4x3 −
27j
(x + 1)
j − 123
has j(E) = j.
We can also simultaneously include the cases of characteristic 2 and 3 if we allow an xy term.
Proposition 10.3.7. Let j 6= 0, 123 . Then
y 2 + xy = x3 −
E:
1
(36x + 1)
j − 123
defines an elliptic curve with j(E) = j. The elliptic curve E : y 2 = x3 + 1 has j(E) = 0, and the elliptic
curve E : y 2 = x3 + x has j(E) = 123 .
10.4 Applications
10.4.1 Elliptic Curves Over F2
We will now list all elliptic curves over F2 (up to isomorphism). Since F2 is not algebraically closed, we
cannot expect to only find two curves corresponding to whether j = 0 or j = 1. However, there are indeed
only those two elliptic curves over F2 that are not isomorphic over a large enough algebraic extension (of
course, an algebraic closure of F2 would do).
Theorem 10.4.1. Up to isomorphism there are 5 elliptic curves over F2 , namely
E1
E2
E3
E4
E5
:
:
:
:
:
y 2 + y = x3 + x + 1,
y 2 + xy = x3 + x2 + 1,
y 2 + y = x3 ,
y 2 + xy = x3 + 1,
y 2 + y = x3 + x.
Furthermore, Ej (F2 ) ∼
= Z/j for j = 1, . . . , 5.
Proof. We distinguish.
j 6= 0. Then, by theorem 10.1.25, we have an equation
E:
y 2 + xy = x3 + a2 x2 + 1,
where a6 = 1 since ∆(E) = a6 6= 0. The elliptic curves
E2 :
y 2 + xy = x3 + x2 + 1,
E4 :
y 2 + xy = x3 + 1
are not isomorphic since #E2 (F2 ) = 2 but #E4 (F2 ) = 4 (also counting the point O at infinity).
j = 0. We can assume
E:
y 2 + y = x3 + a4 x + a6 ,
since ∆(E) = a43 needs to be 1. The elliptic curves defined by
y 2 + y = x3 ,
y 2 + y = x3 + 1
are isomorphic by x ← x + 1, y ← y + x. Again, by counting points
E3 :
y 2 + y = x3 ,
E5 :
y 2 + y = x3 + x,
E1 :
y 2 + y = x3 + x + 1
are nonisomorphic elliptic curves with #E3 (F2 ) = 3, #E5 (F2 ) = 5, and #E1 (F2 ) = 1.
83
10 Isomorphism Classes of Elliptic Curves
All groups Ek (F2 ) can be seen to be cyclic.
Example 10.4.2. As remarked above, all but two of these curves become isomorphic when considered
over a large enough extension of F2 . For instance, the two elliptic curves
E2 :
y 2 + xy = x3 + x2 + 1,
E4 :
y 2 + xy = x3 + 1
corresponding to j = 1 are isomorphic already over F4 . Looking at the proof of theorem 10.3.2 we find
that we have an isomorphism E2 → E4 over F4 of the form
x ← x,
y ← y + sx,
as soon as we can solve s2 + s + 1 = 0 in F4 . This we certainly can since F4 ∼
= F2 [x]/(x2 + x + 1).
10.4.2 The Legendre and Deuring Normal Forms
Based on theorem 10.3.2 which established the fact that elliptic curves over k with the same j-invariant are
isomorphic whenever k is algebraically closed, we will now obtain two more forms besides the Weierstrass
form that we can put an elliptic curve in (up to isomorphism). Although both are usually called “normal
forms” they are not completely unique.
Theorem 10.4.3. (Legendre Normal Form) Let k be algebraically closed, and char k 6= 2. Then
every elliptic curve E over k is isomorphic to some
Eλ :
y 2 = x(x − 1)(x − λ).
Proof. We compute
∆(Eλ ) = 16λ2 (λ − 1)2 ,
j(Eλ ) = 28
(λ2 − λ + 1)3
.
λ2 (λ − 1)2
Since k is algebraically closed we find a root λ of
28 (λ2 − λ + 1)3 − λ2 (λ − 1)2 j(E) = 0,
and we see that λ 6= 0, 1 so that ∆(Eλ ) 6= 0. By construction, j(Eλ ) = j(E) so that by theorem 10.3.2
the curves E and Eλ are ismorphic.
We now turn to another normal form. The following is based on [Sil86, Exercise 3.23].
Theorem 10.4.4. (Deuring Normal Form) Let k be algebraically closed, and char k 6= 3. Then every
elliptic curve E over k is isomorphic to some
Eα :
y 2 + αxy + y = x3 .
Proof. We compute
∆(Eα ) = α3 − 27,
j(Eα ) =
α3 (α3 − 24)3
.
α3 − 27
Since k is algebraically closed we find a solution α to
α3 (α3 − 24)3 − (α3 − 27)j(E),
and when either char k 6= 3 or j(E) 6= 0 then α3 6= 27 so that ∆(Eα ) 6= 0 ensures that Eα is an elliptic
curve. By construction, j(Eα ) = j(E) so that by theorem 10.3.2 the curves E and Eα are ismorphic.
84
Kapitel
11
Elliptische Kurven über endlichen Körpern
Rebecca Kiesl, 25.07.2007
Basierend auf: [Hus03, Chapter 13]
11.1 Einleitung
Bei elliptischen Kurven über einem endlichen Körper stellt sich die Frage, ob es überhaupt Punkte auf
dieser Kurve gibt und falls ja, wie viele es sind. Wir werden uns in diesem Kapitel mit dieser Frage
beschäftigen und eine Abschätzung für die Anzahl der Punkte auf einer elliptischen Kurve über einem
endlichen Körper geben.
Eine Besonderheit stellen dabei die so genannten supersingulären Kurven dar, bei denen man diese Abschätzung noch verbessern kann. Deshalb werden wir uns noch näher mit supersingulären Kurven beschäftigen.
Am Ende des Kapitels werden wir noch das Divisionspolynom definieren, womit man die Multiplikation
mit N auf einer elliptischen Kurve beschreiben kann.
11.2 Die Riemann-Vermutung für elliptische Kurven über endlichen
Körpern
Als erstes wollen wir uns die Riemann-Vermutung für elliptische Kurven ansehen. Sie gibt eine Abschätzung für die Anzahl der rationalen Punkte auf einer elliptischen Kurve über Fq .
Definition 11.2.1. Sei E eine elliptische Kurve über einem endlichen Körper Fq . Der Frobenius-Endomorphismus
πE : E(F¯q ) → E(F¯q ) ist definiert durch πE (x, y) = (xq , y q ).
Der Frobenius-Endomorphismus hat Grad q. Man stellt fest, dass (x, y) genau dann in E(Fq ) ist, wenn
πE (x, y) = (x, y), oder anders ausgedrückt,
(x, y) ist in E(Fq ) genau dann, wenn (x, y) in ker(1E − πE ) liegt.
Es lässt sich zeigen, dass
N1 := #E(Fq ) = deg(1 − πE ) = deg(πE ) − Tr(πE ) + 1 = 1 + q − Tr(πE ).
Kennt man die Spur des Frobenius-Endomorphismus, so kennt man also auch die Anzahl der Punkte
√
auf der elliptischen Kurve über Fq . Für die Spur gilt die Abschätzung |Tr(π)| ≤ 2 q. Zusammengefasst
ergibt dies den folgenden Satz:
Satz 11.2.2 (Riemann-Vermutung für elliptische Kurven). Sei E eine über einem endlichen Körper Fq
definierte elliptische Kurve und sei Nm = #E(Fq ). Dann gilt für alle m ≥ 1
|1 + q m − Nm | ≤ 2 · q m/2 .
85
(11.2.1)
11 Elliptische Kurven über endlichen Körpern
Die Ungleichung 11.2.1 ist äquivalent dazu, dass das charakteristische Polynom des Frobenius-Emdomorphismus
FE (T ) = det(1 − πE T ) = 1 − (Tr(π))T + qT 2
√
zueinander konjugierte komplexe Nullstellen mit Norm 1/ q hat. Das ist wiederum äquivalent dazu, dass
die Zeta-Funktion
fE (q −s )
ζE (s) =
(1 − q −s )(1 − q 1−s )
nur Nullstellen mit Re(s) = 1/2 hat. Hier sieht man den Zusammenhang mit der klassischen RiemannVermutung.
Beispiel 11.2.3. Betrachte die durch die Gleichung y 2 + y = x3 definierte elliptische Kurve. Dann ist
E(F2 ) = {∞ = 0, (0, 0), (0, 1)}
und
E(F4 ) = {∞ = 0, (0, 0), (0, 1), (1, w), (1, w2 ), (w, w), (w, w2 ), (w2 , w), (w2 , w2 )}
mit F4 = {0, 1, w, w2 } und w2 + w + 1 = 0. Die Gruppe E(F2 ) ist also isomorph zu Z/3Z und E(F4 ) ist
isomorph zu (Z/3Z)2 .
Für q = 2 gilt nun N1 = 1 + q und N2 − 1 − q 2 = 4 = 2q 2/2 . Die Ungleichung aus Satz 11.2.2 ist also
optimal, da beide Extreme erreicht werden..
Es muss aber keine der beiden Gleichungen erfüllt sein, wie das folgende Beispiel zeigt.
Beispiel 11.2.4. Die elliptische Kurve, die durch y 2 + y = x3 + x definiert ist, hat über F2 fünf Punkte:
E(F2 ) = {∞ = 0, (0, 0), (0, 1), (1, 1), (1, 0)}.
Also ist E(F2 ) isomorph zu Z/5Z und N1 = 5.
Ein weiterer interessanter Zusammenhang bzgl. der Anzahl der Punkte besteht zwischen einer elliptischen Kurve und ihrem Twist. Dazu sei g(x) ∈ K[x] ein kubisches Polynom und 0 6= t ∈ K ein Skalar.
Damit lässt sich gt (x) = t3 g(x/t) ∈ K[x] definieren.
Definition 11.2.5. Sei E eine elliptische Kurve definiert durch die Gleichung y 2 = g(x) mit einem kubischen Polynom g über einem Körper K. Der Twist mit einem Skalar 0 6= t ∈ K ist die elliptische Kurve
E t , die durch die Gleichung y 2 = gt (x) oder t−1 (y/t)2 = g(x/t) definiert ist. Sie ist isomorph zu der
Kurve mit der Gleichung t−1 y 2 = g(x).
0
In Charakteristik größer 3 sind E und E t genau dann isomorph, wenn t ein Quadrat ist, und E t ist
00
genau dann zu E t isomorph, wenn t0 /t00 ein Quadrat ist.
Proposition 11.2.6. Sei E eine elliptische Kurve über einem endlichen Körper Fq mit Charakteristik p
größer 3. Dann gibt es bis auf Isomorphie genau einen Twist E t , wobei t ∈ Fq kein Quadrat ist. Außerdem
gilt
#E(Fq ) + #E t (Fq ) = 2q + 2
(11.2.2)
Beweis. Wir beweisen nur die Aussage über die Anzahl der Elemente. Dazu zählen wir die Punkte (x, y)
auf den beiden Kurven. Zunächst bemerken wir, dass g(x) = 0 genau dann, wenn gt (x) = 0. Dies gibt
uns für jedes solche x einen Punkt auf jeder der beiden Kurven. Außerdem ist g(x) ein Quadrat (kein
Quadrat) in K genau dann, wenn gt (x) kein Quadrat (ein Quadrat) ist. Wir bekommen also für jedes
solche x entweder zwei Punkte in E oder in E t . Nimmt man nun noch die beiden Punkte für Unendlich
und Null auf beiden Kurven hinzu, so erhält man
#E(Fq ) + #E t (Fq ) = 2(#P(Fq )) = 2q + 2.
86
11 Elliptische Kurven über endlichen Körpern
11.3 Supersinguläre Kurven
Definition 11.3.1. Eine elliptische Kurve definiert durch eine kubische Gleichung f (w, x, y) über einem
Körper K der Charakteristik p heißt supersingulr, falls der Koeffizient des Monoms (wxy)p−1 im Polynom
f (w, x, y)p−1 Null ist.
Man sagt auch, eine supersinguläre Kurve habe Hasse-Invariante 0 oder Höhe 2, andernfalls hat die
Kurve eine Hasse-Invariante ungleich Null oder Höhe 1. Die Hasse-Invariante werden wir in Proposition
11.3.4 definieren.
Beispiel 11.3.2. Für p = 2 kann die Gleichung jeder elliptischen Kurve E in die folgende Form gebracht
werden:
Eα : wy 2 + w2 y + αwxy = x3
Da p − 1 = 1 ist, folgt dass Eα für genau eine Kurve supersingulär ist, nämlich wenn α = 0, also der
Kurve y 2 + y = x3 . Diese Kurve haben wir uns bereits im Beispiel 11.2.3 betrachtet.
Um uns näher mit der Charakterisierung von supersingulären Kurven zu beschäftigen, benötigen wir
als Hilfsmittel das folgende Lemma.
Lemma 11.3.3. Der Koeffizient von xk in (x − 1)k (x − λ)k ist
(−1)k
k 2
X
k
j=0
j
λj .
(11.3.1)
Beweis. Nach der binomischen Formel erhält man:
(x − 1)k (x − λ)k
=
k
P
a=0
=
k
a
(−1)k−a xa ·
b=0
k
P
P
λk−b
i=0 a+b=i
Der Koeffizient von xk ist also (−1)k
Pk
j=0
k
P
k k
a
b
k
b
(−λ)k−b xb
(−1)2k−i xi .
k 2 j
j λ .
Proposition 11.3.4. In Charakteristik größer 2 ist die Kurve Eλ : y 2 = x(x − 1)(x − λ) genau dann
supersingulär, wenn λ eine Nullstelle der Hasse-Invariante
Hp (λ) = (−1)m
m
P
i=0
mit m =
p−1
2
m 2 i
λ
i
ist.
Beweis. Wir müssen den Koeffizienten von (wxy)p−1 in f p−1 berechnen. In unserem Fall ist
f (w, x, y) = wy 2 − x(x − w)(x − λw).
In f p−1 taucht der Term (wxy)p−1 nur in dem Term T := p−1
(wy 2 )m (x(x−w)(x−λw))m auf. Außerdem
m
gilt p−1
= (−1)m mod p. Da aber 2m = p − 1 gilt, ist der Koeffizient von (wxy)p−1 gerade der
m
Koeffizient von (xw)m in (x − w)m (x − λw)m bis auf (−1)m . Dies ist nach Lemma 11.3.3 gerade Hp (λ),
was die Proposition beweist.
Für eine weitere Charakterisierung von supersingulären Kurven benötigen wir noch das sogenannte
Deuring-Polynom. Es steht im Zusammenhang mit der Hasse-Invarianten und kann auch durch formale
Potenzreihen in Fp [[λ]] beschrieben werden. Darauf werde ich allerdings nicht näher eingehen.
Definition 11.3.5. Das Deuring-Polynom Gp (λ) ist definiert durch
Gp (λ) =
m 2
X
m
i=0
87
i
λi .
(11.3.2)
11 Elliptische Kurven über endlichen Körpern
Die Funktion Gp (λ) ist eine Lösung einer Differentialgleichung zweiter Ordnung, weshalb alle ihre
Nullstellen einfach sind. Das folgt aus der zugehörigen Rekursionsformel für die Koeffizienten einer Taylorentwicklung um eine Nullstelle. Dies führt uns zu folgendem Ergebnis.
2
Pm
Proposition 11.3.6. Das Deuring Polynom Gp (λ) = i=0 mi λi hat m einfache Nullstellen im algebraischen Abschluss von Fp .
Nun können wir modulo p die Punkte auf der elliptischen Kurve Eλ für λ ∈ Fp zählen:
Für m = (p − 1)/2 gilt (x(x − 1)(x − λ))m = +1 oder −1 und x(x − 1)(x − λ) ist genau dann ein Quadrat,
also von der Form y 2 , wenn (x(x − 1)(x − λ))m = +1. Daraus folgt nun
X
(1 − (x(x − 1)(x − λ))m ) mod p
(11.3.3)
#Eλ (Fp ) =
x∈Fp
Benutzt man nun die Formel
X
a
0,
falls p – 1 kein Teiler von a,
−1, falls p – 1 Teiler von a ist,
x =
x∈Fp
(11.3.4)
so kann man die obige Formel für die Anzahl der Punkte auf der Kurve wie folgt umschreiben.
#Eλ (Fp ) = 1 − {Koeffizient von xp−1 in (x(x − 1)(x − λ))m }
(11.3.5)
Zusammen mit Lemma 11.3.3 ergibt sich daraus:
Proposition 11.3.7. Für λ ∈ Fp und p > 3 prim ist die Anzahl der Punkte auf der Kurve Eλ gegeben
durch:
#Eλ (Fp ) ≡ 1 − Gp (λ) mod p.
(11.3.6)
Insbesondere ist Eλ supersingulär genau dann, wenn #Eλ (Fp ) ≡ 1 mod p ist. In diesem Fall gilt nach
Satz 11.2.2 #Eλ (Fp ) = p + 1.
Die Anzahl der supersingulären Kurven über Fp lässt sich bis auf Isomorphie berechnen. Dazu benutzt
man die j-Werte der elliptischen Kurve in Legendre-form Eλ : y 2 = x(x − 1)(x − λ). Dies gilt allerdings
i.A. nur in F¯q , also ist evtl. λ ∈
/ Fq . Man erhält so
j(λ) = 28
(λ2 − λ + 1)3
.
λ2 (λ − 1)2
(11.3.7)
Hat eine supersinguläre Kurve Eλ0 den j-Wert j0 = j(λ0 ), so gehören alle λ in j −1 (j0 ) zu supersingulären Kurven, die zu Eλ0 isomorph sind. Bis auf zwei möglich Ausnahmen gibt es sechs solcher zu Eλ0
isomorphe Kurven, da j(λ) Grad 6 hat.
Nach Proposition 11.3.6 gilt nun
p−1
=
2
Teilt man dies durch 6, so erhält man

p−1 
=
12
X
1.
(11.3.8)
Eλ supersing.

X
1 +
E supersing. bis auf Isom.
α β
+ ,
2
3
(11.3.9)
wobei α und β von E abhängen.
Mit einigen weiteren Überlegungen und Umformungen ergibt dies den folgenden Satz.
Satz 11.3.8. Für eine Primzahl p gilt die folgende Formel über supersinguläre Kurve definiert über F̄q
bis auf Isomorphie:
X
p−1
1
=
.
(11.3.10)
24
#Aut(E)
E supersing. mod p bis auf Isom.
88
11 Elliptische Kurven über endlichen Körpern
11.4 Die Endomorphismen-Algebra und supersinguläre Kurven
Es kann passieren, dass der Frobenius-Endomorphismus πE einer elliptischen Kurve E über Fq eine
Potenz im Unterring Z von End(E) hat. Wir untersuchen nun, welche Auswirkungen dies hat. Hierbei
ist End0 (E) = End(E) ⊗Z Q.
n
Proposition 11.4.1. Falls keine Potenz πE
von πE in Z ist, dann ist End0K (E) = End0K̄ (E) = Q(πE )
ein rein imaginärer quadratischer Körper.
n
Proposition 11.4.2. Ist eine Potenz von πE in Z, so gilt πE
= pm
E für ein m, E ist supersingulär und
0
EndK̄ (E) ist eine Quaternionenalgebra.
Satz 11.4.3. Für eine elliptische Kurve E über einem endlichen Körper K sind die folgenden Aussagen
äquivalent:
(i) Die Kurve ist supersingulär.
(ii) EndK̄ (E) ist nicht kommutativ.
m
(iii) E ist definiert über einem endlichen Körper und es existieren positive Zahlen m und n mit πE
= pnE .
Satz 11.4.4 (Deuring). In Charakteristik p > 0 ist eine elliptische Kurve über einem endlichen Körper
genau dann definiert, wenn dimQ End0 (E) > 1, d.h. E hat (nichttriviale) komplexe Multiplikation, d.h.
Z 6= End(E).
Beweis. Ist E über einem endlichen Körper definiert, so wissen wir nach 11.4.1 und 11.4.2 genau, wie
End0 (E) aussieht und dass es die gewünschten Eigenschaften erfüllt.
Die umgekehrte Richtung beweist man über einen Widerspruch unter Benutzung des sogenannten TateModuls, das wir aber nicht eingeführt haben.
11.5 Divisionspolynome
Divisionspolynome sind nützlich Hilfsmittel bei der Multiplikation mit N auf einer elliptischen Kurve E
über einem Körper K. Es handelt sich dabei um Polynome ψN (x) im von den Koeffizienten der Gleichung
von E erzeugten Ring vom Grad (N 2 − 1)/2 bei ungeradem N . Wir betrachten uns zunächst ein Ergebnis für elliptische Kurven über beliebigen Körpern. Dabei erhalten wir ein Polynom in zwei Variablen
ψN (x, y), das man das N-te Divisionspolynom nennt.
Proposition 11.5.1. Sei E eine elliptische Kurve über einem Körper K mit Koeffizienten ai und sei
N > 0 eine ungerade Zahl Dann gibt es Polynome ψN (x, y), θN (x, y) und ωN (x, y) ∈ Z[x, y, ai ], so dass
die Multiplikation mit N an (x, y) ∈ E(K)\{0} durch
θN (x, y) ωN (x, y)
[N ](x, y) =
,
(11.5.1)
ψN (x, y)2 ψN (x, y)3
gegeben ist.
Über einem Körper mit Charakteristik ungleich 2 oder 3 vereinfacht sich die Situation. Man kann hier
[N ](x, y) schon alleine mit Hilfe von ψN (x) beschreiben.
11.5.2 (Das Divisionspolynom über Körpern der Charakteritik ungleich 2 oder 3). Sei N eine ungerade
Zahl und E = Ea,b die durch y 2 = x3 + ax + b definierte Kurve über einem Körper K mit Charakteristik
p 6= 2. Das N-te Divisionspolynom ist
Y
ψN (x) =
(x − x(P )) ∈ Z[x, a, b],
(11.5.2)
±P ∈E[N ]\{0}
wobei E[N ] die Punkte der Ordnung N bezeichnet und x(P ) die x-Koordinate von P . Das Polynom hat
Ordnung (N 2 − 1)/2, da es mit Ausnahme von 0 zu jeder x-Koordinate zwei Punkte auf E gibt.
89
11 Elliptische Kurven über endlichen Körpern
11.5.3 (Rekursionsformel). Die ersten Divisionspolynome sind
ψ0 = 0,
ψ1 = 1,
ψ2 = 2y,
(11.5.3)
(11.5.4)
(11.5.5)
ψ3 = 3x4 + 6ax2 + 12bx − a2 ,
6
4
3
(11.5.6)
2 2
2
2
ψ4 = 4y(x + 5ax + 20bx − 5a x − 4abx − 8b − a );
(11.5.7)
und allgemein lässt sich folgende Rekursionsformel herleiten:
3
ψ2N +1 = ψN +2 ψN
− ψN −1 ψN +1 ,
ψ2N
N
2
2
,
= (ψN +2 ψN
−1 − ψN −2 ψN +1 )
2y
N ≥ 2,
(11.5.8)
N >2
(11.5.9)
Dadurch ergibt sich nun die folgende Formel für die Multiplikation mit N
2
2
ψN −1 ψN +1 ψN +2 ψN
−1 − ψN −2 ψN +1
[N ](x, y) = x −
,
.
2
3
ψN
4yψN
90
(11.5.10)
Kapitel
12
Rationale Punkte elliptischer Kurven
Catherina Köhl, 26.07.2007
Basierend auf: [Men93, Chapter 7]
12.1 Einleitung
In diesem Kapitel werden wir uns mit dem Zählen rationaler Punkte auf elliptischen Kurven beschäftigen.
Dabei beschränken wir uns – außerhalb dieses Einleitungsabschnitts – auf nicht-supersinguläre Kurven
über Körpern der Charakteristik 2 und Ordnung 2m , welche die in der praktischen Anwendung – Verschlüsselung mittels elliptischer Kurven – verwendeten Kurven sind.
Einige Definitionen und Sätze, die wir verwenden werden, zur Wiederholung:
Die Fq -rationalen Punkte E(Fq ) einer gegebenen elliptischen Kurve sind, wie bereits im Kapitel Isomor”
phism Classes of Elliptic Curves“ dargestellt wurde, die Punkte P = (x, y) ∈ Fq × Fq , die auf E liegen,
zusammen mit dem Punkt O. Sie lösen also die zugehörige Weierstraßgleichung, wie in diesem Kapitel
hier Gleichung 12.2.1.
Definition 12.1.1. Die Anzahl der Fq -rationalen Punkte einer Kurve E wird mit #E(Fq ) bezeichnet.
An der Weierstraßgleichung erkennt man, dass für ein x ∈ Fq höchstens zwei Lösungen der Gleichung
existieren. Daraus folgt, dass
#E(Fq ) ≤ 2q + 1.
Das Satz von Hasse macht eine Aussage darüber, in welchen Grenzen sich #E(Fq ) befindet.
√
Satz 12.1.2. Sei #E(Fq ) = q + 1 − t. Dann gilt |t| ≤ 2 q.
Definition 12.1.3. Eine elliptische Kurve E heißt supersingulär, falls p teilt t, wobei wie immer
#E(Fq ) = q + 1 − t und pe = q.
Ist dies nicht der Fall, heißt E nicht-supersingulär.
Satz 12.1.4. E(Fq ) ist eine abelsche Gruppe von Rang 1 oder 2. Sie hat Typ (n1 , n2 ), also E(Fq ) ≡
Zn1 ⊕ Zn2 , wobei n2 |n1 und n2 |q − 1.
Wir bezeichnen mit E[n] := E(F̄q )[n] die Untergruppe der n-Torsionspunkte von E(F̄q ), also all diejenigen Punkte P , für die nP = O gilt.
In der folgenden Definition und Satz gehen wir von einer Kurve mit Weierstraßgleichung y 2 = x3 +ax+b
aus – auf andere Kurven überträgt sich das entsprechend, ist aber u.U. deutlich komplizierter bzw. besteht aus ausufernden Formeln.
Die Divisionspolynome einer elliptischen Kurve sind rekursiv definierte Funktionen Ψn (x, y) ∈ Fq [x, y], n ≥
0:
Ψ0 (x, y) = 0
Ψ1 (x, y) = 1
Ψ2 (x, y) = 2y
91
12 Rationale Punkte elliptischer Kurven
Ψ3 (x, y) = 3x4 + 6ax2 + 12bx − a2
Ψ4 (x, y) = 4y(x6 + 5ax4 + 20bx3 − 5a2 x2 − 4abx − 8b2 − a3 )
Ψ2n+1 (x, y) = Ψn (Ψn+2 Ψn − 12 − Ψn−2 Ψ2n+1 )/2y,
Ψ2n (x, y) =
Ψn+2 Ψ3n
−
Ψ3n+1 Ψn−1 ,
n≥2
n≥3
Divisionspolynome sind sehr praktisch im Zusammenhang mit den Torsionsgruppen, so gilt zum Beispiel
Folgendes:
Satz 12.1.5. Sei P = (x, y) ∈ E \ {O}.
(i) P ∈ E[n] genau dann, wenn Ψn (x, y) = 0.
(ii) Gilt P ∈
/ E[2], so ist P ∈ E[n] genau dann wenn fn (x) = 0, wobei fn durch Ψ gewonnen wird,
indem man wiederholt y 2 durch x3 + ax + b ersetzt und im Fall n gerade noch einmal durch y teilt.
(iii) Ist P ∈
/ E[n], dann gilt mit Ψn := Ψn (x, y):
Ψn−1 Ψn+1 Ψn+2 Ψ2n−1 − Ψn−2 Ψ2n+1
nP = x −
,
.
Ψ2n
4yΨ3n
Die n-Torsions-Untergruppen werden uns später noch helfen auch die rationalen Punkte der komplizierten Kurven von Charakteristik 2, Ordnung 2m zu zählen.
12.2 Grundlagen
Von hier ab soll gelten, wenn nicht explizit anders gesagt, dass q = 2m und K = Fq . Wir wissen aus
dem vorletzten Kapitel, Isomorphism Classes of Elliptic Curves“, dass die Weierstraßgleichung der Kurve
”
E = E(Fq ) in diesem Fall die Form
a2 ∈ {0, γ}, γ ∈ K, Tr(γ) = 1, a6 ∈ K ∗
y 2 + xy = x3 + a2 x2 + a6 ,
annimmt, und dass wir sogar von der Form
y 2 + xy = x3 + a6 ,
a6 ∈ K ∗
(12.2.1)
ausgehen können. Die Anzahl rationaler Punkte auf den beiden Kurven ergibt summiert 2q + 2, sie sind
ein Twist-Paar – vergleiche Definition 11.2.5.
Die Divisionspolynome sehen in diesem Fall, bei einer nicht-supersingulären Kurve der Charakteristik
2, etwas anders aus:
f0 = 0
f1 = 1
f2 = x
f3 = x4 + x3 + a6
f4 = x6 + a6 x2
3
f2n+1 = fn3 fn+2 + fn−1 fn+1
,
2
2
f2n = fn−1
fn fn+2 + fn−2 fn fn+1
,
n≥2
n≥3
Satz 12.2.1. Sei P = (x, y) ∈ E ∗ und n ≥ 0. Dann ist P ∈ E[n] genau dann wenn fn (x) = 0.
Beweis. Definitionen von Divisionspolynomen und Addition auf der Kurve – siehe Kapitel Einführung
”
in elliptische Kurven“ –, Induktion, wildes Herumgerechne.
92
12 Rationale Punkte elliptischer Kurven
Satz 12.2.2. Sei n ≥ 2, P = (x, y) ∈ E ∗ , nP 6= O. (Es sei fn := fn (x))
Dann gilt für nP = (x̄, ȳ)
fn−1 fn+1
,
x̄ = x +
fn2
ȳ = x + y +
2
fn−2 fn+1
fn−1 fn+1
fn−1 fn+1
+
+ (x2 + y)
.
2
3
fn
xfn
xfn2
Beweis. Erneut viel Verbrauch von Tinte bzw. Kohle und Papier; keine Kniffs außer Definitionen und
Induktion.
Definition 12.2.3. Der Frobenius Endomorphismus ist die Abbildung Φ ∈ EndF̄q E, die definiert
ist durch F̄q × F̄q 3 (x, y) 7→ (xq , y q ), O 7→ O.
In EndK E genügt Φ der Gleichung
Φ2 − tΦ + q = 0
für ein t ∈ Z. Es heißt t die Spur des Frobenius Endomorphismus.
12.3 Schoofs Algorithmus I: Grundriss
Hier nun der Algorithmus von Schoof zur Bestimmung von #E(Fq ) für K = Fq , q = 2m und E gegeben
durch Gleichung 12.2.1, wie wir es für die Anwendung gerne hätten.
QL0
√
Sei #E(Fq ) = q + 1 − t. Wir wählen eine Zahl L0 derart, dass l=3,lP rim l > 4 q. Wir berechnen t mod l
√
für jede ungerade Primzahl l ≤ L0 , und da |t| ≤ 2 q können wir damit durch den Chinesischen Restsatz
t bestimmen.
Sei P = (x, y) ∈ E[l]∗ und sei k ≡ q mod l, 0 ≤ k ≤ l − 1. Wir suchen nach einer Zahl τ, 0 ≤ τ ≤ l − 1,
so dass
Φ2 (P ) + kP = τ Φ(P )
(12.3.1)
Da nämlich Φ2 (P ) + kP = tΦ(P ) ist und da Φ(P ) ein Punkt der Ordnung l ist, gilt bei solcherlei
gefundenem τ :
(t − τ )Φ(P ) = O =⇒ t ≡ τ mod l
Das Problem an der Implementierung dieser Idee ist, dass die Koordinaten von P in K̄ liegen, aber
nicht zwangsweise in einer kleinen Erweiterung von K, so dass sie u.U. nicht effizient gefunden werden
können.
Wir lösen diese Problem, indem wir beobachten, dass x eine Wurzel des Divisionspolynoms fl (x) ∈
K[x] ist, und wir sogar Satz 12.2.2 verwenden können, um kP und τ Φ(P ) darzustellen, wobei wir die
Koordinaten dieser Ausdrücke als rationale Funktionen in x und y auffassen. Sodann können wir Φ2 (P )
und kP addieren, um zu unserem Ergebnis zu gelangen.
Um zu überprüfen, ob es solch ein P ∈ E[l]∗ gibt, das 12.3.1 erfüllt, gehen wir wie folgt vor:
(a) Berechne die x-Koordinaten der Ausdrücke – s.o. – von Φ2 (P ) + kP und τ Φ(P ).
(b) Eliminiere aus diesen alle Nenner und die Variable y, bis eine polynomielle Gleichung h1 (x) = 0
vorliegt.
(c) Berechne H1 (x) = gcd(h1 (x), fl (x))
(i) Ist H1 (x) = 1, so gibt es kein P ∈ E[l]∗ , das Gleichung 12.3.1 erfüllt.
(ii) Ist H1 (x) 6= 1, so gibt es solch ein P ∈ E[l]∗ mit Φ2 (P ) + kP = ±τ Φ(P ).
(d) Um das korrekte Vorzeichen von τ zu bestimmen, berechne die y-Koordinaten der Ausdrücke für
Φ2 (P ) + kP und τ Φ(P ), eliminiere Nenner und die Variable y, um ein Polynom h2 (x) zu erhalten.
(e) Berechne H2 (x) = gcd(h2 (x), fl (x)).
93
12 Rationale Punkte elliptischer Kurven
(i) Ist H2 (x) = 1, so erfüllt P die Gleichung Φ2 (P ) + kP = −τ Φ(P ).
(ii) Ist H2 (x) 6= 1, so erfüllt P Gleichung 12.3.1.
Die Laufzeit von O(log8 q) Bitoperationen ergibt sich wie folgt: Die Bestimmung von L0 benötigt
2
2
O(log q). Für jedes l besteht der Hauptaufwand bei der Suche nach τ in der Berechnung von xq , y q mod
2
2
fl (x) (Φ2 (P ) = (xq , y q )).
Da der Grad von fl (x) gleich O(log2 q) ist, können diese Reste in O(log5 q) oder O(log7 q) berechnet
werden.
In besonderen Methoden zur schnellen Berechnung von Modulo-Operationen kann dieser Aufwand auf
O(log5+ q) gesenkt werden, allerdings funktionieren diese Methoden nur für sehr großes q.
√
Es gilt #E(Fq ) = q+1−t, wobei |t| ≤ 2 q, und wir sehen wir am Polynom f4 , dass #E(Fq ) ≡ 0 mod 4.
√
Dies folgt daraus, dass x = 4 a6 eine Wurzel von f4 in Fq ist und die Gleichung 12.2.1 eine Lösung in Fq
für dieses x hat. Also hat E(Fq ) einen Punkt der Ordnung 4 und wir können leicht t mod 4 bestimmen.
Folgend Methoden, um t mod l für ungerade Primzahlen l zu berechnen.
12.4 Schoofs Algorithmus II: Suche nach Eigenwerten
Wir betrachten Φ als lineare Transformation auf E[l], dessen charakteristische Gleichung also Φ2 −tΦ+q =
0 ist.
2
Wir erhalten Lösungen dieser Gleichung und also Eigenwerte
q von Φ in Fl , wenn t − 4q eine Quadratzahl
modl ist (p-q-Formel: Eine Lösung für Φ existiert, wenn
t2
4
− q eine Lösung hat).
Ist s ein Eigenwert von Φ, so ist der Eigenraum zu s die Menge {P ∈ E[l] : Φ(P ) = sP }.
Wir nehmen an, dass s, r Eigenwerte von Φ in Fl sind. Folgende Beobachtungen ergeben sich:
(i) Wegen s2 − ts + q = 0 gilt t ≡ s +
q
s
mod l.
(ii) Ist s 6= r, so nennen wir S die Menge der x-Koordinaten von nicht-trivialen Punkten im eindimensionalen Eigenraum zu s.
Es folgt aus Φ(P ) = sP , dass Φ(Φ(P )) = sΦ(P ). Es ist also mit α ∈ S auch αq ∈ S.
Q
Daraus folgt, dass f (x) = α∈S (x − α) ein Faktor vom Grad (l−1)
von fl (x) in K[x] ist.
2
Sei w eine ganze Zahl, 1 ≤ w ≤ (l−1)
2 . Wir testen, ob ±w ein Eigenwert von Φ ist, indem wir bestimmen,
ob es einen Punkt P = (x, y) ∈ E[l]∗ gibt mit Φ(P ) = ±wP :
Wir bestimmen die x-Koordinaten von Φ(P ) und ±wP um
xq = x +
fw−1 fw+1
fw2
zu erhalten. Damit haben wir einen Eigenwert genau dann, wenn
g1 (x) = gcd((xq + x)fw2 + fw−1 fw+1 , fl ) 6= 1
Bemerkung 12.4.1. Der Hauptaufwand dieser Suche besteht in der Berechnung von xq mod fl (x).
Ist g1 (x) 6= 1, so müssen wir prüfen ob Φ(P ) = wP oder Φ(P ) = −wP . Die Wurzeln von g1 (x) sind
die x-Koordinaten von genau den Punkten P ∈ E[l]∗ , für die dieser Zusammenhang, Φ(P ) = ±wP , gilt.
Sind die Eigenwerte von Φ gerade w und −w, so gilt t ≡ 0 mod l, und dies erkennen wir daran, dass
deg g1 (x) = l − 1.
Sind die Eigenwerte von Φ gleich, so gilt entweder gy (x) = fl (x), oder deg g1 (x) = (l−1)
2 . Wenn nur einer
(l−1)
der beiden Werte w und −w ein Eigenwert von Φ in Fl ist, so ist deg g1 (x) = 2 .
In den folgenden Berechnungen sind alle Polynome modg1 (x) zu lesen.
Berechnen wir die y-Koordinaten von Φ(P ) und −wP und eliminieren die Nenner, so erhalten wir
2
h(x, y) = xfw3 (y + y q ) + fw−2 fw+1
+ (x2 + y)fw−1 fw fw+1 = 0.
94
12 Rationale Punkte elliptischer Kurven
Durch y 2 = x3 + a6 − xy können wir y q durch wiederholtes Quadrieren von y 2 erhalten.
So erhalten wir nach (m − 1)-maligem Quadrieren und durch Substitution von y 2 mit x3 ± xy + a6 an
den entsprechenden Stellen
y q = a(x) + b(x)y,
(12.4.1)
a(x) und b(x) wie gesagt modg1 (x) genommen.
Gleichung 12.4.1 reduziert sich damit zu
ā(x) + b̄(x)y = 0.
Wir substituieren y =
ā(x)
b̄(x)
in Gleichung 12.2.1 und erhalten
h̄(x) = ā(x)2 + ā(x)b̄(x)x + (x3 + a6 )b̄(x)2 = 0.
Schließlich ist somit, wenn gcd(h̄(x), g1 (x)) = 1, t ≡ w + wq mod l, wenn nicht, so gilt t ≡ −w − wq mod l.
Diese Methode Eigenwerte von Φ zu suchen kann leicht auch auf den Fall, dass q eine ungerade Primpotenz
ist, übertragen werden.
12.5 Schoofs Algorithmus III: Schoofs Algorithmus
Hat Φ keinen Eigenwert in Fl , so wenden wir den folgend beschriebenen Algorithmus von Schoof an um
τ zu bestimmen.
q
2
Es hat Φ keinen Eigenwert, es hat also 2t ± t4 − q keine Lösung, ergo ist t2 − 4q keine Quadratzahl
modl.
Folgend Schoofs Algorithmus:
(1) Prüfen, ob es ein P = (x, y) ∈ E[l]∗ gibt mit Φ2 (P ) = ±kP , q ≡ k mod l.
2
Dies ist äquivalent zu gcd((xq + x)fk2 + fk−1 fk+1 , fl ) 6= 1. (nachrechnen)
Bemerkung 12.5.1. Ist t ≡ 0 mod l, so gilt 0 = Φ2 (P ) − tΦ(P ) + qP = Φ2 (P ) + kP , weshalb gilt
Φ2 (P ) = −kP .
Ist auf der anderen Seite Φ2 (P ) = kP , so folgt 0 = 2kP − tΦ(P ), und damit Φ(P ) = 2k
t P , also hat
Φ einen Eigenwert in Fl . Eine Annahme war aber, dass t2 − q keine Quadratzahl mod l ist. Es folgt,
dass Φ2 (P ) = −kP . Daraus folgt, dass tΦ(P ) = O und also t ≡ 0 mod l.
(2) Gehen wir nun davon aus, dass es kein solches P ∈ E[l]∗ mit Φ2 (P ) = ±kP gibt.
Wir suchen also nach einem τ wie in Formel 12.3.1 für jedes prime l.
Wegen Φ2 (P ) 6= ±kP können wir die Formeln zur Addition von Punkten verwenden um Φ2 (P )+kP
auszudrücken, dabei bezeichne (P )x die x-Koordinate des Punktes P :
Für k ≥ 2 gilt:
fq fq
(±τ Φ(P ))x = xq + τ −12qτ +1
fτ
2
(Φ2 (P ) + kP )x = xq + x +
mit
fk−1 fk+1
+ λ2 + λ
fk2
2
λ=
2
+ (x2 + x + y)(fk−1 fk fk+1 )
(y q + y + x)xfk3 + fk−2 fk+1
xfk3 (x + xq2 ) + xfk−1 fk fk+1
Ähnliches können wir auch für k = 1 aufstellen.
(3) Berechne die x-Koordinaten von Φ2 (P ) + kP und ±τ Φ(P ) und forme sie um – entferne Nenner und
y, bis man daraus eine Identität in x h3 (x) = 0 erhält (siehe auch Abschnitt 12.3). Dann existiert
ein P ∈ E[l]∗ mit Φ2 (P ) + kP = ±τ Φ(P ) genau dann wenn h4 (x) = gcd(h3 (x), fl (x)) 6= 1.
95
12 Rationale Punkte elliptischer Kurven
2
(4) Wiederhole dies für jedes τ mit 1 ≤ τ ≤ l−1
2 , für das τ − 4q keine Quadratzahl modl ist.
Gilt h4 (x) 6= 0, so können wir das Vorzeichen von t berechnen, indem wir erst die y-Koordinaten
der beiden Ausdrücke bestimmen; erneut betrachten wir nur den Fall τ ≥ 2:
(τ Φ(P ))y = xq + y q +
fτq−1 fτq+1
fτ2q
+
fτ2q−2 fτq+1
xq fτ3q
2
+ (x2q + y q )
2
(Φ2 (P ) + kP )y = λ(xq + x3 ) + x3 + y q ,
fτq−1 fτq+1
xq fτ2q
,
x3 = (Φ2 (P ) + kP )x
mit λ wie in Punkt (2).
(5) Wir fahren fort Nenner und y zu eliminieren, um eine Identität h5 (x) = 0 zu erhalten.
Ist gcd(fl (x), h5 (x)) 6= 1, so gilt t = τ , sonst t = −τ .
2
2
Bemerkung 12.5.2. Der Aufwand hängt bei dieser Methode an der Berechnung von xq , y q mod fl (x).
In der Anwendung werden wir zur Berechnung von t mod l daher immer zuerst versuchen einen Eigenwert von Φ in Fl zu finden und erst, wenn das nicht gelingt, Schoofs Algorithmus anwenden. Die Bestimmung durch Eigenwerte ist nämlich schneller, da man nur xq mod fl (x) bestimmen muss und nicht
2
2
xq , xq , y q , y q mod fl (x).
12.6 Schoofs Algorithmus IV: t mod l = 2c bestimmen
Lemma 12.6.1. Ist l = 2c , so hat fl (x) einen Faktor f (x) vom Grad l/4 in K[x].
Beweis. Da E[l] ∼
= Zl , hat fl (x) höchstens l/2 verschiedene Wurzeln. Von diesen sind nur l/4 die xKoordinaten von Punkten der Ordnung l. Also hat fl (x) einen Faktor f (x) vom Grad l/4 in K[x], dessen
Wurzeln genau die x-Koordinaten der Punkte der Ordnung l sind.
Lemma 12.6.2. Sei l = 2c . Wir definieren die Sequenz von Polynomen {gx (x)} in K[x] wie folgt:
g0 = x
g1 = b1 + x,
2
gi = gi−1
+ bi x
i−2
Y
gj2 ,
a6 = b41
a6 = b2i
i+1
, i ≥ 2.
j=1
Dann ist f (x) = gc−1 (x) ein Faktor des Grades l/4 von fl (x) in K[x].
Insbesondere sind die Wurzeln von f (x) genau die x-Koordinaten der Punkte der Ordnung l.
Beweis. Wir definieren die nächste Sequenz von Polynomen hi (x) in K[x] durch
h0 = 1,
h1 = x,
hi = x
i
Y
gj2 , i ≥ 2.
j=1
Sei P = (x, y) ∈ E ∗ , (2n P )x = Gn /Hn , für n ≥ 0.
Aus den Formeln zur Verdopplung eines Punktes können wir erkennen, dass Gn und Hn Polynome in
K[x] sind.
n+1
n
Wir zeigen per Induktion, dass Gn = (gn )2
und Hn = (hn )2 für n ≥ 1:
n=1:
G1
g4
(b1 + x)4
a6
= 12 =
= 2 + x2 ,
H1
h1
x2
x
was in der Tat (2P )x ist.
Nehmen wir an, dass die zu beweisende Aussage für n = i stimmt, erhalten wir:
(2i+1 P )x =
=
a6 Hi2
G2i
Gi+1
= (2i P + 2i P )x = a6
+
Hi+1
G2i
Hi2
(b1 Hi + Gi )4
(bi+1 hi + gi2 )2
=
(Gi Hi )2
(gi2 hi )2i+1
96
i+1
i+1
=
(gi+1 )2
.
(gi+1 )2i+1
12 Rationale Punkte elliptischer Kurven
Äquivalent zeigt man, dass deg gn = 2n−1 für n ≥ 1, und gcd(gn , hn ) = 1 für n ≥ 0. Sei nun P = (x̄, ȳ) ∈
E∗.
Da (2c−1 P )x =
c
(gc−1 )2
, ist
(hc−1 )2c−1
Qc−2 2
hc−1 = g0 j=1 gj
ord(P ) = 2c genau dann wenn gc−1 (x̄) = 0 und gi (x̄) 6= 0 für 0 ≤ i ≤ c − 2.
und gcd(gc−1 , hc−1 ) = 1, ist wiederum ord(P ) = 2c genau dann wenn
Da aber
gc−1 (x̄) = 0.
Schließlich muss, da deg gc−1 = l/4, der gesuchte Faktor f (x) in der Tat gc−1 (x) sein.
Wird q von l = 2c geteilt, gilt q ≡ 0 mod l. Also ist für P ∈ E[l]∗ , dass Φ2 (P ) − τ Φ(P ) = O. Die
Definition des Frobenius-Endomorphismus Φ besagt, dass Φ(P ) 6= O für P 6= O. Also ist Φ(P ) − τ P = O
und ergo τ ein Eigenwert von Φ in Zl . Wir wissen, dass #E(Fq ) ≡ 0 mod 4, woraus folgt, dass t ≡ 1 mod 4,
sowie τ ≡ 1 mod 4.
Daraus ergeben sich nur zwei Möglichkeiten für τ mod 8. Den richtigen Eigenwert bestimmen wir durch
einen Faktor von f8 (x), den wir wie oben angegeben feststellen, und unsere Methode Eigenwerte zu finden.
Dieses Verfahren kann ebenso verwendet werden um Eigenwerte für l = 16, 32, 64, ... zu finden. Effizient
ist diese Methode wenn l eine kleine Potenz von 2 ist.
12.7 Schoofs Algorithmus V: Baby-Step Giant-Step-Algorithmus
Die Berechnung von t mod l durch Schoofs Algorithmus ist für kleine Primzahlen l zwar einfach, hat aber
2
eine sehr schlechte Komplexität, da deg(fl (x)) = (l 2−1) .
Deswegen kombinieren wir Schoofs Algorithmus mit Shanks Baby-step Giant-step-Algorithmus.
Wir berechnen #E(Fq ) mod L = l0 · l1 · l2 · · · lr , wobei l1 , ..., lr kleine Primzahlen sind und l0 eine kleine
Potenz von 2 und wenden dann den Baby-step Giant-step-Algorithmus an, um #E(Fq ) zu bestimmen:
(i) Wähle einen zufälligen Punkt P ∈ E(Fq ) und setze
q
√
k = min{k 0 ≥ d L · 4 · qe}.
√
(ii) Berechne iP für i ≡ (bq + 1 − 2 qc − #E(Fq )) mod L und 0 ≤ i ≤ k − 1. Erhalten wir dabei iP = O
für ein i, gehe zurück zu 1. Sonst speichere i und die ersten 32 Bits der x-Koordinate von iP in
einer Tabelle, sortiert nach dem Eintrag iP .
(iii) Setzte Q = kP .
(iv) Berechne
√
Hj = bq + 1 − 2 qcP + jQ
für j = 1, 2, . . . , Lk und teste ob die ersten 32 Bits der x-Koordinate von Hj mit den ersten 32 Bits
der x-Koordinate von iP übereinstimmen für irgendein i.
(a) Ja, tun sie:
Teste, ob Hj = iP .
Haben wir nur ein einziges Paar (i, j) mit Hj = iP , so gilt
√
#E(Fq ) = bq + 1 − 2 qc + kj − i
und wir sind fertig.
(b) Nein, sie stimmen nicht überein:
Gehe zurück zu Schritt 1.
Korrektheit und Laufzeit des Algorithmus:
√
Da P ∈ E(Fq ) wird #E(Fq ) von ord(P ) geteilt. Wenn es also eine einzelne Zahl r ∈ [q + 1 − 2 q, q +
√
1 + 2 q] derart gibt, dass rP = O, dann gilt r = #E(Fq ). Gibt es eine solche Zahl nicht, so gilt
√
ord(P ) ≤ 4 q.
√
Welcher Fall eintritt, erfährt man in Schritt (4), so dass wir hoffen, dass in Schritt (1) gilt ord(P ) > 4 q,
um das schöne Ergebnis zu erhalten.
Das ist auch tatsächlich mit hoher Wahrscheinlichkeit der Fall, was aus den Eigenschaften von E(Fq )
√
√
folgt (E(Fq ) ∼
= Zn1 ⊕ Zn2 mit n2 |n1 , n2 |(q − 1), also n1 n2 , n1 4 q). Ist jedoch n1 ≤ 4 q, so gibt
97
12 Rationale Punkte elliptischer Kurven
√
es keinen Punkt in E(Fq ) mit Ordnung größer 4 q, und der Algorithmus wird jedes Mal in Schritt (4)
fehlschlagen. In diesem Fall berechnen wird ord(P ) und wenden den Algorithmus wiederholt an, bis wir
√
einen Punkt P mit ord(P ) ≥ 4( q − 1) finden. Dann suchen wir wiederum einen Punkt P 0 mit Ordnung
≥ 3 in der Faktorgruppe E(Fq )/ < P >.
1
Die Tabelle in Schritt (2) hat ungefähr S =
4
2q
√
L
Einträge, die mit O(S) Operationen berechnet werden.
Die Tabelle wird dann sortiert vermittels O(S log S) Vergleichen. Das Berechnen von Hj für j = 1, 2, . . . , Lk
benötigt O(S) Operationen, die binäre Suche braucht O(log S) Vergleiche.
1
q)
√
Dementsprechend braucht der gesamte Algorithmus O(q 4 (log
) Bits Speicherplatz.
L
12.8 Schoofs Algorithmus VI: Ergebnisse überprüfen
Wir haben also durch Schoofs Algorithmus #E(Fq ) = q + 1 − t berechnet durch Bestimmen der einzigen
Unbekannten t. Hat der Algorithmus uns ein t0 ausgegeben, so dass also gelten soll #E(Fq ) = q + 1 − t0 ,
überprüfen wir die Richtigkeit von t = t0 wie folgt:
Sei P der Punkt aus dem Baby-step Giant-step-Algorithmus. Da der Algorithmus sich erfolgreich beendet
√
hat, gehen wir davon aus, dass ord(P ) > 4 q.
Wir überprüfen erst, ob (q + 1 − t0 )P = O.
Ist es das nicht, so ist t 6= t0 . Dann faktorisieren wir q+1−t0 , was leicht zu berechnen ist, da q+1−t0 ≤ 1050
für die für uns interessanten q. Haben wir die Faktorisierung von q + 1 − t0 , können wir ord(P ) einfach
√
bestimmen und überprüfen, ob ord(P ) > 4 q. Wegen (q + 1 − t)P = O und (q + 1 − t0 )P = O ist
√
√
(t − t0 )P = O. Und schließlich ist |t − t0 | ≤ 4 q, da ord(P ) > 4 q, und daraus folgt t = t0 .
√
Diese Überprüfung funktioniert allerdings nur, wenn n1 > 4 q, was allerdings für die allermeisten Kurven
der Fall ist.
12.9 Forschung
Wie in Sektion 4 dargestellt wurde, gibt es einen Faktor f (x) vom Grad l−1
2 von fl (x) in K[x] für alle
Primzahlen l, für die Φ verschiedene Eigenwerte in Fl hat. Ist dieser Faktor existent und sogar bekannt,
so kann er statt fl (x) in Schoofs Algorithmus verwendet werden und maßgeblich Zeit gewonnen werden.
Es gibt sogar Arbeiten, die zeigen (Elkies, Miller), wie man diesen Faktor f (x) konstruiert ohne zuvor
fl (x) explizit zu kennen. Diese Methode kann man noch weiter vereinfachen durch eine nur einmal auszuführende Arbeit.
Durch all diese Maßnahmen reduziert man den Aufwand, um #E(Fq ) zu berechnen, von O(log8 q) auf
O(log6 q) Bitoperationen. Die Aufwandsabschätzung von O(log6 q) ist allerdings nicht vollständig bewiesen, da von Annahmen wie t2 − 4q ist eine Quadratzahl modl für ungefähr die Hälfte aller Primzahlen
”
l“ ausgegangen wird.
Auch ist diese Methoden nur für Fälle mit q eine ungerade Primzahl angegeben, und die Verallgemeinerung hin zu anderen Kurven ist nicht offensichtlich.
Eine andere vorgestellte neuere Methode nutzt modulare Gleichungen für die Berechnung von #E(Fq ).
Für jede ungerade Primzahl l wird hierbei eine Operation in K[x] modulo einem Polynom des Grades
2
l + 1 statt modulo fl (x) von Grad (l 2−1) vorgenommen. Jede Iteration bestimmt, dass t mod l ∈ Sl , wobei
Sl eine Untermenge von {0, 1, 2, . . . , l} ist, und wo gilt |Sl | < 2l . Diese Informationen für verschiedene l
werden dann kombiniert, um t zu erhalten - wie wir es ja auch mit dem Chinesischen Restsatz taten.
Dieser Algorithmus wurde nicht streng analysiert, erwies sich aber in der Praxis als sehr annehmbar.
In den letzten Jahren wurden einige kompliziertere Methoden entwickelt, die den Rechenaufwand und die
benötigte Speicherkapazität signifikant reduzieren gegenüber dem in diesem Kapitel vorgestellten Verfahren. Erwähnenswert sind hierbei zum Beispiel das Werk von Fourquet, Gaudry und Harley, und auch Satohs Algorithmus (Satoh-Skjernaa-Taguchi), der eine Laufzeit von O(q 3 log q log log q) und Speicherplatzverbrauch von O(q 2 ) hat. Kürzlich stellte Harley einen Algorithmus vor, der sogar in O(q 2 (log q)2 log log q)
läuft und ebenfalls O(q 2 ) Speicher benötigt.
98
Chapter
13
Factoring integers with elliptic curves
Stefan Witzel, 26.07.2007
Based on: [Len87]
The aim of this chapter is to introduce Lenstra’s elliptic curve method, an algorithm to factor integers.
Lenstra extended an idea that Pollard had used before in his p − 1 method. Since Pollard’s method uses
simpler structures we will present it first before actually regarding Lenstra’s ECM.
Both methods are based on the fact that if n were prime, then Z/nZ would be a field. Hence when it
is not, one has to notice at some point. In Pollard’s approach what one notices is in fact, that Z/nZ \ {0}
is not a group with the usual multiplication. With Lenstra’s method one notices that elliptic curves over
Z/nZ are no groups in the way they would if n were prime.
13.1 Pollard’s p − 1 method
Before approaching the actual subject, we shortly fix notation and recall some elementary group theoretical facts.
Notation 13.1.1. Let R be a ring. We say that d ∈ R divides n ∈ R if there is a k ∈ R such that
d · k = n. We write d|n and call d a divisor of n. If in addition 1 < d < n, then d is a non-trivial divisor
of n.
Notation 13.1.2. If not stated otherwise, n will be an integer (that we usually want to factor), p and
q will be primes (often dividing n) and d will be a non-trivial divisor of n. We denote the field with p
elements by Fp . If A is a finite set, we denote its cardinality by #A.
Definition 13.1.3. Let G be a group and g ∈ G. The group generated by g is the set {g k |k ∈ Z} together
with the group operation inherited from G.
The order of a group G is its cardinality ord(G) = #G. The order of an element g of G is the order
of the group hgi generated by g.
Notation 13.1.4. The invertible elements of a ring R are called units. The multiplicative
group of units
×
×
of R is denoted by R . Euler’s totient function ϕ : Z → N is given by n 7→ ord (Z/nZ) .
Remark 13.1.5. Clearly φ(p) = p − 1 if and only if p is a prime (if and only if Z/pZ is a field).
Lemma 13.1.6 (Lagrange). In a finite group G the order of an element g ∈ G divides the group order,
ord(g)| ord(G).
Corollary 13.1.7 (Little Fermat). For a prime p ∈ Z and a ∈ Z with p - a the congruence
ap−1 ≡ 1 mod p
holds.
We also recall the structure of finite abelian groups, in particular the Chinese remainder theorem.
Though this is not necessary for the description and analysis of the p − 1 method, it is extremely helpful
to understand what is actually happening.
99
13 Factoring integers with elliptic curves
Theorem 13.1.8 (Chinese Remainder Theorem). Let n1 , . . . , nk ∈ N with gcd(ni , nj ) = 1, i 6= j and let
n = n1 ·. . .·nk . Then the map φ : Z/nZ → Z/n1 Z×. . .×Z/nk Z that maps a+nZ to (a+n1 Z, . . . , a+nk Z)
is well defined and an isomorphism of rings.
×
Example 13.1.9. Suppose n = p · q for p and q prime and let x ∈ (Z/nZ) . Then xp−1 + nZ corresponds
to (1+pZ, xp−1 +qZ) by the above isomorphism. Further d = xp−1 −1+nZ corresponds to (0+pZ, xp−1 −
1 + qZ). In particular d has no multiplicative inverse in n, the reason being, that p divides n.
Of course one does not know p in advance but the argument works still when p − 1 is replaced by a
multiple.
Though this example is not quite the generic case (n might contain powers of primes – and more than
two prime factors of course), this is the example one should think of when reading about the p − 1 method
for the first time. It is also is some sense the “worst case”.
Lemma 13.1.10. Let a, b ∈ Z. There is a positive number gcd(a, b) ∈ Z such that aZ ∩ bZ = gcd(a, b)Z.
Proof. The extended Euclid’s algorithm below computes gcd(a, b) and x, y such that xa + yb = gcd(a, b).
Correctness is shown by induction.
Algorithm 13.1.11 (Extended Euclid’s). Given a, b ∈ Z, the algorithm computes gcd(a, b) and x, y ∈ Z
such that xa + yb = gcd(a, b).
1: set r = a mod b, q = a div b
2: set x = y 0 = 1, y = x0 = 0
3: while r 6= 0 do
4:
set t = x, x = x0 ∗ q + x, x0 = t
5:
set t = y, y = y 0 ∗ q + x, y 0 = t
6:
set a = b
7:
set b = r
8:
set r = a mod b, q = a div b
9: end while
10: return b, x, y
Remark 13.1.12. This is not the most efficient algorithm, see [GG03].
This leads to the following algorithm, known as the p − 1 method, that attempts to factor an integer n.
The name arises from the fact that the algorithm calculates a large power xk in Z/nZ and finds a factor
of n if there is a prime factor p of n such that xk ≡ 1 mod p, i.e. if p − 1|k.
Algorithm 13.1.13 (Pollard). Given n, v, w ∈ Z with n, v, w > 1 and x ∈ Z/nZ the following algorithm
attempts to find a non-trivial divisor d of n.
1: for r from 2 to w do
2:
set e = blog(v)/ log(r)c
. e maximal with re ≤ v
e
3:
set k = k · r
4: end for
5: calculate xk − 1 mod n (by an algorithm analogous to 13.2.8)
6: if d = gcd(xk − 1, n) is non-trivial then
7:
return d
8: end if
9: return failure
Qw
Remark 13.1.14. The k = r=2 re(r) with e(r) maximal to satisfy re(r) ≤ v calculated in the loop
above is such that if any k 0 is smaller than v and has only prime factors smaller than w, then k 0 divides
k.
Lemma 13.1.15. Let n, v, w ∈ Z, n, v, w > 1 and x ∈ Z/nZ. If n has prime divisors p, q such that
(i) p ≤ v,
(ii) each prime l dividing p − 1 satisfies l ≤ w,
×
(iii) k does not divide the order of x in (Z/qZ) ,
then the above algorithm succeeds in finding a non-trivial divisor.
100
13 Factoring integers with elliptic curves
Proof. By the first two items above k divides p − 1, so by Fermat’s little theorem xk − 1 ≡ 0 mod p. But
by the third item xk − 1 6≡ 0 mod q, so in particular xk − 1 6≡ 0 mod n. As 1 6= p| gcd(xk − 1, n)|n but
n - gcd(xk − 1, n), we get that d = gcd(xk − 1, n) is indeed a non-trivial divisor.
Remark 13.1.16. This lemma is stated overly complicated. This is just to show the similarity to the
elliptic curve case (13.2.12).
If the algorithm 13.1.13 fails, it can be applied with higher bounds v and w. However if there is no
p such that p − 1 can be decomposed into small powers of small prime factors this may become too
expensive.
13.2 Lenstra’s ECM
13.2.1 Basics
The content of this section is based on the original paper [Len87]. We shall mainly concentrate on the
basic idea and therefore omit most proofs. The interested reader can find them in [Len87] if no other
reference is given. For basic facts about elliptic curves we refer to [Sil86, Chapter V].
The problem with Pollard’s method is that its success depends on whether or not n has a prime factor
p such that p − 1 factors into small powers of small primes. The advantage of using elliptic curves instead
of the multiplicative group of the field is that the order of the group is not fixed, but varies around p.
Instead of the condition that p − 1 be easily factorisable we obtain thus the condition that a number
“close to” p be easily factorisable. Hasse’s equations tells us how close to p the group order is.
Theorem 13.2.1 (Hasse). Let K be a field with q elements and E an elliptic curve defined over K.
Then
√
|#E(K) − (q + 1)| ≤ 2 q .
Definition 13.2.2. Let R be a ring. To define the projective plane over R we consider the set R3∗
of points (x, y, z) ∈ R3 such that x, y, z generate the unit ideal. If R is a field, these are all points
apart from (0, 0, 0), if R = Z/nZ, these are all points such that gcd(x, y, z, n) = 1. The group R× acts
on R3∗ by componentwise multiplication. The projective plane is the set of orbits under this action,
P2 (R) = R3∗ /R× .
We write (x : y : z) for the equivalence class of (x, y, z) and O for (0 : 1 : 0) ∈ P2 (R). We define Vn to
be
Vn = {(x : y : 1) ∈ P2 (Z/nZ)|x, y ∈ Z/nZ} ∪ {O} .
For P ∈ Vn and a prime p dividing n we set Pp to be the element of P2 (Fp ) obtained by reducing the
coordinates modulo p.
We denote by Ea,b ∈ R[X, Y, Z] the equation
Y 2 Z = X 3 + aXZ 2 + bZ 3 .
Its discriminant is ∆a,b = 4a3 + 27b2 .
The set of points Ea,b (R) is defined by
Ea,b (R) = {(x : y : z) ∈ P2 (R)|Ea,b (x, y, z) = 0} .
If 6∆a,b ∈ R× , then Ea,b is said to be an elliptic curve defined over R.
Remark 13.2.3. Note that Pp is well-defined (because p divides n) and has the property that Pp = Op
if and only if P = O (because of the way Vn was defined).
Fact 13.2.4. If Ea,b is an elliptic curve defined over a field F , then Ea,b (F ) is in a natural way an
abelian group. We take O to be the neutral element. Then −(x : y : z) = (x : −y : z) and the addition is
given by the following algorithm.
Algorithm 13.2.5 (Addition). Given a field K of characteristic distinct from 2 and 3, elements a, b ∈ K
such that ∆a,b 6= 0 and P = (xP : yP : zP ), Q = (xQ : yQ : zQ ) ∈ Ea,b (K), this algorithm computes
R = P + Q.
1: if P = O then
2:
return R = Q
101
13 Factoring integers with elliptic curves
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
else if Q = O then
return R = P
end if
if xP = xQ then
if yP = −yQ then
return R = O
else
set λ = (3x2P + a)(yP + yQ )−1
set xR = λ2 − xP − xQ , yR = λ(xP − xR ) − yP
return R = (xR : yR : 1)
end if
else
set λ = (yP − yQ )(xP − xQ )−1
set xR = λ2 − xP − xQ , yR = λ(xP − xR ) − yP
return R = (xR : yR : 1)
end if
. P = −Q
.P =Q
Remark 13.2.6. In the case where P = Q one could of course replace yP + yQ by 2yP and −xP − yQ
by −2xP . The same holds for the algorithm below.
The following algorithm is derived from the one above, and does in fact the same in the case where
Z/nZ is a field. If Z/nZ is not a field, and that is the case we are more interested in, the inversion may
fail, the reason being that an element to be inverted is not relatively prime to n. Hence whenever this
happens, we have found a non-trivial factor of n.
Algorithm 13.2.7 (Partial Addition). Given a, b, n ∈ Z with 6∆a,b 6≡ 0 mod n and P = (xP : yP :
zP ), Q = (xQ : yQ : zQ ) ∈ P2 (Z/nZ) the following algorithm either returns a non-trivial divisor d of n or
a point R = (xR : yR : zR ) such that if p is a prime dividing n and b ∈ Z/pZ is such that 6∆a,b 6≡ 0 mod p
and Pp , Qp ∈ Ea,b (Fp ), then Rp = Pp + Qp .
All calculations are performed modulo n.
1: if P = O then
2:
return R = Q
3: else if Q = O then
4:
return R = P
5: end if
6: calculate k, γ such that k = gcd(xP − xQ , n) ≡ γ(xP − xQ ) mod n using algorithm 13.1.11
7: if 1 < k < n then
8:
return d = k
9: else if k = n then
. xP = xQ
10:
calculate l, δ such that l = gcd(yP + yQ , n) ≡ δ(yP + yQ ) mod n using algorithm 13.1.11
11:
if 1 < l < n then
12:
return d = l
13:
else if l = n then
. yP = −yQ , i.e. P = −Q
14:
return R = O
15:
else
. P = Q, δ = (yP + yQ )−1
2
16:
set λ = (3xP + a)δ
17:
set xR = λ2 − xP − xQ , yR = λ(xP − xR ) − yP
18:
return R = (xR : yR : 1)
19:
end if
20: else
. γ = (xP − xQ )−1
21:
set λ = (yP − yQ )γ
22:
set xR = λ2 − xP − xQ , yR = λ(xP − xR ) − yP
23:
return R = (xR : yR : 1)
24: end if
By the partial addition defined above, an algorithm is derived, that for a point P ∈ Ea,b (Z/nZ) and
an integer k either finds a non-trivial factor of n or calculates k · P .
Algorithm 13.2.8 (Partial Multiplication). Given P ∈ E(Z/nZ), k ∈ Z≥0 , let 1 = a0 , . . . , am = k be
a sequence such that ai = au + av for every i and some u, v ≤ i (cf. [Knu81, Section 4.6.3]). Then the
102
13 Factoring integers with elliptic curves
product kP = P + . . . + P can be calculated by setting Pi = Pu + Pv if ai = au + av . The number of
additions is then O(m).
Pl(k)
Pi−l(k)
For example if k = j bj 2j one may take ai = 2i for i ≤ l(k) and ai = j=0 bj 2j for l(k) ≤ i ≤
2l(k) where l(k) is the binary length of k. In this case the number of additions is O(log(k)).
Example 13.2.9. Whether or not the above algorithm succeeds in calculating a product depends on the
sequence used. Consider the elliptic curve Y 2 Z = X 3 + 10XZ 2 + 1 over Z/10403Z. We try to calculate
8P where P = (0 : 1 : 1).
We have 2P = P + P = (25 : 10277 : 1), 4P = 2P + 2P = (3059 : 2923 : 1) and thus 8P = 4P + 4P =
(6283 : 8653 : 1). However when trying to calculate 7P = (4P + 2P ) + P = (1957 : 2059 : 1) + P (for
example following the naive approach (. . . ((P + P ) + P ) . . . + P )) it fails, producing the non-trivial factor
103 = gcd(2059 + 1, 10403).
13.2.2 Description
The basic procedure of factoring integers using elliptic curves is now clear: Given n, choose an elliptic
curve Ea,b defined over Z/nZ, choose a point P on Ea,b (Z/nZ). Take k a big integer and try to compute
k · P . Keep fingers crossed, that it does not work.
The formal description is given below. Note that multiplying by k is precisely analog to computing the
kth power in Pollard’s method, the difference being only that in one case the group is written additively
and in one case it is written multiplicatively.
Algorithm 13.2.10 (Factoring with one curve). Given n, v, w, ∈ Z, n, v, w > 1 and a, x, y ∈ Z/nZ the
following algorithm attempts to find a non-trivial divisor d of n.
1: set P = (x : y : 1)
2: for r from 2 to w do
√
3:
for e from 1 while e ≤ v + 2 v + 1 do
4:
calculate P = r · P using algorithm 13.2.8
5:
end for
6:
if calculation did not succeed then
7:
return d, non-trivial divisor
8:
end if
9: end for
10: return failure
Qw
Remark 13.2.11. In the two nested loops, the
algorithm tries to multiply P by k = r=2 re(r) where
√
e(r) is the greatest integer m with rm ≤ v + 2 v + 1.
Note that though we do not have any constrains regarding how the factors r are multiplied to P (13.2.9),
we describe precisely in which order they are multiplied. This is important for the analysis below.
Proposition 13.2.12. Let n, v, w ∈ Z, n, v, w > 1 and a, x, y ∈ Z/nZ, put b = y 2 − x3 − ax ∈ Z/nZ and
P = (x : y : 1) ∈ Vn . If n has prime factors p and q such that
(i) p ≤ v,
(ii) 6∆a,b 6≡ 0 mod p,
(iii) each prime number r dividing #Ea,b (Fp ) satisfies r ≤ w,
(iv) 6∆a,b 6≡ 0 mod q,
(v) #Ea,b (Fq ) is not divisible by the largest prime number dividing the order of Pp ,
then the above algorithm succeeds in finding a non-trivial divisor of n.
Proof. By items (ii) and (iv), Ea,b is an elliptic curve over Fp and Fq respectively giving Ea,b (Fp ) and
Ea,b (Fq ) a group structure.
Let√k be as in 13.2.11. By (i) and Hasse’s inequality (theorem 13.2.1), we
Qwhave that #Ea,b (Fp ) ≤
v + 2 v + 1. Then item (iii) implies (cf. 13.1.14) that #Ea,b (Fp ) divides k = r=2 re(r) , so ord(Pp ) does
as well (lemma 13.1.6). Let l denote the largest prime number dividing ord(Pp ) and m the exponent of l
in ord(Pp ). Then
l−1
Y
k0 =
re(r) lm−1
r=2
103
13 Factoring integers with elliptic curves
has the properties that k0 6≡ 0 mod ord(Pp ) but k0 l ≡ 0 mod ord(Pp ). So
k0 Pp 6= Op , k0 lPp = Op
(13.2.1)
in Ea,b (Fp ).
Since l ≤ w by (iii), both k0 and k0 l are divisors of k. If algorithm 13.2.10 calculates kP it calculates
k0 P and k0 lP along the way. Hence it suffices to show that k0 P and k0 lP cannot both be defined. To
show this we use the property that if Ea,b is a curve over a subfield of Z/nZ, then the algorithm calculates
the product in Ea,b .
So if k0 lP is defined, then (k0 lP )p = k0 lPp = Op , so by remark 13.2.3 k0 lP = O and k0 lPq = Oq . But
(v) then implies that also k0 Pq = Oq , i.e. k0 Pp = Op contradicting (13.2.1).
Example 13.2.13. We try to factor n = 10403 using the above algorithm with a = 1, P = (8 : 2 : 1),
v = w = 3. I.e. we try to calculate 31 · 21 P . To this end we first have to calculate 2P = P + P .
k
l
λ
x2P
y2P
=
=
=
=
=
gcd(xP − xP , n) = gcd(0, n) = n ,
gcd(yp + yP , n) = gcd(8 + 8, n) = 1 = 2601 · (8 + 8) = δ · (8 + 8) ,
(3x2P + a)δ = (3 · 82 + 1)δ = 2649 ,
λ2 − xP − xP = 26492 − 8 − 8 = 5563 ,
λ(xP − xP ) − yP = −2 .
To multiply 2P by 3 we first have to double it again.
k
l
λ
x4P
y4P
=
=
=
=
=
gcd(x2P − x2P , n) = gcd(0, n) = 1 ,
gcd(y2p + y2P , n) = gcd(−2 + (−2), n) = 1 = −2601 · (−2 + (−2)) = δ · (−2 + (−2)) ,
(3x2P + a)δ = (3 · 55632 + 1)δ = 9269 ,
λ2 − x2P − x2P = 92692 − 5563 − 5563 = 5664 ,
λ(x2P − x2P ) − y2P = 2 .
Finally we try to add 2P to 4P to get 3 · 2P = 6P . We find that
k = gcd(x2P − x4P , n) = gcd(5664 − 5563, n) = 101 ,
is a non-trivial divisor of n.
Algorithm 13.2.14 (Factoring with multiple curves). Given n, v, w, h ∈ Z>1 , the following probabilistic
algorithm attempts to find a non-trivial divisor d of n.
1: for i from 1 to h do
2:
draw random a, x, y ∈ Z/nZ
3:
call algorithm 13.2.10
4:
if result is non-trivial divisor d then
5:
return d
6:
end if
7: end for
8: return failure
13.2.3 Analysis
Conjecture 13.2.15. It is conjectured, that for n divisible neither by 2 nor by 3 and for any integer g > 0
values v, w, h can be chosen such that algorithm 13.2.14 finds a non-trivial divisor of n with probability
at least 1 − e−g in time
gK(p)M (n),
where M (n)pis the time needed by algorithm 13.2.7, p is the least prime factor of n and K is such that
log K(p) = (2 + o(1) log p log log p.
Remark 13.2.16. With the extended Euclid’s algorithm 13.1.11, the term M (n) above is of order
O((log n)2 ). With a more efficient algorithm this can be reduced to be of order O((log n)(log log n)2 (log log log n))
[GG03, Chapter 6].
104
13 Factoring integers with elliptic curves
Remark 13.2.17. The condition that n be divisible neither by 2 nor by 3 is no restriction from a
practical point of view. When factoring a number, one will eliminate the small prime factors by trial
division anyway (“small” including far more than primes up to 3).
To factor a numbercompletely by repeatedapplication, the above conjecture gives runtime Lp (1/2, 1)
α
1−α
where Lp (α, c) = O e(c+o(1))(ln p) (ln ln p)
and p is the second largest prime factor of n. This is
asymptotically equivalent to most factoring methods, except for the general number field sieve whose
runtime is assumed to be Ln (1/3, c). However most methods depend on the size of n instead of its
factors, which√makes the ECM attractive for numbers n with second largest prime factor p distinctly
smaller than n.
13.2.4 Achievements
Richard P. Brent (http://wwwmaths.anu.edu.au/~brent/ftp/champs.txt) and Paul Zimmermann
(http://www.loria.fr/~zimmerma/records/top100.html) both maintain sites on which they list the
currently largest integers factored by ECM. The largest number factored using ECM up to now (as
of August 2007) had 67 digits. Its factorization was found in August 2006 by Bruce Dodson, who
also factored the second largest number with 66 digits in April 2005. The running time for this latter
factorization was about half an hour (see http://www.loria.fr/~zimmerma/records/p66).
105
Chapter
14
Pseudorandom Sequences from Elliptic
Curves
Andreas Mars, 26.07.2007
Based on: [Bee02]
14.1 Introduction
In this paper we will introduce and analyse so-called pseudorandom sequences which can be obtained
using elliptic curves. To be more precise, one uses the well known fact that the rational points (with
respect to a given field) on an elliptic curve are naturally endowed with the structure of an abelian group.
Naturally, one would like to have completely random sequences. Since machines, given the same input,
always produce the same output, there is no chance that a computer could eventually generate completely
random sequences of natural numbers (ignoring quantum computers for now). Newer algorithms usually
use a given value (called “seed”) to generate sequences that behave as if they were random.
This behaviour is good enough if one is interested in simulating random events, as for example in
biology, chemistry or physics. However, when it comes to cryptography, this procedure does not guarantee
a perfect encryption of information. A good example for this is the “Enigma” encryption machine the
Germans used during the second World War. The Enigma encrypts letters using rolls which change their
orientation every time a key is pressed, generating possibly different letters even if the same key is pressed
twice. The problem for decoding messages reduced to knowing the initial settings (and to possess one
exemplar of the machine), though. The lack of security in this case is that the allies simply needed one
machine with the correct positions of the rolls and the corresponding codebook, which they managed
to capture during the war. From this point on, they were able to decode most of the information the
German High Command sent to their field units.
This little example already gives us the motivation to consider what are called pseudorandom sequences.
Those sequences should behave in a way that they do not fail when tested for randomness, but nevertheless
they can be generated using machines or algorithms, respectively. In the first part, we will introduce some
techniques to estimate the randomness of given sequences (we will not need elliptic curves there, yet).
After that, we will describe a way to generate such sequences using elliptic curves and finally, we will
investigate some of the properties those sequences have.
Let us fix some
Notation 14.1.1. We denote the Galois field of q = pn elements and characteristic p by Fq and an
elliptic curve by E. The group of Fq -rational points on a given curve E will be denoted by E(Fq ).
Given an algebraic curve C, we will write F(C) or Fq (C) for the set of all functions or the functions
with coefficients in Fq , respectively. As usual, the algebraic closure of a field F will be written F.
We are frequently going to use the following basic result on the group structure of points on elliptic
curves.
Proposition 14.1.2. Let E be an elliptic curve defined over Fq . Then there exist natural numbers k and
l such that
E(Fq ) ∼
= Z/kZ × Z/klZ
as abelian groups. Moreover, the number k divides q − 1.
106
14 Pseudorandom Sequences from Elliptic Curves
14.2 Pseudorandom Sequences
We will now give some basic definitions and begin our investigation following [Bee02].
Definition 14.2.1. Let S = (s0 , s1 , . . . , sN −1 ) be a sequence of length N consisting of elements of a finite
field Fq and let α ∈ F×
q be invertible. Denote the complex p-th root of unity by ζp . Then the balance of
S with respect to α is defined as
N −1
1 X TrFq |Fp (α·si )
,
BS (α) :=
ζp
N i=0
where TrFq |Fp is the trace map of the field Fq over Fp , defined as
X
TrFq |Fp (x) :=
ϕ(x).
ϕ∈Γ(Fq /Fp )
Then the balance of S is given by
BS := max {|BS (α)|}.
α∈F×
q
This definition can be reformulated for sequences in the group Z/mZ. We will not consider these for
now, but we will point out the similarity between those and the considered ones after developing some
theory around them.
Example 14.2.2. Let us consider the sequence S = (1, B, A, 1) in F4 = {0, 1, A, B}. Then ζp = −1, and
we can calculate the balance of S with respect to A (as an exercise, the reader may verify these or do the
calculations for the other elements):
3
BS (A)
1X
(−1)TrF4 |F2 (si ·A)
4 i=0
1
=
(−1)Tr(A) + (−1)Tr(1) + (−1)Tr(B) + (−1)Tr(A)
4
1
=
((−1) + 1 + (−1) + (−1))
4
2
1
= − =− .
4
2
=
Moreover,
1 1
1
BS = max× {|BS (α)|} = max 0, ,
= .
2 2
2
α∈F4
In some sense, the quantity BS tells us how much the elements of S vary along its period. This
motivates the next definition.
Definition 14.2.3. Let S be a sequence in Fq of length N and let α, β ∈ F×
q . Moreover, let d ∈
{0, . . . , N − 1}. Then the autocorrelation with respect to α and β is defined as
CS (d, α, β) :=
N −1
1 X TrFq |Fp (α·si+d −β·si )
ζp
,
N i=0
where i + d has to be taken modulo N .
Remark 14.2.4. This definition complies with the “usual” definition of autocorrelation in cryptography,
as for binary sequences the last formula reduces to
CS (d) =
N −1
1 X
(−1)si+d +si ,
N i=0
which may look more familiar to the reader.
We will now introduce the last quantity related to sequences, this one will give us the correlation
between two sequences having the same length.
107
14 Pseudorandom Sequences from Elliptic Curves
Definition 14.2.5. Let S and T be two sequences of length N and let α, β ∈ Fq . Assume that d ∈
{0, . . . , N − 1} is given. Then the crosscorrelation of S and T with respect to α and β is defined by
CS,T (d, α, β) :=
N −1
1 X TrFq |Fp (α·si+d −β·ti )
.
ζp
N i=0
Now the problem can be reformulated as: Find a family (Si )i∈I such that for all indices i and j, the
crosscorrelations between Si and Sj are small.
We will now leave the general context of sequences and begin the study of those which can be obtained
using elliptic curves in the next section.
14.3 Pseudorandom Sequences from Elliptic Curves
We will now consider an elliptic curve E defined over the finite field Fqm . Assume that the group of
Fqm -rational points on E is a cyclic group of order N , generated by some point P , and that f ∈ Fqm (E)
is a function defined on the elliptic curve. Then we can define a pseudorandom sequence S using the
function f and the generator P by
si := TrFqm |Fq (f (i · P )),
where i runs from 0 to N . As above, TrFqm |Fq denotes the trace map, this time from Fqm to Fq defined
analogously to the previous. Using some Galois theory, this map can be visualised as
2
TrFqm |Fq (x) = x + xq + xq + . . . + xq
m−1
for x ∈ Fqm .
This follows from the fact the Galois group of Fqm over Fq again is a cyclic group of order m generated
by the Frobenius morphism x 7→ xq .
There is a minor setback included in this construction. Given a rational function f , it is possible that
f is not defined at some point Q ∈ E(Fq ). However, in some of those cases we can bypass this using the
next definition.
Definition 14.3.1. Let C be an algebraic curve over Fqm and assume we are given a function f ∈ Fqm (C).
We define the set
C AS (f, Fqm ) := {Q ∈ C(Fqm ) : (∃g ∈ Fqm (C)) f − g q + g is defined at Q} .
This set is exactly the set of Fqm -rational point Q such that the trace of (f − g q + g)(Q) is well-defined.
This is made explicit by the next lemma.
Note that the function g in the last definition may depend on the point Q considered. In particular, if
f itself is defined at the point Q, then g ≡ 0 satisfies the assertion above, hence in some sense we extend
the domain of f to the set C AS (f, Fqm ).
Lemma 14.3.2. Let f ∈ Fqm (C) and Q ∈ C AS (f, Fqm ). Then the quantity
TrFqm |Fq ((f − g q + g)(Q))
is well-defined and does not depend on the choice of g.
Proof. Recall that by definition of the trace map the number TrFqm |Fq ((f − g q + g)(Q)) is an element of
Fq . Since the relation xq − x = 0 holds for all x ∈ Fq , we see at once that
TrFqm |Fq ((f − g q + g)(Q)) = TrFqm |Fq ((f − hq + h)(Q))
for all other functions h for which f − hq + h is defined at Q.
We now have all the ingredients at hand we need to define the class of sequences we will study in the
next section.
Definition 14.3.3. Let E be an elliptic curve defined over Fqm . Assume that P is a generator of the
cyclic group k · E(Fqm ), where k is as in Proposition 14.1.2, and assume further that the order of this
N −1
group is N . Given a function f ∈ F(Fqm ), we define the sequence S AS (f, P ) = (si )i=0
by
(
TrFqm |Fq (f (i · P )),
if i · P ∈ E AS (f, Fqm );
si :=
0,
if i · P ∈
/ E AS (f, Fqm ).
108
14 Pseudorandom Sequences from Elliptic Curves
The latter definition completes the construction of pseudorandom sequences using elliptic curves. Note
that there are other possibilities to generate such sequences, one of which we shall sketch now:
In the construction process, we used the trace map from Fqm to Fq or Fpn to Fp , respectively. If we
wanted to have sequences whose elements are in Z/mZ instead of the finite field Fq , we could use the
following facts. Consider a finite field Fq and assume that the natural number m divides q − 1. Then
there is a well-defined surjective homomorphism χm from Fq to Z/mZ, since Z/mZ is isomorphic to
(q−1)/m
(F×
= {x(q−1)/m | x ∈ F×
q )
q }.
Hence we could replace the trace map in the definitions above with the homomorphism χm and the
p-th root of unity by the m-th and we would get sequences running through the ring Z/mZ.
We will now turn our attention to properties of given pseudorandom sequences.
14.4 Properties of pseudorandom sequences and results
In the following all polynomials considered are elements of Fq [X, Y ].
Let us consider an elliptic curve E defined over the field Fqm and let k be as in Proposition 14.1.2. For
a polynomial f in two variables denote by wdeg(f ) the weighted degree defined by wdeg(x) := 2 and
wdeg(y) := 3 and extending from there.
The next theorem will give us an estimate for the balance of a sequence constructed using an elliptic
curve (cf. Definition 14.3.3).
Theorem 14.4.1 (A Bound for the Balance). Let E be given by a Weierstrass equation and let f be a
polynomial such that degy (f ) ≤ 1. Assume that P is a generator of k·E(Fqm ), where k is as in Proposition
14.1.2, whose order is N and assume that p does not divide wdeg(f ). Then we have that
BS AS (f,P ) ≤
√ 1
1 + (1 + wdeg(f )) q m =: Φ(f ).
N
Using some computation, one can show that this converges to zero as the cardinality of the field tends
to infinity.
Now that we know how big balances can become, we will give similar results for the auto- and crosscorrelations of pseudorandom sequences.
Theorem 14.4.2 (A Bound for the Autocorrelation). Let E, f, P, N, k be as in Theorem 14.4.1. Moreover,
let α, β ∈ F×
q and let d ∈ {1, . . . , N − 1}. Then
|CS AS (f,P ) (d, α, β)| ≤
√ 1
2 + 2 · (1 + wdeg(f )) q m = 2 · Φ(f ).
N
The last item missing is the crosscorrelation, which we will deal with using the next theorem.
Theorem 14.4.3 (A Bound for the Crosscorrelation). Let E, P, N, k be as in Theorem 14.4.1. Let f1
and f2 be two polynomials of two variables such that degy (fi ) ≤ 1 for i = 1, 2 and assume that for all
(α, β) ∈ F2qm \ {(0, 0)} we have that p does not divide wdeg(α · f1 − β · f2 ).
Let S1 and S2 be the corresponding pseudorandom sequences and suppose we are given α, β ∈ F×
q ,d ∈
{1, . . . , N − 1}. Then
|CS1 ,S2 (d, α, β)| ≤
√ 1
2 + (2 + wdeg(f1 ) + wdeg(f2 )) q m = Φ(f1 ) + Φ(f2 ).
N
Let us give a taste of what we would need in order to prove these theorems. All the proofs are based
on an upper bound for the exponential sum
ES AS (C, f ) :=
X
TrFqm |Fq (f (P ))
ζp
P ∈C AS (f,Fqm )
which we did not state here. Note that the proofs involve L-functions, Artin-Schreier-theory and for
example Hasse-Weil’s Theorem. Most of them are rather technical and do not really give an insight
into the construction process. Moreover, we omitted an intermediate step using valuations of algebraic
functions which plays an important role in finding an upper bound for the balance.
Let us now comment briefly on the quality of the bounds stated in the theorems above. Those bounds
are given by a function Φ(f ), which only depends on the polynomial (or rational function) f . The order
of the group also plays a role, but as soon as the elliptic curve is fixed, this becomes a constant. Moreover,
109
14 Pseudorandom Sequences from Elliptic Curves
it is convenient to express the bounds for the different quantities only using the function Φ. In particular,
for binary sequences (which is the most interesting case for applications) we have a power of two under
the root. It remains to calculate the number N , i.e. the order of the group, to get upper bounds for all
sequences one can construct with the described method given an elliptic curve. Note that calculating the
order of such a group is a difficult task on its own.
Those upper bounds provide an intuition for the interest science has in sequences considered in this
paper. This was also the main objective of this paper, and we hope the reader now has an impression
why the systematic study became more and more promising.
14.5 Generalisations and Perspectives
This paper has only been a very short introduction into the theory of pseudorandom sequences generated
using elliptic curves. As we already indicated, the construction using the trace map can be generalised
using certain homomorphisms of groups. For details, see [Bee02, Chapter 5]. The results and estimates
are similar, but some other constants and techniques may be used in the other context.
Another possibility to define pseudorandom sequences is to use Linear Recurrence Relations (see [Bee01,
Chapter 6]), but this would need more insight into the structure of elliptic curves that we did not assume
here. We will not go into details anymore, but the reader is invited to check [Bee02] for the corresponding
results.
Moreover, if we want to use multiplicative characters instead of the additive trace maps or additive
group homomorphisms as above, we leave the theory of Artin-Schreier extensions and find ourselves in
the theory of Kummer extensions. Again, the construction is similar, but the estimates will vary due to
the different techniques involved.
110
Chapter
15
Elliptic curves and large prime numbers
Alesinskyy Yevgen, 26.07.2007
Based on: [Bee01]
15.1 Preliminaries
The aim of this talk is to investigate whether there is a connection between certain prime numbers and
elliptic curves. In order to do this we need first some notations and definitions.
R∞ 1
Pn 1 1
Definition 15.1.1. The number given by γ = limn→∞
k=1 k − log n = 1 bxc − x dx = 0.577...
is called Euler-Mascheroni constant.
Definition 15.1.2. If p is an odd prime number and a is an integer, then the Legendre symbol ap is
defined via


if a is a square modulo p,
1
a
= −1 if a is not a square modulo p,

p

0
if p divides a
where a is a square modulo p, if and only if there is x ∈ Z s.t. x2 ≡ a (mod p).
1 α2
k
Definition 15.1.3. The Jacobi symbol na is defined as follows: Let n > 0 be odd and let pα
pα
1 p2 · · · k
α
α
αk
1
2
a
· · · pak
be the prime factorization of ”n”. For any integer a, the Jacobi symbol na = pa1
p2
where the symbols on the right are all Legendre symbols (given that the bottom numbers pi are all prime).
Definition 15.1.4. In mathematics, ”Mertens’ theorems” [WWWd] are three results in number theory
related to the density of prime numbers and one result in mathematical analysis, and proved by Franz
Mertens [WWWc]. In the following, let p < n mean all primes not exceeding n.
”Mertens’ 1st theorem”
!
X ln p
lim ln n −
= 1.3325822757 . . .
n→∞
p
p<n
”Mertens’ 2nd theorem”
lim
n→∞
X1
− ln ln n +
p
p<n
”Mertens’ 3rd theorem”:
lim ln n
n→∞
Y
!
= 0.2614972128 . . . ,
1−
p<n
where γ is the Euler-Mascheroni constant.
111
1
p
= e−γ ,
15 Elliptic curves and large prime numbers
15.2 Prime-generating elliptic curves
Let E be an elliptic curve defined over a finite field Fq . We can consider E over the extension field Fqe .
More precisely, denote by E (Fqe ) the group of points of E defined over the field Fqe , and denote by Ee
the order of this group. The following theorem by Hasse and Weil gives some information about these
numbers.
Theorem 15.2.1 (Hasse-Weil). There exists an algebraic integer α, depending on the elliptic curve E,
√
of length q s.t.
Ee = q e + 1 − (αe + ᾱe ) .
Remark 15.2.2. E (Fq ) is a subgroup of E (Fqe ), hence E1 |Ee .
Definition 15.2.3 (Prime-generating curve). Let E be an elliptic curve defined over a finite field
Fq . We call E a prime-generating elliptic curve if there exists infinitely many prime numbers of the form
Ee /E1 .
Unfortunately it is not known whether such curves exists. Later on we will look at some curves that
are good candidates. First we will check for which values of e Ee /E1 can be prime.
Proposition 15.2.4. Let E be an elliptic curve defined over a finite field Fq . Suppose that Ee /E1 is a
prime. Then e is a prime with two possible exceptions:
Case I: q=2 and e ∈ {4, 6, 9},
Case II: q=3 and e = 4.
Proof. If e has a non-trivial factor f, then Fqf is a subfield of Fqe . Hence E Fqf is a subgroup of E (Fqe ),
which implies that Ef /E1 divides Ee /E1 . The only problem left is to show that, except for the two cases
mentioned in the√proposition, this is a non-trivial divisor. Since f is a non-trivial divisor of e, we can
assume w.l.o.g. d ee ≤ f ≤ e2. Hence, if either q ≥ 3 or e ≥ 5, we have
p
2 p
2
2
√ e
Ef ≤
qf + 1 ≤
q e/2 + 1 <
q − 1 ≤ Ee .
For the first and last inequality Hasse-Weil’s theorem is used. If q=2 and e=4, the strict inequality
becomes an equality. So we see that for q=2 either E2 < E4 or E2 = E4 = 9.
Now we will investigate if Ef /E1 can be 1. We know
p
2
√
2
E1 ≤ ( q + 1) <
q f − 1 ≤ Ef
whenever q=2 and e>9, or q=3 and e>4, or q=4 and e>4, or q ≥ 5.
So far we have showed that Ef /E1 is a non-trivial divisor of Ee /E1 whenever q=2 and e ∈
/ {4, 6, 9} or
q=3 and e 6= 4 or q=4 and e 6= 4 or q ≥ 5. We still need to exclude q=4 and e=4. What could go wrong,
is that for some curve E1 = E2 and E4 /E1 is a prime number. It is easy to see, that in this case α = −2,
and hence E4 /E1 =25, which is not prime.
Now we will look for curves, for which these exceptions occurs.
Remark 15.2.5. The first curve with this behaviour has Weierstraß equation
Y 2 + Y = X3
and defined over field F2 . In this case E4 /E1 = 3. Another curve defined over F2 giving rise to an
exception, has equation
Y 2 + Y = X 3 + X.
For this curve we have E4 /E1 = 5, E6 /E1 = 13,and E9 /E1 = 109 Another curve defined over F2 giving
rise to an exception has Weierstraß equation:
Y 2 + XY = X 3 + 1.
For this curve we have E9 /E1 = 127. The last curve is defined over F3 has equation
Y 2 = X 3 − X + 1.
For this curve E4 /E1 = 13.
112
15 Elliptic curves and large prime numbers
Remark 15.2.6. Notice: In general e prime, does not imply the number Ee /E1 is a prime as well.
This situation is similar to the situation where one have to decide whether 2n − 1 ( M ersenne numbers
) is prime or not. Such a number can not be prime unless n is prime. However if n is prime, then
corresponding Mersenne number need not be prime. One posibility to see that, for a Mersenne number
to be prime, the exponent n must be prime, is by considering the curve with equation
Y 2 = X3 + X2
over the Field Fq . If we leave out (0,0), we find a group with an addition similar to that of an elliptic
curve. The order Ee of this group over the extension field Fqe is q e -1. Similar to Proposition (1.2.4),
we can prove that the primality of Ee /E1 implies e is prime. For q=2 this gives the statement about
Mersenne numbers.
The greatest known prime Mersenne number 232582657 − 1 has decimal length 9808358. [WWWa]
Example 15.2.7. It is not true that any elliptic curve is prime-generating. Consider the curve defined
over F4 with equation
Y 2 + Y = X3 + θ
where θ is a generator for the group F∗4 . In this case E1 = 1 and hence α = 2. This implies
Ee
2
= (2e − 1) .
E1
Example 15.2.8. The curve defined over F2 given by the equation
Y 2 + XY = X 3 + 1
is a candidate for a prime-generating elliptic curve.
For e ∈ {2, 5, 7, 9, 13, 19, 23, 41, 83, 97, 103, 107, 131, 233, . . . } 1 , Ee /E1 is either prime or passes primality
test (PrimeQ in Mathematica).
Example 15.2.9. As another example of a potential prime-generating curve, we consider the curve
defined over F2 with Weierstraß equation
Y 2 + Y = X 3 + X.
For this curve we have E1 = 5. Further α = −1 + i. For odd prime e we get:
e+1
2
Ee = 2 e +
2 2 + 1.
e
For e ∈ {4, 5, 6, 7, 9, 11, 13, 17, 29, 43, 53, 89, 283, . . . }
2
Ee /E1 is either prime or passes primality tests.
Exercise 15.2.10. Question: Why 4,6 and 9 are in this set?
Now we focus on Mersenne-like families of primes, as there exists a very efficient primality test for
them.
15.3 A primality test for certain elliptic curves
In order to check whether some number N is prime or not it is often enough to look at N + 1 or N − 1
resp. their (incomplete) factorization. As our number Ee /E1 is a fraction we lose all of information about
Ee . So we would like to consider curves with E1 = 1. The following proposition lists all possible curves
where E1 = 1.
Proposition 15.3.1. Let E be an elliptic curve defined over Fq with the property that E1 = 1. Then we
have one of the following three cases:
Case I: q=2 and the curve E is isomorphic to the curve with Weierstraß equation
Y 2 + Y = X 3 + X + 1.
1 For
2 For
complete list see [Bee01] p. 98–99
complete list see [Bee01] p. 98–99
113
15 Elliptic curves and large prime numbers
Case II: q=3 and the curve E is isomorphic to the curve with Weierstraß equation
Y 2 = X 3 − X − 1.
Case III: q=4 and the curve E is isomorphic to the curve with Weierstraß equation
Y 2 + Y = X 3 + ξ,
with ξ a generator of the multiplicative group F∗4 .
Proof. We will first determine the possible Frobenius eigenvalues α. Write α = a + bi, with a, b ∈ R.
Then we have a2 + b2 = q by Hasse-Weil’s theorem. Further, the assumption E1 = 1 implies the equation
a = q/2. Hence
p
α = q/2 ± i q − q 2 /4
and apparently we should demand q − q 2 /4 ≥ 0. This implies q ∈ {2, 3, 4}.
Now we will find a formula for computing Ee for elliptic curves listed above. This leads to following
proposition:
Proposition 15.3.2. Let E be an elliptic curve defined over F2 with Weierstraß equation
Y 2 + Y = X 3 + X + 1.
Then a Frobenius eigenvalue is given by 1 + i. Further


2e − 2e/2 + 1,



e
(e+1)/2


+ 1,
2 − 2
e
Ee = 2 + 1,



2e + 2(e+1)/2 + 1,



2e + 2e/2 + 1,
we have
if
if
if
if
if
e ≡ 0(mod 8),
e ≡ 1, 7(mod 8),
e ≡ 2, 6(mod 8), .
e ≡ 3, 5(mod 8),
e ≡ 4(mod 8).
Let E be an elliptic curve defined over F3 with Weierstraß equation
Y 2 = X 3 − X − 1.
Then a Frobenius eigenvalue is given by 1 + i. Further we have
 e
3 − 3e/2 + 1,





3e − 3(e+1)/2 + 1,



3e − 3e/2 + 1,


Ee = 3e + 1,



3e + 3e/2 + 1,





3e + 3(e+1)/2 + 1,


 e
3 + 3e/2 + 1,
if
if
if
if
if
if
if
e ≡ 0(mod 12),
e ≡ 1, 11(mod 12),
e ≡ 2, 10(mod 12),
.
e ≡ 3(mod 6),
e ≡ 4, 8(mod 12),
e ≡ 5, 7(mod 12),
e ≡ 6(mod 12).
Let E be an elliptic curve defined over F4 with Weierstraß equation
Y 2 = X 3 + ξ,
where ξ generates the group F∗4 Then a Frobenius eigenvalue is given by 2. Further we have
Ee = (2e − 1)2 .
Proof. Excercise.
Corollary 15.3.3. Let e be a prime not equal to 2 or 3. We have
2
2(e+1)/2 + 1
Ee = 2 e −
e
for the first curve in previous proposition. For the second curve, we find
3
e
Ee = 3 −
3(e+1)/2 + 1.
e
114
15 Elliptic curves and large prime numbers
For this curves we can partially factor Ee − 1. In order to do that we need following
Theorem 15.3.4 (Pocklington). Let n ∈ N be a natural number and suppose that n − 1 = F R, where F
has known factorisation
F = pe11 . . . perr
for some primes p1 , . . . , pr and R is relatively prime to F. Suppose that for each i from 1 to r there exists
a number ai s.t.
an−1
≡ 1(mod n)
i
and
n−1
p
gcd ai i − 1, n = 1.
Then for any divisor d of n we have
d ≡ 1(mod F ).
Hence, if in addition F >
√
n, then n is prime.
Corollary 15.3.5 (Proth). Let n be an odd natural number and suppose that
n − 1 = 2e R,
where R is odd and less than
√
n. If a number a exists s.t.
a
n−1
2
≡ −1(mod n),
then n is prime.
This leads immediatly to a primality test for the numbers Ee = 2e −
2
e
2(e+1)/2 + 1:
Theorem 15.3.6. Let e be an odd prime. Define


if e ≡ 5, 7(mod 8),
3
a= 5
.
if e ≡ 3(mod 8)

 2n
n+1
n+2
2 + 1 if e ≡ 2
+ 1(mod 2
)
Here n ≥ 2. The number Ee = 2e − 2e 2(e+1)/2 + 1 is a prime iff
a(Ee −1)/2 ≡ −1(mod Ee ).
Theorem 15.3.7. Let Ee = 3e −
3
e
3(e+1)/2 + 1. The number Ee is a prime iff
2(Ee −1)/3 ≡ −3e (mod Ee )
or
2(Ee −1)/3 ≡ 3e − 1(mod Ee )
Proof. The “if”-part follows directly from Pocklington’s theorem. First we look at the “only if”-part.
Suppose that Ee is a prime. Note that if Ee is prime, the solutions of the equation x3 ≡ 1(mod Ee ) are
given by 1, −3√e , and 3e + 1. Hence √
we need to show that 2 is not a cubic residue modulo Ee . Define
ω = −1/2 + i 3/2 and α = 3/2 + i 3/2. Note that α is a Frobenius eigenvalue of the elliptic curve
over F3 having Weierstraß equation Y 2 = X 3 − X − 1, which is the curve the numbers Ee comes from.
Also note α = 2 + ω. Using the cubic reciprocity law in the ring Z[ω]3 , we find that 2 is never a cubic
residue modulo Ee , still assuming that Ee is a prime. The main fact used is that over Z[ω] we have the
factorization Ee = (αp − 1)(ᾱp − 1).
3 for
details see, for example, pages 78-80 of [Cox89]
115
15 Elliptic curves and large prime numbers
15.4 The Wagstaff conjecture
In this section we will generalize the Wagstaff conjecture (number of prime numbers less or equal than
some boundary) for the Mersenne numbers to more general families of numbers arising from elliptic
curves.
Conjecture 15.4.1 (Wagstaff). The number of Mersenne primes 2p −1 less or equal to x is approximately
(eγ / log 2) log log x. (Here γ is Euler-Mascheroni constant).
The expected number of Mersenne primes 2p − 1 with p between n and 2n, is approximately eγ .
The probability that 2p − 1 is prime, is approximately eγ log ap/p log 2, where a = 2 if p ≡ 3(mod 4) and
a=6 if p ≡ 1(mod 4).
There exists a heuristic argument in favour of this conjecture. For details see for example [WWWe].
Theorem 15.4.2. Let E be an elliptic curve defined over the finite field Fq . Suppose that e is a prime
and that l is a prime divisor of the number Ee /E1 . Then we have
l ≡ 1(mod e)
or
l ≡ −1(mod e) and l|(q − 1)
or
l = e and l|E1 .
Proposition 15.4.3. Let e be an odd prime larger than 3. Suppose that l is a prime divisor of the
number 2e − ( 2e )2(e+1)/2 + 1. Then l = 5 or
l ≡ (1mod 4e).
If l is a prime divisor of the number 3e − ( 3e )3(e+1)/2 + 1, we have l = 7 or
l ≡ (1mod 6e).
Proof. Note that 2e − ( 2e )2(e+1)/2 + 1 is a divisor of 22e + 1. This implies that 22e ≡ −1(mod l). Hence
the multiplicative order of 2 in the group F∗l is a divisor of 4e. This implies, that l = 5, or that the
multiplicative order of 2 equals 4e, which implies l ≡ 1(mod 4e).
Conjecture 15.4.4. Let E be a prime-generating elliptic curve defined over the field Fq .
The number of primes of the form Ek /E1 less or equal to x, is approximately
(eγ / log q) log log x.
The expected number of primes of the form Ek /E1 with k between n and qn, is approximately eγ . The
probability that Ek /E1 is prime, is approximately
eγ (log ak)/k log q,
where a depends on the specific choice of E, but generally a = 2.
The next examples give an idea of how good the Wagstaff conjecture is.
Example 15.4.5. Consider the elliptic curve discussed in Example 15.2.7. Define e to be the n-th number
s.t. Een /E1 is a prime. According to Wagstaff’s conjecture the plot of n against log2 (log2 (Een /E1 )) should
lie on a straight line with slope e−γ . The actual data are denoted by stars.
116
15 Elliptic curves and large prime numbers
Example 15.4.6. Elliptic curve from example 15.2.8
Example 15.4.7. Elliptic curve having Weierstraß equation Y 2 + Y = X 3 + X + 1 over the field F2
15.5 Jacobinians of prime order
Theorem 15.5.1. Let C be a curve of genus g defined over the field Fq and let JC be its Jacobinian.
√
Further define Je = #JC (Fqe ). There exist, depending on C, complex numbers α1 , · · · , αg of length q
s.t.
g
Y
Je =
(1 − αie )(1 − (αi )e ).
i=1
117
15 Elliptic curves and large prime numbers
Instead of giving the αi explicitly, it is usual to give a polynomial of degree 2g which has as zeros
exactly the αi and αi . The reciprocal of this polynomial is called the L-polynomial. On the basis of
elliptic curves we consider only Jacobinians which have only one point defined over the field of definition.
All those curves have been classified and listed in the following theorem (from Leitzel, Madanand Queen
1975). It generalizes proposition 1.3.1. The cardinality of the Jacobinian over the ground field is called
the class number.
Theorem 15.5.2. Up to isomorphism, the following seven fields are the only fields F (with F as field of
definition) which have class number one and genus g different from zero:
F = F2 ,
g = 1,
defining equation: Y 2 + Y = X 3 + X + 1
and L(T ) = 1 − 2T + 2T 2 ;
F = F2 ,
g = 2,
defining equation: Y 2 + Y = X 5 + X 3 + 1
and L(T ) = 1 − 2T + 2T 2 − 4T 3 + 4T 4 ;
F = F2 ,
g = 2,
defining equation: (Y 2 + Y = X 3 + X 2 + 1)/(X 3 + X + 1)
and L(T ) = 1 − 3T + 5T 2 − 6T 3 + 4T 4 ;
F = F2 ,
g = 3,
defining equation: Y 4 + XY 3 + (X 2 + X)Y 2 + (X 3 + 1)Y + (X 4 + X + 1) = 0
and L(T ) = 1 − 3T + 2T 2 + T 3 + 4T 4 − 12T 5 + 8T 6 ;
F = F2 ,
g = 3,
defining equation: Y 4 + (X 3 + X + 1)Y + (X 4 + X + 1) = 0
and L(T ) = 1 − 3T + 3T 2 − 2T 3 + 6T 4 − 12T 5 + 8T 6 ;
F = F3 ,
g = 1,
defining equation: Y 2 = X 3 − X − 1
and L(T ) = 1 − 3T + 3T 2 ;
F = F4 ,
g = 1,
defining equation: Y 2 = X 3 + θ
and L(T ) = 1 − 4T + 4T 2 ;
where θ generates the multiplicative group of F4 .
Proposition 15.5.3. Let C be the curve defined over F2 given by the equation
Y 2 + Y = X 5 + X 3 + 1.
Then we have
√
√
1+ 3
1− 3
α1 =
+ı
2
2
and
√
√
1+ 3
1− 3
+ı
.
α2 =
2
2
Further, supposing that e is prime greater 3, we have
2
(e+1)/2 e
(e−1)/2
Je = 2
(2 + 1) 2
−
+ 1.
e
118
15 Elliptic curves and large prime numbers
Proof. To show that the αi are
√ reciprocal to the zeros of the L-polynomial is easy calculation. For the
last statement note that (αi / 2)12 = −1. This means that the powers of αi can be calculated explicitly,
from which we can obtain an explicit formula for Je .
Corollary 15.5.4. Let the notation be as in the above theorem. Any prime divisor l of Je satisfies l = 5,
or l = 13, or
l ≡ 1 (mod 12e).
We see that we can factor Je − 1 = 2(e+1)/2 3eR, where R denotes the non-factored remainder. It is not
enough to be able to apply Pocklington’s theorem to obtain a simple primality test. For that we need
to factor half of Je − 1. There exists a refinement of Pocklingtons’s theorem, for which we only have to
factor one third. We thereby get the following result.
Proposition 15.5.5. Let e be an odd prime not equal to 3 and let
2
Je = 2(e+1)/2 (2e + 1) 2(e−1)/2 −
+ 1.
e
Suppose that there exists a number a such that
a(Je −1)/2 ≡ −1 (mod Je ),
then Je is the product of at most two primes.
Proof. >From Pocklington’s theorem we see that any prime divisor of Je is of the form 2(e+1)/2 k + 1 for
some k ∈ N. By looking at the size of these divisors, we see that Je can be at most the product of three
primes. Assume that this is a case, say
Jp = 2(e+1)/2 k1 + 1 2(e+1)/2 k2 + 1 2(e+1)/2 k3 + 1
for some positive ki . Then we find in the first place
2
k1 + k2 + k3 ≡
(mod2(e−1)/2 ),
e
but in the second place k1 k2 k3 ≤ 2(e−3)/2 and hence
k1 + k2 + k3 ≤ 2(e−3)/2 + 2 < 2(e−1)/2 .
>From this we see that
k1 + k2 + k3 = −
2
.
e
This gives a contradiction.
We see that for the numbers Je in the above proposition we do not have a primality test, but we do
have a test showing that the number is the product of at most two primes.
119
Bibliography
[AKS04] M. Agrawal, N. Kayal, N. Saxena PRIMES is in P, Annals of Mathematics 2004.
[Art98] Michael Artin, Algebra, Birkhäuser, 1998.
[Bee01] P. H. T. Beelen, Algebraic geometry and coding theory, PhD Thesis, TU Eindhoven, 2001.
[Bee02] P. H. T. Beelen and J. M. Doumen, Pseudorandom Sequences from Elliptic Curves in: Finite
Fields with Applications to Coding Theory, Cryptography and Related Areas, Springer, 2002.
[Buc04] Johannes A. Buchmann: Einführung in die Kryptographie, 3. rev. edition, Springer, 2004.
[BSI06] BSI, Foundations of electronic signatures, 2006, http://www.bsi.bund.de/esig/esig.pdf.
[Con06] I. Connell, Elliptic curve handbook, 1996, http://www.math.mcgill.ca/connell/.
[CLR01] Thomas H. Cormen, Chales E. Leiserson, Ronald L. Rivest: Introduction to Algorithms, MIT
Press, 1990.
[Cox89] David Cox, Primes of the form x2 + ny 2 , New York: John Wiley & Sons Inc., 1989.
[Eis95] David Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Springer, 1995.
[HMV04] Darrel Hankerson, Alfred Menezes, Scott Vanstone, Guide to Elliptic Curve Cryptography,
Springer, 2004.
[Her07] Christian Herrmann, Introduction to Algebra, Lecture notes, TU Darmstadt, 2007.
[HPS98] Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman. NTRU: A Ring-Based Public Key Cryptosystem. In Algorithmic Number Theory (ANTS III), Portland, OR, June 1998, J.P. Buhler (ed.),
Lecture Notes in Computer Science 1423, Springer-Verlag, Berlin, 1998, 267–288.
[Hus03] D. Husemöller, Elliptic Curves, Springer-Verlag, 2003.
[ISC07] Internet Systems Consortium, Internet Domain Survey, Feb. 2007,
http://www.isc.org/index.pl?/ops/ds/.
[KM85] Nicholas M. Katz and Barry Mazur, Arithmetic Moduli of Elliptic Curves, Princeton University
Press, 1985.
[Knu81] Donald E. Knuth, The Art of Computer Programming, vol. 2, Seminumerical Algorithms, second
edition, Addison-Wesley, 1981.
[Kob94] Neal Koblitz, A course in number theory and cryptography, Springer, 1994.
[Kob98] Neal Koblitz, Algebraic Aspects of Cryptography, Springer, 1998.
[Len87] H. W. Lenstra, Factoring integers with elliptic curves, Ann. Math. 126 (1987), 649-673.
[Len97] A. K. Lenstra, Using Cyclotomic Polynomials to Construct Effcient Discrete Logarithm Cryptosystems over Finite Fields, Proceedings ACISP97, LNCS 1270, Springer-Verlag 1997, 127–138.
120
BIBLIOGRAPHY
[LLMP93b] A. K. Lentstra, H. W. Lenstra, Jr., M. S. Manasse, J. M. Pollard, The factorization of the
ninth Fermat number, 1993.
[LLMP93] A. K. Lentstra, H. W. Lenstra, Jr., M. S. Manasse, J. M. Pollard, The number field sieve,
1993.
[LLL82] A. K. Lenstra, H. W. Lenstra, L. Lovasz, Factoring polynomials with rational coefficients, Math.
Ann. 261 (1982) 513–534.
[LV00] A. K. Lenstra, E. R. Verheul, An overview of the XTR public key system, Public Key Cryptography
and Computational Number Theory Conference 2000.
[LV00] A.K. Lenstra, E. R. Verheul, The XTR public key system, Proceedings of Crypto 2000, LNCS
1880, Springer Verlag 2000.
[May05] Alexander May, Lecture Notes for the Course “Public Key Cryptanalysis”, TU Darmstadt, WS
2005/06.
[Men93] Alfred Menezes, Elliptic curve public key cryptosystems, Kluwer, 1993.
[MV00] A. Menezes, S. Vanstone, ECSTR(XTR): Elliptic Curve Singular Trace Representation, rump
session of Crypto 2000.
[Nat2000] Melvyn B. Nathanson, Elementary Methods in Number Theory, Springer 2000.
[NIST01] National Institute of Standards and Technology, Advanced Encryption Standard, 2001, http:
//www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf.
[Poo01] B. Poonen, (2001). Elliptic curves. Published online at http://math.berkeley.edu/∼poonen/.
[Rem95] Reinhold Remmert, Peter Ullrich , Elementare Zahlentheorie, Birkhäuser, 1995.
[Res00] Eric Rescorla, RFC 2818: Http over TLS, May 2000, http://tools.ietf.org/html/rfc2818.
[Sch02] Katja Schmidt-Samoa, Das Number Field Sieve: Entwicklung, Varianten und Erfolge, Diplomarbeit, Universität Kaiserslautern, März 2002.
[Sil86] Joseph H. Silverman, The Arithmetic Of Elliptic Curves, Springer-Verlag, 1986.
[Sil06] Joseph H. Silverman, An Introduction to the Theory of Lattices and Applications to Cryptography,
2006.
[Sue120] Gaius Suetonius Tranquillus, De Vita Caesarum, jul. 56, 120.
[Ver01] E.R. Verheul, Evidence that XTR ist more secure than supersingular elliptic curve cryptosystems,
Proceedings of Eurocrypt 2001, LNCS 2045, Springer-Verlag 2001, 195–210.
[GG03] Joachim von zur Gathen und Jürgen Gerhard, Modern Computer Algebra, Cambridge Univ.
Press, 2003.
[WWWa] http://primes.utm.edu/mersenne/index.html#known.
[WWWb] http://de.wikipedia.org/w/index.php?title=Quadratischer_Rest&oldid=29888802.
[WWWc] http://en.wikipedia.org/w/index.php?title=Mertens%27_theorems&oldid=124935656.
[WWWd] http://front.math.ucdavis.edu/0504.5289v2.
[WWWe] http://www.utm.edu/research/primes/mersenne/heuristic.html.
121
Herunterladen