Ir al contenido

¡Se acercan los certificados de 47 días! ¿Estás preparado?

Actúa ahora →

Comprensión de la criptografía de curva elíptica (ECC)

ECC

La criptografía de curva elíptica (ECC) es una forma de criptografía de clave pública basada en la estructura algebraica de curvas elípticas sobre campos finitos. Alcanza los mismos objetivos de seguridad que RSA , incluyendo el intercambio de claves, firmas digitales y autenticación, con claves de tamaño significativamente menor, operaciones más rápidas y menor consumo de recursos. Una clave ECC de 256 bits proporciona aproximadamente la misma seguridad que una clave RSA de 3072 bits. La acción recomendada es: usar ECDSA P-256 o Ed25519 para nuevas firmas digitales y certificados TLS, ECDHE para el intercambio de claves en TLS 1.3, y comenzar a planificar la migración a alternativas post-cuánticas (ML-KEM, ML-DSA) para infraestructuras de larga duración donde se aplica el cronograma de descontinuación de 2030.

Respuesta rápida: ¿Qué es ECC y cuándo debería utilizarse?

ECC es el algoritmo criptográfico asimétrico preferido para la mayoría de las nuevas implementaciones: certificados TLS, firma de código, claves SSH y autenticación móvil/IoT. Su seguridad se basa en el Problema del Logaritmo Discreto de Curva Elíptica (ECDLP), que no tiene una solución subexponencial conocida en una curva bien elegida. Ventaja en el tamaño de la clave: ECDSA P-256 proporciona seguridad de 128 bits con una clave de 32 bytes; RSA necesita una clave de 3072 bits (384 bytes) para una seguridad equivalente. Use ECC para nuevos certificados, claves SSH y firma de código. Use RSA solo cuando ECC no sea compatible con sistemas heredados. Nota: ECC no es seguro frente a ataques cuánticos; el algoritmo de Shor rompe ECDLP. Planifique la migración a algoritmos post-cuánticos estandarizados por NIST para infraestructuras con ciclos de vida de clave de varios años.

¿Qué es la criptografía de curva elíptica (ECC)?

ECC es un tipo de criptografía de clave pública que utiliza dos claves relacionadas matemáticamente: una que se comparte públicamente (la clave pública) y otra que se mantiene en secreto (la clave privada). Lo que distingue a ECC es el uso de curvas elípticas: estructuras matemáticas definidas sobre campos finitos mediante una ecuación de la forma y² = x³ + ax + b . Los matemáticos estudiaron estas curvas durante siglos, pero en 1985, Neal Koblitz y Victor S. Miller descubrieron de forma independiente su aplicación a la criptografía, lo que permitió una seguridad robusta con claves mucho más pequeñas que los métodos anteriores como RSA.

Gráfico de curva elíptica que muestra la estructura matemática utilizada en la criptografía ECC, con puntos definidos sobre un campo finito.
Curva elíptica

La seguridad de la criptografía de curva elíptica (ECC) se basa en el problema del logaritmo discreto en curva elíptica (ECDLP) : dado un punto base G en la curva y un punto resultante P calculado como P = kG (mediante multiplicación escalar, que suma repetidamente G a sí mismo k veces según las reglas de la curva), es computacionalmente inviable hallar k conociendo solo G y P. No se conoce ningún algoritmo que resuelva el ECDLP significativamente más rápido que la fuerza bruta en una curva bien elegida, razón por la cual las claves ECC pequeñas proporcionan una seguridad robusta.

Cómo funciona el intercambio de claves ECDH

ECDH (Elliptic Curve Diffie-Hellman) es el protocolo de intercambio de claves basado en ECC. Permite que dos partes establezcan un secreto compartido a través de un canal inseguro sin transmitir el secreto en sí. A continuación, se muestra cómo funciona con Alice y Bob como ejemplo:

Alice y Bob acuerdan públicamente una curva elíptica específica y un punto de partida G en dicha curva. Alice elige un número secreto a (su clave privada) y calcula su clave pública A = aG (multiplicación escalar de G por a). Bob elige un número secreto b (su clave privada) y calcula su clave pública B = bG. Ambos intercambian abiertamente sus claves públicas A y B.

