In
cryptography
Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or ''-logy, -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of Adversary (cryptography), ...
, a Schnorr signature is a
digital signature produced by the Schnorr signature algorithm that was invented by
Claus Schnorr. It is a digital signature scheme known for its simplicity, among the first whose security is based on the
intractability of certain
discrete logarithm
In mathematics, for given real numbers a and b, the logarithm \log_b(a) is a number x such that b^x=a. Analogously, in any group G, powers b^k can be defined for all integers k, and the discrete logarithm \log_b(a) is an integer k such that b^k=a ...
problems. It is efficient and generates short signatures.
It was covered by which expired in February 2010.
Algorithm
Choosing parameters
*All users of the signature scheme agree on a
group
A group is a number of persons or things that are located, gathered, or classed together.
Groups of people
* Cultural group, a group whose members share the same cultural identity
* Ethnic group, a group whose members share the same ethnic iden ...
of prime order
with generator
in which the
discrete log problem is assumed to be hard. Typically a
Schnorr group is used.
*All users agree on a
cryptographic hash function
A cryptographic hash function (CHF) is a hash algorithm (a map (mathematics), map of an arbitrary binary string to a binary string with a fixed size of n bits) that has special properties desirable for a cryptography, cryptographic application: ...
.
Notation
In the following,
*Exponentiation stands for repeated application of the group operation
*Juxtaposition stands for multiplication on the set of congruence classes or application of the group operation (as applicable)
*Subtraction stands for subtraction on the set of congruence classes
*
, the set of finite bit strings
*
, the
set of congruence classes modulo
*
.
Key generation
*Choose a private signing key
from the allowed set.
*The public verification key is
.
Signing
To sign a message
:
*Choose a random
from the allowed set.
*Let
.
*Let
, where
denotes concatenation and
is represented as a bit string.
*Let
.
The signature is the pair,
.
Note that
; if
, then the signature representation can fit into 64 bytes.
Verifying
*Let
*Let
If
then the signature is verified.
Proof of correctness
It is relatively easy to see that
if the signed message equals the verified message:
, and hence
.
Public elements:
,
,
,
,
,
,
. Private elements:
,
.
This shows only that a correctly signed message will verify correctly; many other properties are required for a secure signature algorithm.
Key leakage from nonce reuse
Just as with the closely related signature algorithms
DSA,
ECDSA, and
ElGamal, reusing the secret nonce value
on two Schnorr signatures of different messages will allow observers to recover the private key.
In the case of Schnorr signatures, this simply requires subtracting
values:
:
.
If
but
then
can be simply isolated. In fact, even slight biases in the value
or partial leakage of
can reveal the private key, after collecting sufficiently many signatures and solving the
hidden number problem.
Security argument
The signature scheme was constructed by applying the
Fiat–Shamir transformation to Schnorr's identification protocol. Therefore, (as per Fiat and Shamir's arguments), it is secure if
is modeled as a
random oracle
In cryptography, a random oracle is an oracle (a theoretical black box) that responds to every ''unique query'' with a (truly) random response chosen uniformly from its output domain. If a query is repeated, it responds the same way every tim ...
.
Its security can also be argued in the
generic group model, under the assumption that
is "random-prefix preimage resistant" and "random-prefix second-preimage resistant".
In particular,
does ''not'' need to be
collision resistant.
In 2012, Seurin
provided an exact proof of the Schnorr signature scheme. In particular, Seurin shows that the security proof using the
forking lemma The forking lemma is any of a number of related lemmas in cryptography research. The lemma states that if an adversary (typically a probabilistic Turing machine), on inputs drawn from some distribution, produces an output that has some property w ...
is the best possible result for any signature schemes based on one-way
group homomorphism
In mathematics, given two groups, (''G'',∗) and (''H'', ·), a group homomorphism from (''G'',∗) to (''H'', ·) is a function ''h'' : ''G'' → ''H'' such that for all ''u'' and ''v'' in ''G'' it holds that
: h(u*v) = h(u) \cdot h(v)
whe ...
s including Schnorr-type signatures and the
Guillou–Quisquater signature schemes. Namely, under the
ROMDL assumption, any algebraic reduction must lose a factor
in its time-to-success ratio, where
is a function that remains close to 1 as long as "
is noticeably smaller than 1", where
is the probability of forging an error making at most
queries to the random oracle.
Short Schnorr signatures
The aforementioned process achieves a ''t''-bit security level with 4''t''-bit signatures. For example, a 128-bit security level would require 512-bit (64-byte) signatures. The security is limited by discrete logarithm attacks on the group, which have a complexity of the ''square-root'' of the group size.
In Schnorr's original 1991 paper, it was suggested that since collision resistance in the hash is not required, shorter hash functions may be just as secure, and indeed recent developments suggest that a ''t''-bit security level can be achieved with 3''t''-bit signatures.
Then, a 128-bit security level would require only 384-bit (48-byte) signatures, and this could be achieved by truncating the size of ''e'' until it is half the length of the ''s'' bitfield.
Implementations
Schnorr signature is used by numerous products. A notable usage is the deterministic Schnorr's signature using the secp256k1
elliptic curve
In mathematics, an elliptic curve is a smooth, projective, algebraic curve of genus one, on which there is a specified point . An elliptic curve is defined over a field and describes points in , the Cartesian product of with itself. If the ...
for
Bitcoin
Bitcoin (abbreviation: BTC; Currency symbol, sign: ₿) is the first Decentralized application, decentralized cryptocurrency. Based on a free-market ideology, bitcoin was invented in 2008 when an unknown entity published a white paper under ...
transaction signature after the Taproot update.
See also
*
DSA
*
EdDSA
*
ElGamal signature scheme
The ElGamal signature scheme is a digital signature scheme which is based on the difficulty of computing discrete logarithms. It was described by Taher Elgamal in 1985. (conference version appeared in CRYPTO'84, pp. 10–18)
The ElGamal signatu ...
References
External links
RFC 8235BIP 340: Schnorr Signatures for secp256k1
{{Cryptography navbox , public-key
Digital signature schemes