Curve25519 — кривая Монтгомери y² = x³ + 486662x² + x над полем по модулю простого числа 2^255 − 19; её разработал Дэниел Бернштейн (Daniel J. Bernstein) в 2006 году, а описана она в RFC 7748. Порядок её группы равен 8·n, где n — 253-битное простое число, что даёт около 128 бит стойкости; квадратичное скручивание этой кривой тоже стойкое.
X25519, функция Диффи — Хеллмана на этой кривой, использует только координату u: ключи — 32-байтовые строки, а в закрытых ключах по RFC 7748, § 5 принудительно выставляются отдельные биты («clamping»), чтобы через кофактор не утекала информация. Функция принимает в качестве открытого ключа любые 32 байта; входные значения малого порядка дают общий секрет из одних нулей, и протоколам следует отвергать такой секрет.
В TLS 1.3 группа x25519 отмечена как рекомендуемая (Recommended) и служит классической половиной гибридной схемы X25519MLKEM768; в SSH она используется как curve25519-sha256 (RFC 8731), а WireGuard, Signal и age построены на ней. Её двойник в скрученной форме Эдвардса — кривая edwards25519, на которой работают подписи Ed25519.