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) N ln N. daraus folgt: eine zufällig gewählte ganze Zahl zwischen 1 und N ist mit einer Wahrscheinlichkeit von 1 ln N 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 1 ln N Wahrscheinlichkeit von 1 ln 2 512 1 355 Primzahl mit einer da nur ungerade Zahlen betrachtet werden müssen ist die Wahrscheinlichkeit sogar 2 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
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
Probabilistische Algorithmen probabilistische Algorithmen sind schnell - liefern aber mit einer gewissen Wahrscheinlichkeit ɛ ein falsches Ergebnis ein einseitiger probabilistischer Algorithmus liefert mit einer Wahrscheinlichkeit 1 2 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
Solovay-Strassen-Test Probabilistische Primzahltests 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
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
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
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
Der kleine Satz von Fermat Definition Sei p eine Primzahl und a eine ganze Zahl und es sei a 0 (mod p). Dann gilt a p 1 1 (mod p) 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 14
Quadratische Reste Definition Sei p Primzahl und a eine ganze Zahl. Dann heißt a quadratischer Rest mod p g.d.w. a 0 (mod p) und y 2 a (mod p) hat eine Lösung y Z p. Gilt a 0 (mod p) und a ist nicht quadratischer Rest modulo p, dann heißt a nicht-quadratischer Rest modulo p. Beispiel: Z 11 1 2 = 1 2 2 = 4 3 2 = 9 4 2 = 5 5 2 = 3 6 2 = 3 7 2 = 5 8 2 = 9 9 2 = 4 10 2 = 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
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 y (mod p) da p ungerade ist Betrachtet man die quadratische x 2 a 0 (mod p) Kongruenz 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 x 2 a 0 (mod p) hat genau zwei Lösungen: x ±y (mod p) 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 16
Quadratische Reste - Beispiel 2 Folgerung: x 2 a 0 (mod p) hat genau zwei Lösungen: x 1,2 ±y (mod p) Beispiel in Z 11 : x 2 a 0 (mod 11) Inverse in Z 11 Quadratischer Rest a Inverse in Z 11 x 1 = 10 = 1 ( 1) 2 = 10 2 = 1 = 1 2 = 10 2 x 2 = 1 = 10 x 1 = 9 = 2 ( 2) 2 = 9 2 = 4 = 2 2 = 9 2 x 2 = 2 = 9 x 1 = 8 = 3 ( 3) 2 = 8 2 = 9 = 3 2 = 8 2 x 2 = 3 = 8 x 1 = 7 = 4 ( 4) 2 = 7 2 = 5 = 4 2 = 7 2 x 2 = 4 = 7 x 1 = 6 = 5 ( 5) 2 = 6 2 = 3 = 5 2 = 6 2 x 2 = 5 = 6 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 17
Carmichael-Zahlen Kriterien nach Korselt 1. Eine ungerade, quadratfreie Zahl n N, so dass a n 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
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
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 ɛ < 1 4 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
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 a n 1 1 (mod n) mit n Carmichael-Zahl für alle Basen a ausser den eigenen Teilern - jedoch gilt nicht a: n (a n 1 1), was nach Fermat folgen würde, wäre n Primzahl Faktorisierung nach 3. binomischer Formel: ) ( ) a n 1 1 = (a n 1 2 1 a n 1 2 + 1 }{{} ) ) (a n 1 4 1 (a n 1 4 + 1 } {{ } etc. Zahl n kann nur Primzahl sein, falls sie einen dieser Faktoren teilt! 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 21
Miller-Rabin-Algorithmus Miller-Rabin(n) schreibe n 1 = 2 k m, wobei m ungerade wähle einen beliebigen Integer-Wert a, 1 a n 1 b := a m mod n if b 1 (mod n) then return (,,n ist Primzahl ) for i in 0 to k 1 8 >< if b 1 (mod n) do then return (,,n ist Primzahl ) >: else b := b 2 mod n // k-te Wurzel von a 2k m // b = a 2i m return (,,n ist keine Primzahl ) // a n 1 a 2k m 1 (mod n) 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 22
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 a 2i m 1 (mod n) für 0 i k 1 da n prim sein soll gilt nach Fermat: a 2k m 1 (mod n) da n 1 = 2 k m a 2k 1m = a 2 k m 2 1 ±1 (mod n) da n prim gibt es genau zwei Wurzeln dann ist wir wissen aber a 2k 1m 1 (mod n), also: a 2k 1m 1 (mod n) damit ist wiederum a 2k 2m 1 ±1 (mod n) usw. man erhält schließlich a m 1 (mod n) Widerspruch! der Algorithmus hätte in diesem Fall,,n ist Primzahl geantwortet 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 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 10 5 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