Merkle's signature is a post-quantum and reusable digital signature algorithm based on the use of the Merkle tree and any one-time digital signature. [one]
Content
- 1 History
- 2 Description of the algorithm
- 2.1 Preparation
- 2.2 Key Generation
- 2.3 Signature Generation
- 2.4 Signature Verification
- 3 Benefits
- 3.1 Post-quantum
- 3.2 Reusability
- 4 disadvantages
- 4.1 Tree traversal problem
- 5 Cryptanalysis
- 6 notes
- 7 Literature
History
The signature was first published by Ralph Merkle in 1979 in his article “Secrecy, authentication, and public key systems” [2] , as a reusable digital signature using Lamport's one-time signature . [3]
Algorithm Description
Preparation
Merkle's signature is based on an already existing one-time digital signature, the cryptographic strength of which should be based on a cryptographic hash function . Examples of such signatures are the Winternitz One-time Signature Scheme or Lamport's signature . [4] A one-time digital signature should consist of three main operations: [5]
- Secret key generation
and public key
.
- Signature Generation
from message
using a secret key
.
- Signature Verification
using public key
.
It is also necessary to determine the cryptographic hash function , which will later be used to calculate the public key. [four]
Key Generation
Key arrays are generated and
lengths
. The length is chosen equal to the power of two, as it is necessary to build a Merkle tree. Every couple
used as a private-public key pair for a basic one-time signature. Array
- is the private key of Merkle's signature; to generate the public key, the Merkle tree is built:
- For everybody
calculate the hash value
- this will be the zero layer of the tree, that is, its leaves. Denote this layer
. Total
contains
elements. Then we calculate the following size layer : everyone layer element calculated through two elements from the previous layer where - concatenation operation. So every next layer, has a length and calculated through th layer. In the end, we will come to the last layer of the tree having a length and being the root of the tree.
For the public key, the root of the constructed Merkle tree is taken: . [6]
Signature Generation
To generate a signature from arrays and is selected key pair .For message a one-time digital signature is calculated using private key . Next, consider the path from the root Merkle tree to leaf corresponding to the key . Denote the vertices through which this path passes, as an array lengths where Is the root of the tree, and - this is . Value of each vertex , Besides is calculated as where and are immediate descendants . Thus, in order to calculate the path from the root of the tree, it is enough to know and an array of vertices , which we will call the authentication path. So in the message signature included: verification key one time signature and an authentication path to calculate the path to the root of the tree. [7]
Signature Verification
First, the recipient verifies the one-time signature for compliance with the message . If the test was successful, then begins to build the path from to the root of the tree. First calculated , then and so on. If , then the verification of the signature was successful. [8]
Benefits
Post-Quantum
Commonly used digital signature algorithms such as RSA and DSA use the complexity of factoring numbers and the complexity of computing the discrete logarithm . However, using the Shore algorithm and a quantum computer , these signatures can be cracked in polynomial time. In contrast, Merkle's signature is post-quantum, since its cryptographic strength is based on the strength of the cryptographic hash function and the strength of a one-time digital signature. [one]
Reusability
One of the main problems of digital signatures based on cryptographic hash functions is that they are usually used in the context of one-time digital signatures, that is, signatures in which one key pair is used to sign only one message. However, there are ways to expand such signatures to reusable ones. One of such methods is just building a Merkle tree, which is used to authenticate various one-time signatures. [9]
Weaknesses
Tree traversal problem
This problem is associated with finding an effective algorithm for calculating authentication data. The trivial decision to save all the data in memory requires too much memory. On the other hand, the approach of computing the authentication path in the area where it is needed will be too costly for some tree nodes. [10] If the lengths of the X and Y arrays are greater than 2 ^ 25, using Merkle's signature becomes impractical. [8]
Cryptanalysis
It is proved that the Merkle digital signature algorithm is cryptographic against an adaptive attack with a choice of messages if it uses a hash function that is resistant to collisions of the second kind. [11] [12] However, in order to crack Merkle's signature, a cryptanalyst needs to either restore the inverse image of the hash function or calculate a collision of the first kind. This means that, from a practical point of view, the cryptographic strength of Merkle's signature is based on the irreversibility of the hash function used and on its resistance to collisions of the first kind. [12]
Notes
- ↑ 1 2 CMSS, 2006 , p. 349-350.
- ↑ Merkle, 1979 .
- ↑ Security, 2005 , p. one.
- ↑ 1 2 CMSS, 2006 , p. 352.
- ↑ CMSS, 2006 , p. 351.
- ↑ Security, 2005 , p. 3.
- ↑ CMSS, 2006 , p. 352-353.
- ↑ 1 2 CMSS, 2006 , p. 353.
- ↑ dods2005hash, 2005 , p. 96.
- ↑ szydlo2004merkle, 2004 , p. 541.
- ↑ Security, 2005 , p. four.
- ↑ 1 2 rohde2008fast, 2008 , p. 109.
Literature
- Merkle, Ralph Charles. Secrecy, authentication, and public key systems : Technical Report No. 1979-1. - Citeseer, 1979. - DOI : 10.1.1.637.3952 .
- Garcıa, LC Coronado. On the security and the efficiency of the Merkle signature scheme : Technical Report 2005/192. - Cryptology ePrint Archive, 2005.
- Buchmann, Johannes. CMSS – an improved Merkle signature scheme // International Conference on Cryptology in India. - Springer Berlin Heidelberg, 2006 .-- S. 349-363 . - DOI : 10.1007 / 11941378_25 . (inaccessible link)
- Dods, Chris and Smart, Nigel P and Stam, Martijn. Hash based digital signature schemes // IMA International Conference on Cryptography and Coding. - Springer Berlin Heidelberg, 2005. - S. 96-115 . - DOI : 10.1007 / 11586821_8 .
- Szydlo, Michael. Merkle tree traversal in log space and time // International Conference on the Theory and Applications of Cryptographic Techniques. - Springer Berlin Heidelberg, 2004 .-- S. 541-554 . - DOI : 10.1007 / 978-3-540-24676-3_32 .
- Rohde, Sebastian and Eisenbarth, Thomas and Dahmen, Erik and Buchmann, Johannes and Paar, Christof. Fast hash-based signatures on constrained devices // International Conference on Smart Card Research and Advanced Applications. - Springer Berlin Heidelberg, 2008 .-- S. 104-117 . - DOI : 10.1007 / 978-3-540-85893-5_8 .