Probabilistische Primzahltests

Werbung
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
Herunterladen