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
≡ hg j
mod q
ik− j
⇔ .
⇔ h ≡ g mod q logg h ≡ ik − j mod q. ¤
1.1. GRUNDLAGEN
9
Algorithm 1 Algorithmus von Shanks Eingabe: g ∈ G mit hgi = G und h ∈ G. Ausgabe: logg h. lp m |G| . (1) Berechne k := §q¨ (2) Setze l := k . (3) for i = 1, . . . , k − 1 do ik (a) Berechne ¡ ikg¢ . (b) Füge i, g in Liste L1 ein. (4) for i = 0, . . . , l − 1 do i (a) Berechne ¢. ¡ hg i (b) Füge i, hg in Liste L2 ein. ¡ ¢ ¡ ¢ (5) Suche Elemente i, gik ∈ L1 und j, hg j ∈ L2 mit identischer zweiter Koordinate. (6) return(logg h = ik − j) 0 ≤ i, j ≤ k − 1.
Laufzeit. Das Sortieren der Zahlen in Schritt 5 wird durch vorheriges Sortieren erleichtert. Das Sortieren benötigt k lg k Vergleiche. Nun füge Elemente aus L1 durch binary insertion in L2 ein, solange bis ein Element aus L1 ∩ L2 gefunden wird. Der Aufwand dafür beträgt ≤ l lg k Vergleiche. √ √ Damit ergeben sich Gesamtkosten von ≤ 2 q lg q Vergleichen. D EFINITION 1.1.6. Ein DL-Algorithmus ist generisch, wenn er auf Gruppenelementen in G nur Gruppenoperationen wie ·, / usw. und Gleichheitstests ausführt. Generische Algorithmen können auf die Bits der Binärkodierung der Gruppenelemente nicht zugreifen. P ROPOSITION 1.1.7. Sei AL ein beliebiger generischer Algorithmus mit t Gruppenoperationen und |G| = q prim. Dann gilt für ein zufälliges h ∈R G µ ¶ £ ¤ 1 t /q. W sh AL (h) = logg h ≤ + q 2 B EWEIS . Siehe Beweis zu Satz 4.3.1 auf Seite 54.
¤
Beispiele für nicht-generische DL-Algorithmen sind die Index-Calculus- und die Siebmethode für G = Z∗p : Man konstruiert über einer Primzahlbasis p1 , . . . , pt Relationen der Form he0 · ∏ pei i = ∏ pei i 0
i
mod p
i
und löst die zugehörigen Gleichungen e0 logg h + ∑ ei logg pi = ∑ e0i logg pi i
auf nach logg h, logg p1 , . . . , logg pt .
i
10
1. DISKRETER LOGARITHMUS UND PROTOKOLLE
1.2. Laufzeit von DL-Algorithmen zu G ⊂ Z∗p 1/2
Quadratisches Sieb: e(1+o(1))(ln p ln ln p) 1/3 2/3 Zahlkörpersieb: e(1+o(1))(ln p) (ln ln p)
Für generische Algorithmen ergibt sich folgende Komplexitätsschranke: P ROPOSITION 1.2.1. Jeder generische DL-Alg. zu G mit |G| = q prim benötigt penoperationen.
√ 2q Grup-
B EWEIS . Terminiert 1, dann gilt nach Satz 1.1.7 auf ¡ ¢ der Algorithmus mit Wahrscheinlichkeit √ der vorherigen Seite 2t /q ≥ 1 und somit t 2 ≥ 2q und t ≥ 2q. ¤ R EMARK 1.2.2. Für kryptographische Anwendungen wählt man Gruppen, für die der schnellste bekannte DL-Algorithmus generisch ist. Kryptographisch starke Gruppen sind z.B. zyklische Gruppen G mit |G| = q prim. Z.B.
p prim und q | p − 1: ∗ p−1 q
G = Zp
⊂ Z∗p ,
p−1 2q
der Größe lg q ≥ 160, lg p ≥ 768. ¡ ¢ Ebenso zufällige elliptische Kurven E (F p ), E F2t mit lg p ≥ 160, t ≥ 160 und p prim.
für zufällige Primzahlen q und zufällige
1.2.1. Der DL nach Pohlig-Hellman. P ROPOSITION 1.2.3. Sei |G| = q, q = ∏i pei i Primfaktorzerlegung. Dann geht h 7→ logg h ¡ √ ¢ mit ∑ti=1 ei 4 lg pi + 2 pi Mult. in G durch Anwendung des Pohlig-Hellman Algorithmus. B EWEIS . Algorithmus 2 von Pohlig und Hellman kann auch bei jeder zyklischen Gruppe G angewandt werden. Dazu benötigt er allerdings eine vollständige Primfaktorzerlegung von |G|. Die Idee ist, den logg a modulo der Primzahlpotenzen von |G| zu berechnen, um dann den diskreten Logarithmus mit Hilfe des CRT bestimmen zu können. ¤ Korrektheit: Gq/pi ist eine Gruppe der Ordnung pi . h 7→ hq/pi ist Gruppenhomo. G → Gq/pi . Es gilt: logg h ≡ log
gq/pi
hq/pi
mod pi ,
denn h = qa ⇒ hq/pi = gaq/pi . Um logg h mod pi zu berechnen, bildet man hq/pi und berechnet in Gq/pi das Element gq/pi und berechnet in Gq/pi log q/p hq/pi g
i
mod pi nach der Baby step-Giant step Methode. Laufzeit: Für die Binäre Methode werden 4 lg q und für die Baby-Giant-Methode √ 2 pi Multiplikationen in G benötigt. Das macht √ 4 lg q + 2 pi Multiplikationen in G. Die CRT Zusammensetzung ³ a mod pe11 , . . . , a
´ 7 a mod ptet →
erfordert keine Multiplikationen in G. 1.2.2. Forderungen an die Berechenbarkeit.
mod q
1.2. LAUFZEIT VON DL-ALGORITHMEN ZU G ⊂ Z∗p
11
Algorithm 2 Pohlig-Hellman Eingabe: g ∈ G mit hgi = G, |G| = ∏ki=1 pei i mit pi prim und a ∈ G. Ausgabe: logg a. (1) for i = 1, . . . , k do (a) for l = 1, . . . , pi − 1 do (i) Berechne ril = gl|G|/pi . (2) for i = 1, . . . , k do (a) Setze b := a. (b) for j = 0, . . . , ei − 1 do j+1
(i) Berechne c = b|G|/pi . (ii) Bestimme i, l mit ril := c. (iii) Setze ci j := l. j
(iv) Setze b := bg−ci j pi . (3) for i = 1, . . . , k do i −1 c p j . (a) Setze di := ∑ej=0 ij i (4) Bestimme mit CRT eine Lösung x des Systems x ≡ di mod pei i mit i = 1, . . . , k (→Gauss). (5) return(x) Kryptographische Forderungen an logg , expg . (1) expg muss in einem Bruchteil einer Sekunde gehen, z.B. in 220 ≈ 106 MaschinenZykeln. (2) logg h muss für fast alle h etwa 280 arithmetische Schritte erfordern. Etwa 250 Schritte sind technisch durchführbar. D EFINITION 1.2.4. f ist eine Einweg-Funktion, wenn f „schnell” berechenbar aber „schwer” invertierbar ist. Wir betrachten probabilistische Algorithmen AL für f −1 mit Laufzeit |AL| und interne Zufallsbits w. Sei h ∈R G zufällige Eingabe zu AL. D EFINITION 1.2.5. f −1 ist (2s , 2t )-schwer, wenn AL mit Ek,w |AL| ≤ 2s : W sh,w [ f (AL (x)) = x] ≤ 2−t . Damit ergeben sich folgende Bezeichnungen: ¡ 80 0 ¢ ¡280 , 21 ¢-schwer ∼ worst-case schwer ¡280 , 230 ¢-schwer ∼ im Mittel schwer 2 , 2 -schwer ∼ fast überall schwer
12
1. DISKRETER LOGARITHMUS UND PROTOKOLLE
Algorithm 3 Diffie-Hellman Verfahren Anwendung: Sichere Schlüsselerzeugung über einen unsicheren Kanal. Öffentlich: p, hgi = Z∗p Geheim: grA rB Verschlüsselung: Symmetrisch mit dem geheimen Schlüssel. Entschlüsselung: Symmetrisch mit dem geheimen Schlüssel. (1) A und B wählen eine Primzahl p und ein erzeugendes Element g der Gruppe Z∗p . [öffentlich]
(2) A wählt rA ∈R [1, p − 2] [geheim] und sendet grA an B [öffentlich] (3) B wählt rB ∈R [1, p − 2] [geheim] und sendet grB an A [öffentlich] (4) Der geheime Schlüssel ist nun grA rB . 1.2.3. Diffie-Hellman Schlüsselerzeugung. Analog ist das DH-Problem zu G = hgi bei gegebenem g, gx , gy die Berechnung von gxy . Diese Schwierigkeit liegt der DiffieHellman Schlüsselvereinbahrung (siehe Algorithmue 3) zugrunde. L EMMA 1.2.6. Das DH-Problem ist polynomiell äquivalent zum DL-Problem: ⇔
DH ≤pol DL.
B EWEIS . Jeder DL-Algorithmus löst das DH-Problem: x := logg (gx ) , y := logg (gy )
⇒
gxy := (gy )x . ¤
P ROPOSITION ¡ ¢ 1.2.7. Sei G = hgi,√|G| = q prim. Dann benötigt jeder generische Algorithmus g, ga , gb 7→ gab mindestens 2q Gruppenoperationen. ¤
B EWEIS . Siehe Beweis zu Satz 1.2.1 auf Seite 10. P ROBLEM 1.2.8. DL≤pol DH-Problem. Kann man also logg mit polynomiell vielen DH-Aufrufen berechnen? ¡ ¢ DH : g, ga , gb 7→ gab entspricht Multiplikationen in Z∗q : (a, b) 7→ ab. Ist eine Zerlegung von q − 1 bekannt, dann gilt DL ≤pol. DH:
P ROPOSITION 1.2.9. Sei G = hgi, |G| = q prim, mit gegebener Zerlegung q − 1 = q1 · · · qt √ in teilerfremde q1 , . . . , qt . Dann geht h 7→ logg (h) mit 4t lg q + 2 ∑ti=1 q DH-Aufrufen und 2t lg q Multiplikationen in G. B EWEIS . Sei x = logg (h), x 6= 0, x ∈ Z∗q . Bestimme nun x, durch Finden eines Generators c mit hci = Z∗q und bestimme die wi mit x = cwi mod qi für alle 1 ≤ i ≤ t. Bilde zuletzt mit dem CRT aus den gefundenen wi = w mod qi ein w ∈ Zq−1 mit x := cw mod q: 1. 2. 3. 4. 5.
h=
gx g gc
³ i´ x2
7→
g
7→ 7 → 7 →
gx¯
,³i = 0, . . . ´, lg q
=g
x(q−1)/q j
gc gc¯ ∗ q−1 q
Löse c¯t = x¯ für e, ¯ x¯ ∈ Zq
j
lg q DH lg q DH 2 lg q Mult. in G 2 lg q DH 2√q DH j
1.2. LAUFZEIT VON DL-ALGORITHMEN ZU G ⊂ Z∗p
13
Eine Alternative wäre folgende Vorgehensweise: 1. 2. 3.
7 → gx¯ 2 lg q DH für t = 0, . . . , q j − 1 2qi lg q Mult. in G t Löse gx¯ = g(c¯ ) durch Vergleiche. x
t g(c¯ )
¤ R EMARK 1.2.10. Bei Algorithmus 3 handelt es sich nicht nicht um einen Schlüsselaustausch, sondern um eine Schlüsselvereinbahrung, da beide Parteien an der Erzeugung des Schlüssels beteiligt sind.
Algorithm 4 ElGamal-Verfahren Anwendung: Asymmetrische Verschlüsselung. Öffentlich: p, hgi = Z∗p , h = ge Geheim: e ¡ ¢ Verschlüsselung: ek (x, r) = (gr mod p, xhr mod p) = y1 , y2 ¡ ¢ Entschlüsselung: dk y1 , y2 ≡ y2 (ye1 )−1 mod p Ein Schlüssel wird durch Wahl einer Primzahl p und eines erzeugenden Elements g für Z∗p erzeugt. Dazu wird aus einem e ∈ N die Zahl h ≡ ge mod p berechnet. Die Zahlen p, g, h sind öffentlich, der Exponent e bleibt geheim. Es gilt Pk = Z∗p ,Ck = Z∗p × Z∗p . Zum Verschlüsseln wird ein r ∈R Z p−1 gewählt und ek (x, r) = (gr
mod p, xhr
¡ ¢ mod p) = y1 , y2
berechnet. Die Entschlüsselungsfunktion ist dann ¡ ¢ dk y1 , y2 ≡ y2 (ye1 )−1
mod p.
1.2.4. ElGamal Verschlüsselung. Durch die Wahl von r ∈R Z p−1 ist die Verschlüsselung randomisiert. Zu jedem x ∈ G gibt es q Cipher-Texte (gr , xhr ) – die Expansionsrate ist 2. Bzgl. des Nachrichtenraums M bei der ElGamal-Verschlüsselung gilt ¡ ¢ (1) M ⊂ G geht für G = Z∗p , EA,B (F p ), EA,B F2t (2) (M, +) ist Gruppe mit öffentlicher Zufallsfunktion H : G → M. Das Verschlüsseln erfolgt durch x
7→
(gr , m + H (hr ))
das Entschlüsseln durch m := m + H (hr ) − H (grx ) .
14
1. DISKRETER LOGARITHMUS UND PROTOKOLLE
1.3. Angriffe auf Verschlüsselungen Wir unterscheiden im Folgenden drei Arten von Angriffen: Ciphertext Only Attack (CA): Der Angreifer hat den Ciphertext und den öffentlichen Schlüssel und will entschlüsseln. Chosen Plaintext Attack (CPA): Der Angreifer erhält zusätzlich Ciphertexte zu Nachrichten seiner Wahl. Chosen Ciphertext Attack (CCA): Der Angreifer hat ein Entschlüsselungsorakel zum Entschlüsseln von Ciphertexten, die verschieden sind von der Herausforderung. P ROPOSITION 1.3.1. Das Brechen der ElGamal-Verschlüsselung durch CA ist äquivalent zum Lösen des DH-Problems. L EMMA 1.3.2. Für dieElGamal-Verschlüsselung ist CPA äquivalent zu CA. B EWEIS . Der Angreifer kann beliebige Nachrichten selbst verschlüsseln.
¤
Bzgl. der CCA stellt sich die ElGamal-Verschlüsselung als unsicher dar: L EMMA 1.3.3. Die ElGamal-Verschlüsselung wird durch CCA gebrochen. B EWEIS . Gegeben ist g, h, cip = (gr , mhr ). Der Angreifer sucht sich a ∈R Zq und definiert cip0 := (gr , mhr ha ), indem er einfach die zweite Komponente mit ha multipliziert und lässt cip0 entschlüsseln. Damit ist cip0 der Schlüsseltext zu mha . Durch einfaches Dividieren von ha erhält der Angreifer somit den Klartext:
⇒
cip = (gr , mhr ) cip0 = (gr , mhr ha ) = (gr , mhr+a ) dk (cip0 ) = mha ⇒
cip
= dk (cip0 )/ha = m. ¤
R EMARK 1.3.4. Um sich bei der ElGamal-Verschlüsselung gegen CCA zu schützen kann man dem Ciphertext einen Nachweis über die Kenntnis von r (z.B. durch eine digitale Unterschrift zum Schlüsselpaar (r, gr )) anhängen. 1.4. Elliptische Kurven Elliptische Kurven kann man über beliebigen Körpern definieren. Für die Kryptographie interessant sind elliptische Kurven über endlichen Körpern, speziell über Primkörpern. Die Verwendung elliptische Kurven für kryptographische Anwendungen kann mehrere Gründe haben: (1) Public-Key-Kryptographie mit elliptischen Kurven ist die wichtigste bis jetzt bekannte Alternative zu RSA-basierten Verfahren. Solche Alternativen sind dringend nötig, da niemand die Sicherheit von RSA garantieren kann.
1.4. ELLIPTISCHE KURVEN
15
(2) Das EC-Kryptosystem bietet Effizienzvorteile gegenüber dem RSA-Verfahren: Während RSA modulare Arithmetik mit 1024-Bit-Zahlen verwendet, genügen für EC-Verfahren 163-Bit-Zahlen. Zwar ist die Arithmetik auf elitischen Kurven aufwendiger als die in primen Restklassengruppen, doch das wird durch die geringere Länge der verwendeten Zahlen kompensiert. Dadurch ist es z.B. möglich, EC-Kryptographie auf Smartcards ohne Co-Prozessor zu implementieren, was billiger als eine Lösung mit Co-Prozessor ist. [Beutelspacher et al. 2001, Kapitel 12.2] Sei F ⊂ K Körper und A, B ∈ F. Die Gleichung y2 z = x3 + Axz2 + Bz3 ¡ ¢ hat die Diskriminante ∆ = −16 4A3 + 27B2 .
(∗)
D EFINITION 1.4.1. Zwei Lösungen (x, y, z) und (x0 , y0 , z0 ) aus K3 heissen äquivalent, wenn gilt ¢ ¡ ∃c ∈ K∗ : c (x, y, z) = x0 , y0 , z0 . Wir betrachten nur Lösungen (x, y, z) 6= (0, 0, 0). Dabei ist (x : y : z) eine Äquivalenzklasse von (x, y, z). D EFINITION 1.4.2. Die elliptische Kurve EA,B (K) besteht aus allen Punkten P = (x : y : z) mit x, y, z ∈ K, die die Gleichung (∗) oben lösen. Dabei gilt: (1) Es gibt genau ein (x : y : z) ∈ EA,B (K) mit z = 0, nämlich (0 : 1 : 0). (z = 0 ⇒ x = 0) (2) Jeder Punkt (x : y : z) mit z 6= 0 ist von der Form (x0 , y0 , 1) mit x0 = x/z und y0 = y/z. Dabei sind x0 , y0 normierte Koordinaten und x, y, z homogene Koordinaten. (3) Die Punkte (x : y : 1) ∈ EA,B (K) lösen die Gleichung y2 = x3 + Ax + B. Die Gruppenstruktur einer elliptischen Kurve EA,B (K) ist wie folgt definiert: (1) Das neutrale Element ist (0 : 1 : 0) =: O mit P + O = O + P = P. (2) (x : y : z) + (x : −y : z) = O. (3) Seien Pi = (xi : yi : 1) für i = 1, 2 mit y1 6= y2 , dann gilt ³ ´ P1 + P2 = x3 : y3 : 1 ¡ ¢ mit x3 = λ 2 − x1 − x2 und y3 = λ x1 − x3 − y1 . Also ist y2 −y1 , falls P1 6= P2 x2 −x1 λ= . 2 3x1 +A , falls P = P 1 2 2y 1
P ROPOSITION 1.4.3. EA,B (K) mit + ist eine abelsche Gruppe. C OROLLARY 1.4.4. Die Addition in EA,B (K) geht mit O (1) Additionen/Multiplikationen im Koeffizientenkörper F ⊂ K. Die Berechnung von P1 + P2 in homogenen Koordinaten geht ohne Division.
16
1. DISKRETER LOGARITHMUS UND PROTOKOLLE
1.5. Schlüsseltransport mit Rücklauf (Shamir’s „No Key Protocol”) Zwei Teilnehmer möchten sich eine vertrauliche Nachricht zukommen lassen, besitzen jedoch keinen gemeinsamen Schlüssel. Shamir schlägt vor, dass A die Nachricht mit seinem Schlüssel verschlüsselt und an B schickt. Dieser verschlüsselt die Nachricht wieder mit seinem Schlüssel und schickt sie an A zurück. A entschlüsselt die Nachricht mit seinem Schlüssel und schickt sie wieder an B. Dieser kann die Nachricht jetzt mit seinem Schlüssel entschlüsseln und lesen. Eine mathematische Realisierung basiert auf der diskreten Exponentialfunktion, die die wesentliche Eigenschaft ¡ ¢ fa fb (x) = fb ( fa (x)) besitzt. Beide Teilnehmer einigen sich auf eine große Primzahl p. A erzeugt ein Paar (a, a0 ) mit a · a0 ≡ 1 mod (p − 1) und B erzeugt genauso (b, b0 ). Soll eine Nachricht m an B übertragen werden, so wird wie folgt vorgegangen:
1. 2. 3.
A Berechnet x ≡ ma mod p Berechnet z ≡
0 ya
mod p
B x→ ←y z→
Berechnet y ≡ xb mod p 0 0 0 Berechnet zb ≡ maba b ≡ m mod p
Vorteil. Kein öffentliches Verzeichnis erforderlich, Authentikation gesichert. Nachteil. Eignet sich weniger zum Versenden verschlüsselter Nachrichten, weil die Nachricht in g kodiert werden muss. Angriff. C schickt in Schritt 2. mac und erhält von A mc zurück, womit die Nachricht entschlüsselt werden kann. Damit Authentikation (Ursprungsnachweis) gesichert ist, muss der Übertragungskanal gegen aktive Störer geschützt weden, z.B. durch eine digitale Unterschrift. In diesem Fall wird in Schritt 1. und 3. zusätzlich noch sigA (x) bzw. sigA (z) und in Schritt 2. sigB (y) mit übertragen. Wieder ist das Verfahren so sicher wie das DL-Problem: ¡Gibt¢es eine Lösung für das DLa Problem, so kann ein Angreifer aus x = ma und y = mab = mb den Schlüssel a berechnen und dann ganz einfach a0 erhalten.
1.6. ElGamal Signaturen Öffentlich: g, G = hgi , |G| = q, H (). Secret-Key: x ∈R Zq . Public-Key: h = gx . Signatur: (r, s) ∈ G × Zq mit r ≡ gk und s ≡ k−1 (H (m) − x · r) mit k ∈R Z∗q−1 (geheim). ?
Test: gH(m) ≡ hH(r) · rs .
1.6. ELGAMAL SIGNATUREN
17
Der Absender sucht sich eine kollisionsresistente Hashfunktion H : {0, 1}∗ → {1, 2, . . . , q − 1} und errechnet den Hashwert H (m) der Nachricht m ∈ {0, 1}∗ und den öffentlichen Schlüssel h ≡ gx mod q. Jetzt wählt er eine Zufallszahl k ∈R Z∗q und berechnet r :≡ gk
mod q ,
s :≡ k−1 (H (m) − xH (r))
mod (q − 1).
Die digitale Unterschrift besteht nun aus dem Paar (r, s) ∈ G × Zq . Das Prüfen der Unterschrift geschieht durch ein Vergleichen von gH(m) mit hH(r) ·rs mod q. Bei Gleichheit ist die Nachricht korrekt, da nach Fermat gilt: hH(r) · rs ≡ (gx )H(r) · gks ≡ gxH(r)+ks ≡ gH(m)
mod q,
da ks ≡ H (m) − xH (r) mod (q − 1) ist. Sicherheit. Um Unterschriften fälschen zu können muss die Gleichung gH(m) = hH(r) rs oder der logg h gelöst werden. Es muss allerdings darauf geachtet werden, dass keine zwei Nachrichten mit der gleichen Zufallszahl k signiert werden. In diesem Fall kann ein Angreifer den geheimen Schlüssel finden: r H(r)
h
H(r)
h ⇒
·r
s1
·r
s2
H(m1 )−H(m2 )
g
:= gk ≡ ≡ ≡
H(m1 )−H(m2 )
mod q
H(m1 )
mod q
H(m2 )
mod q
g g r
s1 −s2
mod q
k(s1 −s2 )
⇔ g ≡ g mod q ⇒ H(m1 ) − H(m2 ) ≡ k(s1 − s2 ) mod (q − 1) Sei d := ggT(s1 − s2 , q − 1) H(m1 ) − H(m2 ) ⇒ H(m0 ) = d s − s 1 2 s0 := d q−1 q0 := d s −s ⇒ H(m0 ) = k · 1 2 mod q0 d ggT(s0 ,q0 )=1
⇒
⇒
ε x xi
≡ ≡ ≡
(s0 )−1 mod q0 H(m0 )ε mod q0 H(m0 )ε + iq0 mod q i = 0, . . . , d − 1
Für eines der i gilt dann h ≡ gxi mod q. Nachteil. Fälschen ist nicht äquivalent zum DL-Problem. Siehe dazu auch [PointchevalStern1996].
18
1. DISKRETER LOGARITHMUS UND PROTOKOLLE
Länge der Unterschrift. 2 lg q. D EFINITION 1.6.1. Unter einer existential forgery, oder auch existentielle Fälschung, werden nach [Menezes1997, Kapitel 9] Attacken verstanden, bei denen es für einen Angreifer möglich ist, Signaturen von Nachrichten zu erzeugen ohne den geheimen Schlüssel zu kennen, wobei er allerdings keine Kontrolle über den zu signierenden Text hat. Eine existential forgery wird ermöglicht, wenn anstelle des Hashwertes der Nachricht die Nachricht selbst signiert wird. Sei also G = Z∗p und H : G ⊂ [0, p[ die Hashfunktion mit H (m) = m und H (r) = r. Wähle nun u ∈R Z und v ∈ Z mit ggT (v, p − 1) = 1 und setze r := gu hv ≡ gu+xv
mod p,
s := −rv−1
mod (p − 1) .
Dann ist (r, s) Signatur zu m := su mod (p − 1): ¡ ¢s hH(r) rs ≡ (gx )H(r) gu+xv ≡ gxr gsu+svx ≡ gxr+svx gsu ≡ gsu ≡ gm da gilt xr + svx
mod p,
¡ ¢ ≡ xr + −rv−1 vx ≡ xr − rx ≡ 0 mod (p − 1) . 1.7. Schnorr Signaturen
Öffentlich: g, G = hgi , |G| = q prim, H : G × {0, 1}∗ → [0, 2t [ ⊂ Z p , t ≥ 80. Secret-Key: x ∈R Zq . Public-Key: h = gx . Signatur: (e, y) ∈ [0, 2t [ × Zq mit e ≡ H (gr , m) und y ≡ r + ex mit r ∈R Z∗q−1 ?
Test: H (gy h−e , m) ≡ e. Um eine Signatur von m zu erzeugen wählt A ein r ∈R Zq und berechnet e := H (gr , m) , Die Signatur ist dann (e, y) ∈ gestellt:
y := r + xe
[0, 2t [ × Zq .
mod q.
Zur Überprüfung wird folgender Vergleich an-
¡ ¢ ? H gy h−e , m = e.
Es gilt gy h−e = gy−ex = gr
⇔
r = y − ex.
Die Länge der Signatur ist dann lg q + t ≤ 160 + 80 = 240. Ursprünglich war G ⊂ Z∗p mit p prim und G elliptische Kurve usw. Wählt man p als Primteiler von q − 1, so kann auch kurze Unterschriften erzeugen, dieu z.B. zum Unterschreiben der öffentlichen Schlüssel eingesetzt werden. Sicherheit: Die Schnorr-Signaturen sind sicher im Random Oracle und im generischen Modell.
1.9. NYBERG-RUEPPEL SIGNATUREN, MESSAGE RECOVERY
19
1.8. Digital Signature Algorithm, DSA Öffentlich: g, G = hgi , |G| = q prim, G ⊂ Z∗p oder G = E(F p ), H : {0, 1}∗ → Zq . Secret-Key: x ∈R Zq . Public-Key: h = gx . Signatur: (r, s) ∈ G × Zq mit r := (gk mod p) mod q und s := k−1 (H (m) + xr) mod q. Test: 0 < r, s < q und r = (gH(m)/s hr/s mod p) mod q. Eine Signatur zu einer Nachricht m wird durch Wahl von k ∈R Z∗q und ³ ´ r := gk mod p mod q , s := k−1 (H (m) + xr) mod q erzeugt. Die Signatur ist dann (r, s) ∈ G × Zq . Zur Überprüfung der Korrektheit wird getestet, ob gilt r k
⇔ g ⇔ k ⇔ k ⇔ k
≡ (gH(m)/s hr/s ≡ ≡ ≡ ≡
mod p) mod q
H(m)/s xr/s
(g g mod p) mod q H(m)/s + xr/s mod (q − 1) (H(m) + xr)k/(H(m) + xr) mod (q − 1) k mod (q − 1).
Im Fall G = E (F p ) ersetze g r
durch durch
P ∈ E (F p ) mit hPi = E (F p ) x mit (x : y : 1) = k · P.
Siehe auch [CoppersmithOdlukoSchroeppel1985]. 1.9. Nyberg-Rueppel Signaturen, Message Recovery [NybergRueppel1993] Ziel dieser Signatur war die Minimierung der Länge von (Nachricht, Signatur). Secret-Key: x ∈R Zq . Public-Key: h = gx Signatur: (e, y) ∈ Z2q mit e ≡ (m · gr ) und y ≡ r − xe. ?
Test: m = e/ (gy he ) mod q. Alle Gruppenelemente sind als ganze Zahlen kodiert, G ⊂ Z, z.B. G ⊂ Z∗p ∼ = [1, p[. Seien nun ·, / Mult. und Div. in Z – im Unterschied zur Mult. und Div. in G. Eine Signatur wird erzeugt durch Wahl von r ∈R Zq und e := (m · gr ) Die NR-Signatur ist dann
(e, y) ∈ Z2q
mod q
y := r − xe
mit der Bitlänge ohne m von lg q ≈ 160.
Die Überprüfung bzw. das Recovery funktioniert durch ?
m = e/ (gy he )
mod q.
Das gilt wegen gy he = gy+ex = gr−ex+ex = gr = e/m.
20
1. DISKRETER LOGARITHMUS UND PROTOKOLLE
Sicherheit. Auf NR-Signaturen kann ein CMA-Angriff vollzogen werden: ´ ³ 0 0 r mod q ist. Um (e, y) ist eine Signatur von m gdw. (e, y + r ) eine Signatur von m/g 0
m zu signieren fordert man eine Signatur (e, y0 ) von m/gr an und erhält eine Signatur (e, y0 − r0 ) von m. In der Standard Version nach IEEE ist m ∈ Zq . Die Signatur wird dann aus r ∈R Zq erzeugt mit e := (gr + m) mod q. Wenn e 6= 0, dann wird y := r − xe gesetzt. Die Signatur ist jetzt (e, y) ∈ Z2q . Die Unterscheidung nach e muss gemacht werden, da Signaturen (0, y) von m ≡ gy mod q ohne x gehen und deshalb verboten sind. Das Prüfen, Recovery geht mittels ?
m = e − gy he
mod q.
Schutz gegen CMA. Um sich gegen CMA-Attacken zu schützen muss die Signatur etwas abgeändert werden: Der Nachrichtenraum sei Zkq , k ≥ 1 mit H : G → Zkq und H 0 : Zkq → Zq öffentliche Zufallsfunktionen (es sei keine Kodierung von m 7→ cod (m) ∈ G erforderlich). Die Signatur wird nun mittels r ∈R Zq , ¢ ¡ ¯ e := e1 , . . . , ek = H (gr + m) , e¯ := e1 + . . . + ek , y := r − ex. erzeugt und ist (e, y) ∈ Zk+1 q . Das Prüfen/Recovery geht mit ¡ ¢ ? m = e − H gy he¯ . Ein existential forgery im ROM geht mittels
¡ ¢ (e, y) 7→ m := e − H gy he¯
und liefert eine Signatur einer Zufallsnachricht m ∈R Zkq , die stat. unabh. ist von e, y.
KAPITEL 2
Diskrete Logarithmus Identifikation Dieses Kapitel widmet sich komplett der DL-Identifikation, also diverser Verfahren, in denen ein Prover P einem Verifier V seine Identität beweist. Der Clou hierbei ist, dass V den öffentlichen Schlüssel von P besitzt (in der Regel v = gx ) und P beweist, dass er x (seinen geheimen Schlüssel) kennt. Dabei sollten folgende Bedingungen erfüllt sein: Completeness: Handelt es sich bei P nicht um einen Betrüger, so soll P das Protokoll mit nur vernachlässigbarer Wahrscheinlichkeit nicht bestehen. ˜ und besteht Soundness: Handelt es sich bei P um einen Betrüger (im Folgenden P) er das Protokoll mit nicht vernachlässigbarer Wahrscheinlichkeit, so kennt er auch den geheimen Schlüssel. Desweiteren sollte gelten: (1) Ein Angreifer, der die Kommunikation von P und V belauscht darf daraus keine Informationen über das Geheimnis x erhalten. (2) Einem betrügerischen Verifier V˜ darf es nicht möglich sein, P nach einer Identifikation zu impersonifizieren. Zunächst wird die Schnorr-Identifikation vorgestellt und bewiesen, dass diese „sicher” gegen passive Angreifer ist – also Angreifer, die höchstens Kommunikation belauschen können, jedoch nicht aktiv mit dem ehrlichen Prover P kommunizieren können. Ein Beweis der Sicherheit gegen aktive Angreifer im Turingmaschinen-Modell, die vorher mit dem ehrlichen Prover kommunizieren und Informationen auswerten können, wurde bis heute nicht gefunden, im generischen Modell und im ROM erweist sich das Verfahren aber als sicher (siehe Kapitel 4). In Abschnitt 2.5 wird die Sicherheit der Schnorr-Identifikation gegen aktive Angreifer im Turingmaschinen-Modell mit einer Abwandlung nach Okamoto bewiesen. Desweiteren wird eine Abwehrmöglichkeit gegen Man-In-The-Middle-Attacken erklärt und ein Verfahren nach Brickell-McCurley präsentiert, das sich sowohl das DL-Problem als auch das Faktorisierungs-Problem stützt.
21
22
2. DISKRETE LOGARITHMUS IDENTIFIKATION
2.1. Schnorr Identifikation [ChaumEvertseGraaf1998, Schnorr1991] Öffentlich: g, G = hgi , |G| = q prim, h = gx . Privat: x ∈R Zq . Damit erfolgt eine Identifikation wie folgt: (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 [0, 2t [
y→
Berechnet g¯ = gy h−e
?
Die Korrektheit ergibt sich aus gy h−e = gr+xe g−xe = gr = g. ¯ Im Folgenden sei der Erfolg eines Betrugs definiert durch ¡ ¢ £¡ ¢ ¤ ˜ h := W sw P,V ˜ ε := ERFw P, akzeptiert mit h und
¡ ¢ ˜ v . w := Zufallsbits von P, ¡ ¢ ˜ h = 2−t . L EMMA 2.1.1. Es gibt ein prob. pol. Zeit P˜ mit ERFw P, B EWEIS . P˜ wählt r ∈R Zq und e˜ ∈R [0, 2t [ und sendet g¯ := gr h−e˜ und y := r. Offenbar
gilt g¯ = gr h−e
⇔
e = e˜
und W s [e = e] ˜ = 2−t . ¤ ˜ die Schrittzahl von (P,V ˜ ), diese sei o.B.d.A. unabhängig von h, r. Ebenso sei ε = Sei |P| ˜ h) unabh. von h. Ziel ist ein „Angriff aus dem Stand” (also ein passiver Angriff). ERFw (P, Wir zeigen jetzt, dass ein Angreifer mit nicht vernachlässigbarer Erfolgsws. in der Lage ist, den DL zu berechnen: ˜ DL ≤ erfolgreicher P. pol
P ROPOSITION 2.1.2. Es gibt einen prob. Extraktor ˜ h) 7→ logg h AL : (P, ˜ ε ), sofern ε ≥ 2−t+1 . mit Ew |AL| = O(|P|/ Korrektheit: Die Korrektheit von Algorithmus 5 lässt sich zeigen durch ERFw ˜ ,e = 1 P
mit
³ ´ ˜ w˜ g¯ = g¯ P, P
⇔
g¯ = gy h−e
³ ´ ˜ w ˜, e . , y = y P, P
2.1. SCHNORR IDENTIFIKATION
23
˜ h) „Probabilistischer Extraktor” Algorithm 5 AL(P, (1) (2)
(3)
(4) (5)
˜ h) mit w enthält w ˜ ∈ {0, 1}|P|˜ für alle Aufrufe von P: ˜ AL(P, AL P u := 0; *** Stufe 1: *** do ˜ w ˜ ) – wie P˜ mit w ˜ – e ∈R [0, 2t [; (a) g¯ := g( ¯ P, P P ˜ w ˜ , e) – wie (P,V ˜ ); (b) y := y(P, P (c) u := u + 1; until (ERFw ˜ ,e = 1); P *** Stufe 2: *** *** In u stehen #Versuche beim Erzeugen von wP˜ , g, ¯ y, e *** for maximal u zufällige e¯ ∈R [0, 2t [ do (a) Teste für wP˜ , g¯ ob ERFw ˜ ,e¯ = 1; P if ERFw ˜ ,e¯ = 1, e 6= e¯ then P
y¯ (a) logg h = y− e−e¯ mod q. (6) else (a) goto 1 und starte mit unabhängigen wP˜ neu.
Dann gilt: y − y¯ mod q. e − e¯ Beachte, dass g¯ nur von wP˜ und nicht von e, e¯ abhängt! gy h−e = g¯ = gy¯ h−e¯ ⇒ logg h =
Die Erfolgsmatrix. Mit der Erfolgsmatrix soll zu jedem von V zufällig gewählten ˜ e bestimmt werden, für welche Zufallsbits w ∈ {0, 1}|P| der Angreifer P˜ eine korrekte Identifikation erschleichen kann. Es ist ERFw,e ∈ {0, 1}, wobei 1 für einen Erfolg und 0 für einen Misserfolg steht (siehe Abbildung 2.1.1).
e ∈ [0, 2t [
˜
w ∈ {0, 1}|P|
ERFw,e
der Verifier wählt ein zufälliges e A BBILDUNG 2.1.1. Die Erfolgsmatrix
der Angreifer wählt ein zufälliges w
24
2. DISKRETE LOGARITHMUS IDENTIFIKATION
˜
Ziel des AL ist es nun zwei Einsen in einer Zeile w ∈ {0, 1}|P| zu finden. Eine Zeile mit zwei Einsen verdoppelt die Chancen, die Identifikation zu fälschen auf ≥ 2−t+1 . D EFINITION 2.1.3. Eine Zeile w heisst schwer, wenn sie mehr als eine Eins enthält. FACT 2.1.4. Wegen ε ≥ 2−t+1 liegt mindestens die Hälfte aller Einsen in schweren Zeilen. B EWEIS . Einerseits gilt in dem Fall, dass es keine schwere Zeile gibt, also in jeder Zeile maximal eine Eins stehen kann
∑ ∑ ERFw,e ≤ 2|P| ˜
w leicht e
und andererseits folgt aus ε ≥ 2−t+1 (siehe Lemma 2.1.1 auf Seite 22), dass gilt
∑ ∑ ERFw,e ≥ 2t 2|P| 2−t+1 = 2 · 2|P| . ˜
˜
w e
˜
Hier wird das Produkt aus der Anzahl der Spalten (2t ), der Anzahl der Zeilen (2|P| ) und der Wahrscheinlichkeit, dass in einer Zelle der Erfolgsmatrix eine Eins steht (2−t+1 ) berechnet. ˜
˜
Von mindestens 2|P|+1 -vielen Einsen sind also nur maximal 2|P| -viele in nicht-schweren Zeilen – der Rest der Einsen (also mindestens die Hälfte alle Einsen) liegt also in schweren Zeilen. ¤ Laufzeit von AL. Es gilt für die erwartete Anzahl von Wiederholungen von Stufe 1: ∞
Ew [u] =
∞
∑ ( j + 1) (1 − ε ) j ε = ∑ j (1 − ε ) j−1 ε
j=0
j=0
∞
= ε · ∑ j (1 − ε ) j−1 = j=0
ε (1 − (1 − ε ))2
= ε −1 ,
wegen ∞
1
∑ xi = 1 − x
i=0
∞
,
1
∑ i · xi−1 = (1 − x)2 .
i=0
Im Mittel wurden also in Stufe 1 ε −1 -viele Schritte benötigt. Damit ist die Erwartete Lauf˜ ≤ 2t−1 |P|. ˜ Nach ε −1 -vielen Schritten (also Aufrufen von P) ˜ zeit von Stufe 1 gleich ε −1 |P| wird also sehr Wahrscheinlich in Stufe 1 eine 1 in der Erfolgsmatrix gefunden. Wie groß die Wahrscheinlichkeit ist, dass der Algorithmus wesentlich weniger oder mehr Schritt benötigt, wollen wir nun mit der Chernov-Ungleichung berechnen: ¤ £ Ws u < ε −1
ε −1 ∈Z
=
ε
ε −1 −1
∑
(1 − ε )i = 1 − (1 − ε )ε
i=0
≈
1 1 − e−1 < . 2 e−k − e−k−1 .
≈
e−1/(k+1) − e−1/k .
≈ £ ¤ Ws kε −1 ≤ u < (k + 1) ε −1 ¸ · 1 −1 1 −1 Ws ε ≤u< ε k+1 k
−1
2.1. SCHNORR IDENTIFIKATION
25
Dann ist die Wahrscheinlichkeit, dass Stufe 2 von AL ein e¯ findet mit ERFw,e¯ = 1 und w schwer £ ¤ Ws Stufe 2 findet e¯ mit ERFw,e¯ = 1 | w schwer ´³ ´ ∞ ³ ´³ ´ ∞ ³ (∗) ≥ ∑ e−k − e−k−1 1 − e−k + ∑ e−1/(k+1) − e−1/k 1 − e−1/k k=1
k=1
1 > . 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 ] <
i=1
m (fuer paarweise unabh. Ri ) 4
Es gilt W sb ,V [CNm (x) 6= χN0 (x)] i
i
m
≤
W s[ ∑ Ri ≤ i=1 m
=
≤TU
m
W s[ ∑ Ri − E[ ∑ Ri ] ≤ −mε ] i=1
≤
m ] 2
i=1
W s[| ∑ Ri − E[∑ Ri ]| ≥ mε ]
VAR[∑ Ri ] m 1 ≤ = . (mε )2 4m2 ε 2 4mε 2 ¤
D EFINITION 7.4.11. D(AL) ist der Definitionsbereich des partiellen Algorithmus AL. Ein Generator wird wie folgt definiert: D EFINITION 7.4.12. (G, g) ist Generator zum Ensemble X = (Xn )n∈N , wenn X und G(Ug(n) )n∈N statistisch ununterscheidbar sind. W sG(U
g(n)
) [z] := W sx∈R {0,1}g(n) [G(x) = z
| x ∈ D(G)].
Desweiteren ist: D EFINITION 7.4.13. (G, g) ist polynomial, wenn G, g(1n ) pol. Zeit sind und 2g(n) /|D(G)∩ {0, 1}g(n) | = nO(1) . Für ein Ensemble gilt folgende Definition: D EFINITION 7.4.14. Das Ensemble X ist polynomial, wenn es von einem pol. Generator erzeugt wird. Seien Xn ,Yn Verteilungen über der Menge S mit kXn −Yn k1 = O(n−t ) fuer alle t > 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 <2 g0 (n)/|{0,1}g (n) ∩D(G)|≤ 1−1/e
2
¤
.
P ROPOSITION 7.4.16. Sei Pn = {p ∈ [3, 2n ] | p prim}, UPn die Gleichverteilung auf Pn . Dann ist (UPn )n∈N polynomial. B EWEIS . Der Generator (G, g), g(n) = n + 2n2 G : {0, 1}g(n) → [0, 2n ), Eingabe: x = Nw1 . . . wn ∈ {0, 1}g(n) ∼ = [0, 2n )[0, 22n )n . (1) Stoppe falls N gerade oder N = pk mit p prim, k ≥ 2 oder ∃i : ggT(N, wi ) = 1. ¡w ¢ N−1 (2) if [wi 2 ≡ Ni mod N oder wi ≡ 0 mod N] für i = 1, . . . , n then G(x) := N. Fälle: (1) kw1 mod N −UZ k1 ≤ 2−n N
(2) kX1 × Xk −Y1 × . . . ×Yk k1 ≤ ∑ki=1 kXi −Yi k1 (3) k(w1 mod N, . . . , wn mod N) −U(Zn )n k1 ≤ n · 2−n 7.4.17. Ang. N hat ungerade Primfaktoren p 6= q. Dann gilt für w ∈R Z∗N : W s[w ¡LwEMMA ¢ mod p] ≤ 2−n . N
N−1 2
(4) ∀p ∈ Pn : W sx [G(x) = p] = 2−n −n (5) ∀N ∈ [0, 2n ) − Pn : W sX [G(x) = N] ≤ 2−n (N −n + |{z} 2−n + n2 |{z}) Lemma 5
(6) kG(Ug(n) ) −UPn k1 =
W s G(x)=p ∑ p∈Pn | W sxx[x∈D(G)]
− 2−n | +
(3)
∑N6∈Pn W sx [G(x) = N] für x ∈R
{0, 1}g(n) (7)
|Pn | 2n
≤ W sx [x ∈ D(G)] ≤
|Pn | 2n
+ 2−n (n + 1) +N −n | {z } (5)
Somit kG(Ug(n) ) −UPn k1 ≤ 2 ·
∑ W sx [G(x) = N] ≤ 2(N −n + 2−n (n + 1)).
N6∈Pn
und 2n |Pn | (Primzahlsatz) = O(log 2n ) = n log 2 + O(1).
2g(n) /|D(G) ∩ {0, 1}g(n) | ≤
¤
=
7.5. VERIFIABLE SECRET SHARING NACH PEDERSEN
97
7.5. Verifiable Secret Sharing nach Pedersen [Pedersen1991] P. Feldman FOCS, 1987. Pedersen Commitment einer Nachricht in Zq . Sei G = hgi, |G| = q prim. h ∈R G. Hinterlegen von s ∈ Zq : Wähle t ∈R Zq : hinterlege E(s,t) = gs ht . Aufdecken: Zeige s,t. Fakt: Für t ∈R Zq ist E(s,t) ∈R G stat. unabh. von m. Soundness: Kann P die Hinterlegung E(s,t) mit m0 6= m aufdecken, so gilt 0
gs ht
0
= gs ht und somit s − s0 logg h = mod q. t0 − t T HEOREM 7.5.1. Pedersen-Commitment ist sound falls DL-Problem schwer is. Secret Sharing: Dealer D will Geheimnis s ∈ Zq so an P1 , . . . , Pn aufteilen, dass je k Shareholder s rekonstruieren können, aber weniger als k Shareholder keine Shannon-Information über s erhalten ((k, n) Threshold Schema, Shamir (k, n)Threshold Schema, 1 Shamir Comm., ACM 1979): i D wählt f = s + ∑k−1 i=1 Fi x ∈ Zq [x] mit f (0) = s, und gibt Pi den Anteil f (i) für i = 1, . . . , n. Rekonstruktion von s: Pi , . . . , Pi die Interpolationsformel 1
k
k
f (x) =
x−ij
∑∏i
j=1 l6= j l
−ij
d(i j ).
Danach gilt k
s=
∑∏i
ij
j=1 l6= j j − il
f (i j ).
Fakt: Weniger als k Funktionswerte von f geben keine Information über f (0). Forderungen an die Verifikation. F1.: Wenn D das Protokoll befolgt, akzeptieren P1 , . . . , Pn . F2.: Akzeptieren (Pi )i∈S , (Pi )i∈S ihre Anteile und #S1 , #S2 = k dann rekonstruie1 2 ren (P1 )i∈S , (Pi )i∈S dasselbe Geheimnis. 1
2
Verifikations-Protokoll. (1) D wählt t ∈R Zq publiziert E0 := E(s,t) = gs ht . j (2) D wählt F(x) = s + ∑k−1 j=1 Fj x ∈ Zq [x], berechnet si := F(i) für i = 1, . . . , n. k−1 D wählt G(x) = t + ∑ j=1 G j x j ∈ Zq [x], berechnet ti := G(i) für i = 1, . . . , n und publiziert E j := E(Fj , G j ) für j = 1, . . . , k − 1 (Commitment). (3) D sendet (si ,ti ) privat an Pi für i = 1, . . . , n. ´i j ³ ? i j = k−1 gFj hG j (4) Pi akzeptiert, wenn E(si ,ti ) = ∏k−1 E . ∏ j=0 j j=0 | {z } =gsi hti
98
7. BIT-HINTERLEGUNG UND PERFEKTE ZUFALLSGENERATOREN
L EMMA 7.5.2. Sei S ⊂ {1, . . . , n} Menge von k Teilnehmern, die ihre Anteile akzeptieren. Diese finden (s0 ,t 0 ) mit E0 = E(s0 ,t 0 ). B EWEIS . Die Teilnehmer in S bestimmen die Polynome F 0 , G0 ∈ Zq [x] vom Grad ≤ k − 1 mit F 0 (x) = si und setzen
s0
= F 0 (0), t 0
, G0 (i) = ti
fuer i ∈ S
:= G0 (0).
Sei h = gd , dann gilt für i ∈ S: 0
0
gF (i)+dG (x) = E(si ,ti ) = gsi +dti . Damit ist F 0 + dG0 ∈ Zq [x] das eind. bestimmte Polynom P vom Grad ≤ k − 1 mit P(i) = si + dBi für i ∈ S. j Sei E j = ge j für j = 0, . . . , k − 1. Das Polynom e(x) = ∑k−1 j=0 e j x erfüllt e(i) = si + dti für i ∈ S. Somit gilt
e(x) = (F 0 + dG0 )(x) ⇒
0
0
= ge0 = ge(0) = gF (0) hG (0)
E0
0
0
= gs ht . ¤ Berechnung von s,t. s = ∑i∈S ai si , t := ∑i∈S aiti mod q mit ai = ∏ j∈S, j6=i i−i j mod q. FACT 7.5.3. Wenn D dem Protokoll folgt, dann akzeptieren P1 , . . . , Pn . B EWEIS . ?
E(si ,ti ) =
k−1
∏ E ij j j=0
gsi hti
k−1
=
∏ (gF( j) hG( j) )i j
mit si = F(i), ti = G(i)
j=0
= g∑ j=0
e−1 F
·i j˙
j
h∑ j=0 G j ·i = gsi hti , weil F(0) = s, G(0) = t. k−1
j
¤ T HEOREM 7.5.4. Es gilt F2, es sei denn, dass D logg h berechnen kann. B EWEIS . D kann prüfen, dass die (si ,ti ) für i = 1, . . . , n konsistent sind, oder dass es Polynome k−1
F=
∑ Fj x j
k−1
, G=
j=0
∑ G j x j ∈ Zq [x]
j=0
gibt mit F(i) = si , G(i) = ti für i = 1, . . . , n. Im Fall der Inkonsistenz fordert er zwei Teilmengen S, S0 ⊂ {1, . . . , n} mit k Teilnehmern, deren Shares (si ,ti ) mit i ∈ S ∪ S0 inkonsistent sind. Haben die Teilnehmer in S ∪ S0 korrekt akzeptiert, gilt E(s0 ,t 0 ) = E0 = E(s,t)
7.6. RECHNEN MIT VERTEILTEN DATEN
99
mit (s,t) 6= (s0 ,t 0 ). D berechnet (s,t) und (s0 ,t 0 ) wie (Pi )i∈S und (Pi )i∈S0 und erhält logg h = s−s0 ¤ t 0 −t mod q. 7.6. Rechnen mit verteilten Daten [Pedersen1991, Ben-Or et al. 1988] G = hgi, |G| = q prim, h ∈R G. Hinterlegen von s ∈ Zq : Wähle t ∈R Zq : E(s,t) = gs ht . i Shamir’s (k, m)-Schema. Dealer D wählt F = s+ ∑k−1 i=1 Fi x ∈ Zq [x] zufällig mit f (0) = s und gibt shareholder Pi den Anteil f (xi ) für i = 1, . . . , n.
Verifikations-Protokoll. (1) D publiziert E0 := E(s,t), h−1 i i (2) wählt F = s + ∑h−1 i=1 Fi x ∈ Zq [x], G = t + ∑i=1 Gi x ∈ Zq [x] zufällig. Fj G j publiziert E j := g h für j = 1, . . . , k − 1. (3) D sendet (si ,ti ) privat an Pi für i = 1, . . . , n. Fakt: Jede Gruppe (Pi )i∈S mit S ⊂ {1, . . . , n}, #S = k kann s,t rekonstruieren gemäß s =
∑ ai si
i∈S
t
=
∑ aiti
i∈S
ai
=
i i − j j∈S, j6=i
∏
mod q.
Schema ist symmetrisch in (s, g, F, si )(t, h, G,ti ). 7.6.1. Lineares Rechnen mit Geheimnissen. Seien s0 , s00 ∈ Zq und verteilt mit (E10 , . . . , En0 ) , (E100 , . . . , En00 ) bzgl. F0 G0
k−1
k−1
= s0 + ∑ Fj0 x j , F 00 = s00 + ∑ Fj00 x j j=1
j=1
k−1
k−1
j=1
j=1
= t 0 + ∑ G0j x j , G00 = t 00 + ∑ G00j xi
aus Zq [x]. P1 , . . . , Pn können linear verteilt rechnen. (1) s := s0 + s00 gemäß si := s0i + s00i für i = 1, . . . , n und E j := E 0j · E 00j für j = 0, . . . , k − 1. (2) s := as0 für a ∈ Zq gemäß si := as0i für i = 1, . . . , n und E j := (E 0j )a für j = 0, . . . , k − 1.
100
7. BIT-HINTERLEGUNG UND PERFEKTE ZUFALLSGENERATOREN
P1 , . . . , Pn können nach jedem Rechenschritt die Konsistenz ihrer Anteile prüfen. k−1
Pi prueft E(si ,ti ) = ∏ E (ij ?
j)
i = 1, . . . , n.
j=0
Nach Theorem 7.5.4 auf Seite 98 konstruiert jede Gruppe (Pi )i∈S mit S ⊂ {1, . . . , n}, #S = k dasselbe s,t.
7.7. Anonymous Secret Sharing Aufgabe. P1 , . . . , Pn wollen ein Geheimnis erzeugen und verifizierbar aufteilen. Pi habe digitale Signatur, (Pi , Pj ) haben privaten Kanal. Für Dealer D – im Broadcast Modell – sind Signaturen nicht erforderlich. Bisher hat immer D das Geheimnis verteilt – jetzt wird D eliminiert.
Protokoll für Pi . (1) Wähle si0 ∈R Zq . (2) Verteile si0 verifizierbar an P1 , . . . , Pn . Pi sendet Signatur mit den Anteilen si,i0 , ti,i0
i0 = 1, . . . , n
Ei, j j = 0, . . . , k − 1.
(3) Jeder Teilnehmer Pi0 prüft die erhaltenen Anteile si,i0 , ti,i0 gegen Ei,0 , . . . , Ei,k−1 . (4) s := si0 + . . . + sn0 , t := ti0 + . . . + tn,0 mit Anteilen si = ∑ si,i0 i0
, ti = ∑ ti,i0 i0
und zur Verifikation Ei = ∏i0 Ei,i0 . T HEOREM 7.7.1. Wenn si,0 ∈R Zq zufällig ist und nicht mehr als k − 1 der anderen Teilnehmer kooperieren, ist s zufällig in Zq . B EWEIS . k − 1 Teilnehmer erhalten keine Information über si,0 .
¤
7.8. Allgmeines verteiltes Rechnen [Ben-Or et al. 1988]
Non-Cryptographic. Es gibt sichere private Kanäle zwischen je zwei Teilnehmern P1 , . . . , Pn . Z.B. jeder Teilnehmer hat Public-Key-Kryptosystem und Signatur.
7.8. ALLGMEINES VERTEILTES RECHNEN
101
Synchrones Rechenmodell. Pro Runde sendet jeder Teilnehmer Pi an alle übrigen, sichert die empfangenen Daten und rechnet mit ihnen. Die Teilnehmer müssen dabei alle wissen, wann eine Runde zuende ist. Eingabe: Jeder Teilnehmer Pi hat xi ∈ Zq . Rechenschritte +, · in Zq . Ausgabe: f (x1 , . . . , xn ) ∈ Zq . D EFINITION 7.8.1. Berechnung ist t -privat, wenn jede Gruppe (Pi )i∈S von t Teilnehmern nach der Berechnung nur Informationen über (xi )i∈S und f (x1 , . . . , xn ) hat, sowie Zufallsdaten. Desweiteren: D EFINITION 7.8.2. Eine Berechnung ist t -resistent (resistent, widerstandsfähig), wenn je t Teilnehmer die Korrektheit der Rechnung nicht verfälschen können. Die Teilnehmer geben ihre Eingaben xi korrekt oder f wird entsprechend undefiniert. T HEOREM 7.8.3. Für jede prob. Funktion f (x1 , . . . , xn ) : Znq → Zq und t < n/2 gibt es ein t-privates Berechnungsprotokoll. Sei E endlicher Körper, z.B. E = Zq . α0 , . . . , αn−1 ∈ E seien verschieden und öffentlich; bei Pederson {α0 , . . . , αn−1 } = {1, 2, . . . , n}. Input Stage. Jeder Teilnehmer sendet von seiner Eingabe s Anteile an P1 , . . . , Pn . Er wählt f (x) = s + a1 x + . . . + at xt ∈ Zq [x] zufällig und sendet s j := f (α j ) an Pj , j = 1, . . . , n. Pi sendet fi (α j ) an P0 mit αi = fi (0). Berechnungsschritte. Linear: +, skalare Multiplikation wie bei Pederson. Jeder Teilnehmer Pi rechnet privat mit seinem Anteil f (αi ) ohne Kommunikation. Muliplikationsschritt: a, b 7→ a · b. Sei n ≥ 2t + 1 t
f (x) = a + ∑ fi xi
∈ Zq [x]
g(x) = b + ∑ gi xi
∈ Zq [x].
i=1 t
i=1
Für h = f · g gilt 2t
h(x) = a · b + ∑ hi xi . i=1
Wegen n ≥ 2t + 1 ist h eind. bestimmt durch h(αi ) := f (αi ) · g(αi ) i = 1, . . . , n. Jeder Teilnehmer Pi multipliziert seine Anteile. Problem: grad(h) ≤ 2t, h ist nicht zufällig.
102
7. BIT-HINTERLEGUNG UND PERFEKTE ZUFALLSGENERATOREN
Grad-Reduktion: h(x) 7→ k(x) := h0 + h1 x + . . . + ht xt . Die Abbildung (h(α1 ), . . . , h(αn )) 7→ (k(α1 ), . . . , k(αn )) ist linear und hängt nur von α1 , . . . , αn ab. Die Berechnung der Abbildung h(x) 7→ k(x) geschieht verteilt, es gehen alle Anteile h(αi ), i = 1, . . . , n ein. h ist nicht zufällig und muss durch Randomisieren geschützt werden. Die Abbildung h(x) 7→ k(x). Gegeben: S = (s0 , . . . , sn−1 ) mit si = h(αi ). Berechne: R = (r0 , . . . , rn−1 ) mit ri = k(αi ). C LAIM 7.8.4. Es gibt konstante A ∈ Mn,n (Zq ) : R = SA. B EWEIS . H K
:= (h0 , h1 , . . . , h2t , 0, . . . , 0) ∈ Znq :=
n ≥ 2t + 1
(h0 , h1 , . . . , ht , 0, . . . , 0) ∈ Znq
Sei B = [αij ]0≤i, j
H ·P = K
K ·B = R ⇒
B−1 PB = R.
Verteilen von h bzw. k bedeutet Multiplikation mit Vandermonde Matrix B.
¤
Randomisieren. Jeder Teilnehmer Pi wählt qi (x) ∈ Zq [x] vom Grad ≤ 2t zufällig mit qi (0) = 0 und gibt qi (α j ) an Pj . Sei n−1
˜ ˜ h(x) = h(x) + ∑ q j (x) , h(0) = h(0). j=0
˜ ˜ ˜ Es wird nicht h sondern h˜ Grad-reduziert h(x) 7→ k(x). Pj hat den h-Anteil n
˜ α ) = h(α ) + ∑ q (α ). h( j j i j i=1
Dies beweist Theorem 7.8.3. Die Bedingung t < n/2 benötigt man für Multiplikationen. Lineares Rechnen geht t-privat mit t < n. Die Anzahl der Runden der verteilten d-privaten Berechnung ist die Multiplikations-Tiefe der Berechnung von F.
7.8. ALLGMEINES VERTEILTES RECHNEN
103
C ASE 1. t ¿ n. Grad-Reduktion ist erst erforderlich, wenn die Grad-Schranke n −1 für die Polynome f (x) überschritten wird. Ist F multivariantes Polynom vom Grad d und td < n, dann kann man ohne Grad-Reduktion rechnen. Die Anteile des Ergebnispolynoms f (αi ), i = 1, . . . , n werden ausgetauscht und jeder kann das Ergebnis f (0) durch Interpolation bilden. Byzantinische Spieler (Betrüger). Es muss geprüft werden, dass jedes Pi ein Polynom f vom Grad ≤ t verteilt – andernfalls ist die Eingabe xi0 = f (0) von Pi nicht erklärt. Die Gradprüfung erfolgt durch Interpolation. Es muss zusätzlich geprüft werden, dass die Eingabe f (0) die korrekte Form hat, z.B. f (0) ∈ {0, 1} bei Stimmenzählung. t-resiliente Berechnung, t < n3 . Es wird ein t-fehlerkorrigierender Code benutzt, so dass bis zu t fehlerhafte Anteile f (αi ) korrigiert werden. Der Körper E = Zq habe n-te primitive Einheitswurzel w mit wn = 1
, w j 6= 1 fuer 1 < j < n.
Wähle αi = wi , i = 0, . . . , n − 1 und sei f (x) = a0 + a1 x + . . . + at xt A
= (a0 , . . . , an−1 )T
at+1 , . . . , an−1 := 0
mit Anteilen f (wi ), i = 1, . . . , n. a0 f (w0 ) £ i j¤ . .. = w 0≤i, j≤n .. . . an−1 f (wn−1 ) Die Abb. AT 7→ ( f (w0 ), . . . , f (wn−1 ))T ist die diskrete Fouriertransformation. fˆ(x) = s0 + s1 x + . . . + sn−1 xn−1 mit si = f (w−i j ) ist die Fouriertransformierte von f . £ i j ¤−1 £ ¤ w 0≤i, j
.
Das Zusammensetzen der Anteile si = f (wi ) zu A = (a0 , . . . , an−1 ) ist die inverse Fouriertransformation. a0 f (w0 ) .. 1 £ −i j ¤ .. . = w . 0≤i, j
104
7. BIT-HINTERLEGUNG UND PERFEKTE ZUFALLSGENERATOREN
Die Gleichungen (1) definieren einen zyklischen Code in Znq auf (s2, . . . , sn−1 ) ∈ Znq mit Generatorpolynom n−1
g(x) =
∏ (x − w−i ).
i=t+1 3t
FACT 7.8.6. grad(g) = n − 1 − t ≥ 2t Distanz des Codes min #{i | si = 0, s 6= 0}. FACT 7.8.7. Distanz ≥ 2t + 1. B EWEIS . Ang. Dist.≤ 2t. i i ∃ fˆ : fˆ(x) = ∑n−1 i=0 f (w )x hat ≤ 2t Koeff. 6= 0. 3t
Also f (w0 ) = 0 an mindestens n − 2t ≥ t + 1 Stellen wi ⇒ f ≡ 0 ⇒ fˆ ≡ 0. Widerspruch. ¤ C OROLLARY 7.8.8. Bis zu t fehlerhafte Anteile si = f (w0 ) sind korrigierbar. Bei linearen Operationen +, skal. Mult. rechnet jeder Teilnehmer Pi mit seinen Anteilen f (wi ), h(wi ) linear ohne Kommunikation. Multiplikation: h := f · g, c := a · b, a = f (0), b = g(0), c = h(0). Die Grad-Reduktion h(x) 7→ k(x) erfolgt verteilt. Bis zu t fehlerhafte Anteile h(wi ) werden korrigiert. Für die Grad-Reduktion müssen die Anteile h(wi ) so korrigiert werden, dass sie von der Form h(wi ) = g(wi ) · f (wi ) mit grad f , gradg ≤ t sind. Falls n ≥ 4t + 1, geht das mit dem Reed-Miller Code. Falls n = 3t + 1 siehe Paper. T HEOREM 7.8.9. Für jedes prob. Polynom F(x1 , . . . , xn ) : Znq → Zq und t < n/3 gibt es eine verteilte Berechnung, die t-privat und t-resistent ist.
7.9. Pseudo random Funktionen nach Naor, Reingold [GoldwasserGoldreichMicali1985, NaorReingold1997] GGM-Generator. Sei G : In → I2n perfekter PZG, I1 = {0, 1}n , G(k) = (G0 (k), G1 (k)) ∈ In × In . Gx1 ···xn (k) := Gxn Gxn−1 · · · Gx1 (k). Ensemble: (Fn )n∈N , Fn := { fk : In → In | k ∈ In }. fk (x) := Gx (k). Die Funktion fk ∈ Fn hat Tiefe n bzgl. G.
7.9. PSEUDO RANDOM FUNKTIONEN NACH NAOR, REINGOLD
105
7.9.1. NR-Konstruktion. Diffie-Hellman Instanzen Generator (IG) IG : 1n → (P, Q, g). (1) (2) (3) (4)
P Primzahl mit n Bits. Q | P − 1 prim mit 160 Bits. g ∈ Z∗p mit Ordnung Q (P, Q, g) uniform verteilt auf diesen Tripeln. n Fn := { fP,Q,g,~a | ~a ∈R Zn+1 q , 1 → (P, Q, g)}.
fP,Q,g,~a :
IG In → hgi ⊂ Z∗p
~a = (a0 , . . . , an ) ∈ Zn+1 Q a0 ∏x =1 ai
fP,Q,g,~a (x) =de f g
i
Decisional Diffie Hellman Annahme (DDH). Für jeden prob. pol. Zeit Alg. A gilt AdvA (n) := |Pr[A(P, Q, g, ga , gb , gab ) = 1] −Pr[A(P, Q, g, ga , gb , gc ) = 1]| = O(n−t ), t > 1. mit qn
IG
7→
(P, Q, g) (a, b, c) ∈R Z3Q .
T HEOREM 7.9.1. Jeden ε = n−t Vorteil bei der DDH-Entscheidung kann man durch Mehrheitsentscheidung in einen 1 − ε Vorteil transformieren. B EWEIS . Mehrheitsentscheidung mit m unabh. Versuchen liefert nach TU Fehlerwahrscheinlichkeit ≤ 4m1ε 2 . setze m := ε −3 = n3t .
¤
In Theorem 7.9.1 kann man 1 − ε durch 1 − 2−n ersetzen.
1 m
Hoeffdings Schranke. Seien X1 , . . . , Xm unabh. ZV identisch verteilt über R X := 0 m0 ∑m i=1 Xi . Dann gilt für (i(1), . . . , i(n )) ∈R [1, m] 0
Pr[
0 1 2 1 1 m Xi(h) ≥ X + ε ] ≤ e−2m ( 2 ε ) . ∑ 0 m h=1 2
Nach Hoeffding, J. Amer. Stat. Assoc. (1963); Motwani, Raghavan 1995, Exercise 4.7; Bernstein, Chernoff-Schranke. T HEOREM 7.9.2. Unter der DDH-Annahme ist das Ensemble (Fn )n∈N nach Theorem 7.9.1 pseudozufällig. R EMARK 7.9.3. Den Wertebereich hgi von Fn transformiert man in ein beliebiges Il(n) mittels einer Familie von paarweise unabhängigen Hashfunktionen h : hgi → Il(n) . Z.B. h : [0, p[→ [0, 2l [, x 7→ a + bx mod q mod 2l .
106
7. BIT-HINTERLEGUNG UND PERFEKTE ZUFALLSGENERATOREN
B EWEIS . (Theorem 7.9.2) Wir wenden die GGM-Konstruktion auf verschiedene PZG’en G(1) , . . . , G(n) an: (n−1) · · · G(1) Gx1 x2 ...xn (k) := G(n) xn Gx x (k) n−1
(i)
b
b
b
ai b
G (g ) := GP,Q,g,~a,i (g ) := (g , g mit (P, Q, g) gemäß
1
)=
(G(i) (gb ), G(i) (gb )) 0 1
IG, ~a ∈R Zn+1 Q .
¤
FACT. Es gilt: (1) Unter der DH-Annahme ist G(i) perfekter PZG. (n−1) a0 (2) G(n) · · · G(1) xn Gx x (g ) = f P,Q,g,~a (x1 . . . xn ). n−1
1
n
Damit ist Fn =
o n IG fP,Q,g,~a | ~a ∈R Zn+1 Q , 1 → (P, Q, g)
pseudozufällig in hgiIn . 7.10. Alternative Konstruktion unter CDH-Annahme / Faktor-Annahme Sei N = PQ˙ ∈R Bn Blum Zahlen mit n Bits. g ∈R QRN , ~a = (a1,0 , a1,1 , . . . , an,0 , an,1 ) ∈R Z2n N mit r ∈R In und ∏ni=1 ai,x
fN,g,~a,r (x) =de f (g
i
mod N) ¯ r
(Skalarprodukt mod 2) und Fn = {FN,g,~a,r ∈ I1In } ist pseudo zufällig unter der CDH (computational DH-Annahme). Nach Synthesizer-Konstruktion + Goldreich, Levin. Bihan, Boneh, Reingold Inf. Proc. 70 (1999), 83-87. Faktorisierungsannahme für N ∈R Bn impliziert CDH für N ∈R Bn . In wie folgt Naor, Reingold, Rosen, STOC 2000. FN,g,~a,r ∈ Il(n)
fN,g,~a,r (x) = b1 · · · bl(n) bi := (g Fn =
2i−1 ∏ni=1 ai,x
i
mod N) ¯ r
In } { fN,g,~a,r ∈ Il(n)
ist pseudozufällig unter der Faktor-Annahme.
Der x2 mod N-Generator (Blum, Blum, Schob) mit der Konstruktion 7.10 kombiniert. Mudde Square PZG. N ∈R Bn , r ∈R In GBBS N,r,e (x) = b1 · · · bl(n)
mit bi := (x2
i−1
mod N) ¯ r.
GBBs N,r,l ist perfekter PZG unter der Faktorisierungsannahme. Levin, J. Symb. Logic 58 (1993), Knuth, Vol.2, 1998.
KAPITEL 8
Pseudozufallsgeneratoren Für dieses Kapitel sei auf [SchnorrKrypto2.3] verwiesen, wo eine elektronische Form dieses Kapitels heruntergeladen werden kann.
107
KAPITEL 9
Pseudozufallsfunktionen Für dieses Kapitel sei auf [SchnorrKrypto2.3] verwiesen, wo eine elektronische Form dieses Kapitels heruntergeladen werden kann.
109
Index
(2s , 2t )-schwer, 11 (k, n) Threshold Schema, 97 2t polynomial, 27 H-Orakel, 74 Z∗n , 8 t-privat, 101 t-resistent, 101 varepsilon-zero-knowledge, 69 Äquivalenzklasse, 15 äquivalent, 15
Einweg-Funktion, 11 elliptische Kurve, 15 Ensemble, 26 existential forgery, 18 existentielle Fälschung, 18 Exponentialfunktion, 8 Extraktor, probabilistischer, 22 Generator, 95 generisch, 9 generischer Algorithmus, 53 GM, generisches Modell, 52
adaptive chosen ciphertext Attacken, 62 aktiver Angriff, 26 Algorithmus Diffie-Hellman Verfahren, 12 ElGamal-Verfahren, 13 Pohlig-Hellman, 11 Shamir’s No-Key-Protocol, 16 Shanks, 9 Angriff aus Stand, 22 Angriff, aktiver, 26 Angriff, passiver, 25 Authentikation, 16
homogene Koordinaten, 15 honest verifier zero-knowledge, 26 IG, 105 Instanzen Generator, 105 interaktives Beweissystem, 34 Interpolationsformel, 97 knowledge extractor, 39 Koalition, 36 Kollisionen, 53 kollisionsresistent, 33 kryptographisch starke Gruppen, 10
Baby step-Giant step Algorithmus, 8 Beweissystem, interaktives, 34 Binäre Methode, 8 Blum-Zahlen, 48
man in the middle attack, 26 Merheitsentscheidung, 94
CA, Ciphertext Only Attack, 14 CCA, 62 CCA, Chosen Ciphertext Attack, 14 charakteristische Funktion, 92 CMA, 61 Completeness, 34 CPA, Chosen Plaintext Attack, 14
nicht-generische DL-Algorithmen, 9 normierte Koordinaten, 15 passiver Angriff, 22, 25 Pedersen Commitment, 97 perfekt zero-knowledge, 26 perfekter Simulator, 27 Plaintext Awareness, 51 pol. Zeit unentscheidbar, 40 polynomial, 27, 95 probabilistischer Extraktor, 22 proof of knowledge, 39 pseudozufällig, 88 puu, 40 PZG, 90
DDH, 40 Decisional Diffie Hellman Problem, 40 Definitionsbereich, 95 DH-Problem, 12 diophantische Hinterlegung, 69 diskreter Logarithmus, DL, 8 Diskriminante, 15 DL-Problem, 8 111
112
QRA, 92 quadratische Residuositätsannahme, 92 Random Oracle Modell, 30 reüssiert, 38 Reed-Miller Code, 103 resistent, 101 ROM, 30 Schlüsselvereinbahrung, 13 Schnorr-Signatur, 60 schwer, 24, 47 semantisch sicher, 40 semantische Sicherheit, 58 Signatur-Orakel, 74 Signaturschlüssel, 60 signierter ElGamal Ziffertext, 61 Simulator, perfekt, 27 Soundness, 34 triviale Kollision, 54 trusted third party, 77 Tschebycheff’sche Ungleichung, 94 TTP, 77 TU, 94 unvorhersagbar, 88 vernachlässigbar klein, 40 Wahrscheinlichkeitsraum, 54 widerstandsfähig, 101 witness indistinguishable, 83 zero-knowledge honest verifier, 26 perfekt, 26 Protokolle, 26 Zufallsgenerator, 88
INDEX
Literaturverzeichnis [Beutelspacher et al. 2001]
Beutelspacher, Schwenk, Wolfensetter: „ModerneVerfahren der Kryptographie”, 4. Auflage, Vieweg-Verlag 2001. [BellareRogaway1993] M. Bellare, P. Rogaway: „Random oracles are practical: A paradigm for designing efficient protocols”, First Annual Conference on Computer and Communications Security, ACM, 1993. [Ben-Or et al. 1988] M. Ben-Or, S. Goldwasser, A. Widgerson: „Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation”, ACM 1988. [BrickellMcCurley92] Brickell, McCurley: „An Interactive Identification Scheme Based on Discrete Logarithms and Factoring”, Journal of Cryptology 5 (1992), LNCS 0473 [ChaumEvertseGraaf1998] Chaum, Evertse, Graaf: „An Improved Protocol for Demonstrating Posession of Discrete Logarithms and Some Generalizations”, Eurocrypt 87, LNCS 304, 1988. [CoppersmithOdlukoSchroeppel1985] D. Coppersmith, A. Odluko, R. Schroeppel: „Discrete Logarithms in GF(p)”, Algorithmica 1 (1986). [FeigeFiatShamir1988] U. Feige, A. Fiat, A. Shamir: „Zero-knowledge proofs of identity”, Journal of Cryptology 1(2), 1988. [FiatShamir1986] Fiat, Shamir: „How to Prove Yourself: Practical Solutions to Identification and Signature Problems”, Crypto 1986, LNCS 263. [Girault1991] M. Girault: „Self-Certified Public Keys”, Eurocrypt 91, LNCS 547, 1991. [GiraultPoupardStern1999] M. Girault, G. Poupard, J. Stern: „Global Payment System (GPS): un Protocole de Signature à la Volée”, Trusting Electronic Trade (TET’99), 1999. [GoldwasserGoldreichMicali1985] O. Goldreich, S. Goldwasser, S. Micali: „How to Construct Random Functions”, Journal of the ACM No. 4 Vol. 33, 1986. [Menezes1997] A. Menezes, P. Oorschot, S. Vanstone: „Handbook of applied Cryptography”, ACM-Press 1997. [NaccacheStern1998] D. Naccache, J. Stern: „A new cryptosystem based on higher residues”, 5th ACM Symposium on Computer and Communications Security, 1998. [NaorReingold1997] M. Naor, O. Reingold: „On the Construction of Pseudo-Random Permutations: Luby-Rackoff Revisited”, ACM 1997. [Nechaev1994] V. I. Nechaev: „On the Complexity of a Deterministic Algorithm for a Discrete Logarithm”, Mathematical Notes 55, 1994. [NybergRueppel1993] K. Nyberg, R. Rueppel: „A New Signature Scheme Based on the DSA Giving Message Recovery”, ACM 1993. [Okamoto1992] Okamoto: „Provable Secure and Practical Identification Schemes and Corresponding Signature Schemes”, Crypto 92, LNCS 740. [OkamotoUchiyama1998] T. Okamoto, S. Uchiyama: „An efficient public-key cryptosystem”, Advances in Cryptology–EUROCRYPT 98, pages 308-318, 1998. [OngSchnorr1990] H. Ong, C. Schnorr: „Fast Signature Generation with a Fiat Shamir-like Scheme”, Eurocrypt 90, LNCS 473. [Paillier1999] P. Paillier: „Public-Key Cryptosystems Based on Composite Degree Residuosity Classes”, Advances in Cryptology - EUROCRYPT’99, LNCS 1592, 1999. [Pedersen1991] T. Pedersen: „Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing”, Crypto 91, LNCS 576, 1991. 113
114
[PointchevalStern1996]
[PoupardStern1998] [PoupardStern2000] [Salomaa1996] [SchnorrKrypto1.3]
LITERATURVERZEICHNIS
Pointcheval, Stern: „Security Profs for Signature Schemes”, Advances in Cryptology – Proceedings of EUROCRYPT96, Springer-Verlag, LNCS 1070. Poupard, Stern: „Security Analysis of a Practical „on the fly” Authentication and Signature Generation”, Eurocrypt 1998, LNCS1403. Poupard, Stern: „Fair Encryption of RSA Keys”, Eurocrypt 2000. A. Salomaa: „Public-Key Cryptography”, Second Edition, Springer Verlag, 1996. C. P. Schnorr: „Faktorisierungsproblem, Protokolle”, Kapitel 3 der Vorlesung „Kryptographie 1” bei Prof. Schnorr, http://www.mi.
informatik.uni-frankfurt.de
[SchnorrKrypto2.3]
C. P. Schnorr: „Pseudozufallsgeneratoren”, Kapitel 3 der Vorlesung „Kryptographie 2” bei Prof. Schnorr, http://www.mi.informatik.
[SchnorrKrypto2.4]
C. P. Schnorr: „Pseudozufallsfunktionen”, Kapitel 4 der Vorlesung „Kryptographie 2” bei Prof. Schnorr, http://www.mi.informatik.
[Schnorr1991]
C. P. Schnorr: „Efficient Signature Generation by Smart Cards”, Journal of Cryptology 4(3), 1991. C. P. Schnorr: „Security of DL-Encryption and signatures against generic attacks – a survey”, http://www.mi.informatik.uni-frankfurt.
uni-frankfurt.de uni-frankfurt.de
[Schnorr2001]
de
[Schwartz1980] [Shoup1997] [Shoup1999] [Stinson1995]
J. T. Schwartz: „Fast probabilistic algorithms for verification of polynomial identities”, J. ACM 27(4): 701-717, 1980. V. Shoup: „Lower bounds for discrete logarithms and related problems”, Eurocrypt ’97, LNCS 1233, pp. 256-266, 1997. V. Shoup: „”, LNCS 1070, Journal of Cryptology 12, 1999. D. Stinson: „Cryptogrphy – Theory and Practice”, ACM 1995.