Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Probabilistische Primzahltests Alexander von Felbert 23.01.2006 Alexander von Felbert Probabilistische Primzahltests Einführung Der Fermat-Test Motivation und Überblick Miller-Rabin-Test Grundsätzliches Vorgehen Der Solovay-Strassen-Test Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl (prim) ist oder nicht. Probabilistische Algorithmen sind sog. randomisierte Algorithmen, als Algorithmen welche ein Zufallsexperiment als wesentlichen Bestandteil enthalten. Monte-Carlo-Algorithmen sind rand. Algorithmen, die mit einer nach oben beschränkten Wahrscheinlichkeit ein falsches Ergebnis liefern dürfen. Alle naiven Verfahren (Brute-Force, Sieb des Eratosthenes) sind nicht polyonomiell zeitbeschränkt! (Warum?) Alexander von Felbert Probabilistische Primzahltests Einführung Der Fermat-Test Motivation und Überblick Miller-Rabin-Test Grundsätzliches Vorgehen Der Solovay-Strassen-Test Motivation und Überblick Im August 2002 wurde das erste deterministische und polynomiell zeitbeschränkte Verfahren von drei indischen Wissenschaftlern veröentlicht (AKS-Algorithmus). Bei einigen Kryptosystemen, insbesondere bei asymmetrischen Public-Key-Verfahren, werden groÿe Primzahlen benötigt. Kryptographische Verfahren und damit auch Primzahltests müssen gegenüber der Zeit- und Platzkomplexität gewisse Anforderungen erfüllen, insbesondere sollten sie ezient zu berechnen sein. Alexander von Felbert Probabilistische Primzahltests Einführung Der Fermat-Test Motivation und Überblick Miller-Rabin-Test Grundsätzliches Vorgehen Der Solovay-Strassen-Test Grundsätzliches Vorgehen 1 2 Wähle zufällig eine ungerade Zahl n ∈ N. Teste mit einem Verfahren, ob die gegebene Zahl n prim ist oder zusammengesetzt (Black-Box). 3 Ist die Zahl n gemäÿ Test eine Primzahl, so sind wir bereits fertig. Ansonsten führen wir einen erneuten Test mit der Zahl (n + 2). Es werden also die Zahlen n, (n + 2), . . . , (n + 2k) getestet, bis im k -ten Schritt wahrscheinlich eine Primzahl gefunden wurde. Beachte das Bertrandsche Postulat: ∀n ∈ N, n > 1∃p ∈ P mit n < p ≤ 2n! Alexander von Felbert Probabilistische Primzahltests Einführung Der Fermat-Test Motivation und Überblick Miller-Rabin-Test Grundsätzliches Vorgehen Der Solovay-Strassen-Test Grundsätzliches Vorgehen Input: n ∈ N, n ungerade! Output: Besteht die Zahl n den Test nicht, so ist diese nicht prim, also Besteht die Zahl n den Test, so ist diese bestimmt zusammengesetzt. Alexander von Felbert wahrscheinlich prim. Probabilistische Primzahltests Einführung Der Fermat-Test Motivation und Überblick Miller-Rabin-Test Grundsätzliches Vorgehen Der Solovay-Strassen-Test Grundsätzliches Vorgehen Die Fehlerwahrscheinlichkeit kann bei allen drei vorgestellten Tests durch wiederholtes Durchführen beliebig gesenkt werden. exakt beschränkt werden. Dabei nutzen die vorgestellten Verfahren notwendige aber nicht hinreichenden Kriterien für Primzahlen aus. Alexander von Felbert Probabilistische Primzahltests Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Der Fermat-Test Alexander von Felbert Probabilistische Primzahltests Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Satz von Euler und kleiner Satz von Fermat SATZ Es sei b ∈ Z, n ∈ N. Sei weiter ggT (b, n) = 1, b φ(n) ≡ 1( dann gilt: mod n). (1) Folgerung Es sei p prim und b∈Z mit ggT (b, p) = 1. b p−1 ≡ 1( Alexander von Felbert Dann gilt: mod p). Probabilistische Primzahltests (2) Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Satz von Euler Beispiel: 5 φ(6) Es ist mod 6 = 52 mod 6 = 25 mod 6 = 1. ggT (5, 6) = 1, d.h. wir können den Satz von von Euler anwenden. Es ist 31 φ(853) mod 853 und ggT (853, 31) = 1. Mit dem Satz von Euler folgt 31 853 prim ⇒ φ(853) ≡ 1( mod 853) Kleiner Satz von Fermat. Alexander von Felbert Probabilistische Primzahltests Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Pseudoprimzahlen Der kleine Satz von Fermat ist ein notwendiges Kriterium für p ∈ P. Wir wissen, dass für geeignete Zahlen b b p−1 mod p = 1. Leider gilt die Umkehrung dieses Primzahlen gilt Sachverhalts nicht, wie uns das folgende Beispiel zeigt: Beispiel: n := 91 = 7 · 13 und b := 3. Obwohl 91 oensichtlich zusammengesetzt ist gilt 3 90 mod Alexander von Felbert 91 = 1. Probabilistische Primzahltests stets Der Satz von Euler, kleiner Fermat Einführung Pseudoprimzahlen Der Fermat-Test Fehlerwahrscheinlichkeit Miller-Rabin-Test Carmichael-Zahlen Der Solovay-Strassen-Test Algorithmus Pseudoprimzahlen Das letzte Beispiel motiviert die folgende Denition: Sei n n∈N eine b ∈ Z∗n . Wir nennen b n−1 mod n = 1 gilt. eine zusammengesetzte Zahl, und sei Pseudoprimzahl zur Basis b, falls Beispiel: Es ist also n := 91 = 7 · 13 zur Basis b := 3 eine Pseudoprimzahl, da gilt 3 90 mod 91 =1 90 aber 2 Alexander von Felbert mod 91 = 64 6= 1 Probabilistische Primzahltests Der Satz von Euler, kleiner Fermat Einführung Pseudoprimzahlen Der Fermat-Test Fehlerwahrscheinlichkeit Miller-Rabin-Test Carmichael-Zahlen Der Solovay-Strassen-Test Algorithmus Pseudoprimzahlen Lemma Sei n∈N eine zusammengesetzte Zahl. Die Menge B := {b ∈ Z∗n |n ist eine Untergruppe von ist Pseudoprimzahl zur Basis (Z∗n , ), wobei b} die modulare Multiplikation ist. Beweis: Seien a, b ∈ B . Dann gilt an−1 ≡n 1 ≡n b n−1 . Also (ab −1 )n−1 ≡ an−1 (b −1 )n−1 ≡ 1 · (b n−1 )−1 ≡ 1 womit auch das Produkt ab −1 in B liegt. Mit dem UG-Kriterium folgt damit die Behauptung. Alexander von Felbert mod n, Probabilistische Primzahltests Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Fehlerwahrscheinlichkeit Lemma Sei n eine zusammengesetzte Zahl. Entweder n ist eine Pseudoprimzahl für alle Basen n ist keine Pseudoprimzahl zur Basis Hälfte aller b b ∈ Z∗n , oder für mindestens die b ∈ Z∗n . Beweis: Nach einem Korollar aus dem Satz von Lagrange wissen wir, dass die Ordnung einer UG, die Gruppenordnung teilt - vorausgesetzt die UG existiert überhaupt. Diese Erkenntnis angewendet auf deren Untergruppe B ergibt die Behauptung. Alexander von Felbert Probabilistische Primzahltests Z∗n und Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Carmichael-Zahlen Die zusammengesetzte Zahl 561 = 3 · 11 · 17 besitzt eine besondere Eigenschaft, denn sie ist Pseudoprimzahl für alle Basen D.h. es gilt für b ∈ {1, 2, 4, · · · , 560} b 561−1 ≡n Denition: Eine zusammengesetzte Zahl b n−1 mod n = 1 b ∈ Z∗n . die Kongruenz 1 n ∈ N heiÿt Carmichael-Zahl, b ∈ Z∗n gilt. für alle Basen Alexander von Felbert Probabilistische Primzahltests falls Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Carmichael-Zahlen 7 ersten Carmichael-Zahlen: = 3 · 11 · 17 = 5 · 17 · 29 8911 = 7 · 19 · 67 561 1105 2465 2821 = 5 · 13 · 17 = 7 · 13 · 31 1729 6601 = 7 · 13 · 19 = 7 · 23 · 41 SATZ Sei n∈N 1 Sei 2 Sei p eine ungerade, zusammengesetzte Zahl. prim und p 2 |n ⇒ n ist keine Carmichael-Zahl. n nicht durch eine Quadratzahl teilbar. Dann gilt: n ist eine Carmichael-Zahl ⇔ Für jeden Primteiler p von n (p − 1)|(n − 1). Alexander von Felbert Probabilistische Primzahltests gilt Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Carmichael-Zahlen Besteht ein zufällig gewähltes ungerades b n−1 mod n = 1 für die Zahl n entweder 1 2 3 n∈N den Test, d.h. gilt ein ebenso zufällig gewähltes b ∈ Z∗n , so kann Primzahl sein. eine Carmichael-Zahl sein. eine zusammengesetzte Zahl sein, und die eine Wahrscheinlichkeit ein solches Alexander von Felbert b zu wählen, war höchstens Probabilistische Primzahltests 1 2. Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Carmichael-Zahlen Carmichael-Zahlen sind innerhalb der natürlichen Zahlen N recht weit gestreut liegen - es gibt zum Beispiel gerade einmal 9 und 646 Carmichael-Zahlen kleiner als 10 unterhalb von 10 15 existieren gerade einmal 105212 Carmichael-Zahlen. Durch Speicherung aller Carmichael-Zahlen unterhalb eines maximalen Wertes in einer Datenstruktur kann man das Problem der Carmichael-Zahlen quasi umgehen. Alexander von Felbert Probabilistische Primzahltests Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Algorithmus: Fermat-Test Fermat-Test: n ∈ N, n ≥ 3, n ungerade Output: n ist wahrscheinlich prim. oder n ist zusammengesetzt! Wähle zufällig b ∈ {2, . . . , n − 2}; IF (ggT (b, n) 6= 1) THEN n ist zusammengesetzt! Input: b n−1 mod n; IF (tmp 6= 1) THEN n ist zusammengesetzt! ELSE n ist wahrscheinlich prim! tmp := ELSE FI FI Alexander von Felbert Probabilistische Primzahltests Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Der Satz von Euler, kleiner Fermat Pseudoprimzahlen Fehlerwahrscheinlichkeit Carmichael-Zahlen Algorithmus Algorithmus: Fermat-Test Fermat-Test liefert die richtige Antwort nur mit einer Wahrscheinlichkeit von Da wir die Basen ≈ 0.5 b ∈ Z∗n stochastisch unabhängig wählen, können wir jedoch den Fermat-Test iterativ ausführen. Wähle verschiedene Basen b0 , b1 , . . . , bk für jeden einzelnen Test stochastisch unabhängig voneinander. Sodann ergibt sich eine Fehlerwahrscheinlichkeit von Bereits für k > 25 1 . 2k ist es wahrscheinlicher vom Blitz getroen zu werden oder aber das ein Hardwarefehler auftritt als dass der Fermat-Test ein falsches Ergebnis ausspuckt. Alexander von Felbert Probabilistische Primzahltests Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Der Miller-Rabin-Test Alexander von Felbert Probabilistische Primzahltests Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Beispiel Beispiel: n = 341 = 31 · 11, wählen b := 2. Sei Wir berechnen 341 −1= also eine zusammengesetzte Zahl. Wir n − 1 = 2r s , wobei s ungerade r = 2 und s = 85. 2 2 · 85, d.h. x0 = 285 mod 341 = 32, x1 = 22·85 mod 341 = 1 = (x0 )2 mod x2 = 24·85 mod 341 = 1 = (x1 )2 mod Also x = (32, 1, 1) ⇒ ist: es ist 341, 341. 341 ist zusammengesetzt. Alexander von Felbert Probabilistische Primzahltests Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Herleitung des Kriteriums Weiterentwicklung des Der Miller-Rabin-Test ist eine Fermat-Tests. n prim ⇒n−1 gerade, d.h. b n−1 ≡n 1 ⇔ b n−1 − 1 ≡n ⇔b 2t 0 − 1 ≡n (b t − 1)(b t + 1) ≡n (b t − 1) kann durch werden, falls t gerade. Der erste Faktor faktorisiert n − 1 = 2t, t ∈ N. 0 dasselbe Prinzip r −1 s ⇔ b n−1 − 1 ≡ (b s − 1)(b s + 1)(b 2s + 1)(b 4s + 1) . . . (b 2 ≡0 mod n Alexander von Felbert Probabilistische Primzahltests + 1) Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Berechnung der charakteristischen Folge In Restklassenringen kann man leichter quadrieren als Quadratwurzel ziehen, deshalb fängt man andersherum an: Berechne r , s ∈ N, so dass n − 1 = 2r s und s ungerade. Nun berechnet man nacheinander die abbrechende Folge x0 := b s mod n, 1s x1 := b 2 2s x2 := b 2 mod n = x02 mod n, mod n = x12 mod n, ... r −1 s xr := b 2 Ist wahrscheinlich mod n, n prim, so besitzt die Folge x := (x0 , . . . , xr ) besondere Form. Alexander von Felbert Probabilistische Primzahltests eine Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Auswertung der charakteristischen Folge Mögliche Formen der charakteristischen Folge: (x0 , x1 , . . . , xr ) = (1, . . . , 1) oder (x0 , x1 , . . . , xr ) = (?, . . . , ?, n − 1, 1, . . . , 1), wobei ? 6= 1 bzw. ? 6= n − 1 = −1 ist. Dann ist n ist n wahrscheinlich prim. (x0 , x1 , . . . , xr ) = (?, . . . , ?, 1, . . . , 1) oder (x0 , x1 , . . . , xr ) = (?, . . . , ?) oder (x0 , x1 , . . . , xr ) = (?, . . . , ?, n − 1), wobei ? 6= 1 bzw. ? 6= n − 1 = −1 ist. Dann zusammengesetzt. Alexander von Felbert Probabilistische Primzahltests Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Beweis Man kann (b t )2 −1 b n−1 2 = bt als Variable interpretieren und damit als Polynom auassen. Beweis: Nach dem kleinen Fermat gilt für Primzahlen n und b ∈ Z∗n stets die Kongruenz b n−1 ≡n 1 ⇔ b n−1 − 1 ≡n 2 ,→ X − 1 ≡n Das Polynom X2 − 1 Finden wir also n ⇔ b 2t − 1 ≡n 0 0 besitzt über endlichen Körpern ausschlieÿlich die beiden Nullstellen −1 ≡n n − 1. 0 ±1, wobei in Fn Fn gilt: nicht triviale Wurzeln von 1 mod n, dann muss sicher zusammengesetzt sein. Alexander von Felbert Probabilistische Primzahltests Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Starke Pseudoprimzahlen Ist das Kriterium X 2 − 1 ≡n 0 besitzt nur triviale Wurzeln auch hinreichend für den Nachweis einer Primzahl? Nein! Beispiel: n = 2047 = 23 · 89 ist eine zusammengesetzte b = 2 mit ggT (2, 2047) = 1. Es gilt dann: x0 := 2 2047−1 2 = 21023 2 2046 x1 := (x0 ) = 2 Alexander von Felbert mod mod Zahl. Wir wählen 2047 2047 =1 =1 Probabilistische Primzahltests Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Starke Pseudoprimzahlen Denition: Eine zusammengesetzte ungerade Zahl n heiÿt Pseudoprimzahl zur Basis b ∈ (Z/nZ)∗ mit starke n − 1 = 2r s und s ungerade, und falls entweder es ein i b s mod n = 1 mit 0 ≤i <r ist mit s ungerade, gibt, so dass b 2i s oder ≡n ±1 gilt. Erfreulich ist aber, dass es zu den starken Pseudoprimzahlen kein Analogon zu den Carmichael-Zahlen gibt, d.h. der Miller-Rabin-Test ist in der Tat eine Weiterentwicklung des Fermat-Tests! Alexander von Felbert Probabilistische Primzahltests Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Beispiel Beispiel: n = 2047 = 23 · 89 ist eine starke Pseudoprimzahl zur 1 Es ist 2047 − 1 = 2 · 1023, d.h. r = 1 und s = 1023. x0 := 2 2047−1 2 = 21023 x1 := (x0 )2 = 22046 Alexander von Felbert mod mod 2047 2047 =1 =1 Probabilistische Primzahltests Basis b = 2. Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Fehlerwahrscheinlichkeit Rabin hat gezeigt, dass eine zusammengesetzte Zahl 1 höchstens 4 aller Elemente Pseudoprimzahl zur Basis b b∈ n für (Z/nZ)∗ eine starke ist. SATZ Sei n eine zusammengesetzte ungerade Zahl. Dann gilt für b ∈ (Z/nZ)∗ , Basis b ist. höchstens die Hälfte aller Pseudoprimzahl zur dass n eine starke Beweis: siehe Ausarbeitung! Alexander von Felbert Probabilistische Primzahltests Herleitung Einführung Berechnung der Folge Der Fermat-Test Auswertung der Folge Miller-Rabin-Test Der Solovay-Strassen-Test Beweis Starke Pseudoprimzahlen Der Algorithmus Der Algorithmus Miller-Rabin-Test: n ∈ N, n ≥ 3, n ungerade. n ist wahrscheinlich prim. oder n ist zusammengesetzt! r Bestimme die Zahlen r , s ∈ N, so dass n − 1 = 2 s und s ungerade; Wähle zufällig b ∈ {2, . . . , n − 2}; x0 := b s mod n; IF (x0 = ±1) THEN n ist wahrscheinlich prim! Input: Output: (xi−1 )2 mod n; IF xi = −1 THEN n ist wahrscheinlich ELSE n ist zusammengesetzt! xi ELSE FOR i := 1 TO r −1; := FI FI Alexander von Felbert Probabilistische Primzahltests prim Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Der Solovay-Strassen-Test Alexander von Felbert Probabilistische Primzahltests Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Quadratische Reste Denition: Sei n ∈ N, n > 1 heiÿt dass vorgegeben. Eine zu n teilerfremd Zahl a ∈ Z∗n quadratischer Rest modulo n, wenn es ein x ∈ Z gibt, so x 2 ≡n a. Zwei modulo wenn gilt a n verschieden, n teilerfremd Zahl a heiÿt quadratischer quadratische Reste 6 n a0 . Eine zu ≡ a, a0 ∈ Z heiÿen Nichtrest modulo n, wenn a kein quadratischer Rest modulo n ist. Alexander von Felbert Probabilistische Primzahltests Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Beispiel Beispiel: Wir bestimmen die quadratischen Reste modulo 1 4 7 2 2 2 ≡9 1, 2 2 2 ≡9 7, 5 ≡9 7, 8 2 ≡9 4 ≡9 7 n := 9: ≡9 1. Wir sehen, dass 1,4 und 7 quadratische Reste, dagegen 2,5 und 8 quadratische Nichtreste sind. Alexander von Felbert Probabilistische Primzahltests Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Problemreduktion Für unsere Bedürfnisse reicht es jedoch sich auf quadratische Reste p , p eine Primzahl, zu beschränken. Für eine Primzahl p a ∈ Z∗p genau dann ein quadratischer Rest mod p , wenn es ein x ∈ Z existiert, so dass die Kongruenz x 2 ≡n a lösbar ist. modulo ist a ∈ Z∗p sind Quadratwurzeln, mod p für ein b ∈ Z∗p ? Wieviele a= b2 Alexander von Felbert also von der Form Probabilistische Primzahltests Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Anzahl der quadratischen Reste? Lemma Sei p>2 eine Primzahl. Dann sind die Hälfte der Elemente in Z∗p quadratische Reste, und die andere Hälfte sind quadratische Nichtreste modulo p. Beweis: Sei g ⇒: Ist nämlich j ∈ a ≡p g j ≡p (g k )2 ≡p ⇐: Ist andererseit dann gilt a=g (Z/pZ)∗ , dann ist a = g j mod p eine j ∈ Z gerade ist: d.h. j = 2k für ein k ∈ Z, dann gilt ein primitives Element von Quadratzahl genau dann, wenn j Z gerade, g 2k , also eine a b = g k mod p mod p für ein Quadratzahl. eine Quadratzahl, also für ein k ∈ Z, und a = b 2 mod p mit a ≡p b 2 ≡p (g k )2 ≡p g 2k , k ∈ Z. Alexander von Felbert b ∈ (Z/pZ)∗ , Probabilistische Primzahltests also ist Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Legendre-Symbol Denition: Sei a∈Z und p>2 eine Primzahl. Das Legendre-Symbol a p ist deniert als 0 a := 1 p −1 , falls , falls , falls p|a a mod p a mod p Alexander von Felbert quadratischer Rest modulo p quadratischer Nichtrest modulo Probabilistische Primzahltests p Quadratische Reste Einführung Legendre-Symbol Der Fermat-Test Kriterium von Euler Miller-Rabin-Test Jacobi-Symbol Der Solovay-Strassen-Test Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Beispiel Beispiel: p = 7, also prim. Dann besteht die Einheiten-Gruppe (Z/7Z)∗ aus φ(7) = 6 Elementen, nämlich aus den Restklassen {1, 2, 3, 4, 5, 6}. Es gilt Sei 1 3 2 2 0 7 ≡7 ≡7 2 6 2 4 ≡7 1, ≡7 2, = 0 und 3 5 6 7 = 7 = 7 = −1. Es sind also 2 1 7 0 = Alexander von Felbert 4 7 = 2 2 2 7 ≡7 ≡7 5 7 =1 2 2 ≡7 4 ≡7 0 und Probabilistische Primzahltests Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Kriterium von Euler Das für Primzahlen notwendige Kriterium für den Solovay-Strassen-Test liefert uns folgender SATZ Sei a∈Z und p>2 eine Primzahl. Dann gilt a p−1 2 a ≡p . p Beweis: Falls Zeit ausreichend an Tafel, sonst siehe Skript. Alexander von Felbert Probabilistische Primzahltests (3) Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Jacobi-Symbol Die Denition des Legendre-Symbols erweitern wir nun auf beliebige ungerade Zahlen. Denition: Sei n>2 Primfaktorzerlegung von gilt. Das P a ∈ Z. Sei n = ri=1 piαi die pi 6= pj für j 6= i und 1 ≤ i, j ≤ r eine ungerade Zahl und sei n, wobei Jacobi-Symbol ist deniert als a n := a p1 α1 Alexander von Felbert · ... · a pr αr . Probabilistische Primzahltests Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Legendre-Symbol als Spezialfall des Jacobi-Symbols n prim ⇒ Jacobi- und Legendre-Symbol stimmen überein. n zusammengesetzt ⇒ Jacobi-Symbol macht keine Aussage darüber, ob a mod n ein quadratischer Rest ist! Beispiel: 2 2 15 = 3 Z∗3 und in 2 5 = (−1)(−1) = 1. Es ist 2 ein quadr. Nichtrest in Z∗ . 5 2 ist aber auch ein quadr. Nichtrest in Alexander von Felbert Z∗15 . Probabilistische Primzahltests Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Notwendig aber nicht hinreichend! Sei n>2 eine ungerade zusammengesetzte Zahl und Aufgrund von werden, ob a a n =1 kann keine Aussage darüber getroen ein quadratischer Rest bzw. Nichtrest in Mit anderen Worten: a ∈ Z∗n . a n =1 Z∗n ist. ist nicht hinreichend, wie wir aber noch sehen werden eine notwendige Bedingung dafür, dass quadratischer Rest ist. Alexander von Felbert Probabilistische Primzahltests a ein Quadratische Reste Einführung Legendre-Symbol Der Fermat-Test Kriterium von Euler Miller-Rabin-Test Jacobi-Symbol Der Solovay-Strassen-Test Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Notwendig aber nicht hinreichend! Lemma Sei n>2 a ∈ Z∗n . b ∈ Z∗n mit b 2 eine ungerade und zusammengesetzt, und sei a ein quadratischer Rest inZ∗n , d.h., es gibt ein mod n = a, dann muss na = 1 gelten. Beweis:P n= b ≡pi a, Sei 2 αi r die Primfaktorzerlegung von n. Für 1 ≤ i ≤ r gilt dann i=1 pi also ist a ein quadratischer Rest modulo pi . Es folgt damit a n = a p1 α1 ... a pr αr = 1α1 . . . 1αr = 1 Alexander von Felbert Probabilistische Primzahltests Ist Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Idee des Solovay-Strassen-Tests Für eine ungerade Zahl ggT (b, n) = 1 b gilt. Ist n n>2 wird ein 2 ≤b ≤n−2 und gewählt und getestet, ob n−1 2 b ≡ n mod n (4) prim dann gilt die Bedingung (4) nach dem Kriterium von Euler stets. Allerdings existieren zusammengesetzte Zahlen mit 0 <b<n und ggT (b, n) = 1, Alexander von Felbert n und Zahlen b∈N so dass Bedingung (4) gilt. Probabilistische Primzahltests Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Eulerschen Pseudoprimzahlen Beispiel: Die Zahl doch für n := 2047 = 23 · 89 ist oensichtlich 2 b := 2 gilt 21023 ≡ 1 = 2047 mod zusammengesetzt, 2047. Denition: n > 2 ungerade und zusammengesetzt. Sei b ∈ (Z/nZ)∗ . Die Zahl n heiÿt Eulersche Pseudoprimzahl zur Basis b , wenn n−1 b 2 ≡n bn gilt. Sei Alexander von Felbert Probabilistische Primzahltests Quadratische Reste Einführung Der Fermat-Test Miller-Rabin-Test Der Solovay-Strassen-Test Legendre-Symbol Kriterium von Euler Jacobi-Symbol Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Eulerschen Pseudoprimzahlen Lemma Sei n>2 eine ungerade, zusammenngesetzte Zahl. Dann gilt für b ∈ (Z/nZ)∗ , b ist. mindestens die Hälfte aller Pseudoprimzahl zur Basis dass n keine Eulersche Das Lemma zeigt, dass es kein Analogon zu den Carmichael-Zahlen gibt! Ein Beweis wird nicht geführt. Alexander von Felbert Probabilistische Primzahltests Quadratische Reste Einführung Legendre-Symbol Der Fermat-Test Kriterium von Euler Miller-Rabin-Test Jacobi-Symbol Der Solovay-Strassen-Test Idee des Tests und die Eulerschen Pseudoprimzahlen Der Algorithmus Der Algorithmus Solovay-Strassen-Test: n ∈ N, n ≥ 3, n ungerade. n ist wahrscheinlich prim. Wähle zufällig b ∈ {2, . . . , n − 2}; Input: Output: oder n ist zusammengesetzt! Berechne b n−1 2 n−1 (b 2 IF mod n und b ; n mod n n ist wahrscheinlich prim. ggT (b, n) = 1) THEN ELSE n ist zusammengesetzt! IF ( Else n ist zusammengesetzt! FI Alexander von Felbert Probabilistische Primzahltests ≡n