Algorithmische Kryptographie Walter Unger, Dirk Bongartz Lehrstuhl für Informatik I 28. Januar 2005 Teil I Mathematische Grundlagen Einleitung Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Endliche Körper F(q) Definitionen Legendre-Symbol und Jacobi-Symbol Detaillierte Betrachtung des kryptographisch wichtigen Falls Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Notationen • R : Menge der reellen Zahlen • Q : Menge der rationalen Zahlen • Z : Menge der ganzen Zahlen • N : Menge der natürlichen Zahlen (ohne 0) • N0 : N ∪ {0} Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 3/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Definition: • Es seien a, b ∈ Z. • a teilt b, wenn es ein d ∈ Z gibt mit b = da. • a heißt dann Teiler oder Faktor von b. • Man schreibt dann a | b. • Ist a kein Teiler von b, so schreibt man a 6 | b. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 4/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Definition: • Es seien a, b ∈ Z. • Eine ganze Zahl d ∈ N0 heißt größter gemeinsamer Teiler von a und b, falls 1. d | a und d | b. 2. Für jedes c ∈ Z mit c | a und c | b gilt c | d. • Kurzschreibweise: d = ggT(a, b) • a, b ∈ Z heißen teilerfremd, wenn ggT(a, b) = 1. Bemerkung: ggT(m, 0) = ggT(0, m) = |m| für alle m ∈ Z. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 5/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Definition: • Es seien a, b ∈ Z. • Ein m ∈ N0 heißt kleinstes gemeinsames Vielfaches von a und b, falls 1. a | m und b | m. 2. Für jedes c ∈ Z mit a | c und b | c gilt m | c. • Kurzschreibweise: m = kgV(a, b) Bemerkung: kgV(m, 0) = kgV(0, m) = 0 für alle m ∈ Z. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 6/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Definition: • Es sei m ∈ N, m > 2. • Für a, b ∈ Z setzt man: • a ≡ b (mod m) • Sprechweise: ,,a kongruent b modulo m” • genau dann wenn m | a − b . • Die Zahl m heißt der Modul. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 7/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Satz: • Sei m ∈ N, m > 2. • Die Relation ≡ (mod m) ist eine Äquivalenzrelation auf Z. • Die Äquivalenzklassen sind genau die Mengen [a]m = {a + km | k ∈ Z} für a ∈ {0, 1, . . . , m − 1}. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 8/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Definition: • [a]m heißt die Restklasse von a modulo m. • Sei x ∈ Z. • Der kleinste nicht-negative Rest von x modulo m, • d.h. a ∈ {0, 1, . . . , m − 1} mit a ≡ x (mod m), • wird mit x mod m bezeichnet. Äquivalente Definition: • Sei m ∈ N, m > 2. • Bezeichne bxc die größte ganze Zahl 6 x. Dann gilt: jx k · m. x mod m = x − m Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 9/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Definition: • Eine Zahl p ∈ N heißt Primzahl, • wenn p > 1 und wenn • p als positive Teiler nur 1 und p besitzt. • Eine Zahl n ∈ N, die keine Primzahl ist, heißt komposit. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 10/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Satz: • Jede natürliche Zahl läßt sich ausdrücken als ein Produkt von nichttrivialen Potenzen unterschiedlicher Primzahlen, n = p1e1 · p2e2 · . . . · pkek . • Bis auf die Reihenfolge der Faktoren ist diese Primfaktorzerlegung eindeutig. Bemerkung: • Bisher sind keine effizienten Algorithmen zur Primfaktorzerlegung einer Zahl p ∈ N bekannt, • nicht einmal für den einfachen Fall, daß n = p · q, p, q prim. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 11/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion 1. Ansatz: Seien a, b ∈ N mit a = Y piei , b = 16i6k Y pifi , 16i6k wobei p1 , . . . , pk Primzahlen sind und ei , fi ∈ N0 . Dann gilt Y min(e ,f ) i i pi . ggT(a, b) = 16i6k Bemerkung: Ansatz erscheint nicht effizient, da Primfaktorzerlegung von a und b notwendig. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 12/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion 2. Ansatz: Euklidischer Algorithmus Beobachtung: d | a und d | b ⇔ d | a und d | b mod a. (direkt aus Definition) EUCLID(a, b) {a, b ∈ N0 } (1) (2) (3) (4) if (a = 0) then return(b) else return(EUCLID(a, b mod a)). Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 13/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Beispielrechnung: ggT(180, 146) = ggT(146, 34) = ggT(34, 10) = = ggT(10, 4) ggT(4, 2) = = ggT(2, 0) 2. Aufwand: O((log a) · (log b)) Bit-Operationen. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 14/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Bemerkung: Eine leicht modifizierte Version des Euklidischen Algorithmus berechnet mit demselben Zeitaufwand x, y ∈ Z mit ggT(a, b) = xa + yb. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 15/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Folgerung 1: • Falls ggT(a, m) = 1, existieren x, y ∈ Z mit 1 = xa + ym , also mit xa ≡ 1 (mod m). • Die Zahl x mod m wird als das Inverse von a mod m bezeichnet. • Schreibweise: a−1 (mod m). • Formal korrekt: [a]−1 m unter Betrachtung des Restklassenrings Z/mZ. • Berechnungsaufwand analog zum Euklidischen Algorithmus. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 16/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Folgerung 2: • Falls ggT(a, m) = 1, läßt sich die Kongruenz az ≡ b (mod m) mit O((log m)2 ) Aufwand berechnen. • Um z zu finden, berechne zunächst a−1 (mod m) und multipliziere anschließend mit b (mod m). Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 17/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Satz: • Addition und Subtraktion (mod m) lassen sich mit O(log m) Bit-Operationen berechnen. Beachte, daß für 0 6 a, b < m gilt: ½ a+b falls a + b < m (a + b) mod m = a + b − m falls a + b > m. • Multiplikation (mod m) läßt sich mit O((log m)2 ) Bit-Operationen berechnen. [Schulalgorithmus] Beobachtung: ½ e−1 ae = a·a , (ae/2 )2 , Lehrstuhl für Informatik I falls e ungerade falls e gerade Walter Unger, Dirk Bongartz Algorithmische Kryptographie 18/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Beobachtung: POWER(a, e, m) {a, e, m ∈ N0 , m > 2} (1) (2) (3) (4) (5) (6) (7) if e = 0 then return(1) else if e mod 2 = 0 then t ← POWER(a, e/2, m) return(t 2 mod m) else t ← POWER(a, e − 1, m) return(a · t mod m) Aufwand: O((log e) · (log m)2 ) [statt O(e · (log m)2 ) für naiven Ansatz] Bemerkung: Zahlen werden nie größer als m2 . Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 19/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Beispielrechnung: 3 Lehrstuhl für Informatik I 31 Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion mod 43 30 = (3 · 3 ) mod 43 = (3 · 9 ) mod 43 = (3 · 9 · 9 ) mod 43 = (3 · 9 · 81 ) mod 43 = (3 · 9 · (−5) ) mod 43 = (−135 · 5 ) mod 43 = (−6 · 5 ) mod 43 = (−6 · 125 ) mod 43 = (−6 · (−4) ) mod 43 = (−6 · 16) mod 43 = (−96) mod 43 = (−10) mod 43 = 33. 15 14 7 7 6 6 2 2 Walter Unger, Dirk Bongartz Algorithmische Kryptographie 20/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Definition: • ϕ(1) := 1. • Für m > 2 definiere ϕ(m) := |{a ∈ Z | 0 6 a 6 m − 1; ggT(a, m) = 1}| Satz: 1. Für jede Primzahl p und jedes b ∈ N ist ϕ(p b ) = p b − p b−1 . 2. Sind m, n ∈ N teilerfremd, so gilt ϕ(m · n) = ϕ(m) · ϕ(n). Folgerung: ϕ(m) ist leicht zu berechnen, falls die Primfaktorzerlegung von m bekannt ist. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 21/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Satz [Euler]: Es seien m ∈ N und a ∈ Z teilerfremd. 1. Dann ist aϕ(m) ≡ 1 (mod m). Satz [Fermat]: Es sei p eine Primzahl. 1. Für jedes a ∈ Z mit p 6 | a ist ap−1 ≡ 1 (mod p). 2. Für jedes a ∈ Z ist ap ≡ a (mod p). Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 22/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Satz [Chinesischer Restsatz]: • Es seien m1 , m2 , . . . , mn ∈ N paarweise teilerfremd, • es seien a1 , a2 , . . . , an ∈ Z; Qn • es sei M := i=1 mi . • Dann existiert ein eindeutig bestimmtes x0 ∈ {0, 1, . . . , M − 1} mit x0 ≡ a1 (mod m1 ) x0 ≡ a2 (mod m2 ) .. . x0 ≡ an (mod mn ) • Es gilt: Lehrstuhl für Informatik I = {x ∈ Z | x ≡ ai (mod mi ) für i = 1, 2, . . . , n} . {x ∈ Z | x ≡ x0 (mod M)} Walter Unger, Dirk Bongartz Algorithmische Kryptographie 23/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Algorithmus: 1. Berechne M = m1 · m2 · . . . · mn . 2. Für 1 6 i 6 n: Berechne Mi = M mi . 3. Für 1 6 i 6 n: Berechne Ni = Mi−1 (mod mi ). {z.B. mit Euklidischem Algorithmus. Beachte: ggT(Mi , mi ) = 1.} 4. Für 1 6 i 6 n: Berechne ei = Mi · Ni . {Nun gilt für 1 6 i 6 n: ei = Mi · Ni ≡ 1 (mod mi ). ei = Mi · Ni ≡ 0 · Ni = 0 (mod mj ) , falls j 6= i.} ¢ ¡P n 5. Berechne x0 = i=1 ei ai mod M. {Nun gilt für 1 6 i 6 n: x0 ≡ ei ai ≡ ai (mod mi ).} Aufwand: O((log M)2 ) Bit-Operationen. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 24/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bestimmung des größten gemeinsamen Teilers Effiziente Berechnung von ae mod m Eulersche ϕ-Funktion Definition: Es sei K 6= ∅ eine Menge mit 2 Verknüpfungen (a, b) 7→ a + b : K × K → K und (a, b) 7→ a · b : K × K → K . K = (K , +, ·) heißt Körper, wenn gilt: 1. (K , +) ist abelsche Gruppe (d.h. + ist assoziativ, kommutativ, neutrales Element bzgl. + ist 0K . Jedes Element besitzt ein Inverses bzgl. +). 2. (K , ·) ist kommutatives Monoid (d.h. · ist assoziativ, kommutativ, neutrales Element bzgl. · ist 1K ). 3. Es gilt das folgende Distributivgesetz: Für alle a, b, c ∈ K ist a · (b + c) = a · b + a · c. 4. 1K 6= 0K . 5. Jedes Element außer 0K besitzt ein Inverses bzgl. ·. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 25/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Endliche Körper • F(q): Endlicher Körper mit q Elementen, wichtig in der Kryptographie • Bekannt: q = p h für eine Primzahl p und h ∈ N. • Eine geeignete Darstellung der Elemente von F(q) wird später behandelt. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 26/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Definition: 1. Für einen Körper K heißt K ∗ := K \{0} die Einheitengruppe von K . Die Einheitengruppe von F(q) wird mit F ∗ (q) bezeichnet. 2. Ein Element g ∈ F ∗ (q) heißt ein erzeugendes Element (bzw. Generator) von F ∗ (q), g.d.w. für jedes a ∈ F ∗ (q) existiert ein x ∈ Z mit g x = a (in F ∗ (q)). 3. Für ein Element a ∈ F ∗ (q) heißt ord(a) := min{r ∈ N | ar = 1} die Ordnung von a. Bemerkung: 1. Es gibt genau ϕ(q − 1) Generatoren g . 2. Die Zahl x heißt auch der diskrete Logarithmus von a zur Basis g . 3. Es ist bekannt, daß die Berechnung des diskreten Logarithmus (wenn g , a und q bekannt sind) so schwer ist wie Faktorisierung. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 27/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Definition: • Sei p Primzahl, p > 2. • Sei a ∈ F ∗ (p). • Falls ein x ∈ F ∗ (p) existiert mit a = x 2 , so heißt a quadratischer Rest modulo p. • Ansonsten heißt a quadratischer Nichtrest modulo p. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 28/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Bemerkungen: • Sei p Primzahl, p > 2. • Da F ∗ (p) ∼ (Z/pZ)∗ , ist a mit 1 6 a 6 p − 1 ein quadratischer Rest modulo p, g.d.w. die Kongruenz x 2 ≡ a (mod p) hat eine Lösung x. • x heißt auch Quadratwurzel von a modulo p. Mit x ist auch −x Quadratwurzel von a modulo p. • Weiter gibt es dann (p − 1)/2 quadratische Reste und (p − 1)/2 quadratische Nichtreste modulo p. • Die quadratischen Reste lassen sich berechnen als (i 2 ) mod p für 1 6 i 6 (p − 1)/2. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 29/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Beispiel: p=7 ord(1) = 1 ord(2) = 3 ord(3) = 6 (21 = 2, 22 = 4, 23 = 1) (31 = 3, 32 = 2, 33 = 6, 34 = 4, 35 = 5, 36 = 1) ord(4) = 3 ord(5) = 6 ord(6) = 2 Erzeugende Elemente: 3,5 Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 30/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Nachtrag: • F ∗ (q) ist zyklisch. • Es gibt ϕ(q − 1) erzeugende Elemente in F ∗ (q). • Die Aussage, daß jedes Element in F ∗ (p) erzeugendes Element ist, ist falsch! (s.o. für p = 7) • Ein erzeugendes Element in F ∗ (p) heißt auch Primitivwurzel modulo p. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 31/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Definition: Sei a ∈ Z, p Primzahl, p > 2. Das Legendre-Symbol ( pa ) ist definiert als µ ¶ a = p 0, falls p|a 1, falls a quadratischer Rest modulo p [∃x : x 2 ≡ a −1, falls a quadratischer Nichtrest modulo p (mod p)] Theorem: [Eulersches Kriterium] Sei a ∈ Z, p Primzahl, p > 2. Dann gilt: ( pa ) ≡ a(p−1)/2 (mod p). Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 32/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Theorem: Seien p, q Primzahlen, p, q > 2. Seien a, b ∈ Z. Dann gilt: 1. ( p1 ) = 1 (p−1)/2 2. ( −1 ) = (−1) = p ½ 1, falls p ≡ 1 (mod 4) −1, falls p ≡ 3 (mod 4) a b 3. ( ab ) = ( ) · ( p p p) 4. ( pa ) = ( pb ), falls a ≡ b (mod p) 5. a2 (p) = 1, falls p 6 | a 6. ( p2 ) = (−1)(p 2 −1)/8 = ½ 1, falls p ≡ 1, 7 (mod 8) −1, falls p ≡ 3, 5 (mod 8) 7. Quadratisches Reziprozitätsgesetz: ( −( pq ), falls p ≡ q ≡ 3 (mod 4) (p−1) (q−1) ( qp ) = (−1) 2 2 · ( pq ) = ( pq ), sonst Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 33/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Erweiterung Ziel: Effiziente Berechnung von ( pa ). Hierzu: Verallgemeinerung des Legendre-Symbols. Definition: • Sei a ∈ Z und n ∈ N ungerade. • Sei n = p1e1 . . . pkek die Primfaktorzerlegung von n. • Dann ist das Jacobi-Symbol ( na ) definiert als: ³a´ n Lehrstuhl für Informatik I = µ a p1 Walter Unger, Dirk Bongartz ¶e1 · ... · µ a pk ¶ek . Algorithmische Kryptographie 34/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Theorem: Seien m, n ∈ N ungerade. Seien a, b ∈ Z. Dann gilt: 1. ( 1a ) = 1 a b 2. ( ab ) = ( ) · ( n n n) a 3. ( mn ) = ( ma ) · ( na ) 4. ( na ) = ( bn ), falls a ≡ b (mod n) 5. ( n1 ) = 1 6. ( −1 n ) = (−1) (n−1)/2 7. ( n2 ) = (−1)(n 2 −1)/8 ½ 1, falls n ≡ 1 (mod 4) −1, falls n ≡ 3 (mod 4) ½ 1, falls n ≡ 1, 7 (mod 8) −1, falls n ≡ 3, 5 (mod 8) = = 8. Quadratisches Reziprozitätsgesetz: ( mn ) = (−1) Lehrstuhl für Informatik I (m−1) (n−1) 2 2 · ( mn ) Walter Unger, Dirk Bongartz Algorithmische Kryptographie 35/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Bemerkung: • ( na ) = 1 6⇒ a ist quadratischer Rest modulo p. 2 • sp.: ( 15 ) = ( 23 ) · ( 25 ) = (−1) · (−1) = 1, aber 6 ∃x : x 2 ≡ 2 (mod 15). Aufgabe: Berechne ( na ) für a ∈ Z, n ∈ N ungerade. Algorithmus: Falls a < 0 : ( na ) = (−1)(n−1)/2 · ( −a n ) n ) Falls a > n : ( na ) = ( a mod n Berechne ( na ) für 0 < a < n. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 36/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Beobachtung: Seien a ∈ Z, n ∈ N ungerade mit 0 < a < n. 1. Sei a = 2e · n0 , n0 ungerade. Dann gilt: µ e 0 ¶ µ ¶e µ 0 ¶ ³a´ n 2 ·n 2 · = = n n n n = = 2. ( n0 ) = ½ Lehrstuhl für Informatik I (−1) (−1) 2 e· n 8−1 e· n 2 −1 8 · (−1) · (−1) (n−1) (n0 −1) 2 2 n−1 n0 −1 2 2 ³n´ · 0 ¶ µ n 0 n mod n 0 0 mit 0 < n mod n · < n n0 1, falls n = 1 0, sonst Walter Unger, Dirk Bongartz Algorithmische Kryptographie 37/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Algorithmus: JACOBI(a, n) {0 6 a < n; n ungerade} 1) t ← 1 2) while (a 6= 0) do 3) while (a mod 2 = 0) do 4) a ← a/2 5) if (n mod 8 = 3) or (n mod 8 = 5) then t ← −t 6) interchange(a, n) 7) if (a mod 4 = 3) and (n mod 4 = 3) then t ← −t 8) a ← a mod n 9) if (n = 1) then return(t) else return(0) Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 38/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Beispiel: „ −2819 4177 « = = = = « „ « „ « „ « „ « „ « „ « 2819 2819 4177 1358 2 679 · = = = = · 4177 4177 4177 2819 2819 2819 2819 „ « „ « „ « „ « „ « „ « 679 2819 103 679 61 103 − =+ = =− =− =− 2819 679 679 103 103 61 „ « „ «„ « „ « „ « „ « „ « 42 2 21 61 19 21 2 − =− = = = = 61 61 61 21 21 19 19 −1 „ −1 (Da 4177 Primzahl, ist also −2819 quadratischer Nichtrest modulo 4177.) Aufwand: O((log a) · (log n)). (Analyse analog zum Euklidischen Algorithmus) Beachte: ¡a¢ Berechnung von n erfolgt ohne Faktorisierung von a oder n (außer dem Herausziehen von 2er-Potenzen). Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 39/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Definitionen Legendre-Symbol und Jacobi-Symbol Bemerkung: 1. JACOBI(a, n) stellt einen effizienten Test dar zur Bestimmung, ob a quadratischer Rest modulo p, falls p Primzahl. 2. Dies liefert jedoch kein effizientes Verfahren, um eine Quadratwurzel von a modulo p (d.h. x mit x 2 ≡ a (mod p)) zu berechnen. (Es gibt jedoch ein effizientes probabilistisches Verfahren hierzu.) 3. Man kennt keinen effizienten Test zur Bestimmung, ob a quadratischer Rest modulo n, falls n beliebig. (selbst wenn n = p · q) Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 40/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Satz n = p · q, p, q prim, p, q > 2, p 6= q. Es gilt: • a quadratischer Rest mod n ⇔ a quadratischer Rest mod p ∧ a quadratischer Rest mod q. ³ ´ ³ ´ ³ ´ ³ ´ ³ ´ ¡a¢ a a a a • n = +1 ⇔ p · q = +1 ⇔ p = q = +1 ∨ pa = ³ ´ a q = −1. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 41/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Satz Man kann zeigen: • Für ¡genau die Hälfte der Zahlen a mit 0 < a < n und ggT(a, n)=1 ¢ gilt na = +1. ¡a¢ • Für die andere Hälfte gilt: n = −1. ¡a¢ • Genau die Hälfte der Zahlen, die n = +1 erfüllen, sind quadratische Reste modulo n, und zwar genau die, für die µ ¶ µ ¶ a a = = +1. p q Die andere Hälfte, d.h. diejenigen, für die µ ¶ µ ¶ a a = = −1 , p q sind quadratische Nichtreste modulo n. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 42/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bemerkung: • Es ist kein effizientes Verfahren bekannt, um die beiden obigen Fälle zu unterscheiden, • d.h. um zu bestimmen, ob a quadratischer Rest modulo n ist, es sei denn, man kennt die Faktorisierung von n. • (In letzterem Falle verwendet man 1.) Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 43/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Beispiel: n = 15, p = 3, q = 5. a mit ³ ´ a ggT (a, n) = 1 p 1 2 4 7 8 11 13 14 Lehrstuhl für Informatik I + − + + − − + − a quadratischer ³ ´ a q ¡a¢ n Rest mod n + − + − − + − + + + + − + − − − + − + − − − − − Walter Unger, Dirk Bongartz Algorithmische Kryptographie 44/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Annahme: Man weiß, daß a, 0 < a < n, quadratischer Rest modulo n. D.h. ∃x : x 2 ≡ a (mod n) Sehr wichtige Aufgabe in der Kryptographie: Finde x, d.h. eine Quadratwurzel von a modulo n. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 45/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Folgerungen: • n = p · q, p, q prim, p, q > 2, p 6= q. • a quadratischer Rest modulo n • ⇒ x 2 ≡ a (mod n) • ⇒ p · q = n | (x 2 − a) • ⇒ p | (x 2 − a) ∧ q | (x 2 − a) • ⇒ x 2 ≡ a (mod p) ∧ x 2 ≡ a (mod q) • ⇒ a quadratischer Rest mod p und q • ⇒ ∃y , z : (±y )2 ≡ a (mod p) ∧ (±z)2 ≡ a (mod q) Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 46/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Bemerkung: • y und z können probabilistisch in Polynomzeit berechnet werden. • ⇒ Für x muß gelten: x ≡ ±y (mod p) ∧ x ≡ ±z (mod q). • Der chinesische Restsatz liefert 4 Quadratwurzeln von a modulo n. • (z.B.: ∃ eindeutig bestimmtes x ∈ {0, 1, . . . , n − 1} mit x ≡ y (mod p) ∧ x ≡ z (mod q) • ⇒ x 2 ≡ y 2 ≡ a (mod p) ∧ x 2 ≡ z 2 ≡ a (mod q) • ⇒ p | (x 2 − a) ∧ q | (x 2 − a) • ⇒ n = p · q | (x 2 − a) (da p, q teilerfremd) • ⇒ x 2 ≡ a (mod n) • ⇒ x Quadratwurzel modulo n) • Es gilt: Die 4 Quadratwurzeln lassen sich schreiben als ±u, ±w , wobei u 6≡ ±w (mod n). u und w wie oben werden als unterschiedliche Quadratwurzeln modulo n bezeichnet. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 47/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls 2 wichtige Fakten für die Kryptographie: 1. Die Kenntnis zweier unterschiedlicher Quadratwurzeln u und w derselben Zahl a modulo n erlaubt die Faktorisierung von n. (D.h. die Kenntnis eines quadratischen Restes a modulo n erlaubt probabilistisch die Faktorisierung von n in Polynomzeit.) 2. Falls p ≡ q ≡ 3 (mod 4), so besitzen zwei unterschiedliche Quadratwurzeln u und w derselben Zahl a modulo n verschiedene Jacobi-Symbole: ³w ´ ³u ´ =− . n n Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 48/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls 1. Beweis: 1. Es gilt: (u + w )(u − w ) = u 2 − w 2 ≡ a − a = 0 (mod n). 2. ⇒ n | (u + w ) · (u − w ) 3. Da u 6≡ ±w (mod n), gilt: n 6 | (u + w ) ∧ n 6 | (u − w ). 4. ⇒ ggT(u + w , n) ∈ {p, q} (Läßt sich effizient berechnen mittels Euklidischem Algorithmus.) Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 49/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls 2.Beweis: 1. Es gilt: u 2 ≡ a ≡ w 2 (mod n). ⇒ ⇒ 2. u 2 ≡ w 2 (mod p) ∧ u 2 ≡ w 2 (mod q) (i) u ≡ w (mod p) ∧ u ≡ w (mod q) oder (ii) u ≡ w (mod p) ∧ u ≡ −w (mod q) oder (iii) u ≡ −w (mod p) ∧ u ≡ w (mod q) oder (iv ) u ≡ −w (mod p) ∧ u ≡ −w (mod q) 3. Da u 6≡ ±w (mod n), gilt (ii) oder (iii). Da p ≡ q ≡ 3 (mod 4), folgt: ³u ´ µu ¶ µu ¶ = · n p q ³ ´ ³ ´ ³ ´ ³ ´ ³ ´ ¡w ¢ w −1 w wp · −w = p · q · q =(−1) · n , falls u ≡ w (mod p) q ³ ´ ³ ´ ³ ´ ³ ´ ³ ´ = −w · w = −1 · w · w =(−1) · ¡ w ¢, falls u ≡ −w (mod p p q p p q n Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 50/1009 Einleitung Endliche Körper F(q) Detaillierte Betrachtung des kryptographisch wichtigen Falls Literatur 1. H. Delfs, H. Knebl: Introduction to Cryptography. Springer 2002. (Appendix A) 2. A. Steger: Diskrete Strukturen 1. Springer 2001. 3. S. Y. Yan: Number Theory for Computing. Springer 2000. 4. Eric Bach, Jeffrey Shallit: Algorithmic Number Theory, Volume I: Efficient Algorithms. MIT Press, 1996. 5. Friedrich Ischebeck: Einladung zur Zahlentheorie. B.I. Wissenschaftsverlag, 1992. 6. Neal Koblitz: A Course in Number Theory and Cryptography. Springer Verlag, 1987. Lehrstuhl für Informatik I Walter Unger, Dirk Bongartz Algorithmische Kryptographie 51/1009