Ambas partes generan un escalar privado nuevo por conexión, intercambian los valores públicos (32 bytes para X25519, 65 para P-256 sin comprimir) y derivan el secreto compartido; después olvidan los escalares. En TLS 1.2, ECDHE aparece en los nombres de los conjuntos de cifrado (TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) y el servidor firma sus parámetros; en TLS 1.3, todo handshake que no sea PSK usa ECDHE o un híbrido.
Algunas implementaciones reutilizan durante un tiempo una clave «efímera» por rendimiento, lo que debilita el forward secrecy y, con puntos sin validar, abre la puerta a ataques de curva no válida. En un núcleo de un Apple M4 Max, OpenSSL 3.6.5 realiza unas 52.000 operaciones X25519 y 40.000 operaciones P-256 por segundo, así que usar claves realmente distintas en cada conexión cuesta poco.