Saltar al contenido
ecdsa.com

ECDSA (algoritmo de firma digital de curva elíptica)

La variante de DSA sobre curvas elípticas, especificada en FIPS 186-5 y SEC 1, cuya firma es un par de enteros (r, s) calculado con un escalar privado y un nonce secreto nuevo.
También se escribeElliptic Curve Digital Signature AlgorithmECDSA signature

Las claves son un escalar privado d en 1…n−1 y el punto público Q = d·G, donde G es el punto base de la curva y n, su orden primo. Para firmar un hash z, el firmante elige un nonce secreto k, toma como r la coordenada x de k·G módulo n y calcula s = k⁻¹·(z + r·d) mod n; el verificador calcula u₁ = z·s⁻¹ y u₂ = r·s⁻¹ y comprueba que la coordenada x de u₁·G + u₂·Q es igual a r (FIPS 186-5 §6.4). El hash se trunca a la longitud en bits de n, así que SHA-512 con P-256 solo usa sus 256 bits más a la izquierda.

Identificadores habituales: en X.509, ecdsa-with-SHA256 es 1.2.840.10045.4.3.2 (SHA-384: …4.3.3, SHA-512: …4.3.4); en JOSE, ES256, ES384, ES512 y ES256K; en COSE, −7, −35, −36 y −47; en TLS 1.3, ecdsa_secp256r1_sha256 (0x0403). Las curvas habituales son P-256, P-384, P-521 y, para las cadenas de bloques, secp256k1.

La misma firma circula en dos codificaciones: r‖s en bruto, de longitud fija (64 bytes para P-256; JOSE, WebCrypto, COSE), y una SEQUENCE ASN.1 DER de dos INTEGER (70–72 bytes para P-256; X.509, TLS, OpenSSL, Java). Para cada (r, s) válido, el par (r, n − s) también se verifica, y por eso las cadenas de bloques exigen firmas low-S.

El nonce es el punto débil: un k repetido o ligeramente sesgado revela la clave privada, así que las bibliotecas modernas lo derivan de forma determinista (RFC 6979, aprobado por FIPS 186-5 §6.3.2) o le añaden aleatoriedad (hedging). En un núcleo de un Apple M4 Max, OpenSSL 3.6.5 hace unas 87.000 firmas P-256 y 29.000 verificaciones por segundo. NIST IR 8547 (borrador público inicial) propone prohibir ECDSA con cualquier nivel de seguridad después de 2035 porque el algoritmo de Shor lo rompe.

Estándares y referencias

Herramientas

Comparaciones

Términos

Bibliotecas

Curvas

Artículos

Recetas

Errores

Todos los términos