Westfälische Wilhelms-Universität Münster Mathematik Sommersemester 2017 Seminar: Verschlüsselungs- und Codierungstheorie Leitung: Thomas Timmermann 1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl Dennis Niermeyer Matrikelnummer: 418 961 2-Fach-Bachelor Philosophie und Mathematik 6. Fachsemester E-Mail-Adresse: [email protected] 1 Inhalt: Zielformulierung 3 §1 Der euklidische Algorithmus 3 1.1. Lemma 3 1.2. Vorgehensweise des euklidischen Algorithmus 3 1.3. Beispiel 3 1.4. Der erweiterte euklidische Algorithmus 4 1.5. Beispiel 4 1.6. Satz 5 1.7. Korollar 5 §2 Kongruenzen und Restklassenringe 5 2.1. Kongruenzen 6 2.1.1. Definition: Kongruent 6 2.1.2. Definition: Restklassen 6 2.1.3. Beispiel 6 2.1.4. Korollar 6 2.2. Restklassenringe 7 2.2.1. Definition: Ring 7 2.2.2. Definition: Addition und Multiplikation von Restklassen 7 2.2.3. Frage: Wann ist der Restklassenring ein Körper? 7 2.2.4. Satz: Inverse Elemente in ℤ/ mℤ 7 2.2.5. Antwort zur Frage 8 2 Ziel des Vortrags Der vorliegende Vortrag verfolgt das Ziel, den Zuhörern den euklidischen Algorithmus sowie das Rechnen mit Restklassen und wichtige Folgerungen über Restklassenringe nahezubringen und das dafür erforderliche Grundwissen wenn nötig zu vervollständigen. Diese Themen sind Grundlagen für einige Bereiche der Verschlüsselungs- und Codierungstheorie und bilden deshalb ein Fundament für das restliche Seminar. §1 Der euklidische Algorithmus Algorithmen sind formalisierte Beschreibungen von Berechnungsverfahren mit einer Ein- und einer Ausgabe Der euklidische Algorithmus berechnet den größten gemeinsamen Teiler zweier Zahlen, basierend auf folgenden Aussagen: 1.1 Lemma: 1. Wenn b = 0 ist, dann ist ggT(a,b) = |a|. 2. Wenn b ≠ 0 ist, dann ist ggT(a,b) = ggT(|b|, a mod |b|). Beweis 1. Folgt direkt aus der Definition vom ggT. 2. Sei b ≠ 0. Aus der Definition der Division mit Rest folgt, dass es dann ein q∈ℤ gibt mit a = q · |b| + (a mod b). Daher teilt der ggT von a und b auch den ggT von |b| und a mod |b| und umgekehrt. Da beide ggT nicht negativ sind, folgt die Behauptung. q.e.d. 1.2 Vorgehensweise des euklidischen Algorithmus: Um den größten gemeinsamen Teiler zu bestimmen, wendet der Algorithmus so lange 2. an, bis b = 0 gilt (while-Schleife) und wendet dann ein mal 1. an. 1.3 Beispiel: Es soll ggT(100, 35) berechnet werden. Da 100 und 35 beide nicht negativ sind, hat das Ersetzen von a und b durch |a| und |b| keinen Effekt. Da 35 ≠ 0 gilt, ersetzt der Algorithmus zunächst 100 durch 35 und 35 durch 100 mod 35. 3 Wir erhalten also ggT(35, 100 mod 35) = ggT(35, 30). Da 30 ≠ 0 wird der Vorgang mit den neuen Werten wiederholt. Also ggT(30, 35 mod 30) = ggT(30, 5). Bei erneutem wiederholen des Vorgangs erhält man ggT(5, 30 mod 5) = ggT(5, 0). Nun ist b = 0 und somit tritt 1. in Kraft: ggT(5, 0) = 5 = ggT(100, 35). Beweis Es soll jetzt bewiesen werden, dass durch diesen Algorithmus tatsächlich der größte gemeinsame Teiler ermittelt wird. Hierfür setzt man r 0=∣a∣ , r 1=∣b∣ und für k ≥1 und r 1≠0 r k+1=r k−1 mod r k . Dann ist r 2 , r 3 , ... die Folge der Reste, die in der while-Schleife des euklidischen Algorithmus ausgerechnet wird. Außerdem gilt nach dem k-ten Durchlauf der while-Schleife a=r k , b=r k+1 . Aus 1. und 2. folgt, dass sich der ggT von a und b nicht ändert. Es bleibt also zu zeigen, dass r k Null wird. Das folgt aber bereits daraus, dass die oben beschriebene Folge (r k )k≥1 streng monoton fallend ist. q.e.d. 1.4 Satz: Der erweiterte euklidische Algorithmus: Der euklidische Algorithmus soll nun so erweitert werden, dass er neben dem ggT auch die passenden x , y ∈ℤ ausgibt, um die Gleichung ax + by = ggT(a,b) zu lösen. Hierzu ist wieder r 0 , ... , r n+1 die Restefolge und q 0 , ... , q n die Folge der Quotienten, die bei der Anwendung des euklidischen Algorithmus auf a,b entstehen. Für den neuen Algorithmus konstruiert man nun die Folgen ( x k ) und ( y k ) . Man setzt x 0=1, x 1=0, y 0=0, y 1=1 und definiert dann rekursiv x k +1 =q k x k + x k−1 , y k+1=q k y k + y k−1 , 1≤k≤n . Hierbei wird angenommen, dass a und b nicht negativ sind. 1.5 Beispiel: Der erweiterte euklidische Algorithmus soll nun auf die Werte a = 100 und b = 35 angewandt werden. Es entsteht die folgende Tabelle: 4 k rk 0 1 2 3 4 100 35 30 5 0 2 1 6 qk xk 1 0 1 1 7 yk 0 1 2 3 20 Der vorletzten Spalte können nun die relevanten Informationen entnommen werden: ggT(100, 35) = (-1) · 100 + 3 · 35 = 5. 1.6 Satz: Es gilt r k =(−1)k x k a+(−1)k+1 y k b für 0 ≤ k ≤ n+1. Insbesondere gilt für x=(−1)n x n und y=(−1)n+1 y n die Gleichung ax + by = ggT(a,b). Beweis Zunächst gilt durch die Definition der Folgen: r 0=x 0 a−y 0 b=1 ⋅a−0 ⋅b=a und r 1=−x1 a− y1 b=−0 ⋅a+1 ⋅b=b . Da laut der Division mit Rest in ℤ allgemein gilt r = a – bq, ist für k ≥ 2 und k' < k : r k =r k−2−q k−1 r k−1 =(−1)k−2 x k−2 a+(−1)k−1 y k−2 b−q k−1 ((−1)k−1 x k−1 a+(−1)k y k−1 b) =(−1)k a ( x k−2+q k−1 x k −1)+(−1)k+1 b( y k−2+qk −1 y k−1 ) =(−1)k x k a+(−1) k+1 y k b 1.7 q.e.d. Korollar: (folgt aus 1.2.5.) Für alle a , b∈ℤ gibt es x , y ∈ℤ mit ax + by = ggT(a,b). §2 Kongruenzen und Restklassenringe Im nächsten Abschnitt sollen Restklassenringe thematisiert werden. Um diese zu verstehen, bietet es sich an, zunächst die Äquivalenzrelation der Kongruenz einzuführen. 5 2.1 Kongruenzen 2.1.1. Definition: Kongruent: Seien a , b∈ℤ und m∈ℕ . Man sagt a ist kongruent zu b modulo m und schreibt a ≡ b mod m, wenn m die Differenz b – a teilt. Einfacher ausgedrückt bedeutet das, dass a und b bei Division durch m den selben Rest lassen. Die Kongruenz modulo m ist eine Äquivalenzrelation auf ℤ. Das bedeutet, dass gilt: i) Jede ganze Zahl ist zu sich selbst kongruent modulo m (reflexiv). ii) Aus a ≡ b mod m folgt b ≡ a mod m (symmetrisch). iii) Aus a ≡ b mod m und b ≡ c mod m folgt a ≡ c mod m (transitiv). 2.1.2. Definition: Restklassen: Die Äquivalenzklasse von a, die man auch Restklasse von a mod m nennt, besteht aus allen Zahlen, die sich aus der Summe von a und ganzzahligen Vielfachen von m ergeben, also aus allen Zahlen, die kongruent zu a modulo m sind. Man schreibt {b : b ≡ a mod m} = a + mℤ. 2.1.3. Beispiel: Die Restklasse von 0 mod 2 zum Beispiel sind alle ganzen Zahlen mit zwei multipliziert, also alle geraden Zahlen. Die Restklasse von 1 mod 2 sind dem entsprechend alle ganzen Zahlen mit zwei multipliziert und dann mit eins addiert, also alle ungeraden Zahlen. 2.1.4. Korollar: Die Menge aller Restklassen modulo m wird mit ℤ / mℤ bezeichnet und enthält immer m Elemente, weil die Reste, die bei Division durch m auftreten können genau 0,1,...,m-1 sind. 6 2.2Restklassenringe Im Folgenden soll gezeigt werden, dass die Restklassen einen Ring bilden. Dafür wird zunächst der Begriff des Ringes wiederholt. 2.2.1. Definition: Ring: Ein Ring ist ein Tripel aus einer Menge und zwei Verknüpfungen (R, +, ·), auf dem folgendes gilt: a , b , c∈R i) Es ist assoziativ : a + (b + c) = (a + b) + c, a · (b · c) = (a · b) · c. ii) Es ist kommutativ bezüglich + : a + b = b + a. iii) Es besitzt ein neutrales Element e bezüglich + : e + a = a + e = a. iv) Jedes Element im Tripel besitzt ein Inverses bezüglich + : −1 −1 a+a =a +a=e. v) Es gilt das Distributivgesetz : a (b + c) = ab + ac. Ein Ring heißt kommutativ, wenn er auch bezüglich · kommutativ ist. 2.2.2. Definition: Addition und Multiplikation von Restklassen: Addition und Multiplikation von Restklassen ist wie folgt definiert: (a + mℤ) + (b + mℤ) = (a + b) + mℤ. (a + mℤ) · (b + mℤ) = (a · b) + mℤ. Da (ℤ , +, ·) ein kommutativer Ring ist, zeigt sich leicht, dass auch (ℤ/ mℤ, +, ·) ein kommutativer Ring ist. 2.2.3. Frage: Wann ist der Restklassenring ein Körper? Es soll untersucht werden, wann ein Restklassenring ein Körper ist. Ein Körper ist ein kommutativer Ring mit Einselement, in dem jedes von Null verschiedene Element invertierbar ist. 2.2.4. Satz: Inverse Elemente in ℤ/ mℤ: Als nächstes sollen die Inversen Elemente (bezüglich Multiplikation) in ℤ/ mℤ untersucht werden. Da dies die teilbaren Elemente betrifft, muss zunächst gesagt werden, dass Teilbarkeit in ℤ/ mℤ genauso definiert ist, wie in ℤ. 7 Ein Element a + mℤ aus ℤ/ mℤ ist invertierbar, das heißt, es darf durch dieses Element geteilt werden, wenn die Kongruenz ax ≡ 1 mod m lösbar ist. Dies gilt genau dann, wenn ggT(a,m) = 1 ist. Dann ist das Inverse von a + mℤ eindeutig bestimmt. Beweis Sei g = ggT(a,m) und x eine Lösung von ax ≡ 1 mod m. Dann ist g ein Teiler von m und damit von ax – 1. Da g auch ein Teiler von a ist, muss g = 1 sein. Sei nun g = 1. Dann gibt es x,y mit ax + my = 1, also ax – 1 = -my. Also ist x eine Lösung von ax ≡ 1 mod m und x + mℤ in ℤ/ mℤ ein Inverses von a + mℤ. Zum Beweis der Eindeutigkeit sei v + mℤ ein weiteres Inverses von a + mℤ. Also ist ax ≡ av mod m, also ist m Teiler von a(x – v). Mit ggT(a,m) = 1 folgt, dass m Teiler von x – v und somit ist x ≡ v mod m. 2.2.5. q.e.d. Antwort zur Frage: Daraus folgt, dass der Restklassenring ℤ/ mℤ genau dann nur aus Invertierbaren Elementen Besteht, wenn für jedes k ∈ℤ/m ℤ gilt, dass ggT(k,m) = 1 ist. Das ist offensichtlich nur der Fall, wenn m eine Primzahl ist. ℤ/ mℤ ist also genau dann ein Körper, wenn m eine Primzahl ist. 8 Quelle: JOHANNES BUCHMANN, Einführung in die Kryptographie, Heidelberg: Springer Spektrum, 6th revised edition, 2016. 9