Probabilistische Primzahltests

Werbung
Probabilistische Primzahltests
Daniel Tanke
11. Dezember 2007
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Inhalt
1
Fermat Test
2
Pseudoprimzahlen und Carmichaelzahlen
3
Miller Rabin Test
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Satz (Kleiner Fermat) Ist p eine Primzahl, so gilt ∀ a ∈ Z,
dass ap−1 ≡ 1 (mod p)
Notwendig aber nicht hinreichend
Sei p = 6 und a = 5.
Aus 55 6≡ 1 (mod 6) folgt, dass p keine Primzahl ist. Wählt
man aber a = 1 folgt, dass 15 ≡ 1 (mod 6).
Bedingte Verwendbarkeit (Pseudoprimzahlen!)
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Satz (Kleiner Fermat) Ist p eine Primzahl, so gilt ∀ a ∈ Z,
dass ap−1 ≡ 1 (mod p)
Notwendig aber nicht hinreichend
Sei p = 6 und a = 5.
Aus 55 6≡ 1 (mod 6) folgt, dass p keine Primzahl ist. Wählt
man aber a = 1 folgt, dass 15 ≡ 1 (mod 6).
Bedingte Verwendbarkeit (Pseudoprimzahlen!)
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Satz (Kleiner Fermat) Ist p eine Primzahl, so gilt ∀ a ∈ Z,
dass ap−1 ≡ 1 (mod p)
Notwendig aber nicht hinreichend
Sei p = 6 und a = 5.
Aus 55 6≡ 1 (mod 6) folgt, dass p keine Primzahl ist. Wählt
man aber a = 1 folgt, dass 15 ≡ 1 (mod 6).
Bedingte Verwendbarkeit (Pseudoprimzahlen!)
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Satz (Kleiner Fermat) Ist p eine Primzahl, so gilt ∀ a ∈ Z,
dass ap−1 ≡ 1 (mod p)
Notwendig aber nicht hinreichend
Sei p = 6 und a = 5.
Aus 55 6≡ 1 (mod 6) folgt, dass p keine Primzahl ist. Wählt
man aber a = 1 folgt, dass 15 ≡ 1 (mod 6).
Bedingte Verwendbarkeit (Pseudoprimzahlen!)
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Inhalt
1
Fermat Test
2
Pseudoprimzahlen und Carmichaelzahlen
3
Miller Rabin Test
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Def. Wenn n eine ungerade, zusammengesetzte, natürliche
Zahl ist und den Fermat Test für ein a aus Z erfüllt, dann
nennen wir n eine Pseudoprimzahl zur Basis a.
Idee: Teste mit Fermat für viele verschiedene Basen
Achtung: Es gibt zusammengesetzte Zahlen, die für alle
Basen den Fermat Test bestehen.
Carmichaelzahlen
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Def. Wenn n eine ungerade, zusammengesetzte, natürliche
Zahl ist und den Fermat Test für ein a aus Z erfüllt, dann
nennen wir n eine Pseudoprimzahl zur Basis a.
Idee: Teste mit Fermat für viele verschiedene Basen
Achtung: Es gibt zusammengesetzte Zahlen, die für alle
Basen den Fermat Test bestehen.
Carmichaelzahlen
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Def. Wenn n eine ungerade, zusammengesetzte, natürliche
Zahl ist und den Fermat Test für ein a aus Z erfüllt, dann
nennen wir n eine Pseudoprimzahl zur Basis a.
Idee: Teste mit Fermat für viele verschiedene Basen
Achtung: Es gibt zusammengesetzte Zahlen, die für alle
Basen den Fermat Test bestehen.
Carmichaelzahlen
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Def. Wenn n eine ungerade, zusammengesetzte, natürliche
Zahl ist und den Fermat Test für ein a aus Z erfüllt, dann
nennen wir n eine Pseudoprimzahl zur Basis a.
Idee: Teste mit Fermat für viele verschiedene Basen
Achtung: Es gibt zusammengesetzte Zahlen, die für alle
Basen den Fermat Test bestehen.
Carmichaelzahlen
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Satz Eine zusammengestzte Zahl n > 3 ist genau dann eine
Carmichaelzahl, wenn
n = p1 · · · pk mit k ≥ 3
n ist bezüglich der Primfaktorzerlegung quadratfrei
pi − 1|n − 1 für 1 ≤ i ≤ k
Die kleinste Carmichaelzahl ist 561 = 3*11*17. Man sieht,
dass sie aus 3 verschiedenen Primteilern besteht und weiters,
dass 2|560, 10|560 und 16|560.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Satz Eine zusammengestzte Zahl n > 3 ist genau dann eine
Carmichaelzahl, wenn
n = p1 · · · pk mit k ≥ 3
n ist bezüglich der Primfaktorzerlegung quadratfrei
pi − 1|n − 1 für 1 ≤ i ≤ k
Die kleinste Carmichaelzahl ist 561 = 3*11*17. Man sieht,
dass sie aus 3 verschiedenen Primteilern besteht und weiters,
dass 2|560, 10|560 und 16|560.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Satz Eine zusammengestzte Zahl n > 3 ist genau dann eine
Carmichaelzahl, wenn
n = p1 · · · pk mit k ≥ 3
n ist bezüglich der Primfaktorzerlegung quadratfrei
pi − 1|n − 1 für 1 ≤ i ≤ k
Die kleinste Carmichaelzahl ist 561 = 3*11*17. Man sieht,
dass sie aus 3 verschiedenen Primteilern besteht und weiters,
dass 2|560, 10|560 und 16|560.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Satz Eine zusammengestzte Zahl n > 3 ist genau dann eine
Carmichaelzahl, wenn
n = p1 · · · pk mit k ≥ 3
n ist bezüglich der Primfaktorzerlegung quadratfrei
pi − 1|n − 1 für 1 ≤ i ≤ k
Die kleinste Carmichaelzahl ist 561 = 3*11*17. Man sieht,
dass sie aus 3 verschiedenen Primteilern besteht und weiters,
dass 2|560, 10|560 und 16|560.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Satz Eine zusammengestzte Zahl n > 3 ist genau dann eine
Carmichaelzahl, wenn
n = p1 · · · pk mit k ≥ 3
n ist bezüglich der Primfaktorzerlegung quadratfrei
pi − 1|n − 1 für 1 ≤ i ≤ k
Die kleinste Carmichaelzahl ist 561 = 3*11*17. Man sieht,
dass sie aus 3 verschiedenen Primteilern besteht und weiters,
dass 2|560, 10|560 und 16|560.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Die weiteren Carmichaelzahlen bis 104 sind:
1105 = 5 ∗ 13 ∗ 17
1729 = 7 ∗ 13 ∗ 19
2465 = 5 ∗ 17 ∗ 29
2821 = 7 ∗ 13 ∗ 31
6601 = 7 ∗ 23 ∗ 41
8911 = 7 ∗ 19 ∗ 67
Konstruktionssatz für Carmichaelzahlen:
Sei u eine natürliche Zahl und die folgenden Zahlen:
p1 = 6 ∗ u + 1
p2 = 12 ∗ u + 1
p3 = 18 ∗ u + 1
seien prim, so ist n = p1 ∗ p2 ∗ p3 eine Carmichaelzahl.
Die kleinste Carmichaelzahl, die man mit dem obigen Satz
konstruieren kann, ist 1729 = 7*13*19 für u = 1.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Die weiteren Carmichaelzahlen bis 104 sind:
1105 = 5 ∗ 13 ∗ 17
1729 = 7 ∗ 13 ∗ 19
2465 = 5 ∗ 17 ∗ 29
2821 = 7 ∗ 13 ∗ 31
6601 = 7 ∗ 23 ∗ 41
8911 = 7 ∗ 19 ∗ 67
Konstruktionssatz für Carmichaelzahlen:
Sei u eine natürliche Zahl und die folgenden Zahlen:
p1 = 6 ∗ u + 1
p2 = 12 ∗ u + 1
p3 = 18 ∗ u + 1
seien prim, so ist n = p1 ∗ p2 ∗ p3 eine Carmichaelzahl.
Die kleinste Carmichaelzahl, die man mit dem obigen Satz
konstruieren kann, ist 1729 = 7*13*19 für u = 1.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Die weiteren Carmichaelzahlen bis 104 sind:
1105 = 5 ∗ 13 ∗ 17
1729 = 7 ∗ 13 ∗ 19
2465 = 5 ∗ 17 ∗ 29
2821 = 7 ∗ 13 ∗ 31
6601 = 7 ∗ 23 ∗ 41
8911 = 7 ∗ 19 ∗ 67
Konstruktionssatz für Carmichaelzahlen:
Sei u eine natürliche Zahl und die folgenden Zahlen:
p1 = 6 ∗ u + 1
p2 = 12 ∗ u + 1
p3 = 18 ∗ u + 1
seien prim, so ist n = p1 ∗ p2 ∗ p3 eine Carmichaelzahl.
Die kleinste Carmichaelzahl, die man mit dem obigen Satz
konstruieren kann, ist 1729 = 7*13*19 für u = 1.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Der Beweis, dass es unendlich viele Carmichaelzahlen gibt,
gelang erst 1994 Carl Pomerance.
Kleine Zahlen sind für den Fermat Test durchaus geeignet.
Man muss ausschließen, dass es sich um eine Carmichaelzahl
handelt.
Deshalb gibt es bei großen Zahlen Schwierigkeiten.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Der Beweis, dass es unendlich viele Carmichaelzahlen gibt,
gelang erst 1994 Carl Pomerance.
Kleine Zahlen sind für den Fermat Test durchaus geeignet.
Man muss ausschließen, dass es sich um eine Carmichaelzahl
handelt.
Deshalb gibt es bei großen Zahlen Schwierigkeiten.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Der Beweis, dass es unendlich viele Carmichaelzahlen gibt,
gelang erst 1994 Carl Pomerance.
Kleine Zahlen sind für den Fermat Test durchaus geeignet.
Man muss ausschließen, dass es sich um eine Carmichaelzahl
handelt.
Deshalb gibt es bei großen Zahlen Schwierigkeiten.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Der Beweis, dass es unendlich viele Carmichaelzahlen gibt,
gelang erst 1994 Carl Pomerance.
Kleine Zahlen sind für den Fermat Test durchaus geeignet.
Man muss ausschließen, dass es sich um eine Carmichaelzahl
handelt.
Deshalb gibt es bei großen Zahlen Schwierigkeiten.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Inhalt
1
Fermat Test
2
Pseudoprimzahlen und Carmichaelzahlen
3
Miller Rabin Test
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Monte Carlo Algorithmus
Problemlösung für Carmichaelzahlen
Sei s die max Potenz mit 2s |n − 1, wobei n eine ungerade
Zahl ist, dann setze d = (n − 1)/2s .
Satz Ist p eine Primzahl und a eine zu p relativ prime
natürliche Zahl, so gilt entweder:
ad ≡ 1
(mod p)
(1)
oder es gibt ein Element r aus {0 · · · s − 1} mit:
rd
a2
≡ −1
Daniel Tanke
(mod p)
Probabilistische Primzahltests
(2)
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Monte Carlo Algorithmus
Problemlösung für Carmichaelzahlen
Sei s die max Potenz mit 2s |n − 1, wobei n eine ungerade
Zahl ist, dann setze d = (n − 1)/2s .
Satz Ist p eine Primzahl und a eine zu p relativ prime
natürliche Zahl, so gilt entweder:
ad ≡ 1
(mod p)
(1)
oder es gibt ein Element r aus {0 · · · s − 1} mit:
rd
a2
≡ −1
Daniel Tanke
(mod p)
Probabilistische Primzahltests
(2)
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Monte Carlo Algorithmus
Problemlösung für Carmichaelzahlen
Sei s die max Potenz mit 2s |n − 1, wobei n eine ungerade
Zahl ist, dann setze d = (n − 1)/2s .
Satz Ist p eine Primzahl und a eine zu p relativ prime
natürliche Zahl, so gilt entweder:
ad ≡ 1
(mod p)
(1)
oder es gibt ein Element r aus {0 · · · s − 1} mit:
rd
a2
≡ −1
Daniel Tanke
(mod p)
Probabilistische Primzahltests
(2)
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Monte Carlo Algorithmus
Problemlösung für Carmichaelzahlen
Sei s die max Potenz mit 2s |n − 1, wobei n eine ungerade
Zahl ist, dann setze d = (n − 1)/2s .
Satz Ist p eine Primzahl und a eine zu p relativ prime
natürliche Zahl, so gilt entweder:
ad ≡ 1
(mod p)
(1)
oder es gibt ein Element r aus {0 · · · s − 1} mit:
rd
a2
≡ −1
Daniel Tanke
(mod p)
Probabilistische Primzahltests
(2)
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Wenn p prim ist, ist zumindest eine der Bedingungen erfüllt.
Lässt sich aber ein a finden, für welches beide Bedingungen
nicht gelten folgt, dass es sich um keine Primzahl handelt.
Zeuge gegen die Primalität.
Zeuge = ¬(1) ∧ ¬(2)
¬Zeuge = (1) ∨ (2)
Umgang mit den Carmichaelzahlen, durch eine Verschärfung
des Satzes von Fermat.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Wenn p prim ist, ist zumindest eine der Bedingungen erfüllt.
Lässt sich aber ein a finden, für welches beide Bedingungen
nicht gelten folgt, dass es sich um keine Primzahl handelt.
Zeuge gegen die Primalität.
Zeuge = ¬(1) ∧ ¬(2)
¬Zeuge = (1) ∨ (2)
Umgang mit den Carmichaelzahlen, durch eine Verschärfung
des Satzes von Fermat.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Wenn p prim ist, ist zumindest eine der Bedingungen erfüllt.
Lässt sich aber ein a finden, für welches beide Bedingungen
nicht gelten folgt, dass es sich um keine Primzahl handelt.
Zeuge gegen die Primalität.
Zeuge = ¬(1) ∧ ¬(2)
¬Zeuge = (1) ∨ (2)
Umgang mit den Carmichaelzahlen, durch eine Verschärfung
des Satzes von Fermat.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Wenn p prim ist, ist zumindest eine der Bedingungen erfüllt.
Lässt sich aber ein a finden, für welches beide Bedingungen
nicht gelten folgt, dass es sich um keine Primzahl handelt.
Zeuge gegen die Primalität.
Zeuge = ¬(1) ∧ ¬(2)
¬Zeuge = (1) ∨ (2)
Umgang mit den Carmichaelzahlen, durch eine Verschärfung
des Satzes von Fermat.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Wenn p prim ist, ist zumindest eine der Bedingungen erfüllt.
Lässt sich aber ein a finden, für welches beide Bedingungen
nicht gelten folgt, dass es sich um keine Primzahl handelt.
Zeuge gegen die Primalität.
Zeuge = ¬(1) ∧ ¬(2)
¬Zeuge = (1) ∨ (2)
Umgang mit den Carmichaelzahlen, durch eine Verschärfung
des Satzes von Fermat.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Nehmen wir einmal die erste Carmichaelzahl 561. Es gilt, dass
24 |(561-1). Nun bestimmen wir d = 35 und wir sehen, dass
für eine gewählte Basis a = 2 desweiteren folgt:
235 ≡ 263
22∗35 ≡ 166
(mod 561)
24∗35 ≡ 67
28∗35 ≡ 1
(mod 561)
Somit wurde mit a = 2 ein Zeuge gefunden.
Die Zahl 561 ist somit nicht prim.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Nehmen wir einmal die erste Carmichaelzahl 561. Es gilt, dass
24 |(561-1). Nun bestimmen wir d = 35 und wir sehen, dass
für eine gewählte Basis a = 2 desweiteren folgt:
235 ≡ 263
22∗35 ≡ 166
(mod 561)
24∗35 ≡ 67
28∗35 ≡ 1
(mod 561)
Somit wurde mit a = 2 ein Zeuge gefunden.
Die Zahl 561 ist somit nicht prim.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Nehmen wir einmal die erste Carmichaelzahl 561. Es gilt, dass
24 |(561-1). Nun bestimmen wir d = 35 und wir sehen, dass
für eine gewählte Basis a = 2 desweiteren folgt:
235 ≡ 263
22∗35 ≡ 166
(mod 561)
24∗35 ≡ 67
28∗35 ≡ 1
(mod 561)
Somit wurde mit a = 2 ein Zeuge gefunden.
Die Zahl 561 ist somit nicht prim.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Algorithmus: Man teste eine ungerade Zahl n > 3:
1. wähle a gleichverteilt aus {1 · · · n − 1}
2. überprüfe ggt(a, n) = 1 sonst return zusammengesetzt
s−1 d
3. Überprüfung auf Zeuge mit Berechnung von ad , · · · , a2
4. Falls ein Zeuge gefunden wurde, return zusammengesetzt,
sonst return prim mit Fehlerwahrscheinlichkeit 1/4
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Algorithmus: Man teste eine ungerade Zahl n > 3:
1. wähle a gleichverteilt aus {1 · · · n − 1}
2. überprüfe ggt(a, n) = 1 sonst return zusammengesetzt
s−1 d
3. Überprüfung auf Zeuge mit Berechnung von ad , · · · , a2
4. Falls ein Zeuge gefunden wurde, return zusammengesetzt,
sonst return prim mit Fehlerwahrscheinlichkeit 1/4
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Algorithmus: Man teste eine ungerade Zahl n > 3:
1. wähle a gleichverteilt aus {1 · · · n − 1}
2. überprüfe ggt(a, n) = 1 sonst return zusammengesetzt
s−1 d
3. Überprüfung auf Zeuge mit Berechnung von ad , · · · , a2
4. Falls ein Zeuge gefunden wurde, return zusammengesetzt,
sonst return prim mit Fehlerwahrscheinlichkeit 1/4
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Algorithmus: Man teste eine ungerade Zahl n > 3:
1. wähle a gleichverteilt aus {1 · · · n − 1}
2. überprüfe ggt(a, n) = 1 sonst return zusammengesetzt
s−1 d
3. Überprüfung auf Zeuge mit Berechnung von ad , · · · , a2
4. Falls ein Zeuge gefunden wurde, return zusammengesetzt,
sonst return prim mit Fehlerwahrscheinlichkeit 1/4
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Die Fehlerwahrscheinlichkeit des Algorithmus beruht auf
folgenden Satz:
Satz Sei n > 3 eine zusammengesetzte, ungerade Zahl. So
gibt es zwischen 1 und n − 1 höchstens (n − 1)/4 Zahlen, die
zu n teilerfremd, aber keine Zeugen sind.
Somit beträgt die Wahrscheinlichkeit keinen Zeugen bei
einmaligen Durchlauf zu finden höchstens 1/4.
Für k Durchläufe, gelangt man zu einer Fehlerwahrscheinlichkeit von 1/4k .
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Die Fehlerwahrscheinlichkeit des Algorithmus beruht auf
folgenden Satz:
Satz Sei n > 3 eine zusammengesetzte, ungerade Zahl. So
gibt es zwischen 1 und n − 1 höchstens (n − 1)/4 Zahlen, die
zu n teilerfremd, aber keine Zeugen sind.
Somit beträgt die Wahrscheinlichkeit keinen Zeugen bei
einmaligen Durchlauf zu finden höchstens 1/4.
Für k Durchläufe, gelangt man zu einer Fehlerwahrscheinlichkeit von 1/4k .
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Die Fehlerwahrscheinlichkeit des Algorithmus beruht auf
folgenden Satz:
Satz Sei n > 3 eine zusammengesetzte, ungerade Zahl. So
gibt es zwischen 1 und n − 1 höchstens (n − 1)/4 Zahlen, die
zu n teilerfremd, aber keine Zeugen sind.
Somit beträgt die Wahrscheinlichkeit keinen Zeugen bei
einmaligen Durchlauf zu finden höchstens 1/4.
Für k Durchläufe, gelangt man zu einer Fehlerwahrscheinlichkeit von 1/4k .
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Die Fehlerwahrscheinlichkeit des Algorithmus beruht auf
folgenden Satz:
Satz Sei n > 3 eine zusammengesetzte, ungerade Zahl. So
gibt es zwischen 1 und n − 1 höchstens (n − 1)/4 Zahlen, die
zu n teilerfremd, aber keine Zeugen sind.
Somit beträgt die Wahrscheinlichkeit keinen Zeugen bei
einmaligen Durchlauf zu finden höchstens 1/4.
Für k Durchläufe, gelangt man zu einer Fehlerwahrscheinlichkeit von 1/4k .
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Sei n = 21 und wir testen diese Zahl auf Primalität.
Laut Definition folgt d = (21 − 1)/22 = 5. Man wähle a = 2
mit ggt(a, n) = 1 so gilt:
25 ≡ 2
22∗5 ≡ 16
(mod 21)
Somit haben wir einen Zeugen gefunden, dass 21 keine
Primzahl ist.
Es kann aber max. 5 Nicht-Zeugen geben, aber nur 1 und 20
sind keine Zeugen.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Sei n = 21 und wir testen diese Zahl auf Primalität.
Laut Definition folgt d = (21 − 1)/22 = 5. Man wähle a = 2
mit ggt(a, n) = 1 so gilt:
25 ≡ 2
22∗5 ≡ 16
(mod 21)
Somit haben wir einen Zeugen gefunden, dass 21 keine
Primzahl ist.
Es kann aber max. 5 Nicht-Zeugen geben, aber nur 1 und 20
sind keine Zeugen.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Sei n = 21 und wir testen diese Zahl auf Primalität.
Laut Definition folgt d = (21 − 1)/22 = 5. Man wähle a = 2
mit ggt(a, n) = 1 so gilt:
25 ≡ 2
22∗5 ≡ 16
(mod 21)
Somit haben wir einen Zeugen gefunden, dass 21 keine
Primzahl ist.
Es kann aber max. 5 Nicht-Zeugen geben, aber nur 1 und 20
sind keine Zeugen.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Testen wir die Zahl 53. Es folgt analog zu oben, dass s = 2
und d = 13 ist.
Wähle als Basis 12.
1213 ≡ 30
122∗13 ≡ −1
(mod 53)
So folgt jetzt, dass kein Zeuge gefunden wurde und man nun
mit einer Gewissheit von 3/4 behaupten kann, dass die
getestete Zahl prim ist.
Für 53 gibt es keine Zeugen, da die Zahl prim ist.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Testen wir die Zahl 53. Es folgt analog zu oben, dass s = 2
und d = 13 ist.
Wähle als Basis 12.
1213 ≡ 30
122∗13 ≡ −1
(mod 53)
So folgt jetzt, dass kein Zeuge gefunden wurde und man nun
mit einer Gewissheit von 3/4 behaupten kann, dass die
getestete Zahl prim ist.
Für 53 gibt es keine Zeugen, da die Zahl prim ist.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Testen wir die Zahl 53. Es folgt analog zu oben, dass s = 2
und d = 13 ist.
Wähle als Basis 12.
1213 ≡ 30
122∗13 ≡ −1
(mod 53)
So folgt jetzt, dass kein Zeuge gefunden wurde und man nun
mit einer Gewissheit von 3/4 behaupten kann, dass die
getestete Zahl prim ist.
Für 53 gibt es keine Zeugen, da die Zahl prim ist.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Testen wir die Zahl 53. Es folgt analog zu oben, dass s = 2
und d = 13 ist.
Wähle als Basis 12.
1213 ≡ 30
122∗13 ≡ −1
(mod 53)
So folgt jetzt, dass kein Zeuge gefunden wurde und man nun
mit einer Gewissheit von 3/4 behaupten kann, dass die
getestete Zahl prim ist.
Für 53 gibt es keine Zeugen, da die Zahl prim ist.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Laufzeit: O((ln n)3 ) pro Durchlauf
Gilt die verallgemeinerte Riemannsche Hypothese, so gibt es
für eine zusammengesetzte Zahl n einen Zeugen in der Menge
M = {2, · · · , [2 ∗ (ln n)2 ]}.
Deterministischer Algorithmus mit Laufzeit: O((ln n)5 )
AKS Algorithmus (2002)
Deterministisch und polynomiell, aber nicht so effizient wie
Miller Rabin.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Laufzeit: O((ln n)3 ) pro Durchlauf
Gilt die verallgemeinerte Riemannsche Hypothese, so gibt es
für eine zusammengesetzte Zahl n einen Zeugen in der Menge
M = {2, · · · , [2 ∗ (ln n)2 ]}.
Deterministischer Algorithmus mit Laufzeit: O((ln n)5 )
AKS Algorithmus (2002)
Deterministisch und polynomiell, aber nicht so effizient wie
Miller Rabin.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Laufzeit: O((ln n)3 ) pro Durchlauf
Gilt die verallgemeinerte Riemannsche Hypothese, so gibt es
für eine zusammengesetzte Zahl n einen Zeugen in der Menge
M = {2, · · · , [2 ∗ (ln n)2 ]}.
Deterministischer Algorithmus mit Laufzeit: O((ln n)5 )
AKS Algorithmus (2002)
Deterministisch und polynomiell, aber nicht so effizient wie
Miller Rabin.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Laufzeit: O((ln n)3 ) pro Durchlauf
Gilt die verallgemeinerte Riemannsche Hypothese, so gibt es
für eine zusammengesetzte Zahl n einen Zeugen in der Menge
M = {2, · · · , [2 ∗ (ln n)2 ]}.
Deterministischer Algorithmus mit Laufzeit: O((ln n)5 )
AKS Algorithmus (2002)
Deterministisch und polynomiell, aber nicht so effizient wie
Miller Rabin.
Daniel Tanke
Probabilistische Primzahltests
Fermat Test
Pseudoprimzahlen und Carmichaelzahlen
Miller Rabin Test
Laufzeit: O((ln n)3 ) pro Durchlauf
Gilt die verallgemeinerte Riemannsche Hypothese, so gibt es
für eine zusammengesetzte Zahl n einen Zeugen in der Menge
M = {2, · · · , [2 ∗ (ln n)2 ]}.
Deterministischer Algorithmus mit Laufzeit: O((ln n)5 )
AKS Algorithmus (2002)
Deterministisch und polynomiell, aber nicht so effizient wie
Miller Rabin.
Daniel Tanke
Probabilistische Primzahltests
Herunterladen