Alice calcula el secreto compartido: aB = a(bG) = abG. Bob calcula el mismo secreto compartido: bA = b(aG) = abG. Ambos llegan al mismo punto abG en la curva, que se convierte en el secreto compartido. Un espía que observe G, A y B no puede calcular el secreto compartido abG sin resolver el problema de programación lineal entera mixta (ECDLP), es decir, sin hallar a a partir de G y A, o b a partir de G y B, lo cual es computacionalmente inviable.

En la práctica, ECDHE (ECDH efímero) genera un nuevo par de claves para cada sesión, descartando posteriormente las claves privadas efímeras. Esto proporciona confidencialidad directa : si las claves a largo plazo se ven comprometidas, no se podrán descifrar las sesiones anteriores, ya que las claves de sesión efímeras se habrán perdido. TLS 1.3 requiere ECDHE para todos los intercambios de claves, lo que hace que la confidencialidad directa sea obligatoria. Consulte nuestra guía sobre TLS 1.2 y TLS 1.3 para obtener más información sobre su aplicación práctica.

ECC frente a RSA

Tanto RSA como ECC logran los objetivos de la criptografía de clave pública, pero a través de fundamentos matemáticos diferentes. RSA se basa en la dificultad de factorizar números enteros grandes; ECC se basa en ECDLP. Las diferencias prácticas son significativas:

Elemento RSA ECC
Seguridad basada enFactorización de enterosProblema de logaritmo discreto de curva elíptica (ECDLP)
Tamaño de clave para seguridad de 128 bits3072 bits de256 bits (ECDSA P-256)
Tamaño de clave para seguridad de 192 bits7680 bits de384 bits (ECDSA P-384)
Rendimiento de la firmaLento (exponenciación modular grande)Rápido
Rendimiento de la verificaciónRápidoRápido
Impacto del tamaño del certificadoGrande (certificado RSA-3072 de aproximadamente 384 bytes para la clave pública)Pequeño (certificado ECDSA P-256 ~32 bytes para la clave pública)
Más adecuado paraSistemas heredados que requieren compatibilidad con RSANuevas implementaciones: TLS, SSH, firma de código, IoT, móvil
Seguridad cuánticaNo es seguro frente a la computación cuántica (el algoritmo de Shor rompe RSA).No es seguro para computación cuántica (el algoritmo de Shor rompe el problema ECDLP).

Comparación de la seguridad entre familias de algoritmos

La norma NIST SP 800-57 Parte 1 Rev. 5 define niveles de seguridad equivalentes para algoritmos simétricos, ECC y RSA. Esto permite a los arquitectos de seguridad elegir algoritmos que proporcionen una protección equivalente sin incurrir en gastos computacionales excesivos.

Nivel de seguridad (bits) Tamaño de clave simétrica Tamaño de clave ECC Tamaño de clave RSA
128AES-128256-283 bits (P-256)3072 bits de
192AES-192384-511 bits (P-384)7680 bits de
256AES-256512+ bits (P-521)15360 bits de

ECC ofrece la misma seguridad que RSA con claves considerablemente más pequeñas. Para la implementación más común de seguridad de 128 bits: ECDSA P-256 (clave pública de 32 bytes) frente a RSA-3072 (clave pública de 384 bytes). Esta diferencia de tamaño es crucial para el tamaño del certificado TLS, el tamaño de la respuesta DNSSEC y los dispositivos con recursos limitados. La ventaja de ECC se hace más evidente en entornos con ancho de banda, almacenamiento o capacidad de procesamiento limitados: aplicaciones móviles, dispositivos IoT , tarjetas inteligentes y sistemas embebidos.

Servicios de cifrado personalizados

Evaluamos, elaboramos estrategias e implementamos soluciones y estrategias de cifrado.

Guía para la selección de algoritmos y curvas ECC

