Zum Inhalt springen

Fermatscher Primzahltest

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 24. September 2003 um 19:37 Uhr durch Tsor (Diskussion | Beiträge) (typo). Sie kann sich erheblich von der aktuellen Version unterscheiden.


Mit dem Fermatschen Primzahltest - entwickelt von dem "Freizeitmathematiker" Pierre de Fermat - kann man aussagen, ob eine Zahl mit hoher Wahrscheinlichkeit eine Primzahl ist.

Anwendung des Kleinen Fermatschen Satzes

Direkt aus dem Kleinen Fermatschen Satz folgt:

Ist p eine Primzahl, dann ist np-1 -1 durch p teilbar für alle natürlichen Zahlen n < p.

Dies kann man mit Hilfe der Modulo-Funktion schreiben als:

Für alle Primzahlen p gilt (np-1 -1)mod p = 0 mit n < p.

oder auch:

Für alle Primzahlen p gilt (np-1)mod p = 1 mit n < p.


Beispiel: p = 5 ist eine Primzahl

         n=1:  15-1 -1 =   0  ist teilbar durch 5
         n=2:  25-1 -1 =  15  ist teilbar durch 5
         n=3:  35-1 -1 =  80  ist teilbar durch 5
         n=4:  45-1 -1 = 255  ist teilbar durch 5


Carmichael-Zahlen

Es gibt allerdings auch Zahlen q, die keine Primzahlen sind und für dennoch gilt:

nq-1 -1 durch q teilbar für alle natürlichen Zahlen n < q.
Solche Zahlen heissen Carmichael-Zahlen.

Dies Zahlen sind benannt nach dem amerikanischen Mathemetiker R.D.Carmichael (1879 - 1967).

Zwar gibt es unendlich viele Carmichael-Zahlen, aber im Vergleich zur Anzahl der Primzahlen sind es sehr wenige. Unter 100.000 gibt es nur die folgenden 16 Carmichael-Zahlen: 561 (=3·11·17), 1105, 1729 (=7·13·19), 2465, 2821, 6601, 8911, 10585, 15841, 29341, 41041, 46657, 52633, 62745, 63973, and 75361. Man kann zeigen: Jede Carmichael-Zahl hat mindestens 3 Primfaktoren.


Aus dem obigen Satz folgt sofort die folgende Aussage:

Findet man eine natürliche Zahl n < p mit der Eigenschaft np-1 -1 ist nicht durch p teilbar, dann ist p keine Primzahl.


Beispiel: p = 21 ist keine Primzahl, denn für n = 2 gilt

221-1mod 21 = 220mod 21 = ((210mod 21)2)mod 21 = 4 ungleich 1, d.h. p = 21 ist keine Primzahl.

Fermatscher Primzahltest

Leider kann man mit den Regeln der Aussagenlogik nicht die Umkehrung herleiten, aber es gilt die folgende Regel, der sogenannte Fermatsche Primzahltest:

Wenn np-1 -1 durch p teilbar für alle natürlichen Zahlen n < p, dann ist p mit hoher Wahrscheinlichkeit eine Primzahl.

Der Test weist nämlich fälschlicherweise auch jede Carmichael-Zahl als Primzahl aus. Da diese jedoch - wie oben beschrieben - sehr selten auftreten, ist die Fehlerwahrscheinlichkeit des Primzahltests gering.
Eine absolute Sicherheit wird allerdings durch die Carmichael-Zahlen verhindert.


Pseudo-Primzahlen

Man kann nun versuchen, diesen Test zu vereinfachen und den Rechenaufwand deutlich zu reduzieren, wenn man eine etwas geringere Wahrscheinlichkeit in der Primzahlaussage in Kauf nimmt.

Dazu folgende Definition:

Eine natürliche Zahl p heisst Pseudo-Primzahl zur Basis a bzw. pseudoprim zur Basis a, wenn ap-1 -1 durch p teilbar und die natürliche Zahl a < p ist.
  • Findet man eine Zahl a < p, zu deren Basis p nicht pseudoprim ist, dann ist p keine Primzahl, was direkt aus dem Kleinen Fermatschen Satz folgt.
  • Ist p zu jeder Basis a < p pseudoprim, dann ist p entweder eine Primzahl oder eine Carmichael-Zahl.
  • Ist p pseudoprim zur Basis a, dann könnte p eine Primzahl sein. Man sagt auch, die Zahl a sei ein Zeuge dafür, dass p eine Primzahl ist. Findet man weitere Zahlen zu deren Basis p pseudoprim ist, dann hat man weitere Zeugen dafür, dass p eine Primzahl ist. D.h. die Wahrscheinlichkeit steigt, dass p eine Primzahl ist.

Es gibt relativ wenig Zahlen p, die nicht prim sind aber dennoch pseudoprim zu einer Basis a.

Beispiel: p = 341 = 31·11 ist pseudoprim zur Basis 2, denn 2341-1 -1 ist teilbar durch 341.

C.Pomerance, J.L.Selfridge und S.S.Wagstaff Jr. zeigten im Jahre 1980, dass es unterhalb von 25.000.000.000 zwar 1.091.987.405 Primzahlen, aber nur 21.853 Pseudo-Primzahlen zur Basis 2 gibt.

Daraus folgt:

Ist p pseudoprim zur Basis 2, dann ist p mit hoher Wahrscheinlichkeit eine Primzahl.

Für die Praxis bedeutet das: Oft reicht der Nachweis aus, dass p pseudoprim ist zur Basis 2. Will man die Sicherheit weiter erhöhen, dann muss man eben weitere Zeugen finden, d.h. weitere Zahlen a, zu deren Basis p pseudoprim ist.
Im Grenzfall testet man alle Zahlen a < p, d.h. man führt den gesamten Fermattest durch.

Verbesserungen des Fermatschen Primzahltests

Gary Miller und Michael O.Rabin verbesserten den Fermattest im sogenannten Rabin-Miller-Test. Nicht-Primzahlen erkennt er mit doppelter Wahrscheinlichkeit.

Im Jahre 1980 stellten die Mathematiker L.M. Adleman, R.S. Rumely, H. Cohen und H.W. Lenstra Jr den nach ihnen benannten ARCL-Test vor. Dieser ist eine Weiterentwicklung des Fermatschen Primzahltests, indem er Carmichael-Zahlen erkennt.


Literatur

  • C.Pomerance,J.L.Selfridge, S.S.Wagstaff Jr., "The pseudoprimes to 25 · 109," Math. Comp., 35:151 (1980) 1003-1026.