Miller-Rabin-Primzahltest

Eine Verfeinerung des Fermat-Test.

Im Fermat-Test haben wir die Eigenschaften einer Primzahl bzgl des Kleinen Satz von Fermat verwendet um Primzahlen und Pseudoprimzahlen zu bestimmen. Leider gibt es Carmichael-Zahlen, die den Test immer bestehen, man kann diese also nie als zusemmengesetzte Zahlen ausschließen.

Der Miller-Rabin Test verwendet eine weitere Eigenschaft von Primzahlen. Für eine Primzahl pp und eine Zahl aa mit

a21modpa^2\equiv 1\bmod p

und

a≢1modpa\not\equiv 1\bmod p

gilt

a1modp.a\equiv-1\bmod p.

Wir verwenden diese Eigenschaft um folgendes Lemma zu zeigen.

Sei pp eine ungerade Primzahl. Wir zerlegen p1p-1 in p1=2lqp-1=2^lq, wobei qq ungerade ist,

ggT(a,p)=1ggT(a,p)=1

und

b=aqmodp.b=a^q\bmod p.

Dann gilt für bb, entweder

b1modpb\equiv 1\bmod p

oder es gibt ein il1i\leq l-1 mit

b2i1modp.b^{2^i}\equiv -1\bmod p.

Wir sehen, dass zusammengesetzte Zahlen, Pseudoprimzahlen und sogar Carmichael-Zahlen dieses Lemma nicht erfüllen.

Wir verwenden diese Überlegung als Miller-Rabin Test zur Basis aa.

code ...

Leider gibt es auch hier analog zu den Fermat-Pseudoprimzahlen sogenannte Miller-Rabin-Pseudoprimzahlen, die den Test bestehen, obwohl sie keine Primzahlen sind.

Der Miller-Rabin Test wird immer zur Basis a=n1a=n-1 bestanden. Es macht also Sinn nur für a{2,,n2}a\in\{2,\dots,n-2\} zu testen.

Außerdem gilt

#E(n)=#{a{2,3,,n1}:n besteht zur Basis a}<14φ(n)<14n\#E(n)=\#\{a \in\{2,3, \ldots, n-1\}: n \text { besteht zur Basis } a\}<\frac{1}{4} \varphi(n)<\frac{1}{4} n

Die Wahrscheinlichkeit, dass eine ungerade natrüliche Zahl eine Primzahl ist, nach rr bestandenen Miller-Rabin-Tests ist

1(14)r.\geq1-\left(\frac{1}{4}\right)^r.

Wir sprechen auch hier immer noch nur von wahrscheinlichen Primzahlen.