13.07.2015 Aufrufe

Digitale Signaturen - Tibor Jager

Digitale Signaturen - Tibor Jager

Digitale Signaturen - Tibor Jager

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!