Zum Inhalt springen

Kryptologie/Miller-Rabin-Test (Primzahltest 3)

Aus Wikiversity


Einleitung

Wie wir in der Lernaufgabe zum Fermat-Test feststellen können, ist die Zahl nach dem Fermat-Test wahrscheinlich nicht zusammengesetzt. Tatsächlich handelt es sich bei um eine Pseudoprimzahl, die mit dem Fermat-Test nicht gefunden werden kann. Wir werden gleich einen Primzahltest kennenlernen, mit dem man selbst solche Zahlen als zusammengesetzt identifizieren kann.

Definition Carmichael-Zahl

Fermat-Test, Primzahl, Teilerfremdheit, Kongruenz,

Primfaktorzerlegung und Fermatsche Pseudoprimzahl

Fermat-Test
Sei ungerade. Ziel ist es zu ermitteln, ob zusammengesetzt ist.
  1. Wähle eine zu teilerfremde Basis
  2. Berechne
    • Gilt , dann ist mit hoher Wahrscheinlichkeit prim oder zusammengesetzt
    • Gilt (Fall 2), dann ist nicht prim, sondern zusammengesetzt[1]
Primzahl
Sei mit , dann heißt Primzahl oder prime Zahl, wenn gilt:

besitzt nur zwei Teiler in , nämlich und .

Andernfalls heißt zusammengesetzte Zahl[2].

Teilerfremdheit
Zwei ganze Zahlen und , wobei mindestens einer der beiden Zahlen ungleich Null ist,

heißen teilerfremd, wenn [3]. Betrachten wir mehr als zwei Zahlen, dann

nennen wir diese paarweise teilerfremd, wenn je zwei beliebige von diesen Zahlen

zueinander teilerfremd sind[4][3].

Kongruenz
Seien und , dann gilt [5].
Primfaktorzerlegung
Sei mit , dann ist als Produkt von Primzahlen darstellbar und wir nennen diese

Primfaktorzerlegung. Es gilt mit .

Die Darstellung ist, abgesehen von der Reihenfolge der Faktoren, eindeutig[6].

Fermatsche Pseudoprimzahl
Eine natürliche Zahl n wird fermatsche Pseudoprimzahl zur Basis genannt, wenn sie eine

zusammengesetzte Zahl ist, die die Kongruenz für eine zu teilerfremde

Basis erfüllt[7][6].

Eine zusammengesetzte natürliche Zahl heißt Carmichael-Zahl, falls für alle zu teilerfremden Zahlen die folgende Kongruenz erfüllt ist:

[8][6].

Beispiel Carmichael-Zahl

Betrachten wir die Zahl .

Es gilt nach der Primfaktorzerlegung

.

, und sind die einzigen zu teilerfremden Basen. Für jede andere ganze Zahl gilt

[9].

Bedeutung von Carmichael-Zahlen für den Fermat-Test

Ebenso wie bei den fermatschen Pseudoprimzahlen, gibt es unendliche viele Carmichael-Zahlen[10]. Die Carmichael-Zahlen verhindern, dass, durch mehrfaches Ausführen des Fermat-Tests mit wechselnden Basen, die Wahrscheinlichkeit, dass man versehentlich eine Pseudoprimzahl als prim bezeichnet, nicht beliebig gesenkt werden kann. Der Fermat-Test kann daher in der Praxis nicht empfohlen werden werden. Es wird stattdessen häufig der Miller-Rabin-Test verwendet[11].

Miller-Rabin-Test

Im Gegensatz zu den zuvor behandelten Primzahltests, ist der Miller-Rabin-Test für die Praxis gut geeignet[12]. Der Miller-Rabin-Test beruht auf einer Verschärfung des kleinen Satzes von Fermat und kann nach hinreichend vielen Versuchen für jede natürliche Zahl herausfinden, ob diese zusammengesetzt ist[12].

Der Test umgeht also das Problem des kleinen Satzes von Fermat, indem eine Eigenschaft von Primzahlen betrachtet wird, die Carmichael-Zahlen und andere Pseudoprimzahlen nicht mit echten Primzahlen gemeinsam haben[13].

