Algorithmische Zahlentheorie und Public Key Kryptographie (Forster) Mitgeschrieben von Bernhard Weiß Mitschrift aus dem SoSe 2009 1 INHALTSVERZEICHNIS Inhaltsverzeichnis Inhaltsverzeichnis I 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 8 EINFÜHRUNG IN DIE KRYPTOGRAPHIE (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 43 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 Dk := Ek−1 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. Erwünschte Eigenschaften von Block verschlüsselungsverfahren: • Verändert man im Klartext ein einzziges Bit, so werden im Zugehörigen Geheimtext z = Ek (x) ungefähr die Hälfte aller Bits verändert. • Verändert man im Schlüssel k nur ein einziges Bit, so werden im Gehiemext ungefähr die Hälfte aller Bits verändert. • Bei gegebenen Paar von Klartext und zugehörigen Geheimtext gibt es kein wesentlich effizienteres Verfahren, den schlüssel als dei Brute-Force-Methode (d.h. Durchprobieren aller möglichen Schlüssel) Insbesondere muss die Verschlüsselungsfunktion nicht-linear sein. Beispiel in dem die letzte Eigenschaft nicht der Fall ist: 112 Double-DES zwei unabhängige Schlüssel k1 , k2 ∈ Z56 2 , (k1 , k2 ) ∈ Z2 x 7→ DESk2 (DESk1 (x)) =: z Meet in the middle Angriff. Bilde alle möglichen Verschlüsselungen mit k ∈ Z56 2 von x Sowie alle möglichen Entschlüsselungen mit k ∈ Z56 von z Suche nun eine Kollision sodass DESk1 (x) = DESk−1 (z) 2 ⇒DESk2 (DESk1 (x)) = z Man braucht nur 2 · 256 = 257 Schlüssel durchzuprobieren um sicher auf eine Kollision zu treffen. Desshlab benutzt man 3-DES : DESk3 ◦ DESk2 ◦ DESk1 (x) oder DESk1 ◦ DESk−1 ◦ DESk1 (x) 2 Wegen Meet in the Middle Angriff ist die 2. Variante kaum Schäwcher als die erste Variante. Beschreibung von AES (Riyndeal) Bytes (Menge aller Elemente von Z82 ) werden identifziert mit der Menge der Elemente des Körper F28 = GF (256) 44 9 BLOCK-VERSCHLÜSSELUNGS-VERFAHREN F28 = F2 [X]/(f (X)) mit f (x) := X 8 + X 4 + X 3 + X + 1 irreduzibles Polynom Elemente von F82 können repräsentiert werden durch eindeutig bestimmte Polynome vom Grad ≤ 7 g(X) = α7 X 7 + . . . + α1 X0 + α0 αν ∈ F2 = {0, 1} Diesem Polynom wird der Bitvektor α7 α6 . . . α0 ∈ Z82 zugeordnet. Addition entspricht bitweiser Addition modulo 2 Multiplikation über Multiplikation der Repräsentierenden Polynome mit Reduktion modulo f (X) Ein Block in AES von 128 bits = 16 Bytes (x0 , . . . , x1 5) ∈ F16 256 wird als 4 × 4 matrix repräsentiert: x0 x4 x8 x12 x1 x5 x9 x13 S= x2 x6 x10 x14 ∈ M (4 × 4, F256 ) x3 x7 x11 x15 Ein Schlüssel der Länge 128 bits wird ebenso als Matrix repräsentiert Au den (globalen) Schlüssel k ∈ M (4 × 4, F256 ) = M4 (F256 ) werden insgesammt 11 Runden Schlüssel. K[i], i = 0, . . . , 10 K[i] ∈ M4 (F256 ) zugeordnet. Der Klartext wird in 10 Runden verändert. Vor Begin der 10 Runden: S 7→ S + K[0] (Add RoundKey) for i = 1 to 9 do: Bytesub(S); ShiftRows(S); MixCullums(S); AddRoundKey(S,K[i]); end; (schlussrunde:) ByteSub(S); SchiftRows(S) AddRoundKey(S; K[10]) Bytesub wird komponentenweise auf jeden Koffizienten der State-Matrix angewendet: σF256(→ F256 bijektiv x−1 falls x 6= 0 x 7→ 0 sonst Anschließend eine affin-lineare Transf über F2 45 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 ξ7 0 0 0 0 1 1 1 1 1 .. Bemerkung: x−1 = x254 x = . 7→ x + 0 1 0 0 0 1 1 1 1 ξ0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 a0 b 0 c 0 d 0 a0 b0 c0 d0 a1 b1 c1 d1 7→ b1 c1 d1 a1 ShiftRows: a2 b2 c2 d2 c2 d2 a2 b2 a3 b 3 c 3 d 3 d 3 a3 b 3 c 3 Mix Culums: 02 03 01 01 01 02 03 01 S 7→ 01 01 02 03 S ( in Hexadezimaler schreibweise) 03 01 01 02 Die Umkehrabbildung: Addroundkey(S,K[10]) for i=1 to 9 do Bytesub−1 (S) ShiftRows−1 (S) MixColums−1 (S) Addroundkey[10-i] end; Bytesub−1 (S) Shiftrows−1 (S) Addroundkey(S;K[0]) Betriebsmodi von Block verschlüsselungen (modes of operation) Ek : Zr2 → Zr2 Verschlüsselungsfunktion für einen Block x = (x1 , . . . xn ), xi ∈ Zr2 ECB-Modus (electronic code book) Geheimtext z = (z1 , . . . , zn ) mit zi = Ek (xi ) CBC-Modus (cipher block chaining) initialisierungs-Vekotr iv ∈ Zr2 sollte für jede Verschlüsselung eines Textes neu zufällig gewählt werden. z0 := iv, zi := Ek (xi + zi−1 ) Entschlüsselung. xi = Ek−1 (zi ) + zi−1 Gleiche blöcke des Klartextes werden im Allgemeienn verschiedene Geheimtext-Blöcke. CFB-Modus (cypher feed back) z0 := iv zi := Ek (zi−1 ) + xi Entschlüsselung: 46 9 BLOCK-VERSCHLÜSSELUNGS-VERFAHREN xi = zi + Ek (zi−1 ) OFB-Modus (output feed back): z0 := u0 := iv ui := Ek (ui−1 ) zi := xi + ui Die folge (u1 , . . .) spielt dei Rolle eines One-Time Pads. Im OFB-Modus darf bei der Berechnung der ui kein Fehler auftreten sonst werden alle Nachfolgenden Blöcke falsch entschlüsselt. s-bit Varianten von CFB und OF B s |r Meist: r = 8l, s = 8 Hier ist der Klartextx = (x1 , . . . xn ) ∈ (Zs2 )n Für einen Block ξ = (ξr−1 . . . ξ1 ξ0 ) ∈ Zr2 Bezeichne Ls (ξ) = (ξr−1 ξr−2 ξr−s ) ∈ Zs2 s-CFB: u0 := iv zi := Ls (Ek (ui−1 )) + xi ∈ Zs2 ui := Shs (ui−1 )kzi Shs shift um s bits nach Links k ist die concetation. ui−1 = (ηr−1 . . . η0 ) ∈ Zr2 zi = (ζs−1 . . . ζ0 ) ∈ Zs2 Shs (ui−1 )||zi = (ηr−s−1 . . . η1 η0 ζs−1 . . . ζ0 ) ∈ Zs2 s-OFB: u0 := iv, ui = Ek (ui−1 ) zi := Ls (Ek (ui−1 )) + xi 47 10 Das RSA-Kryptosystem Rivest, Shamir, Adleman 1978 (Ellis, Cocks 1973) Aufstellung eines RSA-Systems: Alice wählt zwei große (zufällige) Primzahlen p 6= q ( mindestens 512 bit d.h. p, q ∼ 2512 ) N := p · q Weiter qählt ALive eine Zahl e ≥ 3mit gcd(e, ϕ(N )) = 1 ϕ(N ) = (p − 1)(q − 1) Mit dem erweiterten Euklidischen Algorithmus berechnet Alice ein d mit ed = 1 mod ϕ(N ) Alice Veröffentlicht (N, e) als Public Key. und hält p, q, ϕ(N ), d geheim. Private Key (N, d) p, q, ϕ(N ) sind im Weiteren nicht nötig und können vernichtet werden. Bob, der im Besitz des Public öffentlichen Schlüssels ist, kann eine Nachricht wie folgt Verschlüsseln und an Alice Senden: 1. Nachricht wird als Element x ∈ Z/N aufgefasst. (nötigenfalls mehrere xν ∈ Z/N ) N ∼ 21024 entspricht 128 Bytes 2. Bob Berechnet y := xe mod N und sendet diesen Geheimtext an Alice. Alice entschlüsselt diesen Geheimtext mit dem Decryption Exponent d Satz 10.1 Es gilt (xe )d ≡ x für alle x ∈ Z/N Beweis Falls gcd(x, N ) = 1 liegt x ∈ (Z/N )∗ Da #(Z/N )∗ )ϕ(N ) folgt xϕ(N ) ≡ 1 aber ed = 1 + λϕ(N ) also: xed = x1+λϕ(N ) = x1 (xϕ(N ) )λ = x Falls gcd(x, N ) 6= 1 Falls x = 0 trivial. Falls p|x Z/N ∼ = (Z/p) × (Z/q), x ∼ = (0, x2 ) ϕ(N ) q−1 x2 = 1 ⇒ x2 = 1 ⇒xed = x mod N Bemerkung 10.1 Der Anteil der Elemente von Z/N , die nicht teilerfremd zu N sind ist: N −ϕ(N ) 1 = pq−(p−1)(q−1) = p+q−1 = p1 + 1q − pq ∼ 2−511 N pq pq 48 10 DAS RSA-KRYPTOSYSTEM p, q, ϕ(N ) müssen deshalb geheimgehalten werden, weil sonst jeder aus dem öffentlichen Schlüssel den privaten Schlüssel berechnen kann. Die Sicherheit von RSA hängt davon ab, dass es schwer ist , große zahlen zu faktorisieren. Die Faktoren p, q sollten so beschaffen sein, dass weder p − 1 noch q − 1 produkt von Kleinen Primzahlotenzen ist. Damit das Fermatsche Faktorisierungsverfahren nicht anwendbar ist, dürfen p und q keinen zu kleinen Abstand haben. Fallen: Falls bekannt ist, dass der Klartext aus einer kleinen Menge {xν : ν ∈ I} mit #I < 109 von Möglichkeiten entnommen ist, kann man bei bekannten Geheimtext y einfach alle Möglichkeiten E(xν ) = yν durchprobieren, bis man auf auf die Gleichheit y = yν stößt. Gegenmaßnahme: Padding mit Zufallsbits. 1. Low exponent attak. Angenommen, mehrere Benutzer A1 , . . . A3 haben für ihr RSA system den Encryption exponent e = 3 (aber verschiedene N1 , N2 , N3 ) Wenn Bob die selbe Nachricht x an A1 , A2 , A3 sendet, sind die Geheimtexte xi = xe mod Ni Der Klartext kann auf folgende Weise von Eve berechnet werden. Nach dem Chinesischen Restsatz besitzt das System: y ≡ yi mod Ni Eine eindeutig bestimmte Lösung y mod N = N1 N2 N3 Voraussetzung dafür is, dass N1 , N2 , N3 paarweise teilerfremd sind. Andernfalls ist ein nicht trivialer gemeinsamer Teiler, etwa p = gcd(N1 , N2 ) und leicht berechenbar, das heißt das Krypto-System ist gebrochen. Wir nehmen an, dass N1 , N2 , N3 ∼ 2l ⇒N ∼ 2l 0 < y1 y2 y3 < 23l Man kann die dritte wurzel aus y in Z ziehen. es gilt y = x3 als ganze Zahl. Bemerkung wäre die Nachricht mit Zufallsbits ergänzt worden wären, wäre dieser Angriff nicht möglich. Man wählt heute meist größere Verschlüsselungsexponenten. z.b: e = 216 + 1 = 65537 Bemerkung 10.2 Das RSA System wird in der Praxis meist nur zum Austuasch eines ßitzungsßchlüsels für ein symetrischen Kryptographie Verfahren (wie AES, 3-DES, Rc6, CAST, . . .) verwendet. 49 11 Diskreter Logarithmus Sei G eine endliche zyklische Gruppe der Ordnung m und sei g ∈ G ein erzeugendes Element. Dann hat man die Exponentialabbildung: expg : Z/m → G; k 7→ g k expg ist ein Gruppen Isomorphismus der Additiven Gruppe (Zm , +) auf (G, ·) Die Umkehrabbildung: logg : G → Z/m heißt diskreter Logarithmus (in G zur Basis g) Beispiel 11.1 G = Fq∗ wobei q Primzahl oder Primzahlpotenz ist. g erzeugendes Element (Primitivwurzel) expg : Z/(q − 1) → F∗q logg : F∗q → Z/(q − 1) Im Fall q = p Prim heißt der Lograrythmus Index. Unterschied zum Klassischen Logarithmus: R∗+ → (R, +) Beim DL ist das Ziel keine Additive Untergruppe von Fq G0 beliebige Gruppe. g ∈ G0 G :=< g > die von g aufgespannte zyklische Untergruppe Eliptische Kurven über endlichen Körpern oder Untergruppen davon. Bemerkung 11.1 Während im allgemeinen die Exponentialfunktion effizient berechnet werden kann, ist das für den diskreten Logarithmus nicht der Fall. Dies wird für Public-Key-Kryptosysteme benutzt. Diffie-Hellman-Schlüsselaustausch Sei G endliche Gruppe mit Erzeuger g, Ord(G) = m (öffentlich bekannt) Alice wählt α ∈ Z/m und berechnet a := g α und übermittelt Bob a. Bob analog, β und berechnet b := g β und übermittelt b an Alice. Der gemeinsame Schlüssel ist K = bα = g αβ = aβ Kann von Alice und Bob berechnet werden. In der Praxis ist z.B. G = F∗p mit p ∼ 21024 Meist eine kryptographische Hash-Funktion angewandt: S wird auf K noch r h : m≥1 Z2 m → Z/2 mit festem r, z.b. r = 128 oder r = 160 angewandt. Falls Eve das Diskrete Logarithmus Problem lösen kann, kann sie den Schlüssel K berechnen. α = logg (a); K = bα 50 11 DISKRETER LOGARITHMUS β = logg (b); K = aβ Diefie Hellman-Problem DH-Problem Gegeben a = g α , b = g β Gesucht g αβ DL ⇒DH (Umkehrung?) Methoden zur Berechnung des DL Bemerkung 11.2 (Giant-Step-Baby-Step-Verfahren von Shanks) zyklische Gruppe G der Ordnung m mit Generator g Gegeben x ∈ G. √ Gesucht: k ∈ Z/m mit g k = x Sei R := d me dann kann die gesuchte Zahl k dargestellt werden als k = λr + µ mit 0 ≤ λ, µ < r Dann ist g k = x ist gleichwertig mit g λr+µ = x ⇔(g r )λ = xg −µ Zuerste werden die Giant steps berechnet: (g r )0 , (g r )1 , (g r )2 , . . . (g r )r−1 und Abgespeichert (z.b. Hashtabelle) Dann werden die Babysteps berechnet: xg −0 , xg −1 , . . . , x(g −1 )µ , . . . Bis man auf eine Kollision stößt. ⇒ k := λr + µ = logg (x) p Anzahl der Multiplikationen O( (m)) 11.1 Pohlig-Hellman-Reduktion Falls die Ordnung m von der G keine Primzahl ist, kann man das DL Problem in G zurückführen auf das DL Problem in Zyklischen Gruppen der Primzahlordnung pi , wobei m = pk11 . . . pkr r Zurückführen auf Primzahl-Potenzen Sei m = m1 m2 . . . mr Wobei die mi paarweise Teilerfremd sind. Behauptung: Die Abbildung: Ψi : G → G; x 7→ xm/mi Bildet G auf eine zyklische Untergruppe Gi der Ordnung mi ab. Diese Untergruppe hat das erzeugende Element gi := g m/mi Insgesammt erhällt man einen Gruppen Isomorphismus: (Ψ1 , . . . , Ψr ) : G → G1 × . . . × Gr Zur Umkehrabbildung: gcd( mm1 , . . . mmr = 1 ⇒1 = λ1 mm1 . . . λr mmr Φ Q (x1 , . . . , xr ) =⇒ xλi i 11.1 Pohlig-Hellman-Reduktion 51 ΨΦ = id xi = xm/mi ∈ Gi , gi = g m/mi xi = giνi P Q Q λν m x = xλi = giλi νi = g i i mi i 2. Zurückführung auf Primzahl-Ordnung Sei g eine zyklische Gruppe der Ordnung pk , p prim k > 1 1 ⊂ G1 ⊂ G2 ⊂ . . . ⊂ Gk = G Gl sei Untergruppe der Ordnung pl k−l Gl ist bild von G unter der Abbildung x 7→ xp k−l ist g Erzeuger von G so ist gl := g p Erzeuger von Gl . k−l Definiere xl = xp Induktiv wird das Problem in Gl gelöst. G1 hat Primzahlordnung p l →l+1 ξ 7→ ξ p {1} → G1 → Gl+1 → Gl → {1} −νl xl+1 7→ xl = glνl Also liegt gl+1 xl+1 ∈ G1 −νl gl+1 xl+1 7→ 1 −νl Nach Induktionsvoraussetzung für l = 1 erhalte ich µl mit gl+1 xl+1 = g1µl ⇒Behauptung. Subexponentielles Verfahren Bzw: Index Kalkühl in (Z/p)∗ Sei g eine Primitivwurzel modulo p und x ∈ Z/p∗ Gesucht: logg (x) Man wähle eine Faktorbasis aus allen Primzahlen q ≤ B wobei B eine vorgegebene Schranke ist. q1 = 2, q2 = 3, . . . , qr Zuerst werden die Logarithem der Fakotrbasis Bestimmt. Zuerst werden die Logarithmen der Faktorbasis bestimmt. Man betrachtet Potenzen: g α mod p mit zufallszahlen α ∈ Z/(p − 1) bis man auf ein Ergebnis stößt das Mithilfe der Fakotrbasis verzelgt werden kann. g α = q1k1 . . . qrkr mod p Man wiederholt diese Prozedur mit weiteren zufallsexponenten und erhält eine Reihe von Kongruenzen: i1 g αi ≡ q1kP . . . qr kir mod p ⇒αi ≡ ri=1 kij log qj mod (p − 1) i = 1, 2, . . . r∗ ≥ r Dies ist ein lineares Gleichugnssystem für Unbekannten log qj , j = 1 . . . r über dem Ring R = Z/(p − 1) Falls r = r∗ lässt scih das Geleichungsystem Schreiben als: 52 11 DISKRETER LOGARITHMUS log q1 K ... = α1 . . . αr log qr mit der Quadratischen Matrix K = (kij ) ∈ Mr (Z/(p − 1) Die Matrix K ist genau dann invertierbar, wenn det K invertierbar in R = Z/(p − 1) ist, d.h. wenn gcd(det k, p − 1) = 1 Bemerkung 11.3 Sei K # die Matrix der alg Komp. von K (adjunkte Matrix, K̃) K # K = det KE K # ∈ Mr (R) # Es folgt durchMultiplikation mit K : log q1 β1 .. # det K . = K α1 . . . αr = . . . βr log qr Also det(K) log qj = βj Lemma 11.1 Gegene sei die Kongruenz: (1) ax ≡ b mod m Falls gcd(a, m) = 1 ist die Kongruenz modulo m lösbar. Sei nun d := gcd(a, m) > 1 Dann ist die Kongruenz (1) genau dann lösbar wenn d|b In diesem Fall gibt es genau eine Lösung modulo m. Beweis Sei a = a1 d, b = b1 d, m = m1 d ax = b mod m ⇔(2)a1 x ≡ b1 mod m1 Da gcd(a1 , m1 ) = 1 also besitzt (2) eine Eindeutige Lösung x modulo m1 . Diese Lösung x ist auch Lösung modulo m Bemerkung 11.4 Eine natürliche zahl x heißt B-Glatt, wenn alle Primteiler q|x die Bedinnung q ≤ B 1 genügen. Faustregel: Sei u > 1 Und B = x u Dann ist die Wahrscheinlichkeit, dass x B-Glatt ist ungefähr u1u Man kann zeigen, dass bei geeigneter Wahl von B die komplexität des Index-Kalküls. Wie berehnet man log x falls die Logarithmen der Faktorbasis bekannt sind? Man wählt zufallsexponenten y ∈ Z/(p − 1) und berechnet xg γ mod p bis man auf eine Zerlegeung: xg γ = q1l1 . . . qrlr mod p stößt. Dann rilt:P logg (x) = −y + ri=1 lj log qj mod (p − 1) Bemerkung 11.5 Damit das DL Problem in F∗p genügend schwierig ist. 53 12 Digitale Signaturen MessageDigest (kryptographische Hash-Funktion) h : ∪n≥0 Zn2 → Zr2 r fest typischerweise r = 128 oder r = 160 , r = 192, r = 256 Diese Hash-Funktion soll folgende Eigenschaften haben: 0. h(x) soll effizient berechnet werden können. 1. Es ist Praktisch unmöglich aus ξ = h(x) wieder x zurückzugewinnen. 2. Es ist unmöglich irgendein x0 zu bestimmen mit h(x0 ) = ξ 3. Es ist praktisch unmöglich irgend zwei Elemente z1 , z2 ∈ Un≥0 Zn2 zu finden mit h(z1 ), h(z2 ) (starke Kollisionsresistenz) (Dazu muss r genügend groß sein, b̈irthday attak¨) r ≥ 160 oder mehr Brute Force Angriff bentigt im Allgemeinen 280 Schritte r (allgemein 2 2 Schritte) Bekannte Message Digest: MD5 (128 Bit) nicht ganz koll-resistent SHA-1 (160 Bit) SHA-256 (256 Bit) Secure Hash-Algorithm Nist. RSA-Signatur (N, e) öffentlicher Schlüssel (N, d) privater Schlüssel von Alice Alice signiert ein Dokument x ∈ Zn2 wie folgt: 1. ξ := M D(x) ∈ Zr2 2. σ := ξ d mod N Signatur von x Bob Kann die Unterschrift verifizieren: 1. Er Berechnet σ e mod N und ξ := M D(x) Er akzieptiert dei Unterschrift, falls σ e = ξ Digitale Signatur soll fälschungssicher und unverleugbar sein. Oscar kann die Unterschrift von Alice fälschen, falss er in Besitz des privaten Schlüssels kommt. Z.B. wenn er aus (N, e) den Entschlüsselungsexponenten d berechnen kann. z.B. wenn er N faktorisieren kann. 54 12 DIGITALE SIGNATUREN Angriff mit dem Geburtstags-Paradoxon falls die Länge des Message-Digests nicht genügend groß ist. Länge (MD) = r Bit r Brute Force angriff der Komplexität ∼ 2 2 Zwei Dokumente x1 und x2 seien gegeben. x1 Schuldschein. $100 x2 Schuldschein $1000000 r Oscar verändert x1 auf mehr als 2 2 Möglicheiten (ohne den Sinn zu verändern duch hinzufügen oder Weglassen von Spaces und Tabs) Dasselbe macht er mit x2 Nach dem Geburtstags-Pradoxon kann er erwarten, dassM D(x01 ) = M D(x02 ) =: ξ für geeinete Varianten. Er legt x01 Alice zur Unterschrift vor. Nach Fälligkeite der Schuld behautet Oscar, Alice habe Schuldschein x2 unterschrieben. Die Signaturen von x01 und x002 sind identisch. ElGamal-Signatur G = hgi zyklische Gruppe mit Erzeuger g der Ordnung m ΨG → Z/m Abbildung. Alice wählt eine Zufallszahl a ∈ Z/m und berechnet A := g a ∈ G Öffentlich sind: (G, ψ, g, A) Sei x ein Dokument, das von Alice signiert werden soll. Sie berechnet zuerst einen Message Digest. ξ = M D(x) ∈ Z/m Alice wählt eine neue Zufallszahl k ∈ (Z/m)∗ und Berechnet r := g k ∈ G und s := k −1 (ξ − aψ(r)) ∈ Z/m signatur (x) = (r,s) Verifikaition. Bob akzieptiert die Signatur als echt falls. AΨ(r) rs = g ξ mit ξ = M D(x) Falls Alice die Signatur ordnungsgemäß erstelt hat ist die s erfüllt. Aψ(r) = g aψ(r) rs = g ks = g ξ−aψ(r) Für jede Unterschfit muss Alice eine neue Zufallszahl wählen. Annahme: Alice signiert zwei Dokumente x1 , x2 mithilfe derselben Zufallszahl k ∈ (Z/m)∗ sign(x1 ) = (r, s1 ), sign(x2 ) = (r, s2 ) r = gk si = k −1 (ξi − aψ(r)), ξi = M D(xi ) s1 − s2 = k −1 (ξ1 − ξ2 ) Oscar kennt s1 , s2 , ξ1 , ξ2 kann also k berechnen. 55 Falls ξ1 − ξ2 invertierbar odulo m ist kann er daraus k −1 und damit k berechnen. und draus (falls ψ(r) invertierbar ) auch den geheimen Exponenten a. Falls gcd(ξ2 − ξ1 , m) =: d > aber d klein dann gibt es d möglichkeiten für k −1 die Oscar ausprobieren kann. Falls Oscar das DL Problem in G lösen kann, kann er ebenfalls den Geheimen Exponenten a berechnen und damit die UNterschfit fälschen. Beispiele: Für ElGamel-Signatur-Systeme: 1. G = F∗p , #G = p − 1 Damit das DL-Problem in G schwer ist sollte p ∼ 21024 oder größer sein, außerdem sollte möglichst. p−1 =: q eine Primzahl sein. 2 (q, p) Sophie Germain Paar. 2. DSA Digital Sinature Algorithm ist Variante von ElGamal G ist eine Zyklische Untergruppe, der Primahlordnung q von F∗p q ∼ 2160 , p ∼ 21024 oder größer q|p − 1, d.h. p = kq + 1 mit k der größenordnung 21024−160 Man wählt zuerst die Primzahl q. Nach dem Dirirchletschen Primzahlsatz gibt es Dazu Primzahlen p der geänschten Größe. 3. G Elliptische Kurve über einem Endlcihen Körper 56 13 ELIPTISCHE KURVEN 13 Eliptische Kurven Eine Eliptische Kurve ist eine singularitätenfreie algebraische Kurve 3. Ordnung in der Projektiven Ebene P2 (K) über einem Körper K. Der affine Teil der eliptischen Kurve über einem Körper der Charaktersistik > 2 ist äquivalent zu einer Kurve die durch die Gleichung: y 2 = P (x) gegeben wird, wobei P (x) ein Polynom 3. Grades ohne mehrfache nullstellen ist. Falls Char K > 3 kann man die Gleiching in die Gestalltt: y 2 = x3 + ax + b annehmen wobei: ∆ := 4a3 + 27b2 6= 0 Satz 13.1 Sei K Körper mit Char k 6= 2, 3 Hat das Polynom P (x) = x3 + ax + b ∈ K[x] eine mehrfache Nullstelle ξ0 ∈ K1 in einem Erweiterungskörper K1 ⊃ K Dann liegt die Nullstelle schon in K. Dies ist genau dann der Fall, wenn ∆ := 4a3 + 27b2 = 0 Beweis 1. P habe mehrfache Nullstelle ξ0 P = (x − ξ0 )2 (x − ξ1 ) mit einem ξ1 ∈ k1 Daraus folgt (a) 2ξ0 + ξ1 = 0 (b) ξ02 + 3ξ0 ξ1 = a (c) ξ02 ξ1 = −b Aus (a) folgt ξ1 = −2ξ0 in (b) einsgesetzt egibt: (α) − 3ξ02 = a in (c) eingesetzt folgt: (β) ξ1 a = 3b Falls a = 0 folgt b = 0 Also P (X) = X 3 hat die Dreifache Nullstelle ξ0 = 0 ∈ K und ∆ = 0 Sei also a 6= 0 3b , ξ0 = − 2a ∈K ⇒ξ1 = 3b a 2 (α) ⇒ a = −3ξ0 (β)⇒b = −2ξ0 31 (−3)ξ02 = 2ξ03 ⇒ a3 = −27ξ06 ; b2 = 4ξ6 ⇒ 4a3 + 27b2 = 0 2. Es Gelte 4a3 + 27b2 = 0 Fall a = 0Trivial Sei also a 6= 0 3b ; ξ0 := − 2a Definiere ξ1 = 3b a Dann gilt: P (x) = (x − ξ0 )2 (x − ξ1 ) 13.1 Die Projektive Vervollständigung 57 Definition 13.1 Sei F (X, Y ) ∈ K[X, Y ] Dies Definiert eine Kurve CF = {(x, y) ∈ K 2 : F (x, y) = 0} ∂F ∂F (x0 , y0 ) = ∂Y (x0 , y0 ) = 0 Ein Punkt (x0 , y0 ) ∈ CF heißt singulär, wenn ∂X Satz 13.2 Die durch das Polynom F (X, Y ) = Y 2 − P (X) ∈ K[X, Y ] mit Char K 6= 2, 3 , P Polynom 3. Grades. gegeben Kurve ist genau dann singularitätenfrei (im Affinen), wenn P (X) keine mehrfachen Nullstellen hat. ∂F ∂F Beweis ( ∂X , ∂y ) = (−P 0 (X), 2Y ) Sei (x0 , y0 ) ein Punkt der Kurve ∂F ∂F , ∂y )(x0 , y0 ) = (−P 0 (x0 ), −2y0 ) ( ∂X Angenommen (x0 , y0 ) sei singulärer Punkt ⇒y0 = 0, P (0 (x0 ) = 0 Außerdem y02 = P (x0 ) ⇒P (x0 ) = 0 Da P (x0 ) = P 0 (x0 ) = 0 ist x0 eine mindestens 2-fache Nullstelle von P Die Umkehrung ist Trivial. 13.1 Die Projektive Vervollständigung ¶2 (K) = {(x0 , x1 , x2 ) ∈ K 3 \ {0}}/∼ mit sim: (x0 , x1 , x2 ) ∼ (y0 , y1 , y2 ) ⇔ ∃λ ∈ K ∗ : λxi = yi ∀0 ≤ i ≤ 2 Die Äquivalenzklasse von (x0 , x1 , x2 ) ∈ K 3 \ {0} wird mit (x0 : x1 : x2 ) bezeichnet. Die Projektive Eben ¶2 (K) ist eine Erweiterung der affinen Ebene A2 (K) = K 2 bzgl. der Einbettung inj. Φ0 : K 2 −→ ¶2 (K); (x, y) 7→ (1 : x : y) Der Rest ¶2 (K) \ Φ0 (K 2 ) = {(0 : x : y) ∈ ¶2 (K)} | {z } g∞ unendlichferne Gerade g∞ ∼ = P1 (K) = {(x0 , x1 ) ∈ K 2 \ 0/ ∼ Die Projektive Gerade ¶1 (K) lässt sich darstellen als Vereinigung, der Affinen Geraden A1 (K) = K 1 mit einem unendlich fernen Punkt (0, 1) A1 (K) ∼ = {(1 : x) ∈ ¶1 (K)} ¶1 (K) \ A1 (K) = {(0, 1)} Bemerkung 13.1 ¶1 (C) ist nichts anderes als die Riemansche Zahlenkugel. C ∪ {∞} Andere Mögliche Einbettungen von A2 (K) : Φ1 : (u, v) 7→ (u : 1 : v) Φ2 : (s, t) 7→ (s : t : 1) Ui := Φi (K 2 ) Damit gilt: ¶2 (K) = U0 ∪ U1 ∪ U2 affine Überdeckung von ¶2 (K) Bemerkung 13.2 (Projektive Vervollständigung einer Kurve) Projektive vervollständigung einer affinen algebraischen Kurve, die durch ein Polynom F (X1 , X2 ) ∈ K[X1 , X2 ] vom grad d gegeben wird. F (x0 , x1 , x2 )K[x0 , x1 , x2 ] 58 13 ELIPTISCHE KURVEN Sei Wie folgt definiert: F (x0 , x1 , x2 ) := xd0 F ( xx10 , xx02 ) ist ein homogenes Polynom von Grad d, d.h. von der gesatlt: P ν2 ν0 ν0 +ν1 +ν2=d cν0 ν1 ν2 x0 x1 ν1 x2 Die Vervollständigung C von C ist definiert : C := {(x0 : x1 : x2 ) ∈ ¶2 (K) : F (x0 : x1 : x2 ) = 0} Es gilt außerdem: F (1 : x1 : x2 ) = F (x1 , x2 )