Kleiner fermatscher Satz

mathematischer Satz
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 29. März 2006 um 16:37 Uhr durch Fsswsb (Diskussion | Beiträge) (Beweis). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Der kleine fermatsche Satz, kurz „der kleine Fermat“, ist ein Lehrsatz der Zahlentheorie. Er macht eine Aussage über die Eigenschaften von Primzahlen und wurde im 17. Jahrhundert von Pierre de Fermat aufgestellt. Der Satz beschreibt die allgemein gültige Kongruenz:

wobei a eine ganze Zahl und p eine Primzahl ist (die weitere Symbolik wird im Artikel Kongruenz beschrieben).

Falls a kein Vielfaches von p ist, kann man das Resultat in die häufig benutzte Form

bringen.

Beweis

Für den Beweis ist es wesentlich, dass es zu jeder Zahl 1<a<p ein eindeutig bestimmtes multiplikatives Inverses b gibt, so dass

 

Wir berechnen für die Zahlen 1<a<p jeweils ihr Inverses. Da jede Inverse eindeutig ist, treten alle möglichen Werte 1<b<p je einmal auf. Die Werte der Inversen bilden folglich eine Permutation der Zahlen von 1 bis p-1. Das Produkt aller Zahlen 1,2, ..., p-1 bezeichnen wir mit P. Für P gilt  

Denn durch Vertauschen können je zwei Faktoren, eine Zahl und ihr Inverses, zusammengefasst werden die 1 modulo p ergeben.

Das Produkt der Zahlen 1*a, 2*a, ..., (p-1)*a modulo p ergibt durch vertauchen Vertauschen

 

Die Differenz zwei verschiedener Zahlen des Produkts   ist kein Vielfaches von p, da ggT(r-s, p) = ggT(a,p) = 1. Bilden wir jeweils den Rest der Division durch p erhalten wir daher erneut eine Permutation der Zahlen 1, 2, ..., (p-1). Daher können wir folgern

 

Durch Multiplikation mit P folgt

 

und schließlich wegen   der kleinen Fermatschen Satz

 

Es gilt auch die Verallgemeinerung, falls man zu einer zusammengesetzen Zahl nur die zu ihr teilerfremden Zahlen betrachtet.

Siehe: Beweise des kleinen fermatschen Satzes im Beweisarchiv

Folgerung durch Euler

Ist   eine ungerade Primzahl, so gilt für eine beliebige ganze Zahl a.

 

Falls p kein Teiler von a ist, folgt aus dem kleinen Fermatschen Satz, dass die rechte Seite der Gleichung ein Vielfaches der Primzahl p ist. Damit ist einer der Faktoren ein Teiler von p.

Es gilt folglich

 

Diese Folgerung wird Leonhard Euler zugeschrieben.

Verallgemeinerung

Man kann den kleinen fermatschen Satz zum Satz von Euler verallgemeinern.

Für zwei teilerfremde Zahlen n und a gilt

 

wobei   die Eulersche φ-Funktion bezeichnet. Diese liefert die Anzahl der Zahlen zwischen 1 und n-1 welche teilerfremd zu n sind. Ist n eine Primzahl, so ist  , so dass man Fermats kleinen Satz als Spezialfall erhält.

Anwendung als Primzahlentest

Nach dem kleinen Fermatschen Satz gilt für eine ungerade Primzahl p und jedes a mit ggT(p,a) = 1

 

mit einer ganzen Zahl k. Diese Beziehung kann auch für eine zusammengesetzte Zahl p und eine Zahl a mit 1<a<p zutreffen. Dies ist jedoch zumindest für große Zahlen p extrem selten. Findet man Zahlen a mit dieser Eigenschaft für eine zusammengesetzte Zahl p, kann dies zur Faktorisierung der Zahl p genutzt werden. Da die Faktoren auf der linken Seite dann mit einer 50 % Chance echte Teiler von p liefern.

