Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. ECC allows smaller keys to provide equivalent security, compared to cryptosystems based on modular exponentiation in finite fields, such as the RSA cryptosystem and ElGamal cryptosystem.

Elliptic curves are applicable for key agreement, digital signatures, pseudo-random generators and other tasks. Indirectly, they can be used for encryption by combining the key agreement with a symmetric encryption scheme. They are also used in several integer factorization algorithms that have applications in cryptography, such as Lenstra elliptic-curve factorization.

History

The use of elliptic curves in cryptography was suggested independently by Neal Koblitz and Victor S. Miller in 1985. Elliptic curve cryptography algorithms entered wide use starting in 2004.

In 1999, U.S. NIST recommended fifteen elliptic curves for use in the Digital Signature Standard. These curves were later specified in FIPS 186-4, which was superseded by FIPS 186-5 in 2023 and withdrawn in 2024. NIST moved its recommended elliptic-curve domain parameters to Special Publication 800-186. SP 800-186 includes previously recommended Weierstrass curves and two Edwards curves for EdDSA; it also deprecates binary-field curves and strongly recommends use of prime curves.

At the RSA Conference 2005, the National Security Agency (NSA) announced Suite B, which used ECC for digital signature generation and key exchange. Suite B was later superseded by the Commercial National Security Algorithm Suite (CNSA), and NSA announced CNSA 2.0 as a quantum-resistant transition suite for national security systems.

Since the early 2000s, cryptographic primitives based on bilinear mappings on various elliptic curve groups, such as the Weil and Tate pairings, have been studied. Schemes based on these primitives include identity-based encryption as well as pairing-based signatures, signcryption, key agreement, and proxy re-encryption.

Elliptic curve cryptography is used successfully in numerous popular protocols, such as Transport Layer Security and Bitcoin.

Security concerns

In 2013, The New York Times stated that Dual Elliptic Curve Deterministic Random Bit Generation (or Dual_EC_DRBG) had been included as a NIST national standard due to the influence of NSA, which had included a deliberate weakness in the algorithm and the recommended elliptic curve. RSA Security in September 2013 issued an advisory recommending that its customers discontinue using any software based on Dual_EC_DRBG.Kim Zetter, RSA Tells Its Developer Customers: Stop Using NSA-Linked Algorithm Wired, 19 September 2013. "Recommending against the use of SP 800-90A Dual Elliptic Curve Deterministic Random Bit Generation: NIST strongly recommends that, pending the resolution of the security concerns and the re-issuance of SP 800-90A, the Dual_EC_DRBG, as specified in the January 2012 version of SP 800-90A, no longer be used." In the wake of the exposure of Dual_EC_DRBG as "an NSA undercover operation", cryptography experts have also expressed concern over the security of the NIST recommended elliptic curves,Bruce Schneier (5 September) "I no longer trust the constants. I believe the NSA has manipulated them through their relationships with industry." See Are the NIST Standard Elliptic Curves Back-doored?, Slashdot, 11 September 2013. suggesting a return to encryption based on non-elliptic-curve groups.

Additionally, in August 2015, the NSA announced that it planned to replace Suite B with a new cipher suite due to concerns about quantum computing attacks on ECC.Commercial National Security Algorithm Suite and Quantum Computing FAQ U.S. National Security Agency, January 2016. NSA later published CNSA 2.0 guidance for a transition to quantum-resistant algorithms for national security systems.

Patents

While the RSA patent expired in 2000, there may be patents in force covering certain aspects of ECC technology, including at least one ECC scheme (ECMQV). However, RSA Laboratories and Daniel J. Bernstein have argued that the US government elliptic curve digital signature standard (ECDSA; NIST FIPS 186-3) and certain practical ECC-based key exchange schemes (including ECDH) can be implemented without infringing those patents.

Elliptic curve theory For the purposes of this article, an elliptic curve is a plane curve over a finite field (rather than the real numbers). A common form for curves over finite fields of characteristic not equal to 2 or 3 consists of the points satisfying the equation

along with a distinguished point at infinity, denoted ∞. Curves over fields of characteristic 2 or 3, and curves used in other representations such as Montgomery or Edwards form, are written differently.

This set of points, together with the group operation of elliptic curves, is an abelian group, with the point at infinity as an identity element. The structure of the group is inherited from the divisor group of the underlying algebraic variety:

Application to cryptography Public-key cryptography is based on the intractability of certain mathematical problems. Early public-key systems, such as RSA's 1983 patent, based their security on the assumption that it is difficult to factor a large integer composed of two or more large prime factors which are far apart. For elliptic-curve protocols, a central hardness assumption is the elliptic curve discrete logarithm problem (ECDLP): given a public base point and another point , it should be infeasible to recover . Key-agreement protocols such as ECDH rely on related Diffie–Hellman assumptions, such as the difficulty of computing from , , and . The security of elliptic curve cryptography depends on the ability to compute point multiplication efficiently and the apparent inability to reverse it for properly chosen curves and key sizes. The size and structure of the curve group, rather than only the total number of coordinate pairs satisfying the curve equation, determine the difficulty of the problem.