Caso de usoAlgoritmo/curva ECC recomendadoPor quéEvitando
Certificados TLS (nuevas implementaciones)ECDSA P-256Seguridad de 128 bits; ampliamente compatible; los certificados más pequeños reducen el tamaño del protocolo de enlace TLS; recomendado por NIST SP 800-52 Rev. 2.RSA-2048 (propuesta de desuso después de 2030 según NIST IR 8547)
Intercambio de claves TLS (claves de sesión)ECDHE X25519 o P-256El intercambio de claves efímeras proporciona confidencialidad directa; TLS 1.3 requiere ECDHE para todas las conexiones.Intercambio de claves RSA (sin confidencialidad directa; eliminado de TLS 1.3)
Llaves SSHEd25519DSA de curva de Edwards; seguridad de 128 bits; clave pública de 32 bytes; rápido; resistente a ataques de canal lateral por temporización; compatible con OpenSSH 6.5+DSA (obsoleto); RSA-1024 (inseguro); ECDSA P-256 (alternativa aceptable si Ed25519 no está disponible)
Firma de códigoECDSA P-256 o P-384Firmas más pequeñas que RSA con seguridad equivalente; firma más rápida; importante para sistemas de firma de alto rendimiento.RSA-1024 (inseguro); SHA-1 como función hash (roto)
Firma de zona DNSSECECDSA P-256Las firmas más pequeñas se ajustan más fácilmente a las respuestas DNS UDP; tamaño de zona reducidoRSA-1024 (inseguro); RSA-2048 (firmas significativamente más grandes)
Autenticación móvil y de IoTECDSA P-256 o Ed25519Menores requisitos de computación, energía y ancho de banda en comparación con RSA con una seguridad equivalente.RSA-3072+ (mayor carga computacional en hardware con recursos limitados)
Migración post-cuántica (intercambio de claves)ML-KEM (FIPS 203)PQC estandarizado por NIST para reemplazar ECDH; resistente al algoritmo de Shor.ECDH en solitario para nuevas infraestructuras de larga duración

Ventajas y desventajas de ECC

Ventajas de ECC

  • Menor tamaño de clave con seguridad equivalente: ECC logra una seguridad de 128 bits con una clave de 256 bits, frente a los 3072 bits de RSA. Las claves más pequeñas reducen los requisitos de almacenamiento, el ancho de banda para la transmisión de certificados y el tiempo de cálculo.
  • Sólida base matemática: No se conoce ningún ataque subexponencial contra ECDLP en curvas bien elegidas. Esto proporciona una seguridad robusta sin depender de la opacidad del algoritmo.
  • Confidencialidad hacia adelante a través de ECDHE: ECDHE permite el intercambio de claves efímeras, lo que proporciona confidencialidad directa, de modo que comprometer las claves a largo plazo no expone las sesiones pasadas.
  • Rendimiento en hardware con recursos limitados: Los tamaños de clave más pequeños reducen directamente la carga computacional de las operaciones criptográficas, lo que convierte a ECC en la opción práctica para dispositivos móviles, sensores IoT y tarjetas inteligentes.

Desventajas de ECC

  • La selección de la curva es fundamental: La seguridad de ECC depende en gran medida de la elección de parámetros de curva matemáticamente sólidos. Las curvas débiles o mal elegidas pueden introducir vulnerabilidades que comprometen las garantías de seguridad. Utilice únicamente curvas estandarizadas por el NIST (P-256, P-384, P-521) o alternativas ampliamente revisadas (X25519, Ed25519).
  • No es seguro frente a la computación cuántica: El algoritmo de Shor en una computadora cuántica rompe el principio de la curva de distribución de energía con retardo (ECDLP). Es necesario migrar la computación de curva de energía (ECC) a algoritmos post-cuánticos (ML-KEM, ML-DSA) para garantizar una infraestructura duradera.
  • Brechas de compatibilidad con sistemas heredados: Los sistemas más antiguos, los dispositivos integrados y algunos programas intermedios empresariales podrían no ser compatibles con ECC. La compatibilidad con RSA es más amplia para entornos heredados existentes.
  • Complejidad de implementación: Las implementaciones de ECC deben manejar cuidadosamente los casos límite en la aritmética de curvas (punto en el infinito, validación de clave pública no válida) para evitar vulnerabilidades de canal lateral. Utilice bibliotecas criptográficas bien probadas en lugar de implementaciones personalizadas.

