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