- Miller-Rabin-Algorithmus
-
Der Miller-Rabin-Test oder Miller-Selfridge-Rabin-Test ist ein Algorithmus aus dem mathematischen Teilgebiet Zahlentheorie, insbesondere der algorithmischen Zahlentheorie. Er ist ein probabilistischer Primzahltest. Erhält er eine natürliche Zahl n als Eingabe, so gibt er entweder „n ist keine Primzahl“ oder „n ist wahrscheinlich eine Primzahl“ aus. Da der Miller-Rabin-Test nicht sicher feststellt, ob eine Zahl eine Primzahl ist, zählt er zur Klasse der Monte-Carlo-Algorithmen. Zahlen, bei denen der Miller-Rabin-Test immer „n ist wahrscheinlich eine Primzahl“ ausgibt, obwohl sie keine Primzahlen sind, nennt man starke Pseudoprimzahlen.
Der Miller-Rabin-Test ist nach Gary Miller und Michael O. Rabin benannt. John L. Selfridge hat diesen Test schon 1974 verwendet, bevor Miller ihn veröffentlicht hatte. Daher rührt der alternative Name Miller-Selfridge-Rabin-Test. [1]
Der Miller-Rabin-Test funktioniert ähnlich wie der Solovay-Strassen-Test, ist diesem allerdings in allen Aspekten überlegen. Er ist schneller, seine Irrtumswahrscheinlichkeit ist geringer und jede Zahl, die der Solovay-Strassen-Test als zusammengesetzt erkennt, weist auch der Miller-Rabin-Test als nicht-prim aus.
Inhaltsverzeichnis
Algorithmus
Es sei n eine ungerade Zahl, von der festgestellt werden soll, ob sie eine Primzahl ist oder nicht. Zuerst wählt man eine Basis a zufällig aus den Zahlen 2, 3, …, n − 1.
Der nächste Schritt benutzt einen Test, den nur Primzahlen und starke Pseudoprimzahlen bestehen können. Hierzu wird n − 1 eindeutig in seinen ungeraden und geraden Anteil faktorisiert: .
- Wenn ist oder für ein r mit gilt, dann ist n entweder eine Primzahl oder eine starke Pseudoprimzahl.
Funktionsweise
Der Miller-Rabin-Test berechnet modulo n die Folge
mit 2jd = n − 1. Jedes Element der Folge ist hierbei das Quadrat seines Vorgängers.
Ist n eine Primzahl, dann gilt nach dem kleinen fermatscher Satz
und die vom Miller-Rabin-Test berechnete Folge hat deshalb die Form
Die einzigen Zahlen x mit
sind für eine Primzahl n die Zahlen 1 und -1, wie der folgenden Beweis zeigt.
Aus diesem Grund ist der Vorgänger einer 1 in der Folge immer eine 1 oder eine -1. Dies führt dazu, dass für eine Primzahl n die Folge des Miller-Rabin-Tests entweder oder ist, wobei die Fragezeichen für beliebige Zahlen stehen.
Ist n eine beliebige Zahl und beginnt die vom Miller-Rabin-Test berechnete Folge nicht mit 1 und enthält auch keine -1, dann kann n keine Primzahl sein. Es gibt allerdings zusammengesetzte Zahlen, bei denen die Folge bei bestimmten Basen mit 1 beginnt oder eine -1 enthält. Das sind die starken Pseudoprimzahlen.
Zuverlässigkeit
Ist ungerade und nicht prim, so enthält die Menge höchstens Elemente a mit ggT(a,n) = 1, die keine Zeugen für die Zusammengesetztheit von n sind. (Ist ggT(a,n) > 1, oder für irgendein r < s, dann wird n natürlich sofort als nicht-prim erkannt). Damit ist die Wahrscheinlichkeit, dass n zusammengesetzt ist und ein zufälliges a dafür kein Zeuge ist, kleiner als .
Wiederholt man den Test mehrfach für verschiedene a aus [2,n-2] sinkt die Wahrscheinlichkeit weiter ab. So erreicht man beispielsweise schon nach vier Schritten, dass die Fehlklassierung einer zusammengesetzten Zahl (also die Ausgabe, dass a wahrscheinlich prim sei, obwohl es zusammengesetzt ist) nur noch mit einer Wahrscheinlichkeit von weniger als 0,4% geschieht.
Einzelnachweise
- ↑ Song Y. Yan: Number theory for computing. 2. Auflage. Springer, 2002, ISBN 3-540-43072-5, S. 208-214
Literatur
- Johannes Buchmann: Einführung in die Kryptographie. 2. Auflage. Springer, 2001, ISBN 3-540-41283-2, S. 108–111
Weblinks
Wikimedia Foundation.