„Primes is in P!“ Seminararbeit Sommersemester 2003 Betreut durch Prof. Hinkenjann Annegret Schnell Primes is in P 1 Einleitung Im August 2002 stellen drei indische Informatiker des Department of Computer Science & Engineering Indian Institute of Technology in Kanpur einen Beweis im Internet vor, der die Berechnung von Primzahlen in polynomialer Laufzeit propagiert. Annegret Schnell Primes is in P 2 Überblick Komplexitätsklassen Allgemeines über Primzahlen Primzahltests Beweisskizze von „Primes is in P“ Laufzeitbetrachtung Welche Folgen hat „Primes is in P“? Annegret Schnell Primes is in P 3 Komplexitätsklassen Die Groß-O-Notation Größenordnung der Komplexität mit einer Komplexitätsfunktion konstant logarithmisch linear quadratisch polynomial exponentiell O(1) O(log n) O(n) 2 n O( ) O( nk ) für k>=0 n k O( ) für k>=2 Annegret Schnell Primes is in P 4 Die Groß-O-Notation Laufzeit der obigen Größenordnungen nimmt von oben nach unten zu Rechenregeln k Komplexität in diesem Beweis O(log n) Beispiel für eine exponentielle Zeitkomplexität „Travelling Salesman Problem“ Annegret Schnell Primes is in P 5 Die Klassen NP und P Die Klasse NP beinhaltet nicht deterministische Probleme Auswirkung auf die Komplexität Nicht deterministischen Probleme könne auch deterministisch gelöst werden =>Laufzeit nimmt exponentiell zu Irrtum: NP ist nicht gleich „nicht polynomial“ Annegret Schnell Primes is in P 6 Die Klassen NP und P Große Bedeutung haben Probleme der Klasse NP für die Kryptoanalyse Durch Erraten Entschlüsselung in polynomialer Zeit Berechnung aller Möglichkeiten jedoch exponentiell Annegret Schnell Primes is in P 7 Die Klassen NP und P Deterministischen Probleme, die in polynomialer Zeit von Algorithmen gelöst werden können, liegen in der Klasse P. Unstrittig in der Mathematik, dass die Klasse NP die Klasse P mit einschließt Frage: P = NP ? wünschenswert, aber Vermutung P ⊂ NP Annegret Schnell Primes is in P 8 Klasse NP-vollständig Ein Problem ist NP-vollständig, wenn es zur Klasse NP gehört und wenn es mit polynomialem Zeitaufwand in ein anderes Problem der Klasse NP überführbar ist. Zurzeit 1000 NP-vollständige Probleme bekannt , eines davon Primfaktorzerlegung .Hier hofft man, dass P wirklich ungleich NP ist. Annegret Schnell Primes is in P 9 Primzahlen Primzahlen faszinieren den Menschen seit über zweitausend Jahren 4% der ganzen Zahlen bis 25 Billionen sind Primzahlen GIMPS (Great Internet Mersenne Prime Search) Im Dezember 2001 wurde die bis jetzt größte Mersenne Primzahl entdeckt: 213466917-1. Annegret Schnell Primes is in P 10 Primzahltests Das Sieb des Erasthotenes Vielfache einer Zahl werden „herausgesiebt Andere Formulierung auch „trivialer Primzahltest“ genannt: Um zu testen, ob eine Zahl n prim ist oder nicht, teile man sie durch alle Primzahlen die kleiner der Wurzel aus n sind. Ist n durch keine dieser Zahlen teilbar, so ist sie prim. Annegret Schnell Primes is in P 11 Primzahltests Der kleine Satz von Fermat Wenn n eine Primzahl ist, dann gilt für alle a , die nicht durch n teilbar sind: a mod n=1. Man suche sich also irgendeine Zahl aus, die nicht durch n teilbar ist wie z. B 2 und berechne 2n−1 mod n=1? n −1 Beweis gegen die Primalität 2 ist Zeuge(witness) gegen die Primalität. Annegret Schnell Primes is in P 12 Primzahltests Der Miller-Rabin-Test Es sei n eine ungerade natürliche Zahl und es sei s = max{r N: teilt n-1} s 2 Daraus folgt, dass die größte Potenz ist, die n-1 teilt. s Setze d = (n-1)/ 2 s Sei n prim (n>2) und n-1 = 2 *r mit r ungerade. Sei 1 < a < n. d Dann ist a 1mod n oder für ein r: 0<=r<=s-1 muss 2 r *d -1 mod n. gelten a Annegret Schnell Primes is in P 13 Primzahltests Der Miller-Rabin-Test Abschätzung : wie viele Zahlen sind keine Zeugen gegen die Primalität? Antwort: (n-1)/4 => Wahrscheinlichkeit, dass n zusammengesetzt ist, ist höchstens ¼. Durch t-fache Wiederholung wächst Wahrscheinlichkeit, dass n eine Primzahl 1 t ist auf 1 − ( ) 4 Annegret Schnell Primes is in P 14 Beweisskizze von „Primes is in P“ Beweisidee Identität: a und p sind teilerfremd, dann ist p eine Primzahl und zwar nur dann, wenn ( x − a) p ≡ ( x p − a) mod p Beweis Siehe Tafel Laufzeit dieser Identität exponentiell, da auf der linken Seite p Koeffizienten berechnet werden müssen. Annegret Schnell Primes is in P 15 Neuer Beweisansatz Anstatt großer Polynompotenzen ( x − a) p Betrachtung der Reste nach einer Division durch ( x r − 1) . Dies führte zu dem Ansatz ( x − a) ≡ ( x − a)(mod x − 1, p) p p r Die Notation bedeutet die Gleichheit der Reste r der Polynome nach Division durch ( x − 1) und Division der Koeffizienten durch p. Annegret Schnell Primes is in P 16 Neuer Beweisansatz Aus Identität folgt, dass Behauptung für Primzahlen korrekt ist. Ziel ist es, obige Behauptung für eine „kleine“ Zahl von a‘s zu beweisen => Laufzeit kann deutlich gesenkt werden Annegret Schnell Primes is in P 17 Hauptsatz Sei n N mit n>=2 beliebig und r mit 2<=r<=n-1 eine Primzahl mit ggT(r,n) = 1. Wenn die folgenden Bedingungen a) bis d) erfüllt sind, dann ist n eine Primzahlpotenz. Definiere L:= 2 ⋅ r ⋅ log n a) r-1 hat einen Primteiler q >= L b) n ( r −1) / q ≠ 1mod r (q| or)(or ist multiplikative Ordnung) c) Für alle 1<= a<= L gilt ggT(a,n)=1 d) Für alle 1<= a<= L gilt ( X − a )n ≡ ( X n − a)(mod n, X r − 1) Annegret Schnell Primes is in P 18 Der Algorithmus Input: integer n > 1 b a 1. if ( n is of the form , b > 1 ) output COMPOSITE; 2. r = 2; 3. while(r < n) { 4. if ( gcd(n,r) ≠1 ) output COMPOSITE; 5. if (r is prime) 6. let q be the largest prime factor of r - 1; r −1 7. if ( q ≥ 4 r log n and n q ≠ 1(mod r )) 8. break; 9. r r + 1; 10. } Annegret Schnell Primes is in P 19 Der Algorithmus 11. for a = 1 to 2 12. rlog n n n r (( x − a ) ≠ ( x − a )(mod x − 1, n)) If output COMPOSITE; 13. output PRIME; Annegret Schnell Primes is in P 20 Korrektheit des Algorithmus Behauptung: Der Algorithmus gibt PRIME zurück, wenn und nur wenn n eine Primzahl ist. While Schleife : Suche nach r mit großem Primfaktor q für den gilt dass q 4 r log n und q ein Teiler von or (n) For Schleife: Testet für eine „kleine“ Anzahl von a‘s (( x − a)n ≠ ( x n − a)(mod x r − 1, n)) Annegret Schnell Primes is in P 21 Implementationen Es gibt verschiedene Implementationen dieses Algorithmus in verschiedenen Programmiersprachen. Diese könne unter folgendem Link gefunden werden: http://fatphil.org/maths/AKS/#Implementatio ns Annegret Schnell Primes is in P 22 Laufzeitbetrachtung Operationen der While Schleife: n= a b O (log c n) ggT Bestimmung n r −1 q ≠ 1(mod r )) Triviale Primzahlberechnung Annegret Schnell O(log n). O(log n O (log c n) Primes is in P 23 Laufzeitbetrachtung For Schleife: c O (log n,) Laufzeit von n r ( X − a ) (mod n , X − 1) da mit O(log n) Multiplikationen von Polynomen vom Grad kleiner r berechnet wird, da r polylogarithmisch ist Laufzeit insgesamt: polynomielle Laufzeit von O (log 6 n) Annegret Schnell Primes is in P 24 Welche Folgen hat „Primes is in P“? Sicherheit der kryptographischen Verfahren in Gefahr ? NEIN Beispiel Public Key Verfahren : Sicherheit beruht auf Schwierigkeit große Zahlen in Primfaktoren zu zerlegen. Annegret Schnell Primes is in P 25 Praktische Verwertbarkeit von „Primes is in P“ Generierung großer Primzahlen weiterhin mit probabalistischen Verfahren, da wesentlich schneller Industrial-grade-primes mit 500 Dualstellen mit Miller-Rabin in Millisekunden, bei AKS jedoch in Monaten => noch keine praktische Relevanz Annegret Schnell Primes is in P 26 Meilenstein in der Komplexitätstheorie Lösung eines jahrhundert alten mathematischen Problems. Verbesserungen und Erweiterungen des Algorithmus werden in Workshops bearbeitet. Annegret Schnell Primes is in P 27