Paper 2015/1249
Trap Me If You Can -- Million Dollar Curve
Thomas Baignères and Cécile Delerablée and Matthieu Finiasz and Louis Goubin and Tancrède Lepoint and Matthieu Rivain
Abstract
A longstanding problem in cryptography is the generation of publicly verifiable randomness. In particular, public verifiability allows to generate parameters for a cryptosystem in a way people can legitimately trust. There are many examples of standards using arbitrary constants which are now challenged and criticized for this reason, some of which even being suspected of containing a trap. Several sources of public entropy have already been proposed such as lotteries, stock market prices, the bitcoin blockchain, board games, or even Twitter and live webcams. In this article, we propose a way of combining lotteries from several different countries which would require an adversary to manipulate several independent draws in order to introduce a trap in the generated cryptosystem. Each and every time a new source of public entropy is suggested, it receives its share of criticism for being "easy to manipulate". We do not expect our solution to be an exception on this aspect, and will gladly receive any suggestion allowing to increase the confidence in the cryptosystem parameters we generate. Our method allows to build what we call a Publicly verifiable RNG, from which we extract a seed that is used to instantiate and initialize a Blum-Blum-Shub random generator. We then use the binary stream produced by this generator as an input to a filtering function which deterministically outputs secure and uniformly distributed parameters from uniform bitstreams. We apply our methodology to the ECDH cryptosystem, and propose the "Million Dollar Curve" as an alternative to curves P-256 and Curve25519.
Note: This is a commitment on the SHA256 hash of the MDCurve201601 design text file. This file is available at https://cryptoexperts.github.io/million-dollar-curve/specifications/mdcurve_201601/2016_01_27_million_dollar_curve.txt. The hash is: e9dd4baf0d351b5a64c59ed6b1efd3108094b3585e17a0e5350fb200500058d9. This is a commitment on the SHA256 hash of the MDCurve201601 seeding text file. This file is available at https://cryptoexperts.github.io/million-dollar-curve/specifications/mdcurve_201601/2016_01_29_million_dollar_curve_seeding.txt. The hash is: f8bdb5bd4957a2d65b567378bb32744d0d0573a77e4ef0247311a5a4b98744da.
Metadata
- Available format(s)
-
PDF
- Category
- Public-key cryptography
- Publication info
- Preprint. MINOR revision.
- Keywords
- Publicly verifiable RNGlotterytrusted cryptosystem parameterselliptic curveMillion Dollar Curvedecentralized beaconNSASnowden
- Contact author(s)
- thomas baigneres @ cryptoexperts com
- History
- 2016-02-01: last of 4 revisions
- 2016-01-01: received
- See all versions
- Short URL
- https://ia.cr/2015/1249
- License
-
CC BY