Algorithmische Kryptographie Kapitel 6 Public-Key-Systeme: Rabin Walter Unger Lehrstuhl für Informatik 1 30. Januar 2009 Das System nach Rabin Grundlagen Körper Endliche Körper Definitionen Quadratwurzel Legendre-Symbol und Jacobi-Symbol Detaillierte Betrachtung des kryptographisch wichtigen Falls Rabin Verfahren Aufbau Entschlüsselung Sicherheitsaspekte Unterschriften mit dem System von Rabin Das System nach Rabin Grundlagen (6:1) Z Rabin Verfahren Walter Unger Idee n =p·q ◮ Der Algorithmus nutzt auch die Grundidee, daß die Multiplikation von Primfaktoren leicht, das Faktorisieren aber ein schweres Problem ist. ◮ Schweres Problem: Faktorisieren von n. ◮ Schweres Problem: Bestimmen der diskreten Quadratwurzel. ◮ Schweres Problem: Löse x 2 ≡ c mod n. ◮ Leichtes Problem: Löse x 2 ≡ c mod n mit Hilfe von p, q ◮ Wichtig: Arbeite mit großen Zahlen. Das System nach Rabin Körper Grundlagen (6:2) Walter Unger 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. ·. Z Rabin Verfahren Das System nach Rabin Endliche Körper Grundlagen (6:3) Z Rabin Verfahren Walter Unger 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. Das System nach Rabin Definitionen Grundlagen (6:4) Z Rabin Verfahren Walter Unger 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. Das System nach Rabin Definitionen Grundlagen (6:5) Walter Unger 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 Z Rabin Verfahren Das System nach Rabin Definitionen Grundlagen (6:6) Z Rabin Verfahren Walter Unger Aussagen und Definitionen ◮ 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. Das System nach Rabin Quadratwurzel Grundlagen (6:7) Z Rabin Verfahren Walter Unger 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. Das System nach Rabin Quadratwurzel Grundlagen (6:8) Z Rabin Verfahren Walter Unger 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. Das System nach Rabin Legendre-Symbol und Jacobi-Symbol Grundlagen (6:9) Walter Unger Definition Bemerkung: a quadratischer Rest modulo p, falls ∃x : x 2 ≡ a (mod p). 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 −1, falls a quadratischer Nichtrest modulo p Theorem: [Eulersches Kriterium] Sei a ∈ Z, p Primzahl, p > 2. Dann gilt: ( pa ) ≡ a(p−1)/2 (mod p). Z Rabin Verfahren Das System nach Rabin Grundlagen Legendre-Symbol und Jacobi-Symbol (6:10) Walter Unger Theorem Seien p, q Primzahlen, p, q > 2. Seien a, b ∈ Z. Dann gilt: 1. ( p1 ) = 1 (p−1)/2 = 2. ( −1 p ) = (−1) a b 3. ( ab p ) = (p) · (p) ½ 1, falls p ≡ 1 (mod 4) −1, falls p ≡ 3 (mod 4) 4. ( pa ) = ( pb ), falls a ≡ b (mod p) 5. a2 (p) = 1, falls p 6 | a 6. ( p2 ) = (−1)(p 2 −1)/8 = ½ Z Rabin Verfahren 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 Das System nach Rabin Legendre-Symbol und Jacobi-Symbol Grundlagen (6:11) Walter Unger Erweiterung Hier: 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 = Ziel: Effiziente Berechnung von ( na ). µ a p1 ¶e1 · ... · Z Rabin Verfahren µ a pk ¶ek . Das System nach Rabin Grundlagen Legendre-Symbol und Jacobi-Symbol (6:12) Walter Unger 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 (n−1)/2 ) = (−1) = 6. ( −1 n 7. ( n2 ) (n2 −1)/8 = (−1) = ½ ½ 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) (m−1) (n−1) 2 2 · ( mn ) Z Rabin Verfahren Das System nach Rabin Legendre-Symbol und Jacobi-Symbol Grundlagen (6:13) Walter Unger Bemerkung: ◮ ( na ) = 1 6⇒ a ist quadratischer Rest modulo p. ◮ 2 sp.: ( 15 ) = ( 32 ) · ( 52 ) = (−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. Z Rabin Verfahren Das System nach Rabin Grundlagen Legendre-Symbol und Jacobi-Symbol (6:14) Walter Unger Beobachtung: Seien a ∈ Z, n ∈ N ungerade mit 0 < a < n. 1. Sei a = 2e · n′ , n′ ungerade. Dann gilt: µ e ′ ¶ µ ¶e µ ′ ¶ ³a´ n 2 ·n 2 · = = n n n n = = 2. ( n0 ) = ½ e· n 2 −1 ³n´ · ′ n ¶ µ ′ ′ 2 n−1 n −1 n mod n e· n 8−1 2 2 · (−1) · (−1) n′ mit 0 < n mod n′ < n′ 6 a < n. (−1) 1, falls n = 1 0, sonst 8 · (−1) (n−1) (n′ −1) 2 2 Z Rabin Verfahren Das System nach Rabin Legendre-Symbol und Jacobi-Symbol Grundlagen (6:15) Z Rabin Verfahren Walter Unger 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) Das System nach Rabin Grundlagen Legendre-Symbol und Jacobi-Symbol (6:16) Walter Unger Beispiel: „ −2819 4177 « = = = = « „ « „ « „ « „ « „ « „ « 2819 2819 4177 1358 2 679 · = = = = · 4177 4177 4177 2819 2819 2819 2819 « „ « „ « „ « „ « „ « „ 2819 103 679 61 103 679 =+ = =− =− =− − 2819 679 679 103 103 61 „ «„ « „ « „ « „ « „ « „ « 2 21 61 19 21 2 42 =− = = = = − 61 61 61 21 21 19 19 −1 „ Z Rabin Verfahren −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). Das System nach Rabin Legendre-Symbol und Jacobi-Symbol Grundlagen (6:17) Z Rabin Verfahren Walter Unger Bemerkung: 1. JACOBI(a, n) stellt einen effizienten Test dar zur Bestimmung, ob a quadratischer Rest modulo n, falls n 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. 3. Es gibt jedoch ein effizientes probabilistisches Verfahren hierzu. 4. Man kennt aber keinen effizienten Test zur Bestimmung, ob a quadratischer Rest modulo n, falls n beliebig. (selbst wenn n = p · q) Das System nach Rabin Detaillierte Betrachtung des kryptographisch wichtigen Falls Grundlagen (6:18) Walter Unger Satz n = p · q, p, q prim, p, q > 2, p 6= q. Es gilt: ◮ ◮ ◮ ◮ ◮ Z Rabin Verfahren a quadratischer Rest mod n ⇔ a quadratischer Rest mod p ∧ a quadratischer Rest mod q. ¡a¢ n = +1 ³ ´ ³ ´ ⇔ pa · qa = +1 ³ ´ ³ ´ ³ ´ ³ ´ ⇔ pa = qa = +1 ∨ pa = qa = −1. Das System nach Rabin Detaillierte Betrachtung des kryptographisch wichtigen Falls Grundlagen (6:19) Walter Unger 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. Z Rabin Verfahren Das System nach Rabin Detaillierte Betrachtung des kryptographisch wichtigen Falls Grundlagen (6:20) Z Rabin Verfahren Walter Unger 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.) Das System nach Rabin Grundlagen Detaillierte Betrachtung des kryptographisch wichtigen Falls (6:21) Walter Unger Beispiel: n = 15, p = 3, q = 5. a mit ³ ´ a ggT (a, n) = 1 p 1 2 4 7 8 11 13 14 + − + + − − + − Z Rabin Verfahren a quadratischer ³ ´ a q ¡a¢ n Rest mod n + − + − − + − + + + + − + − − − + − + − − − − − Das System nach Rabin Grundlagen Detaillierte Betrachtung des kryptographisch wichtigen Falls (6:22) Walter Unger 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. Z Rabin Verfahren Das System nach Rabin Detaillierte Betrachtung des kryptographisch wichtigen Falls Grundlagen (6:23) 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 | (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) Z Rabin Verfahren Walter Unger Das System nach Rabin Grundlagen Detaillierte Betrachtung des kryptographisch wichtigen Falls (6:24) Walter Unger 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) ◮ ⇒ 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 Z Rabin Verfahren (mod n). u und w wie oben werden als unterschiedliche Quadratwurzeln modulo n bezeichnet. Das System nach Rabin Detaillierte Betrachtung des kryptographisch wichtigen Falls Grundlagen (6:25) Z Rabin Verfahren Walter Unger 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 Das System nach Rabin Detaillierte Betrachtung des kryptographisch wichtigen Falls Grundlagen (6:26) Z Rabin Verfahren Walter Unger 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.) Das System nach Rabin Grundlagen Detaillierte Betrachtung des kryptographisch wichtigen Falls (6:27) Walter Unger 2.Beweis: 1. Es gilt: u 2 ≡ a ≡ w 2 (mod n). ⇒ ⇒ 2. (i) oder (ii) oder (iii) oder (iv ) u 2 ≡ w 2 (mod p) ∧ u 2 ≡ w 2 (mod q) u ≡ w (mod p) ∧ u ≡ w (mod q) u ≡ w (mod p) ∧ u ≡ −w (mod q) u ≡ −w (mod p) ∧ u ≡ w (mod q) 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: ◮ falls u ≡ w (mod p) ∧ u ≡ −w (mod q) gilt: „ « u n ◮ „ « „ « „ « „ «„ « „ « „ « „ « u u w −w w −1 w w = · = · · · (−1) · p q p q p q q n falls u ≡ −w (mod p) ∧ u ≡ w (mod q) gilt: „ « u n Z Rabin Verfahren „ « „ « „ « „ «„ « „ « „ « „ « u u −w w −1 w w w = · = · · · (−1) · p q p q p p q n Das System nach Rabin Aufbau Grundlagen (6:28) Walter Unger System von Rabin ◮ ◮ Bei dem System von Rabin wird als Einwegfunktion verwendet: ZZn → ZZn mit m 7→ m2 mod n. Aufbau: ◮ ◮ ◮ Z Rabin Verfahren Man bestimmt zwei große Primzahlen p, q mit p, q ≡ 3 (mod 4). Dazu testet man Zahlen der Form 4k + 3 auf die Primzahleigenschaft. Dann setzt man n = p · q. ◮ Die Verschlüsselungsfunktion ist EnRabin : ZZn → ZZn mit EnRabin (m) 7→ m2 mod n. ◮ Die Entschlüsselungsfunktion ist DnRabin : ZZn → ZZn . Das System nach Rabin Entschlüsselung Grundlagen Z Rabin Verfahren (6:29) Walter Unger System von Rabin n = p · q, p, q ≡ 3 (mod 4) EnRabin (m) 7→ m2 DnRabin : ZZn → ZZn ◮ Zur Entschlüsselung wird der Chinesische Restklassensatz verwendet. ◮ Nach diesem gibt es eine Funktion ϕ : Z n → Z p × Z q mit c 7→ (c mod p, c mod q) mit der die verschlüsselte Nachricht zerlegt werden kann. ◮ Nun können die Wurzeln modulo p bzw. q bestimmt werden. ◮ Je nachdem, ob c eins der p oder q teilt, ergeben sich 2 oder 4 Wurzeln. ◮ Diese sind dann Kandidaten für den verschlüsselten Text. Das System nach Rabin Entschlüsselung (6:30) Grundlagen Walter Unger System von Rabin n = p · q, ◮ Z Rabin Verfahren Um diese dann noch eindeutig zu identifizieren, gibt es unter anderen zwei Möglichkeiten: p, q ≡ 3 (mod 4) EnRabin (m) 7→ m2 DnRabin : ZZn → ZZn 1. Falls die verschlüsselte Nachricht aus einer natürlichen Sprache ist, kann man die richtige Botschaft direkt erkennen. 2. Falls die verschlüsselte Nachricht nicht aus einer natürlichen Sprache ist, dann werden zusätzliche Informationen zur Unterscheidung der Wurzeln bei der Übertragung zugefügt, ¡m¢ z.B. n und das erste Bit der Nachricht. Das System nach Rabin Sicherheitsaspekte Grundlagen (6:31) Walter Unger Sicherheitsaspekte: n = p · q, p, q ≡ 3 (mod 4) EnRabin (m) 7→ m2 DnRabin : ZZn → ZZn ◮ Das System von Rabin ist so sicher, wie die Faktorisierung schwer ist. ◮ Rabin zugreifen kann, so kann Falls man auf den Algorithmus Dp,q man n faktorisieren. Dazu gehe man wie folgt vor. ◮ ◮ ◮ ◮ ◮ ◮ Wähle m mit 0 < m < n. Setze c := m2 mod n. Rabin Setze y := Dp,q (c). Falls m 6≡ ±y (mod n) kann n faktorisiert werden. beachte: ◮ ◮ ◮ n|u 2 − v 2 = (u + v )(u − v ) n 6 |(u + v ) und n 6 |(u − v ) Teiler von n: ggT(u + v , n) Z Rabin Verfahren Das System nach Rabin Unterschriften mit dem System von Rabin Grundlagen (6:32) Z Rabin Verfahren Walter Unger Unterschriften ◮ Um eine Unterschrift mit dem System von Rabin zu erzeugen, verwendet man eine Hashfunktion h : M × {0, 1}k → ZZn mit (m, x) 7→ h(m, x). ◮ Dazu wählt man zufällig x bis h(m, x) ein Quadrat in ZZn ist. ◮ Danach bestimmt man die Wurzel y von h(m, x). ◮ Die Unterschrift ist dann (m, x, y ). ◮ Diese Unterschrift wird durch h(m, x) ≡ y 2 (mod n) getestet. Das System nach Rabin Unterschriften mit dem System von Rabin Grundlagen (6:33) Fragen ◮ Wie ist das System von Rabin aufgebaut? ◮ Wie wird beim System von Rabin entschlüsselt? ◮ Wie sicher ist das System von Rabin? Z Rabin Verfahren Walter Unger