Challenger CAngreifer A(pk, sk) ← $ Gen(1 k )$σ i ← Sign(sk, m i )Vfy(pk, m ∗ , σ ∗ ) ? = 1m∗←−− −−−−−−−−−−−←− (m 1, . . . , m q )−−−−−−−−−−−− (pk, σ 1, . . . , σ q )−−−−−−−−−−−→σ ∗←−− −−−−−−−−−−−Abbildung 4.2: Das SUF-naCMA Sicherheitsexperiment.Definition 72. Wir sagen, dass (Gen, Sign, Vfy) sicher ist im Sinne von SUF-naCMA, falls für alle PPTAngreifer A im SUF-naCMA-Experiment gilt, dassPr[A C = σ ∗ : Vfy(pk, m ∗ , σ ∗ ) = 1] ≤ negl(k)für eine vernachlässigbare Funktion negl im Sicherheitsparameter.Wir zeigen im Folgenden, dass man die SUF-naCMA-Sicherheit von GHR-<strong>Signaturen</strong> unter derRSA-Annahme beweisen kann, wenn man die Funktion h geeignet definiert.Definition der Funktion h.SeiPRF : {0, 1} k × {0, 1} ∗ → {0, 1} leine Pseudozufallsfunktion (vgl. Definition 37) mit Schlüsselraum {0, 1} k , die Bit-Strings beliebigerLänge auf l-Bit-Strings abbildet. Wir definieren Funktion h, die Bit-Strings auf Primzahlen abbildet,wie folgt.• Zur Erzeugung der Funktionsbeschreibung wird ein Schlüssel κ $ ← {0, 1} k (der Seed) für die PRFgewählt, sowie ein zufälliger Bit-String α $ ← {0, 1} l . Die Funktion h wird beschrieben durch dieFunktion PRF sowie die Werte (κ, α).• Die Funktionh : {0, 1} n → P l ,welche n-Bit-Strings auf l-Bit Primzahlen abbildet, wird definiert alsh(m) := PRF(κ, m||γ) ⊕ α,wobei γ ∈ N die kleinste natürliche Zahl ist, sodass der Wert PRF(κ, m||γ) ⊕ α ∈ {0, 1} l ,aufgefasst als natürliche Zahl im Intervall [0, 2 l − 1], eine Primzahl ist (so ähnlich wie bei derheuristischen Konstruktion aus Kapitel 4.3.3).Bei der Auswertung von h wird γ so lange inkrementiert, bis PRF(κ, m||γ) ⊕ α prim ist. Nach demPrimzahlsatz erwartet man dass dies recht schnell geht, man braucht ungefähr log 2 l = l Versuche.62
GHR-<strong>Signaturen</strong> mit spezieller Funktion h. Wenn man diese Funktion h in das GHR-Signaturverfahreneinsetzt, ergibt sich das folgende Signaturverfahren.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.Um die Funktion h zu beschreiben, werden zusätzlich κ $ ← {0, 1} k und α $ ← {0, 1} l gewählt.Die Schlüssel sind pk := (N, s, (PRF, κ, α)) 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.Dieses Verfahren kann unter der RSA-Annahme SUF-naCMA-sicher beweisen werden. Man musssich jedoch auf Instanzen des RSA-Problems (N, e, y) beschränken, bei denen e eine Primzahl ist.Beweisidee. Sei B ein Algorithmus, der einen SUF-naCMA-Angreifer A benutzt, um das RSA-Problem zu lösen. B erhält als Eingabe eine Instanz (N, e, y) des RSA-Problems, wobei wir im Folgendenannehmen dass e eine zufällige l-Bit Primzahl ist.Die Grundidee des Sicherheitsbeweises ist, dass B die Funktion h geschickt so „programmiert“, dassh(m ∗ ) = e gilt. Wenn dies gelingt, dann kann B wir die gleiche Strategie für Simulation- und Extraktionwie im Strong-RSA-basierten Sicherheitsbeweis (Beweis von Theorem 70) anwenden. Da der AngreiferA im SUF-naCMA-Experiment eine Signatur für Nachricht m ∗ fälschen muss, und h(m ∗ ) = e gilt,wird A für B genau die gesuchte e-Wurzel aus y berechnen.B definiert daher die Funktion h, indem er zuerst einen zufälligen Seed κ ← $ {0, 1} k wählt, sowieeinen zufälligen Wert γ ← $ {1, . . . , l}. Der Wert α ∈ {0, 1} l wird definiert alsα := PRF(k, m ∗ ||γ) ⊕ e.Wenn man nun annimmt, dass γ die kleinste natürliche Zahl ist, sodass PRF(k, m ∗ ) ⊕ α prim ist, dannisth(m ∗ ) = PRF(k, m ∗ ||γ) ⊕ α = e.Durch geeignete Wahl von α konnte B also die Funktion h genau so programmieren, dass h(m ∗ ) = egilt.4.4.2 Von SUF-naCMA-Sicherheit zu EUF-naCMA-SicherheitUnser Ziel ist die Konstruktion eines EUF-naCMA-sicheren Signaturverfahrens basierend auf der RSA-Annahme. Bislang haben wir ein RSA-basiertes Signaturverfahren, welches jedoch leider nur SUFnaCMA-sicherist. In diesem Kapitel beschreiben wir eine generische Transformation, mit der manaus einem SUF-naCMA-sicheren Verfahren ein EUF-naCMA-sicheres Verfahren konstruieren kann.Explizit beschrieben wurde diese Transformation in [BK10], die Idee dazu stammt jedoch aus [HW09b].63
- 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: sieht. Daher konnten wir den Wert s
- 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