2.5.2 Tausche kurze <strong>Signaturen</strong> gegen kleine öffentliche Schlüssel!Mit Hilfe einer kollisionsresistenten Hashfunktion H : {0, 1} ∗ → {0, 1} n lässt sich die Größe des öffentlichenSchlüssels pk jedoch leicht reduzieren. Die Idee ist, anstatt der Liste (pk 1 , . . . , pk q ) aller qöffentlichen Schlüssel einfach eine Hashfunktion sowie den Hashwert dieser Liste als pk zu veröffentlichen.Alsopk := (H, y),wobei y = H(pk 1 , . . . , pk q ).Damit ein Verifizierer die Gültigkeit einer gegebenen Signatur verifizieren kann, muss man nunallerdings die Liste in der Signatur mit senden, also besteht eine Signatur bei diesem Verfahren mit gehashtemöffentlichem Schlüssel aus σ = (σ i , i, (pk 1 , . . . , pk q )). Der Verifizierer in diesem modifiziertenVerfahren prüft nun obVfy (1) (pk i , σ i , m i ) ? = 1 und y ? = H(pk 1 , . . . , pk q ).Falls beides erfüllt ist, so gibt er 1 aus. Ansonsten 0.Bemerkung 35. Man kann beweisen, dass dieses Verfahren ein EUF-naCMA-sicheres (EUF-CMAsicheres)q-mal Signaturverfahren ist, wenn Σ (1) EUF-1-naCMA-sicher (EUF-1-CMA-sicher) ist unddie Hashfunktion kollisionsresistent. Wir lassen dies jedoch aus.Diese „gehashte“ Variante des ursprünglichen q-mal Signaturverfahrens hat nun zwar einen öffentlichenSchlüssel konstanter Größe, jedoch dafür größere <strong>Signaturen</strong>.|pk| = O(1), |sk| = O(q), |σ| = O(q).Man kann also offensichtlich eine kurze Signaturgröße „eintauschen“ gegen kurze öffentliche Schlüssel.Geht das vielleicht noch etwas cleverer?2.5.3 Clevere Kompression der öffentlichen Schlüssel: Merkle-BäumeDie Idee von Merkle-Bäumen [Mer88] ist im Wesentlichen, die öffentlichen Schlüssel auf eine schlauereArt zu „komprimieren“ als wir es im vorigen Kapitel getan haben. Die geniale Idee ist dabei, dass dieHashfunktion nicht bloß einmalig verwendet wird, sondern auf geschickte Art mehrmals rekursiv. ImFolgenden nehmen wir an, dass q = 2 t ist für eine natürliche Zahl t.Betrachten wir also das Problem, eine Liste (pk 1 , . . . , pk 2 t) von öffentlichen Schlüsseln so geschicktzu komprimieren, dass wir am Ende einen kleinen öffentlichen Schlüssel pk erhalten, aber gleichzeitigdie größe der <strong>Signaturen</strong> dabei nicht allzu stark anwächst. Eine Möglichkeit, die Liste zu komprimierenist durch die folgende Berechnung:1. Zuerst wird der Hashwert h t,i := H(pk i ), i ∈ {1, . . . , 2 t }, für alle Schlüssel in der Liste berechnet.2. Dann wird rekursiv berechnet:h j−1,i := H(h j,2i−1 ||h j,2i ) ∀j ∈ {t, . . . , 0}, i ∈ {1, . . . , 2 j−1 }Diese etwas unübersichtliche Rechenvorschrift ist für den Fall t = 3 in Abbildung 2.3 dargestellt. Manbeachte hier, dass wir einen binären Baum aufbauen, dessen Knoten die Hashwerte h j,i sind. Wir brauchenein paar Begriffe über Bäume.32
h 0,1h 1,1h 1,2h 2,1 h 2,2 h 2,3 h 2,4h 3,1 h 3,2 h 3,3 h 3,4 h 3,5 h 3,6 h 3,7pk 1 pk 2 pk 3 pk 4 pk 5 pk 6Abbildung 2.3: Merkle-Baum mit Tiefe 3.pk 7h 3,8pk 8• Wir sagen, dass h 0,1 die Wurzel des Baumes ist.• Der Pfad von einem Knoten h j,i zur Wurzel besteht aus allen Knoten, die auf der kürzesten Verbindungvon h j,i zur Wurzel liegen. In Abbildung 2.3 ist der Pfad von h 3,2 zur Wurzel durch einedurchgezogene Linie dargestellt.• Wir sagen, dass ein Knoten h j,i der Vater von h j ′ ,i ′ ist, falls j + 1 = j′ und i ′ ∈ {2i − 1, 2i} gilt.• Wir sagen dass zwei Knoten Geschwister sind, wenn sie einen gemeinsamen Vater haben. ZumBeispiel h 1,1 und h 1,2 sind Geschwister, da sie gemeinsam den Vater h 0,1 haben.• Der Co-Pfad von h j,i zur Wurzel besteht aus allen Geschwistern von einem Knoten, der auf demPfad von h j,i zur Wurzel liegt. In Abbildung 2.3 ist der Co-Pfad von h 3,2 zur Wurzel durch einegestrichelte (nicht gepunktete) Linie dargestellt.Der öffentliche Schlüssel des Baum-basierten Verfahrens besteht nun aus der Wurzel pk := h 0,1 , desvollständigen binären Baumes, der durch die h j,i -Hashwerte aufgespannt wird. Die Wurzel h 0,1 ist imWesentlichen wieder eine komprimierte Darstellung der Liste (pk 1 , . . . , pk q ), wie im vorigen Abschnitt,jedoch ist nun der Hashwert nicht einfach als H(pk 1 , . . . , pk q ) berechnet, sondern etwas komplizierter.Es wird sich herausstellen, dass dies ziemlich clever ist.Eine Signatur für die i-te Nachricht besteht nun aus aus dem i-ten Schlüssel pk i , gemeinsam mitallen Werten die nötig sind um zu verifizieren dass h t,i = H(pk i ) tatsächlich ein Kind von h 0,1 ist,indem man den direkten Pfad von h t,i hoch bis zur Wurzel h 0,1 des Baumes nachberechnet.Um diesen Pfad nachzuberechnen brauchen wir zunächst den Startwert h t,i , den man als Hashwerth t,i = pk i berechnen kann. Die übrigen benötigten Werte sind genau die Werte, die auf dem „Co-Pfad“von h t,i hoch bis zur Wurzel h 0,1 liegen.33
- 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: 2.5.1 q-mal SignaturenAus einem Ein
- 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 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