Aplicaciones de la criptografía de curva elíptica

  1. Firmas digitales y firma de código: ECDSA firma documentos, versiones de software y actualizaciones de firmware para verificar su autenticidad y detectar manipulaciones. Sus firmas más pequeñas y su mayor velocidad de firma la convierten en una opción preferible a RSA para procesos de firma de código de alto rendimiento.
  2. Protección de las conexiones web (HTTPS/TLS): Los certificados TLS ECDSA P-256 autentican los servidores. ECDHE proporciona intercambio de claves secretas directas durante el protocolo de enlace TLS. Los certificados ECC más pequeños reducen el tiempo de establecimiento de la conexión, lo que resulta especialmente beneficioso para conexiones móviles y de bajo ancho de banda.
  3. Autenticación mediante clave SSH: Ed25519 es el algoritmo preferido actualmente para claves SSH, ya que proporciona claves públicas compactas de 32 bytes, operaciones rápidas y resistencia a ataques de canal lateral basados ​​en el tiempo. Consulte nuestra publicación sobre Gestión de claves SSH para obtener orientación sobre la implementación.
  4. Criptomonedas y blockchain: ECDSA (principalmente secp256k1 para Bitcoin y Ethereum) protege los pares de claves de las carteras y las firmas de las transacciones. El tamaño compacto de la clave es especialmente importante para la eficiencia del espacio en la cadena de bloques.
  5. Seguridad de los dispositivos IoT: El reducido tamaño de las claves de ECC y su baja carga computacional lo convierten en la opción práctica para sensores IoT, contadores inteligentes y sistemas embebidos con potencia de procesamiento y duración de la batería limitadas.
  6. Intercambio de claves para comunicaciones cifradas: ECDH y ECDHE se utilizan en aplicaciones de mensajería (Signal Protocol utiliza X25519), cifrado de correo electrónico y protocolos VPN para establecer claves de sesión compartidas sin transmitir información confidencial.

Ejemplo de implementación: ECC en un entorno de producción TLS y firma de código.

Una empresa de software implementa ECC en toda su infraestructura de certificados TLS y en su canalización de firma de código:

  1. Migración de certificados TLS: Los certificados TLS RSA-2048 existentes en los servidores web públicos se reemplazan por certificados ECDSA P-256. El tamaño del certificado se reduce de aproximadamente 1,200 bytes a 400 bytes, lo que disminuye la cantidad de bytes intercambiados durante el protocolo de enlace TLS y mejora el tiempo de establecimiento de la conexión en redes móviles.
  2. Configuración del servidor TLS: Los servidores están configurados para admitir TLS 1.3 con ECDHE X25519 como método de intercambio de claves preferido. El secreto directo es ahora obligatorio para todas las conexiones; las sesiones anteriores no se pueden descifrar, incluso si la clave privada ECDSA se ve comprometida posteriormente.
  3. Proceso de firma de código: CodeSign seguro Firma todas las versiones de software utilizando ECDSA P-256. Las claves de firma se almacenan en un sistema validado según FIPS 140-3. HSM, lo que garantiza que la clave privada nunca ingrese a la memoria de la aplicación. El tamaño de la firma ECDSA es de aproximadamente 64 bytes, en comparación con los 384 bytes de RSA-3072, lo que reduce la sobrecarga del artefacto firmado.
  4. Autenticación de servicio interno: La comunicación de servicio a servicio utiliza TLS mutuo (mTLS) con certificados ECDSA P-256 emitidos por una CA interna. Duración corta de los certificados (90 días, gestionados por Administrador de CertSecure) limitar el período de exposición si un certificado se ve comprometido.
  5. Planificación de la migración de PQC: la empresa utiliza CBOM seguro Inventariar todas las instancias de ECC implementadas. Las claves privadas de CA de larga duración y la infraestructura de firma de código se identifican como los primeros candidatos para la migración a ML-DSA (FIPS 204) antes del plazo de descontinuación de NIST para 2030.

