Der öffentliche Schlüssel wird definiert als pk := (g, κ, e(g x , g y )). Dies ist ein korrekt verteilter öffentlicherSchlüssel. Man beachte, dass der dritte Wert e(g x , g y ) = e(g, g) xy im public key den geheimenSchlüssel g α implizit als g α := g xy definiert. Der Wert g xy ist genau die von B gesuchte Lösung desCDH-Problems.B gibt den pk an A aus, der nun Signatur-Anfragen für Nachrichten m 1 , . . . , m q stellen darf. Dabei„hofft“ B darauf dass die folgenden zwei Bedingungen erfüllt sind:• Für jede Nachricht m i , für die A eine Signatur anfragt, gilt π a (TrapEval(τ, m i )) ≢ 0 mod p.Genau diesem Falle kann B nämlich eine gültige Signatur simulieren ohne den geheimen Schlüsselzu kennen, wie wir in Kürze erklären werden.• Wenn A eine Fälschung (m ∗ , σ ∗ ) ausgibt, dann gilt π a (TrapEval(τ, m ∗ )) ≡ 0 mod p.Genau in diesem Falle kann B nämlich die Lösung g xy des CDH-Problems aus der Fälschung(m ∗ , σ ∗ ) extrahieren, wie wir ebenfalls erklären werden.Falls diese Bedingungen erfüllt sind, sagen wir dass das Ereignis E eingetreten ist. Da H nach Annahmeeine (1, q, γ)-programmierbare Hashfunktion ist, gilt⎡π a (TrapEval(τ, m i )) ≠ 0⎤∀i ∈ {1, . . . , q}Pr[E] = Pr ⎣∧π a (TrapEval(τ, m ∗ )) = 0⎦ ≥ γ.Wir nehmen im Folgenden an, dass Ereignis E eintritt. In diesem Falle kann B alle Signaturanfragenvon A beantworten, und gleichzeitig aus der Fälschung eine Lösung des CDH-Problems extrahieren.Simulation von gültigen <strong>Signaturen</strong>. Wenn A die i-te Signatur mit Nachricht m i anfragt, dann benutztB den Trapdoor-Evaluationsalgorithmus (a i , b i ) = TrapEval(τ, m i ) von H zur Berechnung von(a i , b i ) mitH(m i ) = (g x ) ai · g b i.Weil Ereignis E eintritt, und somit a i ≢ 0 mod p gilt, kann B dann die Signatur σ i = (σ i,1 , σ i,2 ) wiefolgt berechnen.$1. B wählt einen zufälligen Wert s i ← Z p .2. Der erste Teil der Signatur wird berechnet als σ i,1 := (g y ) −1/ai · g s $i. Weil s i ← Z p gleichverteiltüber Z p ist, ist auch σ i,1 gleichverteilt über G.Wenn man σ i,1 in der Form σ i,1 = g r ischreiben will, dann definiert dies den Wert r i als r i =−y/a i + s i .3. Der zweite Teil der Signatur wird berechnet als σ i,2 := (g x ) a isi· (g y ) −b i/ai· g b is i.Um zu zeigen dass dies eine gültige Signatur ist, müssen wir zeigen dass σ i,2 = g xy H(m i ) r igilt,wobei r i = −y/a i + s i ist. Tatsächlich gilt dies:(g xy H(m i ) r i= g xy H(m i ) r i= g xy (g x ) a ig i) (b ri= gxy(g x ) a ig b i( )= g xy g xa i(−y/a i +s i ) g b i(−y/a i +s i )= g xy ( g −xy g xa is ig b i(−y/a i +s i ) )= g xa is ig b i(−y/a i +s i ) = (g x ) a is i(g y ) −b i/a ig b is i.) −y/ai +s i78
Die so simulierten <strong>Signaturen</strong> sind also gültig und korrekt verteilt.Der „Trick“ bei der Simulation ist also, dass alle Werte geschickt so aufgesetzt werden, dass sichder g xy -Term herauskürzt. Dieser Trick geht zurück auf Boneh und Boyen [BB04].Extraktion der Lösung des CDH-Problems. Wenn A eine gültige Fälschung (m ∗ , σ ∗ ) ausgibt, σ ∗ =(σ ∗ 1 , σ∗ 2 ), dann benutzt B den Trapdoor-Evaluationsalgorithmus (a∗ , b ∗ ) = TrapEval(τ, m ∗ ) von H zurBerechnung von (a ∗ , b ∗ ) mitH(m ∗ ) = (g x ) a∗ g b∗ = (g x ) 0 g b∗ = g b∗ ,wobei a ∗ ≡ 0 mod p ist, weil nach Annahme Ereignis E eintritt.Damit kann B den gesuchten Wert g xy berechnen als g xy = σ ∗ 2 · (σ∗ 1 )−b∗ . Um zu sehen dass diestatsächlich der gesuchte Wert g xy ist, schreiben wirσ ∗ 1 = g r∗ und σ ∗ 2 = g xy · H(m ∗ ) r∗ .Dies ist möglich, da σ ∗ eine gültige Signatur ist. Dann giltσ ∗ 2 · (σ ∗ 1) −b∗ = g xy · H(m ∗ ) r∗ · g −r∗ b ∗ = g xy · g b∗ r ∗ · g −r∗ b ∗ = g xy .Analyse. Falls also Ereignis E eintritt (was aufgrund der Eigenschaften der PHF H für beliebige vomAngreifer A gewählte Nachrichten m ∗ , m 1 , . . . , m q mit Wahrscheinlichkeit mindestens γ passiert), sosimuliert B das echte EUF-CMA-Experiment perfekt. In diesem Falle kann B das CDH-Problem lösen,wenn A eine gültige Fälschung ausgibt, und es giltɛ B ≥ Pr[E] · ɛ A ≥ γ · ɛ A .5.3.4 Die programmierbare Hashfunktion von WatersWaters [Wat05] hat die folgende konkrete Konstruktion einer Hashfunktion (die „Waters-Hashfunktion“)angegeben.• Der Erzeugungsalgorithmus Gen(g) erhält als Eingabe einen Generator g ∈ G. Er wählt l + 1zufällige Gruppenelemente u 0 , . . . , u l$← G und gibt κ = (u 0 , . . . , u l ) aus.• Der Auswertungsalgorithmus Eval erhält als Eingabe κ und m = (m 1 , . . . , m l ) ∈ {0, 1} l undgibtl∏H κ (m) = u 0 ∈ Gaus.Theorem 100 ([HK08, Theorem 4]). Sei q = q(k) ein Polynom im Sicherheitsparameter. Die Waters-Hashfunktion ist eine (1, q, γ)-programmierbare Hashfunktion mitγ ≥i=118(l + 1)q .u m ii79
- Seite 1 und 2:
Digitale SignaturenTibor Jagertibor
- Seite 3 und 4:
Inhaltsverzeichnis1 Einführung 31.
- Seite 5 und 6:
Kapitel 1EinführungEin Sender möc
- Seite 7 und 8:
Das stimmt nicht. Es trifft auf nah
- Seite 11 und 12:
Challenger CAngreifer A(pk, sk) $
- Seite 13 und 14:
Alle „≤“-Beziehungen einzeln
- Seite 15 und 16:
Wir müssen also stets die Laufzeit
- Seite 17 und 18:
Bemerkung 19. Die obige Transformat
- Seite 19 und 20:
Challenger CAngreifer A(pk, sk) $
- Seite 21 und 22:
f : {0, 1} ∗ → {0, 1} ∗Challe
- Seite 23 und 24:
Die Correctness dieses Verfahrens i
- Seite 27 und 28:
Definition 29. Sei N := P Q das Pro
- Seite 29 und 30: Fall 2: m ∗ − m ∈ [1, 2 n −
- Seite 31 und 32: Jeder erfolgreiche Angreifer ruft e
- Seite 33 und 34: 2.5.1 q-mal SignaturenAus einem Ein
- Seite 35 und 36: h 0,1h 1,1h 1,2h 2,1 h 2,2 h 2,3 h
- Seite 37 und 38: eine Funktion, die als Eingabe eine
- Seite 39 und 40: Kapitel 3Chamäleon-HashfunktionenA
- Seite 41 und 42: Man beachte, dass A nicht die Trapd
- Seite 43 und 44: Sign(sk, m, ch): Der Signaturalgori
- Seite 45 und 46: Jeder erfolgreiche Angreifer ruft e
- Seite 47 und 48: Sign(sk, m). Um eine Nachricht m
- Seite 49 und 50: für eine vernachlässigbare Funkti
- Seite 51 und 52: Kapitel 4RSA-basierte Signaturverfa
- Seite 53 und 54: UUF-NMA-Sicherheit. Man kann durch
- Seite 55 und 56: Random Oracle mit Liste LAngreifer
- Seite 57 und 58: Angreifer, die niemals H(m ∗ ) be
- Seite 59 und 60: Eine wichtige Klasse von praktische
- Seite 61 und 62: Daher erhält B von A eine Lösung
- Seite 63 und 64: sieht. Daher konnten wir den Wert s
- Seite 65 und 66: GHR-Signaturen mit spezieller Funkt
- Seite 67 und 68: Beweis von Theorem 77. B startet A,
- Seite 69 und 70: 4.5 Offene ProblemeDas Hohenberger-
- Seite 71 und 72: 2. Nicht-Degeneriertheit. Für Gene
- Seite 73 und 74: Vfy(pk, m, σ). Der Verifikationsal
- Seite 75 und 76: Das Problem. Sei U 1 , . . . , U n
- Seite 77 und 78: 5.3.1 Programmierbare Hashfunktione
- Seite 79: Bemerkung 96. In anderen Kontexten
- Seite 83 und 84: Unmöglichkeitsbeweis, dass es kein
- Seite 85 und 86: der Fiat-Shamir Heuristik [FS87] au
- Seite 87 und 88: 6.2.1 Das SignaturverfahrenSei im F
- Seite 89 und 90: hoher Wahrscheinlichkeit) den gehei
- Seite 91 und 92: 4. Zum Schluss prüft Vfy, ob die a
- Seite 93 und 94: Literaturverzeichnis[BB04][BF01]Dan
- Seite 95 und 96: [Deb08][DHT12][DN10][DOP05][DSS09][
- Seite 97 und 98: [KL07]Jonathan Katz and Yehuda Lind