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.