ECDSA (*Elliptic Curve Digital Signature Algorithm*, en español: Algoritmo de Firma Digital de Curva Elíptica) es un algoritmo de firma digital basado en criptografía de curva elíptica. Constituye una variante del algoritmo DSA que emplea operaciones sobre puntos de curvas elípticas en lugar de las exponenciaciones modulares utilizadas por DSA, basadas en el problema del logaritmo discreto en grupos multiplicativos.
La seguridad de ECDSA se fundamenta en la dificultad computacional del problema del logaritmo discreto sobre curvas elípticas (*Elliptic Curve Discrete Logarithm Problem*, ECDLP). La principal ventaja de este esquema es que requiere números de tamaños significativamente menores para brindar el mismo nivel de seguridad que DSA o RSA, lo que se traduce en una mayor eficiencia en términos de almacenamiento, ancho de banda y tiempo de cómputo.
Existen dos tipos principales de curvas elípticas según el campo finito sobre el cual se definan: curvas sobre campos primos GF(p) y curvas sobre campos binarios GF(2m). En la práctica, los estándares modernos favorecen el uso de curvas sobre campos primos debido a su mejor interoperabilidad y a consideraciones de seguridad e implementación.
La criptografía de curva elíptica fue propuesta de manera independiente por Neal Koblitz y Victor S. Miller en 1985 como una alternativa a los sistemas criptográficos basados en exponenciación modular. A partir de estas ideas, se desarrollaron esquemas de firma digital basados en curvas elípticas durante la década de 1990.
ECDSA fue estandarizado formalmente por el National Institute of Standards and Technology (NIST) en el estándar FIPS 186 y por Certicom en las especificaciones SEC. Desde entonces, ha sido adoptado ampliamente en estándares internacionales, protocolos de seguridad y aplicaciones comerciales.
ECDSA y DSA se basan en el problema del logaritmo discreto y comparten una estructura matemática similar. Sin embargo, DSA opera sobre grupos multiplicativos de enteros módulo un primo grande, mientras que ECDSA utiliza grupos de puntos sobre curvas elípticas, permitiendo tamaños de clave mucho menores para un nivel de seguridad equivalente.
A diferencia de RSA, cuya seguridad se basa en la dificultad de la factorización de números enteros grandes, ECDSA se fundamenta en el ECDLP. Para niveles de seguridad comparables, ECDSA suele ofrecer un mejor rendimiento computacional y menor consumo de recursos, especialmente en sistemas con restricciones de memoria o potencia de cálculo.
ECDSA es ampliamente utilizado en sistemas y protocolos de seguridad modernos, entre los que se incluyen: