Curve25519 is an elliptic curve used in elliptic-curve cryptography (ECC). It was introduced in 2006 by Bernstein.

Curve25519 is designed for use with the elliptic curve Diffie–Hellman (ECDH) key agreement scheme. It offers 128 bits of security with a 256-bit key size.

Curve25519 is used in the X25519 standard, which is a mandatory algorithm in TLS 1.3. TLS 1.3 secures a large number of HTTPS connections in web browsers worldwide.

X25519 and Ed25519 are terms used to describe the algorithm/curve combination.

  • X25519: Used when curve25519 is used with the Diffie-Hellman operation.
  • Ed25519: Used for the EdDSA signature operation in PureEdDSA mode.

Ed25519 is a twist of Curve25519. This means that the curves are mappable to one another. You can use the same private key to generate a public key on both curves and then transform those public keys between one another without any knowledge of the private key.