Gestión clave para ECC

  • Almacenamiento de claves privadas: Las claves privadas ECC deben almacenarse en hardware HSM con certificación FIPS 140-2 Nivel 2 o superior para claves de CA, claves de firma de código y otras claves de larga duración y alto impacto. Los HSM garantizan que las operaciones criptográficas se realicen dentro de un hardware a prueba de manipulaciones; la clave privada nunca ingresa a la memoria de la aplicación en un servidor que podría verse comprometido.
  • Generación de valores nonce (valor k) en ECDSA: La firma ECDSA requiere un valor aleatorio único k para cada firma. Si k se reutiliza en dos firmas con la misma clave privada, esta puede calcularse algebraicamente a partir de ambas firmas. Esta vulnerabilidad fue explotada en ataques de gran repercusión contra dispositivos de hardware. Para eliminar este riesgo, utilice ECDSA determinista (RFC 6979) o valores aleatorios generados por hardware.
  • Automatización del ciclo de vida de los certificados: Dado que el CA/Browser Forum exige que la duración de los certificados TLS sea de tan solo 47 días para 2029, la gestión manual de certificados no es viable a gran escala. Se requiere una gestión automatizada del ciclo de vida de los certificados para todos los certificados TLS ECC. Véase Administrador de CertSecure para la detección, renovación y aplicación automatizadas de políticas.

CodeSign Secure de Encryption Consulting