The primary benefit promised by elliptic curve cryptography over alternatives such as RSA is a smaller key size, reducing storage and transmission requirements. For example, a 256-bit elliptic curve public key should provide comparable security to a 3072-bit RSA public key.

Cryptographic schemes Several discrete logarithm-based protocols have been adapted to elliptic curves, replacing the group with an elliptic-curve group: The Elliptic-curve Diffie–Hellman (ECDH) key agreement scheme is based on the Diffie–Hellman scheme, X25519 and X448 are Diffie–Hellman functions specified by the IRTF for use with Montgomery-form curves, The Elliptic Curve Integrated Encryption Scheme (ECIES), also known as Elliptic Curve Augmented Encryption Scheme or simply the Elliptic Curve Encryption Scheme, The Elliptic Curve Digital Signature Algorithm (ECDSA) is based on the Digital Signature Algorithm, The Edwards-curve Digital Signature Algorithm (EdDSA) is based on Schnorr signature and uses twisted Edwards curves, The ECMQV key agreement scheme is based on the MQV key agreement scheme, The ECQV implicit certificate scheme.

Implementation Some common implementation considerations include:

Domain parameters To use ECC, all parties must agree on all the elements defining the elliptic curve, that is, the domain parameters of the scheme. The underlying finite field is typically either a prime field, denoted , or a binary field, denoted . In the binary case, and an irreducible reduction polynomial specify the field representation; is not an auxiliary curve. The elliptic curve is defined by the coefficients in its defining equation. Finally, the cyclic subgroup is defined by its generator (a.k.a. base point) G. For cryptographic application, the order of G, that is the smallest positive number n such that (the point at infinity of the curve, and the identity element), is normally prime. Since n is the size of a subgroup of , it follows from Lagrange's theorem that the number is an integer. In cryptographic applications, this number h, called the cofactor, is usually small, ideally 1. Protocols using curves with cofactors greater than 1 must handle the cofactor appropriately. To summarize: in the prime case, the domain parameters are ; in the binary case, they are .

Unless there is an assurance that domain parameters were generated by a party trusted with respect to their use, the domain parameters must be validated before use.

The generation of domain parameters is not usually done by each participant because this involves computing the number of points on a curve which is time-consuming and troublesome to implement. As a result, several standard bodies published domain parameters of elliptic curves for several common field sizes. Such domain parameters are commonly known as "standard curves" or "named curves"; a named curve can be referenced either by name or by the unique object identifier defined in the standard documents: NIST, SP 800-186: Recommendations for Discrete Logarithm-Based Cryptography: Elliptic Curve Domain Parameters SECG, SEC 2: Recommended Elliptic Curve Domain Parameters

ECC Brainpool (), ECC Brainpool Standard Curves and Curve Generation SECG test vectors are also available. NIST has approved many SECG curves, so there is a significant overlap between the specifications published by NIST and SECG. EC domain parameters may be specified either by value or by name.

If, despite the preceding admonition, one decides to construct one's own domain parameters, one should select the underlying field and then use one of the following strategies to find a curve with appropriate (i.e., near prime) number of points using one of the following methods: Select a random curve and use a general point-counting algorithm, for example, Schoof's algorithm or the Schoof–Elkies–Atkin algorithm, Select a random curve from a family which allows easy calculation of the number of points (e.g., Koblitz curves), or Select the number of points and generate a curve with this number of points using the complex multiplication technique.

Several classes of curves are weak and should be avoided: Curves over with non-prime m are vulnerable to Weil descent attacks. Curves such that n divides (where p is the characteristic of the field: q for a prime field, or for a binary field) for sufficiently small B are vulnerable to Menezes–Okamoto–Vanstone (MOV) attack which applies usual discrete logarithm problem (DLP) in a small-degree extension field of to solve ECDLP. The bound B should be chosen so that discrete logarithms in the field are at least as difficult to compute as discrete logs on the elliptic curve .IEEE P1363 , section A.12.1 Curves such that are vulnerable to the attack that maps the points on the curve to the additive group of .

Key sizes

Because all the fastest known algorithms that allow one to solve the ECDLP (baby-step giant-step, Pollard's rho, etc.), need steps, it follows that the size of the underlying field should be roughly twice the security parameter. For example, for 128-bit security one needs a curve over , where . This can be contrasted with finite-field cryptography (e.g., DSA) which requiresNIST, Recommendation for Key Management—Part 1: general, Special Publication 800-57, August 2005. 3072-bit public keys and 256-bit private keys, and integer factorization cryptography (e.g., RSA) which requires a 3072-bit value of n, where the private key should be just as large. However, the public key may be smaller to accommodate efficient encryption, especially when processing power is limited.