Anhang I zur Vorlesung Kryptologie: Elementare Zahlentheorie von Peter Hellekalek Fakultät für Mathematik, Universität Wien, und Fachbereich Mathematik, Universität Salzburg Tel: +43-(0)662-8044-5310 Fax: +43-(0)662-8044-137 e-mail: [email protected] web: http://random.mat.sbg.ac.at/ Wien, 24. April 2009 Inhaltsverzeichnis 1 Teilbarkeit 3 2 Verteilung der Primzahlen 8 3 Kongruenzen 10 4 Literaturempfehlungen 14 2 1 Teilbarkeit Teiler, Vielfaches a, b ∈ Z b teilt a, wenn gilt: ∃c ∈ Z : a = b · c b heißt ein Teiler von a, a heißt ein Vielfaches von b . . . b|a Größter gemeinsamer Teiler a, b ∈ Z d heißt der größte gemeinsamer Teiler von a und b, wenn gilt: 1. d ∈ N 2. d|a und d|b 3. wenn e|a und e|b ⇒ e|d . . . (a, b), ggT(a, b) Teilerfremd Zwei ganze Zahlen a und b mit (a, b) = 1 heißen teilerfremd. . . . teilerfremd Frage Seien a, b ∈ Z gegeben: wie berechnet man (a, b)? Antwort: mit dem Euklidschen Algorithmus! Division mit Rest a∈Z b∈N ⇒ ∃q, r eindeutig bestimmt, sodass gilt: a = q · b + r, 0 ≤ r < b [falls b ∈ Z, b < 0: rechnen mit −b] . . . Division mit Rest 3 Euklidscher Algorithmus a∈Z b∈N ⇒ a b r0 = q0 · b + r0 = q1 · r0 + r1 = q2 · r1 + r2 .. . 0 ≤ r0 < b 0 ≤ r1 < r0 0 ≤ r2 < r1 rk = qk+2 · rk+1 + rk+2 .. . 0 ≤ rk+2 < rk+1 rn rn+1 = qn+2 · rn+1 + rn+2 = qn+3 · rn+2 0 < rn+2 rn+3 = 0 . . . Euklidscher Algorithmus Eigenschaften des größten gemeinsame Teilers Wir notieren einige wichtige Eigenschaften von (a, b): • Der größte gemeinsame Teiler von a und b ist der letzte nicht verschwindende Rest im Euklidschen Algorithmus. • (a, b) ist eindeutig bestimmt. • ∃ m0 , n0 ∈ Z : (a, b) = m0 · a + n0 · b (Wir erhalten ein derartiges Paar m0 , n0 durch “Zurückrechnen” im Euklidschen Algorithmus.) a b , =1 • (a, b) (a, b) Beispiele Finde (6172530,6279) und bestimme m0 , n0 . 6172530 = 983 · 6279 + 273 6279 = 23 · 273 273 ist der letzte nicht verschwindende Rest und damit der größte gemeinsame Teiler von 6172530 und 6279. Als Linearkombination ergibt sich aus obiger Berechnung: 273 = 1 · 6172530 + (−983) · 6279 Finde (111,39) und bestimme m0 , n0 . 111 = 2 · 39 + 33 39 = 1 · 33 + 6 33 = 5 · 6 + 3 6=2·3 4 Damit ist (111, 39) = 3. Für die Bestimmung von m0 und n0 scheint eine etwas länglichere Rückeinsetzung leider unumgänglich: 3 = 33 − 5 · 6 = = 33 − 5 · (39 − 33) = = (−5) · 39 + 6 · 33 = = (−5) · 39 + 6 · (111 − 2 · 39) = = 6 · 111 + (−17) · 39 Es gibt eine Variante des Euklidischen Algorithmus, bei der die Rückeinsetzung entfällt, der sogenannte erweiterte Euklidische Algorithmus. Erweiterter Euklidischer Algorithmus Seien a und b zwei natürliche Zahlen mit a ≥ b. Dann gilt: 1. Die durch den folgenden Algorithmus festgelegten Zahlen qi , ri , mi und ni sind eindeutig bestimmt. 2. Der Algorithmus bricht nach endlich vielen Schritten ab. 3. Für den letzten nicht verschwindenden Rest rk gilt rk = (a, b) = mk a + nk b. Die Startwerte des Algorithmus sind wie folgt definiert: r0 = a m0 = 1 n0 = 0 r1 = b m1 = 0 n1 = 1 Die weiteren Zahlen qi (i ≥ 2) und ri sind wie im klassischen Euklidischen Algorithmus definiert. Die Zahlen mi und ni sind wie folgt definiert: ri = ri−2 − qi ri−1 , wobei qi = ri−2 ri−1 mi = mi−2 − qi mi−1 , ni = ni−2 − qi ni−1 . Lineare diophantische Gleichung Dieser Typ von Gleichung ist ähnlich leicht zu lösen wie in der linearen Algebra. 1. Definition a, b, c ∈ Z, nicht alle gleich Null a·x+b·y =c 2. Lösbarkeitsbedingung Gleichung (1) ist lösbar ⇐⇒ (a, b)|c 5 (1) 3. Allgemeine Lösung Sei x0 , y0 eine bestimmte Lösung von (1). Man nennt ein derartiges Paar x0 , y0 eine partikuläre Lösung der Gleichung (1). Die allgemeine Lösung x, y der linearen diophantischen Gleichung (1) kann dann sofort angegeben werden. Wir setzen dazu a0 = a/(a, b) und b0 = b/(a, b). Für jede Lösung x, y der Gleichung (1) gilt die Beziehung x y = x0 + b0 · t 0 = y0 − a · t, (2) mit t ∈ Z, beliebig 4. Lösungsmethode 4.1 Überprüfen die Lösbarkeitsbedingung (a, b)|c. Wenn nicht erfüllt: Fertig! Wenn erfüllt: nächster Schritt 4.2 Mittels Euklidschem Algorithmus: Bestimmen zwei Zahlen m0 , n0 ∈ Z : m0 · a + n0 · b = (a, b) c 4.3 Sei c0 = (a, b) 4.4 Setzen x0 = c0 · m0 , y0 = c0 · n0 . Wegen c = c0 · (a, b) sind wir damit fertig, wir haben eine partikuläre Lösung x0 , y0 der Gleichung (1) gefunden. Damit kann man sofort die allgemeine Lösung angeben, siehe dazu die Beziehung (2). . . . lineare diophantische Gleichung Beispiel Bestimme alle Lösungen der linearen diophantischen Gleichung 111x + 39y = 12 (3) 1. Überprüfen die Lösbarkeitsbedingung: (111, 39) = 3 | 12. 2. Mittels Euklidschem Algorithmus: 111 · 6 + 39 · (−17) = 3 3. Sei c0 = 12 =4 (111, 39) 4. Setzen x0 = 4 · 6 = 24, y0 = 4 · (−17) = −68. Wir haben damit eine partikuläre Lösung (x0 , y0 ) der Gleichung (3) gefunden: (24, -68). Damit kann man sofort die allgemeine Lösung angeben, siehe dazu die Beziehung (2): x = 24 + 13 · t (4) y = −68 − 37 · t, 6 mit t ∈ Z, beliebig Primzahl Eine ganze Zahl p heißt eine Primzahl, wenn gilt: 1. p ∈ N 2. p > 1 3. b|a ⇒ |b| ∈ {1, a} Bezeichne P die Menge der Primzahlen, P = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, . . . } . . . Primzahlen, P Fundamentalsatz der Zahlentheorie Für alle n ∈ N gilt: α2 αr 1 n = pα 1 · p2 · . . . · pr mit pi prim und αi ∈ N, pi 6= pj für i 6= j. . . . Primfaktorzerlegung (PFZ) Eulersche ϕ-Funktion Für n ∈ N definieren wir ϕ(n) = # {a, 1 ≤ a ≤ n : (a, n) = 1} Eigenschaften von ϕ p prim ⇒ ϕ(p) = p − 1 ⇒ ϕ(pα ) = pα − pα−1 n= 1 pα 1 · 2 pα 2 · ... · r pα r p, q prim , p 6= q Speziell: (α ∈ N) α2 αr 1 PFZ ⇒ ϕ(n) = ϕ(pα 1 ) · ϕ(p2 ) · . . . · ϕ(pr ) ⇒ ϕ(p · q) = (p − 1) · (q − 1) Eine kleine Tabelle zu ϕ n ϕ n ϕ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 . . . Eulersche ϕ-Funktion 7 2 Verteilung der Primzahlen Die Funktion π(x) Wir definieren π(x) = #{p prim : p ≤ x} (x ∈ R) . . . π(x) Einfache Überlegungen Bereits Gauss führte derartige Rechnungen durch: x π(10x ) 1 2 3 4 5 6 7 8 9 10 11 12 4 25 168 1229 9592 78498 664579 5761455 50847534 455052511 4118054813 37607912018 10x π(10x ) 2.5 4.0 6.0 8.1 10.4 12.7 15.0 17.4 19.7 22.0 24.3 26.6 x π(10x ) 1 2 3 4 5 6 7 8 9 10 11 12 4 25 168 1229 9592 78498 664579 5761455 50847534 455052511 4118054813 37607912018 10x / log 10x π(10x ) 1.09 0.87 0.86 0.88 0.91 0.92 0.93 0.94 0.95 0.95 0.96 0.96 Primzahlsatz De la Vallée-Poussin und Hadamard (1896) lim n→∞ π(n) =1 n/ log n . . . Primzahlsatz Tschebyscheff et al. Um 1856 bewies Tschebyscheff die Ungleichung 0.98 · n n < π(n) < 1.11 · log n log n 8 ∀ n hinreichend groß Primzahlen mit L Binärstellen Aufgabe: Wie groß ist die Wahrscheinlichkeit pL , dass eine ungerade Zahl mit L Stellen in der dyadischen Entwicklung prim ist? Abschätzungen für pL Es gilt (log2 bezeichnet den Logarithmus zur Basis 2) aL < pL < bL mit aL = 2 · log2 e · L − 2 − 5/2 log2 e (L − 1/2 log2 e)(L − 1 − 3/2 log2 e) bL = 2 · log2 e · L − 2 + 1/2 log2 e (L − 3/2 log2 e)(L − 1 − 1/2 log2 e) und Wir haben dabei nicht die Ungleichung von Tschebyscheff oder den Primzahlsatz verwendet, sondern die Funktion π(x) durch x/(ln x − 1/2) nach unten und durch x/(ln x − 3/2) nach oben abgeschätzt. Diese Abschätzung stammt von Rosser und Schoenfeld (1962) und gilt für x ≥ 67. L 256 384 512 640 768 1024 2048 4096 aL 0.011194 0.007480 0.005616 0.004496 0.003749 0.002813 0.001408 0.000704 bL 0.011387 0.007565 0.005664 0.004527 0.003770 0.002825 0.001411 0.000705 Anmerkung Zur Abschätzung der Wahrscheinlichkeit pL wird sonst meist der Primzahlsatz verwendet und der Wert π(x) durch die Zahl x/ log x ersetzt. Dies ist wesentlich ungenauer als die von uns gewählte Methode. 9 3 Kongruenzen Kongruente Zahlen Sei m ∈ N, m ≥ 2 fest. a, b ∈ Z a heißt kongruent b modulo m, wenn m|a − b. Die Zahl m heißt der Modul der Kongruenz. . . . a ≡ b (mod m) . . . a ≡ b(m) Anmerkungen Es gilt • a ≡ b (mod m) ⇐⇒ ∃k ∈ Z : a=b+k·m • a und b lassen bei der Division durch m denselben Rest Rechenregeln für Kongruenzen Sei a ≡ b (mod m), c ≡ d (mod m). Dann gelten folgende Rechenregeln 1. ra + sc ≡ rb + sd (mod m) ∀r, s ∈ Z 2. ac ≡ bd (mod m) 3. an ≡ bn (mod m) ∀n ∈ Z, n ≥ 0 4. f (a) ≡ f (b) (mod m) ∀f ∈ Z[X] (f ∈ Z[X]: f ist ein Polynom mit ganzzahligen Koeffizienten) 5. t ∈ Z, t|m ⇒ a ≡ b (mod |t|) 6. k ∈ Z, k 6= 0 a ≡ b (mod m) ⇔ ak ≡ bk 7. ac ≡ bc (mod m), d = (c, m) ⇒ a ≡ b (mod (mod |k|m) m d) Spezialfall: (c, m) = 1 ac ≡ bc (mod m) ⇒ a ≡ b (mod m) 8. a ≡ b (mod mi ), i = 1, . . . , r ⇔ a ≡ b (mod [m1 , . . . , mr ]) Spezialfall: (mi , mj ) = 1 für i 6= Qjr a ≡ b (mod mi ) ⇔ a ≡ b (mod i=1 mi ) 10 Restklassen modulo m Sei a ∈ Z. Alle ganzen Zahlen b, die kongruent zu a modulo m sind, fassen wir zu einer Menge zusammen, der Restklasse von a modulo m: a = {b ∈ Z : a ≡ b (mod m)} . . . Restklasse modulo m Restklassenring modulo m Die Menge der Restklassen modulo m wird mit Zm bezeichnet, Zm = {0, 1, . . . m − 1}. Wir können zwei Restklassen a und b addieren und multiplizieren, wie wir dies mit ganzen Zahlen machen (obwohl es sich hier um Mengen und nicht um Zahlen handelt!): a+b = a+b a·b = a·b (Zm , +, ·) ist ein kommutativer Ring mit Einselement, der Restklassenring modulo m . . . Restklassenring modulo m Wichtiger Spezialfall (Zm , +, ·) ist ein Körper ⇐⇒ m prim Wichtige Beziehungen Zwischen den Mengen a und den ganzen Zahlen a besteht eine wichtige Beziehung: a ≡ b (mod m) ⇐⇒ a=b ⇐⇒ a und b lassen bei der Division durch m denselben Rest Prime Restklasse modulo m Eine Restklasse a ∈ Zm mit (a, m) = 1 . . . prime Restklasse Prime Restklassengruppe Wir bezeichnen die Menge der primen Restklassen modulo m mit dem Symbol Z∗m . Dann ist (Z∗m , ·) eine kommutative Gruppe. Sie wird die prime Restklassengruppe modulo m genannt und besitzt ϕ(m) Elemente. . . . prime Restklassengruppe Wichtiger Spezialfall Wenn m = p prim ist, dann ist (Z∗p , ·) zyklisch und besitzt Elemente a, deren Potenzen ak die ganze Gruppe erzeugen: Z∗p = ak : k = 0, 1, . . . , p − 2 Ein solches Element a von Zp∗ heißt ein erzeugendes Element. 11 Primitivwurzel modulo m Eine ganze Zahl a mit den beiden Eigenschaften • (a, m) = 1 ∗ • die Restklasse a erzeugt Zm nennt man eine Primitivwurzel modulo m. . . . Primitivwurzel modulo m Diskreter Logarithmus Sei p prim und sei a eine Primitivwurzel modulo m. Für eine ganze Zahl b mit (b, m) = 1 heißt die kleinste natürliche Zahl k mit ak ≡ b (mod m) der diskrete Logarithmus von b zur Basis a modulo m. . . . diskreter Logarithmus Satz von Euler Sei a ∈ Z mit (a, m) = 1. Dann gilt aϕ(m) ≡ 1 (mod m). . . . Satz von Euler Satz von Fermat Sei p prim. Dann gilt ap−1 ≡ 1 (mod p). . . . Satz von Fermat 12 Lineare Kongruenz Unter einer linearen Kongruenz modulo m versteht man eine Kongruenz der Form ax ≡ b (mod m) Es sind alle modulo m inkongruenten Zahlen x zu bestimmen, die diese Kongruenz erfüllen. . . . Lineare Kongruenz Lösungsmethode Die Lösungsmethode sieht wie folgt aus: 1. Überprüfen die Lösbarkeitsbedingung: (a, m)|b. 2. Sei d := (a, m). Dann bestimmen wir (z.B. mit dem Euklidschen Algorithmus) eine Lösung (x1 , y1 ) der linearen diophantischen Gleichung ax − my = d. 3. Das Paar (x0 , y0 ) = (x1 · b/d, y1 · b/d) löst die diophantische Gleichung ax − my = b. Damit ist x0 eine Lösung der linearen Kongruenz. 4. Die Gesamtheit aller modulo m inkongruenten Lösungen ist gegeben durch m m m · 2, . . . , x0 + · (d − 1), wobei d = (a, m). x0 , x0 + , x0 + d d d (5) Wichtiger Spezialfall Wenn (a, m) = 1, dann ist die Lösung x0 eindeutig modulo m. Beispiel Bestimme alle Lösungen der linearen Kongruenz 111x ≡ 12 (mod 39) (6) 1. Überprüfen die Lösbarkeitsbedingung: (111, 39) = 3 | 12. 2. Mittels Euklidschem Algorithmus: 111 · 6 − 39 · 17 = 3 Das Paar (x1 , y1 ) = (6, 17) löst daher diese lineare diophantische Gleichung. b 12 = = 4. Wir setzen x0 = 4 · 6 = 24 und haben damit eine Lösung d (111, 39) x0 der linearen Kongruenz (6) gefunden. 3. Es gilt Damit kann man sofort die allgemeine Lösung der linearen Kongruenz angeben, siehe dazu die Beziehung (5): 39 39 = 37, 24 + · 2 = 50 ≡ 11 (mod 39). 3 3 Die Menge der modulo 39 inkongruenten Lösungen der linearen Kongruenz (5) lautet daher der Größe nach geordnet: 24, 24 + 11, 24, 37. 13 4 Literaturempfehlungen Bücher Es gibt viele Bücher zur Kryptographie, für fast alle Interessen und Vorkenntnisse. 1. Einführende Lehrbücher Ein sehr gut passendes Buch für Informatiker ist das Lehrbuch von Ertel[4]. Wesentlich mathematischer ist der Inhalt von Buchmann[3]. Beutelspacher[2] gibt eine angenehm lesbare Einführung in die wesentlichen Konzepte. 2. Monographien Für praktisch interessierte Leser (Zielgruppe: Informatiker und Praktiker) eignet sich Schneier [6]. Ebenfalls empfehlenswert und mathematisch gehaltvoller ist das Werk von Stinson[8]. Ich empfehle Ihnen Trappe und Washington[9]. Eine Fundgrube für konkrete Beispiele und zahlreiche Anmerkungen zu klassischen Chiffren ist das Werk von Bauer[1]. Wie bei jeder Fundgrube bedarf es einiger Mühe bei der Orientierung. Das Handbook of Applied Cryptography [5] ist ein umfassendes Standardwerk und vor allem für Spezialisten interessant. 3. Zum Schmöckern Ein besonders interessantes Buch, das man auch Laien empfehlen kann, ist das Werk von Singh [7] Literatur [1] F. L. Bauer. Decrypted Secrets. Springer, Berlin, 1997. [2] A. Beutelspacher. Kryptologie. Vieweg, Braunschweig, 1996. [3] J. Buchmann. Einführung in die Kryptographie. Springer Verlag, 1999. [4] W. Ertel. Angewandte Kryptographie. Vieweg, Braunschweig, 2001. [5] A. J. Menezes, P. C. van Oorschot, and S.A. Vanstone. Handbook of Applied Cryptography. CRC Press, Boca Raton, 1997. [6] B. Schneier. Applied Cryptography. Wiley, New York, second edition, 1996. [7] S. Singh. Geheime Botschaften. DTV München, 2001. [8] D. R. Stinson. Cryptography. Chapman and Hall/CRC Press, Boca Raton, 3rd edition, 2006. [9] W. Trappe and L. Washington. Introduction to Cryptography with Coding Theory. Pearson Prentice Hall, 2nd edition, 2006. 14