Merkle-Signatur

Merkle-Signatur

Die Merkle-Signatur ist ein digitales Signaturverfahren, das auf Merkle-Bäumen sowie Einmalsignaturen wie etwa dem Lamport-Einmalsignaturen basiert. Es wurde von Ralph Merkle in den späten Siebzigern entwickelt und stellt eine Alternative zu traditionellen digitalen Signaturen wie dem Digital Signature Algorithm oder RSA-Kryptosystem dar. Der Vorteil des Signaturverfahrens von Merkle ist, dass es für resistent gegen Angriffe durch Quantencomputer gehalten wird. Die traditionellen Public-Key-Verfahren wie RSA oder Elgamal würden im Falle eines effektiven Quantencomputers unsicher werden (Shor-Algorithmus). Das Merkle-Signaturverfahren hingegen hängt nur von der Existenz sicherer Hashfunktionen ab. Dadurch ist es äußerst anpassbar und resistent gegen Quanten-Computing.

Inhaltsverzeichnis

Schlüsselerzeugung

Merkle-Baum mit 8 Blättern

Das Merkle-Signaturverfahren kann nur verwendet werden, um eine begrenzte Anzahl von Nachrichten mit einem öffentlichen Schlüssel pub zu signieren. Die Anzahl möglicher Nachrichten entspricht einer Zweierpotenz und wird daher als N = 2n bezeichnet.

Der erste Schritt bei der Generierung des öffentlichen Schlüssels pub ist die Generierung des öffentlichen Schlüssels Xi und des privaten Schlüssels Yi von 2n Einmalsignaturen. Für jeden privaten Schlüssel Yi mit 1 \leq i \leq 2^n wird ein Hash-Wert hi = H(Yi) berechnet. Mit diesen Hash-Werten hi wird ein Hash-Baum aufgebaut.

Ein Knoten des Baums wird mit ai,j identifiziert, wobei i die Ebene des Knotens bezeichnet. Die Ebene eines Knotens ist über seinen Abstand zu den Blättern definiert. Somit hat ein Blatt die Ebene i = 0 und die Wurzel die Ebene i = n. Die Knoten jeder Ebene sind von links nach rechts durchnummeriert, sodass ai,0 der Knoten ganz links auf Ebene i ist.

Im Merkle-Baum sind die Hash-Werte hi die Blätter des Binärbaums, sodass hi = a0,i. Jeder innere Knoten des Baums ist der Hash-Wert der Konkatenation seiner beiden Kinder. Beispielsweise ist a1,0 = H(a0,0 | | a0,1) und a2,0 = H(a1,0 | | a1,1).

Auf diese Weise wird ein Baum mit 2n Blättern und 2n + 1 − 1 Knoten aufgebaut. Die Wurzel des Baums an,0 ist der öffentliche Schlüssel pub des Merkle-Signaturverfahrens.

Signierung

Merkle-Baum mit Pfad A und Authentifizierungspfad für i=2

Um eine Nachricht M mit dem Merkle-Signaturverfahren zu signieren, wird die Nachricht M zuerst mit einem Einmalsignaturverfahren signiert, wodurch die Signatur sig' entsteht. Dazu wird eines der Schlüsselpaare aus öffentlichem und privatem Schlüssel (Xi,Yi,) verwendet.

Das einem öffentlichen "einmal" Schlüssel Xi zugehörige Blatt des Hash-Baums ist a0,i = H(Yi). Der Pfad im Hash-Baum von a0,i zur Wurzel wird mit A bezeichnet. Der Pfad A besteht aus n + 1 Knoten, A_0, \ldots, A_n, wobei A0 = a0,i die Blätter sind und An = an,0 = pub die Wurzel des Baums ist. Um diesen Pfad A zu berechnen wird jedes Kind der Knoten A_{1}, \ldots, A_{n} benötigt. Es ist bekannt, dass Ai ein Kind von Ai + 1 ist. Um den nächsten Knoten Ai + 1 des Pfades A zu berechnen, müssen beide Kinder von Ai + 1 bekannt sein. Daher wird der Bruder von Ai benötigt. Dieser Knoten wird mit authi bezeichnet, sodass Ai + 1 = H(Ai | | authi). Deswegen werden n Knoten auth_0,\ldots,auth_{n-1} benötigt, um jeden Knoten des Pfades A zu berechnen. Diese Knoten auth_{0}, \ldots , auth_{n-1} werden berechnet und gespeichert. Sie bilden zusammen mit einer Einmalsignatur sig' von M die Signatur sig = (sig' | | auth2 | | auth3 | | ... | | authn − 1) des Merkle-Signaturverfahrens.

Verifizierung

