Schnorr signature

from Wikipedia, the free encyclopedia

The Schnorr signature is a cryptographic scheme for digital signatures designed in 1989/1991 by the German mathematics professor Claus-Peter Schnorr . It is derived from the Schnorr identification in that, as with the Fiat Shamir identification, the interaction is replaced by the use of a cryptographic hash function . The security relies on the complexity of the discrete logarithm in finite groups.

The process is patented by Schnorr , but the term of protection has now expired. It is licensed exclusively to RSA (Siemens has a non-exclusive license). As part of the IEEE P1363 standardization, Schnorr accused NIST of infringing its patent with the Digital Signature Algorithm (DSA) it had developed .

parameter

System-wide parameters

All users can share these parameters:

  • A group of prime order . This is cyclical, be a generator
  • A cryptographic hash function with a range of values .

Schnorr suggests choosing a subgroup of for a primes . He argues that key and signature lengths refer to, while the security level is oriented towards the larger .

Private key

The private key consists of a randomly chosen number:

  • With

Public key

The public key is the corresponding group element :

Sign

To sign a message , do the following:

  1. Randomly choose with .
  2. Set
  3. Set . Here is the concatenation .
  4. Set .

The signature of the message is the tuple or .

Formulated for elliptical curves

We consider an elliptic curve over GF (p). The generator G is a point on the curve and let it be .

  1. Randomly choose with .
  2. Set
  3. Set . Here is the concatenation and the coordinate of the point .
  4. Set . If the bit length of is greater than the bit length of , the excess (right) bits of are deleted before the calculation of .

The signature of the message is the tuple or .

To verify

To verify a signature of a message , the following procedure is used:

  1. Set
  2. Set
  3. Accept the signature if and only if is.

If the signature is in the format it can be verified as follows:

With an elliptical curve

  1. Calculate
  2. Set
  3. Accept the signature if and only if is.

If the signature is in the format it can be verified as follows:

Multi signature

With Schnorr signatures it is possible to sign a message with several keys in one signature.

One party signatures

  1. The signer has several private keys , which means that several public keys also exist
  2. The signer charges
  3. When verifying is

Batch verification

When signed with , it is possible to calculate signatures and public keys together.

This can be used to verify multiple signatures at the same time. This could be used in the Bitcoin blockchain so that not all nodes have to validate all transactions.

Rogue key attack

You should not trust it as a signature, as it is not clear whether it is the sum of the public keys or just the public key of a party.

Bellare-Neven procedure

One solution is for each party to co-sign the hash of all public keys.

  1. remains the product of the individual noncenes:
  2. is a partial signature that everyone calculates for himself
  3. which are then added together:

With one can verify it.

Idle

  1. so that:
  2. so: You should only share with the other parties when you have received a commitment to theirs .

This procedure has the advantage that only the parties involved need to know the individual public keys. An outsider can use the combined public key to confirm that it is a valid signature. Especially in blockchain applications, where privacy is valuable and storage space is scarce, the Schnorr process, using the Bitcoin blockchain as an example, could save up to 25% storage space.

Security discussion (informal)

The value xe and thus also the value x are securely encrypted by the random number k ( one-time pad ). Security is therefore subject to certain conditions on the used random numbers ( k ) and the hash function ( random oracle model ) to the complexity of discrete logarithms in the used group proved to reduce, ie who can calculate the Schnorr signature scheme, can also compute the discrete logarithm. There is no known method with which the discrete logarithm in multiplicative groups of finite fields can be calculated efficiently with today's computers. This demonstrable reduction to known problems classified as difficult is typical for security proofs in cryptographic systems with public keys.

In the Random Oracle model, it is assumed that the hash function behaves like a random function and an attacker can only calculate the function values ​​using an oracle for the function values. With the help of a contradiction proof , you can now show the correctness of the procedure. Assume that there is a successful forger for the signature process. This can be used to determine the secret key from the public key , i.e. to calculate the discrete logarithm of - contrary to the assumption that the discrete logarithm is difficult.

  1. Simulate the algorithm for signing a message , save the state when calling the oracle to calculate.
  2. Repeat the simulation on the saved state, but return a different one (this works in the Random Oracle model)
  3. Be and the two (different) signatures the same message and the same random value or
  4. It is so

Division by is possible: Since is prime, there is also an inverse modulo for every number not equal to 0 .

Requirement for the random numbers

From the above explanation it follows that the random numbers k that are used to calculate the signature must not be repeated under any circumstances. If a random number were used to sign two different messages, the private key x could be calculated from publicly known values. This could then be used to forge signatures by an attacker. Furthermore, the random numbers must not be calculable for the attacker, otherwise he could calculate x .

literature

Web links

  • Claus-Peter Schnorr, Lecture Cryptography I / II, Chapter 1.7 , online (PDF, 454 kB)

Individual evidence

  1. Patent EP0384475 : Applied on February 22, 1990 .
  2. Patent US4995082 : Applied February 23, 1990 .
  3. IEEE P1363 Patent Reply from Prof. Dr. Claus Peter Schnorr. (No longer available online.) Archived from the original on October 13, 2016 ; accessed on January 25, 2018 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / grouper.ieee.org
  4. Github: BIP-340 . Retrieved March 15, 2020.
  5. UCSD: Paper . Retrieved March 15, 2020.
  6. Sam Wouters: Why Schnorr signatures will help solve 2 of Bitcoin's biggest problems today , July 4, 2017. Retrieved December 30, 2017.
  7. Blockstream: Schnorr Multisig . Retrieved March 15, 2020.
  8. IARC: Multi-Signatures with Applications to Bitcoin . Retrieved March 15, 2020.
  9. David Pointcheval and Jacques Stern: Security arguments for digital signatures and blind signatures. Journal of Cryptology, 13 (3), pp. 361-396, 2000.