Mathematische Grundlagen 3: Unterschied zwischen den Versionen
Zeile 105: | Zeile 105: | ||
<div style = "border: 2px solid red; padding:0.75em;"> | <div style = "border: 2px solid red; padding:0.75em;"> | ||
'''Satz 2.5'''<ref name=S12>Satz 2.5, der zugehörige Beweis und Satz 2.6 wurden [10, S.5] entnommen. Der Beweis zu Satz 2.6 wurde analog zum Beweis zu Satz 2.5 entwickelt.</ref> (Der kleine Satz von Fermat) Es sei p eine Primzahl, so gilt für alle <math>a \in \Z</math> | '''Satz 2.5'''<ref name=S12>Satz 2.5, der zugehörige Beweis und Satz 2.6 wurden [10, S.5] entnommen. Der Beweis zu Satz 2.6 wurde analog zum Beweis zu Satz 2.5 entwickelt.</ref> (Der kleine Satz von Fermat) Es sei p eine Primzahl, so gilt für alle <math>a \in \Z</math> | ||
− | mit ggT(a,p)=1. <br> | + | mit ggT(a,p) = 1. <br> |
<br> | <br> | ||
<math>a^{p-1}\equiv 1\ (mod\ p)</math><br> | <math>a^{p-1}\equiv 1\ (mod\ p)</math><br> | ||
Zeile 129: | Zeile 129: | ||
====Satz von Euler==== | ====Satz von Euler==== | ||
<br> | <br> | ||
− | <div style = "border: 2px solid red; padding:0.75em;">'''Satz 2.6'''<ref name=S12 /> (Satz von Euler) Es sei <math>n \in \N</math>, so gilt für jedes a mit ggT(a,n)=1: | + | <div style = "border: 2px solid red; padding:0.75em;">'''Satz 2.6'''<ref name=S12 /> (Satz von Euler) Es sei <math>n \in \N</math>, so gilt für jedes a mit ggT(a,n) = 1: |
<br> | <br> | ||
<math>a^{\varphi(n)} \equiv 1\ mod\ n</math><br> | <math>a^{\varphi(n)} \equiv 1\ mod\ n</math><br> | ||
Zeile 138: | Zeile 138: | ||
<br> | <br> | ||
Beweis:<br> | Beweis:<br> | ||
− | Es bezeichnet <math>\varphi(n)</math> die | + | Es bezeichnet <math>\varphi(n)</math> die eulersche <math>\varphi-Funktion</math>, die zu einer Zahl <math>n \in \N</math> die entsprechende Anzahl der zu n teilerfremden Zahlen angibt, wobei <math>z_i\ </math> die <math>\varphi(n)</math> verschiedenen Repräsentanten dieser Restklasse bezeichnen.<br> |
<math>\varphi(n)\ =\ \{z_1, z_2, z_3,...,z_{\varphi(n)} \}</math><br> | <math>\varphi(n)\ =\ \{z_1, z_2, z_3,...,z_{\varphi(n)} \}</math><br> | ||
<br> | <br> | ||
− | Da <math>a\cdot z_i\ \not\equiv \ a\cdot z_j\ mod\ n</math> für <math>i \ne j</math>, ist es möglich jeden Repräsentanten von <math>\varphi(n)</math> mit dem konstanten Faktor a zu multiplizieren.<br> | + | Da <math>a\cdot z_i\ \not\equiv \ a\cdot z_j\ mod\ n</math> für <math>i \ne j</math>, ist es möglich jeden Repräsentanten von <math>\varphi(n)</math> mit dem konstanten Faktor a zu multiplizieren und dabei erneut einen Repräsentanten der Restklasse zu erhalten.<br> |
<br> | <br> | ||
Daher kann man <math>\varphi(n)</math> auch wie folgt schreiben: | Daher kann man <math>\varphi(n)</math> auch wie folgt schreiben: |
Version vom 22. Dezember 2010, 19:30 Uhr
Modulare Inverse
In der 6. Klasse hast du dich schon einmal mit Kehrwerten beschäftigt. Bei der Zahl 2 ist der Kehrwert bezüglich der Multiplikation 0,5. , den Kehrwert kann man auch als multiplikative Inverse bezeichnen. Im Folgenden gilt es zu untersuchen, ob auch modulare Inversen existieren und, wenn ja, unter welchen Bedingungen, wenn wir nur ganzzahlige Inverse betrachten möchten.
Aus den Angaben von Alice folgt:
Wie für den Kehrwert, so gilt auch für die modulare Inverse, dass das Resultat 1 ergeben muss.
Allgemein gilt also: | Alternative Schreibweise für die modulare Inverse: |
---|---|
Diese Gleichungen sind äquivalent zu:
diese Schreibweise erinnert an Lemma 1.4, wonach man vermuten kann, dass die Gleichung nur für ggT(a,n)=1 gilt.
Für die Aufgabe von Alice gilt somit:
Falls eine Lösung existiert, soll nun eine ganze Zahl x gefunden werden, so dass die Gleichung erfüllt ist.
Wie du anhand von Alices Beispiel selbst überprüfen kannst, ist dies bereits bei so kleinen Zahlen ziemlich schwierig.
Deshalb betrachten wir nun den Satz von der modularen Inversen und werden darauf einen Algorithmus kennen lernen, mithilfe dessen sich die modulo Inverse, die auch als multiplikative Inverse bezeichnet werden kann, relativ einfach berechnen lässt.
Satz 2.3[1] (Satz von der modularen Inversen) Es sei und mit ggT(a,n) = 1, so ist x die modulare Inverse zu a, wenn gilt:
Wie du bereits aus Abschnitt 1 weißt, lässt sich der ggT zweier Zahlen mithilfe des Euklidischen Algorithmus bestimmen.
Algorithmus 2.4[1] (Berechnung der modularen Inverse)
Es seien mit ggT(a,n) = 1.
Man berechne zunächst die Vielfachsummendarstellung . Dann ist x die modulare Inverse von a modulo n.
Bei den von Alice gewählten Zahlen gilt ggT(13,24) = 1, also existiert eine modulare Inverse, da , lässt sich obiger Algorithmus hier anwenden, um die modulare Inverse zu 13 mod 24 zu bestimmen.
Gesucht sind x und y, für
1 = 13x + 24y
Bestimme mithilfe des Euklidischen Algorithmus die Vielfachsummendarstellung von 13 und 24 und ermittle daraus die modulare Inverse zu 13 mod 24.
Alice beschäftigt sich jetzt mit dem Satz von Fermat, sowie dem Satz von Euler, weil sie gelesen hat, dass diese Sätze elementar für das RSA-Kryptosystem sind. Folglich solltest auch du diese beiden Sätze kennen lernen, bevor du dich dem RSA-Kryptosystem zuwendest.
Kleiner Satz von Fermat
Satz 2.5[2] (Der kleine Satz von Fermat) Es sei p eine Primzahl, so gilt für alle
mit ggT(a,p) = 1.
Alice wählt sich p = 5 und a = 4, um den Satz zu testen.
Somit gilt nach dem kleinen Satz von Fermat:
Beim Satz von Fermat handelt es sich lediglich um einen Sonderfall des Satzes von Euler:
Satz von Euler
Hierbei bezeichnet die Anzahl der zu n teilerfremden Zahlen aus der Menge {1,2,...,n-1}. Wenn p eine Primzahl ist, so gilt: , für zwei voneinander verschiedene Primzahlen p,q gilt folglich:
weiter zum RSA-Algorithmus
zurück zur Übersicht