=== Background: === * //"Elliptic curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. One of the main benefits in comparison with non-ECC cryptography [...] is the same level of security provided by keys of smaller size."//, [[https://en.wikipedia.org/wiki/Elliptic_curve_cryptography|ECC at Wikipedia]], 2015-11-05 * [[https://arstechnica.com/security/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/|Arstechnica: A relatively easy to understand primer on Elliptic Curve Cryptography]] * GnuPG supports ECC since version 2.1 and creates ECC keypairs by default since version 2.3. === Table of ECC supported functions: === (maybe outdated) |=Function |=Protocol |=Curve |=OpenPGP specification |=Libgcrypt dependency |=Gnuk-based token support | | Signature | [[https://en.wikipedia.org/wiki/Elliptic_Curve_DSA|ECDSA]] | [[https://beta.csrc.nist.gov/Projects/Elliptic-Curve-Cryptography|NIST ECC]]: **[[http://csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf|P-256]]** | [[https://tools.ietf.org/html/rfc6637|RFC6637]], [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | |Gnuk >= 1.2.0| | Signature | [[https://en.wikipedia.org/wiki/Elliptic_Curve_DSA|ECDSA]] | [[https://beta.csrc.nist.gov/Projects/Elliptic-Curve-Cryptography|NIST ECC]]: **[[http://csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf|P-384]]** | [[https://tools.ietf.org/html/rfc6637|RFC6637]], [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | | | | Signature | [[https://en.wikipedia.org/wiki/Elliptic_Curve_DSA|ECDSA]] | [[https://beta.csrc.nist.gov/Projects/Elliptic-Curve-Cryptography|NIST ECC]]: **[[http://csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf|P-521]]** | [[https://tools.ietf.org/html/rfc6637|RFC6637]], [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | | | | Signature | [[https://en.wikipedia.org/wiki/Elliptic_Curve_DSA|ECDSA]] | [[http://www.ecc-brainpool.org/download/Domain-parameters.pdf|ECC Brainpool]]: **[[https://tools.ietf.org/html/rfc5639|brainpoolP256r1]]** | [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | | | | Signature | [[https://en.wikipedia.org/wiki/Elliptic_Curve_DSA|ECDSA]] | [[http://www.ecc-brainpool.org/download/Domain-parameters.pdf|ECC Brainpool]]: **[[https://tools.ietf.org/html/rfc5639|brainpoolP384r1]]** | | | | | Signature | [[https://en.wikipedia.org/wiki/Elliptic_Curve_DSA|ECDSA]] | [[http://www.ecc-brainpool.org/download/Domain-parameters.pdf|ECC Brainpool]]: **[[https://tools.ietf.org/html/rfc5639|brainpoolP512r1]]** | [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | | | | Signature | [[https://en.wikipedia.org/wiki/Elliptic_Curve_DSA|ECDSA]] | [[http://www.secg.org/|SECG]]: **[[http://www.secg.org/sec2-v2.pdf|secp256k1]]** | |libgcrypt\\>= 1.7.0|Gnuk\\>= 1.2.0| | Signature | [[https://en.wikipedia.org/wiki/EdDSA|EdDSA]] | [[https://tools.ietf.org/html/rfc8032|RFC8032]]: **[[https://tools.ietf.org/html/rfc8032#section-5.1|Ed25519]]** | [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | |Gnuk\\>= 1.2.0| | Encryption | [[https://en.wikipedia.org/wiki/ECDH|ECDH]] | [[https://beta.csrc.nist.gov/Projects/Elliptic-Curve-Cryptography|NIST ECC]]: **[[http://csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf|P-256]]** | [[https://tools.ietf.org/html/rfc6637|RFC6637]], [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | |Gnuk\\>= 1.2.0| | Encryption | [[https://en.wikipedia.org/wiki/ECDH|ECDH]] | [[https://beta.csrc.nist.gov/Projects/Elliptic-Curve-Cryptography|NIST ECC]]: **[[http://csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf|P-384]]** | [[https://tools.ietf.org/html/rfc6637|RFC6637]], [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | | | | Encryption | [[https://en.wikipedia.org/wiki/ECDH|ECDH]] | [[https://beta.csrc.nist.gov/Projects/Elliptic-Curve-Cryptography|NIST ECC]]: **[[http://csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf|P-521]]** | [[https://tools.ietf.org/html/rfc6637|RFC6637]], [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | | | | Encryption | [[https://en.wikipedia.org/wiki/ECDH|ECDH]] | [[http://www.ecc-brainpool.org/download/Domain-parameters.pdf|ECC Brainpool]]: **[[https://tools.ietf.org/html/rfc5639|brainpoolP256r1]]** | [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | | | | Encryption | [[https://en.wikipedia.org/wiki/ECDH|ECDH]] | [[http://www.ecc-brainpool.org/download/Domain-parameters.pdf|ECC Brainpool]]: **[[https://tools.ietf.org/html/rfc5639|brainpoolP384r1]]** | | | | | Encryption | [[https://en.wikipedia.org/wiki/ECDH|ECDH]] | [[http://www.ecc-brainpool.org/download/Domain-parameters.pdf|ECC Brainpool]]: **[[https://tools.ietf.org/html/rfc5639|brainpoolP512r1]]** | [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] | | | | Encryption | [[https://en.wikipedia.org/wiki/ECDH|ECDH]] | [[http://www.secg.org/|SECG]]: **[[http://www.secg.org/sec2-v2.pdf|secp256k1]]** | |libgcrypt\\>= 1.7.0|Gnuk\\>= 1.2.0| | Encryption | [[https://en.wikipedia.org/wiki/ECDH|ECDH]] | [[https://tools.ietf.org/html/rfc7748|RFC7748]]: **[[https://tools.ietf.org/html/rfc7748#section-4.1|Curve25519]]** | [[https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis|RFC4880bis draft]] |libgcrypt\\>= 1.7.0|Gnuk\\>= 1.2.0|