Saltar al contenido
ecdsa.com

ECDH (Diffie–Hellman de curva elíptica)

El acuerdo de claves en el que cada parte combina su propia clave privada de curva elíptica con la clave pública de la otra para calcular el mismo secreto compartido, la coordenada x de d_A·d_B·G.
También se escribeElliptic Curve Diffie-HellmanECDH key agreementECC CDH

Cada parte tiene un escalar privado d y un punto público Q = d·G; ambas calculan Z, la coordenada x de d_A·Q_B = d_B·Q_A. Z no es una clave: pasa por una función de derivación de claves como HKDF (TLS 1.3), la KDF de un paso de SP 800-56C o Concat KDF (ECDH-ES de JOSE). NIST SP 800-56A Rev. 3 especifica la primitiva y las variantes del esquema (efímera-efímera, efímera-estática, etc.).

El receptor debe validar el punto de la otra parte: que esté en la curva, que no sea el punto en el infinito y que pertenezca al subgrupo correcto (SP 800-56A §5.6.2.3). Omitir esta comprobación permite ataques de curva no válida que extraen una clave privada estática en unos pocos cientos de consultas, y que afectaron al ECDH-ES de varias bibliotecas JOSE en 2017. El diseño de X25519 reduce la comprobación a rechazar un resultado formado solo por ceros.

Las claves efímeras (ECDHE) proporcionan forward secrecy y son las únicas que usa TLS 1.3; el ECDH con destinatario estático aparece en ECIES, en ECDH-ES de JWE y en HPKE. Los grupos en uso son secp256r1, secp384r1, x25519 y x448. ECDH y ECDSA comparten curvas y formatos de clave, pero SP 800-57, parte 1, recomienda usar cada clave para un solo fin. NIST IR 8547 (borrador) propone prohibir ECDH después de 2035; los híbridos como X25519MLKEM768 son la vía de migración.

Estándares y referencias

Todos los términos