Kleiner Satz von Fermat, Primzahl, Teilerfremdheit

und Kongruenz

Kleiner Satz von Fermat
Für jede Primzahl und jede dazu teilerfremde natürliche Zahl ist

folgende Kongruenz erfüllt: [7][14].

Primzahl
Sei mit , dann heißt Primzahl oder prime Zahl, wenn gilt:

besitzt nur zwei Teiler in , nämlich und .

Andernfalls heißt zusammengesetzte Zahl[2].

Teilerfremdheit
Zwei ganze Zahlen und , wobei mindestens einer der beiden Zahlen ungleich Null ist,

heißen teilerfremd, wenn [3]. Betrachten wir mehr als zwei Zahlen, dann

nennen wir diese paarweise teilerfremd, wenn je zwei beliebige von diesen Zahlen

zueinander teilerfremd sind[4][3].

Kongruenz
Seien und , dann gilt [5].

Der Satz liefert uns die Bedingungen, die wir an stellen müssen, wenn prim sein soll. Es genügt, wenn eine der beiden Bedingungen aus dem Satz erfüllt wird. Gilt keine der beiden Bedingungen für eine Zahl bei Wahl einer teilerfremden Zahl , so ist zusammengesetzt[13].

Satz Eigenschaft von Primzahlen

Seien prim und teilerfremd zu , so gilt eine der Kongruenzen

oder es existiert ein mit

, wobei

und [13].

Bemerkung: Der Beweis wird, aufgrund der Komplexität und dem geringen Ertrag für das Thema des Kurses, in diesem Kurs nicht behandelt.

Miller-Rabin-Test

Sei ungerade. Ziel ist es zu ermitteln, ob mit hoher Wahrscheinlichkeit prim oder zusammengesetzt ist.

  1. Wähle zufällig und gleichverteilt ein
  2. Bestimme
    • Ist , dann ist zusammengesetzt und der Miller-Rabin-Test ist fertig
    • Ist , dann mit Schritt 3 fortfahren
  3. Berechne mit , wobei und
    • Ist , dann ist wahrscheinlich prim und der Miller-Rabin-Test fertig
    • Ist , dann mit Schritt 4 fortfahren
  4. Berechne , wobei
    • Ist mindestens für ein , dann ist wahrscheinlich prim und der Miller-Rabin-Test fertig
    • Existiert kein , dann ist zusammengesetzt und der Miller-Rabin-Test abgeschlossen[15][16]

Bemerkung: Die Wahrscheinlichkeit, dass zusammengesetzt ist, obwohl der Miller-Rabin-Test "wahrscheinlich prim" ausgibt ist höchstens . Durch -faches Wiederholen des Miller-Rabin-Tests, lässt sich die Wahrscheinlichkeit, dass irrtümlich als prim bezeichnet wird auf minimieren[17].

Beispiel

Carmichael-Zahl, Satz Eigenschaft von Primzahlen, Primzahl,

Teilerfremdheit und Kongruenz

Carmichael-Zahl
Eine zusammengesetzte natürliche Zahl heißt Carmichael-Zahl, falls für

alle zu teilerfremden Zahlen die folgende Kongruenz erfüllt ist:

[8][18].

Satz Eigenschaft von Primzahlen
Seien prim und teilerfremd zu , so gilt eine der Kongruenzen

oder es existiert ein mit

, wobei

und [13].

Primzahl
Sei mit , dann heißt Primzahl oder prime Zahl, wenn gilt:

besitzt nur zwei Teiler in , nämlich und .

Andernfalls heißt zusammengesetzte Zahl[2].

Teilerfremdheit
Zwei ganze Zahlen und , wobei mindestens einer der beiden Zahlen ungleich Null ist,

heißen teilerfremd, wenn [3]. Betrachten wir mehr als zwei Zahlen, dann

nennen wir diese paarweise teilerfremd, wenn je zwei beliebige von diesen Zahlen