Für eine Zahl p mit 100 oder mehr Stellen ist eine Primfaktorzerlegung jedoch nur mit effizienteren Verfahren wie dem Quadratischen Sieb möglich. Der Satz kann daher auch in seiner Umkehrung benutzt werden, um mit hoher Sicherheit zu entscheiden, ob eine Zahl eine Primzahl ist. Bei großen Zahlen mit über 100 Stellen, ist praktisch nicht daran zu zweifeln, dass p eine Primzahl ist, falls die Gleichung für ein a mit 1<a<p gilt.

Für einen exakten Beweis wäre allerdings die Prüfung aller Werte 1<a<p-1 notwendig, so dass die Probedivision in diesem Fall effizienter ist. Es ist nicht bekannt, dass eine 100-stellige oder größere Zahl auf diese Weise faktorisiert werden konnte.

Für einige spezielle Zahlen können solche Ausnahmen allerdings häufiger gefunden werden.

Shor Algorithmus

Es sei n das Produkt zwei großer Primzahlen p und q. Wir betrachten eine Zahl x mit 1<x<n. Wir wissen, dass für den Exponenten  

 

gilt.

Es stellt sich die Frage, ob diese Gleichung bereits für kleinere Exponenten erfüllt ist. Der Quantenteil des Shor Algorithmus zur Faktorisierung großer Zahlen dient der Berechnung der kleinsten Zahl r für die diese Gleichung gilt. Der klassische Teil dieses Algorithmus kann leicht auf nahezu jedem Computer ausgeführt werden.

Wenn man die Potenzen einer Zahl bezüglich der Modulo-Operation betrachtet, wiederholen diese sich in Zyklen. Dies ist unvermeidlich, da nur die Werte 1, 2, 3, ..., n-1 angenommen werden können. Wir betrachten dies am Beispiel kleinerer Zahlen.

Wir können uns auf die Betrachtung von Primzahlen beschränken, da sich die minimale Zyklenlänge für das Produkt aus dem kleinsten gemeinsamen Vielfachen der Zyklenlängen für die Faktoren ergibt.

Vorlage:Highlight1 colspan="7" | Beispiel:  
n            
0 1 1 1 1 1 1
1 2 2 3 3 5 5
2 4 4 9 2 25 4
3 8 1 27 6 125 6
4 16 2 81 4 625 2
5 32 4 243 5 3125 3
6 64 1 729 1 15625 1
7 128 2 2187 3 78125 5

und so weiter. In der Tabelle wurde   aus   berechnet. Um größere Zahlen zu vermeiden, kann man das Ergebnis einfacher aus   berechnen.

In diesem Beispiel mit   ergibt sich für   folgender Zyklus der Werte  

  • 1, 2, 4, 1, 2, 4, 1, 2, ...

Für   ergibt sich

  • 1, 3, 2, 6, 4, 5, 1, 3, ...

Für alle drei Basen 2, 3 und 5 gilt zur Zahl 7

  für alle  

oder allgemein

 

für alle   und alle natürlichen a, für die gilt  . Dies ist eine unmittelbare Folge des kleinen Satzes von Fermat.

Am Beispiel der Modulo-Werte für   sieht man, dass sich der Algorithmus verkürzen lässt, wenn der Zyklus kürzer ist. Da   ist auch  , d. h.  . Für größere Zahlen lässt sich so Arbeit einsparen.

Weitere Vereinfachung

Hat p die Form   ergeben sich weitere Vereinfachungen der Berechnung. Dies wird hier am Beispiel p=17 verdeutlicht.

Vorlage:Highlight1 colspan="7" | Beispiel:  
n 1 2 4 8 16 32
  2 4 16 1 1 1
  3 9 13 16 1 1
  5 8 13 16 1 1
  7 15 4 16 1 1
  11 2 4 16 1 1
  13 16 1 1 1 1

Da p-1 =   ein Vielfaches der Zyklenlänge ist kommen für r nur die Zahlen 2, 4, 8 und 16 in Betracht, was den Rechenaufwand vor allem für sehr große p deutlich reduzieren kann. Noch weniger Arbeit macht der Fall

 ,

da das Ergebnis dann für die nächste Potzenz von 2 schon als 1 feststeht.