Primzahltests und Faktorisierung Primzahltests Primzahltests Nuria Brede 16.06.2005 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 1 Primzahltests und Faktorisierung Primzahltests Inhalt 1. Einleitung 2. Probabilistische Primzahltests • Mathematische Grundlagen • Miller-Rabin Primzahltest 3. Deterministische Primzahltests 4. Fazit 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 2 Primzahltests und Faktorisierung §1 Einleitung Inhalt 1. Einleitung 2. Probabilistische Primzahltests • Mathematische Grundlagen • Miller-Rabin Primzahltest 3. Deterministische Primzahltests 4. Fazit 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 3 Primzahltests und Faktorisierung §1 Einleitung Motivation - Warum Primzahltests? • Public Key Kryptographie benötigt möglichst große beliebige Primzahlen • Problem: Suche nach Primzahlen mit intuitiven Mitteln - wie einfaches Durchtesten - für sehr grosse Zahlen ineffizient • Abhilfe: Zufällige Erzeugung sehr großer Zahlen und Primzahltest mit mathematisch ausgefeilten probabilistischen Algorithmen 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 4 Primzahltests und Faktorisierung §1 Einleitung Primzahlen per Zufall suchen? • in der Praxis nur sinnvoll, wenn nicht zu viele Zufallszahlen getestet werden müssen, bis eine Primzahl gefunden ist • hilfreiche Erkenntnis aus der Zahlentheorie (nach Gauss): Das Primzahl-Theorem Sei π(N ) die Anzahl der Primzahlen ≤ N . Dann gilt π(N ) ≈ lnNN . • daraus folgt: eine zufällig gewählte ganze Zahl zwischen 1 und N ist mit einer Wahrscheinlichkeit von ≈ ln1N eine Primzahl 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 5 Primzahltests und Faktorisierung §1 Einleitung Primzahlen per Zufall zu suchen? Beispiel. • angewandt auf RSA: für einen 1024 bit Modulus n = p ∗ q sind p und q 512 bit Primzahlen • ein 512 bit Integer ist nach der Formel ln1N mit einer 1 Wahrscheinlichkeit von ln 21512 ≈ 355 Primzahl • da nur ungerade Zahlen betrachtet werden müssen ist die 2 Wahrscheinlichkeit sogar ≈ 355 • Fazit: Diese Art der Primzahl-Suche ist in der Praxis tatsächlich sinnvoll 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 6 Primzahltests und Faktorisierung §1 Einleitung Welche Primzahltests gibt es? • früher Primzahltest: Sieb des Eratosthenes schon im 3. Jh. v.Chr. • moderne Tests lassen sich in zwei Gruppen unterteilen: – deterministische Tests ∗ eindeutig, aber nicht so schnell ∗ lange offene Frage: ist polynomielle Laufzeit möglich? – probabilistische Tests ∗ schnell, dafür Fehlermöglichkeit ∗ bereits 1977 probabilistischer Test mit polynomieller Laufzeit 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 7 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Inhalt 1. Einleitung 2. Probabilistische Primzahltests • Mathematische Grundlagen • Miller-Rabin Primzahltest 3. Deterministische Primzahltests 4. Fazit 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 8 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Probabilistische Algorithmen • probabilistische Algorithmen sind schnell - liefern aber mit einer gewissen Wahrscheinlichkeit ein falsches Ergebnis • ein einseitiger probabilistischer Algorithmus liefert mit einer Wahrscheinlichkeit ≥ 12 das richtige Ergebnis • durch entsprechende Zahl von Wiederholungen lässt sich die Fehlerwahrscheinlichkeit unter eine beliebig niedrige Schranke senken 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 9 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Probabilistische Primzahltests • Solovay-Strassen-Test – erster probabilistischer Primzahltest: vorgestellt 1977 von Robert Solovay (IBM) und Volker Strassen (Universität Zürich) – < 1 2 und Laufzeit polynomiell in O((log n)3 ) • Miller-Rabin-Test – vorgestellt 1980 von Michael O. Rabin, basiert auf Gary Millers deterministischem Test von 1976 – < 1 4 und Laufzeit ebenfalls O((log n)3 ) • ECPP - Elliptic Curve Primality Proving – erste Variante 1986 von Goldwasser und Kilian, verbessert 1992 von Adleman und Huang – basierend auf Theorie elliptischer Kurven, Laufzeit O((ln n)4 ) 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 10 Primzahltests und Faktorisierung ' §2 Probabilistische Primzahltests Monte-Carlo-Algorithmus Definition Ein yes-biased Monte-Carlo-Algorithmus ist ein probabilistischer Algorithmus für Entscheidungsprobleme, bei dem Antwort ,,ja” immer korrekt ist - Antwort ,,nein” kann jedoch mit Fehlerwahrscheinlichkeit falsch sein. Ein no-biased Monte-Carlo-Algorithmus wird analog definiert. & Beispiele: Monte-Carlo-Algorithmen für zusammengesetzte Zahlen $ % • yes-biased: Tests von Solovay-Strassen und Miller-Rabin 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 11 Primzahltests und Faktorisierung ' §2 Probabilistische Primzahltests Las-Vegas-Algorithmus Definition Ein Las-Vegas-Algorithmus ist ein probabilisitscher Algorithmus für Entscheidungsprobleme, dessen Antwort immer korrekt ist - jedoch gibt er möglicherweise keine Antwort. & Beispiel: Las-Vegas-Algorithmus $ % • ECPP - erster probabilistischer Test, der die Primalität einer Zahl beweist 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 12 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Inhalt 1. Einleitung 2. Probabilistische Primzahltests • Mathematische Grundlagen • Miller-Rabin Primzahltest 3. Deterministische Primzahltests 4. Fazit 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 13 Primzahltests und Faktorisierung ' §2 Probabilistische Primzahltests Der kleine Satz von Fermat Definition Sei p eine Primzahl und a eine ganze Zahl und es sei a 6≡ 0 (mod p). Dann gilt & 16.06.2005 ap−1 ≡ 1 (mod p) Universität Potsdam - Kryptographie SoSe 2005 $ % Seite 14 Primzahltests und Faktorisierung ' §2 Probabilistische Primzahltests Quadratische Reste Definition Sei p Primzahl und a eine ganze Zahl. Dann heißt a quadratischer Rest mod p g.d.w. a 6≡ 0 (mod p) und y 2 ≡ a (mod p) hat eine Lösung y ∈ Zp . Gilt a 6≡ 0 (mod p) und a ist nicht quadratischer Rest modulo p, dann heißt a nicht-quadratischer Rest modulo p. & • Beispiel: Z11 12 = 1 62 = 3 22 = 4 72 = 5 32 = 9 82 = 9 42 = 5 92 = 4 52 = 3 102 = 1 $ % • 1,3,4,5,9 sind also quadratische Reste modulo 11 • 2,6,7,8,10 sind nicht-quadratische Reste modulo 11 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 15 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Quadratische Reste - Folgerungen Sei p eine ungerade Primzahl und a ein quadratischer Rest modulo p. Dann gilt: ∃y ∈ Z∗p , so dass y 2 ≡ a (mod p) Es gilt auch: (−y)2 ≡ a (mod p) und y 6≡ −y (mod p) Betrachtet man die quadratische Kongruenz x2 − a ≡ 0 (mod p) lässt sich faktorisieren (x − y)(x + y) ≡ 0 (mod p) also: p | (x − y)(x + y) daraus folgt p | (x − y) oder p | (x + y) weil p Primzahl ist da p ungerade ist ⇒ x2 − a ≡ 0 (mod p) hat genau zwei Lösungen: x ≡ ±y (mod p) 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 16 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Quadratische Reste - Beispiel 2 • Folgerung: x2 − a ≡ 0 (mod p) hat genau zwei Lösungen: x1,2 ≡ ±y (mod p) • Beispiel in Z11 : x2 − a ≡ 0 (mod 11) ' Inverse in Z11 Quadratischer Rest a Inverse in Z11 x1 = 10 = −1 (−1)2 = 102 = 1 = 12 = −102 x2 = 1 = −10 x1 = 9 = −2 (−2)2 = 92 = 4 = 22 = −92 x2 = 2 = −9 x1 = 8 = −3 (−3)2 = 82 = 9 = 32 = −82 x2 = 3 = −8 x1 = 7 = −4 (−4)2 = 72 = 5 = 42 = −72 x2 = 4 = −7 x1 = 6 = −5 & (−5)2 = 62 = 3 = 52 = −62 x2 = 5 = −6 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 17 $ % Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Carmichael-Zahlen ' Kriterien nach Korselt 1. Eine ungerade, quadratfreie Zahl n ∈ N, so dass an−1 ≡ 1 (mod n) für alle teilerfremden a ∈ N 2. Für alle Primteiler p von n gilt (p − 1)|(n − 1) & • ,,ungünstige” Eigenschaften: $ % – Kongruenz des kleinen Fermat’schen Satzes erfüllt für fast alle a – es gibt unendlich viele Carmichael-Zahlen • Beispiele für Carmichael-Zahlen: – 561 = 3 ∗ 11 ∗ 17 – 1105 = 5 ∗ 13 ∗ 17 – 1729 = 7 ∗ 13 ∗ 19 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 18 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Inhalt 1. Einleitung 2. Probabilistische Primzahltests • Mathematische Grundlagen • Miller-Rabin Primzahltest 3. Deterministische Primzahltests 4. Fazit 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 19 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Der Miller-Rabin Test • Idee: nutzt den kleinen Satz von Fermat, umgeht aber das Problem der Carmichael-Zahlen - deshalb auch ,,The Strong Pseudo-Prime Test” genannt • yes-biased Monte-Carlo-Algorithmus für zusammengesetzte Zahlen mit Fehlerwahrscheinlichkeit < 14 • bei ausreichender Wiederholung (≈ 30 mal) ist die Wahrscheinlichkeit eines falschen Ergebnisses geringer als die eines Hardware-Fehlers! • wird neben Kryptographie z.B. in Programmen wie Maple oder Mathematica eingesetzt 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 20 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Der Miller-Rabin Test - Funktionsweise • Grundlage: Nutzung des kleinen Satzes von Fermat • Problem: Fermat’sche Pseudo-Primzahlen und insbesondere Carmichael-Zahlen sind falsche Zeugen für die Primalität einer Zahl • Gedanke: bei Carmichael-Zahlen hält zwar an−1 ≡ 1 (mod n) mit n Carmichael-Zahl für alle Basen a ausser den eigenen Teilern jedoch gilt nicht ∀a: n|(an−1 − 1), was nach Fermat folgen würde, wäre n Primzahl • Faktorisierung nach 3. binomischer Formel: n−1 n−1 a 2 −1 ∗ a 2 +1 an−1 − 1 = {z } | n−1 n−1 a 4 −1 ∗ a 4 +1 {z } | etc. • Zahl n kann nur Primzahl sein, falls sie einen dieser Faktoren teilt! 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 21 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Miller-Rabin-Algorithmus ' Miller-Rabin(n) $ schreibe n − 1 = 2k ∗ m, wobei m ungerade wähle einen beliebigen Integer-Wert a, 1 ≤ a ≤ n − 1 b := am mod n k // k-te Wurzel von a2 ∗m if b ≡ 1 (mod n) then return (,,n ist Primzahl”) for i in 0 to k − 1 8 > > <if b ≡ −1 do i // b = a2 ∗m (mod n) then return (,,n ist Primzahl”) > > : else b := b2 mod n return (,,n ist keine Primzahl”) & 16.06.2005 k // an−1 ≡ a2 ∗m ≡ 6 1 (mod n) Universität Potsdam - Kryptographie SoSe 2005 % Seite 22 Primzahltests und Faktorisierung §2 Probabilistische Primzahltests Der Miller-Rabin Test - Korrektheit • zu zeigen: Bei Ausgabe ,,n ist keine Primzahl” gilt: n nicht prim. • Annahme: Ausgabe ,,n ist keine Primzahl”, aber n ist prim aus der Ausgabe ,,n ist keine Primzahl” folgt da n prim sein soll gilt nach Fermat: a a 2i m 2k m a wir wissen aber a2 man erhält schließlich 16.06.2005 a k−1 für 0 ≤ i ≤ k − 1 ≡ 1 (mod n) 2k−1 m dann ist damit ist wiederum 6≡ −1 (mod n) m 2k−2 m =a 2k m 2 ≡ √ 1 ≡ ±1 (mod n) 6≡ −1 (mod n), also: a2 ≡ √ da n − 1 = 2k m k−1 1 ≡ ±1 (mod n) am ≡ 1 (mod n) ⇒ Widerspruch! Universität Potsdam - Kryptographie SoSe 2005 m da n prim gibt es genau zwei Wurzeln ≡ 1 (mod n) usw. der Algorithmus hätte in diesem Fall ,,n ist Primzahl” geantwortet Seite 23 Primzahltests und Faktorisierung §3 Deterministische Primzahltests Inhalt 1. Einleitung 2. Probabilistische Primzahltests • Mathematische Grundlagen • Miller-Rabin Primzahltest 3. Deterministische Primzahltests 4. Fazit 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 24 Primzahltests und Faktorisierung §3 Deterministische Primzahltests Deterministische Primzahltests • lange gab es nur determinitische Tests mit polynomieller Laufzeit, die die Richtigkeit der unbewiesenen Riemannschen Hypothese voraussetzten oder nur bestimmte Zahlen (z.B. Lucas-Lehmer-Test für Mersenne-Zahlen) testeten • Richtigkeit der Riemannschen Hypothese vorauszusetzen problematisch, da somit mathematisches Fundament unsicher - fatal falls Riemannsche Hypothese widerlegt würde • Millers Grundlage für Miller-Rabin-Test gehört zu dieser Sorte deterministischer Tests • Wissenstand vor 2002: Problem PRIMES ist nicht NP-vollständig offene Frage war: liegt es in P? 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 25 Primzahltests und Faktorisierung §3 Deterministische Primzahltests Der AKS-Test • veröffentlicht im August 2002 durch Manindra Agrawal, Neeraj Kayal und Nitin Saxena vom indischen Institute of Technology Kanpur unter dem Titel ,,PRIMES is in P” • Durchbruch in der mathematischen Welt: Laufzeit O((log n)12 ) • Idee: basiert auf einer Erweiterung des kleinen Satzes von Fermat auf Polynomring Z[x] • (Anmerkung: Löst nicht das Problem, ob P = NP!) 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 26 Primzahltests und Faktorisierung §4 Fazit Inhalt 1. Einleitung 2. Probabilistische Primzahltests • Mathematische Grundlagen • Miller-Rabin Primzahltest 3. Deterministische Primzahltests 4. Fazit 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 27 Primzahltests und Faktorisierung §4 Fazit Fazit • Derzeit sind probabilistische Primzahltests am schnellsten • In der Praxis werden besonders der Miller-Rabin-Test und ECPP erfolgreich eingesetzt • Tests der AKS-Familie sind zeitlich - noch? - um Faktor ≈ 105 langsamer verglichen mit den Spitzengeschwindigkeiten probabilistischer Tests 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 28 Primzahltests und Faktorisierung ' §4 Fazit Ausblick P. Leyland (Universität Oxford Computing Services) schreibt zu AKS: ,,One reason for the excitement within the mathematical community is not only does this algorithm settle a long-standing problem, it also does so in a brilliantly simple manner. Everyone is now wondering what else has been similarly overlooked.” & 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 $ % Seite 29 Primzahltests und Faktorisierung §4 Fazit Literatur [1] Douglas R. Stinson. Cryptography - Theory and Practice, pages 171–180. Chapman & Hall/CRC, second edition, 2002. [2] Neeraj Kayal Agrawal, Manindra and Nitin Saxena. PRIMES is in P, August 2002. [3] Evangelos Kranakis. Primality and Cryptography. Wiley-Teubner series in computer science, 1986. [4] Volker Strassen. Zufalls-Primzahlen und Kryptographie, M ärz 1996. [5] B.L. van der Waerden. Algebra I. Springer-Verlag, 1971. [6] Eric W. Weisstein. Elliptic curve primality proving. From MathWorld–A Wolfram Web Resource, 2005. http://mathworld.wolfram.com/EllipticCurvePrimalityProving.html. [7] Folkmar Bornemann. PRIMES is in P: A Breakthrough for ”Everyman”. Notices of the AMS, Mai 2003. [8] Ganze Zahlen, Teiler und Primzahlen. http://www.biologie.de/sixcms/ media.php/370/Leseprobe.106690.pdf. [9] Wikipedia. http://www.wikipedia.org. 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 30 Primzahltests und Faktorisierung Dank Danke für die Aufmerksamkeit ... ...und jetzt weiter mit: Faktorisierung 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 31