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