Reputation: 11
So I've been toying around with c/c++ OpenSSL libraries and I'm developing a application that I would like to use EC scep256k1 keys as a form of authentication. I've read through the openssl documentation and countless forms and everyone seems to have a different method to generating keys and using the signing methods. Is there a agreeed upon way to do this?
Upvotes: 1
Views: 1625
Reputation: 75
The Elliptic Curve (EC) "scep256k1" is one of many curves that can be used to generate EC keys. There are some curves that are standardized by some organizations such as NIST. However, there are some concerns about the security of those standardized curves such as the so-called P-256 (aka scep256r1). The curve "scep256k1" is a Koblitz curve used by Bitcoin to sign transactions. Koblitz curves are efficient but less secure than random curves. People think that Satoshi wanted to avoid NIST curves and so he looked for another curve that is efficient but at the same time provides reasonable security. But according to this post, there is no particular reason why he chose "scep256k1". Some EC researchers defined some properties needed for an elliptic curve in order to be classified as a "Safe curve" which means it is not susceptible to any of the currently known attacks. This link gives a detailed security review of the currently used elliptic curves. As you can see from the link, "Curve25519" passes the security review and is currently used in security protocols implementing Elliptic Curve Diffie-Hellman key exchange protocol such as TLS.
Upvotes: 2