CodeSign Secure ayuda a las organizaciones de software a generar confianza con los usuarios finales al garantizar la autenticidad e integridad de las versiones de software mediante ECC. Específicamente, CodeSign Secure utiliza ECDSA con tipos de clave como P-256 y P-384 para crear firmas digitales que verifican que el software no ha sido modificado desde su firma. Capacidades clave relevantes para la implementación de ECC:

  • Almacenamiento de claves respaldado por HSM: Las claves privadas de firma se almacenan en módulos de seguridad de hardware (HSM) validados según la norma FIPS 140-3 (compatibles con los estándares PKCS#11 y FIPS 140-3), lo que garantiza que las claves privadas ECC nunca salgan del hardware a prueba de manipulaciones.
  • Integración de canalización CI/CD: Automatiza los flujos de trabajo de firma dentro de Jenkins, Azure DevOps, GitHub Actions y otras plataformas, eliminando los pasos de firma manual que introducen errores humanos y retrasos.
  • Registro de auditoría e informes de cumplimiento: El registro detallado de cada operación de firma respalda los requisitos de cumplimiento y proporciona evidencia para las auditorías de la política de firma de código.
  • Gobernanza de algoritmos: Garantiza que solo se utilicen curvas ECC y algoritmos hash aprobados para la firma, evitando que los desarrolladores recurran a parámetros débiles por defecto.

Limitaciones de ECC

  • No es seguro frente a la computación cuántica: El algoritmo de Shor invalida el protocolo ECDLP en una computadora cuántica. Esta es la limitación más importante para la infraestructura de larga duración. El NIST propone dejar de usar ECC después de 2030, según la publicación NIST IR 8547. Comience a planificar la migración a PQC ahora para jerarquías de certificados y claves de firma de código.
  • La selección de la curva es de vital importancia: La seguridad depende de las propiedades matemáticas de la curva elegida. Utilice únicamente curvas estandarizadas: NIST P-256, P-384, P-521, X25519 o Ed25519. No implemente curvas ni parámetros personalizados.
  • Requisito de seguridad del nonce de ECDSA: Se debe utilizar ECDSA determinista (RFC 6979) para eliminar el riesgo de reutilización de nonce, lo que expondría la clave privada. Este es un error de implementación conocido que ha comprometido despliegues reales.
  • Limitaciones de compatibilidad heredadas: Algunos sistemas antiguos, dispositivos integrados y software intermedio empresarial no son compatibles con ECC. Los entornos que requieren la máxima compatibilidad con sistemas heredados podrían necesitar RSA durante un período de transición.

Conclusión

La criptografía de curva elíptica (ECC) se erige como el algoritmo criptográfico asimétrico preferido para la mayoría de las nuevas implementaciones debido a su combinación de seguridad robusta, tamaño de clave reducido, operaciones rápidas y bajos requisitos de recursos. ECDSA P-256 y Ed25519 son las opciones recomendadas por el NIST para firmas digitales y TLS; ECDHE proporciona el intercambio de claves secreto directo obligatorio en TLS 1.3. ECC está integrada en TLS 1.3, FIDO2, SSH, S/MIME, firma de código y la mayoría de los protocolos de seguridad modernos.

Advertencia crucial: ECC no es seguro frente a la computación cuántica. El algoritmo de Shor rompe ECDLP. Para infraestructuras con claves de varios años de vigencia, incluidas las claves privadas de CA, la infraestructura de firma de código y las jerarquías TLS de larga duración, las organizaciones deben comenzar a planificar la migración a PQC ahora. El NIST ha estandarizado ML-KEM (FIPS 203) y ML-DSA (FIPS 204) como reemplazos post-cuánticos. Para más información, consulte nuestras publicaciones sobre Cifrado simétrico frente a asimétrico y la Comparación de algoritmos de cifrado.

Preguntas frecuentes

¿Qué es la criptografía de curva elíptica (ECC)?

ECC es un sistema criptográfico de clave pública basado en curvas elípticas sobre campos finitos, definido por y² = x³ + ax + b. Su seguridad se basa en el problema del logaritmo discreto en curvas elípticas (ECDLP), que no tiene solución subexponencial conocida en curvas bien elegidas. Una clave ECC de 256 bits proporciona una seguridad aproximada de 128 bits, equivalente a RSA-3072. Fue propuesto por Neal Koblitz y Victor S. Miller en 1985.

¿Cuál es la diferencia entre ECDH y ECDSA?

ECDH (Elliptic Curve Diffie-Hellman) es un protocolo de intercambio de claves que establece un secreto compartido entre dos partes sin transmitirlo. ECDHE (efímero) proporciona confidencialidad directa; TLS 1.3 lo requiere para todas las conexiones. ECDSA (Elliptic Curve Digital Signature Algorithm) es un algoritmo de firma que utiliza claves privadas para firmar datos y claves públicas para verificar firmas. Se utiliza en certificados TLS, firma de código y autenticación SSH.

¿Cómo se compara ECC con RSA?

ECC P-256 proporciona seguridad de 128 bits con una clave de 32 bytes; RSA requiere 3072 bits para una seguridad equivalente. La firma ECDSA es más rápida que la firma RSA con niveles de seguridad equivalentes. Los certificados ECC tienen aproximadamente un tercio del tamaño de los certificados RSA. Ninguno de los dos es seguro frente a ataques cuánticos; ambos requieren la migración a algoritmos post-cuánticos (ML-KEM, ML-DSA).

¿Qué curvas ECC recomienda el NIST?

La norma NIST FIPS 186-5 especifica: P-256 (seguridad de 128 bits, la más utilizada), P-384 (192 bits, nivel Secreto) y P-521 (256 bits, Alto Secreto). X25519 y Ed25519 son alternativas aprobadas y ampliamente compatibles: X25519 para el intercambio de claves TLS 1.3; Ed25519 como algoritmo de clave SSH preferido.

¿Es ECC seguro frente a la computación cuántica?

No. El algoritmo de Shor en una computadora cuántica resuelve eficientemente el problema ECDLP, rompiendo toda la criptografía basada en ECC. El NIST ha estandarizado alternativas post-cuánticas: ML-KEM (FIPS 203) para el intercambio de claves y ML-DSA (FIPS 204) para firmas. El informe IR 8547 del NIST propone dejar de usar ECC después de 2030 y prohibirlo en nuevas aplicaciones después de 2035.

¿Cuándo se debe utilizar ECC en lugar de RSA?

Para todas las nuevas implementaciones sin restricciones heredadas: certificados TLS (ECDSA P-256), claves SSH (Ed25519), firma de código (ECDSA P-256 o P-384), DNSSEC, dispositivos móviles e IoT. Utilice RSA únicamente cuando los sistemas heredados no admitan ECC o cuando los requisitos de cumplimiento específicos lo exijan.