Vorlesungen „Kryptographie I und II” Bei Prof. Dr. Schnorr WS1999/2000 - SS2000
Michael Jaeger (
[email protected]) 17. Oktober 2002 ($Revision: 1.5 $)
Dies Mitschrift entstand während der Vorbereitung für meine Diplomprüfung in Kryptographie I und II. Für Vollständigkeit oder Korrektheit kann ich nicht garantieren, bitte jedoch um aktive Mithilfe bei der Gestaltung dieses Skriptes. Sollten Fehler gefunden werden, so bitte ich darum, mir diese mitzuteilen, damit ich beheben kann. Der Inhalt dieses Skriptes basiert auf den handschriftlichen Unterlagen der Vorlesungen Kryptographie I und II von Prof. Dr. C. P. Schnorr aus den Jahren 1999/2000. Mein Dank geht vor allem an das LYX-Team, durch deren Programm dieses Skript erst möglich wurde. Die Software existiert für diverse Plattformen und kann unter der Adresse http://www.lyx.org bezogen werden. Michael Jaeger, Frankfurt am Main, der 17. Oktober 2002.
Inhaltsverzeichnis Teil 1. Kryptographie I
5
Kapitel 1. Diskreter Logarithmus und Protokolle 1.1. Grundlagen 1.2. Laufzeit von DL-Algorithmen zu G ⊂ Z∗p 1.3. Angriffe auf Verschlüsselungen 1.4. Elliptische Kurven 1.5. Schlüsseltransport mit Rücklauf 1.6. ElGamal Signaturen 1.7. Schnorr Signaturen 1.8. Digital Signature Algorithm, DSA 1.9. Nyberg-Rueppel Signaturen, Message Recovery
7 8 10 14 14 16 16 18 19 19
Kapitel 2. Diskrete Logarithmus Identifikation 2.1. Schnorr Identifikation 2.2. k-fach sequentielle DL-Identifikation 2.3. DL-Identifikation mit kurzer Kommunikation 2.4. Abwehr der Man-in-the-middle-Attack 2.5. Okamoto DL-Identifikation 2.6. Okamoto Signaturen 2.7. Brickell-McCurley-Identifikation 2.8. Sicherheit gegen Message Recovery 2.9. Offene Sicherheitsprobleme 2.10. Allgemeine proofs of knowledge
21 22 27 30 33 35 36 37 38 39 39
Kapitel 3. Faktorisierungsproblem, Protokolle 3.1. Ong-Schnorr Identifikation
43 45
Kapitel 4. Sicherheit im Generischen Modell (GM) 4.1. Ziele 4.2. Definition generischer Algorithmen 4.3. Das DL-Problem 4.4. DH-Problem 4.5. Das DDH-Problem 4.6. Semantische Sicherheit der ElGamal Verschlüsselung 4.7. Sicherheit der DL-Identifikation 4.8. Sicherheit von Schnorr-Signaturen im GM+ROM 4.9. Signierte ElGamal Verschlüsselung 4.10. Allgemeine ElGamal Verschlüsselung
51 51 52 54 56 56 57 58 60 61 64
3
4
INHALTSVERZEICHNIS
Teil 2. Kryptographie II
67
Kapitel 5. Identifikation, On-the-fly-Signaturen 5.1. On-The-Fly-Signaturen 5.4. Zerlegungsalgorithmus von Miller 5.5. GPS-Signaturen, On-The-Fly-Signaturen
69 69 73 73
Kapitel 6. Fairer Schlüsseltausch 6.1. Paillier Kryptoschema 6.2. Verifizierbare Verschlüsselung von privaten DL-Schlüsseln 6.3. Verifizierbare Verschlüsselung geheimer RSA-Schlüssel 6.4. Nicht-interaktive Version der Protokolle 6.5. CDS-Protokoll 6.6. Geschichte des Paillier-Schemas
77 77 78 80 82 83 84
Kapitel 7. Bit-Hinterlegung und perfekte Zufallsgeneratoren 7.1. Network-Modell – nicht uniformes Modell. 7.2. Bit Hinterlegung (Bit Commitment) 7.3. Naor-Schema 7.4. Der x2 mod N-Generator und quadratische Residuosität 7.5. Verifiable Secret Sharing nach Pedersen 7.6. Rechnen mit verteilten Daten 7.7. Anonymous Secret Sharing 7.8. Allgmeines verteiltes Rechnen 7.9. Pseudo random Funktionen nach Naor, Reingold 7.10. Alternative Konstruktion unter CDH-Annahme / Faktor-Annahme
87 88 89 90 91 97 99 100 100 104 106
Kapitel 8.
Pseudozufallsgeneratoren
107
Kapitel 9.
Pseudozufallsfunktionen
109
Index
111
Literaturverzeichnis
113
Teil 1
Kryptographie I
KAPITEL 1
Diskreter Logarithmus und Protokolle In diesem einführenden Kapitel werden zum Einen kurz die mathematischen Grundlagen der Kryptographie (diskreter Logarithmus, verschiedene DL-Algorithmen) und zum Anderen konkrete Krypto-Verfahren (Diffie-Hellmann, ElGamal, verschiedene SignaturVerfahren) präsentiert. Während Verschlüsselungs-Algorithmen die Privatheit sicherstellen, also das Abhören der Kommunikation durch Dritte verhindern sollen, dienen Signaturen dazu die Integrität und Authentizität einer Nachricht überprüfbar zu machen, ohne diese unbedingt zu verschlüsseln. Da Signaturen in der Regel zusätzlich zu der eigentlichen Nachricht verschickt werden, bedeuten sie ein zusätzliches Datenaufkommen und sollen deshalb möglichst klein sein. Hier tun sich besonders die Schnorr-Signaturen hervor, weil sie sowohl kurz sind als auch zum Großteil offline berechnet werden können. Bei den vorgestellten Verschlüsselungs-Verfahren sind besonders Shamir’s „Schlüsseltransport mit Rücklauf” und die ElGamal-Verschlüsselungen zu erwähnen. Bei Ersterem können zwei Parteien verschlüsselte Nachrichten mittels einem symmetrischen Verschlüsselungsverfahren austauschen ohne vorher einen gemeinsamen Schlüssel zu vereinbahren (zu diesem Zweck könnte man das Diffie-Hellmann-Verfahren einsetzen) und bei Letzterem sind die Cypher-Texte randomisiert, was bedeutet, dass ein und derselbe Klartext zweimal verschlüsselt zwei unterschiedliche Schlüsseltexte ergibt! Nach der Lektüre sollten die mathematische Grundlagen, die grundlegendsten Verfahren bei Signaturen (ElGamal, Schnorr, DSA, Nyber-Rueppel) und das ElGamal-Verfahren verstanden worden sein. Ausserdem sollten die verschiedenen Formen von Angriffen auf Verschlüsselungen (CA, CPA, CCA) verinnerlicht sein.
7
8
1. DISKRETER LOGARITHMUS UND PROTOKOLLE
1.1. Grundlagen D EFINITION 1.1.1. Die Exponentialfunktion Zq → G
expg :
a 7→ gα
ist wohldefiniert wegen gq ≡ 1 mod q, ga+tq ≡ ga mod q. Die Exponentialfunktion ist bijektiv. Damit ergibt sich der diskrete Logarithmus: D EFINITION 1.1.2. Der diskrete Logarithmus (DL) ist definiert durch G 7→ Zq
logg :
logg = exp−1 g damit ist logg h ≡ x
mod q
h ≡ gx
⇔
mod q.
Unter dem DL-Problem wird die Aufgabe verstanden bei gegebenem g, h ∈ G ein x ∈ Zq zu berechnen, so dass gilt gx = h. In der additiven Gruppe ist das Problem trivial, da hier 1 der Generator ist. D EFINITION 1.1.3. Sei Z∗N ⊂ ZN die multiplikative Gruppe der invertierbaren Zahlen modulo N: Z∗N = {a ∈ [0, N[: ggT (a, N) = 1} . L EMMA 1.1.4. Sei G = hgi, |G| = q, n = dln qe, 2n−1 < q ≤ 2n . Die Berechnung a 7→ ga geht in 2n − 3 Multiplikationen in G. i B EWEIS . (Binäre Methode) Sei a = ∑n−1 i=0 ai 2 ∈ [0, q[, ai ∈ {0, 1} die Binärdarstellung von a. Das Produkt i ga = ∏ g2 ai =1
2
n−1
hat ≤ n − 2 Faktoren für 1 ≤ i ≤ n − 1. Man erhält g, g2 , g2 , . . . , g2 rungen.
durch n − 1 Quadrie¤ √ P ROPOSITION 1.1.5. Sei G = hgi, |G| = q. Dann geht h 7→ logg h in 2 q Multiplikationen in G. B EWEIS . (Baby step-Giant step Algorithmus von Shanks) Sei §√ ¨ § ¨ k := q , l := qk , kl − k < q ≤ kl © i ª L1 := g |0≤i . 2 Damit ist die Wahrscheinlichkeit, dass Stufe 2 ein e¯ 6= e findet mit ERFw,e¯ = 1 £ ¤ Ws Stufe 2 findet e¯ 6= e mit ERFw,e¯ = 1 1 1 1 1 ≥ · · = , 2 2 2 8 also dem Produkt aus den Wahrscheinlichkeiten, dass w schwer, e 6= e¯ ist und der Wahrscheinlichkeit in (∗). Mittlere Anzahl der Proben von AL: Damit ist die mittlere Anzahl der Proben in Stufe 1 von AL gleich £ ¤ EwAL ∑ u < 8 · ε −1 . Die Stufen 1 und 2 werden also im Mittel ≤ 8-mal iteriert. Somit ist die erwartete Anzahl der Proben in AL EwAL [#Proben von AL] < 2 · 8 · ε −1 = 16 · ε −1 . Ist andererseits ε bekannt und nicht u sondern ε −1 -viele Proben, ¡ Stufe ¢ 2 macht 1 1 −1 > 6,5 Erfolg. Dann gilt dann hat Stufe 2 mit Ws 4 1 − e EwAL [#Proben von AL] < 13 · ε −1 . Fazit: ˜ ε −1 . Ist ε ≥ 2−t+1 , dann liefert Entweder ist ε < 2−t+1 oder Ew |AL| ≤ 16|P| AL : h 7→ logg h den DL mit der erwarteten Schrittzahl die P˜ zum Erfolg führt. Nach [Stinson1995] waren die Hauptkriterien beim Entwurf des SchnorrSchemas Geschwindigkeit und Effizenz, sowohl vom rechnerischen Standpunkt aus betrachtet als auch bzgl. der Information, die ausgetauscht wird. In [Schnorr1991] wird die gute Verwendbarkeit mit Smartcards hervorgehoben. Ein Vergleich mit anderen Schemata wie Fiat-Shamir und RSA zeigt, dass sowohl die Schlüssel kürzer, als auch die Anzahl der Multiplikationen weniger sind. Zudem können viele Operationen bereits im Voraus berechnet werden, so dass nur sehr wenige Berechnungen wirklich „online” durchgeführt werden müssen. Nach Satz 2.1.2 auf Seite 22 ist die DL-Identifikation sicher gegen Angriffe aus dem Stand, ˜ sofern der DL schwer ist: DL ≤ pol P. Wir unterscheiden passive und aktive Angriffe: ˜ Passiver Angriff. Der Angreifer C hört (P,V ) ab und versucht sich dann als P.
26
2. DISKRETE LOGARITHMUS IDENTIFIKATION
Aktiver Angriff. C fungiert erst als V˜ in (P, V˜ ) und dann versucht sich dann als P˜ in ˜ ) („man in the middle attack”). (P,V Die Frage, ob bei einem aktiven oder passiven Angriff Informationen über x preisgegeben werden bestimmt die Sicherheit des Verfahrens. So ist in (P,V ) das Tripel (gr , e, y) zwar komponentenweise, jedoch nicht als ganzes Tripel zufällig (so hängt y von r und e ab). D EFINITION 2.1.5. Zero-knowledge Protokolle geben keine Informationen preis. Ein Beweissystem (P,V ) ist genau dann zero-knowledge über L, wenn ein Simulator M existiert, der in erwartet polynomialer Zeit läuft, so dass für eine beliebige prob. pol. Zeit V 0 für eine Eingabe x ∈ L mit Zeugen w und einer Hilfseingabe zu V 0 y zwei Ensemble1 0 VP(x,w) (x, y) und M(x,V 0 (x, y)) gibt die polynomiell ununterscheidbar sind. M ist es dabei erlaubt V 0 in einem Unteraufruf zu benutzen. Nach [FeigeFiatShamir1988] ist ein interaktives Beweissystem zur Zugehörigkeit in L zero-knowledge, wenn für alle Eingaben aus L, alle V ihre Sicht der Kommunikation in (P,V ) von einer pol. Zeit prob. Turing-Maschine M erzeugen lassen können, die eine ausgezeichnete Wahrscheinlichkeitsverteilung besitzt. N OTE 2.1.6. In [Salomaa1996, Kapitel 6] ist ein Protokoll zero-knowledge gdw. gilt (1) Der Prover kann den Verifier nicht betrügen. Wenn P das Geheimnis nicht kennt, so sind seine Chancen V zu betrügen vernachlässigbar klein. (2) Der Verifier kann nicht den Prover betrügen. Aus den Informationen, die bei dem Protokoll „freigesetzt” werden bekommt sie keinen Hinweis auf das Geheimnis. Insbesondere kann V das Geheimnis keinem Anderen beweisen ohne es selbst zu kennen. (3) V lernt von dem Protokoll nichts, was sie nicht ohne Hilfe von P lernen könnte. V kann also das Protokoll selbst simulieren. Während die ersten beiden Eigenschaften lediglich für das Bit-Commitment notwendig sind, ist die 3. Eigenschaft die entscheidende für ein zero-knowledge Protokoll. Dazu folgende Definitionen: D EFINITION 2.1.7. Das Protokoll (P,V ) heisst perfekt zero-knowledge, wenn es einen prob. pol. Zeit Simulator ϕ gibt mit £ ¤ ϕ : (V˜ , P) 7→ (g, ¯ e, y) ∈ G × 0, 2t − 1 × Zq , ¡ ¢ so dass ϕ V˜ , h genau wie in (P, V˜ ) verteilt ist. Dabei wird ein Aufruf von V˜ als ein Schritt gerechnet. Die Verteilung von (P, V˜ ) kann also ohne den geheimen Schlüssel x erzeugt werden. Ein honest verifier zero-knowledge Protokoll liegt vor, wenn der Simulator ϕ nur für V (statt für beliebige V˜ ) korrekt simuliert. N OTE 2.1.8. Bei einem perfekt zero-knowledge Protokoll kann V also keine Informationen über das Geheimnis abgesehen von dessen Existenz erhalten, im Gegensatz zu nicht perfekten Protokollen, bei denen V Informationen erhält, die online oder in Polynomialzeit benutzt werden können. Beispiel ist z.B. der Einsatz von RSA beim Verschlüsseln 1Unter einem Ensemble verstehen wir eine Folge von Wahrscheinlichkeits-Verteilungen.
2.2. k-FACH SEQUENTIELLE DL-IDENTIFIKATION
27
des Commitments, das nicht perfekt ist, da es keinen Beweis für die nicht-Existenz eines Faktorisierungsalgorithmus in Linearzeit gibt. L EMMA 2.1.9. Zu (P,V ) gibt es einen perfekten Simulator ¡ ¢ ¡ ¢ ϕ : V˜ , h 7→ (g, ¯ e, y) mit Ew |ϕ V˜ , h | ≤ |V˜ |2t . ˜ mit ein. B EWEIS . |V˜ | schließt |P| (1) ϕ wählt r ∈R Zq , e˜ ∈R [0, 2t [ und setzt g¯ := gr h−e˜
¡ ¢ £ £ , e := e V˜ , g¯ ∈ 0, 2t ,
wie V˜ mit g. ¯ (2) if e 6= e˜ then reset V˜ and restart. else y := r. Die Verteilung von (g, ¯ e, y) ist wie bei (P, V˜ ): (g, ¯ e) ∈R G × [0, 2t [, y ist eindeutig bestimmt durch g, g, ¯ e und g¯ = gy h−e . ¤ D EFINITION 2.1.10. 2t ist genau dann polynomial, wenn gilt, dass 2t poly(Bitlänge von h), 2t also polynomial in der Bitlänge von h ist. P ROPOSITION 2.1.11. Die DL-Identifikation ist perfekt zero-knowledge wenn 2t polynomial ist. Beachte: P ist polynomialzeit, d.h. |P|=poly(Bitlänge h). Im Fall G ⊂ Z∗p gilt: 2t polynomial ⇔ t = O (lg lg p) ⇔
2t = (lg p)O(1) .
Fazit: Die DL-Identifikation hat eine Betrugswahrscheinlichkeit ≤ 2−t – also ein Sicherheitsniveau 2t . Aber nur dann wenn 2t polynomial ist wird nachweislich keine Information an V˜ preisgegeben. Bezüglich der Signatur-Erzeugung ist die Schnorr-Signatur der Star mit 0 onlineMultiplikationen. Dieser Wert wird durch ein Preprocessing ermöglicht. 2.2. k-fach sequentielle DL-Identifikation Das Protokoll (Pk ,V k ) wiederholt das Protokoll (P,V ) k-mal mit unabhängigen r1 , . . . , rk ∈R ˜ k ). Zq und e1 , . . . , ek ∈R [0, 2t [. Entsprechendes gilt für (Pk , V˜ ) und (P,V ˜ h) = 2−kt , wobei gilt L EMMA 2.2.1. Zu (Pk ,V k ) gibt es ein prob. pol. Zeit P˜ mit ERF(P, ¡ ¢ £ ¤ ˜ h = Wsw (P,V ˜ ) akzeptiert mit h , ERF P, ˜ k ) ist. wobei w gleich der Anzahl der Zufallsbits von (P,V B EWEIS . P˜ wählt e˜1 , . . . , e˜k ∈R Zq und agiert wie P˜ von Lemma 2.1.1 auf Seite 22. Falls (e˜1 , . . . , e˜k ) = (e1 , . . . , ek ) dann hat P˜ Erfolg. ¤ Lemma 2.2.1 gilt für beliebige V˜ statt V , sofern ein Aufruf von V˜ als ein Schritt gezählt wird.
28
2. DISKRETE LOGARITHMUS IDENTIFIKATION
P ROPOSITION 2.2.2. Zu (Pk ,V k ) gibt es einen prob. Algorithmus ˜ h) 7→ logg h AL : (P,
mit
˜ ε ), E |AL| = O(|P|/
˜ k ) hat. sofern P˜ eine Erfolgswahrscheinlichkeit ε ≥ 2−tk+1 für (P,V ˜ h) funktioniert analog zu Algorithmus 5 auf SeiB EWEIS . Der Algorithmus AL(P, te 23 und ist in Algorithmus 6 beschrieben. ¤ ˜ h) zu (P,V ) Algorithm 6 AL(P, k (1) u := 0; *** Stufe 1: *** (2) do ¡ ¢ ˜ w , y := y(P, ˜ w, e ). (a) g¯ := g¯1 P, 1 1 (b) for i = 2, . . . , k do ˜ w, e , . . . , e ), yi := y(P, ˜ w, e , . . . , e ) (i) g¯i := g¯i (P, 1 i−1 1 i−1 (c) u³:= u + 1; ´ (3) until ERFw,e = 1 ; *** Stufe 2: *** *** In u stehen #Versuche beim Erzeugen von w, g, y, e *** (4) Analog zu Algorithmus 5 Schritt 4.
Die Erfolgsmatrix. Wieder wird die Erfolgsmatrix zur Modellierung der Wahrscheinlichkeiten eingesetzt (siehe Abbildung 2.2.1).
e ∈ [0, 2t [k e
˜
w ∈ {0, 1}|P|
w
ERFw,e
A BBILDUNG 2.2.1. Erfolgsmatrix für die k-fach sequentielle Identifikation Ziel von AL ist es wieder zwei Einsen in derselben Zeile w zu finden. Zwei solche Einsen liefern dann logg h. Wegen ε ≥ 2−tk+1 ist der Anteil der Eins-Einträge ≥ 2−tk+1 . Mindestens die Hälfte der Einsen ist in schweren Zeilen (mit ≥ 2 Einsen). Fazit: ˜ ε ). Entweder gilt ε < 2−tk+1 oder E |AL| ≤ O(|P|/
2.2. k-FACH SEQUENTIELLE DL-IDENTIFIKATION
29
L EMMA 2.2.3. Zu (Pk ,V k ) gibt es einen perfekten Simulator ϕ : (V˜ , h) → (g, ¯ e, y) ¯ ¯ mit E ¯ϕ (V˜ , h)¯ ≤ (|Pk | + |V˜ |)2t , wobei g = (g¯1 , . . . , g¯k ), e = (e1 , . . . , ek ), y = (y1 , . . . , yk ). B EWEIS . (Analog zu Lemma 2.1.9 auf Seite 27) ϕ simuliert die k Runden iterativ. Sobald e˜1 = e1 , . . . , e˜i = ei probt er e˜i+1 solange bis e˜i+1 = ei+1 . Dabei wird nur Runde i + 1 zurückgedreht. ¤ P ROPOSITION 2.2.4. Die k-fach sequentielle DL-Identifikation ist perfekt zero-knowledge falls 2t polynomial ist, d.h. t = O (lg(Laenge der Eingabe)) mit z.B. Länge der Eingabe gleich lg p falls G ⊂ Z∗p . R EMARK 2.2.5. ϕ in Lemma 2.2.3 ist um 2tk 2−t schneller als jedes P˜ in Satz 2.2.2 auf der vorherigen Seite sofern DL schwer ist. Fazit: Die k-fach sequentielle DL-Identifikation mit t = O (1) ist sicher gegen passive Angreifer falls der DL schwer ist. Aktive Angreifer. A fordert poly-viele Identifikationen von Pk und versucht dann Pk ˜ k ) mit V˜ = V˜ , P˜ = P˜ . zu personifizieren: l-mal (Pk , V˜ ), dann (P,V A A P ROPOSITION 2.2.6. Zu (Pk ,V k ) mit t = O (1) gibt es prob. Alg. AL : (A, h) 7→ logg h
mit
EwAL |AL| = O(|AL|/ε ),
sofern A Erfolgswahrscheinlichkeit ε ≥ 2−tk+1 hat. B EWEIS . (Idee) Der Algorithmus AL arbeitet im Prinzip wie AL von Satz 2.2.2 – nur wird vor jedem Aufruf von P˜ das Protokoll l-mal (Pk , V˜ ) durch einen pol.-Zeit Simulator perfekt simuliert. ¤ Fazit: Die k-fach sequentielle DL-Identifikation ist – für 2t polynomiell – sicher gegen aktive Angreifer sofern der DL schwer ist. Man-in-the-middle-Attacke. (Desmedt, Goutier, Bengo, LNCS 293 (1988), CRYP˜ ), indem er die Fragen von V in (P,V ˜ ) von P beantworten TO 87) A personifiziert P in (P,V lässt.
30
2. DISKRETE LOGARITHMUS IDENTIFIKATION
2.3. DL-Identifikation mit kurzer Kommunikation Öffentlich: g, G = hgi , |G| = q prim, h = gx und die Hash-Funktion H mit H : G × {0, 1}∗ → [0, 2t [ wie bei den Schnorr-Signaturen. Privat: x ∈R Zq . Das Protokoll verläuft wie folgt: (P,V )I 1. 2.
P r ∈R Zq , e := H(gr , m), y := r + xe ∈ Zq
←m e, y →
V m ∈R {0, 1}∗ ?
H(gy h−e , m) = e
3.
V generiert also eine zufällige Nachricht m und schickt sie an P, der daraufhin eine SchnorrUnterschrift (e, y) zu m generiert und diese an V zurückschickt. P˜ kann m nicht zur Personifizierung benutzen, weil m zufällig ist. Die man-in-the-middle Attacke wird nicht verhindert!
Länge der Kommunikation.
(P,V )I (P,V )
|(m, e, y)| |(gr , e, y)| G ⊂ Z∗p G ⊂ EA,B (Fq )
= = = =
t + t + lg q = 320 |gr | + t + lg q 1024 + 80 + 160 = 1264 2 lg q + 80 + 160 = 540
Hierbei werden als Parametergrößen t = 80 und log2 q = 160 empfohlen. Random Oracle Modell (ROM). D EFINITION 2.3.1. Unter dem Random Oracle Modell (ROM) verstehen wir eine Zufallsfunktion H : G × {0, 1}∗ → [0, 2t − 1] die zufällig aus allen Funktionen dieses Typs nach der Gleichverteilung gezogen wurde. H wird als H-Orakel modelliert. ¡ ¢ H(g1 , m1 ), . . . , H(gl , ml ) ∈R [0, 2t [l ist zufällig, gleichverteilt für verschiedene (g1 , m1 ), . . . , (gl , ml ). N OTE . In [PointchevalStern1996] wird verlangt, dass im Random Oracle Model eine Hashfunktion als ein Orakel angesehen werden kann, das für jede neue Anfrage einen zufälligen Wert liefert. Auf identische Anfragen müssen jedoch gleiche Antworten geliefert werden. Beweise, denen dieses Modell zu Grunde liegt, belegen die Sicherheit eines Signatur-Schemas nur dann, wenn die verwendete Hashfunktion keine Schwachstellen hat. R EMARK 2.3.2. In (P,V )I ist der aktive Angreifer A eingeschränkt, denn V˜ kann die Frage e nicht frei wählen. V˜ lernt durch die Unterschriften zu Nachrichten seiner Wahl also nichts. P ROPOSITION 2.3.3. Sei P˜ ein Angreifer auf (P,V )I aus dem Stand mit l H-Aufrufen. Im ROM gibt es einen prob. Alg. ˜ h) → logg h mit EH,w |AL| = O(l|P|/ ˜ ε ), AL : (P, sofern P˜ Erfolgswahrscheinlichkeit ε ≥ 2−t+1 l hat. Zum Beweis wird noch folgender Korollar benötigt: C OROLLARY 2.3.4. Es gilt: DL ≤ pol Angriffe aus dem Stand auf (P,V )I .
2.3. DL-IDENTIFIKATION MIT KURZER KOMMUNIKATION
31
B EWEIS . (Satz 2.3.3) O.B.d.A. gelte l ≤ 2t−1 . L EMMA 2.3.5. Hat P˜ für (m, e, y) mit W sH > 2−t Erfolg, dann hat P˜ das H-Orakel über H(gy h−e , m) befragt. B EWEIS . Andernfalls gilt im ROM W sH [H(gy h−e , m) = e] ≤ 2−t .
¤ ¤
Damit können wir o.B.d.A. annehmen, dass P˜ nur mit solchen (H, e, y, m) Erfolg hat, für die H(gy h−e , m) vor der Berechnung von (y, e) erfragt wurde. Die erfragten H-Werte seien H(g1 , m1 ), . . . , H(gl , ml ). Dabei hängt (gi+1 , mi+1 ) beliebig von H(g1 , m1 ), . . . , H(gi , mi ) ab. AL benutzt P˜ zusammen mit einer statistisch unabhängigen Hashfunktion H. ¯ e, L EMMA 2.3.6. Angenommen, P˜ hat mit (gi , mi ) für (H, e, y), (H, ¯ y), ¯ (e, y) 6= (e, ¯ y) ¯ Erfolg. Dann gilt y − y¯ logg h = . e − e¯ ¯ e, B EWEIS . Weil P˜ zur H-Anfrage (gi , mi ) für (H, e, y) und (H, ¯ y) ¯ Erfolg hat, gilt gy h−e = gi = gy¯ h−e¯ und somit logg h =
y−y¯ e−e¯ .
¤
Wir beweisen nun Satz 2.3.3 auf der vorherigen Seite: B EWEIS . Grob skizziert sieht Algorithmus AL folgendermaßen aus: AL sucht zu fe˜ ¯ i , mi ), für die P˜ mit stem (gi , mi ) ein zufälliges wP˜ ∈ {0, 1}|P| und zufällige H(gi , mi ), H(g (e, y)H,w und (e, ¯ y) ¯ H,w Erfolg hat und e 6= e. ¯ Nach Lemma 2.3.6 liefert dieses logg h. ¯ P˜
P˜
In Stufe 1 probt AL solange zufällige wP˜ und H(gi , mi ) bis P˜ mit (e, y)H,w Erfolg hat. Sei P˜ u die Anzahl der Proben. ¯ i , mi ) bis zum zweiten In Stufe 2 probt AL zu diesem wP˜ bis zu u unabh. Zufallswerte H(g Erfolg mit (e, ¯ y) ¯ H,w . ¯ P˜
Dabei ist i fest, die Werte (g1 , m1 ), . . . , (gi , mi ), ¯ , m ), . . . , H(g H(g , m ) = H(g 1
1
1
1
¯
i−1 , mi−1 ) = H(gi−1 , mi−1 )
sind durch wP˜ , P˜ bestimmt. Für festes i, 1 ≤ i ≤ l hat die Erfolgsmatrix die Form wie in Abbildung 2.3.1 angegeben. ¤ FACT 2.3.7. ∃i, 1 ≤ i ≤ l, so dass P˜ mit H(gi , mi ) mit W sH,w ≥ 2−t+1 Erfolg hat. P˜
B EWEIS . Nach Voraussetzung hat P˜ mit W sH,w ≥ 2−t+1 l Erfolg. P˜
Für festes i arbeitet AL wie AL von Satz 2.1.2 auf Seite 22. Die erwartete Anzahl der Proben von AL ist dabei ≤ 16ε −1 sofern P˜ mit i Erfolgswahrscheinlichkeit ε ≥ 2−t+1 hat. ¤
32
2. DISKRETE LOGARITHMUS IDENTIFIKATION
H(g j , m j ) ∈ [0, 2t [ e
wP˜
2t Spalten
ERF
A BBILDUNG 2.3.1. Erfolgsmatrix bei der DL-Identifikation mit kurzer Kommunikation Wir versuchen nun, Satz 2.3.3 auf Seite 30 auf aktive Angreifer A zu übertragen: A führt ¯ ˜ )I mit V˜ = V˜ , P˜ = P˜ aus. dazu l-mal (P, V˜ )I und dann (P,V A A Kernidee: AL erzeugt die Verteilung (P, V˜ )I selbst ohne x. AL wählt r ∈R Zq , e ∈R [0, 2t [ und setzt H(gy h−e , mV˜ ) = e. AL erzeugt damit exakt die Verteilung von (P,V )I im ROM. Dieser Schritt zählt als Orakel-Anfrage und eine nochmalige, echte Befragung des H-Orakels zu H(gy h−e , mV˜ ) wird verboten. P ROPOSITION 2.3.8. Es sei A ein aktiver Angreifer zu (P,V )I , der das H-Orakel l-mal befragt. Im ROM gibt es einen prob. Alg. AL : (A, h) 7→ logg h mit Eh,w |AL| = O(l|A|/ε ), sofern A Erfolgswahrscheinlichkeit ε ≥ 2−t+1 hat. Die Anzahl l der H-Orakel Fragen spielt dieselbe Rolle wie im Bew. von Satz 2.3.3 auf Seite 30. Nach Satz 2.3.8 gilt also DL ≤ pol aktive Angriffe zu (P,V )I . Chosen Message Attack (CMA) auf Schnorr Signaturen. Ein Angriff könnte folgendermassen aussehen: (1) Der Angreifer A erzeugt Signaturen zu Nachrichten seiner Wahl mittels des SignaturOrakels. (2) Dann erzeugt er eine neue Signatur – aber dieses Mal ohne das Signatur-Orakel. P ROPOSITION 2.3.9. Sei A ein CMA-Angreifer auf Schnorr-Signaturen mit l Aufrufen des H-Orakels. Im ROM gibt es einen prob. Alg. AL : (A, h) 7→ logg h mit EH,w |AL| = O(l|A|/ε ), sofern A Erfolgswahrscheinlichkeit ε ≥ 2−t+1 l hat. C OROLLARY 2.3.10. Im ROM sind Schnorr-Signaturen sicher gegen CMA sofern DL schwer ist. B EWEIS . Der Beweis von Satz 2.3.9 ist analog zu Satz 2.3.3 und Satz 2.3.8. Der Angreifer A erzeugt für die CMA-Attacke die erforderlichen Unterschriften, indem er die
2.4. ABWEHR DER MAN-IN-THE-MIDDLE-ATTACK
33
Werte von H selbst zufällig wählt. Jede solche Erzeugung eines H-Wertes gilt als OrakelAufruf und die nochmalige, echte Befragung des Orakels an derselben Stelle ist verboten. ¤ Historie. Der Vorschlag H : G × {0, 1}∗ → [0, 2t [ als Zufallsfunktion zu betrachten geht zurück auf [FiatShamir1986]. Weiter ausgearbeitet wurde das ROM durch Bellare, Rogaway in [BellareRogaway1993]. Das ROM ist weithin anerkannt aber auch umstritten. Es bedeutet, dass die Werte H(gi , mi ) für i = 1, . . . , l, die ein Angreifer auswählt, statistisch unabhängig sind. Der Algorithmus AL von Satz 2.1.2 auf Seite 22 wurde eingeführt in [FeigeFiatShamir1988] für das Fiat-Shamir-Schema. Die Übertragung von AL auf die DL-Identifkation ist in [Schnorr1991] erschienen. Die Übertragung von Satz 2.1.2 auf DL-Signaturen mit stat. unabhängigen H-Orakeln steht erstmals in [PointchevalStern1996] (Orakel Replay Attacke, Forking Lemma). Das dort bewiesene Lemma 1 ist viel schwächer als Satz 2.3.9. Faustregel. Die Analyse einer 3-Runden Identifikation ist einfacher als die des zugehörigen Signatur-Verfahrens. Ist die Identifikation sicher gegen aktive Angriffe, dann sind die zugehörigen Signaturen sicher gegen CMA sofern die Hashfunktion keine Schwächen hat. 2.4. Abwehr der Man-in-the-middle-Attack Idee: P muss wissen, mit welchem V er kommuniziert. Dazu fordert P den öffentlichen Schlüssel hV von V an. Das Protokoll läuft dann wie folgt ab: (P,V )II 1. 2.
P r ∈R Zq , e := H(gr , (m, hV )), y := r + xe ∈ Zq
3.
← hV → ←m e, y →
V m ∈R {0, 1}∗ ?
H(gy h−e , (m, hV )) = e
Die Kommunikation in (P,V )II identifiziert P und V . Die Identifikation ist flüchtig, ohne bleibende Bedeutung. Häufig sind man-in-the-middle-Attacken und aktive Attacken durch die Situation praktisch ausgeschlossen, z.B. bei der Identifikation einer Chipkarte gegenüber dem Geldausgabeautomat (GA). Die Identifizierung des GA gegenüber der Chipkarte ist kryptographisch sinnlos und dient nur zu Prüfzwecken. Ein betrügerischer GA erfragt die Pinnummer, behält die Karte und meldet „Störung”. Schwächere Annahmen als ROM. D EFINITION 2.4.1. H ist kollisionsresistent, wenn keine Kollision (w, w0 ) mit w 6= w0 , H(w) = H(w0 ) bekannt ist. In der asymptotischen Theorie verlangt man, dass Kollisionen nicht in pol. Zeit konstruierbar sind. L EMMA 2.4.2. Damit DSA-Signaturen sicher gegen CMA sind, muss H kollisionsresistent sein.
34
2. DISKRETE LOGARITHMUS IDENTIFIKATION
B EWEIS . Ang. H(m) = H(m0 ), dann ist jede DSA-Signatur von m0 auch DSA-Signatur von m. ¤ Lemma 2.4.2 gilt nicht für Schnorr-Signaturen. Kollisionen H(g, ¯ m) = H(g¯0 , m0 ) mit g¯ 6= g¯0 sind unschädlich. L EMMA 2.4.3. Damit Schnorr-Signaturen sicher gegen CMA sind, muss H(g, ¯ ∗) für fast alle g¯ schwer invertierbar sein. B EWEIS . Andernfalls erfragt A Signaturen (e, y) zu zufälligen m und löst H(gy h−e , m0 ) = e nach m0 . Dann ist (e, y) Signatur für m0 . ¤ In [FeigeFiatShamir1988] werden die Begriffe „completeness” und „sound” im Rahmen von Identifikationen definiert: ¯ B¯ werden D EFINITION . Ein Paar interaktiver prob. Polynomialzeit Turingmaschinen A, interaktives Beweissystem über das Wissen für das Polynomialzeit Prädikat P(I, S) genannt, wenn gilt: (1) Completeness: Für alle I, für die P(I, S) erfüllbar ist ist die Ausführung von ¯ B) ¯ für die Eingabe I mit sehr großer Wahrscheinlichkeit erfolgreich. Formal: (A, ∀a, ∃c, ∀|I| > c : if A¯ hat auf seinem „Wissensband” ein S,so dass P(I, S), und B¯ hat einen leeren String auf seinem „Wissensband” then ¯ B) ¯ accepts I) > 1 − 1/|I|a . W s((A, Wenn wir es mit dem echten Prover A¯ zu tun haben, so enthält sein „Wissensband” ein geeignetes S. Das Wissensband des Verifiers wird als leer angenommen. (2) Soundness: Es gibt eine prob. pol.zeit Turing Maschine M (mit voller Kontrolle über A), so dass es für alle A, jeden beliebigen initialen Inhalt von A’s Wissensband KA und Zufallsband RA, ein genügend langes I gibt, so dass, wenn die ¯ bei der Eingabe I mit einer nicht zu vernachlässigenden Ausführung von (A, B) Wahrscheinlichkeit erfolgreich ist, dann genügt die Ausgabe, die von M am Ende der Ausführung von M(A, RA, KA) auf die Eingabe I produziert wird, dem Prädikat P mit sehr großer Wahrscheinlichkeit. Formal: ¯ akzeptiert I) > 1/|I|a ⇒ ∀a, ∃M, ∀b, ∀A, ∃c, ∀|I| > c, ∀RA, ∀KA gilt: W s((A, B) W s(Ausgabe von M(A, RA, KA) fuer I genuegt P) > 1 − 1/|I|b .
2.5. OKAMOTO DL-IDENTIFIKATION
35
2.5. Okamoto DL-Identifikation [Okamoto1992] Ziel: Beweisbar sichereDL-Identifikation ohne ROM. ® ® Öffentlich: g1 , g2 , G = g1 = g2 und |G| = q Private-Key: (x1 , x2 ) ∈R Z2q . Public-Key: h = gx11 gx22 . Das Protokoll hat folgenden Ablauf: (P,V )Ok 1. 2.
P r1 , r2 ∈R Zq
3.
yi := ri + exi
V g¯ :=
gr11 gr22
→
←e
e ∈R [0, 2t [
y1 , y2 →
g¯ = gy11 gy22 h−e
?
Korrektheit. Die Korrektheit ergibt sich aus der folgenden Gleichung: gy11 gy22 h−e
= gr11 +ex1 gr22 +ex2 h−e ¯ = gr11 gr22 = g.
L EMMA 2.5.1. Es gibt ein pol. Zeit P˜ mit Erfolgswahrscheinlichkeit 2−t . B EWEIS . Der Ablauf ist: 1. P˜ wählt e˜ ∈R [0, 2t [, r1 , r2 ∈R Zq und sendet dann g¯ = gr11 gr22 h−e˜ . 2. B sendet e ∈R [0, 2t [. 3. P˜ sendet y1 := r1 , y2 := r2 . Falls nun e = e˜ gilt ist g¯ = gy11 gy22 h−e .
¤
Offenbar ist (P,V )Ok honest verifier zero-knowledge, da V˜ zur Simulation genauso verteilt sein muss wie V . ˜ ) für w ˜ bei zwei Paaren (e, y), (e, L EMMA 2.5.2. Hat P˜ in (P,V ¯ y) ¯ ∈ [0, 2t [×Zq Erfolg, Ok P dann gilt y¯ − y2 + x2 (e − e) ¯ . logg g1 = 2 2 y1 − y¯1 + x1 (e¯ − e) B EWEIS . Es gilt gy11 gy22 h−e = g¯w ˜ = gy1¯1 gy2¯2 h−e¯ . P
Somit gilt gy11 −y¯1 gy22 −y¯2 = he−e¯ = (gx11 gx22 )e−e¯ . Also ist ¯ ¯ gy11 −y¯1 +x1 (e−e) = g2y¯2 −y2 +x2 (e−e)
und es folgt die Behauptung. O.B.d.A. ist logg g1 dem Erzeuger von g1 , g2 nicht bekannt. 2
¤
36
2. DISKRETE LOGARITHMUS IDENTIFIKATION
˜ ) Betrachte den aktiven Angreifer A. A fordert l-mal (P, V˜ )Ok und erzeugt dann (P,V Ok Signatur mit V˜A , P˜A . Hat A Erfolgswahrscheinlichkeit ≥ 2−t+1 , dann liefert die Koalition [P, A] den geheimen logg g1 . 2
P ROPOSITION 2.5.3. Zu (V, P)Ok gibt es einen prob. Alg. AL : (A, x) 7→ logg g1 mit Ew |AL| = 2 O(|A|/ε ), sofern A Erfolgswahrscheinlichkeit ε ≥ 2−t+1 hat – o.B.d.A. enthalte |A| auch |P|. B EWEIS . AL konstruiert zu einem wA Erfolge zu zwei Paaren (e, y), (e, ¯ y) ¯ und berechnet logg g1 nach Lemma 2.5.2. Zur Simulation von A wird die Kommunikation (P, V˜ )Ok 2 mit Hilfe von P erzeugt. AL entsteht durch eine Koalition von P und A. Im Übrigen arbeitet AL wie der Alg. AL von Satz 2.3.8 auf Seite 32. ¤ C OROLLARY 2.5.4. (V, P)Ok ist sicher gegen aktive Angriffe, gdw. der DL schwer ist. Man beachte, dass für aktive Angriffe die Protokolle (Pk , V˜ ), (P, V˜ )I , (P, V˜ )Ok auf verschiedene Weise simuliert werden: (Pk , V˜ ) in Satz 2.2.6 auf Seite 29: Das Protokoll (Pk , V˜ ) wird mit t = O(1) durch einen pol. Zeit Simulator perfekt simuliert. (P, V˜ )I in Satz 2.3.8 auf Seite 32: Das Protokoll (P, V˜ )I wird im ROM simuliert, indem AL geeignete zufällige H selbst wählt. (P, V˜ )Ok in Satz 2.5.3: Das Protokoll (P, V˜ )Ok wird mit Hilfe des geheimen Schlüssels x simuliert. Dies geht, weil AL in Satz 2.5.3 logg g1 und nicht x = logg h 2 berechnet. Fazit: In der Praxis wird oft das Schnorr-Schema dem Okamoto-Schema vorgezogen, obwohl es für dieses keinen Beweis der Sicherheit gibt – nicht einmal unter der Annahme, dass das DL-Problem schwer ist. Das liegt daran, dass bis heute keine Schwäche im Schnorr-Schema gefunden wurde und es in der Praxis um einiges schneller ist als das Okamoto-Schema.
2.6. Okamoto Signaturen ® ® Öffentlich: g1 , g2 , G = g1 = g2 und |G| = q mit Hashfunktion H : G × {0, 1}∗ → [0, 2t [. Public-Key: h = gx11 gx22 . Private-Key: (x1 , x2 ) ∈R Z2q . Signaturerzeugung: r1 , r2 ∈R Zq , g¯ := gr11 gr22 , e := H(g, ¯ m), yi := ri + exi für i = 1, 2. Signatur zu m: (e, y1 , y2 ) ∈ [0, 2t [×Z2q . ?
Prüfung: H(gy11 gy22 h−e , m) = e. In [Okamoto1992] wird in Theorem 20 versucht, Sicherheit gegen CMA zu beweisen. Dieses Theorem ist jedoch in sich widersprüchlich und kompliziert.
2.7. BRICKELL-MCCURLEY-IDENTIFIKATION
37
2.7. Brickell-McCurley-Identifikation [BrickellMcCurley92, Seite 29-39] „DL-Identifikation sicher wie Faktorisierung”. Seien p, q, w Primzahlen mit p − 1 = 2qw, w 6= q, g ∈ Z∗p \ {1} und gq ≡ 1. Öffentlich: p, g, qw. Public-Key: h = gx . Private-Key: q, w mit q · w schwer zerlegbar, x. In dem Protokoll nach [BrickellMcCurley92] wird einfach in (V, P) q durch qw = (p − 1)/2 ersetzt: (P,V )BM 1. 2.
P r ∈R Zqw
3.
y := r + ex mod qw
V g¯ := gr
→
←e
e ∈R [0, 2t [
y→
g = gy h−e
?
Wir übertragen Satz 2.1.2 auf Seite 22 von (P,V ) auf (P,V )BM . P˜ ist Angreifer aus dem Stand. ˜ h) 7→ logg h mit Ew |AL| = O(|P|/ ˜ ε ), P ROPOSITION 2.7.1. Es gibt einen prob. Alg. AL : (P, −t+1 ˜ sofern P Erfolgswahrscheinlichkeit ε ≥ 2 hat. B EWEIS . (Skizze) AL konstruiert zu einem w, g¯ zwei Lösungen (e, y) und (e, ˜ y): ˜ y − y ˜ gy h−e = g¯ = gy˜ h−e˜ ⇒ logg h = mod qw. e − e˜ ¤ O.B.d.A. gilt ggT(e − e, ˜ qw) = 1, andernfalls erhält AL die Zerlegung (p − 1)/2 = q · w. Wir beschreiben die Reduktion ˜ Zerlegung von (p − 1)/2 ≤ pol P. Wegen gq = 1 und h ∈ hgi gibt es ein eind. bestimmtes z ∈ Zq mit h = gz . Es gilt z − z˜ x = z= mod qw e − e˜ £ ¤ logg h = {z + iq | u = 0, . . . , w − 1}. FACT 2.7.2. x ist stat. unabh. von
y−y˜ e−e˜
∈ [logg h].
B EWEIS . Sei x = z + iq. AL hängt nur von h = gx und nicht von i ab. Es folgt µ ¶ y − y˜ 1 W sx [ggT − x, qw = q] = 1 − , e − e˜ w da nur im Fall i = 0 ein ggT ungleich q herauskommt.
¤
˜ qw) 7→ {q, w} mit Ew |AL| = O(|P|/ ˜ ε) P ROPOSITION 2.7.3. Es gibt einen prob. Alg. AL : (P, −t+1 ˜ sofern P Erfolgsw. ε ≥ 2 hat.
38
2. DISKRETE LOGARITHMUS IDENTIFIKATION
B EWEIS . (Skizze) AL erzeugt x ∈R Z∗qw , setzt h = gx und berechnet wie in Satz 2.7.1 y−y˜ 1 (e, y), (e, ˜ y) ˜ mit x ≡ e− e˜ mod qw. AL erhält mit Ws 1 − w die Zerlegung gemäß q = ggT(
y − y˜ , wq). e − e˜ ¤
Fazit: Somit ist (P,V )BM sicher gegen Angriffe aus dem Stand sofern (p − 1)/2 schwer zerlegbar ist UND logg h schwer berechenbar ist: Sogar wenn P und V zusammenarbeiten können sie höchsten (p − 1)/2 zerlegen, was aber nichts bringt, da dann immer noch der DL in Zq berechnet werden muss. Aktive Angreifer A. Ein aktiver Angreifer A fordert l-mal (P, V˜ )BM und versucht ˜ )BM mit V˜ , P˜ zu erzeugen. dann (P,V A A P ROPOSITION 2.7.4. Es gibt einen prob. Alg. AL : (A, qw) 7→ {q, w} mit Ew |AL| = O(|A|/ε ) sofern A Erfolgswahrscheinlichkeit ε ≥ 2−t+1 hat. B EWEIS . Der Beweis geht wie der von Satz 2.7.3: Die Simulation von (P, V˜ )BM erfolgt mittels x, P. Dies ist möglich, weil AL nicht x = logg h, sondern {q, w} berechnet. ¤ Brickell-McCurley Signaturen. Erzeugung: r ∈R Zqw , e := H(gr , m), y := r + xe mod qw. Signatur: (e, y) Prüfen: H(gy h−e , m) = e. P ROPOSITION 2.7.5. Sei A ein CMA-Angreifer auf BM-Signaturen mit l Aufrufen des HOrakels. Im ROM gibt es einen prob. Alg. AL : (A, qw) 7→ {q, w} mit Ew,H |AL| = O(l|A|/ε ), sofern A Erfolgsw. ε ≥ 2−t+1 hat . B EWEIS . (Wie Satz 2.3.8 auf Seite 32 und in Satz 2.3.9 auf Seite 32) AL konstruiert ¯ e, zu einer Orakel-Frage (gi , mi ) zwei erfolgreiche Tripel (H, e, y), (H, ¯ y). ¯ Die angeforderten Signaturen der CMA-Attacke werden im ROM verteilungsgleich erzeugt, indem A geeignete zufällige H-Werte selbst wählt. ¤ Fazit: Im ROM sind BM-Signaturen sicher gegen CMA, sofern h 7→ logg h schwer ist UND (p − 1)/2 ist schwer zerlegbar. 2.8. Sicherheit gegen Message Recovery Betrachte NRH-Signaturen (siehe Abschnitt 1.9 auf Seite 19). D EFINITION 2.8.1. Der CMA-Angreifer reüssiert, wenn er die Signatur (e, y) einer Nachricht m, die nicht von H abhängt, erzeugt, so dass H(gy he¯ ) erfragt wurde und in die Berechnung von (e, y) eingeht. (H(g) ¯ Ã (e, y) mit gy he¯ = g). ¯ P ROPOSITION 2.8.2. Sei A ein CMA-Angreifer auf NRH-Signaturen mit l Aufrufen des HOrakels. Im ROM gibt es einen prob. Alg. AL : (A, h) 7→ logg h mit EH,w |AL| = O(l|A|/ε ), sofern A Erfolgsw.H,w ε ≥ 2l/q hat.
2.10. ALLGEMEINE PROOFS OF KNOWLEDGE
39
B EWEIS . AL befrage das H-Orakel über H(g1 ), . . . , H(gl ). Nach Annahme gibt es 1 ≤ i ≤ l, so dass mit H(gi ) Erfolgsw.H,w ≥ 2/q hat. Schließe weiter wie bei Satz 2.3.9 auf Seite 32 (Angriff auf Schnorr-Signaturen) und Satz 2.7.3 (Angriff auf BM-Signaturen) mit q ≈ 2t . AL konstruiert die Signaturen der gewählten Nachrichten der CMA-Attacke verteilungsgleich im ROM, indem er geeignete zufällige H-Werte selbst wählt. AL wählt e ∈R Zkq , m, y und setzt H(gy he¯ ) := e − m. Falls das H-Orakel über H(gy he¯ ) schon befragt war, wird ein neues e gewählt. Künftige Orakelfragen zu H(gy he¯ ) sind ausgeschlossen. ˜ i ), e, ˜ y) ˜ AL konstruiert zu einem wA˜ , gi = (g1 )w ˜ zwei erfolgreiche Tripel (H(gi ), e, y), (H(g A ˜ ˜ – eine Orakel replay Attacke. Dabei ist H(g1 ) = H(g1 ), . . . , H(gi−1 ) = H(gi−1 ) Teil von wA˜ . Es gilt dann gy he = hi = gy˜ he˜ und somit logg h =
y−y˜ e−e ˜ .
Die Konstruktion wird für i = 1, . . . , l wiederholt.
¤
2.9. Offene Sicherheitsprobleme • Sicherheit der DL-Identifikation (P,V ) gegen aktive Angreifer A. • Sicherheit von signierten ElGamal Ziffertexten gegen CCA: Öffentlich: h, g ∈ G, H Geheim: x = logg h ElGamal-Ziffertext zu m ∈ G: (gr , mhr ). Signierter ElGamal Ziffertext (gr , mhr , e, y) mit e = H(gy h−e , gr , mhr ). (e, y) ist Schnorr-Signatur zu Nachricht (gr , mhr ) mit Schlüsselpaar (r, gr ). Das Protokoll (P,V ) zur DL-Identifikation ist ein proof of knowledge von logg h: ˜ h) 7→ logg h mit Ew |AL| = P ROPOSITION 2.9.1. Es gibt einen prob. pol. Zeit Alg. AL : (P, −t+1 ˜ ε ), sofern ε ≥ 2 O(|P|/ . D EFINITION 2.9.2. Der Algorithmus AL ist ein knowledge extractor. 2.10. Allgemeine proofs of knowledge Sei R ⊂ Z × Z eine pol. Zeit Relation, d.h. R ist pol. Zeit entscheidbar, χR ist pol. Zeit berechenbar. R-Inversion. Gegeben: h ∈ Z. Finde: x ∈ Z mit (h, x) ∈ R oder zeige ¬∃x ∈ Z (h, x) ∈ R. Beispiele: (1) R = {(G, Ha) | G = (V, E) ger. Graph und Ha ⊂ G Hamiltonzyklus} (2) R = {((A, b), c) | (A, b) ∈ M(Z), c ∈ Zm und Ac ≥ bm,n+1 } (3) Ganzzahlige lineare Ungleichungen. P ROPOSITION 2.10.1. Zu jeder pol. Zeit Relation R gibt es ein 3-Rundenprotokoll (P,V )R , welches proof of knowledge ist zu (h, x) ∈ R. B EWEIS . Man zeigt es für ein NP-vollständiges Problem.
¤
40
2. DISKRETE LOGARITHMUS IDENTIFIKATION
Ein Proof of Knowledge für einen Hamiltonschen Kreis kann folgendermassen konstruiert werden: P will also V beweisen, dass er einen Hamiltonschen Kreis in G kennt, V diesen jedoch nicht verraten: Eingabe: I ∈ LHam (1) P wählt |I| zufällige Paare von Kodier- und Dekodierschlüssel. (2) P permutiert die Knoten von I zufällig. (3) P kodiert die Einträge der Adjazenzmatrix des permutierten Graphen, jeden Eintrag mit einem eigenen Schlüssel und sendet die Kodierung mit den Kodierschlüsseln an V . (4) V wählt e ∈R {0, 1}. (5) if e = 0 then (a) P sendet V die privaten Schlüssel und die zufälligen Knotenpermutation. (6) else (a) P sendet V die privaten Schlüssel zu den Kanten eines Hamiltonschen Kreis im permutierten Graphen. Ein Simulator ϕ für dieses Protokoll könnte so vorgehen, dass er e errät und dann wie folgt vorgeht: e = 0: ϕ wählt eine zufällige Permuation von I mit Kodierschlüsseln. e = 1: ϕ kodiert einen beliebigen Hamiltonkreis mit |I|-vielen Knoten. Wir betrachten die ElGamal Verschlüsselung Ek (m, r) = (gr , mhr ) der Nachricht m zum öffentlichen Schlüssel h. D EFINITION 2.10.2. Die ElGamal Verschlüsselung ist semantisch sicher, wenn für jeden prob. pol. Zeit Alg. AL : (g, h, m0 , m1 , Ek (mb , r)) 7→ W sr,b [b = b0 ]
=
mit vernachlässigbar kleinem ε .
b0 ∈ {0, 1} 1 +ε 2
(Kurz: Die Verteilungen Ek (m0 , r), Ek (m1 , r) sind bei gegebenem g, h, m0 , m1 pol. Zeit unentscheidbar, Bez.: puu)
Desweiteren benötigen wir folgenden Begriff: D EFINITION 2.10.3. ε ist vernachlässigbar klein, wenn ε ≤ O(n−t ) für alle t > 0 mit n =Eingabelänge. P ROPOSITION 2.10.4. Folgende Aussagen sind äquivalent: (1) ElGamal Verschlüsselung ist semantisch sicher. (2) Die beiden folgenden Verteilungen sind puu: (g, gx , gr , gxr ) , (g, gx , gr , gz ) mit r, x, z ∈R Zq . D EFINITION 2.10.5. Das Entscheidungsproblem 2) ist das Decisional Diffie Hellman Problem (DDH).
2.10. ALLGEMEINE PROOFS OF KNOWLEDGE
41
B EWEIS . (Satz 2.10.4) 2) ⇒ 1) : Betrachte folgende Verteilungen bzgl. r, x, z ∈R Zq , h = gx . Wir zeigen sukzessive, dass die Verteilungen in a), b) und c) puu sind. a) (g, h, gr , hr ), (g, h, gr , gz ) sind puu. b) Zu gegebenem m ∈ G sind (g, h, gr , mhr ), (g, h, gr , gz ) puu. c) Zu gegebenem m0 , m1 ∈ G sind (g, h, gr , m0 hr ), (g, h, gr , m1 hr ) puu. Es gilt a) nach Voraussetzung 2). Bei gegebenem m kann man mhr in hr überführen und umgekehrt hr in mhr überführen. Damit sind a) und b) äquivalent. Aus b) folgt c), weil die Relation ¬puu transitiv ist. Wären die Verteilungen in c) unentscheidbar, dann sind die Verteilungen in b) entweder für m = m0 oder m = m1 unentscheidbar, im Widerspruch zu b). 1) ⇒ 2) : Es genügt c) ⇒ b) zu zeigen. Die Verteilungen in c) bleiben puu wenn man m1 durch eine zufällige, unbekannte Nachricht ersetzt. Durch diese Ersetzung geht c) in b) über. ¤
KAPITEL 3
Faktorisierungsproblem, Protokolle Für dieses Kapitel sei auf [SchnorrKrypto1.3] verwiesen, wo eine elektronische Form dieses Kapitels heruntergeladen werden kann.
43
44
3. FAKTORISIERUNGSPROBLEM, PROTOKOLLE
3.1. ONG-SCHNORR IDENTIFIKATION
45
3.1. Ong-Schnorr Identifikation [OngSchnorr1990] Shoup, LNCS 1070 sowie J. Cryptology 1999 Schnorr LNCS 1109, 1294. Ziel war es die Kommunikation im Fiat Shamir Schema zu verkürzen. Es werden k Runden des FS-Schemas in eine Runde im OS-Schema komprimiert. Öffentlich: N = p · q. Geheim: p, q. k k k t Public-Key: v = (s21 , . . . , st2 ) ∈ (Z∗2 N ). Private-Key: s = (s1 , . . . , st ) ∈ (Z∗N )t . (P,V )OS
P
V
r ∈R Zq
1. 2. 3.
y
x
k := r2
→ e ∈R [0, 2k [t k ? 2 y = x ∏ti=1 vei i .
←e
:= r ∏ti=1 sei i
y→
P und V benötigen jeweils maximal kt +k −1 – im Mittel t+2 2 k – Multiplikationen/Quadrierungen. Dies gilt auch für Erzeugen/Prüfen der OS-Signaturen. Speziell für k = 10,t = 8. max. im Mittel 90 50 80 40 90 50
P, Sign.erzeugung davon on-line V , Sign.prüfung
Mult./Quadr. –”– –”–
˜ Sei P˜ Angreifer auf (P,V )OS aus dem Stand. Es gelte |P|, |V | = O(|P|). ˜ s, N) 7→ (X,Y, l) mit P ROPOSITION 3.1.1. Es gibt einen prob. Alg. AL : (P, • • • •
k
k+l
X,Y ∈ ZN , Y 2 = X 2 , 0 ≤ l < k, k k Y = Y (v) für v := (s21 , . . . , st2 ), X(s) ist linear in einem sν , 1 ≤ ν ≤ t, ˜ ε ), sofern P˜ mit v Erfolgsw. ε ≥ 2−kt+1 hat. Ew |AL| = O(|P|/
B EWEIS . AL konstruiert wie in Algorithmus 5 in Abschnitt 2.1 zwei 1’en in derselben Zeile wP˜ der Erfolgsmatrix von P˜ (siehe Abbildung 3.1.1). D.h. also, AL konstruiert x˜ = x(wP˜ ), (e, y), (e0 , y0 ) ∈ [0, 2k [t ×ZN mit t
y2 = x˜ ∏ vei i k
i=1
t
, y02 = x˜ ∏ vei i . k
0
i=1
Die Behauptungen gelten für Y
:= y/y0 , l := max{ j | e = e0
X
:=
t
mod 2 j }
∏ s(ei i −ei )/2 . 0
l
i=1
X ist linear in sν mit
2l+1
- (eν − e0ν ).
¤
46
3. FAKTORISIERUNGSPROBLEM, PROTOKOLLE
e ∈ [0, 2t [k e
˜
wP˜ ∈ {0, 1}|P|
ERF(wP˜ , e) ∈ {0, 1}
w
A BBILDUNG 3.1.1. Erfolgsmatrix von P˜ ˜ N) 7→ {p, q} P ROPOSITION 3.1.2. Für N mit 2k | p − 1 gibt es einen prob. Alg. FA : (P, k t ∗2 ˜ ε ) sofern P˜ für zufällige v ∈R (ZN ) Erfolgsws. ε ≥ 2−kt+1 hat. mit Ew |FA| = O(k|P|/ B EWEIS . Faktorisierungsverfahren FA für 2k | p − 1 (1) Wähle s ∈R (Z∗N )t . ˜ s, N) 7→ (X,Y, l) nach Satz 3.1.1. (2) AL : (P, k−l−1 k−1 (3) Z := Y 2 /X 2 . k k+l l+1 Wegen Y 2 = X 2 gilt Z 2 = 1, Z mod p nimmt wegen 2k | p−1 zufällig zwei Werte an – statistisch unabh. von Z mod q. Beachte, dass X(s) linear in einem sν ist. i (4) Berechne das kleinste i ≤ l + 1 mit Z 2 = 1. Es sind i und l Funktionen in v und wP˜ . Sie sind bei festem v konstant in s. • Fall 1: i ≤ 1, Z 2 = 1. Dann gilt mit W ss ≥ 12 , dass ggT(Z ± 1, N) = {p, q}. i−1
• Fall 2: i ≥ 2, Z 2
6= −1. Dann gilt i−1
ggT(Z 2 • Fall 3: i ≥ 2, Z
2i−1
± 1, N) = {p, q}.
= −1.
Wiederhole die Schritte 1-3 mit unabhängigen s ∈R (Z∗N )t . Tritt der Fall Wert i, 2 ≤ i < k, im Fall 3 doppelt auf, so gilt für die beiden Werte Z, Z 0 : Z2
i−1
= −1, Z 02
i−1
i−1
= −1, (ZZ 0 )2
= 1.
FA führt eine Liste der Paare (Z, i) von Fall 3. In dieser Liste wird jetzt (Z 0 , i) ersetzt durch i0
(ZZ 0 , i0 ) mit dem kleinsten i0 < i), so dass (ZZ 0 )2 = 1. Tritt i0 bereits mit (Z 00 , i0 ) in der Liste auf, so wird die Erniedrigung sukzessive fortgesetzt mit (Z, Z 0 , Z 00 , i00 ). FACT 3.1.3. Jeder Durchlauf von Fall 3 liefert – nach sukzessiver Erniedrigung von i – ein neues i in der Liste der Paare (Z, i).
3.1. ONG-SCHNORR IDENTIFIKATION
47
Nach ≤ k Durchläufen von Fall 3 wird i ≤ 1 und damit Fall 1 erreicht. Damit wird N nach höchstens k Durchläufen der Schritte 1-3 mit W s ≥ 12 zerlegt. Die Ws. bezieht sich auf die zufälligen s, welche in das Z mit Z 2 = 1 eingehen. ¤ Der Fall p − 1 = 2m mod 2m+1 , 1 ≤ m < k. Der Faktorisierungsalg. muss verändert k−1 mod p in s konstant ist. Wir verbessern hierzu die Aussage von Satz werden, weil X 2 3.1.1: L EMMA 3.1.4. In Satz 3.1.1 gilt
¼¸ · » 1 1 W swAL l < lg 4ε −1 ≥ , t 4
falls P˜ mit v eine Erfolgsw. ε hat. § ¨ B EWEIS . Für w := 1t lg 4ε −1 ist der Anteil der 1’en in der Erfolgsmatrix von P˜ ≥ 2−wt+2 . Eine Zeile wP˜ mit mehr als 2(k−w)t+1 1’en heisse schwer. Mindestens die Hälfte der 1’en liegt in schweren Zeilen. Der Alg. AL von Satz 3.1.1 konstruiert mit W s ≥ 21 zwei unabh. 1’en in einer schweren Zeile – ERF(wP˜ , e) = ERF(wP˜ , e0 ). Weil e, e0 unabhängig in [0, 2k [t gezogen werden, gilt W se0 [e = e0
1 mod 2w ] ≤ . 2
Zu festem e gibt es nämlich nur 2(k−w)t -viele e0 mit e = e0 mod 2w . Mit W s ≥ mod 2w .
1 4
findet AL somit in einer schweren Zeile wP˜ 1’en in Spalten e, e0 mit e 6= e0
Faktorisierungsverfahren zu p − 1 = 2m mod 2m+1 , 1 ≤ k < m k t −mt+2 . Ang. P˜ hat für zufällige v ∈ (Z∗2 N ) eine Erfolgsws. ε ≥ 2
Wir ändern den Alg. AL von Satz 3.1.1 so ab, dass ˜ v, N) 7→ (X,Y, l) mit 0 ≤ l < m. AL : (P, Dies ist nach Lemma 3.1.4 ohne weiteres möglich. Man macht stat. unabh. Versuche ˜ v, N) mit dem ursprünglichen AL – im Mittel ≤ 4 Versuche – bis 0 ≤ l < m erfüllt AL(P, ist. Ändere Schritt 3 des Alg. FAm zu m ≥ k ab zu: m−l−1
(3) (neu) Z := Y 2
m−1
/X 2 k
. k+l
Dann gilt Z l+1 = 1, wegen Y 2 = X 2 . Z mod p nimmt zufällig mit s zwei Werte an, m−1 m denn X(s) ist linear in einem sν und s2ν mod p nimmt – bei konstantem s2ν mod p – zwei Werte an. Außerdem gilt m − l − 1 ≥ 0 und damit ist Z einfach zu berechnen. Die übrigen Schritte des Faktorisierungsverfahrens und die Analyse sind wie im Fall 2k | p − 1. Der Algorithmus läuft über einen der drei Fälle i−1
i ≤ 1, Z 2
6= −1, Z 2 2i
i−1
= −1.
Dabei ist i die kleinste Zahl ≤ l + 1 mit Z = 1. Wieder wird N nach höchstens k Durchi−1 ¤ läufen im Fall Z 2 = −1 mit W s ≥ 12 zerlegt.
48
3. FAKTORISIERUNGSPROBLEM, PROTOKOLLE
Der obige Faktorisierungsalg. benötigt für kleine m eine große Erfolgsws ε ≥ 2−mt+2 von f an, für den eine Erfolgsws. ˜ Für m = 1 gibt [Shoup1999] einen Faktorisierungsalg. FA P. ε ≥ 2−kt+1 von P˜ ausreicht.
Aktive Angreifer auf (P,V )OS . A fordert l-mal (P, V˜A )OS und erzeugt dann (P˜A ,V )OS . Die Laufzeit von enthält |P˜A |, |V˜A | und die offene Schrittzahl von A. Es sei N = p · q mit p − 1 = 2m mod 2m+1 . P ROPOSITION 3.1.5. Es gibt einen prob. Alg. FA : (A, N) 7→ {p, q} mit Ew |FA| = O(l|A|/ε ), k t −tk+1 für m ≥ k und ε ≥ 2−mt+2 für m < k sofern A für zufällige v ∈R (Z∗2 N ) Erfolgsw. ε ≥ 2 hat. k
k
B EWEIS . FAm wählt s ∈R (Z∗N )t , bildet v := (s21 , . . . , st2 ) und simuliert (P, V˜A )OS mittels s. Dann extrahiert er {p, q} mittels P˜A – analog zu FA. Dabei werden A, P˜A , V˜A als black box benutzt. Die Koalition [P, A] zerlegt also N. ¤
Nach Satz 3.1.5 ist N sicher gegen aktive Angreifer A, es sei denn N ist einfach zu zerlegen.
f für m < k. FA f zerlegt mittels P˜ RSA-Moduln N = p · Zerlegungsalgorithmus FA m m+1 m+1 q mit p − 1 = 2 mod 2 ,2 - q − 1. Es bezeichne RSAm die Menge dieser RSAModuln. R EMARK 3.1.6. Beachte: (1) Jeder RSA-Modul N ist in genau einer Menge RSAm – gegebenenfalls nach Vertauschung von p und q. (2) RSA1 besteht aus den RSA-Moduln N = p · q mit p ≡ 3 mod 4, q ≡ 3 mod 4. Diese N heissen Blum-Zahlen. L EMMA 3.1.7. Für die N ∈ RSAm gilt m
m+1
∗2 a) Z∗2 , N = ZN m ∗2 b) −1 6∈ ZN , m c) x 7→ x2 permutiert ZN∗2 .
f arbeitet mit einem verfälschten geheimen Schlüssel s. FA ˜ Für N ∈ RSAm wird die Zuordnung s 7→ v abgeändert zu m¯
m¯
v := (s˜12 , . . . , s˜t2 ) fuer ein m, ¯ m ≤ m¯ ≤ k. m
k
t ∗2 t Für zufällige s˜ ∈ (Z∗N )t ist v nach Lemma 3.1.7 zufällig in (Z∗2 N ) = (ZN ) und ist somit korrekt verteilt. Den Wert m¯ wählt man so, dass k + m ≥ m¯ + l + 1, diese Ungleichung gilt stets für m = m. ¯
3.1. ONG-SCHNORR IDENTIFIKATION
49
f für N ∈ RSAm . Der Zerlegungsalgorithmus FA m¯
m¯
(1) Wähle s˜ ∈R (Z∗N )t , v := (s˜21 , . . . , s˜t2 ). (2) Wende Alg. AL von Satz 3.1.1 an auf v. 0 l i −ei )/2 . Setze Y := Y /Y 0 , X := ∏ti=1 s˜(e i k
m+l ¯
Dann gilt Y 2 = X 2 und X ist linear in einem s˜ν . k+m−l+m−1 ¯ m−1 (3) Z := Y 2 /X 2 . m+l−m+1 ¯ Es gilt Z 2 = 1. Wegen k + m ≥ m¯ + l + 1 ist Z einfach zu berechnen. Ausserdem nimmt Z(s) ˜ mod p in Abhängigkeit von s˜ν zwei Werte zufällig an. f sind wie bei FA. Für die kleinste Zahl i mit Z 2 = 1 tritt einer Die restlichen Schritte in FA der drei Fälle auf: i
(1) i ≤ 1, Z 2 = 1. Dann gilt mit W ss˜ ≥
1 2
ggT(Z ± 1, N) = {p, q}. (2) i ≥ 2, Z
2i−1
6= −1. Dann gilt i−1
ggT(Z 2
± 1, N) = {p, q}.
2i−1
(3) i ≥ 2, Z = −1. Nach Lemma 3.1.7 gilt i ≥ m. Wiederhole die Schritte 1-3 mit unabhängigen s˜ ∈R (Z∗N )t . Tritt ein Wert i, 2 ≤ i ≤ m, doppelt auf, so gilt für die zugehörigen Werte Z, Z 0 : i−1
Z2
i−1
= −1, Z 02
i
= −1, (ZZ 0 )2 = 1.
f ersetzt in der Liste der Paare (Z, i) zu Fall 3 das Paar (Z 0 , i) durch (ZZ 0 , i0 ) mit dem FA i0
kleinsten i0 < i, so dass (ZZ 0 )2 = 1. Die Ersetzung wird fortgesetzt, wenn es schon ein (Z 00 , i0 ) gibt, usw. Fakt: Jeder Durchlauf der Schritte 1-3 liefert – nach sukzessiver Erniedrigung von i – ein neues i in der Liste der Paare (Z, i) von Fall 3. Nach ≤ m Durchläufen von Fall 3 wird i = 1 und damit Fall 1 erreicht. Somit wird N nach ≤ m Durchläufen der Schritte 1-3 mit W s ≥ 12 zerlegt. Die Ws. bezieht sich auf die zufälligen s, ˜ welche in das Z mit Z 2 = 1 eingehen. Somit ist Folgendes gezeigt: f zerlegt N ∈ RSAm mittels P˜ in mittlerer Laufzeit P ROPOSITION 3.1.8. Der Algorithmus FA m t −kt+1 hat. ˜ ε ), sofern P˜ für zufällige v ∈R (Z∗2 O(m|P|/ N ) Erfolgsw. ε ≥ 2 f lehnt sich an den Beweis von [Shoup1999] an. Von dort ist die Idee Der Algorithmus FA des verfälschten Schlüssels s. ˜ Shoup betrachtet nur Blum-Zahlen, d.h. den Fall m = 1. In f besonders einfach. diesem Fall ist Alg. FA Wegen i ≤ m = 1 treten die Fälle 2 und 3 nicht auf. Shoup beweist Satz 3.1.8 für aktive f das Protokoll (P, V˜ ) mittels s˜ in zero˜ Hierzu muss FA Angreifer anstelle des passiven P. A OS f von der Frage e des Prüfers V˜ den knowledge simulieren. In dieser Simulation errät FA A f nur den approximativen Schlüssel s˜ an. Anteil e mod 2k−m¯ . Dies ist notwendig, weil FA Wird e mod 2k−m¯ falsch geraten, so wird die Runde mit reset wiederholt. Dies führt zu ¯ . einem Verzögerungsfaktor 2(k−m)t
50
3. FAKTORISIERUNGSPROBLEM, PROTOKOLLE
Für eine schnelle Simulation von (P, V˜A )OS muss man m¯ möglichst groß wählen, ohne die Bedingung k + m ≥ m¯ + l + 1 zu verletzen. Nach Lemma 3.1.4 kann man l < 1t lg 4ε −1 erreichen. Somit wählt man 1 m¯ := k + m − lg 4ε −1 . t ¯ ≤ 2ε −1 und der Verzögerungsfaktor ist hinreichend klein. Damit gilt Dann gilt 2(k−m)t ˜ P ROPOSITION 3.1.9. Satz 3.1.8 gilt für aktive Angreifer A anstelle des passiven P.
KAPITEL 4
Sicherheit im Generischen Modell (GM) [Nechaev1994, Shoup1997, Schnorr2001] Alle Krypto-Algorithmen stützen sich im Wesentlichen auf zwei schwere Probleme: Den diskreten Logarithmus und die Faktorisierung. Zu beweisen, dass ein Algorithmus genauso schwer ist, wie eines dieser Probleme, wenn gewisse Voraussetzungen gegeben sind und der Angreifer keine Vorkenntnisse hat (passiver Angreifer), ist relativ einfach. Kann der Angreifer jedoch aktiv ins Geschehen angreifen, sieht die Sache schon anders aus. Das Generische Modell geht davon aus, dass ein Algorithmus („generischer Algorithmus”) keinen Zugriff auf die Bit-Kodierung der Gruppenelemente hat (Angriffe mit SiebVerfahren sind also ausgeschlossen). Diese Annahme ist nicht so abwegig, weil z.B. bei Elliptischen Kurven bis heute nur generische Angriffe bekannt sind. Diese Tatsache macht Hoffnung, dass bewiesene Sicherheit im generischen Modell von großem Nutzen ist. Im Verlauf dieses Kapitels werden obere Schranken für die Laufzeit von generischen Algorithmen zur Lösung des DL-, DH- und DDH-Problem berechnet. Ausserdem wird die Sicherheit der Schnorr-Identifikation und -Signatur und der ElGamal-Verschlüsselung bewiesen. 4.1. Ziele • Finden einere unteren Komplexitätsschranke im GM für DL (g, h) 7→ logg h DH (g, gr , gx ) 7→ grx DDH unterscheide die Ws-Verteilungen (g, gr , gx , grx ), (g, gr , gx , gz ) für r, x, z ∈R Zq . • Sicherheit der DL-Identifikation (P,V ) gegen aktive Angreifer im GM. • Sicherheit von signierten ElGamal Ziffertexten gegen CCA im GM+ROM. Signierte ElGamal Ziffertexte. Öffentlich: hgi = G, H : G × M → Zq zuf. Hash-Funktion. Secret-Key: x ∈R Zq . Dabei ist M beliebiger Nachrichtenraum. Public-Key: h = gx . ElGamal Ziffertext zur Nachricht m ∈ G: (gr , mhr ) Signierter ElGamal Ziffertext zu m ∈ G: (gr , mhr , e, y) mit H(gy g−re , gr , mhr ) = e. Dabei ist (e, y) Schnorr-Signatur zur Nachricht (gr , mhr ) mit Schlüsselpaar (r, gr ). Ein Hauptresultat ist die Plaintext Awareness von signierten ElGamal Ziffertexten: Im GM+ROM erfordert die Erzeugung von Ziffertexten (gr , mhr , e, y) die Kenntnis der Nachricht m und des geheimen Exponenten r. Zu einem beliebigen generischen Alg. P˜ : (g, h) 7→ 51
52
4. SICHERHEIT IM GENERISCHEN MODELL (GM)
˜ h) 7→ (m, r). Dieser extrahiert (gr , mhr , e, y) gibt es einen generischen Extraktor AL : (P, den geheimen Signaturschlüssel r zur Schnorr-Signatur (e, y). Die Besonderheit des generischen Extraktors ist, dass er nur die generischen Schritte von P˜ ausführt. Sicherheit gegen CCA. Ein CCA-Angreifer hat ein D-Orakel mit dem er beliebige Ziffertexte – ausgenommen den Ziffertext selbst – entschlüsseln kann. Das D-Orakel kann man im GM+ROM durch den generischen Extraktor ersetzen. Damit wird das DOrakel eliminiert ohne die Anzahl der generischen Schritte zu erhöhen. Die Sicherheit von signierten ElGamal Ziffertexten gegen CCA-Angriffe folgt somit im GM+ROM aus der semantischen Sicherheit von ElGamal Ziffertexten. Das generische Modell (GM). Sei G = hgi zyklische Gruppe mit Generator g und Primzahlordnung q. • Im GM untersuchen wir kryptographische Angriffe, die für alle Gruppen G mit gegebenem g, q möglich sind. • Ein generischer Angreifer kann die Kodierung der Gruppenelemente nicht benutzen. Der Zugriff auf die Bits der Kodierung der h ∈ G ist im GM ausgeschlossen. • Der generische Angreifer kann nur Gruppenoperationen ausführen und Gruppenelemente auf Gleichheit testen. Im GM zeigen wir obere Schranken für die Erfolgswahrscheinlichkeit eines generischen Angreifers. Diese Schranken hängen nur von q und der generischen Schrittzahl t des Angreifers ab. Die Erfolgswahrscheinlichkeit bezieht sich auf zufällige Gruppenelemente, wie den zufälligen, öffentlichen Schlüssel h ∈R G und zufällige Elemente gr ∈R G in gegebenen Signaturen/Ziffertexten. Dem GM liegt die Beobachtung zu Grunde, dass generische und nicht-generische Angriffe unterschiedliche Anforderungen an die Sicherheitsanalyse stellen. Es gibt nur wenige Beispiele nicht-generischer Angriffe, wie z.B. die Berechnung des diskreten Logarithmus mittels Siebmethoden wie dem quadratischen Sieb, dem Zahlkörpersieb usw. Dies betrifft nur spezielle Gruppen wie Z∗n . Andererseits gibt es aber auch keine Sicherheitsgarantien gegen nicht-generische Angriffe. Solche Sicherheitsgarantien beruhen auf unbewiesenen Annahmen, wie z.B. die Annahme, dass das DL-Problem schwer ist. Dagegen gestaltet sich die Sicherheitsanalyse zu generischen Angriffen erstaunlich erfolgreich. Die Komplexitätsschranken für generische Angriffe erfordern keine unbewiesenen Komplexitätsannahmen. Darüber hinaus gibt es in der Regel optimale generische Angriffe und es gelingt diese herauszufinden. Ist ein Protokoll im GM+ROM sicher, dann ist es zusammen mit einer starken Gruppe G und einer starken Hashfunktion H sicher. Im Fall einer erfolgreichen, nicht-generischen Attacke muss daher nur G bzw. H nachgebessert werden, während das Protokoll bleibt. 4.2. Definition generischer Algorithmen Gruppen / Nichtgruppendaten. Bei generischen Algorithmen unterscheiden wir Gruppenelemente in G und Nicht-Gruppendaten in NG. Operationen auf Nicht-Gruppendaten sind kostenfrei. Wir definieren sukzessive generische Algorithmen • ohne Interaktion
4.2. DEFINITION GENERISCHER ALGORITHMEN
53
• mit Hash / Dekodier / Signatur - Orakel Generische Schritte. • mexp : Zdq × Gd → G, (a, ( f1 , . . . , fd )) 7→ ∏di=1 fiai • Eingaben in G, d.h. Konstanten mexp : Z0q × G0 → G. Spezialfälle von mexp sind Multiplikation/Division für d = 2, a1 , a2 ∈ {±1}. Die einzige Möglichkeit für generische Algorithmen, Daten in NG aus Elementen in G ? zu erzeugen, besteht im Test auf Gleichheit fi = f j für gegebene fi , f j ∈ G. Der Test auf Gleichheit ist kostenfrei. Durch Vergleiche ergeben sich so Nullen (ungleich) und Einsen (gleich), aus denen eine Binärzahl aus NG erzeugt werden kann. Die Elemente aus G und NG sind aber strikt getrennt. Da das Ergebnis nur aus Elementen aus G besteht, interessiert uns die Anzahl der Operationen mit NG-Daten nicht. D EFINITION 4.2.1. Ein generischer Algorithmus ist eine Folge von t generischen Schritten • f1 , . . . , ft ∈ G (Eingaben) 1 ≤ t 0 < t a • fi = ∏tj=1 f j j , i = t 0 + 1, . . . ,t. Dabei hängt (a1 , . . . , ai−1 ) ∈ Zi−1 beliebig von gegebenen NG-Daten – der NG-Eingabe q und den Gleichheiten f j = fk mit 1 ≤ j < k ≤ i − 1 – ab. Es bezeichne C O i−1 = {( j, k) | f j = fk , 1 ≤ j < k ≤ i − 1} die dem i-ten Schritt vorausgehende Menge von Kollisionen. C O t sei die Menge aller Kollisionen. Die Exponenten a1 , . . . , ai−1 des i-ten generischen Schritts hängen also beliebig von C O i−1 ab. Nach [Shoup1997] kann ein generischer Algorithmus kein Wissen über die spezielle Kodierung der Gruppenelemente ausnutzen – er weiss lediglich, dass jedes Gruppenelement als ein eindeutiger Binär-String kodiert ist. Die Arbeitsweise des generischen Algorithmus beim Berechnen von NG-Daten aus GDaten mittels Kollisionen erläutern wir am Beispiel. Die Baby-Step-Giant-Step-Methode. Wir beschreiben in Algorithmus 7 einen gen. √ Alg. GA : G2 → Zq , welcher zu gegebenem q (g, h) 7→ logg h in 2 q gen. Schritten berechnet. Algorithm 7 Generischer Algorithmus zur Baby-Step-Giant-Step-Methode §√ ¨ (1) Berechne k := q , l := dq/ke, somit gilt lk − k < q ≤ lk. *** Die Berechnung der NG-Daten k, l ist kostenfrei *** (2) Bilde L1 := {gi | 0 ≤ i < k} in k − 1 Mult. (3) Bilde L2 := {hg jk | 0 ≤ j < l} in l Mult. *** Offenbar gilt: L1 ∩ L2 6= 0/ *** (4) Finde eine Kollision durch Testen aller Gleichheiten gi = hg jk . *** Das ist kostenfrei! *** (5) Bei Gleichheit gilt logg h = i − jk mod q − 1.
54
4. SICHERHEIT IM GENERISCHEN MODELL (GM)
Die entsprechende Turingmaschine (TM) zu Algorithmus 7 findet die Kollision gi = hg jk anders. Sie sortiert die Binärkodierungen der gi und fügt in die sortierte Liste die Kodierun√ gen der hg jk ein. Dies erfordert höchstens O( q log2 q) Gleichheitstests, viel weniger als im gen. Alg. In der Formulierung des GM nach [Shoup1997] wird die Anzahl der Gleichheitstests dadurch reduziert, dass man eine zufällige Kodierung σ : G → {0, 1}∗ zu Grunde legt. Generische Schritte haben dann die Form (σ ( f1 ), . . . , σ ( fd )) 7→ σ (∏di=1 fiai ). Die Ausgabe des gen. Alg. besteht aus NG- und G-Daten. Die NG-Ausgabe ist eine beliebige Funktion der NG-Daten – also der NG-Eingabe und C O t . Die G-Ausgabe ist von der Form ( fσ1 , . . . , fσd ) ∈ Gd mit beliebigen Funktionen
σi : (NG − Eingabe, C O t ) 7→ {1, . . . ,t} für i = 1, . . . , d. Die gen. Schrittzahl t hängt beliebig von den NG-Daten ab, d.h. die Entscheidung mit dem i-ten Schritt zu stoppen hängt beliebig von der NG-Eingabe und C O i ab. Der Wahrscheinlichkeitsraum besteht aus den zufälligen Gruppenelementen der Eingabe. Einige Gruppenelemente, wie der öffentliche Schlüssel h ∈R G sind zufällig. Gegebene Ziffertexte und Signaturen enthalten weitere zufällige Elemente in G. Die Verteilung der zufälligen Elemente der Eingabe wird in jedem Beispiel eigens beschrieben.
4.3. Das DL-Problem Gegeben: g ∈ G, h ∈R G, q ∈ N. Berechne: x := logg h ∈ Zq . P ROPOSITION 4.3.1. Sei GA : G2 → Zq ,¡(g, h) 7→ x0 ein gen. Alg. mit t gen. Schritten, t¢ 1 x 0 h = g ∈R G. Dann gilt W sx [x = x ] ≤ q + 2 /q. a
0 j B EWEIS . GA berechne f1 = g, f2 = h, fi = ∏i−1 j=1 f j für i = 1, . . . ,t. Die Ausgabe x = x0 (q, C O t ) ist beliebige Funktion in q, C O t . Wir betrachten x = logg h ∈R Zq als formale Variable über Zq .
FACT 4.3.2. L fi := logg fi für i = 1, . . . ,t sind als Funktionen in x formale Polynome in Zq [x] vom Grad ≤ 1. Die Koeffizienten von L fi hängen beliebig von q, C O i−1 ab. B EWEIS . (Bew. d. Ind. über i) Es gilt L f1 = 1, L f2 = x ∈ Zq [x], L fi = ∑i−1 j=1 a j · L f j ∈ Zq [x]. Dabei hängen a1 , . . . , ai−1 ∈ Zq beliebig von q, C O i−1 ab.
¤
D EFINITION 4.3.3. (i, j) ∈ C O t ist triviale Kollision, wenn L fi ≡ L f j , d.h. die linearen Polynome L fi , L f j ∈ Zq [x] sind identisch. R EMARK 4.3.4. Triviale Kollisionen geben keine Information über den Wert x := logg h. Nicht triviale Kollisionen enthüllen diesen Wert. Sei nämlich L fi = ai +bi x, L f j = a j +b j x, dann folgt aus fi (x) = f j (x), dass x = (ai − a j )/(b j − bi ). Beachte, dass bi 6= b j wegen L fi 6≡ L f j .
4.3. DAS DL-PROBLEM
55
Triviale Kollisionen (i, j) hängen nur von der NG-Eingabe ab und gehen nicht in die Berechnung von x0 (q, C O t ) ein. Somit gibt es im minimalen gen. Alg. keine triviale Kollision. Im Folgenden seien triviale Kollisionen ausgeschlossen. Fortsetzung des Beweis zu Satz 4.3.1: Sei Wi, j := W sx [L fi (x) = L f j (x) | C O j−1 = 0] / und W6= := W sx [C O t 6= 0]. / Dann gilt Wi, j ≤
1 q
und W6= =
∑
Wi, j ≤
1≤i< j≤t
µ ¶ t /q, 2
(1)
denn für L fi − L f j = a + bx = 0 gilt W s[a + bx = 0] ≤ q1 . Weiter gilt W sx [x = x0 | C O t = 0] / =
1 , q−t
weil x0 = x0 (q, C O t ) konstant ist während x im Fall C O t = 0/ zufällig über q − t Werte in Zq läuft. Es folgt W sx [x = x0 ]
≤ (1)
≤
≤
Letzteres weil
1 1 1 (1 −W6= ) +W6= = + (1 − )W q−t q−t q − t 6= µ ¶ µ ¶ µ ¶ 1 1 t 1 t t + (1 − )· /q = (1 − /q) + /q q−t q−t 2 q−t 2 2 µ ¶ t 1 + /q. q 2
t ¡t ¢ 1 1 (1−(2)/q) q−t (1 − 2 /q) = q (1−t/q)
< 1q .
¤
Die Detailrechnung im Beweis von Satz 4.3.1 geht auch in die folgenden Sätze ein. Statt sie zu wiederholen, nehmen wir an, dass x im Fall C O t = 0/ gleichverteilt über Zq ist. Wir vernachlässigen also, dass x im Fall C O t = 0/ nur über q − t Werte läuft. Der Einfluss dieser Reduktion des Wahrscheinlichkeitsraumes von x auf die ¡Erfolgswahrscheinlichkeit des ¢ Angreifers ist nämlich bereits durch die Wahrscheinlichkeit 2t /q für C O t 6= 0/ abgedeckt. Ausserdem sei der Modul q für alle folgenden gen. Alg. gegeben, ohne dass dies besonders erwähnt wird. C OROLLARY 4.3.5. Satz 4.3.1 gilt auch für den gen. Alg. mit Münzwurf. a
j B EWEIS . Sei fi = ∏i−1 j=1 f j und (a1 , . . . , ai−1 ) beliebige Funktion in i, C O i−1 , w ∈R t {0, 1} . Dann ist fi = fi (x, w) Funktion in x, w. Zu konstantem w∗ ∈ {0, 1}t ist W sx [x = x0 | w = w∗ ] Funktion in q, w∗ . Für jede Maximalstelle wmax ∈ {0, 1}t dieser Funktion gilt
W sx,w [x = x0 ] ≤ W sx [x = x0 | w = wmax ]. Ersetzt man w ∈R {0, 1}t durch wmax , so wächst die Erfolgsw. monoton.
¤
56
4. SICHERHEIT IM GENERISCHEN MODELL (GM)
4.4. DH-Problem Gegeben: (g, gr , gx ) mit r, x ∈R Zq . Berechne: grx . P ROPOSITION 4.4.1. Sei GA : G3 → G, (g, gr , gx ) 7→ f gen. Alg. mit t gen. Schritten. Dann gilt µ ¶ 1 t rx W sr,x [ f = g ] ≤ + /q. q 2 B EWEIS . GA berechne f1 , . . . , ft ∈ G, f1 = g, f2 = gr , f3 = gx . Nach Voraussetzung gilt f = fσ mit σ = σ (q, C O t ) ∈ {1, . . . ,t}. Wir betrachten r, x ∈R Zq als formale Variablen über Zq . Dann sind L fi := logg fi ∈ Zq [r, x] i−1 formale Polynome, L f1 = 1, L f2 = r, L f3 = x, L fi = ∑i−1 j=1 a j L f j und (a1 , . . . , ai−1 ) ∈ Zq hängt nur von i, q, C O i−2 ab. Triviale Kollisionen L fi ≡ L f j seien ausgeschlossen. Dann gilt W sr,x [ fσ (r, x) = grx ] ≤ W sr,x [C O t 6= 0] / +W sr,x [L fσ (r, x) = rx | C O t = 0] / ·W sr,x [C O t = 0] / µ ¶ t ≤ /q + 1/q. 2 Denn einerseits gilt für 1 ≤ i < j ≤ t 1 Wi, j := W sr,x [L fi (r, x) = L f j (r, x) | C O j−1 6= 0] / ≤ , q weil {(r, x) ∈ Z2q | L fi (r, x) = L f j (r, x)} Hyperebene im Z2q ist. Somit gilt µ ¶ t W sr,x [C O t 6= 0] / = ∑ Wi, j ≤ /q. 2 1≤i< j≤t Andererseits ist L fσ ∈ Zq [r, x] ein lineares Polynom. Im Fall C O t = 0/ sind die Koeffizienten von L fσ konstant. Nach Lemma 4.4.2 gilt W sr,x [L fσ (r, x) = rx] ≤ 1/q und somit 1 W sr,x [L fσ = rx | C O t = 0] / ·W sr,x [C O t = 0] / ≤ . q ¤ L EMMA 4.4.2. [Schwartz1980] Sei f ∈ Zq [x1 , . . . , xu ], f 6≡ 0 total mit grad f = d. Dann gilt W sx1 ,...,xn [ f (x1 , . . . , xn ) = 0] ≤ dq . B EWEIS . Induktion über n. n = 1 ist der Fundamentalsatz der Algebra. 4.5. Das DDH-Problem Gegeben: (g, gr , gx , grxb+z(1−b) ) ∈ G4 . Bestimme: b ∈ {0, 1}. ½ rx g rxb+z(1−b) N OTATION 4.5.1. grxzb := g = gz
falls b = 1 . falls b = 0
¤
4.6. SEMANTISCHE SICHERHEIT DER ELGAMAL VERSCHLÜSSELUNG
57
P ROPOSITION 4.5.2. Sei GA : G4 → {0, 1}, (g, g,r , gx , grxzb ) 7→ b0 gen. Alg. mit t gen. Schritten und r, x, z ∈R Zq , b ∈R {0, 1}. Dann gilt µ ¶ 1 t W sr,x,z,b [b = b0 ] ≤ + /q. 2 2 B EWEIS . GA berechne f1 , . . . , ft , mit f1 = g, f2 = gr , f3 = gx , f4 = grxzb a
und fi = ∏ j≤i−1 f j j für i = 5, . . . ,t. Dann sind L fi = logg fi ∈ Zq [r, x, z] formale Polynome deren Koeffizienten von b abhängen, L f1 = 1, L f2 = r, L f3 = x, L f4 = rxb + z(1 − b), L fi = ∑i−1 j=1 a j · L f j für i = 5, . . . ,t. Damit man triviale Kollisionen (i, j), L fi ≡ L f j ausschließen kann, dürfen sie nicht von b abhängen. Nun ist L fi − L f j von der Form c0 + e1 r + c2 x + c3 (rxb + z(1 − b)), wobei c0 , . . . , c3 ∈ Zq für ein b ∈ {0, 1}, dann ist c3 = 0 und L fi ≡ L f j gilt für alle b ∈ {0, 1}. Damit hängen triviale Kollisionen nicht von b ab und seien ausgeschlossen. Falls C O t = 0/ ist b0 = b0 (q) konstant aber b zufällig, somit 1 W sr,x,z,b [b = b0 | C O t = 0] / = . 2 Ferner gilt für beliebiges konstantes b ∈ {0, 1}: µ ¶ t W sr,x,z [C O t 6= 0] / ≤ /q. 2
(1)
(2)
Nach Lemma 4.4.2 auf der vorherigen Seite gilt nämlich für 1 ≤ i < j ≤ t 1 Wi, j := W sr,x,z [L fi (r, x, z) = L f j (r, x, z) | C O j−1 = 0] / ≤ . q Denn L fi − L f j ∈ Zq [r, x, z] hat max. grad 1. Somit gilt (2). Der Satz folgt dann aus (1) und (2). ¤ Nach diesem Satz kann ein gen. Alg. mit t gen. Schritten¡die Ws-Verteilungen (g, gr , gx , grx ) t¢ r x z und (g, g , g , g ) für r, x, z ∈R Zq höchstens mit Vorteil 2 /q unterscheiden. 4.6. Semantische Sicherheit der ElGamal Verschlüsselung Ein Angreifer, der die verschlüsselte Nachricht erkennen will, hat folgendes Problem: Gegeben: m0 , m1 , g, gr , gx , mb grx ∈ G für r, x ∈R Zq , b ∈R {0, 1}. Bestimme: b ∈ {0, 1}. P ROPOSITION 4.6.1. Sei GA : G6 → {0, 1}, (m0 , m1 , g, gr , gx , mb grx ) 7→ b0 gen. Alg. mit t gen. Schritten und r, x ∈R Zq , b ∈R {0, 1}. Dann gilt µ ¶ 1 t 0 W sr,x,b [b = b ] ≤ + /q. 2 2
58
4. SICHERHEIT IM GENERISCHEN MODELL (GM)
B EWEIS . GA berechne ( f1 , . . . , f6 ) = (m0 , m1 , g, gr , gx , mb grx ) und f7 , . . . , ft ∈ G. Dann sind L fi ≡ logg fi ∈ Zq [r, x] formale Polynome, deren Koeffizienten von b abhängen. L fi − L f j ist von der Form c0 + c1 r + c2 x + c3 (logg mb + rx), wobei c0 , . . . , c3 ∈ Zq nur von i, j, q und C O j−1 abhängen. Gilt L fi ≡ L f j für ein b ∈ {0, 1}, dann ist c3 = 0 und L fi ≡ L f j gilt für alle b ∈ {0, 1}. Triviale Kollisionen hängen damit nicht von b ab und seien im Folgenden ausgeschlossen. Für konstantes b gilt wie in Satz 4.4.1 auf Seite 56 und in Satz ¡¢ 4.5.2, dass W sr,x [C O t 6= 0] / ≤ 2t /q. Im Fall C O t = 0/ hängt b0 nicht von b, r, x ab, also W sr,x [b = b0 | C O t = 0] / = 12 . Somit gilt der Satz. ¤ ¡¢ Nach diesem Satz liefert der Ziffertext höchstens einen 2t /q-Vorteil beim Erkennen der verschlüsselten Nachricht. Mit dem selben Argument liefert der Ziffertext ¡ ¢bei Rückschlüssen auf Eigenschaften der verschlüsselten Nachricht höchstens einen 2t /q-Vorteil. Semantische Sicherheit bedeutet, dass man den Ziffertext aus der Berechnung beliebiger Prädikate der verschlüsselten Nachricht eliminieren kann und dabei die Erfolgswahrscheinlichkeit nur vernachlässigbar verkleinert. Wir betrachten hier semantische Sicherheit im GM, d.h. bezüglich generischer Berechnungen. Nach Satz 4.6.1 wird die Erfolgswahrscheinlichkeit einer generischen Berechnung eines ¡Prädikats der verschlüsselten Nach¢ richt bei Elimination des Ziffertextes höchstens um 2t /q kleiner. Daher ¡ist¢ die ElGamalVerschlüsselung im GM semantisch sicher, sofern q so groß ist, dass 2t /q für durchführbare Schrittzahlen vernachlässigbar klein ist. Für heutige Technologien fordert man q ≥ 2160 . 4.7. Sicherheit der DL-Identifikation Wir zeigen, dass die DL-Identifikation im generischen Modell sicher gegen aktive Angreifer ist. Dieser Nachweis ist im Turing-Maschinen-Modell noch offen. Wir beweisen die Sicherheit zunächst für Angreifer aus dem Stand (Satz 4.7.1 auf der nächsten Seite) und dann für aktive Angreifer (Satz 4.7.2 auf Seite 60). Betrachte das Protokoll (P,V ) der DL-Identifikation: (P,V ) P 1. Wählt r ∈R Zq und berechnet g¯ := gr 2. 3.
Berechnet y := r + xe
V g¯ → ←e
wählt e ∈R Zq
y→
Berechnet g¯ = gy h−e
?
Abweichend vom ursprünglichen Protokoll (P,V ) wird e zufällig in Zq und nicht in [0, 2t [ gewählt. Diese Wahl von e dient nur der Vereinfachung. Betrachte nun einen generischen Angreifer P˜ aus dem Stand:
g¯ ∈ G g, h P˜
e ∈R Z y˜
4.7. SICHERHEIT DER DL-IDENTIFIKATION
59
Angenommen P˜ berechnet (g, h) 7→ g¯ in t 0 < t gen. Schritten und (g, h, e) 7→ y˜ in t − t 0 gen. Schritten. Die Ausgabe y˜ = y(q, ˜ C O t , e) hängt nur von q, C O t , e ab. e P ROPOSITION 4.7.1. Jeder generische P˜ : (g, h) 7→ g¯ 7→ y˜ mit t gen. Schritten hat höchstens ¡ ¢ Erfolgsw.x,e q2 + 2t /q bzgl. x, e ∈R Zq . a B EWEIS . P˜ berechne f1 , . . . , ft ∈ G, f1 = g, f2 = h, fi = ∏ j≤i−1 f j j für i = 3, . . . ,t. Nach Erhalt von e ∈ Zq hängen die Schritte beliebig von e ab. Dann sind L fi ≤ logg fi ∈ Zq [x] formale Polynome, deren Koeffizienten beliebig von w, C O i−1 – und nach Erhalt von e auch von e – abhängen. Triviale Kollisionen fi ≡ f j , die für konstantes e trivial sind, kann ?
man zu gegebenem e eliminieren.1 Die Verifikation gr = gy h−e in (P,V ) liefert eine solche triviale Kollision. Nach Elimination der trivialen Kollisionen gilt µ ¶ t W sc [C O t 6= 0] / ≤ /q. (1) 2 Sei g¯ = fi von der Form fi = ha gb , L fi = ax + b ∈ Zq [x]. Offenbar reüssiert P˜ gdw. y˜ = L fi (x) + ex. Dabei hängen a, b, y˜ nur von q, C O t und y˜ zusätzlich von e ab. Wir zeigen 2 W sx,e [y(e) ˜ = L fi (x) + ex | C O t = 0] / ≤ . (2) q Im Fall C O t = 0/ hängt y˜ nur von q, e während a, b nicht von e abhängen. P˜ reüssiert im Fall a = −e mit y˜ = b für e 6= −a und beliebigem y˜ mit Ws 1q . Wegen W se [e = −a] = 1q gilt somit (2). Der Satz folgt aus (1) und (2). ¤ Wir betrachten nun einen aktiven Angreifer A, der l-mal (P, V˜A ) anfordert und dann versucht (P˜A ,V ) selbst zu erzeugen: l-mal(P, V˜A ) 1. 2. 3.
V˜A
P Wähle r
= (r1 , . . . , rl ) ∈R Zlq
Berechnet yi := ri + e˜i x
gr1 , . . . , grl
→ ← e˜ = (e˜1 , . . . , e˜l )
wähle e˜1 , . . . , e˜l ∈R Zq
y := (y1 , . . . , yl ) →
gri = gyi h−e˜i
?
Die l Durchläufe von (P, V˜A ) können beliebig parallel oder sequentiell durchgeführt werden – in t 0 < t gen. Schritten. (P˜A ,V ) P˜A 1. 2. 3.
V g¯ = g( ¯ e, ˜ y, C O t 0 ) → ← e ∈R Zq y( ˜ e, ˜ y, C O t 0 ) →
?
Berechnet g¯ = gy˜ h−e
A hat Erfolg gdw. y˜ = logg g¯ + e · x. Für den generischen, aktiven Angreifer wird jeder Aufruf von P als generischer Schritt gezählt. Jeder solche Aufruf liefert ein zufälliges Element gri ∈R G, welches einem zufälligen Gruppenelement der Eingabe entspricht. 1Bem.: Eliminiert man in Abhängigkeit von e triviale Kollisionen, dann hängt die Schrittzahl t von e ab. Im
Allgemeinen ist t beliebige Funktion der NG-Daten, also der NG-Eingabe einschließlich e und der Menge aller Kollisionen.
60
4. SICHERHEIT IM GENERISCHEN MODELL (GM)
P ROPOSITION 4.7.2. Jeder aktive, generische Angreifer A mit t gen. Schritten hat µ ¶ t 2 /q. Erfolgsw.x,r,e ≤ + q 2 B EWEIS . Sei g¯ = fi von der Form fi = ga1 ha2 gr1 a3 · · · grl al+2 , dabei hängen a1 , . . . , al+2 ∈ Zq beliebig von q, y, C O i−1 aber nicht von e ab. A hat Erfolg gdw. y˜ = L fi (x, r) + ex dabei hängt y˜ = y(q, ˜ y, e, C O i−1 ) beliebig von q, y, e, C O i−1 ab. Wie im Beweis von Satz 4.7.1 zeigt man 2 (2) W sx,r,e [y˜ = L fi (x, r) + ex | C O t = 0] / ≤ . q Falls (a3 , . . . , al+2 ) 6= O reüssiert A nur mit W s ≤ 1/q. Im Fall (a3 , . . . , al+2 ) = O reüssiert A, wenn e = −a2 und sonst mit W s ≤ 1/q. Für konstante e, y˜ gilt nach Entfernen trivialer Kollisionen offenbar µ ¶ t W sx,r [C O t 6= 0] / ≤ /q. (1) 2 Diese Wahrscheinlichkeit hängt vom Münzwurf r von P ab, denn Kollisionen mit gr1 , . . . , grl ¤ beziehen sich auf r. Der Satz folgt aus (1) und (2).
4.8. Sicherheit von Schnorr-Signaturen im GM+ROM Öffentlich seien die Gruppe G, der Generator g von G, die prime Ordnung q von G, der Nachrichtenraum M, die eine Hashfunktion H : G × M → Zq , welche zufällig und gleichverteilt aus allen Funktionen G × M → Zq gezogen ist. H wird durch ein Orakel gegeben, das H-Orakel. Die Signaturschlüssel seien x ∈R Zq (privat) und h = gx ∈R G (öffentlich). D EFINITION . Eine Schnorr-Signatur zur Nachricht m ist ein Paar (e, y) ∈ Z2q mit H(gy h−e , m) = e (siehe Abschnitt 1.7). P ROPOSITION 4.8.1. Sei GA : G2 → M × Z2q , (g, h) 7→ (m, e, y) ein gen. Alg. mit t gen. Schritten. Dann gilt µ ¶ 2 t y −e W sx,H [H(g g , m) = e] ≤ + /q. q 2 Jeder Aufruf des H-Orakels wird als generischer Schritt gezählt. Die Frage Q ∈ G × M an das Orakel darf beliebig abhängen von allen Daten in G und NG. B EWEIS . GA’s generische Schritte seien f1 , . . . , ft 0 , H( fσi , mi ) i = t 0 + 1, . . . ,t. Die Gruppenschritte und Orakelanfragen sind beliebig vernetzt. Die Entscheidung, ob der nächste gen. Schritt ein Gruppenschritt oder ein Orakelschritt ist, hängt in beliebiger Weise von den NG-Daten – der NG-Eingabe, den Kollisionen und erfragten H-Werten – ab. fσi ist ein bereits berechnetes Gruppenelement, σi , mi ,t 0 ,t hängen beliebig von den NG-Daten ab.
4.9. SIGNIERTE ELGAMAL VERSCHLÜSSELUNG
61
• Fall 1. (gy h−e , m) 6∈ {( fσi , mi ) | i = t 0 + 1, . . . ,t} Für beliebiges, konstantes h gilt für zufällige H 1 W sH [H(gy h−e , m) = e] = . q • Fall 2. (gy h−e , m) = ( fσi , mi ). Beachte, dass i und σi , mi im Fall C O t 0 = 0/ durch (e, y) eindeutig bestimmt sind. GA setzt e := H( fσi , mi ), denn jeder andere Wert führt in Fall 2 zum Misserfolg. Das formale Polynom L fσi ≡ logg fi ∈ Zq [x], L f = a + bx. Dabei hängt das berechnete y im Fall C O t 0 = 0/ nicht von x ab. – Fall 2.a C O t 0 = 0, / a = −e. GA reüssiert mit y = b. Für zufälliges H ist e zufällig, also W sH [a = −e] = 1 q. – Fall 2.b C O t = 0, / a 6= −e. GA reüssiert mit W sx 1q . – Fall 2.c C O t 0 6= 0. / ¡¢ Dieser Fall hat W sx,H ≤ 2t /q. Triviale Kollisionen L fi ≡ L f j seien dabei ausgeschlossen. Die Koeffizienten der L fi hängen beliebig von den NG-Daten ab – der NG-Eingabe (e, y), den Kollisionen und den erfragten H-Werten. Die Elimination von trivialen Kollisionen erfolgt somit in Abhängigkeit von den erfragten H-Werten. ¡¢ GA reüssiert damit höchstens mit W sx,H ≤ 2q + 2t /q. Für die Fälle 1 und 2 wird das Maximum der Erfolgswahrscheinlichkeiten genommen, für die Unterfälle Fall 2.a, 2.b und 2.c jedoch die Summe der Wahrscheinlichkeiten. ¤ Satz 4.8.1 zeigt, dass Schnorr-Signaturen sicher gegen existentielle Fälschungen sind. Wir erweitern den Satz nun auf Chosen Message Attacken (CMA). Unter einer CMA verstehen wir einen aktiven Angriff auf eine Signatur: Der Angreifer kann zunächst Signaturen zu Nachrichten seiner Wahl anfordern und muss dann eine neue Nachricht signieren. Die Simulation der von dem Signatur-Orakel angeforderten Signaturen geht im ROM problemlos. Man wählt e ∈R Zq zufällig und setzt den Wert H(gy h−e , m) – sofern er noch nicht festgelegt war – zu e. Das so erzeugte H ist zufällig ¡ ¢ verteilt. Die zu H erzeugten Signaturen – bis auf ein Ereignis der Wahrscheinlichkeit 2t /q – sind so verteilt wie vom Signaturorakel erzeugte. Damit gilt Satz 4.8.1 auch für Chosen Message Angriffe. 4.9. Signierte ElGamal Verschlüsselung Das Schlüsselpaar zur Verschlüsselung sei Privat: x ∈R Zq . Öffentlich: h = gx ∈R G. D EFINITION 4.9.1. Ein signierter ElGamal Ziffertext zur Nachricht m ∈ G ist ein Quadrupel (gr , mhr , e, y) ∈ G2 × Z2q mit H(gy g−re , gr , mhr ) = e.
62
4. SICHERHEIT IM GENERISCHEN MODELL (GM)
R EMARK 4.9.2. (gr , mhr , e, y) besteht aus einem ElGamal Ziffertext (gr , mhr ) und einer Schnorr Signatur (e, y) zur Nachricht (gr , mhr ). Zum Signatur-Schlüssel (r, gr ) mit r privat und gr öffentlich. Wir betrachten adaptive chosen ciphertext Attacken (CCA). Ein generischer Angreifer hat zwei Nachrichten m0 , m1 und einen signierten ElGamal Ziffertext cipb für zufälliges b ∈R {0, 1} gegeben und soll b erraten. Der Angreifer kann ein Entschlüsselungsorakel beliebig einsetzen, ausgenommen für den Zielziffertext cipb . ¯ f¯, e, Das Entschlüsselungsorakel, D-Orakel. Auf Eingabe (h, ¯ y) ¯ ∈ G2 × Z2q prüft das y ¯ − e ¯ ¯ f¯) = e¯ und sendet einen positiven Fall m¯ := f¯/h¯ x und sonst eine Orakel, ob H(g , h¯ , h, Zufallsnachricht m¯ ∈R G:
D-Orakel ¯ f¯, e, (h, ¯ y) ¯ m¯
privater Schlüssel x ∈R Zq ¯ f¯) = e then if H(gy¯h¯ −e , h, return m¯ := f¯/h¯ x else return m¯ ∈R G
Der folgende Satz zeigt, dass signierte ElGamal Ziffertexte sicher gegen adaptive chosen ciphertext Attacken (CCA) sind. P ROPOSITION 4.9.3. Sei GA : G6 × Z2q → {0, 1}, (m0 , m1 , g, gr , gx , mb grx , e, y) 7→ b0 gen. Alg. mit H- und D-Orakel und t gen. Schritten. Dann gilt µ ¶ t 1 0 /q. W sb,r,x,H [b = b ] ≤ + 2 2 B EWEIS . Die Aufrufe des H- und D-Orakels werden als gen. Schritt gezählt. GA berechne a
(1) ( f1 , f2 , f3 , f4 , f5 , f6 ) := (m0 , m1 , g, gr , gx , mb grx ) mit fi = ∏ j≤i−1 f j j für i = 7, . . . ,t 0 . (2) H( fσi , mi ) mit i = t 0 + 1, . . . ,t 0 + e0 . (3) mit l Aufrufen des D-Orakels. Die Schritte vom Typ 1, 2 und 3 sind beliebig verzahnt, t 0 , l 0 , l sind NG-Daten, sie hängen beliebig von gegebenen NG-Daten – den NG-Eingaben, Kollisionen, erfragten H-Werten – ab. Die Anzahl der gen. Schritte ist t = t 0 + l 0 + l. Induktion über l: Für l = 0 gilt die Beh. nach Satz 4.6.1 auf Seite 57. Die zusätzlich gegebenen NG-Daten – e, y und die erfragten H-Werte – helfen nicht. Induktionsschritt: Betrachte den ersten Aufruf des D-Orakels. Beim ersten Aufruf werde ¯ f¯, e, das D-Orakel über (h, ¯ y) ¯ ∈ G2 × Z2q befragt. ¯ Wir zeigen, dass logg h – bis auf ein Ereignis der Wahrscheinlichkeit 2/q – nur von gegebenen NG-Daten abhängt. Bei Kenntnis von logg h¯ kann man den D-Orakel-Aufruf elimi¯ nieren und gemäß m¯ := f¯/hlogg h in einem gen. Schritt entschlüsseln. Die Fälle 1, 2, 2.a, 2.b und 2.c sind wie im Beweis von Satz 4.8.1 auf Seite 60.
4.9. SIGNIERTE ELGAMAL VERSCHLÜSSELUNG
63
¯ f¯)) ∈ {( fσ , m ) | i = t 0 + 1, . . . ,t 0 + l 0 } • Fall 1: (gy¯ h¯ −e¯ , (h, i i Dann gilt für konstante r, x, b 1 ¯ f¯) = e] W sH [H(gy¯ h¯ −e¯ , h, ¯ = . q ¯ f¯)) = ( f • Fall 2: (gy¯ h¯ −e¯ , (h, σ ,m ) . i
i
GA
¯ f¯) in höchstens t 0 Gruppenschritten f , . . . , f 0 ∈ GA berechnet Eingabe 7→ ( fσi , h, 1 t G. Betrachte das formale Polynom L fσi ≡ logg fσi ∈ Zq [r, x]. L fσi ist von der Form L fσi = c0 + c1 r + c2 x + c3 (logg mb + rx), dabei hängen c0 , c1 , c2 , c3 ∈ Zq nur von gegebenen NG-Daten – i, q, vorangehenden Kollisionen und erfragten H-Werten – ab. Triviale Kollisionen L fi ≡ L f j hängen nicht von b ab, denn der Koeffizient c3 in L fi − L f j muss verschwinden. Damit kann man triviale Kollisionen eliminieren, sie seien im Folgenden ausgeschlossen. ¯ f¯)) und reüssiert gdw. gy¯ h¯ −e¯ = fσ , d.h. gdw. y¯ = Im Fall 2 setzt GA e¯ := H( fσi , (h, i ¯ x). ¯ h(r, L fσ (r, x) + eL i
¯ x) und den berechneten Wert y¯ in Wir unterscheiden den Zielwert y¯0 := L fσi (r, x) + eL ¯ h(r, ¯ ¯ (h, f , e, ¯ y). ¯ Sei L f σi Lh¯
= a0 + a1 r + a2 x + a3 (logg mb + rx) = b0 + b1 r + b2 x + b3 (logg mb + rx)
¯ f¯)). mit a0 , . . . , b3 ∈ Zq , die nur von gegebenen NG-Daten abhängen, aber nicht von e¯ = H( fσi , (h, ¯ h¯ − b0 ). • Fall 2.a: C O t 0 = 0, / L fσi − a0 = −e(L In diesem Fall reüssiert GA mit y¯ = a0 + eb ¯ 0 . Weil die Koeffizienten von Lg, ¯ Lh¯ ¯ nicht von e¯ ∈R Zq abhängen, tritt der Fall Lg¯ − a0 = −e(L ¯ h − b0 ) höchstens mit W sH = q1 auf. • Fall 2.b: C O t 0 = 0, / L fσi − a0 6= −e(L ¯ h¯ − b0 ). In diesem Fall reüssiert GA mit W sx = 1q . ¡ 0¢ • Fall 2.c: Der verbleibende Fall C O t 0 6= 0/ tritt mit W sr,x,b,H ≤ t2 /q auf. Zusammenfassend erhält man Lemma 4.9.4 auf der nächsten Seite. ¯ f¯, e, Im Fall a1 = . . . = b3 = 0 gilt Lh¯ = b0 , h¯ = gb0 und die durch (h, ¯ y) ¯ verschlüsselte b Nachricht ist m¯ = f¯/h¯ 0 . ¯ f¯, e, Elimination aller D-Orakel Aufrufe. Im Fall C O t 0 = 0/ berechnet GA entweder (h, ¯ y), ¯ ¯ so dass b0 := logg h nur von gegebenen NG-Daten abhängt oder der Ziffertext ist höchstens ¯ f¯, e, ¯ y) ¯ zu mit W s ≤ q2 gütlig. Man eliminiert den ersten D-Orakel Aufruf, indem man (h, b ¯ ¯ m¯ := f /h 0 entschlüsselt. Dabei werden zwei generische Schritte – der D-Orakel Aufruf ¯ f¯)) – durch einen gen. Schritt m¯ := f¯/h¯ b0 ersetzt. Nach und die Berechnung von H( fσi , (h, Elimination der l D-Orakel Aufrufe hat der reduzierte gen. Algorithmus höchstens t − l
64
4. SICHERHEIT IM GENERISCHEN MODELL (GM)
gen. Schritte und somit – nach Satz 4.6.1 – höchstens die Erfolgswahrscheinlichkeit ¡t−1¢ ¡t−l ¢ 1 2 /q. Damit hat GA höchstens Erfolgswahrsch. 2 + 2 /q + 2l/q. Es gilt µ ¶ t −l (t − l + l)(t − 1) + 2l ≤ , 2 2 sofern t − 1 ≥ 4. Damit gilt der Satz.
1 2
+
¤
L EMMA 4.9.4. Entweder gilt C O t 0 6= 0/ oder es gilt Fall 2 mit a1 = a2 = a3 = b1 = b2 = b3 = 0 oder GA reüssiert mit fσi höchstens mit W s ≤ 1q . Plaintext Awareness. Der Beweis von Satz 4.9.3 zeigt, dass signierte ElGamal Ziffertexte generisch nur zu „gegebenen” Nachrichten erzeugbar sind. Zu jedem gen. Alg. ¯ e, ˜ h) 7→ (logg g, P˜ : (g, h) 7→ (g, ¯ h, ¯ y) ¯ gibt es einen gen. Extraktor AL : (P, ¯ m). ¯ Es wurde gezeigt, dass logg g¯ nur von in P˜ gegebenen NG-Daten abhängt – ausgenommen ein Ereignis der Wahrscheinlichkeit 2/q. Der Extraktor erhält die verschlüsselte Nachricht ¯ logg g¯ in einem generischen Schritt – im Übrigen führt er die generischen Schritte m¯ := h/g ˜ von P aus. Unser Nachweis des Extraktors AL benutzt wesentlich das GM. Im Turing-Maschinen Modell gibt es einen anderen Extraktor nach Feige, Fiat, Schamir (siehe Satz 2.1.2 auf Seite 22, sowie Satz 2.3.9 auf Seite 32 in Kapitel 2). Der FFS-Extraktor hat als Verzögerungsfaktor den Kehrwert der Erfolgswahrsch. des Angreifers. Sicherheit gegen CCA. Satz 4.9.3 auf Seite 62 beinhaltet die Sicherheit signierter ElGamal Ziffertexte im GM. Der Beweis benutzt wesentlich den besonderen gen. Extraktor, ¯ e, welcher zu vom gen. Angreifer konstruierten Ziffertexten (g, ¯ h, ¯ y) ¯ den geheimen Signaturschlüssel logg g¯ extrahiert ohne zusätzliche gen. Schritte zu machen. Dagegen kann man den FFS-Extraktor in polynomial Zeit höchstens logarithmisch oft mit SetBack iterieren. Dies liefert im ROM Sicherheit gegen CCA-Attacken mit logarithmisch vielen Aufrufen des Orakels.
4.10. Allgemeine ElGamal Verschlüsselung Bislang wurde für die ElGamal Verschlüsselung vorausgesetzt dass Nachrichten als Elemente von G kodiert sind. Dies ist für gewisse Gruppen G unpraktisch. Für Untergruppen G von Z∗N bzw. von elliptischen Kurven gibt es keine natürliche Kodierung der Nachrichten in G. Wir verallgemeinern die ElGamal-Verschlüsselung unter der Annahme, dass der Nachrichtenraum M eine additive Gruppe ist – z.B. M = Znq – zusammen mit einer Zufallsfunktion Hn : G → Znq . Es sei h = gx ∈R G der öffentlichen Schlüssel. Verschlüsselung von m ∈ Znq . Wähle r, s ∈R Zq , berechne gr und f¯ := m ⊕q Hn (hr ), ¯ f¯) und y := s + er. Dabei ist ⊕q die komponentenweise Addition in Znq . Der e := H(gr , h, Ziffertext ist (gr , f¯, e, y). Entschlüsselung. Den Ziffertext (g, ¯ f¯, e, y) zu m := f¯ ⊕q (−Hn (g¯r )).
4.10. ALLGEMEINE ELGAMAL VERSCHLÜSSELUNG
65
Korrektheit. Sei g¯ = gr , f¯ = m ⊕q Hn (hr ). Dann gilt hr = g¯x und somit m = f¯ ⊕q (−Hn (g−x )). Alle Sicherheitsaussagen für signierte ElGamal Ziffertexte gelten entsprechend auch für die allgemeinen, signierten ElGamal Ziffertexte, sofern Hn : G → Znq eine Zufallsfunktion ist. Hn und H : G → Zq müssen nicht stat. unabh. sein. Man kann z.B. Hn wählen als Hn ( f ) = (H( f , 1)H( f , 2), . . . , H( f , n)).
Teil 2
Kryptographie II
KAPITEL 5
Identifikation, On-the-fly-Signaturen [Girault1991, PoupardStern1998, Schnorr1991] On-the-Fly-Signaturen oder auch -Identifikationen müssen in sehr kurzer Zeit durchgeführt werden können. Sie werden z.B. bei der Identifizierung an Maut-Stellen eingesetzt, bei der ein Auto mit 100 km/h eine Maut-Stelle durchfährt und sich in der kurzen Zeit, in der eine Chipkarte Kontakt zu dem Verifizier-Computer hat (z.B. über Funk) zu Abrechnungszwecken identifizieren muss. In der Arbeit von [PoupardStern1998] wird hierzu ein auf der Schnorr-Identifikation aufbauendes Verfahren beschrieben, bei dem es – im Gegensatz zu dem in [Schnorr1991] beschriebenen Verfahren – nicht mehr nötig ist, den Grad λ (g) des Elements g ∈ G zu kennen. 5.1. On-The-Fly-Signaturen [PoupardStern1998] Parameter: G multiplikative Gruppe mit Generator g, A, B, X, k ∈ N (nicht ord(g)) Secret-Key: x ∈R [0, X[. Public-Key: h = gx ∈R G. (P,V )Gir : Wiederhole Schritte 1-3 k-mal. (P,V )Gir 1. 2.
P Wählt r ∈R [0, A[ und berechnet g¯ := gr
3.
Berechnet y := r + xe
V g¯ → ←e
wählt e ∈R [0, B[
y→
Berechnet g¯ = gy h−e , y ∈ [0, A[
?
?
DL-Identifikation mit diophantischer Hinterlegung. Korrektheit: Folgt P dem Protokoll, dann akzeptiert V mit W s ≥ 1 − kBX/A. B EWEIS . gy = gr+ex = gh ¯ e , W sr [r > A − BX] ≤
BX A .
¤
Das Besondere an dem Protokoll ist wie oben bereits gesagt, dass (P,V )Gir nicht die Kent˜ V˜ folgen nicht dem Protokoll. nis von ord(g) benötigt. Angreifer P, 5.1.1. Sicherheit von (P,V )Gir gegen V˜ . Erhält V˜ nützliche Information, indem es P befragt? D EFINITION 5.1.1. Das Protokoll (P,V )Gir ist ε -zero-knowledge, wenn es einen prob. pol. Zeit Simulator ϕ : (V˜ , h) 7→ (gϕ , eϕ , yϕ ) ∈ G × [0, B[×[0, A[ 69
70
5. IDENTIFIKATION, ON-THE-FLY-SIGNATUREN
gibt, so dass für die ZVen ϕ (V˜ , h) und (e, ¯ e, ˜ y) ˜ in (P, V˜ )Gir gilt k(g, ¯ e, ˜ y) ˜ − (gϕ , eϕ , yϕ )k1 ≤ ε . Desweiteren sei definiert: D EFINITION 5.1.2. Seien U,V Zufallsvariablen über der Menge S kU −V k1 =de f
∑ |W s[s = U] −W s[s = V ]| .
s∈S
P ROPOSITION 5.1.3. (Poupard, Stern) Das Protokoll (P,V )Gir ist ε -zero-knowledge mit ε = kBX/A sofern B polynomial ist. B EWEIS . Der Simulator ϕ :
(1) Wiederhole (a) Wähle yϕ ∈R [0, A[, eϕ ∈R [0, B[, gϕ := gyϕ h−eϕ ; (2) bis eϕ = e(g, ˜ V˜ , vV˜ , hist). {z } | wie in (P,V˜ )Gir
ϕ benötigt im Mittel B Iterationen und ist prob. pol. Zeit, wenn B polynomial ist.
¤
L EMMA 5.1.4. (Poupard, Stern) Für k = 1 gilt k(g, ¯ e, ˜ y) ˜ − (gϕ , eϕ , yϕ )k1 ≤ BX/A. Damit ist (P,V )Gir stat. zero-knowledge, sofern kBX/A vernachlässigbar klein und B polynomial ist. Fall: V˜ = V honest verifier. Wir zeigen für V˜ = V : ky˜ − yk1 ≤ BX/A für y˜ ∈R [0, A[, y = r + xe ∈ [0, A + (B − 1)X[, r ∈R [0, A[, e ∈R [0, B[, x ∈R [0, X[. 1 A
W s[y = s] x, r, e 0
S
(B − 1)(X − 1)
A−1
A − 1 + (B − 1)(X − 1)
5.1. ON-THE-FLY-SIGNATUREN
71
1 A
A−1
0 ky˜ − yk1 . BS/A
k
0
(B − 1)X
A−1
5.1.2. Sicherheit von (P,V )Gir gegen Angreifer P˜ aus dem Stand. GPS-Problem nach [GiraultPoupardStern1999]. Gegeben: g ∈ G, h ∈R g[0,X[ , A, B, X ∈ N mit B ≤ A. Finde: σ ∈] − A, A[, τ ∈]0, B[, so dass gilt: gσ = hτ . LG-Problem. Gegeben: g ∈ G, h ∈R g[0,X[ , X ∈ N. Gesucht: x ∈]0, X[: h = gx . Die Probleme GPS, LG werden mit wachsendem X schwieriger. Wir reduzieren X/2 auf X, o.B.d.A. 2 | X. L EMMA 5.1.5. Es gilt LGX/2 ≤ LGX . B EWEIS . Wir zeigen, dass das Problem LGX/2 mittels LGX gelöst werden kann: Gegeben: g ∈ G, h ∈R g[0,X/2[ . Wähle: b ∈R {0, 1}, h0 := gb h2 ∈R g[0,X] . 0 Löse: h0 = gx mit LGX -Alg. x := bx0 /2c. ¤ E XERCISE 5.2. Zeige GPSX/2 ≤ GPSX . L EMMA 5.2.1. Zu gegebenem, primem ord(g) sind GPSX , LGX äquivalent.
72
5. IDENTIFIKATION, ON-THE-FLY-SIGNATUREN
B EWEIS . Wir zeigen beide Richtungen: „GPSX ≤1 LGX ”: Sei σ := 1, τ := x. „LGX ≤1 GPSX ”: x := τ /σ mod ord(g) wegen ggT(σ , ord(g)) = 1.
¤
L EMMA 5.2.2. Für X ≥ 2ord(g) geht die Berechnung g 7→ ord(g) im Mittel in O(log2 X) Aufrufen eines LGX -Orakels (bzw. GPSX -Orakels, Übung). B EWEIS . Ein Algorithmus könnte wie folgt vorgehen: (1) do (a) (b) (c) (d)
Wähle stat. unabh. x10 , . . . , x0j ∈R [0, X[. 0 Setze hi := gxi . Löse gxi = hi mit LG-Orakel. Dann ord(g) | (xi − xi0 ) mit W sx0 [xi 6= x0j ] ≥ 12 . i
(e) Setze ggT j := ggT1≤i≤ j, x 6=x0 (xi0 − xi ). i
i
(2) until ∃ j0 < j: ggT j0 = ggT j und #{i | j0 ≤ i ≤ j, xi 6= xi0 } ≥ k. X C LAIM . W sx0 [ggT j = ord(g)] ≥ 1 − 2−k und Ex [#Iterationen] = O(log2 ord(g) ).
Betrachte P˜ zu (P,V )Gir . Es bezeichne ˜ ) akzeptiert mit h · gx , w] εP˜ := W sw,x [(P,V Gir ˜ ). Mit |P| ˜ wird die Schrittzahl von P˜ bezeichnet, sie sei von der w=Zufallsbits von (P,V Eingabe unabhängig. ¤ ˜ h) 7→ (σ , τ ) mit P ROPOSITION 5.2.3. Es gibt prob. GPS-Lösung AL : (P, g,A,B,X
˜ ε ˜ ), EwAL |AL| = O(|P|/ P sofern εP˜ ≥ 2/B. Siehe Algorithmus 5 auf Seite 23 in Abschnitt 2.1 in Teil 1. Dort wird auch die Korrektheit und EwAL |AL| berechnet. ˜ h) 7→ (logg h, ord(g)) mit C OROLLARY 5.2.4. Für X ≥ 2 · ord(g) gibt es prob. AL0 : (P, µ ¶ x 0 ˜ Ew 0 |AL | = O log2 ( |P|/εP˜ ) AL ord(g) sofern εP˜ ≥ 2/B. B EWEIS . Aus der Lösung zu GPSX nach Satz 5.2.3 erhält man gemäß Lemma 5.2.2 ord(g) und gemäß Lemma 5.2.1 logg h. ¤ E XERCISE 5.3. LGX ≤2 LGbX/2c , GPSX ≤2 GPSbX/2c . C OROLLARY 5.3.1. Für X < ord(g) und εP˜ ≥ 2/B geht die Berechnung ˜ h) 7→ (logg h, ord(g)) (P, ˜ im Mittel in Schrittzahl O( ord(g) X |P|/εP˜ ).
5.5. GPS-SIGNATUREN, ON-THE-FLY-SIGNATUREN
73
B EWEIS . Löse GPSX nach Satz 5.2.3, GPSX·2n mit GPS2n X ≤2n GPSX solange, bis 2n X ≥ 2 · ord(g). Dann berechne ord(g) nach Lemma 5.2.2 und logg h nach Lemma 5.2.1. ¤ Fazit: ˜ ) mit W s ε ˜ ≥ 2/B Erfolg. Dann sind für X < ord(g) DLX , P˜ habe in (P,V Gir P ˜ GPSX ,, g 7→ ord(g) in O( ord(g) X /εP˜ ) Aufrufen von (P,V )Gir mit stat. unabh. x ∈R [0, X[ lösbar. RSA-Fall: Sei G = Z∗N , N = p · q, p, q prim. Sei außerdem ord(g) = λ (N) = kgV(p − 1, q − 1) (p − 1)(q − 1) = ggT(p − 1, q − 1) (Z∗N ∼ = Z∗p × Z∗q ). 5.4. Zerlegungsalgorithmus von Miller Gegeben: L mit λ (N) | L. Finde: Zerlegung N = p · q. (1) Zerlege L = 2s · r mit r ungerade. (2) Wähle w ∈R [0, N[. i i−1 (3) Teste ∃0 < i ≤ s: wr2 = 1 mod N und wr2 6= ±1 mod N. i−1 Wenn ja ggT(wr2 ± 1, N) = {p, q}. Korrektheit. Für Y := wr2 aber Y 6= ±1} mod N.
i−1
gilt Y 2 ≡ 1 mod N also (Y + 1)(Y − 1) ≡ 0 mod N,
Erfolgswahrscheinlichkeit. Mit W sw =
1 2
wird N zerlegt. i
B EWEIS . Es gibt 4 Quadratwurzeln von 1 mod N. Diese treten in wr2 mit 0 ≤ i ≤ r ¤ gleich wahrsch. auf. Z∗N ∼ = Z∗p × Z∗q , CRT. 5.5. GPS-Signaturen, On-The-Fly-Signaturen [PoupardStern1998] Parameter: G = hgi, A, B, X ∈ N – nicht |G|. H : G × M → [0, B[ starke Hashfunktion BX/A < 2−80 . Privater Schlüssel: x ∈R [0, X[. Öffentlicher Schlüssel: h = gx ∈R g[0,X[ . Erzeugung einer GPS-Signatur zu m ∈ M: Siehe Algorithmus 8. Verifikation der Signatur (g, ¯ y) zu m ∈ M. e = H(gy h−e , m), y = [0, A[. R EMARK 5.5.1. Die Bedingung y ∈ [0, A[ normiert die Länge der Signatur und des Authentikationsnachweis. Sie hat keinen sichtbaren Einfluss auf die Sicherheit. Sie wurde benutzt beim Nachweis, dass (P,V )Gir honest-verifier zero-knowledge ist.
74
5. IDENTIFIKATION, ON-THE-FLY-SIGNATUREN
Algorithm 8 Erzeugung einer GPS-Signatur zu m ∈ M (1) do (a) Wähle stat. unabh. r ∈R [0, A[. (b) Setze g¯ := gr und e := H(g, ¯ m). (c) Berechne y := r + ex. (2) until y ≤ A Random Oracle Model (ROM). H ∈R [0, B[G×M gegeben durch H-Orakel. H : G × M → [0, B[ ist zufällig, nach der Gleichvert. gezogen aus der Menge aller Funktionen dieses Typs. FACT 5.5.2. Folgende Aussagen sind äquivalent (1) H ∈R [0, B[G×M . (2) (H(g1 , m1 ), . . . , H(gl , ml )) ∈R [0, B[l für beliebige l ∈ N und verschiedene (g1 , m1 ), . . . , (gl , ml ). 5.5.1. Chosen Message Attacke (CMA) auf GPS-Signaturen. Der Angreifer A fordert zunächst Signaturen zu Nachrichten seiner Wahl, dann erzeugt er eine neue Signatur. Die eingeforderten Signaturen werden von einem Signatur-Orakel geliefert. D EFINITION 5.5.3. Ein Signatur-Orakel (h, m) 7→ (e, y) liefert eine Signatur zum öffentl. Schlüssel h gemäß Ws-Vert. e = H(gr , m), y := r + ex mit r ∈R [0, A[. P ROPOSITION 5.5.4. Sei A CMA-Angreifer auf GPS-Signaturen mit l Aufrufen des HOrakels. Im ROM gibt es prob. GPS-Lösung AL : (A, h) 7→ (σ , τ ), so dass EH,w |AL| = O(l|A|/εA l/q) sofern A Erfolgsw. εA ≥ 2/B hat. L EMMA 5.5.5. Die Ws.-Verteilung der Signaturen des Signatur-Orakels kann man mit ¡¢ k k1 -Abstand ≤ BX/A + 2l /q in pol. Zeit mit h erzeugen: (1) Wähle e ∈R [0, B[, y ∈R [0, A[. (2) Setze H(gy h−e , m) := e sofern der Wert H(gy h−e , m) noch nicht festgelegt ist. ¡¢ B EWEIS . Kollisionen gyi h−ei , m = (g¯A , m) mit 1 ≤ i treten nur mit W s ≤ 2l /q auf. Der BX/A Beitrag zum k k1 -Abstand entsteht wie beim honest verifier zero-knowledge Beweis zu (P,V )Gir . ¤ Jetzt der Beweis zu Satz 5.5.4: B EWEIS . (Analog zu Satz 2.3.8 und Satz 2.3.3 in Abschnitt 2 in Teil 1) AL erzeugt die vom CMA-Angreifer A angeforderten Signaturen, indem er die H-Werte geeignet wählt – wie auch in Lemma 5.5.5. O.B.d.A. gibt es 1 ≤ i ≤ l, so dass A beim i-ten Aufruf des H-Orakels mit ei := H(gi , mi ) ˜ h) von Satz mit W sH,w ≥ 2/B eine Sign. (ei , yi ) erzeugt. Iteriere (A, h) analog zu AL(P, A 5.2.3. Konstruiere zwei Lösungen (ei , yi ), (e¯i , y¯i ) mit g(A, ¯ wA , H) = gyi h−ei = gy¯i h−e¯i und setze σ := |y1 − y¯i |, τ := (e¯i − ei )sig(e¯i − ei ). In Stufe 2 des Verfahrens ersetzt man H durch eine stat. unabh. Hashfunktion H¯ und setzt e¯ := H(g, ¯ m) , y¯ = y(A, ¯ g, ¯ e, ¯ wA ).
5.5. GPS-SIGNATUREN, ON-THE-FLY-SIGNATUREN
75
¤ Mindestlänge von GPS-Signaturen. ord(g) ≥ 2160 , X ≥ 2160 , B ≥ 280 , A ≥ 2320 . Also log2 (y) + log2 e ≥ 320 + 80 = 400. (P,V )H Gir 1. 2. 3.
P Wählt r ∈R [0, A[ und berechnet c := H(gr ) c → ←e Berechnet y := r + xe
y→
V wählt e ∈R [0, B[ ?
Berechnet c = H(gy h−e )
(P,V )H Gir mit kurzer Kommunikation. P ROPOSITION 5.5.6. Für H ∈R [0, B[G ist (P,V )H Gir so sicher wie (P,V )Gir .
KAPITEL 6
Fairer Schlüsseltausch A, B wollen ihre geheimen Schlüssel skA , skB austauschen. Hierzu verschlüsseln sie skA , skB mit dem öffentlichen Schlüssel pkT T P einer T T P – trusted third party. Diese Verschlüsselung muss verifizierbar sein, B muss mit dem öffentlichen Schlüssel pkA überprüfen, dass E pk (skA ) den zugehörigen geheimen Schlüssel verschlüsselt. Man benutzt die HomomorphieTTP Eigenschaft der Verschlüsselung E pk . TTP
Im Folgenden wird ein Verfahren vorgestellt, bei dem P ein V davon überzeugt, dass er einen privaten Schlüssel gewählt hat, den eine TTP mit nur geringem Aufwand errechnen könnte (Gitterreduktion). Anwendungen finden derartige Verfahren z.B. bei elektronischen Wahlen. 6.1. Paillier Kryptoschema [Paillier1999] pk
= (N, Z∗N 2 , α ) mit N = p · q, p, q prim und ggT((p − 1)(q − 1), N) = 1.
α ∈ Z∗N 2 mit ord(α ) = λ (N) · N = λ (N 2 ) sk
=
λ = λ (N) = kgV(p − 1, q − 1) =
(p − 1)(q − 1) ggT(p − 1, q − 1)
B EWEIS . (Für λ (N 2 ) = N λ (N)) λ (N 2 ) Z∗N 2 ∼ = Z∗p2 × Z∗q2 CRT. Z∗p2 , Z∗q2 sind zyklisch, also λ (p2 ) = p(p − 1)
λ (N 2 ) = kgV(p(p − 1), q(q − 1)) = p · q · kgV(p − 1, q − 1) = N · λ (N). Es gelte Z∗N 2 ⊂ ZN 2 ∼ = [0, N 2 [.
¤
FACT 6.1.1. für w ∈ Z∗N 2 gilt: wλ
= 1 mod N
λ ·N
= 1 mod N 2 .
w
L : [0, N 2 [⊃ Z∗Nλ2 1 + uN 77
→ [0, N[ 7→ u
78
6. FAIRER SCHLÜSSELTAUSCH
Verschlüsselung von m ∈ ZN : Wähle r ∈R Z∗N , Eα (m, r) = α m rN mod N 2 . Entschlüsselung von cip ∈ Z∗N 2 : m := L(cipλ )/L(α λ ) mod N. FACT 6.1.2. L(α λ ) ∈ Z∗N . p | L(α λ )
Ang. ⇒
α λ = 1 + pa N |{z}
⇒ ⇒
α λ q = 1 + u mod N 2 ord(α ) | λ q Widerspruch zu ord(α ) = λ N.
u
Homomorphie. Eα : ZN × Z∗N
→
(m, r) 7→
Z∗N 2
α m rN
mod N 2
Eα (m1 , r1 ) · Eα (m2 , r2 ) = Eα (m1 + m2 , r1 · r2 ) u N mod N 2 und α λ m ≡ 1 + umN Korrektheit der Dekodierung. Sei α λ ≡ 1 + |{z} =L(α λ )
mod N 2 . Also L(α λ m ) ≡ L(α λ ) · m mod N, weil rN λ ≡ 1 mod N 2 folgt: m ≡ L(cipλ )/L(α λ ) mod N. C OROLLARY 6.1.3. Eα : ZN × Z∗N → Z∗N 2 ist Isomorphismus. B EWEIS . Sei Eα (m, r) ≡ α m rN mod N. Dann r := α −m Eα (m, r)N
−1
mod λ .
¤
6.2. Verifizierbare Verschlüsselung von privaten DL-Schlüsseln [PoupardStern2000] Schlüsselpaar von P: x,
h = gx .
Paillier Schema mit (N, Z∗N 2 , α ). GPS Schema mit g, A, B, X und α , A, B, X. Verifiziere Verschlüsselung von x Γ :≡ α x mod N 2 . Verifikation der Verschlüsselung: Wiederhole Schritte 1-3 k-mal: 1. 2. 3.
P, x ∈ [0, X[ Wähle r ∈R [0, A[, γ1 := α r mod N 2 und γ2 := gr Berechnet y := r + xe
V, h = gx , Γ = α x
γ1 , γ2 → ←e y→
wählt e ∈R [0, B[ γ1 ≡ α y Γ−e mod N 2 , γ2 = ?
gy h−e , y ∈ [0, A[ Korrektheit: α r = α y Γ−e , gr = gy h−e . ˜ h, Γ) 7→ (σ , τ ) zu (α , Γ) und (g, h) mit L EMMA 6.2.1. Es gibt eine GPS-Lösung AL : (P, ˜ ˜ EwAL |AL| = O(|P|/ε p˜ ) sofern P Erfolgsw.w ε p˜ ≥ 2/B hat.
6.2. VERIFIZIERBARE VERSCHLÜSSELUNG VON PRIVATEN DL-SCHLÜSSELN
79
B EWEIS . Besteht P˜ das Protokoll mit einem (γ1 , γ2 ) und zwei (e, y), (e, ¯ y), ¯ dann gilt gy−y¯ = he−e¯ , α y−y¯ = Γe−e¯ . ¤ P verschlüsselt seinen geheimen Schlüssel einmal in Zq und ein anderes Mal Paillier mit dem öffentlichen Schlüssel der TTP. Beides weist P anschliessend zero-knowledge nach, so dass sich V sicher sein kann, dass die TTP x berechnen könnte. Da die TTP lediglich x mod N und nicht x mod q berechnen kann, muss sie die Gleichung σ + γτ ≡ 0 mod N lösen und erhält x := σ /τ mod q. Eine praktische Anwendung dieses Verfahren ist z.B. die wiederberechnung gelöschter Schlüssel durch eine TTP nach einem Unglück. GPS-Lösung.
ϕ τ
= (y − y)sig(e ¯ − e) ¯ = (e − e)sig(e ¯ − e). ¯
Es gilt α σ = Γτ , gσ = hτ mit σ ∈] − A, A[, τ ∈]0, B[. TTP extrahiert x. Fall: Γ x
=
α x,
x ∈]0, X[, ⊂ [0, N[ λ
:= L(Γ )/L(α λ ) mod N.
Die Rekonstruktion ist korrekt für beliebige Γ = Eα (x, r) = α x rN
mod N 2 .
˜ ∃ gemeinsame GPS-Lösung σ , τ mit Fall P:
α σ = Γτ , gσ = hτ , σ ∈] − A, +A[, τ ∈]0, B[. TTP rekonstruiert (σ , τ ) und x := σ /τ mod q. O.B.d.A. ggT(σ , τ ) = 1. Rekonstruktion von (σ , τ ). Für γ := L(Γλ )/L(α λ ) mod N gilt
α γλ
= Γλ ,
denn α γ /Γ ∈ Z∗N N2
α σ = Γτ
mod N 2 , α γλ = Γλ ⇒ α τγ x = Γτλ = α σ λ ⇒ α σ = Γτ
mod N 2 .
Somit gilt
σ − γτ = 0 mod N, (1) wegen ord(α ) = λ N. O.B.d.A. gilt γ ∈ Z∗N , denn andernfalls ist ggT(ordΓ, N) echter Teiler von N. Die Lösungen (σ , τ ) ∈ Z2 von (1) bilden ein Gitter L ⊂ Z2 mit Basis (N, 0), (γ , 1) und det L = N. Für den kürzesten Vektor (σ , τ ) von L gilt
σ +τ ≤ 2
2
r
4 N. 3
80
6. FAIRER SCHLÜSSELTAUSCH
Für den zweitkürzesten lin. unabh. Vektor (σ¯ , τ¯ ) gilt
Also σ¯ 2 + τ¯ 2 ≥
(σ¯ 2 + τ¯ 2 )(σ 2 + τ 2 ) ≥ (det L )2 = N 2 .
q 3 4 N.
q
Im Fall A2 + B2 < Vektor von L .
3 4N
ist die gemeinsame GPS-Lösung (σ , τ ) der eind. best. kürzeste
Falls A, B verschiedene Größenordnung haben, skaliert man (σ , τ ) zu (σ /A, τ /B). Das skalierte Gitter Ls hat det Ls = N/(AB). Es gilt r 4 N 2 λ1 (Ls ) ≤ 3 AB r 3 N . λ2 (Ls )2 ≥ 4 AB p Im Fall 2AB < 3/4N liefert die gemeinsame GPS-Lösung q (σ , τ ) den eind. best. kürN 2 2 . zesten Vektor (σ /A, τ /B) in Ls : (σ /A) + (τ /B) ≤ 2 < 34 AB q P ROPOSITION 6.2.2. Falls 43 2AB < N erhält TTP aus Γ den geheimen Schlüssel x sofern es eine gemeinsame GPS-Lösung (σ , τ ) mit α σ = Γτ , hσ = gτ , σ ∈] − A, A[, τ ∈]0, B[ gibt. 6.3. Verifizierbare Verschlüsselung geheimer RSA-Schlüssel Geheimer RSA-Schl.: Zerlegung p, q von n = pq bzw. x = n − ϕ (n) = p + q + 1. (p, q erhält man durch Lösen von p+q
= n − ϕ (n) − 1
p−q
= ((p + q)2 − 4N)1/2
) Vorgehen: (1) kurze Nachweise der Kenntnis von x. (2) Verschl. von x mit pk . TTP
Prover P beweist V die Kenntnis von x. (P,V ) erzeugen gemeinsam zi ∈R Z∗n mit i = 1, . . . , k. Wiederhole Schritte 1-3 k-mal:
1.
P, x ∈ [0, X[ Wähle r ∈R [0, A[, γi := zri mod n für i = 1, . . . , K
2. 3.
Berechnet y := r + xe
?
V, h = gx , Γ = α x
γ := (γ1 , . . . , γK ) → ←e
wählt e ∈R [0, B[
y→
zy−ne = γi mit i
?
?
i = 1, . . . , K, y ∈ [0, A[ PSG-Protokoll.
6.3. VERIFIZIERBARE VERSCHLÜSSELUNG GEHEIMER RSA-SCHLÜSSEL
81
Korrektheit. y − ne ≡ r + xe − ne mod ϕ (n) ≡ r − e(n − x) mod ϕ (n) = r | {z }
mod ϕ (n)
=ϕ (n)
zy−ne i
=
ϕ (n) zr−e i
= zri
= γi .
Der Test y ∈ [0, A[ verhindert die Wahl y := r + me. √ √ √ Größe der Parameter: p, q ≤ 2 n, n − ϕ (n) ≤ 2, 5 n, 2, 5B n < A · 2−80 , Bk ≥ 280 . Proof of knowledge für x. Angenommen: P˜ kann zu γ zwei Fragen e, e¯ erfolgreich mit y, y¯ beantworten. Dann gilt ¯ e¯ zy−ne = γi = zy−n i i
⇒
ord(zi ) |
i = 1, . . . , k
y − y¯ + n(e¯ − e) | {z }
.
6=0 fuer e6¯=e wg. y,y∈[0,A[ ¯
Mit hoher Wahrscheinlichkeit gilt λ (n) | kgV(y − y¯ + n(e¯ − e)). Denn für λ (n) = e ∏i∈I pi i gilt 1 W szi [pei i - ord(zi )]) = . pi RSA-Schlüssel der TTP: N = PQ mit P, Q prim. Paillier-Schema mit α ∈ Z∗N 2 : ord(α ) = N λ (N). Verifizierbare Verschlüsselung: von x = n − ϕ (n). Γ = αx
mod N 2 .
?
Verifikation von Γ = α x . Wiederhole Schritt 1-3 k-mal. P, x ∈ [0, X[ 1. Wähle r ∈R [0, A[, γ0 := α x , γi := zri für K 2. 3. Berechnet y := r + xe
?
V, h = gx , Γ = α x
γ := (γ0 , . . . , γK ) → ←e y→
wählt e ∈R [0, B[ γ0 = α y Γ−e , γi = zy−en mit i ?
i = 1, . . . , K, y ∈ [0, A[ GPS-Schema zu (α , Γ), PSG-Schema zu(zi , γi ) für i = 1, . . . , k. ˜ Γ) 7→ (σ , τ ) mit L EMMA 6.3.1. Es gibt eine gemeinsame GPS/PSG-Lösung1 AL : (P, ˜ ˜ Ew |AL| = O(|P|/εP˜ ) sofern P Erfolgsw.w εP˜ ≥ 2/B hat. B EWEIS . Ang. P˜ kann zu einem γ zwei Fragen e, e¯ erfolgreich beantworten mit y, y. ¯ Dann gilt
α y Γ−e zy−en i
= γ0 = α y¯ Γ−e¯ ¯ = γi = zzi¯−en
fuer i = 1, . . . , k.
1α σ = Γτ , zσ −nτ = 1 mod n, σ ∈] − A, A[ und τ ∈]0, B[. i
82
6. FAIRER SCHLÜSSELTAUSCH
Setze σ := (y − y)sig(e ¯ − e), ¯ τ := (e − e)sig(e ¯ − e). ¯ ¤ q P ROPOSITION 6.3.2. Falls 43 2AB < N erhält TTP aus Γ den geheimen Schlüssel x in √ O( B) Schritten sofern es eine gemeinsame GPS/PSG-Lösung gibt. B EWEIS . TTP berechnet wie im Beweis zu Satz 6.2.2 auf Seite 80 (σ 0 , τ 0 ) := (σ /d, τ /d) mit d = ggT(σ , τ ), d ∈ [0, B[. 0
0
σ −nτ ) = 1 für i = 1, . . . , k. Dann berechnet TTP ein α mit zd( i √ √ Geht nach Pollard’s Kangeruh-Methode in O( d) = O( B) Schritten.
n = pq B = 240 k=2
¤
p, q jeweils mit 512 Bits n − ϕ (n) 513-Bits. damit TTP d in 220 Schritten rekonstruieren kann. Sicherheitsniveau gegen P˜ ist bk = 280 .
Parametergrößen für die Verifikation Γ = α x für x = n − ϕ (n). A : A < n, A < (n − ϕ (n))kB. Damit y := r + ex < A. z.B. A 680 Bits. q N = PQ, N > 2 43 AB, P, Q mit je 512 Bits. 6.4. Nicht-interaktive Version der Protokolle Die Zufallsbits von V : e = (e1 , . . . , ek ), z := (z1 , . . . , zk ) werden mittels öffentlicher Hashfunktion H erzeugt zj
:= H(N, α , n, Γ, j)
ej
:= H(N, α , n, Γ, γ , z, j). ?
Sicherheit der nicht-interaktiven Protokolle zur Verifikation von Γ = α x im ROM. Hat P˜ Erfolgsw. εP˜ ≤ 2l/B – l ist die Anzahl der Aufrufe des H-Orakels – dann kann man mit einem black-box P˜ eine gemeinsame GPS-Lösung (σ , τ ) bzw. eine GPS/PSG-Lösung (σ , τ ) extrahieren. Die Sätze 6.2.2 und 6.3.2 bleiben bestehen. 6.4.1. Anwendung Key Recovery. (1) Es sollen geheime Schlüssel gegen Verlust geschützt werden. (2) Geheime Schlüssel x einer Gesellschaft werden bei ihrer TTP in der Form Γ = α x hinterlegt. 6.4.2. Vorteil der Paillier Verschlüsselung. Bei Hinterlegung von Γ = α x mit nichtinteraktiven Protokollen braucht TTP nicht einzugreifen. TTP erhält Γ mit dem nichtinteraktiven Verifikationsprotokoll. TTP prüft die Korrektheit dieses Protokolls. 6.4.3. Elektronische Wahlen. Werden die Stimmen mittels Paillier verschlüsselt, kann man die Stimmauszählung lokal mittels der Kodierungen Eα (st, r) machen (Homomorphie). Die lokale Auszählung kann öffentlich erfolgen. Es muss nachgewiesen werden, dass nur korrekte Stimmen st ∈ {0, 1} kodiert sind. Der Wähler liefert einen Beweis, dass Eα (st, r) zu st ∈ {0, 1} gehört.
6.5. CDS-PROTOKOLL
83
6.4.4. Verwandte Probleme. Seien hgi , hgi ¯ = G, |G| = q und h, h¯ öffentlich. ¯ (1) Beweise in honest verifier zero-knowledge: logg h = logg¯ h. GPS-Protokoll mit y := r + ex mod q. (2) Beweise in honest verifier zero-knowledge: logg h − logg¯ h¯ ∈ {0, 1}. 6.5. CDS-Protokoll Cramer, Damgard, Schoenmakers, Crypto ’94, LNCS 839. (P,V )CDS 1.
V, h = gx , h¯ = g¯x+b
P, x, b Wähle r, y1−b , e1−b ∈R Zq , γb := gr , γ¯b := g¯γ , γ1−b := gy1−b h−e1−b , ¯ g¯1−b )−e1−b γ¯1−b := g−γ1−b (h/
γ0 , γ1 , γ¯0 , γ¯1 →
←e
2. 3.
e0 , y0 , e1 y1 →
Berechnet eb := e − e1−b mod q und yb := r + xeb mod q.
Wobei
?
e = e0 + e1 mod q, ?
γ0 = gy0 h−e0 , 0 γ¯0 = g¯y0 h¯ −e0 , γ1 = gγ1 h−e1 , ¯ g) γ¯1 = g¯y1 (h/ ¯ −e1 (
logg l = logg¯ h¯ und
wählt e ∈R Zq
½
γ0 γ¯0
?
= gy0 h−e0 0 , = g¯y0 h¯ −e0
γ1 γ¯1
= gy1 h−e1 . ¯ g) = g¯y1 (h/ ¯ −e1 Das Protokoll zur DL-Identifikation – Proof of Knowledge of x – läuft 3-fach ab: ¯ g) logg h = logg¯ (l/ ¯
Für die Generatoren g, g¯ und die Fragen e0 , e1 . Die Frage eb , e1−b entsprechen dem aktuellen Bit b und seiner Negation 1 − b. Korrektheit: P teilt e aud in e = e0 + e1 mod q. Für das korrekte b sind r, eb , yb ¯ die Daten der DL-Identifikation – Proof of Knowledge x = logg h, x = logg¯ h. r, e1−b , y1−b sind die Daten der honest verifier zero-knowledge Simulation für ¯ g). den Proof of Knowledge x = logg h, x = logg¯ (h/ ¯ L EMMA 6.5.1. Das Protokoll (P,V )CDS ist honest verifier zero-knowledge. B EWEIS . Es gibt pol. Zeit Simulator ϕ der zu geheimem e die Daten (γ0 , γ1 , γ¯0 , γ¯1 , e0 , y0 , e1 , y1 ) mit gleicher Verteilung erzeugt, ϕ arbeitet für eb und e1−b wie der zero-knowledge Simulator mit Kenntnis der Fragen eb , e1−b . ¤ P ROPOSITION 6.5.2. Das Protokoll (P,V )CDS ist witness indistinguishable. Die Verteilungen (γ0 , . . . , γi ) sind für b = 0 und b = 1 gleich.
84
6. FAIRER SCHLÜSSELTAUSCH
B EWEIS . Der Zweig des Protokolls für das korrekte b wird gemäß DL-Identifikation abgewickelt, der andere Zweig folgt der zero-knowledge Simulation. Beim Übergang b = 0 nach b = 1 werden die beiden Zweige vertauscht. Die Verteilung der übertragenen Daten ändert sich dabei nicht. Denn die zero-knowledge Simulation simuliert verteilungsgleich. ¤ P ROPOSITION 6.5.3. Das Protokoll (P,V )CDS ist ein Proof of Knowledge für x und b ∈ {0, 1}. B EWEIS . Ang. P˜ kann zu (γ0 , γ¯0 , γ1 , γ¯1 ) zwei Fragen e, e¯ erfolgreich mit (e0 , y0 , e1 , y1 ) und (e¯0 , y¯0 , e¯1 , y¯1 ) beantworten. Es gibt entweder e0 6= e¯0 oder e1 6= e¯1 , aber nur eines ist möglich. Fall: e0 6= e¯0 Dann logg h =
y0 −y¯0 e0 −e¯0 ,
logg¯ h¯ =
y1 −y¯0 e0 −e¯0
⇒ b = 0.
Fall: e1 6= e¯1 Dann logg h =
y1 −y¯1 e1 −e¯1 ,
logg¯ h¯ =
y1 −y¯1 e1 −e¯1
⇒ b = 1.
¯ 7→ (x, b) mit Ew |AL| = O(|P|/ ˜ h, h) ˜ ε ˜ ) sofern ε ˜ ≥ 2/q. Es gibt einen Extraktor AL : (P, AL P P ¤ 6.6. Geschichte des Paillier-Schemas Goldwasser, Micali (1984) pk: n = p · q, (p, q prim), g ∈ (Z∗n )2 = QRn . sk: ϕ (n). Verschlüsselung von b ∈ {0, 1}. Wähle r ∈R Z∗n : cip = gb r2 mod n. Entschlüsselung von cip: b=
½
0 falls cip ∈ QRn . 1 sonst.
Sicherheit: Verschlüsselung ist semantisch sicher, falls Entscheidung der quadratischen Residuosität schwierig ist. (Benaloh, Fischer 1998, 1987) p−1
pk: n = p · q, sowie s prim mit s | p − 1, s - − , - q − 1. Ferner g ∈ Z∗n \ (Z∗n ) mit s | ϕ (n), ggT(s, ϕ (n) s ) = 1. sk: ϕ (n). Verschlüsselung von M ∈ Zs . Wähle r ∈R Z∗n : cip = gM rs mod n. Entschlüsselung von cip. M := {i ∈ Zs falls cip/g j ∈ (Z∗n )s , d.h. falls (cip/g j )ϕ (n)/r ≡ 1 mod n}.
6.6. GESCHICHTE DES PAILLIER-SCHEMAS
85
Sicherheit. Verschlüsselung ist semantisch sicher, falls die Entscheidung für x ∈ Z∗n , ?
x ∈ (Z∗n )s schwierig ist. [NaccacheStern1998] Schlüsselerzeugung. Sei n = p·q. Sei σ = p1 p2 · · · pk Teiler von ϕ (n). ggT(σ , ϕσ(n) ) = 1 und ggT(pi , p j ) = 1 für i 6= j. pk: n = p · q, σ , g ∈ Z∗n mit ord(g) = σ · τ , τ groß. Verschlüsselung von M ∈ Zσ . Wähle r ∈R Z∗n : cip = gM rσ mod n. Entschlüsselung von cip. M := j mod pi falls (cip/g j ) (M
mod p1 , . . . , M
ϕ (n) pi
mod n. Nach CRT gilt
mod pk ) 7→ M.
Sicherheit. Semantisch sicher falls das Erkennen von pi -ten Potenzen schwierig ist für i = 1, . . . , k. [OkamotoUchiyama1998] Schlüsselerzeugung: Sei n = p2 q mit p, q prim. Sei g ∈ Z∗n mit ord(g) = p(p − 1). pk: n, g sk: p. Verschlüsselung von M ∈ Z p . Wähle r ∈R Z∗n : cip = gM rn mod n. Entschlüsselung von cip. M :=
cip p−1
mod (p2 − 1) g p−1 / p
mod (p2 − 1) p
mod p.
KAPITEL 7
Bit-Hinterlegung und perfekte Zufallsgeneratoren Die beiden Hauptthemen dieses Kapitels sind die Bit-Hinterlegung und Zufallsgeneratoren. Bei der Bit-Hinterlegung handelt es sich um ein bekanntes Problem: A legt sich B gegenüber beim „commitment” auf ein Bit (1 oder 0) fest, möchte aber, dass B nicht weiss, was er gewählt hat. Später kann A seine Wahl gegenüber B „aufdecken”, so dass B sich sicher sein kann, dass A seine Wahl plötzlich verändert hat. Hier wird vor allem das Naor-Schema besprochen. Pseudozufallsgeneratoren sind Funktionen, die bei einer Eingabe von n „echten” Zufallsbits mindestens n+1-viele neue Bits generieren, so dass diese alle statistischen ZufallszahlenTests bestehen und von dem „echt zufälligen” Ensemble (Uh(n) )n∈N ununterscheidbar sind. Nach Yao wird bewiesen dass die Definition von „Pseudozufall” nach der Ununterscheidbarkeit von echten Zufallsfolgen äquivalent ist zu der Unmöglichkeit Bits „vorherzusagen”. Im Detail wird der x2 mod N-Generator besprochen, der sehr einfach und zugleich sehr gut ist. Danach werden noch Verfahren beschrieben, wie man ein Geheimnis unter n Personen aufteilen kann, so dass weniger als t Personen keine Chance haben, das Geheimnis zu berechnen – t Personen aber schon. Dieses Verfahren wird dann erweitert, so dass die Parteien auch lineare Rechenoperationen ausführen können, ohne das Gesamtergebnis erfahren zu können – und dabei können sogar n/3 der Personen die Korrektheit des Ergebnisses nicht beeinträchtigen!
87
88
7. BIT-HINTERLEGUNG UND PERFEKTE ZUFALLSGENERATOREN
7.1. Network-Modell – nicht uniformes Modell. D EFINITION 7.1.1. Ein Zufallsgenerator vom Typ h ist eine pol. Zeit Abb. G : {0, 1}∗ → {0, 1}∗ mit G{0,1}n ⊂ {0, 1}h(n) , h(n) = nO(1) , h(n) > n. Bezeichnung: Un sei Gleichverteilung auf {0, 1}n . x ∈D {0, 1}n ist ein zufälliges x gemäß Verteilung D, G(D) : G(x)x∈ {0,1}n . D
D EFINITION 7.1.2. Ein Zufallsgenerator G vom Typ h ist pseudozufällig, wenn es vom Ensemble (Uh(n) )n∈N pol. ununterscheidbar ist. Damit ist der Zufallsgenerator G perfekt gdw. das Ensemble G(Un )n∈N pseudozufällig ist. D EFINITION 7.1.3. Ein Ensemble (Xn )n∈N vom Typ h oder l ist (nach rechts) unvorhersagbar, wenn für jede prob. pol. Netzwerkfamilie (Cn )n∈N und für alle t > 0 gilt max i=0,...,h(n)−1
1 |W sXn [Cn,i (x1 , . . . , xi ) = xi+1 ] − | = O(n−t ). 2
und Cn,i (x1 , . . . , xi ) := Cn (x1 · · · xi ri+1 · · · rh(n) ) mit ri ∈R {0, 1}. P ROPOSITION 7.1.4. (Yao, 1982) Ein Ensemble ist genau dann (nach rechts) unvorhersagbar, wenn es pseudozufällig ist. Yao, FOCS 1982. Satz wurde von Yao im Vortrag vorgestellt und ist nicht im Artikel veröffentlicht. B EWEIS . „⇐”: Sei Cn,i Netzwerkfolge zur Vorhersage von xi+1 bei gegebenem x1 · · · xi 0 zur Unterscheidung von mit Vorteil n−t bei x ∈ {0, 1}h(n) . Cn,i liefert Netzwerkfolge Cn,i (Xn )n∈N und (Uh(n) )n∈N : 0 Cn,i (x1 · · · xh(n) ) := Cn,i (x1 , . . . , xi ) ⊕ xi+1 .
Es gilt 0 0 |W sXn [Cn,i (Xn ) = 1] −W s[Cn,i (Uh(n) ) = 1]|
1 = |W sXn [Cn,i (x1 , . . . , xi ) = xi+1 ] − |. 2 Informal: Der Vorteil von Cn,i bei der Vorhersage von xi+1 zu gegebenem x1 · · · xi mit 0 beim Unterscheiden von X und x1 · · · xh(n) ∈Xn {0, 1}h(n) ist gleich dem Vorteil von Cn,i n Uh(n) . „⇒”: Sei C pol. Netzwerkfamilie, die (Xn )n∈N und (Uh(n) )n∈N pol. unterscheidet. Dann gilt für ein t > 0 und unendlich viele n |W s[Cn (Xn ) = 1] −W s[Cn (Uh(n) ) = 1]| ≥ n−t . Sei x1 · · · xh(n) ∈Xn {0, 1}h(n) , rq · · · rh(n) ∈U
h(n)
{0, 1}h(n) .
Betrachte die „hybride” Folge x1 · · · xi ri+1 · · · rh(n) . Es bezeichne Pi = W s[Cn (x1 · · · xi ri+1 · · · rh(n) ) = 1].
7.2. BIT HINTERLEGUNG (BIT COMMITMENT)
89
Es gilt |P0 − Ph(n) | = |W s[Cn (Xn ) = 1] −W s[Cn (Uh(n) ) = 1]|. 0
Ang. |P0 − Ph(n) | ≥ n−t . Dann gibt es ein i mit |Pi − Pi+1 | ≥ n−t /h(n) ≥ n−t . O.B.d.A. sei 0 zur Vorhersage von x pi+1 > pi . Das Netzwerk Cn,i i+1 arbeite wie folgt: ½ ri+1 falls Cn (x1 · · · xi ri+1 · · · rh(n) ) = 1 0 Cn,i (x1 · · · xi ) = ¬ri+1 sonst. Im Fall Pi+1 > Pi ist diese Vorhersage gerechtfertigt. Erfolgswahrscheinlichkeit der Vorhersage 0 W s[Cn,i (x1 · · · xi ) = xi+1 | xi+1 = ri+1 ] = Pi+1 0 und Definition von P . gilt nach Konstr. von Cn,i i+1
Es bezeichne 0 := W s[Cn,i (x1 · · · xi ) = xi+1 | xi+1 6= ri+1 ]
p¯
=
W s[Cn (x1 · · · xi ¬xi+1 ri+2 · · · rh(n) ) = 0].
Es gilt 1 pi = (Pi+1 + 1 − p) ¯ 2 somit p¯ = 1 + pi+1 − 2pi . Die Erfolgswahrscheinlichkeit der Vorhersage ist 1 (P + p) ¯ = 2 i+1 =
1 (P + 1 + Pi+1 − 2pi ) 2 i+1 1 + Pi+1 − Pi . 2 ¤
C OROLLARY 7.1.5. Das Ensemble (Xn )n∈N ist nach rechts unvorhersagbar gdw. es nach links unvorhersagbar ist. B EWEIS . Xnsp sei die Verteilung von xh(n) · · · x1 mit x1 · · · xh(n) ∈Xn {0, 1}h(n) . Mit (Xn )n∈N ist auch (Xnsp )n∈N pseudozufällig. ¤ 7.2. Bit Hinterlegung (Bit Commitment) Hinterlegung: Prover P hinterlegt Zufallsbit b ∈R {0, 1} in verschlüsselter Form an Verifier V . Aufdecken: P entschlüsselt b und V verifiziert. P, Cn 0. 1. 2.
c := Cn (wV , wP , b)
V, Cn ← wV c→ ?
wP , b → c = Cn (wV , wP , b)
V will b aus der Verschlüsselung erraten. P will wahlweise b = 0 oder b = 1 aufdecken.
90
7. BIT-HINTERLEGUNG UND PERFEKTE ZUFALLSGENERATOREN
Es seien Cn ,Vn pol. Zeit Turing Maschinen (uniform) oder Boolesches Netzwerk der Größe poly(n) = nO(1) (nicht uniform). Comp. zero-knowledge. (Sicherheit von P gegen V ) 1 max |W swP [Vn (wV , w¯ V , cn (wV , wP , b) = b] − | = O(n−t ) ∀t > 0. wV ,w¯ V 2 d.h. der Vorteil von V beim Erraten von b ist vernachlässigbar. Soundness. (Sicherheit von V gegen P) max W swV [cn (wV , w0P , 0) = cn (wV , w1P , 1)] = O(n−t ) ∀t > 0.
w0P ,w1P
Betrug von P, P hat w0p , w1p für b = 0, 1. E XAMPLE 7.2.1. Ein schönes Beispiel für ein Bit-Hinterlegungsprotokoll ist in [Salomaa1996] gegeben: Zunächst einigen sich P und V auf eine große Primzahl p und den Generator hgi = Z∗p . Dann wählt V eine zufällige Zahl r ∈R Z p und teilt diese P mit. Wie jedes Element aus Z p ,so lässt sich auch r darstellen als r ≡ ge mod p. Die Berechnung von e ist jedoch schwer unter der Annahme, dass das DL-Problem schwer ist. P wählt nun sein Bit b und eine Zufallszahl y ∈R Z p und teilt V die Zahl x ≡ rb gy mod p mit. Möchte P nun V sein Bit b mitteilen, so verrät es V die Zahl y, so dass V die Berechnung x·g−y anstellen kann und so entweder r (für b = 1) oder 1 (für b = 0) herausbekommt. Die Zahl y ermöglicht durch seine zufälige Wahl nur das Veröffentlichen des zugehörigen b’s und ist nicht für andere möglich. Wollte P betrügen, also vielleicht im Nachhinein sein b ändern, so müsste er zwei Zahlen y, y0 besitzen, für die gilt 0 gy mod p ≡ rgy mod p. In diesem Fall könnte er im Nachhinein durch das Verschicken von y bzw. y0 den Wert von b „beeinflussen”. Wäre er aber im Besitz dieser beiden Zahlen, dann wüsste er auch den diskreten Logarithmus von r, da gilt 0
r ≡ gy−y
mod p,
was ein Widerspruch zu der Annahme oben wäre. Ein Betrug wäre also nur bei Kenntnis des diskreten Logarithmus möglich. 7.3. Naor-Schema Journal of Cryptology 4 (1991) Sei G : {0, 1}n → {0, 1}3n perfekter (kryptographisch sicherer) Pseudo-Zufallsgenerator (PZG) vom Typ 3n. 1 3n Hinterlegen: V sendet wV ∈ ½R {0, 1} . P hinterlegt C := G(w p ) ⊕ (b ∧ wV ) zu wv fuer b = 1 w p ∈R {0, 1}n . b ∧ wV := . 0 fuer b = 0 ?
Aufdecken: P sendet w p , b. V prüft C = G(w p ) ⊕ (b ∧ wV ). 1Mit ⊕ ist das Bitweise XOR gemeint.
7.4. DER x2 mod N-GENERATOR UND QUADRATISCHE RESIDUOSITÄT
91
P ROPOSITION 7.3.1. Das Naor Schema ist sound und für perfekte PZG auch comp. zeroknowledge. B EWEIS . Wir werden wieder die beiden Eigenschaften soundness und completeness zeigen: sound: Zum Betrug benötigt P w0P , w1P mit G(w0p ) ⊕ G(w1p ) = wV . Es gilt W swV [∃w1P , w0P ∈ {0, 1}n : G(w0P ) ⊕ G(w1P ) = wV ] ≤ 2−n = 22n /23n, denn #{wV } = 23n , #{(w0P , w1P )} = 22n . comp. zero-knowledge: Pi (wV ) := W swP [Vn (wV , G(wP ) ⊕ (i ∧ wV )) = 1] fuer i = 0, 1 Vort(wV ) :=
1 P1 (wV ) − P0 (wV ) + . 2 2
Ang. ∃t > 0, wV : Vort(wV (n)) ≥
1 + n−t 2
für unendliche viele n. Dann P1 (wV ) − P0 (wV ) ≥ 2n−t . Ersetze G(wP ) durch w ∈R {0, 1}3n . P¯i (wV ) := W sw [Vn (wV , w ⊕ (i ∧ wV )) = 1] fuer i = 0, 1 P¯ (wV ) P¯ (wV ) 1
0
P1 (wV ) − P0 (wV ) = 2n−t . Offenbar gilt P¯1 (wV ) = P¯0 (wV ), denn w und w ⊕ (i ∧ wV ) sind gleichverteilt über {0, 1}3n . Somit gilt entweder oder
|P¯1 (wV ) − P1 (wV )| ≥ n−t |P¯ (wV ) − P (wV )| ≥ n−t . 0
0
In beiden Fällen sind die Ensembles (U3n )n∈N
und
G(Un )n∈N
pol. Zeit unterscheidbar. Widerspruch zu G perfekt. ¤ 7.4. Der x2 mod N-Generator und quadratische Residuosität Sei N = p · q Blum-Zahl, p, q prim, p, q = 3 mod 4. |QRN | =
p−1 2
· q−1 2 ist ungerade.
x 7→ x2 ist Permutation auf QRN . Bn = {N ∈ N | N = p · q Blum − Zahl und 2n/2−1 < p, q < 2n/2 }.
92
7. BIT-HINTERLEGUNG UND PERFEKTE ZUFALLSGENERATOREN
Es bezeichne zu x ∈ ZN , [x]N ∈ [0, N[, [x]N = x mod N und χN : Z∗N → {0, 1} die charakteristische Funktion von QRN , d.h. ½ 1 x ∈ QRN χN (x) = 0 sonst. 7.4.1. Die quadratische Residuositätsannahme (QRA). Für jede (prob.) polynomiale Netzwerk-Familie (Cn )n∈N und alle t > 0 gilt für N ∈R Bn , z ∈R Z∗N (+1): ¯ ¯ ¯ ¯ ¯W s [Cn (z, N) = χ (z)] − 1 ¯ = O(n−t ). N ¯ z,N 2 ¯fuer alle t>0 R EMARK 7.4.1. Für Blum-Zahlen N gilt |Z∗N (+1)| = 2|QRN | und somit W sz∈ 1| =
∗ R ZN (+1)
1 2.
|χN (z) =
Blum-Zahlen der Form 4r + 3 besitzen als hilfreichste Eigenschaft, dass −1 ein Quadratischer Nichtrest ist und der Wert des Jacobi-Symbols gleich +1 mod n ist. Nach der QRA wird also kein Algorithmus die quadratische Residuosität einer Zahl mit Ws. signifikant größer als 1/2 bestimmen. 7.4.2. Der x2 mod N-Generator. Eingabe: N ∈ Bn , x ∈ QRN . x1 := x, xi+1 := xi2 mod N für i = 1, . . . , `(n) − 1. Ausgabe: ([xi ]N mod 2 für i = 1, . . . , `(n)). P ROPOSITION 7.4.2. (Blum, Blum, Shub) Unter der QRA ist der x2 mod N-Generator bei gegebenem N nach links unvorhersagbar und somit perfekt. (Genauer: zu gegebenem ±xi , xi+1 , N ist [xi ]N mod 2 nicht vorhersagbar) B EWEIS . Es bezeichne bi = [xi ]N mod 2 das i-te Ausgabebit des x2 mod N-Generators. Wir transformieren eine beliebige Netzwerk-Familie Cn,i , die bi aus (bi+1 , . . . , b`(n) , N) vor0 , welche χ (z) zu z ∈ Z∗ (+1) und N vorhersagt. hersagt, in eine Netzwerk-Familie Cn,i N R N Bei der Transformation bleibt die Erfolgswahrscheinlichkeit erhalten. 0 : Das Netzwerk Cn,i Eingabe: N ∈R Bn , z ∈R Z∗N (+1), xi+1 := z2 , bi+1 := [xi+1 ]N mod 2, x j := x2j−1 , b j := [x j ]N mod 2 für j = i + 2, . . . , h(n). Ausgabe: 1, wenn Cn,i (bi+1 · · · bh(n) , N) = z mod 2. 0, sonst. √ Bez.: xi := xi+1 ∈ QRN .
Es gilt xi ∈ {±z}, xi = z ⇔ z ∈ QRN . Somit z = [xi ]N mod 2 ⇔ z ∈ QRN . Das Bit [xi ]N 0 haben gleiche Ermod 2 trägt (zu gegebenem xi = 1) die QR-Information von z. Cn,i ,Cn,i folgswahrsch. Es gilt jeweils xi+1 ∈R QRN . ¤ Das QR-Problem bei der Vorhersage des x2 mod N-Generators ist ±xi , xi+1 7→ [xi ]N
mod 2.
Das wirklich schwierige Problem ist die Berechnung xi+1 7→ ±xi , nämlich die Berechnung √ von xi+1 mod n.
7.4. DER x2 mod N-GENERATOR UND QUADRATISCHE RESIDUOSITÄT
93
L EMMA 7.4.3. Sei ALN : QRN → Z∗N (+1) beliebiger SQRT-Alg. Dann gilt für x ∈R Z∗N : Mit W sx = 21 ist ggT(ALN (x2 ) ± x, N) = {p, q}. 2 ∗ B EWEIS √ . x mod N ∈ QRN hat 4 Quadrat-Wurzeln in ZN , jeweils zwei mod q, ± x mod p.
x 6= ±ALN (x2 ) ⇔ ⇔
ggT(ALN (x2 ) ± x, N)
=
mod p,
x = ±ALN (x) mod p x = ∓ALN (x) mod q {p, q}.
Wegen x ∈R Z∗N tritt der Fall x 6= ±ALN (x2 ) genau mit W sx =
1 2
ein.
¤
Alexi, Chor, Goldreich, Schnorr (1988), Siam, J. Comp. 17,2 P ROPOSITION 7.4.4. Der x2 mod N-Generator mit EN (x) =de f min([x2 ]N , N −[x2 ]N ) statt x2 mod N ist perfekt, falls die Zerlegung von N schwierig ist. EN : [0, N/2[→ [0, N/2[ ist Permutation. Weil −1 ∈ Z∗N (+1) \ QRN ist genau einer von [x2 ]N , N − [x2 ]N in QRN . RSA-Funktion: ggT(e, ϕ (N)) = 1, zu gegebenem e, N. ENRSA : Z∗N x
→ 7 →
Z∗N
[xe ]N
u, uc RSA
mit xi+1 := EN (xi ). Ausgabe [xi+1 ]N mod 2k falls k-Bit prob Runde. Rabin-Funktion: (nicht zentriert) ENu : x 7→ [x2 ]N . Rabin-Funktion: (zentriert) ENc : x 7→ x2 mod N ∈] − N/2, N/2[ Rabin-Funktion: (absolute) ENa : x 7→ min([x2 ]N , N − [x2 ]N ) Fakt: (1) ENu permutiert QRN ∩]0, N[ (2) ENc permutiert QRN ∩] − N/2, N/2[ (3) ENq permutiert Z∗N (+1)∩]0, N/2[ falls (− N1 ) = 1. Zu gegebenem ±xi , xi+1 := ENc (±xi ) trägt xi mod 2 die QRN -Information xi ∈ QRN . u a
P ROPOSITION 7.4.5. Zu gegebenem N ∈R Bn , xi+1 := EN (xi ) mit xi ∈R Z∗N (+1) sind die log2 log2 N niedrigsten Bits von xi (simultan) pseudozufällig, sofern N schwer zerlegbar ist. N = 21024 asymptotisch log2 log2 N. Konkret Korollar 6 [FS]: N ≈ 25000 : 8 niedrigsten Bit sind simultan sicher. P ROPOSITION 7.4.6. Für die RSA-Funktion sind zu gegebenem N, xi+1 := [xie ]N mit xi ∈R Z∗N die log2 log2 N niedrigsten Bits von xi (simultan) pseudozufällig sofern ENRSA schwer invertierbar ist. [FS]Th2, P.236 par. 2.
94
7. BIT-HINTERLEGUNG UND PERFEKTE ZUFALLSGENERATOREN
C ONCLUSION 7.4.7. Beim x2 mod N-/RSA-Generator kann man pro Runde die log2 log2 N niedrigsten (für N = 25000 , 8) Bits von ENRSA (xi ) bzw. ENa (xi ) ausgeben. Der zugehörige Generator ist perfekt, sofern ENRSA schwer invertierbar bzw. N schwer zerlegbar ist. P ROBLEM 7.4.8. Ist die Entscheidung x ∈ QRN für x ∈R Z∗N (+1) so schwierig wie die Zerlegung von N? p Beim ENc -Generator wurde das QRN -Bit xi mod 2 und die Berechnung xi+1 7→ xi = ±xi+1 getrennt. Die beiden Sicherheitsbeweise unter QRA bzw. Faktorisierungsannahme liefern keine Abhängigkeit von QRA und Faktorisierungsannahme. Für den x2 mod N-Generator mit ENu , ENa , ENc ist xi+1 7→ ±xi so schwer wie die Zerlegung von N. p Ein QRN -Orakel für ±xi ∈ QRN hilft nicht: Berechnung xi+1 7→ xi = ±xi+1 . Wichtigste Beweistechnik: 7.4.3. Tschebycheff’sche Ungleichung (TU). Für jede Zufallsvariable X gilt VAR[X] W s[|X − E[X] ≥ ε ] ≤ ε2 mit VAR[x] := E[(E[X] − X)2 ] wobei E[X] der Erwartungswert ist und VAR[X] der Erwartungswert der quadratischen Abweichung. Mit der TU kann man einen Vorteil über Merheitsentscheidung vergrößern. Aus poly(n)−1 Vorteil erhält man eine fast sichere Entscheidung. ¡ ¢ E XAMPLE 7.4.9. QRN -Entscheidung für Blumzahl N, −1 N = 1. Das Netzwerk Cn habe ε -Vorteil bei der QR-Entscheidung. Für x ∈R Z∗N (+1) gelte 1 W sx [Cn (x, N) = χN0 (x)] = + ε 2 mit ½ 1 x ∈ QRN 0 χN (x) := −1 x ∈ Z∗N (+1) − QRN . Mehrheitsentscheidung zu χN0 (x). (1) Wähle x1 , . . . , xm ∈R Z∗N (+1), b1 , . . . , bm ∈R {±1}. 2 (2) Cnm (x) := sig(∑m i=1 biCN (bi xi x)) Es gilt: biCN (bi xi2 x) = ⇔
CN (bi xi2 x) =
χN0 (x) χN0 (bi xi2 x).
Cnm fällt eine Mehrheitsentscheidung: falsch, wenn die Mehrheit der CN (bi xi2 x) richtig ist. P ROPOSITION 7.4.10. Hat Cn ε -Vorteil bei der QRN -Entscheidung, dann gilt £ ¤ 1 W sb ,x CNm (x) 6= χN0 (x) < i i 4mε 2 ∗ für beliebige x ∈ ZN (+1).
7.4. DER x2 mod N-GENERATOR UND QUADRATISCHE RESIDUOSITÄT
95
B EWEIS . Für bel. x ∈ Z∗N (+1) ist bi xi2 x ∈R Z∗N (+1). Sei ½ 1 falls bi ∈N (bi xi2 x) = χN0 (x) Ri = . 0 sonst. 1 +ε 2 µ ¶µ ¶ 1 1 1 VAR[Ri ] = +ε −ε < 2 2 4 m m + mε E[ ∑ Ri ] = 2 i=1 E[Ri ] =
n
VAR[ ∑ Ri ] = i=1
m
∑ VAR[Ri ]
0. L EMMA 7.4.15. Sei X pol. Ensemble, dann gibt es einen pol. Generator (G0 , g0 ) mit 0
0
2g (n)/|D(G )∩{0,1}
g0 (n) |
≤ 2.
96
7. BIT-HINTERLEGUNG UND PERFEKTE ZUFALLSGENERATOREN
B EWEIS . Sei (G, g) Generator zu X, 2g(n) /|D(G) ∩ {0, 1}g(n) | ≤ nt mit t ∈ N. Setze
g0 (n) := g(n) · nt .
t
G0 (x), |x| = g0 (n) : x = x¯1 · · · x¯nt ∈ ({0, 1}g(n) )n . G0 (x) := G(x¯i ) für das minimale i mit x¯i ∈ D(G). 0
0
0
t
|0, 1}g (n) − D(G)| ≤ 2g (n) (1 − n−t )n ≤ 2g (n) /e 0
1