0Pricing
Cryptology Academy · Lección

ECDH: curvas elípticas para el intercambio de claves

Aplique la multiplicación escalar de curvas elípticas al acuerdo de claves ECDH.

ECDH: curvas elípticas para el intercambio de claves es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Bienvenida

ECDH sustituye el grupo multiplicativo de DH por un grupo de curva elíptica. El resultado: una seguridad equivalente con claves 10 veces más pequeñas y operaciones 10 veces más rápidas.

Operaciones de grupo EC

En ECDH, la «multiplicación» es la multiplicación escalar sobre una curva elíptica: multiplicar un punto P por un escalar k significa sumar P consigo mismo k veces: k×P. Es el análogo en curvas elípticas de g^k mod p.

Protocolo ECDH

Acuerdan la curva E y el punto base G (públicos). Alice: clave privada a, clave pública A = a×G Bob: clave privada b, clave pública B = b×G Alice: S = a×B = a×b×G Bob: S = b×A = b×a×G Ambos derivan el mismo punto S.

ECDLP

Dado A = a×G en una curva elíptica, encuentre a. Este es el problema del logaritmo discreto de la curva elíptica. No se conoce ningún algoritmo subexponencial para curvas generales, por lo que ECDLP es más difícil que DLP con tamaños de clave iguales.

Curve25519

Diseñada por Bernstein en 2005. Forma de Montgomery: y²=x³+486662x²+x sobre el primo 2^255-19. Diseñada para ser rápida y resistente a errores de implementación. Se utiliza en WireGuard, Signal y SSH.

Intercambio de claves X25519

X25519 es la función ECDH que utiliza Curve25519. Solo se utiliza la coordenada x del punto compartido (la multiplicación por el cofactor gestiona los casos límite). RFC 7748 estandarizó X25519 y X448.

ECDH en Python

from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey alice_priv = X25519PrivateKey.generate() bob_priv = X25519PrivateKey.generate() alice_pub = alice_priv.public_key() bob_pub = bob_priv.public_key() shared_alice = alice_priv.exchange(bob_pub) shared_bob = bob_priv.exchange(alice_pub) assert shared_alice == shared_bob

Del punto compartido a la clave simétrica

El punto compartido sin procesar no se utiliza directamente como clave (no se distribuye uniformemente). Utilice HKDF para derivar una clave simétrica adecuada: from cryptography.hazmat.primitives.kdf.hkdf import HKDF key = HKDF(SHA256, 32, salt, info).derive(shared_secret)

Tamaños de clave de ECDH frente a DH

Nivel de seguridad de 128 bits: - DH: primo de 3072 bits - ECDH: curva de 256 bits Proporción de tamaños de clave: aproximadamente 12:1. Clave pública ECDH: 32 bytes (Curve25519). Clave pública DH: 384 bytes. Las operaciones con claves privadas ECDH son aproximadamente 50 veces más rápidas.

Ataque por cofactor en curvas inseguras

Los ataques contra subgrupos pequeños explotan curvas con cofactores no triviales. Curve25519 tiene un cofactor de 8, pero X25519 lo gestiona correctamente. Las curvas P de NIST tienen un cofactor de 1. Utilice siempre implementaciones estandarizadas.

ECDH en TLS 1.3

TLS 1.3 admite X25519, X448, P-256, P-384 y P-521 para el intercambio de claves. X25519 es la opción más común: rápida, segura y de tiempo constante. Ambos pares generan claves efímeras para cada sesión.

Comprobación rápida

¿Cuál es la principal ventaja de ECDH frente a Diffie-Hellman clásico?

Recapitulación

¡ECDH dominado! A continuación, comprenderemos el secreto hacia adelante y por qué el intercambio de claves efímeras es esencial en TLS.

Preguntas frecuentes

¿La lección «ECDH: curvas elípticas para el intercambio de claves» es gratis?

Sí — el texto completo de «ECDH: curvas elípticas para el intercambio de claves» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «ECDH: curvas elípticas para el intercambio de claves»?

Aplique la multiplicación escalar de curvas elípticas al acuerdo de claves ECDH. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «ECDH: curvas elípticas para el intercambio de claves»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. El problema de la distribución de claves
  2. Matemáticas del intercambio de claves Diffie-Hellman
  3. ECDH: curvas elípticas para el intercambio de claves
  4. Secreto hacia adelante e intercambio de claves efímeras
← Volver a Cryptology Academy