zueinander teilerfremd sind[4][3].

Kongruenz
Seien und , dann gilt [5].

Betrachten wir das Beispiel zu den Carmichael-Zahlen. Mit Hilfe des Satzes Eigenschaft von Primzahlen können wir die Carmichael-Zahl nun erneut darauf prüfen, ob sie zusammengesetzt oder prim ist.

Wir wählen und .

Nun muss bestimmt werden.

Es gilt für :

,

,

,

,

mit und .

Somit ist und .

Nun testen wir den ersten Fall: :

, da .

Die erste Bedingung wird also nicht erfüllt und wir müssen die zweite Bedingung testen, nämlich es existiert ein mit

Wir haben bereits gezeigt, dass und somit . Den Fall haben wir bereits untersucht, da .

Wir müssen also nur noch die drei übrigen Elemente von jeweils in die Bedingung einsetzen:

,

,

.

Auch diese erfüllen die Bedingung von Fall 2 nicht. Die Basis liefert uns also, dass zusammengesetzt ist[16]. Dies konnten wir mit Hilfe des Fermat-Tests in der zugehörigen Lernaufgabe noch nicht zeigen!

Lernaufgabe

Aufgabe

Miller-Rabin-Test
Miller-Rabin-Test
Sei ungerade. Ziel ist es zu ermitteln, ob mit hoher Wahrscheinlichkeit prim oder zusammengesetzt.
  1. Wähle zufällig und gleichverteilt ein .
  2. Bestimmte ,
    • Ist , dann ist zusammengesetzt und der Miller-Rabin-Test ist fertig,
    • Ist , dann mit Schritt 3 fortfahren.
  3. Berechne mit , wobei und ,
    • Ist , dann ist wahrscheinlich prim und der Miller-Rabin-Test fertig,
    • Ist , dann mit Schritt 4 fortfahren.
  4. Berechne , wobei ,
    • Ist mindestens für ein , dann ist wahrscheinlich prim und der Miller-Rabin-Test fertig,
    • Existiert kein , dann ist zusammengesetzt und der Miller-Rabin-Test abgeschlossen[19][20].

Bemerkung: Die Wahrscheinlichkeit, dass zusammengesetzt, obwohl der Miller-Rabin-Test "wahrscheinlich prim" ausgibt ist höchstens . Durch -faches Wiederholen des Miller-Rabin-Tests, lässt sich die Wahrscheinlichkeit, dass irrtümlich als prim bezeichnet wird auf minimieren[17].

Bestimmen Sie mit dem Miller-Rabin-Test und einer Irrtumswahrscheinlichkeit von maximal , ob zusammengesetzt oder prim ist.

Bemerkung: In der Lösung wählen wir und . Sie können jedoch beliebige andere wählen.

Lösung
Um mit einer Irrtumswahrscheinlichkeit von maximal zu bestimmen, ob zusammengesetzt oder prim, muss der Miller-Rabin-Test zweimal durchgeführt werden, da .


Zunächst bestimmen wir mit einer Irrtumswahrscheinlichkeit von maximal .

Schritt 1: Wir wählen .

Schritt 2: , wir müssen also mit Schritt 3 fortfahren.

Schritt 3: Für gilt:

,

,

und .

Somit ist und .

Nun testen wir den Fall: :

Da , müssen wir mit Schritt 4 fortfahren.

Schritt 4: , wobei

Nach dem Miller-Rabin-Test für und ist wahrscheinlich prim.


Nun wählen wir ein weiteres zufälliges , um den Irrtumswahrscheinlichkeit auf maximal zu verringern.

Schritt 1: Wir wählen .

Schritt 2: , wir müssen also mit Schritt 3 fortfahren.

Schritt 3: Wie bereits bei der ersten Durchführung des Miller-Rabin-Tests für gezeigt, ist und .

Wir überprüfen :

.

Da , müssen wir mit Schritt 4 fortfahren.

Schritt 4: , wobei

