Merkle-Signatur

Die Merkle-Signatur i​st ein digitales Signaturverfahren, d​as auf Merkle-Bäumen s​owie Einmalsignaturen w​ie etwa d​en Lamport-Einmalsignaturen basiert. Es w​urde von Ralph Merkle i​n den späten 1970er Jahren entwickelt u​nd stellt e​ine Alternative z​u traditionellen digitalen Signaturen w​ie dem Digital Signature Algorithm o​der auf RSA basierenden Signaturen dar. Im Gegensatz z​u diesen i​st es resistent g​egen Angriffe d​urch Quantencomputer, d​a seine Sicherheit n​ur von d​er Existenz sicherer Hashfunktionen abhängt.

Idee

Ein Problem v​on Einmalsignaturen, w​ie der Lamport-Signatur, i​st die Übertragung d​es öffentlichen Schlüssels. Da j​eder Schlüssel n​ur genau einmal verwendet werden kann, k​ommt eine größere Datenmenge zusammen, d​ie zuverlässig a​n den Empfänger weitergegeben werden muss.

Das Merkle-Signaturverfahren löst dieses Problem, indem das gesamte (öffentliche) Schlüsselmaterial von Einmalsignaturen in einem mehrstufigen Hash-Verfahren zu einem einzigen Hashwert zusammengefasst wird. Als öffentlicher Schlüssel braucht nur veröffentlicht zu werden, anschließend lassen sich mit ihm Nachrichten signieren.

Die Signatur e​iner Nachricht besteht d​ann aus z​wei Teilen:

  • Einem der öffentlichen Schlüssel, sowie die mit dem entsprechenden privaten Schlüssel signierte Nachricht. Der Empfänger kann verifizieren, dass der Sender tatsächlich in Besitz des privaten Schlüssels war.
  • Einem Nachweis, dass es sich bei dem öffentlichen Schlüssel um einen der Schlüssel handelt, aus denen der Hashwert berechnet wurde.

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 zu signieren. Die Anzahl möglicher Nachrichten entspricht einer Zweierpotenz und wird daher als bezeichnet.

Der erste Schritt bei der Generierung des öffentlichen Schlüssels ist die Generierung des privaten Schlüssels und des öffentlichen Schlüssels von Einmalsignaturen. Für jeden öffentlichen Schlüssel mit wird ein Hash-Wert berechnet. Mit diesen Hash-Werten wird ein Hash-Baum aufgebaut.

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

Im Merkle-Baum sind die Hash-Werte die Blätter des Binärbaums, sodass . Jeder innere Knoten des Baums ist der Hash-Wert der Konkatenation seiner beiden Kinder. Beispielsweise ist und .

Auf diese Weise wird ein Baum mit Blättern und Knoten aufgebaut. Die Wurzel des Baums ist der öffentliche Schlüssel des Merkle-Signaturverfahrens.

Signierung

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

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

Das einem privaten Einmalschlüssel zugehörige Blatt des Hash-Baums ist . Der Pfad im Hash-Baum von zur Wurzel wird mit bezeichnet. Der Pfad besteht aus Knoten, , wobei die Blätter sind und die Wurzel des Baums ist. Um diesen Pfad zu berechnen wird jedes Kind der Knoten benötigt. Es ist bekannt, dass ein Kind von ist. Um den nächsten Knoten des Pfades zu berechnen, müssen beide Kinder von bekannt sein. Daher wird der Bruder von benötigt. Dieser Knoten wird mit bezeichnet, sodass . Deswegen werden Knoten benötigt, um jeden Knoten des Pfades zu berechnen. Diese Knoten werden berechnet und gespeichert. Sie bilden zusammen mit einer Einmalsignatur von die Signatur des Merkle-Signaturverfahrens.

Verifizierung

Der Empfänger kennt den öffentlichen Schlüssel , die Nachricht , und die Signatur . Zuerst verifiziert der Empfänger die Einmalsignatur der Nachricht . Falls eine gültige Signatur von ist, berechnet der Empfänger , indem er den Hash-Wert des öffentlichen Schlüssels der Einmalsignatur berechnet. Für werden die Knoten des Pfades berechnet, mit . Wenn dem öffentlichen Schlüssel des Merkle-Signaturverfahrens entspricht, so ist die Signatur gültig.

Weiterentwicklungen

Im Zuge d​er Suche n​ach quantencomputerresistenten Signaturverfahren i​st das Verfahren i​n der letzten Zeit wieder stärker i​n den Fokus gerückt. Inzwischen wurden verbesserte Varianten d​es Merkle-Signaturverfahrens veröffentlicht, u. a.

  • XMSS (eXtended Merkle Signature Scheme), das 2018 als RFC 8391 standardisiert wurde[1]
  • LMS (Leighton-Micali Hash-Based Signatures), das 2019 als RFC 8554 standardisiert wurde[2]
  • SPHINCS mit größeren Signaturen als XMSS, dafür aber zustandslos[3][4]

Quellen

  • G. Becker: Merkle Signature Schemes, Merkle Trees and Their Cryptanalysis, Seminar 'Post Quantum Cryptology' an der Ruhr-Universität Bochum.
  • E. Dahmen, M. Dring, E. Klintsevich, J. Buchmann, L. C. Coronado Garca: CMSS – an improved merkle signature scheme (PDF-Datei; 264 kB). Progress in Cryptology – Indocrypt 2006, 2006.
  • E. Klintsevich, K. Okeya, C. Vuillaume, J. Buchmann, E. Dahmen: Merkle signatures with virtually unlimited signature capacity (PDF-Datei; 179 kB). 5th International Conference on Applied Cryptography and Network Security – ACNS07, 2007.
  • Ralph Merkle: Secrecy, authentication and public key systems / A certified digital signature. Ph.D. dissertation, Dept. of Electrical Engineering, Stanford University, 1979. (PDF)
  • Silvio Micali, M. Jakobsson, T. Leighton, M. Szydlo: Fractal merkle tree representation and traversal. RSA-CT 03, 2003

Einzelnachweise

  1. Johannes Buchmann, Erik Dahmen, Andreas Hülsing: XMSS – A Practical Forward Secure Signature Scheme Based on Minimal Security Assumptions. In: Post-Quantum Cryptography. PQCrypto 2011 (= Lecture Notes in Computer Science. Band 7071). Springer, Berlin Heidelberg 2011, S. 117–129, doi:10.1007/978-3-642-25405-5_8.
  2. D. McGrew, M. Curcio, S. Fluhrer: Leighton-Micali Hash-Based Signatures. RFC8554. RFC Editor, April 2019, S. RFC8554, doi:10.17487/rfc8554 (rfc-editor.org [abgerufen am 20. Februar 2021]).
  3. Daniel J. Bernstein, Daira Hopwood, Andreas Hülsing, Tanja Lange, Ruben Niederhagen, Louiza Papachristodoulou, Michael Schneider, Peter Schwabe, Zooko Wilcox-O’Hearn: SPHINCS: practical stateless hash-based signatures. In: Elisabeth Oswald, Marc Fischlin (Hrsg.): Advances in Cryptology -- EUROCRYPT 2015 (= Lecture Notes in Computer Science. Band 9056). Springer, Berlin Heidelberg 2015, ISBN 978-3-662-46799-2, S. 368397, doi:10.1007/978-3-662-46800-5_15.
  4. SPHINCS: Introduction. Abgerufen am 25. Januar 2019 (englisch).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.