Algorithmus B kann also das RSA-Problem lösen mit einer Erfolgswahrscheinlichkeit von mindestensɛ B ≥ Pr[E 1 ]/q h . (4.3)Durch Einsetzen der Ungleichungen 4.2 und 4.3 in Ungleichung 4.1 erhalten wirɛ B · q H ≥ Pr[E 1 ] ≥ ɛ A − Pr[E 0 ] ≥ ɛ A − 1/N ⇐⇒ ɛ B ≥ ɛ A − 1/Nq H.Bemerkung 65. Im Beweis von Theorem 64 haben wir die Eigenschaft des Random Oracles, dass Hashwertegleichverteilt zufällig sind, ausgenutzt. Wir haben das Random Oracle so „programmiert“, dasswir mit guter Wahrscheinlichkeit 1/q H sowohl alle Signaturanfragen des Angreifers beantworten können(„Simulation“), als auch eine Lösung des RSA-Problems aus der gefälschten Signatur extrahierenkönnen („Extraktion“). Diese Beweistechnik nennt man auch „Programmierung des Random Oracles“.Sie wird häufig in Sicherheitsbeweisen im Random Oracle Modell angewandt.Bemerkung 66. Wir mussten im Beweis die Annahme treffen, dass die Hashfunktion H ein RandomOracle ist. Dies ist eine sehr starke Annahme. Eine naheliegende Frage ist nun: Ist das Random OracleModell unbedingt notwendig, um die Sicherheit von RSA-FDH zu zeigen? Oder kann man einen Sicherheitsbeweisfür RSA-FDH im Standardmodell finden? Es gibt einige Ergebnisse, die besagen dass diesunter bestimmten Bedingungen nicht möglich ist [DOP05, DHT12]. Es ist jedoch nicht ausgeschlossendass es einen Beweis gibt, der diese Unmöglichkeitsergebnisse geschickt umgeht. Dies ist ein wichtigesoffenes Problem.Bemerkung 67. Im Beweis wurde die Erfolgswahrscheinlichkeit des RSA-Angreifers B von unten beschränktdurchɛ B ≥ ɛ A − 1/Nq H.Man sieht, dass die Erfolgswahrscheinlichkeit von B kleiner wird, wenn q H größer wird. Also: Je mehrHash-Anfragen der Signatur-Angreifer A stellt, umso kleiner wird die Erfolgswahrscheinlichkeit von B.Dabei kann q H sehr groß werden, da Hashfunktionen üblicherweise sehr effizient ausgewertet werdenkönnen.Auf der Eurocrypt 2012 haben Kakvi und Kiltz [KK12] einen verbesserten Sicherheitsbeweis vorgestellt,der unabhängig von q H ist. Dazu muss in [KK12] jedoch eine stärkere Komplexitätsannahmegetroffen werden, die so genannte Phi-Hiding Annahme.Der Beweis in [KK12] ist sehr ähnlich zu dem hier vorgestellten Beweis. Daher empfiehlt es sich,dieses Papier einmal zu lesen.4.3 Gennaro-Halevi-Rabin <strong>Signaturen</strong>Das im vorigen Kapitel vorgestellte RSA-FDH Signaturverfahren ist sehr effizient, und damit in derPraxis gut einsetzbar. Leider ist es jedoch nur im Random Oracle Modell beweisbar EUF-CMA-sicher.Ein praktisches Signaturverfahren, das auf der RSA-Annahme basiert, und einen Sicherheitsbeweis imStandardmodell hat, ist ein wichtiges offenes Problem. 22 Es ist bislang nur ein recht ineffizientes RSA-basiertes Verfahren bekannt, welches beweisbar EUF-CMA-sicher ist. Dieseswerden wir in Kapitel 4.4 vorstellen.56
Eine wichtige Klasse von praktischen Signaturverfahren basiert auf der so genannten strong-RSA-Annahme, welche eng mit der klassischen RSA-Annahme verwandt ist. Es gibt zahlreiche Signaturverfahren,die auf Grundlage der Strong-RSA-Annahme sicher bewiesen werden können [GHR99, CS99,Fis03, Sch11].In diesem Kapitel beschreiben wir das Signaturverfahren von Gennaro, Halevi und Rabin [GHR99](im Folgenden „GHR-Verfahren“ genannt). Dieses Verfahren ist der einfachste Vertreter dieser Klasse.4.3.1 Die Strong-RSA-AnnahmeDefinition 68. Sei N := P Q das Produkt von zwei Primzahlen und sei y ← $ Z N eine zufällige Zahlmodulo N. Das durch (N, y) gegebene Strong-RSA-Problem ist: Berechne x ∈ Z N und e ∈ N, e > 1,sodassx e ≡ y mod N.Die Strong-RSA-Annahme besagt, dass das Strong-RSA-Problem „schwer“ ist.Das Strong-RSA-Problem ist also nahezu identisch zum RSA-Problem (Definition 29), jedoch istbeim klassischen RSA-Problem der Exponent e vorgegeben, während beim Strong-RSA-Problem derExponent e vom Angreifer selbst gewählt werden darf.Bemerkung 69. Die Strong-RSA-Annahme ist eine stärkere Annahme als die RSA-Annahme, daherist die Bezeichnung treffend. Im Gegensatz dazu ist das Strong-RSA-Problem ist jedoch leichter alsdas RSA-Problem, daher ist die Bezeichnung in diesem Fall nicht so richtig passend. Sie hat sich abertrotzdem durchgesetzt, da sie gut zur dazugehörigen Annahme passt.4.3.2 GHR <strong>Signaturen</strong>Wir nehmen im Folgenden eine Hashfunktion h : {0, 1} ∗ → P an, die Bit-Strings (Nachrichten) aufdie Menge der Primzahlen abbildet. Wir nehmen diese Funktion h zunächst einfach als gegeben an, undskizzieren später verschiedene Möglichkeiten wie sie konstruiert werden kann.Betrachten wir das folgende Signaturverfahren Σ = (Gen, Sign, Vfy):Gen(1 k ). Der Schlüsselerzeugungsalgorithmus erzeugt einen RSA-Modulus N = P Q, wobei P und Qzwei zufällig gewählte Primzahlen sind. Außerdem wird s $ ← Z N gewählt.Die Schlüssel sind pk := (N, s, h) und sk := φ(N) = (P − 1)(Q − 1).Sign(sk, m). Um eine Nachricht m ∈ {0, 1} n zu signieren, wird d := 1/h(m) mod φ(N) berechnet.Die Signatur istσ := s d = s 1/h(m) mod N,also eine h(m)-te Wurzel von s.Vfy(pk, m, σ). Der Verifikationsalgorithmus gibt 1 aus, wennσ h(m) ≡ s mod N.gilt, also σ eine h(m)-te Wurzel von s ist. Ansonsten wird 0 ausgegeben.Theorem 70. Für jeden Angreifer A der die EUF-naCMA-Sicherheit von Σ in Zeit t A mit Erfolgswahrscheinlichkeitɛ A bricht, existiert ein Algorithmus B, der in Zeit t B ≈ t A läuft und57
- 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: Angreifer, die niemals H(m ∗ ) be
- 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 und 80: Bemerkung 96. In anderen Kontexten
- Seite 81 und 82: Die so simulierten Signaturen sind
- 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