R. Fischlin/15. Februar 2000 Cramer-Shoup-Variante des ElGamal-Kryptoschemas Wir stellen die Variante des ElGamal-Kryptoschemas von Cramer und Shoup [GS98] vor. Im Gegensatz zum urspünglichen System ist diese Erweiterung (unter der DecisionalDiffie-Hellman-Annahme) semantisch sicher gegen Adaptive-Chosen-Ciphertext-Angriffe. 1. ElGamal-Kryptoschema Wir skizzieren kurz das ElGamal-Kryptoschema [G85]. Sei p = 2q + 1 eine hinreichend große n-Bit-Primzahl und G := hgi ⊆ Z∗p eine Untergruppe primer Ordnung q. Diese öffentlichen Parameter sind für alle Teilnehmer gleich. • Schlüssel: Der Secret-Key ist z ∈R Zq , der zugehörige Public-Key h := g z . • Chiffrieren: Um eine Nachricht m ∈ G zu chiffrieren, wähle zufälliges r ∈R Zq , setze u := g r und: Ench (m) := Ench (m, r) := (u, hr m) ∈ G2. hr = g rz ist der Diffie-Hellman-Schlüssel (Session-Key) DHg (h, u) zu u = g r und h = g z . • Dechiffrieren: Um eine verschlüsselte Nachricht Ench (m, r) := (u, hr m) zu dechiffrieren, verwende den geheimen Schlüssel z mit h = g z : Decz (u, hr m) := hr m g rz m = rz = m. z u g Def inition 1.1 (Sicherheit). Ein prob. Polynomialzeit-Algorithmus (Angreifer) A 1. wählt zwei verschiedene Nachrichten m0 , m1, 2. erhält als Challenge (Aufgabe) den Ciphertext e := Enc(mb ) für ein zufälliges b ∈R {0, 1} und 3. soll dann mb bzw. b bestimmen. Liegt die Erfolgswahrscheinlicheit von jedem Angreifer A nur vernachlässigbar nah an der Rate-Wahrscheinlichkeit 12 , so heißt das Public-Key-Schema sicher gegen Chosen-PlaintextAngriffe1. Man nennt das Schema sicher gegen Adaptive-Chosen-Ciphertext-Angriffe, falls A zusätzlich ein sogenanntes Deccryption-Orakel, das mit Ausnahme von e beliebige Ciphertexte dechiffriert, verwenden kann. Unter der Decisional-Diffie-Hellman-Annahme [NR97] ist das ElGamal-Schema sicher gegen Chosen-Plaintext-Angriffe: Annahme 1.2 (Decisional-Diffie-Hellman-Annahme). Jeder prob. Polynomialzeit-Algorithmus D, der die beiden Verteilungen (g a, g b, g ab) und (g a, g b, g c), welche durch a, b, c ∈R 1 A kann den Ciphertext zu beliebigen Plaintexten (Nachrichten) untersuchen, weil die Chiffrierfunktion effizient berechenbar ist. 2 Zq induziert werden, unterscheidet, hat nur vernachlässigbaren Vorteil, d.h. für hinreichend große n gilt: i h i h 1 . Ws D(g a, g b, g ab) = 1 − Ws D(g a, g b, g c) = 1 < poly(n) Unter dieser Annahme wirkt der Diffie-Hellman-Schlüssel DHg (h, u) wie ein One-TimePad für die Nachricht m, so dass das ElGamal-Schema sicher gegen Chosen-Plaintext-Angriffe ist. Das System ist jedoch nicht sicher gegen Adaptive-Chosen-Ciphertext-Angriffe: Zu gegebem Ciphertext Enc(mb , r) = (g r , hr mb ) können wir die Nachricht mb auf zwei Arten bestimmen: • Re-Randomisierung: Das Decryption-Orakel liefert bei Eingabe von Enc(mb , r + 1) = (gg r , hhr mb ) die Nachricht mb . • Homomorphie-Eigenschaft: Das Decryption-Orakel liefert bei Eingabe von Enc(hmb , r) = (g r , hr+1 mb ) die Nachricht hmb , Multiplikation mit h−1 ergibt die Nachricht mb . 2. Cramer-Shoup-Kryptoschema Cramer und Shoup [GS98] haben auf der Crypto ’98-Konferenz folgende Erweiterung des ElGamal-Schemas vorgeschlagen. Sei p = 2q + 1 eine hinreichend große n-Bit-Primzahl und G := hgi ⊆ Z∗p eine Untergruppe primer Ordnung q. Wir wählen zusätzlich als öffentliche Parameter: • einen weiteren Generator g2 der Gruppe G. • eine kollisions-resistente Hash-Funktion2 H : G3 → Zq . Jeder Teilnehmer wählt: • Schlüssel: Den Secret-Key bilden z, z2, x, x2, y, y2 ∈R Zq , der zugehörige Public-Key ist (h, c, d) mit h := g z g2z2 c := g xg2x2 (1) d := g y g2y2 Aus Effizenzgründen sei z2 := 0, d.h. h = g z . Dies ändert nicht die Verteilung des öffentlichen Schlüssels. • Chiffrieren: Um eine Nachricht m ∈ G zu chiffrieren, wähle zufälliges r ∈R Zq und setze u := g r u2 := g2r e := hr m α := H(u, e, u2) v := cr drα, so dass Enc(h,c,d) (m, r) := (u, e, u2, v) ∈ G4 . Das Paar (u, e) ist die ElGamal-Verschlüsselung Ench (m, r). • Dechiffrieren: Um eine verschlüsselte Nachricht Enc(h,c,d) (m, r) := (u, e, u2, v) zu dechiffrieren, bestimme zuerst α := H(u, e, u2) und teste die Dechiffrier-Bedingung ! ux+yα · u2x2 +y2 α = v. (2) 2 jeder prob. Polynomialzeit-Algorithmus, der x, y mit x 6= y und H(x) = H(y) bestimmt, hat nur eine vernachlässigbare Erfolgswahrscheinlichkeit. Solche Funktionen existieren u.a. unter der Diskreten-Log-Annahme. 3. Sicherheitsbeweis 3 Sollte diese Bedingung verletzt sein, weise den Ciphertext zurück. Im anderen Fall wende die ElGamal-Dechiffrierung Decz (u, e) an, also m = e/uz . Ist der Ciphertext (u, e, u2, v) korrekt gebildet, gilt v = cr drα = (g xg2x2 )r (g y g2y2 )rα = ux+yα · ux2 2 +y2 α , | {z } | {z } =(g r )x+yα (g2r )x2 +y2 α so dass der Empfänger solche Ciphertexte stets akzeptiert. Falls z2 6= 0 ist, also h = g z g2z2 , greift der Empfänger neben u auch auf u2 zurück, um den Diffie-Hellman-Key hr = DHg (h, u) zu bestimmen: hr = uz uz22 . 3. Sicherheitsbeweis 3.1. Übersicht. Angenommen, dass Cramer-Shoup-Schema sei nicht sicher gegen AdaptiveChosen-Ciphertext-Angriffe. Dann existiert ein prob. Polynomialzeit-Algorithmus A, der 1. zwei verschiedene Nachrichten m0 , m1 ∈ G wählt, 2. als Challenge Enc(mb ) mit b ∈R {0, 1} erhält und 3. mb bzw. b mit Hilfe des Decryption-Orakels ermittelt, wobei die Erfolgswahrscheinlichheit mindestens 12 +δ für ein nicht vernachlässigbares ist. Wir konstruieren aus diesem Angreifer A einen Unterscheider D, dessen Existenz der DecisionalDiffie-Hellman-Annahme widerspricht: Lemma 3.1. Die Existenz eines Unterscheiders D mit nicht vernachlässigbarem Vorteil beim Unterscheiden der beiden Verteilungen3 • R ist Gleichverteilung auf G4 und • D ist die Verteilung der 4-Tupel (g1, g2, g1r , g2r) ∈ G4 für g1, g2 ∈R G und r ∈R Zq widerspricht der Decisional-Diffie-Hellman-Annahme. Beweis. Das Decisional-Diffie-Hellman-Problem ist mittels Transformation (g a, g b, g c) 7→ (g, g a, g b, g c) auf die Unterscheidung der beiden Verteilungen R und D reduzierbar. Der Unterscheider D erhält die Eingabe (g, g2, u, u2) ∈ G4 (3) und soll entscheiden, ob diese gemäß R oder D verteilt ist. Dazu simuliere den Angreifer A wie folgt: 1. Erzeuge einen Schlüssel für das Cramer-Shoup-Schema, übernimm g, g2 als Generatoren der Gruppe G. Wähle z, z2, x, x2, y, y2 ∈R Zq als Secret-Key, den zugehörigen PublicKey bilden h := g z g2z2 c := g xg2x2 d := g y g2y2 . 3 Der Unterschied zwischen beiden Verteilungen ist, dass für ein gemäß D verteiltes Tupel (g1 , g2 , u1 , u2 ) stets logg1 u1 = logg2 u2 gilt, während im Fall der Verteilung R dies nur mit exponentiell kleiner Wahrscheinlichkeit 1q gegeben ist. 4 Der Ciphertext (u, e, u2, v) einer Nachricht m besteht aus u = gr e = hr m u2 = g2r α = H(u, e, u2) v = cr drα. Um den Diffie-Hellman-Key hr = DHg (h, u) zu bestimmen, greift der Empfänger neben u auch auf u2 zurück hr = uz uz22 . Falls man jedoch statt u2 = g2r abweichend u2 := g2r2 mit r2 ∈R Zq wählt und den Ciphertext sonst korrekt bildet, gilt: DHg (h, u) = (g z g2z2 )r (r −r)z2 uz uz22 = g rz g2rz2 · g2 2 = g rz g2rz2 (r −r)z2 = g2 2 · DHg (h, u). (r −r)z 2 Statt des Diffie-Hellman-Keys DHg (h, u) wird g2 2 · DHg (h, u) verwendet und statt (r −r)z2 m dar. Dabei wirkt m stellt für den Empfänger der Ciphertext die Nachricht g2 2 (r2 −r)z2 wie ein echtes One-Time-Pad, denn aus dem Public-Key h := g z g2z2 erhält g2 man keinerlei Informationen über z2 . 2. Der simulierte Angreifer A bestimmt zwei Nachrichten m0 , m1 aus. Wähle b ∈R {0, 1} zufällige und bestimme als Challenge (u, e, u2, v) mit e := uz · uz22 · mb α := H(u, e, u2 ) x+yα v := u · (4) u2x2 +y2 α . Sei r := logg u und r 2 := logg2 u. 3. Simuliere den Angreifer A. Das Decryption-Orakel können wir simulieren, weil uns der geheime Schlüssel bekannt ist. Insbesondere werden nur Verschlüsselungen, welche die Dechiffrier-Bedingung (2) erfüllen, akzeptiert. 4. Genau dann nimm an, die Eingabe (3) sei gemäß D verteilt, wenn der simulierte Angreifer A die Challenge besteht. ! Falls r = r 2 , stellt die Challenge den Ciphertext Enc(h,c,d)(mb , r) dar. Im anderen Fall wollen wir den Ciphertext als fehlerhaft“ bezeichnen: ” Def inition 3.2 (Fehlerhafter bzw. ungültiger Ciphertext). Wir nennen einen Ciphertext (u, e, u2, v) ∈ G4 fehlerhaft, falls logg u 6= logg2 u2 . Der Ciphertext (u, e, u2, v) wird als ungültig bezeichnet, wenn er fehlerhaft ist oder die Dechiffrier-Bedingung (2) nicht erfüllt. Der sogenannte View des Angreifers A umfasst alle Daten, die der Angreifer sieht: die öffentlichen Parameter, den öffenlichen Schlüssel und die Antworten des Decryption-Orakels. Lemma 3.3. Sollte die Eingabe (3) gemäß D verteilt sein, ist die gemeinsame Verteilung von b und View des simulierten Angreifers A statistisch ununterscheidbar von der im Fall eines echten Angriffs. Wenn die Eingabe (3) gemäß R verteilt ist, entspricht die Wahrscheinlichkeit, dass der simulierte Angreifer die Challenge besteht, im wesentlichen der Rate-Wahrscheinlichkeit 12 , denn der (fehlerhafte) Ciphertext entspricht der Nachricht g (r−r2 )z2 mb für ein unbekanntes z2 ∈R Zq anstatt mb . Lemma 3.4. Sollte die Eingabe (3) gemäß R verteilt sein, ist die Verteilung von b unabhängig vom View des Angreifers A, sofern das Decryption-Orakel fehlerhafte Ciphertexte nicht akzeptiert (Dieses tritt bis auf vernachlässigbare Wahrscheinlichkeit ein). 3. Sicherheitsbeweis 5 Aus Lemma 3.3 und Lemma 3.4 folgt unmittelbar: Satz 3.5. Die Decisional-Diffie-Hellman-Annahme gelte für die Gruppe G, und H sei eine kollisions-resistente Hashfunktion. Dann ist das Cramer-Shoup-Schema sicher gegen AdaptiveChosen-Ciphertext-Angriffe. Man kann die Voraussetzungen bezüglich der Hash-Funktion H abschwächen. Es genügt, H aus einer universellen Oneway-Familie H von Hash-Funktionen zuwählen [GS98]. In diesem Fall ist es effizient nicht möglich, dass man x wählt, dann H ∈R H erhält und ein y 6= x mit H(x) = H(y) findet. Man nennt diese Hash-Funktionen auch Target-Collision-resistent. 3.2. Beweis Lemma 3.3. Wir nehmen für den Beweis an, die Eingabe (g, g2, u, u2) ∈ G4 ist gemäß D verteilt. Wir zeigen, dass die gemeinsame Verteilung von b und dem View des simulierten Angreifers A statistisch ununterscheidbar von der im Fall eines echten Angriffs ist. Die Verteilung des öffentlichen Schlüssels in der Simulation stimmt mit der im OriginalSchema überein. Die Challenge hat die gleiche Verteilung wie eine Verschlüsselung der Nachricht mb im Original-Schema, denn nach Wahl von h = g z g2z2 gilt e = uz · uz22 · mb = hr · mb . Betrachten wir das Verhalten des Decryption-Orakels. Gültige Verschlüsselung dekodiert das Orakel sowohl in der Simulation als auch bei einem echten Angriff korrekt. Die folgende Behauptung komplettiert die Aussage des Lemma 3.3: Behauptung 3.6. Das Decryption-Orakel akzeptiert ungültige Ciphertexte sowohl in der Simulation als auch bei einem echten Angriff nur mit vernachlässigbarer Wahrscheinlichkeit. Beweis. Sei w := logg g2. Betrachten wir die Verteilung des 4-Tupels S1 := (x, x2, y, y2) ∈ Zq (einem Teil des Secret-Keys) gegeben den View des Angreifers. Aus Sicht des Angreifers, d.h. gegeben die beiden Gruppenelemente c, d des öffentlichen Schlüssels, ist S1 zu Beginn ein zufälliger Vektor aus der Lösungsmenge S1 des linearen Gleichungssystems X logg c 1 w 0 0 X 2 · = (5) 0 0 1 w Y logg d Y2 über dem Körper Zq . Der Ciphertext der Challenge liefert eine weitere Restriktion: X logg c 1 w 0 0 X2 0 0 1 w · Y = logg d r rw r α r αw logg v Y2 Weil die Verschlüsselung korrekt gebildet ist, gilt v = cr · dr·α, also logg v = r · logg c + r α · logg d. Die dritte Gleichung ist eine Linearkombination der beiden ersten Gleichungen, und schränkt folglich die Menge S1 aller möglichen S1 nicht ein. Aus Sicht des Angreifers A ist S1 nach Erhalt der Challenge weiterhin eine zufällige Lösung aus einer Menge S1 der Kardinalität q 2. Angenommen, A übergibt dem Decryption-Orakel einen ungültigen Ciphertext (u, e, u2, v) ∈ G4 zur Dekodierung. Sei r := logg u und r2 := logg2 u2 , d.h. wr2 = logg u2 und r 6= r2. 6 Das Orakel lehnt die Entschlüsselung ab, es sei denn, der Ciphertext erfüllt die DechiffrierBedingung (2). Dies ist äquivalent dazu, dass S1 eine Lösung der Gleichung rX + wr2X2 + rαY + r2αY2 = logg v. (6) ist. Diese lineare Gleichung ist wegen r 6= r2 linear unabhängig von denen des linearen Gleichungssystems (5), im Durchschnitt beider Lösungsmengen liegen q Werte. Zu Beginn ist für den Angreifer S1 eine zufällige Lösung aus der Menge S1 . Das DecryptionOrakel weist die Dechiffrierung des ersten, ungültigen Ciphertexts mit Wahrscheinlichkeit q q 1 = 1− 2 = 1− 1− |S1 | q q zurück. Der Angreifer A lernt, dass S1 nicht im Durchschnitt der Lösungsmenge der Gleichung (6) und S1 liegt, diese q Werte kommen für S1 nicht in Frage. Nach i − 1 Aufrufen des Decryption-Orakels mit fehlerhaften Ciphertexten ist A in der Lage, höchstens (i − 1)q Werte aus S1 auszuschließen. Folglich lehnt das Orakel die Dechiffrierung des i-ten, ungültigen Ciphertexts mit Wahrscheinlichkeit mindestens q 1 q = 1− =1− 1− |S1 | − (i − 1)q q(q − i + 1) q−i+1 ab. 3.3. Beweis Lemma 3.4. Für den Beweis setzen wir voraus, die Eingabe (g, g2, u, u2) ∈ G4 ist gemäß R verteilt. Wir können annehmen, dass r 6= r 2 , weil diese Bedingung nur mit exponentiell kleiner Wahrscheinlichkeit 1q eintritt. Wir zeigen: 1. Die Verteilung von b ist unabhängig vom View des Angreifers A, sofern das DecryptionOrakel fehlerhafte Ciphertexte nicht akzeptiert. 2. Das Decryption-Orakel akzeptiert fehlerhafte Ciphertexte nur mit vernachlässigbarer Wahrscheinlichkeit. Behauptung 3.7. Das Decryption-Orakel akzeptiere keine fehlerhaften Ciphertexte. Dann ist die Verteilung von b unabhängig vom View des Angreifers A. Beweis. Sei w := logg g2. Betrachten wir die Verteilung des Paares S2 := (z, z2) ∈ Zq (einem Teil des Secret-Keys) gegeben den View des Angreifers. Aus Sicht des Angreifers, d.h. gegeben das Gruppenelemente h des öffentlichen Schlüssels, ist S2 zu Beginn ein zufälliger Punkt aus der Lösungsmenge S2 des linearen Gleichungssystems Z 1 w · = logg h (7) Z2 über dem Körper Zq . Durch das Dechiffrieren eines Ciphertextes (u, e, u2, v) mit hr = ur ur2 = g rz1 g2rz2 durch das Decryption-Orakel lernt der Angreifer A, dass S2 zusätzlich folgender Gleichung genügt: rZ1 + rwZ2 = r logg h Diese Gleichung ist aber eine Linearkombination der Restriktion des Systems (7), so dass A durch die Dechiffrierung keinerlei zusätzliche Informationen über S1 erhält. Betrachte die Challenge (u, e, u2 , v) aus (4). Sei := uz1 uz22 also e = mb . Wegen der Voraussetzung r 6= r2 ist die Gleichung rZ1 + rwZ2 = logg 3. Sicherheitsbeweis 7 linear unabhängig von der Restriktion (7). Es gilt: logg h z 1 w · = z2 logg r wr2 für eine 2 × 2-Matrix mit vollem Rang. h und sind folglich unabhängig und nach Wahl von z, z1 ∈R Zq uniform verteilt. Das statt des Diffie-Hellman-Keys DHg (h, r) verwendete stellt ein perfektes One-Time-Pad dar, so dass die Verteilung von b unabhängig vom View des Angreifers A ist. Behauptung 3.8. Das Decryption-Orakel akzeptiert fehlerhafte Ciphertexte nur mit vernachlässigbarer Wahrscheinlichkeit. Beweis. Sei w := logg g2. Wie im Beweis zu Lemma 3.3 betrachten wir die Verteilung des 4Tupels S1 := (x, x2, y, y2) ∈ Zq gegeben den View des Angreifers. Aus Sicht des Angreifers ist S1 nach Erhalt der Challenge (4) ein zufälliger Vektor aus der Lösungsmenge S1 des linearen Gleichungssystems X logg c 1 w 0 0 X2 0 0 1 w · (8) Y = logg d logg v r r 2 w rα r 2αw Y2 über dem Körper Zq . Angenommen, A übergibt dem Decryption-Orakel einen fehlerhaften Ciphertext (u, e, u2, v) ∈ G4 zur Dekodierung. Es gilt (u, e, u2, v) 6= (u, e, u2 , v). Sei α := H(u, e, u2), ferner r := logg u und r2 := logg2 u2 , d.h. wr2 = logg u2 und r 6= r2. Wir unterscheiden drei Fälle: • Es gilt (u, e, u2) = (u, e, u2) und v 6= v. In diesem Fall sind die Hashwerte α = H(u, e, u2) und α = H(u, e, u2 ) identisch, so dass ux+yα · ux2 2 +y2 α = ux+yα · ux2 2 +y2 α = v Aufgrund v 6= v ist daher die Dechiffrier-Bedingung (2) verletzt und das Orakel lehnt den Ciphertext ab. • Es gilt (u, e, u2) 6= (u, e, u2 ) und α 6= α. Das Orakel akzeptiert den (fehlerhaften) Ciphertext (u, e, u2, v), nur wenn die Dechiffrier-Bedingung (2) erfüllt ist: rx + wr2x2 + rαwy + r2αwy2 = logg v Es gibt genau eine Lösung (x, x2, y, y2), die neben (8) diese Bedingung erfüllt, denn die Koeffizientenmatrix zu logg c X 1 w 0 0 0 0 1 w X2 logg d r r2 w r α r2 αw · Y = logg v r r2 w rα r2αw Y2 logg v hat vollen Rang (Die Determinante ist w2 (r2 − r1)(r2 − r1 )(α − α) 6= 0). Wie im Beweis zu Lemma 3.3 folgt, dass das Orakel diesen fehlerhaften Ciphertext nur mit vernachlässigbar kleiner Wahrscheinlichkeit akzeptiert. • Es gilt (u, e, u2) 6= (u, e, u2 ) und α = α. In diesem Fall haben wir eine Kollision gefunden: α = H(u, e, u2 ) = H(u, e, u2) = α. Nach Wahl von H ist die Wahrscheinlichkeit für dieses Ereignis vernachlässigbar klein. 8 Literaturverzeichnis [BR93] M. Bellare und P. Rogaway: Random Oracles are Practical: a Paradigm for Designing Efficient Protocols, First ACM Conference on Computer and Communication Security, ACM Press, Seiten 62–73, 1993. [BR94] M. Bellare und P. Rogaway: Optimal Asymmetric Encryption, Advances in Cryptology — Proceedings Eurocrypt ’94, Lecture Notes in Computer Science, Band 950, Springer-Verlag, Seiten 92–111, 1993. [DH76] W. Diffie und M. Hellman: New Directions in Cryptography, IEEE Transaction on Information Theory, Band 22(6), Seiten 644–654, 1976. [G85] T. El Gamal: A Public Key Cryptosystem and Signature Scheme Based on the Discrete Logarithm, IEEE Transaction on Information Theory, Band 31, Seiten 469–472, 1985. [GS98] R. Cramer und V. Shoup: A Practical Public Key Cryptosystem Provable Secure Against Adaptive Chosen Ciphertext Attack, Advances in Cryptology — Proceedings Crypto ’98, Lecture Notes in Computer Science, Band 1492, Springer-Verlag, Seiten 13–25, 1998. [DDN00] D. Dolev, C. Dwork und M. Naor: Non-Malleable Cryptography, akzeptierte Journal-Version, Januar 2000. Verläufige Version in Proceedings of 21. Annual ACM Symposium on Theory of Computing (STOC), ACM Press, Seiten 542–552, 1991. [GM84] S. Goldwasser und S. Micali: Probabilistic Encryption, Journal of Computer and System Science, Band 28, Seiten 270–299, 1984. [NR97] N. Naor und O. Reingold: Number-Theoretic Construction of Efficient Pseudo-Random Functions, Proceedings of 38. IEEE Symposium on Foundations of Computer Science (FOCS), IEEE Computer Society Press, Seiten 80–91, 1997. [RS91] C. Rackoff und D. Simon: Non-iteractive Zero-Knowledge Proof of Knowledge and Chosen Ciphertext Attacks, Advances in Cryptology — Proceedings Crypto ’91, Lecture Notes in Computer Science, Band 576, Springer-Verlag, Seiten 433–444, 1991. 9