ElGamal vs. Schnorr vs. ECDSA vs. ...
- From: "D. J. Bernstein" <djb@xxxxxxxx>
- Date: Tue, 29 Aug 2006 18:39:38 +0000 (UTC)
Here's Schnorr's CRYPTO 89 signature system, except that I've replaced
the multiplicative group with an elliptic-curve group:
* The signer's secret key is a 256-bit integer n.
* The signer's public key is nB, where B is the standard base point
on a standard elliptic curve, specifically Curve25519.
* Given a message m, the signer picks a random 256-bit integer z,
computes r = SHA-256(zB,m), computes s = z + rn mod q where q is
the order of the base point, and sends the signed message (m,r,s).
* Given (m,r,s), the verifier checks that r = SHA-256(sB-rnB,m).
Some notable features of Schnorr's system, compared to (e.g.) ElGamal's
1984 signature system:
* Schnorr doesn't need any inversions mod q. This is a time-saver
with no disadvantages.
* Schnorr includes the random point zB as a hash input, rather than
computing, e.g., r = zB + SHA-256(m). This slows down verification
slightly (especially in parallel contexts) but can save space, as
discussed below.
* Schnorr transmits the hash output r. The alternative is to transmit
the hash input zB: the signer sends (m,zB,s) and the verifier
checks that sB = zB + SHA-256(zB,m) nB. Typically zB is longer than
r; replacing zB with r is now a well-known space-saving feature.
More detailed discussion of the second feature: Schnorr claimed without
proof that, thanks to the hash randomization, security of his signature
system relies only on what's now called ``target collision resistance''
(which is clearly sufficient for other types of signatures, as Naor and
Yung had pointed out in their 1986 UOWHF article) rather than full
collision resistance.
Schnorr suggested taking advantage of this by using a rather small hash
output---only about b bits for b-bit security, rather than the usual 2b
bits---to save space in signatures. Many papers claim that a complete
Schnorr signature takes 4b bits, but that's not true; Schnorr used 3b
bits. (The Boneh-Lynn-Shacham ``short'' signatures use 2b bits.)
One can complain that SHA-256(zB,m) doesn't adequately spread the
randomness of zB through the hashing of m, and that it would be better
to do something like SHA-256(zB,m xor zBzBzB...). The 1995 MDx-MAC paper
by Preneel and van Oorschot discusses these issues in much more detail.
You can find Schnorr's construction, some of Schnorr's observations, and
some of the Preneel-van Oorschot observations repeated without credit in
the recent Halevi/Krawczyk ``randomized hashing'' papers.
---D. J. Bernstein, Professor, Mathematics, Statistics,
and Computer Science, University of Illinois at Chicago
.
- Follow-Ups:
- Re: ElGamal vs. Schnorr vs. ECDSA vs. ...
- From: xmath
- Re: ElGamal vs. Schnorr vs. ECDSA vs. ...
- References:
- Curve25519-based EC-KCDSA
- From: xmath
- Curve25519-based EC-KCDSA
- Prev by Date: Re: RSA Signing Security?
- Next by Date: Re: Cross platform password string encryption
- Previous by thread: Re: Curve25519-based EC-KCDSA
- Next by thread: Re: ElGamal vs. Schnorr vs. ECDSA vs. ...
- Index(es):
Relevant Pages
|
|