NEW
An elliptic curve over the prime field 2^255−19 optimized for fast, secure Diffie–Hellman key exchange.
DESCRIPTION
Curve25519 is a high-performance, modern elliptic curve designed by Daniel J. Bernstein for secure key exchange. It targets approximately 128-bit security, supports constant-time implementations, and avoids pitfalls found in some legacy curves. The widely used X25519 function implements Diffie–Hellman over Curve25519 and is standardized by the IETF. Curve25519 sees broad deployment in TLS, SSH, WireGuard, and many secure messaging systems due to its speed and robust security properties.
ALTERNATIVE DEFINITIONS
Daniel J. Bernstein
Curve25519: new Diffie-Hellman speed records.
Introduces Curve25519 emphasizing speed and practical security compared to existing curves.
IETF
This document specifies elliptic curves over prime fields for use in cryptography, including Curve25519 (Montgomery form) and Curve448.
Standardizes Curve25519 for widespread interoperable deployment and implementation guidance.
Libsodium
X25519 is an Elliptic Curve Diffie-Hellman (ECDH) function over Curve25519 for key exchange.
Focuses on practical API usage of Curve25519 via X25519 in a popular crypto library.
RELATED TERMS
Elliptic Curve Cryptography X25519 Diffie–Hellman Key Exchange Ed25519 TLS 1.3 Forward Secrecy OpenSSH WireGuard Asymmetric Encryption
COMPETING TERMS
NIST P-256 secp256k1
KNOWLEDGE AREAS
Data Security Software Engineering Infrastructure
TARGET AUDIENCE
Security Architect Cybersecurity Engineer Software Developer DevOps Engineer Chief Information Security Officer
EXTERNAL SOURCES
- Wikipedia - Curve25519
- IETF - Curve25519 standard specification
- Daniel J. Bernstein - Background on Curve25519
- OpenSSH - Announcement of Curve25519 support
TOP QUESTIONS
Why do many protocols adopt Curve25519?
It offers strong security, speed, and simple, constant-time implementations. Its design avoids known pitfalls in some NIST curves, making it attractive for modern cryptographic deployments.
Category: Relevancy
How does Curve25519 relate to X25519?
X25519 is the Diffie–Hellman function instantiated on Curve25519. It defines the precise operations used to perform key agreement.
Category: Definition
What are common implementation mistakes with Curve25519?
Using non-constant-time code, mishandling low-order points, or unsafe random number generation can undermine security. Follow vetted libraries and RFC 7748 guidance.
Category: Mistakes
Where is Curve25519 used in practice?
It’s employed in TLS 1.3, SSH, WireGuard, and secure messaging apps for key exchange, valued for performance and robust security properties.
Category: Example
How does Curve25519 compare to NIST P-256?
Both target similar security, but Curve25519 emphasizes simpler, faster, and more secure-by-design implementations, influencing widespread adoption.
Category: Comparison
Does Curve25519 provide forward secrecy?
When used ephemerally (e.g., X25519 in ECDHE), it supports forward secrecy by deriving short-lived keys not recoverable from long-term key compromise.
Category: Security
Who designed Curve25519 and why?
Daniel J. Bernstein designed it to achieve fast, secure Diffie–Hellman key exchange with implementation simplicity and side-channel resistance.
Category: History
Is Curve25519 standardized?
Yes, the IETF standardized relevant operations in RFC 7748, guiding interoperable implementations and safe parameter choices.
Category: Standard
How should developers use Curve25519 safely?
Adopt established libraries (libsodium, OpenSSL), avoid custom crypto, ensure constant-time operations, and follow RFC and library best practices.
Category: Best practices