Algorithmische Zahlentheorie und Public Key Kryptographie (Forster) Mitgeschrieben von Bernhard Weiß Mitschrift aus dem SoSe 2009 1 INHALTSVERZEICHNIS I Inhaltsverzeichnis 1 Fibonacci-Zahlen 1.1 Schneller Algorithmus zur Berechnung der Fibonacci Zahlen . . . . . 1 1 2 Der Euklidische Algorithmus 2.1 Integritätsbereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Euklidische Ringe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 8 3 Der Restklassenring Z/n 10 4 Die multiplikative Gruppe (Z/m)∗ , Primitivwurzel 13 5 Quatratische Reste. Reziprozitätsgesetzt 19 6 Primzahltest 27 7 Faktorisierungs-Algorithmen 7.1 (p-1)-Faktorisierungs-Verfahren . . . . . . . . . . . . . . . . . . . . . 7.2 Das Fermatsche Faktorisierungs-Verfahren . . . . . . . . . . . . . . . 33 33 34 8 Einführung in die Kryptographie 39 9 Block-Verschlüsselungs-Verfahren 42 Inhaltsverzeichnis 1 1 Fibonacci-Zahlen Definition 1.1 Die Fibonacci-Zahlen werden rekursiv definiert durch: fib(0) := 0 fib(1) := 1 fib(n + 2) := fib(n + 1) + fib(n) fib(n) 0 1 1 2 3 5 8 13 21 34 n 0 1 2 3 4 5 6 7 8 9 Matrix Schreibweise: fib(n + 1) 1 1 fib(n) = fib(n) 1 0 fib(n − 1) 1 1 A := 1 0 fib(n + 1) n fib(1) =A fib(n) fib(0) fib(n) fib(0) = An wobei fib(−1) = 1 fib(n − 1) fib(−1) fib(1) fib(0) =E fib(0) fib(−1) Satz 1.1 Es gilt: n fib(n + 1) fib(n) 1 1 n =A = fib(n) fib(n − 1) 1 0 Korollar 1.2 fn+1 fn−1 − fn2 = (−1)n Insbesondere sind fn+1 , fn teilerfremd. gcd(fn+1 , fn ) = 1 1.1 Schneller Algorithmus zur Berechnung der Fibonacci Zahlen Satz 1.3 Sei G eine Halbgruppe mit Einselement (multiplikativ geschrieben) Sei nPeine natürliche Zahl mit Binär Darstellung n = di=0 bi 2i , bi ∈ {0, 1}, bd = 1 abgekürzt: n = (bd , . . . b0 )2 Für ein Element x ∈ G kann die Potenz xn mit hächstens 2d Multiplikationen in G Bemerkung 1.1 Das Naive Ferfahren zur berechnung von xn benötigt n − 1 Multiplikationen. Exponentielle Komplexität in Anzahl von Stellen von n. Das Schnelle Verfahren hat Lineare Komplexität 2 Beweis nk := (bd , . . . , bd−k )2 n0 = 1; nd = n Wir berechnen der Reihe nach xni ( 2nk falls bd−k−1 = 0 nk+1 = 2nk + 1 falls bd−k−1 = 1 Sei xi := xni Dann ist(x0 = x falls bd−k−1 = 0 x2k xk+1 = 2 xk · x falls bd−k−1 = 1 Daraus folgt Behauptung. 1 FIBONACCI-ZAHLEN Explizite Formel für die Fibonacci Zahlen Ansatz zur Lösung der Rekursionsgleichung: fn+2 = fn+1 + fn Ansatz: fn = λn ( λ geeignet) ⇔λ2 = λ +q 1 ⇔λ2 − λ − 1 = 0 √ 1 2 1 λ1/2 = 21 ± 5) + 1 = (1 ± 2 2 Jede Linearkombination xn = c1 λn1 +c2 λn2 Ergibt eine Lösung der Rekursiongleichung. Wähle c1 und c2 so dass die Anfangsbedinungen x0 = 0, x1 = 1 erfüllt sind. n n Dann gilt fib(n) √ = c1 λ1 + c2 λ2 ∀n ≥ 0 1 λ1 = 2 (1 + 5) =: g Goldener Schnitt λ2 = − g1 = 1 − g Es ergibt sich: n ) fib(n) = √15 (g n − (−1) gn Es folgt: gn ) fib(n) = round( √ 5 Satz 1.4 1. fib(2n − 1) = fib(n)2 + fib(n − 1)2 2. fib(2n) = fib(n)2 + 2 fib(n) fib(n − 1) fn+1 fn 1 1 n Beweis = A ,A = fn fn−1 1 0 2n n n Aus A = A A folg f2n+1 f2n fn+1 fn fn+1 fn = f2n f2n−1 fn fn−1 fn fn−1 ⇒f2n = fn fn+1 + fn−1 fn ⇒ fn f (fn + fn−1 )fn−1 fn 2 f2n−1 = fn2 + fn−1 3 2 Der Euklidische Algorithmus Definition 2.1 Für ganze Zahlen x, y definiert man: x|y∃q ∈ Z : x = qy Bemerkung 2.1 1. y|0∀y ∈ Z 2. 0|x ⇔ x = 0 3. z|y&y|x ⇒ z|x 4. y|x&x|y ⇔ x = ±y In diesem heißen x, y assoziiert Beweis „⇐„: Trivial „⇒„: Falls x = 0 folgt mit 2., dass y = 0 (y = 0 ⇒ x = 0 analog) Sei also nun x 6= 0 6= y y|x ⇒ x = q2 y x|y ⇒ y = q1 x ⇒x = q2 q1 x q1 ,q2 ∈Z Mit Kürzungssatz: 1 = q2 q1 =⇒ q1 = q2 = ±1 5. y|x1 & y|x2 ⇒ y|(λ1 x1 + λ2 x2 ) ∀λ1 , λ2 ∈ Z 6. y|1 ⇔ y = ±1 7. 1|x∀x ∈ Z Definition 2.2 (Größter gemeinsamer Teiler) Eine ganze Zahl d heißt größter gemeinsamer Teiler der ganzen Zahlen x, y ⇔ 1. d|x&d|y (gemeinsamer Teiler) 2. ∀d0 gemeinsamer Teiler von x, y ⇒d0 |d Bezeichnung: gcd(x, y) meistens wird er nichtnegative Repräsentatn gewählt. Satz 2.1 Der größte gemeinsame Teiler zweier ganzer Zahlen ist (im Falle der existenz) bis aufs Vorzeichen Eindeutig bestimmt. Beweis Sind d1 , d2 zwei gcd so folgt aus definition: d1 |d2 &d2 |d1 ⇒d1 = ±d2 4 2 DER EUKLIDISCHE ALGORITHMUS Bemerkung 2.2 gcd(x, y) = gcd(y, x) gcd(x, 0) = |x| gcd(x, 1) = 1 gcd(x, x) = |x| Definition 2.3 Für ganze Zahlen x, y bezeichne: T (x, y) die Menge aller gemeinsamer Teiler von x und y Lemma 2.1 Seien x, y, λ ∈ Z Dann gilt: T (x, y) = T (x − λy, y) Satz 2.2 Je zwei ganze Zahlen x, y esitzen einen größten gmeinsamen Teiler. Dieser Kann durch den nachfolgenden Algorithmus berechnet werden. Beweis ObdA x 6= 0, y 6= 0, x > 0, y > 0 x0 := x, x1 := y Sukzessive Teilung mit Rest, bis der Rest null wird. x0 = q1 x1 + x2 0 < x2 < x1 x1 = q2 x2 + x3 0 < x3 < x2 .. . xk−2 = qk−1 xk−1 + xk 0 < xk < xk−1 xk−1 = qk xk + 0 Das Verfahren bricht nach endlich vielen Schritten ab. Behauptung: xk ist gcd von x1 und x2 Beweis (der Behauptung) Aus dem Hilfssatz folgt: T (x0 , x1 ) = T (x2 , x1 ) = T (x3 , x2 ) = . . . = T (0, xk ) ⇒Behauptung Bemerkung 2.3 (zur Komplexität des Eukl. Algor.) Worst case: Bestimmung des gcd zweier aufeinandererfolgender Fibonaccizahlen.: fn+1 = fn + fn−1 fn = fn−1 + fn−2 .. . f2 = f1 + f0 |{z} =0 Inbesondere: gcd(fn+1 , fn ) = 1 Da die Fibonacci-Zahlen exponentiell mit dem Index wachsen, folgt: 5 n = O(log fn ) Also gilt für den Euklidischen Alg.: Für die Anzahl der Schritte k gilt: k = O(log |y|) Die Anzahl der Nötigen Schritte wird durch eine Lineare Funktion der Stellenzahl von min(|x|, |y|) nach oben abgeschätzt. ⇒Lineare Komplexität Satz 2.3 (Satz von Bézout) Seien x, y ∈ Z und d = gcd(x, y) ⇒∃λ, µ ∈ Z : d = λx + µy Korollar 2.4 Zwei ganze Zahlen x, y sind genau dann teilerfremd (d.h. gcd(x, y) = 1) ⇔∃λ, µ ∈ Z : 1 = λx + µy Beweis (Satz von Bézout) Mittels Erweiterten Euklidischen Algor. x0 = q 1 x1 + x2 .. . xi−1 = qi xi + xi+1 xi = xi+1 xi+1 + xi+2 .. . Wir zeigen Induktiv, dass sich alle xi als ganzzahlige Linearkombination xi = λi x0 + µi x1 schreiben Lassen. Induktionsanfang: x0 = 1x0 + 0x1 x1 = 0x0 + 1x1 Induktionsschritt: xi−1 = λi−1 x0 + µi−1 x1 xi = λi x0 + µi x1 Aber xi+1 = xi−1 − qi xi (λi+1 , µi+1 ) = (λi−1 , µi−1 ) − qi · (λi , µi ) Bemerkung 2.4 Man definiert analog den ggT von x1 , . . . , xn ∈ Z. gcd(x1 , . . . , xn ) = gcd(gcd(x1 , . . . , xn−1 ), xn ) Es existieren λ1 , . . . , . . . λn ∈ Z mit X xi = gcd(x1 , . . . xn ) i=1 Definition 2.4 (Kleinstes gemeinsames Vielfaches) Die Zahl v heißt kgV von x, y ∈ Z wenn gilt 6 2 DER EUKLIDISCHE ALGORITHMUS 1. x|v&y|v (gemeinsames Vielfaches) 2. Ist w irgend ein gemeinsames Vielfaches von x, y so folgt v|w Bemerkung 2.5 Das kgV ist (Im Falle der Existenz) bis aufs Vorzeichen eindeutig bestimmt Beweis Sind v1 und v2 kleinstes gemeinsames Vielfache so folgt nach Def. v1 |v2 und v2 |v1 ⇒v1 = ±v2 Satz 2.5 In Z besitzen zwei Elemente x, y steths ein kleinstes gemeinsames Vielfaches. es gilt: lcm(0, 0) = 0 xy falls (x, y) 6= (0, 0) lcm(x, y) = gcd(x, y) Beweis Wir können annehmen x 6= 0, y 6= 0 Sei d := gcd(x, y) v := xy d zeige: v = lcm(x, y) 1. x|x yd und y| xd y d.h. v ist gemeinsames Vielfaches. 2. Sei x|w, y|w zeige: v|w: w = αx, w = betay d = λx + µy 1 = λ xd + µ yd ⇒α = λα xd + µα yd = λβ yd + µα yd = = (λβ + µβ) yd y ⇒ d |α ⇒ xy |αx = w d 2.1 Integritätsbereiche Definition 2.5 Ein Integritätsberecih ist ein kommutativer Ring mit Einselement, der Nullteilerfrei ist. d.h. xy = 0 ⇒ (x = 0 oder y = 0) Beispiel 2.1 Z, Q (allgemein jeder Körper) Ist K ein Körper (z.b. K = Q) so ist der Polynomring n X K[X] = { ci X i ci ∈ K, n ≥ 0} i=1 2.1 Integritätsbereiche 7 EIn Integritätsbereich. Ring der Ganzen Gaußschen Zahlen Z[i] := {n + mi : n, m ∈ Z} ⊂ C Z[i] ist integritätsbereich Definition 2.6 Ein Element u eines Integritätsbreich R heißt Einheit wenn u in R invertierbar ist, d.h. wennv ∈ R existieren, sodass uv = 1 Bemerkung 2.6 1. ±1 sind immer Einheiten. 2. In Z sind ±1 die einzign Einheiten. 3. in Z[i] sind ±1, ±i die einzigen Einheiten 4. in einem Körper K ist jedes Element 6= 0 eine Einheit. 5. Die Einheiten in K[X] sind die konstanten Polynome 6= 0 Satz 2.6 Die Menge aller Einheiten eines Integritätsbereiches R bilden eine multiplikative Gruppe die mit R∗ bezeichnet wird. Definition 2.7 Ein Element x ∈ R \ (R∗ ∪ {0}) eines Integritätsbereich R heißt 1. Irreduzibel , wenn für jede Zerlegung x = yz, y, z ∈ R gilt: y ∈ R∗ oder z ∈ R∗ 2. prim , wenn aus x|a · b folgt: x|a oder x|b a, b ∈ R Bemerkung 2.7 Die Begriffe irreduziben und prim stimmen nicht in jedem Integriätsbereich überein. Beispiel: √ R = Z[ −3] Behauptung:√ Das Element √ 2 ist irreduibel, aber nicht prim in R denn: 2|(1 + √−3)(1 − −3) = 4√ Aber 2 - (1 + −3) und 2 - (1 − −3) Bemerkung 2.8 Es gilt stets: prim ⇒irreduziebel. Satz 2.7 in Z sind die Begriffe irreduzibel und prim äquivalent. 8 2 DER EUKLIDISCHE ALGORITHMUS Beweis Sei p irreduzibel und es gelte p|xy Falls p|x sind wir fertig. Falls p - x dann sind p und x Teilerfremd. Bezout =⇒ ∃λ, µ ∈ Z mit: λp + µx = 1 ⇒λpy + µ xy = y |{z} =αp d.h. (λy + µα)p = y Satz 2.8 In Z gilt der Satz von der Eindeutigen Primfaktorzerlegung. d.h. jede Qnganze Zahl x ∈ Z \ 0 lässt sich schreiben als. x = ± ν=1 pν , n ≥ 0 mit Primzahlen pν > 0 Diese Zerlegung ist bis auf Umordnung eindeutig bestimmt. Q Q Beweis OBdA x > 0 Annahme x = nν=1 pν = µ=1 mqµ Induktion nach n n = 0 Klar Induktionsschritt (n-1)-> n Qm pn | µ=1 qµ Also muss pn einen der Faktoren teien. OBdA(sonst umnumeriereung): pn |pm ⇒pQn = qm Q m−1 ⇒ n−1 µ=1 qµ ν=1 pν = Hierauf induktionsvoraussetzung anwenden. 2.2 Euklidische Ringe Definition 2.8 Ein euklidischer Ring ist ein Integritätsbereich R mit einer Funktion ν : R \ {0} → N sodass gilt: Zu jedem Paar x, y ∈ R mit y 6= 0 gibt es Elemente q, r ∈ R sodass: x = qy + r Wobei r = 0 oder ν(r) < ν(y) Bemerkung 2.9 In jedem euklidischen Ring R besitzen je zwei Elemente x, y ∈ R einen größten gemeinsamen Teiler d der mit dem euklidischen Algorytmus bestimmt werden kann. d ist bis auf Einheiten eindeutig bestimmt. Beispiel 2.2 Z[i] ist euklidisch mit ν(n + mi) = n2 + m2 K[X] ist euklidich mit ν(f (X)) = deg f (X) 2.2 Euklidische Ringe 9 Definition 2.9 Seien x, y ∈ Z \ 0 Für eine Primzahl pbezeichne ordp (x) = max{n ≥ 0 : pn |x} Damit gilt: Q x = u · p∈¶ pOrdp (x) Dabei ist u = ±1 und ¶ = {2, 3, 5, 7, 11, 13, . . .} die Menge aller Primzahlen. Alle bis auf endliche viele Faktoren sind = 1, also ist das Produkt in Wirklichkeit endlich. Es gilt: x|y ⇔ Ordp (x) ≤ Ordp (y)∀p ∈ ¶ Daraus folgtQfür den ggT: gcd(x, y) = p∈¶ pmin(Ordp (x),Ordp (y)) Q lcm(x, y) = p∈¶ pmax(Ordp (x),Ordp (y)) Ensprechendes gilt für gcd(x1 , . . . , xn ), lcm(x1 , . . . xn ) 10 3 3 DER RESTKLASSENRING Z/N Der Restklassenring Z/n Definition 3.1 (Kongruenzen) Sei m eine ganze Zahl. Für Ganze Zahlen x, y definiert man x≡y mod m ⇔x − y ∈ mZ d.h. m|x − y Bemerkung 3.1 (Regeln) 1. x ≡ y mod m ⇔ x ≡ mod (−m) D.h. man kann sich auf m ≥ 0 beschränken. 2. x ≡ y mod 0 ⇔ x = y 3. x ≡ y mod 1 ∀x, y ∈ Z Also: Die einzigen interessanten Fälle sind Kongruenzen modulo m ≥ 2 Satz 3.1 Die Kongruenz modulo m ist eine Äquivalenzrelation auf Z Definition 3.2 (Kongruenzklassen) Eine ganze Zahl x modulo m besteht aus allen ganzen Zahlen, die zu x modulo m kongruent sind. [x]m oder (x mod m) Wenn klar ist welches m gemeint ist, auch x oder [x]. [x]m = x + mZ = {y|x ≡ y mod m} [0]m = mZ Man nennt x einen Repräsentanten der Restklasse. Die Menge alle Restklassen modulo m wird mit Z/mZ oder kurz Z/m bezeichnet. Für m > 0 gilt also: Z/m = {0, 1, . . . m − 1} Addition und Multiplkation von Restklassen: x+y =x+y x · y = x · y Diese Abbildungen sind Wohldefiniert. (Beweis wird nicht ausgeführt) Satz 3.2 Die Menge der Restklassen Z/m bildet bzgl. der oben definierten Addition und Multiplikation einen kommutativen Ring mit Einselement. Die natürliche Abbildung %Z → Z/m, %(x) = [x]m ist ein surjektiven Ring-Homomorphismus Satz 3.3 Ein Element x ∈ Z/n ist genau dann invertierbar (in Z/m) wenn x und m teilerfremd sind. 11 Beweis 1. Sei gcd(x, m) = 1 ⇒λx + µm = 1 ⇒λx = 1 − µm ⇒λx ≡ 1 mod m =⇒λ · x = 1 2. Sei x invertierbar in Z/m ⇒∃z ∈ Z, sodass zx = 1 d.h. zx = 1 + km mit k ∈ Z ⇒zx − km = 1 ⇒gcd(x, m) = 1 Bemerkung 3.2 (Bezeichnungen) (Z/m)∗ Bezeichnet die multiplikative Gruppe der Invertierbaren Elemente von Z/m Korollar 3.4 Z/m ist genau dann Körper, wenn m eine Primzahl ist. p Prim ⇒ Fp = Z/p Andere Bezeichnung: Fp = GF (p) (Galoisfeld) Definition 3.3 (Eulersche Phi-Funktion) Für m ≥ 1 setzt man: ϕ(m) := #(Z/m)∗ ϕ(m) = #{x ∈ Z : 0 < x ≤ m mit gcd(x, m) = 1} Insbesondere ϕ(1) = 1 Sei p prim. k ≥ 1 ϕ(p) = p − 1 ϕ(pk = pk − pk−1 = pk−1 (p − 1) oder pk (1 − p1 ) Definition 3.4 (Direktes Produkt von Ringen) A1 , . . . Ar Ringe. A := A1 × . . . × Ar Addition und Multiplikation komponentenweise. Nullelement: (0, . . . , 0) Einselement: (1, . . . , 1) Satz 3.5 Sei m|n dann hat man einen Natürlichen Ringhomomorphismus Z/n → Z/m; [x]n 7→ [x]m Satz 3.6 (Chinesischer Restsatz) Seien m1 , . . . mr paarweise Teilerfremde natürliche Zahlen und m := m1 · . . . · mr Dann ist die Abbildung Φ : Z/m → Z/(m1 ) × . . . Z/(mr ) [x]m 7→ ([x]m1 , . . . , [x]mr ) ein Ringisomorphismus 12 3 DER RESTKLASSENRING Z/N Beweis Φ ist Ring Homomorphismus. X Nur noch zu Zeichen, dass Φ bijektiv. Da die linke und rechte endliche Menge mit m = m1 · . . . · mr Elementen sind, reicht es zu zeigen, dass Φ injektiv ist oder dass Φ surjektiv ist. 1. Zeige, dass Φ injektiv ist. Es genügt dass Φ−1 (0) = {0} Sei x ∈ ker φ. d.h. φ(x) = 0 ⇒ mj |x für alle j teilerf remd =⇒ m|x d.h. x = 0 (Beweis konstruktiv) 2. Zeige: dass Φ surjektiv ist. Sei e1 := (1, 0, . . . , 0) .. . er := (0, . . . , 0, 1) Konstruiere Element ui ∈ Z/m mit Φ(ui ) = ei Eigenschaft von ui : ui ≡ 1 mod mi ui ≡ 0 mod mjQ i 6= j Sei Dazu zi := i6=j mj Dann gilt zi ≡ 0 mod mj , ∀j 6= i und zi 6= 0 mod mi und es gilt sogar: gcd(zi , mi ) = 1 Daher ist zi invertierbar modulor mi d.h. ∃λi ∈ Z : λi zi ≡ 1 mod mi Setze nun ui := λi zi Q Sei jetzt (x1 , . . .P , xr ) ∈ (Z/mj ) beliebig vorgegeben. Setze nun y := rj=1 xj uj ∈ Z/m Dann gilt φ(y) = (x1 , . . . , xr ) Bemerkung 3.3 (Klassische Formulierung) Seien m1 , . . . m2 paarweise teilerfremd. Dann ist für jedes r-tupel a1 , . . . ar das System der Kongruenzen x ≡ a1 mod m1 .. . x ≡ ar mod mr lösbar. Die Lösung ist modulor m := m1 · · · . . . · · · mr eindeutig bestimmt. Korollar 3.7 Mit derselben Voraussetzung gilt: ∼ = (Z/m)∗ −→ (Z/m1 )∗ × . . . × (Z/mr )∗ Insbesondere gilt für paarweise teilerfremde mj : ϕ(m1 · · · . . . · · · mr )ϕ(m1 ) · . . . · · · ϕ(mr ) 13 Spezialfall: Sei n ∈ N und n = pk11 · . . . · pkr r ∼ = Q Dann gilt Z/n =−→ rj=1 Z/mj ∼ = Q und (Z/n)∗ −→ (Z/mj )∗ Q k und ϕ(n) = rj=1 ϕ(pj j Satz 3.8 Q ϕ(n) = n p|n (1 − p1 ) k k k −1 k Beweis ϕ(pj j ) = pj j − pj j = pj j (1 − Q Q k k Q ϕ(pj j = rj=1 (pj j ) rj=1 (1 − p1j ) 4 1 ) pj Die multiplikative Gruppe (Z/m)∗, Primitivwurzel Satz 4.1 (Lagrange) Sei G eine endliche Gruppe und H ⊂ G eine Untergruppe. Dann gilt: #H ist ein Teiler von #G Dabei bezeichne #M die Anzahl der Elemente einer endlichen Menge M Für endliche grupen schreibt man auch Ord(G) = #G Beweis Wir betrachten die Nebenklassen von H d.h. die Mengen: xH := {xh : h ∈ H}x ∈ G Für diese Nebenklassen gilt genau eine der Alternatien: 1. x1 H = x2 H 2. x1 H ∩ x2 H = ∅ Denn: sei (2.) nicht der Fall dann gibt es ein z ∈ x1 H ∩ x2 H z = x1 h1 = x2 h2 , hi ∈ H Zeige x1 H ⊂ x2 H Ein beliebiges y ∈ x1 H lässt sich schreiben als: y = x1 h x1 = x2 h2 h−1 1 Also: y = x2 h2 h−1 1 h ∈ x2 H Analog zeigt man x2 H ⊂ x1 H Jede Nebenklasse xH hat ebensoviele Elemente wie H. Aus der aussage Oben folgt: ˙ rH G = x1 H P ∪˙ . . . ∪x r ⇒#G = j=1 #(xj H) = r · (#H) 14 4 DIE MULTIPLIKATIVE GRUPPE (Z/M )∗ , PRIMITIVWURZEL Bemerkung 4.1 (Bezeichnung) Ord(G) =: [G : H] Ord(H) Index von H in G Definition 4.1 x ∈ G, G endliche Gruppe: Ord(x) := min{n ≥ 1| xn = e} < x >:= {xn | n ∈ N} sei die von x erzeugte Untergruppe Definition 4.2 Eine Gruppe G heißt zyklisch, falls es ein Element g ∈ G gibt, sodass: < g >= G g heißt erzeugendes Element (Generator) von G Für jedes Element x ∈ G ist die Untergruppe H :=< x > zyklisch. Satz 4.2 Sei G eine endliche Gruppe und x ∈ G dann gilt Ord(x)| Ord(G) xOrd(G) = e Beweis 1. Behauptung folgt aus Satz von Lagrange die 2. Behauptung: Ord(x) · r = Ord(G) für ein r ∈ N xOrd(G) = xOrd(x)r = (xOrd(x) )r = er = e Satz 4.3 (Euler) Sei m ≥ 2 und x eine zu m teilerfremde ganze Zahl, dann gilt: xϕ(m) ≡ 1 mod m Beweis die multiplikative Gruppe (Z/m)∗ hat die Ordung ϕ(m) Satz 4.4 (kleiner Satz von Fermat) sei p eine Primzahl und x eine ganze zahl mit p - x dann gilt xp−1 ≡ 1 mod p Andere Formulierung p prim x ∈ Z beliebig. xp ≡ x mod p Definition 4.3 Eine ganze Zahl g heißt Primitivwurzel modulo m :⇔ g zu m teilerfremd ist und (Z/m)∗ =< g >. d.h. Ord(g) = ϕ(m) 15 Satz 4.5 Sei x Element einer (endlichen abelschen) Grupe G mit Ordnung m. Sei k eine zu m teilerfremde ganze Zahl. Dann hat xk ∈ G ebenfalls die Ordnung m. Beweis (xk )m = xkm = (xm )k = 1 ⇒Ordnung von xk ist ein Teiler von m ⇒Angenommen, die Rondung von xk wäre ein echter Teiler m0 von m Dann sind k und m0 teilerfremd. 0 0 1 = (xk )m = xkm und Ord(x) = m ⇒ m|km0 Da m und k teielrfremd sind, so folgt: m|m0 ⇒m = m0 Korollar 4.6 x ∈ G, Ord(x) = m; l ∈ Z beliebig ⇒Ord(xl ) = Beweis d := gcd(l, m) m1 := md Dann Hat xd die Ordnung m1 Nun ist m1 und dl sind teilerfremd. l Also nach Satz: Ord (xd ) d m gcd(l,m) = Ord(xd ) = m1 = m gcd(l,m) Satz 4.7 Seien x, y zwei Elemente einer endlichen abelschen Gruppe mit Ord(x) = k, Ord(y) = l Falls k und l teilerfremd sind gilt: Ord(xy) = k · l Beweis 1. (xy)kl = xkl y kl = (xk )l (y l )k = 1 Daraus folgt dass Ord(xy)|kl 2. ANgenommen Ord(xy) währe ein echter Teiler von kl ⇒ Ord(xy) = k 0 l0 mit k 0 |k, l0 |l ObdA sei k 0 < k 0 0 0 0 0 0 Es gilt (xy)k l = 1 = (xy)k l = (xl )k (y l )k = (xl )k Da gcd(l, Ord(x)) = 1 hat xl ebenfalls Ordnung k 0 Widerspruch zu (xl )k = 1 Satz 4.8 (Gauß) Sei G ⊂ K ∗ eine endliche Untergruppe der multiplikativen Gruppe Eines Körpers K. Dann ist G zyklisch, dh.h. es gilt ein ζ ∈ G sodass G = hζi 16 4 DIE MULTIPLIKATIVE GRUPPE (Z/M )∗ , PRIMITIVWURZEL Beweis Ord(G) =: m = q1k1 . . . qrkr die Kanonische Primfaktorzerlegung. k Es genügt zu zeigen, dass es Elemente xj ∈ G gibt mit Ord(xj ) = qj j Q Dann hat g := xj die Ordnung m Beweis dieser Aussage: Zur Vereinfachung lassen wir den Index j weg. Sei q eine Primzahl und k ≥ 1 mit q k km (d.h. q k ist die höchste Potenz von q die in m aufgeht) m Wähle ein z ∈ G mit z q 6= 1 Korollar 4.9 Zu jeder Primzahl p existiert eine Primitivwurzel g modulo p Beweis Satz Anwenden auf K = Z/p und G = (Z/p)∗ m Die Anzahl der Elemente z ∈ G mit z q = 1 ist höchstens gleich mindestens m − ( mq ) m qk = m(1 − 1 ) q Elemente mit z m q m q also gibt es 6= 1 Definiere x := z Behauptung: Ord(x) = q k Beweis davon: m k k xq = (z qk )q = z m = 1 Es folgt, dass die Ordnung von X ein Teiler von q k ist. Wäre die Ord(x) = q l mit l < k, so würde folgen m m k−1 l k−1 = z q 6= 1 Widerspruch 1 = q q ⇒ 1 = xq = (z qk )q Korollar 4.10 Zu Jeder Primzahl p existiert eine Primitivwurzel g modulo p Satz 4.11 Sei p eine Primzahl Eine Ganze Zahl g mit p - g ist genau dann eine Primitivwurzel modulo p wenn gilt: p−1 ∀q|p − 1 g q 6=≡ mod p Beweis Die bedinung ist trivialerweise notwendig Die Bedinung ist hinreichend weil: in jedem Fall gilt: g p−1 ≡ 1 mod p Wäre die Ordnung von g ein echt kleiner als p − 1 r := Ord(Z/p)∗ ((g) > p − 1 so gäbe es einen Primteiler q|p − 1 mit r| p−1 ⇒ 1 = gr ⇒ g q p−1 q ≡ 1 Widerpspruch. Satz 4.12 Es gibt geneu ϕ(p − 1) Primitivwurzeln modulo p Beweis Sei g eine Primitivwurzel Ein Element g1 = g k ist genau dann Primitivwurzel wen gcd(k, p − 1) = 1 17 Bemerkung 4.2 Ist p − 1 = q1k1 . . . qkkr die kanonische Primfaktorzerlegung von p − 1 so gilt: Qr 1 ϕ(p − 1) = (p − 1) i=1 (1 − q ) j Qr ϕ(p−1) 1 d.h. p−1 = j=1 (1 − qj ) Bemerkung 4.3 (Vermutung von Artin) Die Zahl 2 ist Primitivwurzeln von unendlich vielen Primzahlen p. Satz 4.13 Unter Annahme der Erweiterten Riemanschen Vermutung gibt es eine Konstante c > 0 sodass für jede Primzahl p eine Primitivwurzel g existiert mit g ≤ c(log p)2 Definition 4.4 Sophie German Primzahl-Paare q und p := 2q + 1 prim Primitivwurzeln modulo Primzahlpotenz Satz 4.14 Sei p eine ungerade Primzahl und g eine Primitvwurzel 1. g ist genau dann Primitivwurzel mod p mod p2 , wenn g p−1 6≡ 1 mod p2 2. Falls g p−1 ≡ 1 mod p2 so ist g̃ := g + p Primitivwurzel modulo p2 Beweis 1. Die Bedinung ist Notwendig (T rivialerweise) Hinreichend: Aus der Bedinung folgt: g p−1 = 1 + ap (in Z) mit p - a Annahme: g währe keine Primitivwuzel mod p2 Dann ist Ord(Z/p2 )∗ ) (g) ein echter Teiler von Ord(Z/p2 )∗ ) = (p − 1)p Es gäbe daher einen Primteiler q|(p − 1)q (p−1)p dass g q ≡ 1 mod p2 1. Fall: q = p (p−1)p Aber g q = g p−1 6≡ 1 nach voraussetzung D.h. dieser Fall tritt nicht auf. 2. Fall: q|p − 1 Da p teilerfremd zu p − 1 ist g p ebenfalls Primitivwurzel modulo p p−1 ⇒(g p ) q 6≡ 1 mod p p−1 ⇒(g p ) q 6≡ 1 mod p2 2. Sei g p−1 ≡ 1 mod p2 ⇒g̃ p−1 = (g + p)p−1 = g p−1 + (p − 1)pg p−2 mod p2 (gilt wegen Binomischen Lehrsatz und p2 in jedem weitern Summanden) 4 DIE MULTIPLIKATIVE GRUPPE (Z/M )∗ , PRIMITIVWURZEL 18 Aber (p − 1)pg p−2 6≡ 0 mod p2 ⇒g̃ p−1 6≡ 1 mod p2 ⇒Behauptung. Satz 4.15 Sei p eine ungerade Primitivzahl und k ≥ 2 Eine gNze Zahl ist dann Primitiwurzel dann Primitivwurzel modulo pk wenn sie Primitivwurzel modulo p2 ist. Beweis Eine Implikation ist trivial. Zur Umkehrung: Sei also vorausgesetzt, dass g Primitivwurzel modulor p2 ist. Dann gilt: g p−1 = 1 + ap, p - a k−2 Dann gilt für alle k ≥ 2 : g (p−1)p = 1 + apk−1 mod pk Durch Induktion: k → k + 1 k−2 Wir können annahmen : g (p−1)p = 1 + apk−1 Potenzierung mit p: Binom g p−1 pk−1 = (1 + apk−1 )p = 1 + apk mod pk+1 Daraus folgt dass g PW mod pk d.h. dass g in (Z/pk )∗ die Ordnung. Ord(Z/pk )∗ = (p − 1)pk−1 hat. Dies ist gleichbedeutend damit, dass für jeden Primteiler q|(p − 1)pk−1 gilt g (p−1) pk q 6≡ 1 mod pk Bemerkung 4.4 Für (Z/2k )∗ (Z/2)∗){1} zyklisch (Z/4)∗ = {pm1 zyklisch (Z/8)∗ = {1, 3, 5, 7} ist nicht zyklisch. Hier gilt. für alle x ∈ (Z/8)∗ Hier gilt: x2 ≡ 1 mod 8 für alle x ∈ (Z/8)∗ Also ist diese Grupe nicht Zyklisch. Es folgt: (Z/2k )∗ ist nicht zyklisch für k ≥ 3 Es gilt Ord(Z/2k )∗ = 2k−1 Für x ∈ (Z/2k )∗ gilt: k−2 x2 ≡ 1 mod 2k Für das Element 5 ∈ (Z/2k )∗ , k ≥ 3 gilt: Ord(Z/2k )∗ (5) = 2k−2 Es gilt genauer. Die Abbildung: (Z/2) × (Z/2k−2 ) → (Z/2k )∗ (, ν) 7→ (−1) 5ν Ist Bijektiv und ein Gruppenhomo. 19 5 Quatratische Reste. Reziprozitätsgesetzt Definition 5.1 Eine Zahl a heißt quadratische Rest modulo m, falls die gleichung x2 ≡ a mod m lösbar ist mit x ∈ Z Bemerkung 5.1 (Spezialfall) m = p 6= 2 sq : F∗p → F∗p ; x 7→ x2 Es gilt: sq(xy) = sq(x) sq(y) ⇒sq ist Gruppenhomo. Im(sq) ⊂ F∗p ist Untergruppe aller Quadrate. ker(sq) = {±1} Da # ker = 2 folgt # Im = p−1 2 Es gibt also genausoviele nichtquadrate wie Quadrate. QR · QR = QR QR · N R = N R N R · QR = N R N R · N R = QR ( p· ) sqr 1 → {±1} → F∗p −→ F∗p −→ {±1} → 1 Ist eine exakte Sqeuenz. Definition 5.2 Sei p eine ( ungerade Primzahl nd a eine ganze Zahl mit p - a 1 falls aquadratischer Rest a := p −1 sonst Man setzt noch ap = 0 falls p|a Satz 5.1 (Euler-Kriterium) Sei p eine ungerade Primzahl. Dann gilt für alle a ∈ Z p−1 a a 2 ≡ p mod p Beweis Falls p|a sind beide Seiten gleich 0 mod p Sei also p - a 1. Sei a QR mod p, d.h. ∃x∈ Z : x2 ≡ a mod p p−1 ⇒a 2 ≡ xp−1 ≡ 1 = ap 2. Sei a NR Wähle g Primitivwurzel. Dann gilt a ≡ g ν , (ν ungerade. sonst a Quadrat.) ν = 2k + 1 p−1 p−1 p−1 a 2 ≡ g 2 ·(2k+1) ≡ (g (p−1) )k · g 2 ≡ −1 | {z } |{z} =1 =−1 20 5 QUATRATISCHE RESTE. REZIPROZITÄTSGESETZT Definition 5.3 Sei p ungerade Primzahl } H(p) := {1, 2, . . . p−1 2 Bemerkung 5.2 Jede Zahl a mit p - a ist Modulo p äquivalent zu genau einem Element von H(p) ∪ −H(p) Definition 5.4 Für a ∈ Z mit p - a seien Funktionen a : H(p) → {±1}, σa : H(p) → H(p) definiert durch: ax = a (x)δa (x) mod p für alle x ∈ H(p) Bemerkung 5.3 σa ist bijektiv, d.h. eine Permutation Lemma 5.1 (Gauss) Sei p ungerade Primzahl und a ∈ Z mit p - a. Dann gilt: Y a = a (x) p x∈H(p) Anders ausgedrückt: Die Zahl a ist QR bzw NR, je nachdem die Anzahl der absolut kleinsten Reste der Zahlen 1a, . . . , p−1 a die Negativ sind, gerade bzw ungerade ist. 2 Q Q Q Q Q Q Beweis x∈H(p) ax = x∈H(p) a (x)σa (x) ≡ x∈H(p) x∈H(p) σa (x) ≡ x∈H(p) a (x) y∈H(p) y Q Q p−1 Q ⇒a 2 = (x) a x∈H(p) x∈H(p) x∈H(p) x Q p−1 ⇒ a 2 ≡ x∈H(p) a (x) Satz 5.2 (Ergänzungs-Sätze zum quadratischen Reziprozitätsgesetz) Sei p ungerade Primzahl. 1. 2. −1 p 2 p Beweis = (−1) = (−1) p−1 2 p2 −1 8 ( 1 = −1 falls p ≡ 1 mod 4 falls p ≡ 3 mod 4 ( 1 = −1 falls p ≡ ±1 mod 8 falls p ≡ ±3 mod 8 1. Euler-Kriterium 21 2. Alle x ∈ H(p) werden mit 2 multipliziert. Es Entstehen die Zahlen: 2, 4, 6, . . . p − 1 Welche dieser Zahlen haben negativen absolu kleinsten Rest? Alle Zahlen < p2 haben pos abs kleinsten Rest Alle Zahlen > p2 und < p negativen. x hat positiven absolut kleinsten Rest ⇔ 2x < p2 ⇔ x < p4 x hat negativen abs. kleinsten Rest ⇔ 2x > p2 ⇔ x > p4 Fallunterscheidung (a) p = 8k + 1 #H(p) = 4k positiv absolu kleinste Reste: 2k negative absolut kleinste Reste: 2k ⇒ p2 = +1 (b) p = 8k + 3 #H(p) = 4k + 1 positiven absolu kleinsten Reste: 2k negativen absolut kleinste Reste: 2k + 1 ⇒ p2 = −1 (c) p = 8k + 5 #H(p) = 4k + 2 positive absolut kleinsten Reste: 2k + 1 negativen absolut kleinste Reste: 2k + 1 2 ⇒ p = −1 (d) p = 8k + 7 #H(p) = 4k + 3 positive absolut kleinste Reste: 2k + 1 ngative absolu kleinste Reste: 2k + 2 ⇒ p2 = +1 Definition 5.5 Für eine ganze zahl ν > 0 sei Iν := {x ∈ R : (ν − 1) p2 < x < ν p2 Es gilt: Der Absolut kleinste Rest von ka genau dann negativ, wenn ka ∈ Iν , ν gerade. Sei rν die Anzahl der ka, k ∈ H(p) die in Iν liegen. Dann ist: p p rν = bν 2a c − b(ν − 1) 2a c (keine der zahlen ka liegt auf dem Rand eines der Intervalle, da a und p teilerfremd sind) Beispiel 5.1 p = 13; a = 5 H(p) = {1, 2, 3, 4, 5, 6} Lemma 5.2 Pba2c a = (−1)m mit m = k=1 bk ap c − b(k − 21 ) ap c p 22 5 QUATRATISCHE RESTE. REZIPROZITÄTSGESETZT Satz 5.3 Seien p 6= q zwei ungerade Primzahlen und a eine nicht durch p teilbare ganze zahl mit p ≡ ±q mod 4a Dann gilt: a a = p q P Beweis ap = (−1)m , m = 1≤2νa (s2ν − ssν−1 ) p mitsµ = bµ 2a c P 0 a = (−1)m , m0 = 1≤2νa (s02ν − s0sν−1 ) q q mit s0µ = bµ 2a c Sei nun q ≡ p mod 4a d.h. q = p + 4al q p p p c = bµ( 2a + 2l)c = bµ 2a c + 2µl ≡ bµ 2a c ≡ sµ mod 2 ⇒ s0µ = bµ − 2a 0 Esfolgt m ≡m mod 2 a ⇒ p = aq Sei nun q ≡ −p mod 4a d.h. q = 4al − p mit l ∈ Z (. . . ) ⇒ Satz 5.4 (Quadratisches Reziprozitätsgesetz) Seien p 6= q ungerade Primzahlen. Dann gilt: p−1 q−1 q p = (−1) 2 2 q p D.h. pq = pq falls p ≡ 1 mod 4 oder q ≡ 1 mod 4 p q = − falls p ≡ 3 mod 4 und q ≡ 3 mod 4 q p Beweis 1. Sei p ≡ q4 ObdA sei p > q Dann q + 4t gilt: p = p−1 p−q −q q t 4t 2 = = = = (−1) p p p p p 4t+q t 4t = = q = pq q q Nach satz gilt: vorherigem t t = p q q falls p ≡ 1 mod 4 p ⇒ pq = − q falls p ≡ 3 mod 4 p 23 2. p 6≡ q mod 4 ⇒p + q ≡ 0 mod 4 p +q =4t,t > 0 p+q 4t t = = = pq p p p t = 4tq = p+q = pq q q Definition 5.6 (Fermat-Zahlen) n Fn := 22 + 1 Die n-te Fermat Zahl. für n ≤ 4 sind diese Prim. Aber 641|F5 Lemma 5.3 Sei n > 1 und Fn Prim dann ist 3 Primitivwurzel modulo Fn Beweis Wir zeigen zunächst, dass 3 ein qudaratischer Nicht-Rest modulot Fn ist. 3 = Fn 3 = 32 = −1 Fn n n Fn ≡ 1 mod 4, Fn = 22 + 1 ≡ (−1)2 + 1 ≡ 2 mod 3 Euler Fn −1 =⇒ 3 2 ≡ −1 mod Fn n Die multiplikative Gruppe Z/Fn∗ hat 22 Elemente Die Ordnung eines Beliebigen Elements ζ ∈ Z/Fn∗ ist eine Zweierpotenz Spezialfall ζ = 3 n 2n −1 Behauptung Ord 3 = Fn − 1 = 22 denn sonst wäre 32 ≡ 1 mod Fn aber dies ist ≡ −1 Satz 5.5 Fn ist genau dann eine Primzahl, wenn 3 Fn −1 2 2n −1 = 32 ≡ −1 mod Fn Beweis Bedinung ist notwendig nach dem vorherigen Satz. Die Bedinnung ist hinreichend: 2n Denn es Folgt 3Fn −1 = 32 ≡ 1 mod Fn n ⇒ Ord Z/Fn (3)|22 n Andererseits ist Ord(3) nicht kleiner von 22 n ⇒3 erzeugt in (Z/Fn )∗ eine Untergruppe der Ordnung 22 = Fn − 1 ⇒Z/Fn Körper ⇒Fn prim. Satz 5.6 Jeder mögliche Primteiler einer Fermatzahl p|Fn k · 2n+2 + 1 mit k ≥ 1 Bemerkung 5.4 Anwendung auf F5 haben die Teiler die Gestalt: p = k27 + 1 = 128k + 1 n ≥ 5 hat die Gestalt: p = 24 5 QUATRATISCHE RESTE. REZIPROZITÄTSGESETZT p = 129, 257, 385, 513, 641, . . . für k = 1, 2, 4 ensteht keine Primzahl. 257 = F3 aber allgemein gcd(Fn , Fm ) = 1 Also 257 - F5 Also 641 ist der erste zu Testende Teiler. Um zu Testen ob p := k2n+2 + 1 ein Teiler n von Fn ist, genügt es zu untersuhen, ob 22 ≡ −1 mod p ist Dies spielt sich in (Z/p)∗ ) ab. Definition 5.7 sei m ≥ 3 ungerade. m = p1 · . . . · p r die Primzahlzerlegung.(pj ) nicht notwendig paarweise verschieden. a m Anmerkung: A QR modulo m, gcd(a, m) = 1 =⇒ Die Umkehrung gilt jedoch nicht. 2 2 2 Bsp: 15 = 5 5 = −1 − 1 = 1 Aber 2 ist kein Quadrat modulo 15. := r Y a j=1 a m pj =1 Bemerkung 5.5 (Eigenchaften) a 1. m = mb falls a ≡ b mod m b a 2. ab = m m m a a = ka m für ungerade m, k ≥ 3 3. km 4. a m = 0 ⇔ gcd(a, m) 6= 1 Satz 5.7 (Rez. Gesetz für Jacobi) m−1 = (−1) 2 1. −1 m 2. 2 m = (−1) m2 −1 8 3. sind k, m teilerfremd. ungerade Zahlen ≥ 3 so folgt: m m−1 k−1 k = (−1) 2 2 m k Bemerkung 5.6 Berechnung des Legendresymbols. 85 170 2 85 = 211 211 = − 211 = − 211 2 − 3 =1 211 85 = − 41 85 = − 85 41 = − 3 41 = − 41 3 = 25 Wurzelziehen modulo p 1. p ≡ 3 mod 4 p−1 Sei ap = 1 d.h. a 2 ≡ 1 mod p p+1 ⇒a 2 ≡ a mod p Setze x := a ⇒x2 = a p+1 4 2. Sei p≡5 mod 8 Nach Euler: p−1 1 = ap = a 2 mod p ( +1 p−1 ⇒a 4 = −1 ( a p+3 ⇒a 4 = −a ( p+3 2 a = ⇒ a 8 −a Im ersten Fall sind wir fertig. p+3 im Zweiten Fall gilt für x0 := a 8 Dass x20 = −a Es fehlt noch eine Quadratwurzel aus −1 Zweiter Ergänzungssatz: 2 = −1 (gilt für p ≡ ±3 mod 8) p p−1 p−1 4 ⇒ 2 2 = −1 Für j := 2 Lösung: x := jx0 mod p gilt j 2 = −1 3. p ≡ 1 mod 8 t Schreibe p − 1 = 2 u Nach Voraussetzung gilt: t−1 1 = ap = (au )2 t−1 Setze ξ := au Damit ist ξ 2 = 1 d.h. ξ ist eine 2t−1 te Einheitswurzel. u+1 Setze x0 := a 2 Dann gilt: x20 = au+1 = ξ · a Wir benötigen also eine Quadratwurzel aus ξ Wähle einen Quadratischen Nichtrest c mod p (Da die Hälfte aller Elemente Quadratische Nichtreste sind, findet man schnell durch Probieren eine solche Zahl) α := xu Behauptung: α ist eine primitive 2t -te Einheitswurzel in (Z/p)∗ , d.h. d.h. die Ordung von α ist 2t Beweis: t t α2 = c2 u = cp−1 = 1 ⇒Ordnung von α istein Teile von 2t p−1 t−1 Aber α2 = c 2 = pc = −1 ⇒β := α2 ist eine Primitive 2t−1 te Einheitswurzel. 26 5 QUATRATISCHE RESTE. REZIPROZITÄTSGESETZT Also Existiert ein ν, so dass ξ = β ν = (αν )2 d.h. wir haben eine Quadratwurzel aus ξ gefunden. Falls t klein ist findet man ν durch probieren. Falls t groß ist. 27 6 Primzahltest kleiner Satz von Fermat Ist p prim und a nicht durch p teilbar so foglt: ap−1 ≡ 1 mod p Test für zusammengesetzte Zahlen aus gcd(a, N ) = 1 folgt aN −1 6≡ 1 mod N folgt dass N keine Primzahl ist. Definition 6.1 Eine ungerade Nicht-Primzahl N ≥ 9 heißt Carmichael − Zahl, wenn für alle a ∈ (Z/N )∗ gilt: aN −1 ≡ 1 mod N Es gibt Carmichael-Zahlen z.b: 561, 1105, 1729 Satz 6.1 Eine Zusammengesetzte Zahl N ≥ 9 ist genau dann eine Carmichael-Zahl, wenn 1. N ist quadratfrei 2. für jeden Primteiler p|N gilt: p − 1|N − 1 Beweis Die Bedinungen sind Hinreichend. N = p1 · . . . · pr pj paarweise verschieden. Nach Chin.Reststz: (Z/N )∗ ∼ = (Z/p1 )∗ × . . . × (Z/pr )∗ a∼ = (a1 , . . . , ar ) −1 −1 aN −1 ∼ , . . . aN ) = (aN 1 r pj −1 aber aj = 1 mod pj Da pj − 1|N − 1 folgt daraus: −1 aN ≡ 1 mod pj j ⇒aN −1 ≡! mod N Zur Notwendigkeit sind einige Vorbereitungen nötig. Satz 6.2 Sei G eine (multiplikative) Zyklische Gruppe der ordnung r Weiterhin sei m eine ganze Zahl und H := {x ∈ G : xm = 1} Ord(H) = gcd(r, m) r ⇒ [G : H] = gcd(r,m) Beweis Sei g ∈ G erzeugendes Element. x = gk xm = 1 ⇔ g km = 1 ⇔ r|km sei d := gcd(r, m) 28 6 PRIMZAHLTEST r|km ⇔ dr |k md ⇔ dr |k ⇔ k = ν kd mit einem ν r r ⇒H = {1, g d , . . . , g (d−1) d } ⇒Ord(H) = d = gcd(r, m) Korollar 6.3 Sei N eine ungerade Zahl mit Primfaktorzerlegung N = pk11 . . . pkl l (Z/N )∗ ∼ = (Z/p1 )∗ × . . . × (Z/pl )∗ Die Gruppen (Z/pki i ) sind zyklisch Sei C := {x ∈ (Z/N )∗ : xN −1 = 1} C∼ = C1 × . . . × Cl wobei: Ci := {x ∈ (Z/pki i )∗ : X N −1 = 1} Nach dem vorherigen Satz gilt: Ord(Ci ) = gcd(pki i −1 (pi − 1), N − 1) = gcd(pi − 1, N − 1) p ki −1 (p −1) i i Also [(Z/pki ) : Ci ] = gcd(p i −1,N −1) Q pki i −1 (pi −1) ⇒[(Z/N )∗ : C] = i gcd(p Damit kann die Notwendigkeit der Bedinnungen i −1,N −1) für Carmichael-Zahlen ( bewiesen werden: N Carmichael-Zahl genau dann wenn: pki 1 −1 = 1also Quadratfrei [(Z/N )∗ : C] = 1 ⇒ gcd(pi − 1, N − 1) = pi − 1 ⇒ pi − 1|N − 1 Satz 6.4 Eine Carmichael-Zahl besitzt mindesten 3 Primfaktoren. Beweis N = pq Sei eine Carmicaelzahl ⇒p 6= q N − 1 = pq − 1 = (p − 1)q + (q − 1) ObdA p > q Aus p − 1|N − 1 Folgt p − 1|q − 1 Widerspruch. Die kleinste Carmichael-Zahl mit 4 Primfaktoren ist 41041 = 7 · 11 · 13 · 41 Satz 6.5 (Granvilee) Es gibt unendlich viele Carmichael-Zahlen. Satz 6.6 Eine ungerade Zahl N ≥ 3 ist genau dann prim wenn es eine Zahl g mit folgenden Eigenschaften gibt: 1. g N −1 ≡ 1 mod N 2. Für jeden Primteiler q|N − 1 gilt: N −1 g q 6≡ 1 mod N Beweis Aus 1. und 2. Folgt dass die Ordnugn von (Z/N )∗ gleich N-1 ist ⇒Z/N Körper ⇒N Primzahl 29 Problem: Man braucht alle Primteiler von N − 1 Und: Suche nach g. Falls N primzahl , so ist g eine modulo N: Q Primitivwurzel 1 Es gilbt ϕ(N − 1) = (n − 1) q|N −1 (1 − q ) Solcher Primitivwurzeln. Man findet durch Probieren Schell eine solche Zahl. Satz 6.7 (Poklington-Lehmer) sei N ≥ 3 ungerade und N − 1 = RF Q wobei F = ri=1 pki i kan Primfak.zerl. Zu jedem i ∈ {1, . . . r} gebe es eine Zahl ai mit −1 1. aN ≡ 1 mod N i N −1 pi 2. gcd(ai − 1, N ) = 1 Daraus folgt: Jeder Primteiler q|N hat die gestalt: q = kF 1 + 1, k∈Z ist Insbesondere F ≥ R so folgt, dass N prim ist. Beweis Sei q|N ein Primteiler. in Z/q gilt dann: −1 aN ≡ 1 mod q i n−1 p ai i 6≡ 1 mod q daruas folgt: pki i | OrdZ/q∗ (ai ) Mit Hilfssatz: Sei G eine Gruppe, x ∈ G. m ≥ 1. Es gelte pk |m (p prim, k ≥ 1) Falls 1. xm = 1 m 2. x p 6= 1 Folgt dass pk | Ord(x) Beweis des Hilfssatzes: Aus 1. folgt s Ord(x) = m = p(m/p) p - s (andernfalls wäre Ord(x)|m/p) pk |m = s Ord(x) p - s ⇒ pk | Ord(x) Weiter mti dem Beweis: ⇒pki i |q − Q1 ki ⇒ F = pi |q − 1 ⇒ q − 1 = kF ⇒ Beh. Spezialfall: N − 1 = R · p p Prim R < p N ist genau Dann prim, wenn ein a existiert mit 30 6 PRIMZAHLTEST 1. aN −1 ≡ 1 mod N 2. gcd(aR − 1, N ) = 1 Dies kann man zur konstruktion großer Primzahlen benutzen. Satz 6.8 sei N ≥ 3 ungerade. Genau dann ist N prim, wenn für alle a ∈ Z mit gcd(a, N ) = 1 N −1 mod N gilt: a 2 ≡ Na Beweis Bedinung Notwendig (Euler Kriterium). Bedinung hinreichend: Es folgt dass N prim ist oder eine Carmichael Zahl. Annahme: N Carmichael Zahl, N = p1 . . . pr ∼ =Φ (Z/N )∗ −→ (Z/p1 )a st × . . . × (Z/pr )∗ Sei g Primitivwurzel modulo p1 insbesondere: g = −1 p1 ∗ Es gibt ein a ∈ (Z/N )Q mit Φ(a) = (g, 1, . . . , 1) ∈ (Z/pi )∗ a ) = pg1 = −1 N N −1 Aber a 2 6≡ −1 N −1 N −1 Denn Φ(a 2 ) = (g 2 , 1, . . . 1) 6= (−1, . . . , −1) Widerspruch. Bemerkung 6.1 (Salovay/Strassen-Test) sei N ≥ 3 ungerade. Um zu testen, ob N Prim ist, wähle man ein zufäliges a mit 1 < a ≤ N − 1 Dann berechne man gcd(a, N ) := d Falls d 6= 1, ist N sicher nicht prim. Test beendet. Andernfalls berechne man N −1 a 2 mod N und Na Falls diese 6= mod N sind ist N sicher keine Primzahl. Andernfalls ist N wahrscheinlich prim. mit Fehlerwahrscheinlichkeit ≤ 12 Zur Verringerung der Fahlerwahrscheinlichkeit wiederhole man den Test mit einem neuen Unabhängig gewählten a. Nach n-maligen Wiederholen hat man die Fehlerwahrscienlichkeit 21n Definition 6.2 Sei N eine zusammengesetzte Zahl. Ein a ∈ (Z/N )∗ heißt Falscher Zeuge für die N −1 Primalität von N falls, a 2 ≡ Na mod N Satz 6.9 N −1 #{a ∈ Z/N ∗ : a 2 ≡ a n } ≤ 12 ϕ(N ) N −1 Beweis TSS := {a ∈ Z/N ∗ : a 2 ≡ na } ist eine Untergruppe von (Z/N )∗ . Aber wir wissen (wenn N nicht prim ist) dass TSS 6= (Z/N )∗ ⇒Behauptung. 31 Miller/Rabin Test Satz 6.10 Eine Ungerade Zahl N = 2t u + 1 (u ungerade) ist genau dann prim, wenn für jedes a mit gcd(a, N ) = 1 gilt: Entweder: au ≡ 1 mod N oder a2ku ≡ −1 mod N für k ∈ {0, . . . t − 1} Beweis Sei vorausgesetzt, dass N prim ist wir zeigen, dass eine der Eigenschafen gilt. Nach fertmat gilt: aN −1 ≡ 1 mod N t−1 aN −1 = (a2 u )2 ≡ 1 mod N Da im Körper Z/N die gleichung x2 = 1 nur die Lösungen ±1 besitzt folgt: t−1 a2 u ≡ ±1 mod N Im Falle ≡ −1 sind wir fertig. t−1 Falls aber a2 n ≡ 1 mod N und t > 1 hat man : t−2 (a2 u )2 ≡ 1 mod N t−1 ⇒a2 u ≡ ±1 mod N ⇒usw. Umkehrung. Gelte also eine der beiden Bedinnungen für jedes a ⇒aN −1 ≡ 1 mod N Also ist N prim oder eine Carmichael-Zahl. Die letztere Möglichkeit ist zum Widerpsruch zu führen. N = p1 p2 . . . pr pj paarweise verschieden. (Z/N )∗ ∼ = (Z/p1 )∗ × . . . (Z/pr )∗ a∼ = (g1 , 1, . . . 1) g1 Primitivwurzel modulo p1 Für diese Zahl gilt: N −1 a 2ν 6≡ −1 mod N für ν = 1, . . . t und au 6≡ 1 mod N da g1u 6≡ 1 mod p1 Denn wäre g1u ≡ 1 mod p1 so würde folgen: p1 − 1|u wider spruch da p1 − 1 gerade Satz 6.11 (Miller) Unter Annahme einer Veralltemeinerten Riemanschfen Vermutung genügt es die Bedinnungen nur für alle a mit 1 ≤ a ≤ C(log N )2 Nachzuprüfen, wobei C > 0 eine von N unabhängige Konstante ist. Wobei nach E.Bach gilt mit erweiterten Riemannscher Vermutung, kann die Konstante C = 2 gewählt werden. 32 6 PRIMZAHLTEST Prob. Test von Miller/Rabin k TM R := {a ∈ (Z/N )∗ mit au ≡ 1 mod N oder a2 u ≡ −1 mod N für ein k ≤ t − 1} Ist N > 9 eine zusammengesetze ungerade Zahl, so gilt für die Menge TM R der falschen Zeugen bzwl Miller Rabin tests: #TM R ≤ 14 ϕ(N ) Beweis C := {a ∈ (Z/N )∗ : aN −1 ≡ 1 mod N } Sei s ∈ {0, . . . t − 1} die größte Zahl, so dass es ein x ∈ (Z/N )∗ gibt mit: s x2 u ≡ −1 mod N (für s=0 ist (−1)u ≡ −1 mod N ) s C ± (s) := {a ∈ (Z/N )∗ : a2 u ≡ ±1} s+1 C ± (s) ⊂ C(s + 1) := {a ∈ Z/N ∗ : a2 u ≡ 1} Es gilt: TM R ⊂ C ± (s) ⊂ C(s + 1) ⊂ C ⊂ (Z/N )∗ Außer eventuell TM R sind alle Mengen Gruppen. Qr ki Sei N = Q i=1 pi ∗ (Z/N ) = ri=1 (Z/pki i )∗ Q Q s s+1 C(s + 1) = {x ∈ (Z/pki i )∗ : x2 u ≡ 1} = ri=1 {x ∈ (Z/pki i )∗ : x2 u ≡ ±1} ⇒[C(s + 1) : C±(s)] = 2r−1 Falls r ≥ 3 folgt #TM R ≤ 41 ϕ(N ) Falls r = 2 Dann ist N keine Carmichael-Zahl: ⇒ [(Z/N )∗ : C] ≥ 2 ⇒[Z/N )∗ : C ± (s)] ≥ 4 ⇒Behauptung. Es ist noch der Fall r = 1 d.h. N = pk zu untersuchen. C = {u ∈ (Z/pk )∗ : aN −1 ≡ 1 mod N } pk (p−1) ≥ pk−1 ≥ p [Z/pk )∗ : C] = gcd(p−1,N −1) Aber p 6= 3, da N > 32 folgt: pk−1 ≥ 5 33 7 Faktorisierungs-Algorithmen 7.1 (p-1)-Faktorisierungs-Verfahren Sei N eine ungerade zusammengesetzte Zahl. Und sei p|N ein (unbekannter) Primfaktor. Dann gilt: ap−1 ≡ 1 mod p für alles a mit p - a Daraus folgt für jedes Q mit p − 1|Q dass; aQ ≡ 1 mod p ⇒ gcd(aQ − 1, N ) > 1 Falls: d := gcd(aQ − 1, N ) < N , ist dann ein teiler von N gefunden. d = N ⇔ aQ ≡! mod N Wir suchen also ein Q, so dass Q aQ ≡ 1 mod p aber 1 mod N Qr a k6≡ sei dazu p − 1 = i=1 qi i Falls alle qiki ≤ B für eine gewisse schranke B sind, kann man ein geeignetes Q = Q(B) wie folgt wählen: Y Q(B) := q α(q,B) q≤B mit α(q, B) := max{α : q α ≤ B} Damit gilt p − 1|Q(B) Faktorisieruns-Verfahren: 1. Wähle (auf gut Glück) eine Schranke B > 0 Q 2. Berechne Q(B) = q≤B q α(q,B) 3. Berechne d := gcd(aQ − 1, N ) Falls 1 < d < N hat man einen Teiler von N gefunden. Bemerkung 7.1 1. aQ braucht nur mod N berechnet werden. 2. Das Verfahren hat Erfolgschancen, falls p − 1 Produkt relativ kleiner Primzahlpotenzen ist. (Dies ist nur für spezielle Primzahlen der Fall) 3. Abschätzugn Q von Q(B): Q1 (B) := q≤B Pq log Q1 (B) = q≤B log q = Θ(B) ∼ B (Tschebischefsche Theta-Funktion) Primzahlsatz: Die Dichte der Primzahlen von der Größenordnung x ist asymptotisch gleich 1 log x 34 7 FAKTORISIERUNGS-ALGORITHMEN Es folgt: Q1 (B) ∼ eB √ √ Q(B) = Q1 (B)Q1 ( B)Q1 ( k B) . . . P P 1 log Q(B) = log Q1 (B k ) = q k log q = Ψ(B) ∼ B (Tschebischefsche Psi Funktion) Zusammenfassend: Die Anzahl der Binärstellen von B von Q(B) Wächst linear mit B Optimierung des (p-1)-Verfahrens 1. Schrittweise Vergrößerung der Schranke B B1 < B2 < . . . Q(B1 )|Q(B2 | . . . Q(Bk ) aQ(Bk ) = aQ(Bk−1 ) Q(Bk−1 ) 2. Big-Prime Variation Es kann sein dass fast alle Primpotenzenvon p − 1 kleinergleich einer gewählten Schranke B sind mit einer einzigen Ausnahme, einer sogenannten big prime q ∗ |p − 1 q ∗ > B p − 1|Q(B)q ∗ Es muss ∗dann nur noch Q(B) q a mod N Berechnet werden. Der Wert von q ∗ ist natürlich unbekannt. Man lege eine Weitere Big-Prime Schranke B ∗ > B fast und untersuche alle Primzahlen q ≤ B ∗ Sei b := aQ (B) mod N q1 < q2 < . . . < qm ≤ B ∗ bqν = bqν−1 · bqν −qν−1 = bqν1 bδν wobei δν = qν − qν−1 Sei δ ∗ := maxν≤m {qν − qν−1 } Dann st δ ∗ relativ klein. Außerdem sind alle δν (bis auf (3-2)) gerade. Man berechne im VOraus alle Potenzen b2k , 2k ≤ δ ∗ Dann können die bqν ausgehend von bq1 durch Einfache Multiplikationen berechnet werden. 7.2 Das Fermatsche Faktorisierungs-Verfahren Sei N √ eine ungerade zusammengesetzte Zahl x0 = d N e Für k = 0, 1, . . . Sei xk := x0 + k Berechne x2k − N = dk Solange bis dk = yk2 eine Quadratzahl ist. Dann gilt: 7.2 Das Fermatsche Faktorisierungs-Verfahren 35 x2k − N = yk2 ⇒N = x2k − yk2 = (xk + yk )(xk − yk ) Satz 7.1 Jede Faktorzerlegung von N (ungerade, nicht prim) entsteht auf diese Weise. Beweis N = uv OBda u ≥ v Das Gleichungssystem: x + y = u; x − y = v Hat die Lösung: ; y = u−v x = u+v 2 2 Das Fermatsche Verfahren funktioniert gut, wenn die Fakotren u und v nahe bei liegen. √ N Bemerkung 7.2 x2k+1 = (xk + 1)2 = x2k + 2xk + 1 ⇒dk+1 = dk + 2xk + 1 2xk + 1 = (2xk−1 + 1) + 2 Beispiel 7.1 N= 989 x0 = 25 = 32 x20 = 1024 x20 − N = 35 x21 − N = 35 + 65 = 100 = 102 ⇒ 989 = (33 + 10)(33 − 10) = 43 · 23 Es genügt x, y zu finden mit x2 ≡ y 2 mod N mit x 6≡ ±y mod N Dann hat man (x + y)(x − y) = kN Dann erhält man einen Fakotr von N durch gcd(x + y, N ) oder gcd(x − y, N ) Bemerkung 7.3 (Quadratisches Sieb) Basis Version: Man kombiniere mehrere Rest: x21 − N = u1 x22 − N = u2 .. . x2k − N = uk ⇒ui ≡ x2i mod N Durch Produktbildung, so dass: Q Q X 2 = ( xi )2 = ui = U 2 Die rechte Seite ein Quadrat wird. (X + U )(X − U ) ≡ 0 mod N Damit man die Rechte Seit zu einem Quadrat Kombinieren kann, bestimme man eine Fakotrbasis aus kleinen Primzahlen p1 , . . . pr . 36 7 FAKTORISIERUNGS-ALGORITHMEN Man Q wähle nur solche ui die sich mit dieser Faktorbasis zerlegen lassen. ui = rν=1 pανPiν Q Q i αiν u i = ν pν Q Das P Produkt ui ist genau dann Ein Quadrat, wenn für alle ν gilt: i αiν ≡ 0 mod 2 Umformulierung: Sei βiν := αiν mod 2 ∈ F2 Dann ist ist dies ein homogenes Gleichungsystem über F2 Man P sucht eine nicht triviale Lösung des Gleichungssystems: i βi νxi = 0 OB sich die Reste u = x2 − N mit der Faktorbasis zerlegen lassen, wird durch eine Siebmethode entschieden. Q(X) := X 2 − N Wann ist Q(X) durch eine Primzahl p aus der Faktorbasis teilbar? ⇔ x2 ≡ N mod p Eine Notwendige Bedinnung dafür ist dass Np = 1 (für ungerades p) Man nimmt also nur solche ungeraden Primzahlenin die Faktorbasis auf, für die N =1 p IN diesem Fall hat die Kongruenz x2 ≡ N mod p Zwei Lösungen ±x0 mod p Diese Lösung lässt sich mit dem Wuzelziehverfahren bestimmen. Die Allgemeine Lösung der Kongruenz der Relation p| Q(x) = x2 − N ist dann ±x0 + mp, m ∈ Z Mna nimmt in die Fakotrbasis auf die Pseudoprimzahl p0 := −1, p1 := 2 sowie weitere N Primzahlenpν mit p = 1 Bemerkung 7.4 (Optimierungen) 1. Man wähle ein M > 0 und setze für das Siebintervall S := [x0 − M, x0 + M ] √ wobei x0 = d N e Frü jedes x ∈ S berechne man, (einen groben Wert) von log Q(x) = log(x2 − N ) Jedes mal wenn Q(x) durch die Primzahl pj der Fakotrbasis teilbar ist (festgestellt durch Sieben) subtrahiere man log pj Falls alle Primzahlen der Fakotrbasis behandelt worden sind, sehe man nach für welche Stellen x nach der Subtraktion fast der Wert 0 entstanden ist. Man bestätige durch Probedivision ob Q(x) tatsächlich mit der Fakotrbasis Fakotrisieren lässt. 2. Big Prime Variation: Falls ein Q(x) Produkt von Primzahlen ua sder Faktorbasis und einer weiteren größerenQPrimzahl ist. Q(x) = ν pαν ν p wird dieses Resultat abgespeichert. Falls später bei iener anderen Fakotrisierung Q α0 Q(x0 ) = ν pν ν p 7.2 Das Fermatsche Faktorisierungs-Verfahren 37 dieselbe big prime auftritt, kann man beide Faktorisiereungen kombinieren. Q α +α0 Q(x)Q(x0 ) = ν pν ν ν p2 3. Small prime variation. Man sieht nicht nach kleinen Primzahlen und nicht nach Promzahlpotenzen. 4. Multipolinomiales Quadratisches Sieb Satt des einzigen Polynoms Q(x) = x2 − N benützt man mehrere Polynome der Gestallt Q(x) = ax2 + 2bx + c ! mit der Diskriminante ∆ := b2 − ac = N aQ(x) = a2 x2 + 2abx + ac = (ax + b)2 − b2 + ac = (ax + b)2 − N D.h. Falls Q(x) durch p teilbar ist folgt: (ax + b)2 ≡ N mod p aQ(x) als Funktion der rellen Variablen x hat sein Minimum an der Stelle x0 = − ab Der Wert von aQ(x0 ) an dieser Stelle ist −N also ist der Wert Q(x0 ) gleich −N a Man wählt M so dass Q(x0 ± M ) = Na ! aQ(x0 + M ) = a2 M 2 − N = N d.h. √ a2 M 2 ≈ 2N 2N a≈ M Damit ist im Siebintervall: p N |Q(x)| ≤ |a| ≈ M n2 Wie kann man die bedinnung b2 − ac = N erfüllen? ⇒b2 ≡ N mod a D.h. a muss so gewählt werden, dass N ein quadratischer Rest moduo a wird. Falls dies der Fall ist gibt ein ein b mit b2 ≡ N mod a d.h. b2 − N = ac für ein gewisse Zahl c damit ist dann Q(x) bestimmt. Wähle a prim. und Na = 1 oder a = q 2 mit q prim und N q =1 Dann ist N quadrat modulo q, also auch Quadrat modulo q 2 Q α Durch das Sieben erhällt man jetzt xν ∈ S sodass Q(xν ) = (−1)α0ν rj=1 pj jν wobei pj Primzahlen aus der Faktorbasis ⇒aQ(xν ) = q 2 Q(xν ) = a(xν + b)2 − N yν := axν + bQ α ⇒ q 2 (−1)α0ν pj jν ≡ yν2 mod N Multipliziere mit dem Inversen von q mod N man erhällt eine Q Kongruenz: α zν2 ≡ (−1)α0ν j pj jν mod N Durch Lösen Pr des Linearen Gleichungssystems: α0ν ζ0 + j=1 αjν ζj ≡ 0 mod 2 (ζj ∈ {0, 1}) erhällt man eine Kungruenz : Z 2 ≡ U 2 mod N Falls Z 6≡ U mod N ist gcd(Z + U, Z − u) =: d ein Teiler von N Durh die geeignete Wahlen der Parameter (größe der Faktorbasis, Länger des Siebes) Lässt sich zeigen dass das MPQS eine asymtptische Komplexität ∼ 38 7 FAKTORISIERUNGS-ALGORITHMEN √ O e log(N ) log log N (1+o(1)) Dies ist nicht polynomial in log N , aber besser als exponentiell, also subexponentiell, Bspiel für exponentielle √ komplexität: 1 elog N = N,√e 2 log N = N (Probedivision) 1 e 4 log N = 4 N (Pollardsches Rho-Verfahren) 39 8 Einführung in die Kryptographie Definition 8.1 Ein Kryptosystem ist ein Quintupel (P, C, K, (Ek )k∈K , (Dk )k∈K ) bestehend aus • Menge P (Klartexte, plaintexts) • Menge C (Geheimtexte, ciphertexts) • Menge K (Schlüssel, keys) • Familie von Verschlüsselungsfunktionen Ek : P → C, k ∈ K • Famile von Entschlüsselungsfunktionen Dk : C → P, k ∈ K mit folgender Eigenschaft Dk (Ek (x)) = x für alle x ∈ P, k ∈ K Bemerkung 8.1 (Klassische (VorComputer) Kryptographie) Hier ist meistens P = Folgen von Buchstaben eines Alphabets {A, . . . , Z} Satzzeichen, Zwischenräume werden unterdrückt. C ebenso, oder besonderes Alphabet. Bemerkung 8.2 (Moderne Kryptographie) Hier meist P = C = ∪n∈N (Z/2)n Symetrische Kryptograhie-Verfahren: Der Schlüssel muss dem Sender und Empfänger bekannt sein, der Schlüssel muss vor dritten geheim gehalten werden. Asymetrische(oder Public-Key) Kryptographie Der Schlüssel besteht aus 2 Teilen k = (e, d) Teil e (public key) Darf bekannt sein sein e wird zur Verschlüsselung verwendet Teil d (private key) ist nur dem Empfänger der Nachricht bekannt, er deint zur Entschlüsselung. Im Prinzip kann d aus e berechnet werden, aber die praktische Berechnung ist im abwartbarer Zeit nicht durchführbar. Dagegen ist es einfach, e aus d zu berechnen. (Einwegfunktion Funktion, trapdoor function) Beispiel 8.1 (Klassische Verfahren) 1. Caesar-Shift P = C = G = {A, . . . , Z} ∼ = Z/26 = {0, . . . 25} s∈Z cs : G → G; x 7→ (x + s) mod 26 z.b. s = 3 : A 7→ D, B 7→ E, . . . Z 7→ C Entschlüsselung: (cs )−1 = c−s Kryptoanalysis: Häufigkeitsanalyse. 40 8 EINFÜHRUNG IN DIE KRYPTOGRAPHIE 2. Verallgemeinerung beliebige Permutation π : G → G Spezielle Permutationen, gegeben durch ein schlüsselwort: A B C D E F G H I J K P E T R A B C D G H 3. Bigram-Substitution B I G R A M M S U b 4. Transposition S T I T U T I O N 7→ BM ST IM T IGSIORU T N ABU 5. Vignere-Verschlüsselung Klartext: x1 . . . xn Schlüsselwort k1 . . . kr Geheimtext entsteht durch: zi = (xi + ki mod r ) mod 26 Bei bekannter Schlüssellänge Häufigkeits-Untersuchung von Text Teilen x1 xr+1 x2r+1 . . . Caesar Shift um k1 x2 xr+2 x2r+2 . . . Caesar Shift um k2 Spezialfall: r = 1 ist Caesar Shift. Buchstabenhäufigkeiten: Deutsch mit ü = ue , etc. E N I R S A T D 17,5 9,8 7,7 7,5 6,8 6,5 6,1 4,8 Englisch: E T A O I N S R 12,5 9,2 8,0 7,6 7,2 7,1 6,5 6,1 6. Rotormaschinen, Enigma. Scheiben, die jeweils eine Permutation πi : Z/26 → Z/26 realisieren. Sei τ : Z/26 → Z/26; x 7→ (x + 1) mod 26 Die Translation um 1. Durch Drehung der Scheibe i um k Positionen erhält man die Permutation: τ −k ◦ πi τ k Mit den Scheiben 1, 2, 3 in Positionen k1 , k2 , k3 erhällt man die Permutation: Π(k1 ,k2 ,k3 ) = (τ −k3 π3 τ k3 )(τ −k2 π2 τ k2 )(τ −k1 π1 τ k1 ) Jede Zahl m mit 0 ≤ m < 263 = 17576 lässt sich eindeutig darstellen als: m = k3 · 262 + k2 · 26 + k1 (0) (0) (0) mit gewissen m0 = k3 262 + k2 26 + k1 wird der i-te Buchstabe des Klartextes verschlüsselt mit der Permuation. Π[m0 +i] wobei Π[m] = Π(k1 ,k2 ,k3 ) für m = 262 k3 + 26k2 + k1 41 Literatur dazu Kahn: The Code Breakers - MacMillan 1967 F.L. Bauer: Entzifferte Geheimnisse - Springer Verlag S. Singh : The Code Book Das One-Time-Pad (Vernam 1916) Klartext (x1 x2 . . . xn ) ∈ (Z/2)n Schlüssel = One -Time Pad (k1 . . . kn ) ∈ (Z/2)n Geheimtext (z1 , . . . zn ) ∈ (Z/2)n ist die Addition des Klartextes mit dem OTP modulo 2 Definition 8.2 (Shanons Modell) Kryptosystem: (P, C, K, (Ek )k∈K , (Dk )k∈K ) Es seien außerdem Wahrscheinlichkeits-Verteilungen auf der Menge P und auf K gegeben. Seien P, K endlich. ¶plain : P → R+ = [0, ∞[ ¶key : K → R+ P P x∈K ¶key (x) = 1 x∈P ¶plain (x) = 1; Daraus lässt sich eine Wahrscheinlichkeitsverteilung auf C ableiten. Für z ∈ C istP dann: ¶Cypher (z) = (x,k)∈P×K ¶plain (x)¶key (k) Ek (x)=z Bedingte Wahrscheinlichkeiten: ¶ (x,z) ¶plain|cypher (x|z) = plain,cypher ¶cypher (z) Wahrscheinlichkeit des Klartextes x unter der Bedinnung, dass der Geheimtext z ist. Ein Kryptosystem mit ¶plain , ¶key liefert perfekte Sicherheit :⇔ ¶plain (x) = ¶plain|cypher (x|z) ∀x ∈ P, z ∈ C Satz 8.1 Sei P = C = K = (Z/2)N Ek (x) := x ⊕ k Dk (z) := z ⊕ k 1 Sei ¶plain beliebig und ¶key (k) = |K| = 2−N Dieses System bietet perfekte Sicherheit im sinne von Shannon Beweis 1. Behaupung: ¶chyper (z) = 2−N Beweis: P P ¶CypherP (z) = x+k=z ¶plain (x)¶key (k) = 2−N k ¶plain (z + k) = = 2−N x ¶plain (x) = 2−N 2. ¶plain|cyhper (x|z) = ¶plain (x) Beweis hierfür: ¶plain,cypher (x, z) = ¶plain (x) · ¶key (x + z) 42 9 BLOCK-VERSCHLÜSSELUNGS-VERFAHREN (da k := x + z der eindeutig bestimmte Schlüssel ist der x in z überführt) ¶plain,cypher = 2−N ¶plain (x) 2−N ¶plain (x) ¶plain|cypher = = ¶plain (x) 2−N 9 Block-Verschlüsselungs-Verfahren S P = n≥0 (Z/2)n bei einem Block-verschlüsselungsverfahren, wird der Klartext in Blöcke einer Festen Länge r unterteilt und die Blöcke werden einzelnd verschlüsselt. Typischerweise: r = 64 bit (=8 bytes) oder r = 128 bit (Z2 := Z/2) Ek : Zr2 → Zr2 −1 Dk := Ek Beispiele: DES, 3-DES (r=64) AES (r=128 oder 192 oder 256) Advanced Encryption Standard Schlüssellänge für AES ist 128 bzw 192 bzw 256 für DES 56.