Seminar Codes und Kryptographie — WS 2003 Ein RSA verwandtes, randomisiertes Public Key Kryptosystem Kai Gehrs Übersicht 1. Motivation 2. Das Public Key Kryptosystem 2.1 p-Sylow Untergruppen und eine spezielle logarithmische Funktion 2.2 Protokoll und Korrektheit des Verfahrens 3. Sicherheitsbeweise 4. Literatur zum Vortrag 1. Motivation – Wesentliche Eigenschaften • RSA verwandt (Berechnung modulo n = p2 · q statt n = p · q für große Primzahlen p, q) • Randomisierte Verschlüsselung möglich • Effizienz beruht auf schnellem modularen Potenzieren • Sicherheit beruht auf Annahme, dass Faktorisierung nicht effizient möglich ist 2.1 p-Sylow Untergruppen Lemma und Definition 2.1. Die Menge Γ := {x ∈ Z?p2 | x ≡ 1 mod p} ist mit der von Zp2 induzierten Multiplikation eine Gruppe, die p-Sylow Untergruppe von Z?p2 . Es gilt: |Γ| = p. 2.1 p-Sylow Untergruppen Lemma und Definition 2.1. Die Menge Γ := {x ∈ Z?p2 | x ≡ 1 mod p} ist mit der von Zp2 induzierten Multiplikation eine Gruppe, die p-Sylow Untergruppe von Z?p2 . Es gilt: |Γ| = p. Beweis. (mit Untergruppenkriterium) • 1 mod p2 ∈ Γ (klar!) • y ∈ Γ ⇒ 1 = y · y −1 mod p2 und 1 = y · y −1 mod p. Es folgt: −1 mod p) = y −1 mod p. 1 = (y mod p) ·(y | {z } ≡1 mod p 2.1 p-Sylow Untergruppen • Bleibt zu zeigen: |Γ| = p. Es gilt: 1, p + 1, 2 · p + 1, . . . , (p − 1) · p + 1 sind kongruent 1 modulo p. Q.E.D. 2.1 Eine spezielle logarithmische Funktion Lemma und Definition 2.2. Definiere L : (Γ, ·) → (Zp, +) durch x−1 L(x) := p L ist wohldefiniert, mod p. L(x · y) = L(x) + L(y) mod p für alle x, y ∈ Γ und L ist bijektiv. 2.1 Eine spezielle logarithmische Funktion Beweis. • L ist wohldefiniert: x ≡ 1 mod p ⇒ x−1 p ∈ N. 2.1 Eine spezielle logarithmische Funktion Beweis. • L ist wohldefiniert: x ≡ 1 mod p ⇒ x−1 p ∈ N. x·y−1 L(x · y) = mod p p x−1 x−1 y−1 = · (y − 1) + + mod p p p p = L(x) · (y − 1)} +L(x) + L(y) mod p | {z ≡0 mod p 2.1 Eine spezielle logarithmische Funktion Beweis. • L ist wohldefiniert: x ≡ 1 mod p ⇒ x−1 p ∈ N. x·y−1 L(x · y) = mod p p x−1 y−1 x−1 = · (y − 1) + + mod p p p p = L(x) · (y − 1)} +L(x) + L(y) mod p | {z ≡0 mod p • Injektivität: L(x) = 0 mod p ⇔ x ≡ 1 mod p2 • Surjektivität: Zu y ∈ Zp wähle x := p · y + 1. Q.E.D. 2.1 Eine spezielle logarithmische Funktion Bemerkung 2.3. Ist g ∈ Zp2 ein erzeugendes Element von Z?p2 , so gilt: L(g p−1) 6= 0 mod p und g p−1 ∈ Γ. 2.2 Das Protokoll des Kryptosystems Berechnung der Schlüssel. 1. Wähle Primzahlen p, q ∈ N mit |p| = |q| = k und setze n := p2 · q. 2. Wähle g ∈R Z?n, so dass gp := g p−1 mod p2 Ordnung p hat. 3. Berechne h := g n mod n. 4. Öffentlicher Schlüssel: (n, g, h, k) Privater Schlüssel: (p, q) 2.2 Das Protokoll des Kryptosystems Verschlüsselung einer Nachricht. 1. Sei 0 < m < 2k−1 der Klartext. Wähle r ∈R Zn. 2. Die Verschlüsselung von m ist C := g m · hr mod n. 2.2 Das Protokoll des Kryptosystems Verschlüsselung einer Nachricht. 1. Sei 0 < m < 2k−1 der Klartext. Wähle r ∈R Zn. 2. Die Verschlüsselung von m ist C := g m · hr mod n. Entschlüsselung einer Nachricht. 1. Berechne Cp := C p−1 mod p2. L(C ) 2. Berechne m̃ := L(g p) . p Dann gilt: m = m̃ mod p. 2.2 Korrektheit des Protokolls Beweis (Korrektheit). Die durchgeführte Division durch L(g p−1) ist nach Bemerkung 2.3 zulässig. L(Cp) m̃ mod = mod p L(gp) L((g m · hr )p−1) = mod p p−1 L(g ) m · L(g p−1) + r · n · L(g p−1) = mod p p−1 L(g ) = m + |{z} r · n mod p Q.E.D. ≡0 mod p 3. Sicherheitsbeweise – Faktorisierung Ziel: Brechen des Kryptosystems ist äquivalent dazu, dass man große Zahlen effizient faktorisieren kann. Sei n = p2 · q mit p, q prim und q p2. Zwei der besten bekannten Faktorierungsalgorithmen sind: √ • Lenstra’s elliptic curves (1987): exp(O( log q · log log q)) • Number field sieve (1990): exp(O(log1/3 n·log log2/3 n)) 3. Sicherheitsbeweise – Erinnerung Definition 3.2. Das Faktorisierungsproblem ist hart, wenn für jeden PPA A, für jede reelle Konstante c > 0 und für alle k 0 gilt: 1 k P A(1 , n) = (p, q) < c , k wobei n zufällig ist. Dabei sind p, q zufällig gewählte k-Bit Primzahlen. 3. Sicherheitsbeweise – Erinnerung Definition 3.4. Sei C die Verschlüsselung einer Nachricht m gemäß des Protokols. Das Problem, aus C den Klartext m zu berechnen, heißt hart, wenn für jeden PPA B, für jede reelle Konstante c > 0 und für alle k >> 0 gilt: 1 k P B(1 , n, g, C) = m < c , k wobei n, g, C zufällig erzeugt sind. 3. Sicherheitsbeweise Satz 3.5. Das Problem, aus der Verschlüsselung C den Klartext m zu berechnen, ist hart genau dann, wenn das Faktorisierungsproblem hart ist. 3. Sicherheitsbeweise Satz 3.5. Das Problem, aus der Verschlüsselung C den Klartext m zu berechnen, ist hart genau dann, wenn das Faktorisierungsproblem hart ist. Beweisskizze. Wir zeigen: “⇒” Wenn das Faktorisierungsproblem nicht hart ist, so kann auch das Problem, m aus C zu bestimmen, nicht hart sein. 3. Sicherheitsbeweise Satz 3.5. Das Problem, aus der Verschlüsselung C den Klartext m zu berechnen, ist hart genau dann, wenn das Faktorisierungsproblem hart ist. Beweisskizze. Wir zeigen: “⇒” Wenn das Faktorisierungsproblem nicht hart ist, so kann auch das Problem, m aus C zu bestimmen, nicht hart sein. “⇐” Wenn das Problem, m aus C zu berechnen nicht hart ist, so kann auch das Faktorisierungsproblem nicht hart sein. 3. Sicherheitsbeweise Beweis von Satz 3.5. “⇒” Sei A ein PPA, der n = p2 ·q in prob. Polynomialzeit faktorisiert. Definiere den PPA B durch: Schritt 1: Bei Eingabe 1k , n, g, C: Übergebe 1k , n an A. Schritt 2: Berechne m mit Hilfe der Ausgabe von A über das Entschlüsselungsprotokoll. Widerspruch! 3. Sicherheitsbeweise Beweis von Satz 3.5. “⇒” Sei A ein PPA, der n = p2 ·q in prob. Polynomialzeit faktorisiert. Definiere den PPA B durch: Schritt 1: Bei Eingabe 1k , n, g, C: Übergebe 1k , n an A. Schritt 2: Berechne m mit Hilfe der Ausgabe von A über das Entschlüsselungsprotokoll. Widerspruch! “⇐” Sei B ein PPA, der bei Eingabe 1k , n, g, C den Wert m aus C in prob. Polynomialzeit berechnen kann. 3. Sicherheitsbeweise Ziel. Konstruiere A, der zu gegebener Eingabe 1k , n Werte g 0, C 0 so berechnet, dass er mit Hilfe von B n faktorisieren kann. 3. Sicherheitsbeweise Ziel. Konstruiere A, der zu gegebener Eingabe 1k , n Werte g 0, C 0 so berechnet, dass er mit Hilfe von B n faktorisieren kann. Schritt 1. A wählt g 0 ∈R Z?n. Dann besitzt g 0p−1 mod p2 Ordnung p mit Wahrscheinlichkeit p−1 p , denn: e erzeuge Z?p2 . e, ep, e2·p, . . . , e(p−2)·p haben nicht Ordnung p. 3. Sicherheitsbeweise 0 ? 0 0 z Schritt 2. A wählt z ∈R Zn und berechnet C := g mod n. Es gilt 0 < m < 2k−1, d.h. das k-te Bit von m ist 0. Das k-te Bit von z 0 mod p ist 1 mit Wahrscheinlichkeit ≤ 12 . ⇒ Verteilungen von C und C 0 sind statistisch ununter- scheidbar. 3. Sicherheitsbeweise 0 ? 0 0 z Schritt 2. A wählt z ∈R Zn und berechnet C := g mod n. Es gilt 0 < m < 2k−1, d.h. das k-te Bit von m ist 0. Das k-te Bit von z 0 mod p ist 1 mit Wahrscheinlichkeit ≤ 12 . ⇒ Verteilungen von C und C 0 sind statistisch ununter- scheidbar. Bisher gezeigt: A kann 1k , n, g 0, C 0 an B übergeben. Frage: Wie kann A den PPA B benutzen, um n zu faktorisieren? 3. Sicherheitsbeweise Schritt 3. A übergibt 1k , n, g 0, C 0 an B und erhält m0 mit z 0 ≡ m0 mod p. • p|z 0 − m0 • z 0 6≡ m0 mod n (mit hoher Wahrscheinlichkeit) A gibt d := ggT(z 0 − m0, n) aus. Q.E.D. 3. Sicherheitsbeweise – Erinnerung Definition 3.6. Das Protokoll heißt semantisch sicher, falls für jeden PPA A, für jede reelle Konstante c > 0 und k 0 gilt: 1 P A(1k , n, g, m0, m1, C) = m − < 1 , 2 kc wobei die Werte n, g, m0, m1, C zufällig erzeugt sind. 3. Sicherheitsbeweise – Erinnerung Definition 3.7. Das Problem, bei Kenntnis von n, g, k, C zu entscheiden, ob C die Verschlüsselung von 0 oder von 1 ist, heißt hart, wenn für jeden PPA B, für jede reelle Konstante c > 0 und für k 0 gilt: 1 P B(1k , n, g, C) = b − < 1 , b ∈ {0, 1}, 2 kc wobei die Werte n, g, C zufällig erzeugt sind. 3. Sicherheitsbeweise Satz 3.8. Das Protokoll ist semantisch sicher genau dann, wenn das Problem zu entscheiden, ob ein gegebenes C die Verschlüsselung von 1 oder 0 ist, hart ist. 3. Sicherheitsbeweise Satz 3.8. Das Protokoll ist semantisch sicher genau dann, wenn das Problem zu entscheiden, ob ein gegebenes C die Verschlüsselung von 1 oder 0 ist, hart ist. Beweis. Es sei E(m) die Verschlüsselung von m. “⇐” Es sei A ein PPA, der bei Eingabe 1k , n, g, m0, m1,C zwischen E(m0) und E(m1) unterscheidet. Sei B der PPA, der A mit 1k , n, g, 0, 1 aufruft. Widerspruch! 3. Sicherheitsbeweise Satz 3.8. Das Protokoll ist semantisch sicher genau dann, wenn das Problem zu entscheiden, ob ein gegebenes C die Verschlüsselung von 1 oder 0 ist, hart ist. Beweis. Es sei E(m) die Verschlüsselung von m. “⇐” Es sei A ein PPA, der bei Eingabe 1k , n, g, m0, m1,C zwischen E(m0) und E(m1) unterscheidet. Sei B der PPA, der A mit 1k , n, g, 0, 1 aufruft. Widerspruch! “⇒” Sei B ein PPA, der zwischen E(0) und E(1) unterscheidet. Ziel: Konstruiere PPA A, der zwischen C = E(m0) und C = E(m1) unterscheidet. 3. Sicherheitsbeweise Schritt 1. A berechnet • X := gC m0 mod n • g 0 := g (m1−m0)+r·n mod n, r ∈R Zn • h0 := g 0n mod n 3. Sicherheitsbeweise Schritt 1. A berechnet • X := gC m0 mod n • g 0 := g (m1−m0)+r·n mod n, r ∈R Zn • h0 := g 0n mod n Dann gilt: • gp0 := g 0p−1 mod p2 hat Ordnung p. • C = E(m1) mod n ⇒ X = E 0(1) mod n • C = E(m0) mod n ⇒ X = E 0(0) mod n. 3. Sicherheitsbeweise Schritt 2. A übergibt 1k , n, g 0, X an B. 1. Fall: B gibt 0 aus: Dann gibt A den Wert m0 aus. 2. Fall: B gibt 1 aus: Dann gibt A den Wert m1 aus. Widerspruch! 3. Sicherheitsbeweise Schritt 2. A übergibt 1k , n, g 0, X an B. 1. Fall: B gibt 0 aus: Dann gibt A den Wert m0 aus. 2. Fall: B gibt 1 aus: Dann gibt A den Wert m1 aus. Widerspruch! Q.E.D. Literatur • H. Cohen, A Course in Computational Algebraic Number Theory, Graduate Texts in Mathematics 138, Springer-Verlag, 1993 • J. von zur Gathen, J. Gerhard, Modern Computer Algebra, Cambridge University Press, first edition, 1999 • N. Koblitz, A Course in Number Theory and Cryptography, Graduate Texts in Mathematics 114, second edition, Springer-Verlag, 1994 • T. Okamoto, S. Uchiyama, A New Public-Key Cryptosystem as Secure as Factoring, K. Nyberg (Ed.): Advances in Cryptology – EUROCRYPT ’98, LNCS 1403, pp. 308-318, Springer-Verlag, 1998