Saltar al contenido
ecdsa.com
RecomendadaMontgomery

curve25519

Curve25519 es la curva de Montgomery en la que se basa X25519, el intercambio de claves predeterminado de TLS 1.3, SSH y WireGuard.

curve25519 es una curva de Montgomery By² = x³ + Ax² + x sobre un campo primo de 255 bits, con un subgrupo de orden primo de 253 bits y cofactor 8; su nivel de seguridad estimado es de 128 bits. Estado: recomendada para sistemas nuevos.

Curve25519 es la curva de Montgomery y² = x³ + 486662x² + x sobre el primo 2^255 − 19, diseñada por Daniel J. Bernstein en 2006 y especificada en el RFC 7748. Su grupo tiene orden 8·n, con n primo de 253 bits, lo que da unos 128 bits de seguridad, y su curva torcida cuadrática (quadratic twist) también es segura.

X25519, la función Diffie–Hellman sobre esta curva, solo usa coordenadas u: las claves son cadenas de 32 bytes, y a las claves privadas se les aplica el «clamping» que prescribe el RFC 7748 §5 para que el cofactor no pueda filtrar información. La función acepta cualquier valor de 32 bytes como clave pública; las entradas de orden bajo producen un secreto compartido formado solo por ceros, que los protocolos deberían rechazar.

TLS 1.3 incluye x25519 como grupo recomendado (Recommended) y lo usa como mitad clásica del híbrido X25519MLKEM768; SSH lo usa como curve25519-sha256 (RFC 8731), y WireGuard, Signal y age se basan en él. Su gemela en forma de Edwards torcida es edwards25519, que se usa para las firmas Ed25519.

Nombres en los estándares

EstándarNombre
RFC 7748curve25519
RFC 7748 / RFC 8410X25519
SSHcurve25519-sha256

Identificadores de objeto

Parámetros de dominio

campo primo de 255 bits · seguridad de unos 128 bits

Primo del campo p
0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
Coeficiente a
0x76d06
Coeficiente b
0x1
Punto base x
0x9
Punto base y
0x20ae19a1b8a086b4e01edd2c7748d14c923d4d7e6d7c61b229e9c5a27eced3d9
Orden n del punto base
0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed
Cofactor h
0x8

Se usa en

  • TLS 1.3 (x25519, X25519MLKEM768)
  • SSH (curve25519-sha256)
  • Signal
  • WireGuard
  • age
  • HPKE

Identificadores en registros

Grupos admitidos de TLS
x25519 0x001DMLKEM512X25519 0x11EAX25519MLKEM768 0x11ECX25519Kyber768Draft00 0x6399
Algoritmos JOSE
HPKE-3HPKE-3-KEHPKE-4
Curvas JWK
X25519
Curvas elípticas COSE
X25519 4
Métodos de intercambio de claves SSH
curve25519-sha256gss-curve25519-sha256-*mlkem768x25519-sha256sntrup761x25519-sha512
Identificadores KEM de HPKE
DHKEM(X25519, HKDF-SHA256) 0x0020DHKEM(X25519+Elligator, HKDF-SHA256) 0x0022X25519Kyber768Draft00 0x0030X-Wing 0x647A

Estándares y referencias

Todas las curvas