]> Cypherpunks repositories - gostls13.git/commit
crypto/ecdsa: draw a fixed amount of entropy while signing
authorFilippo Valsorda <filippo@golang.org>
Mon, 27 Sep 2021 18:40:06 +0000 (14:40 -0400)
committerFilippo Valsorda <filippo@golang.org>
Fri, 5 Nov 2021 04:20:33 +0000 (04:20 +0000)
commit0a5ca2422f14f9c17a017207feb9f83f94ce0e89
tree77a6eecd7d9c1a2d30da89c75f765d8af4118a87
parentbd580a0d10729553a7905481d17eed0436198866
crypto/ecdsa: draw a fixed amount of entropy while signing

The current code, introduced in CL 2422, mixes K bits of entropy with
the private key and message digest to generate the signature nonce,
where K is half the bit size of the curve. While the ECDLP complexity
(and hence security level) of a curve is half its bit size, the birthday
bound on K bits is only K/2. For P-224, this means we should expect a
collision after 2^56 signatures over the same message with the same key.

A collision, which is unlikely, would still not be a major practical
concern, because the scheme would fall back to a secure deterministic
signature scheme, and simply leak the fact that the two signed messages
are the same (which is presumably already public).

Still, we can simplify the code and remove the eventuality by always
drawing 256 bits of entropy.

Change-Id: I58097bd3cfc9283503e38751c924c53d271af92b
Reviewed-on: https://go-review.googlesource.com/c/go/+/352530
Trust: Filippo Valsorda <filippo@golang.org>
Run-TryBot: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Roland Shoemaker <roland@golang.org>
src/crypto/ecdsa/ecdsa.go