Der Empfänger kennt den öffentlichen Schlüssel pub, die Nachricht M, und die Signatur sig = (sig' | | auth0 | | auth1 | | ... | | authn − 1). Zuerst verifiziert der Empfänger die Einmalsignatur sig' der Nachricht M. Falls sig' eine gültige Signatur von M ist, berechnet der Empfänger A0 = H(Yi), indem er den Hash-Wert des öffentlichen Schlüssels der Einmalsignatur berechnet. Für j = 1,..,n − 1 werden die Knoten Aj des Pfades A berechnet, mit Aj = H(aj − 1 | | bj − 1). Wenn An dem öffentlichen Schlüssel pub des Merkle-Signaturverfahrens entspricht, so ist die Signatur gültig.

Quellen

Weblinks

  • Efficient Use of Merkle Trees - Erklärung von RSA Security zum ursprünglichen Zwecks von Merkle-Trees: der Handhabung vieler Lamport-Einmalsignaturen.

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Merkle-Hellman-Kryptosystem — Das Merkle Hellman Kryptosystem (MH) ist ein asymmetrisches Verschlüsselungsverfahren, das auf dem Rucksackproblem basiert. Inhaltsverzeichnis 1 Beschreibung 1.1 Schlüsselerzeugung 1.2 Verschlüsselung …   Deutsch Wikipedia

  • Digitale Signatur — Eine digitale Signatur ist ein kryptografisches Verfahren, bei dem zu einer „Nachricht“ (d.h. zu beliebigen Daten) eine Zahl berechnet wird. Diese digitale Signatur ermöglicht, dass ihre Urheberschaft und Zugehörigkeit zur Nachricht durch jeden… …   Deutsch Wikipedia

  • Diffie-Hellman-Merkle-Algorithmus — Der Diffie Hellman Schlüsselaustausch oder Diffie Hellman Merkle Schlüsselaustausch ist ein Protokoll aus dem Bereich der Kryptografie. Mit ihm erzeugen zwei Kommunikationspartner einen geheimen Schlüssel, den nur diese beiden kennen. Dieser… …   Deutsch Wikipedia

  • Diffie-Hellman-Merkle-Schlüsselaustausch — Der Diffie Hellman Schlüsselaustausch oder Diffie Hellman Merkle Schlüsselaustausch ist ein Protokoll aus dem Bereich der Kryptografie. Mit ihm erzeugen zwei Kommunikationspartner einen geheimen Schlüssel, den nur diese beiden kennen. Dieser… …   Deutsch Wikipedia

  • Hash-Baum — Ein binärer Hash Baum In der Kryptographie und Informatik ist ein Hash Baum (engl. hash tree oder merkle tree) eine Datenstruktur, die einen Baum aus Hashwerten von Datenblöcken bildet, beispielsweise von einer Datei. Hash Bäume sind eine… …   Deutsch Wikipedia

  • GMSS — ist ein digitales Signaturverfahren, welches 2007 von Johannes Buchmann, Erik Dahmen, Elena Klintsevich, Katsuyuki Okeya und Camille Vuillaume an der TU Darmstadt entwickelt wurde.[1] Es baut auf der Merkle Signatur auf und gilt als quantensicher …   Deutsch Wikipedia

  • Asymmetrische Chiffre — Ein asymmetrisches Kryptosystem ist ein Kryptosystem, bei dem jeder der kommunizierenden Parteien ein Schlüsselpaar besitzt, das aus einem geheimen Teil (privater Schlüssel) und einem nicht geheimen Teil (öffentlicher Schlüssel) besteht. Der… …   Deutsch Wikipedia

  • Asymmetrische Verschlüsselung — Ein asymmetrisches Kryptosystem ist ein Kryptosystem, bei dem jeder der kommunizierenden Parteien ein Schlüsselpaar besitzt, das aus einem geheimen Teil (privater Schlüssel) und einem nicht geheimen Teil (öffentlicher Schlüssel) besteht. Der… …   Deutsch Wikipedia

  • Asymmetrischer Verschlüsselungsalgorithmus — Ein asymmetrisches Kryptosystem ist ein Kryptosystem, bei dem jeder der kommunizierenden Parteien ein Schlüsselpaar besitzt, das aus einem geheimen Teil (privater Schlüssel) und einem nicht geheimen Teil (öffentlicher Schlüssel) besteht. Der… …   Deutsch Wikipedia

  • Asymmetrisches Kryptologiesystem — Ein asymmetrisches Kryptosystem ist ein Kryptosystem, bei dem jeder der kommunizierenden Parteien ein Schlüsselpaar besitzt, das aus einem geheimen Teil (privater Schlüssel) und einem nicht geheimen Teil (öffentlicher Schlüssel) besteht. Der… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”