Nach dem Miller-Rabin-Test für und ist wahrscheinlich prim und durch die zweifache Ausführung des Miller-Rabin-Tests können wir die Irrtumswahrscheinlichkeit dieser Annahme auf begrenzen.

Lernempfehlung

Kursübersicht
Übergeordnete Lerneinheit
7.1: Schlüsselerzeugung des RSA-Verschlüsselungsverfahrens
Vorherige Lerneinheit Aktuelle Lerneinheit Empfohlene Lerneinheit
7.1.3: Fermat-Test (Primzahltest 2) 7.1.4: Miller-Rabin-Test (Primzahltest 3) 7.1.5: Erweiterter euklidischer Algorithmus

Literatur

  1. Buchmann, J. (2016). Einführung in die Kryptographie (6. Aufl.). Springer. S. 157.
  2. a b c Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Lemgo: Heldermann Verlag. S. 47.
  3. a b c d e f Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Heldermann Verlag. S. 26.
  4. a b c Seite „Teilerfremdheit“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 26. September 2019, 13:33 UTC. URL: https://de.wikipedia.org/w/index.php?title=Teilerfremdheit&oldid=192615323 (Abgerufen: 10. Januar 2020, 13:56 UTC; Formulierung verändert)
  5. a b c Buchmann, J. (2016). Einführung in die Kryptographie (6. Aufl.). Berlin, Heidelberg: Springer. S. 37.
  6. a b c Ziegenbalg, J. (2015). Elementare Zahlentheorie: Beispiele, Geschichte, Algorithmen (2., überarb. Aufl). Springer Spektrum. S. 66.
  7. a b Seite „Fermatsche Pseudoprimzahl“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 6. April 2019, 23:17 UTC. URL: https://de.wikipedia.org/w/index.php?title=Fermatsche_Pseudoprimzahl&oldid=187306711 (Abgerufen: 26. Dezember 2019, 13:45 UTC; Formulierung verändert)
  8. a b Seite „Carmichael-Zahl“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 11. Juli 2019, 07:01 UTC. URL: https://de.wikipedia.org/w/index.php?title=Carmichael-Zahl&oldid=190325777 (Abgerufen: 26. Dezember 2019, 13:55 UTC; Formulierung verändert)
  9. Carmichael, R. D. (1912). On Composite Numbers P Which Satisfy The Fermat Congruence a P -1 ≡1 Mod P. The American Mathematical Monthly, 19(2) (S. 22–27). S. 25.
  10. Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Lemgo: Heldermann Verlag. S. 388.
  11. Buchmann, J. (2016). Einführung in die Kryptographie (6. Aufl.). Berlin, Heidelberg: Springer. S. 158.
  12. a b Rabin, M. O. (1980). Probabilistic algorithm for testing primality. Journal of Number Theory, 12(1) (S. 128–138). S. 128.
  13. a b c d Buchmann, J. (2016). Einführung in die Kryptographie (6. Aufl.). Berlin, Heidelberg: Springer. S. 159.
  14. Oswald, N., & Steuding, J. (2015). Elementare Zahlentheorie: Ein sanfter Einstieg in die höhere Mathematik. Springer Spektrum. S. 129.
  15. Buchmann, J. (2016). Einführung in die Kryptographie (6. Aufl.). Berlin, Heidelberg: Springer. S. 161.
  16. a b Rabin, M. O. (1980). Probabilistic algorithm for testing primality. Journal of Number Theory, 12(1) (S. 128–138). S. 133f.
  17. a b Rabin, M. O. (1980). Probabilistic algorithm for testing primality. Journal of Number Theory, 12(1) (S. 128–138). S. 130.
  18. Ziegenbalg, J. (2015). Elementare Zahlentheorie: Beispiele, Geschichte, Algorithmen (2., überarb. Aufl). Springer Spektrum. S. 66.
  19. Buchmann, J. (2016). Einführung in die Kryptographie (6. Aufl.). Berlin, Heidelberg: Springer. S. 161.
  20. Rabin, M. O. (1980). Probabilistic algorithm for testing primality. Journal of Number Theory, 12(1) (S. 128–138). S. 133f.