Creación y verificación de firmas digitales de curva elíptica de OpenSSL

Aprenda a generar y verificar firmas ECDSA mediante OpenSSL con ejemplos prácticos, incluidos los procesos de creación, firma y verificación de claves.

14 Oct
,
2020
24 Jun
,
2025
# min read
Diagrama de firmas de curva elíptica que ilustra los procesos criptográficos y los conceptos de seguridad digital.

Esta guía muestra ejemplos prácticos de generación y verificación de firmas ECDSA (algoritmo de firma digital de curva elíptica) mediante OpenSSL.

Paso 1: Generar claves públicas y privadas de la CE

openssl ecparam -name secp384r1 -genkey -noout -out private.keyopenssl ec -in private.key -pubout -out public.pem

Paso 2: Firmar un hash SHA-256

Si ya tienes un hash SHA-256 que quieres firmar, guárdalo en un archivo:

echo "53edc760b7a66e1f4d8b0c5715725ee447b79c02f7759c52ad3d36eadd29c10a" > hash.hexxxd -r -p hash.hex > hash.bin

A continuación, fírmalo con tu clave privada EC:

openssl pkeyutl -sign -inkey private.key -in hash.bin -out signature.bin

Paso 3: inspeccionar la firma (valores R y S)

openssl asn1parse -in signature.bin -inform der

Esto muestra la estructura ASN.1 interna con dos valores INTEGER: R y S.

Paso 4: Verificar la firma

openssl pkeyutl -verify -inkey public.pem -pubin -in hash.bin -sigfile signature.bin

Opcional: firme y verifique el contenido del archivo sin procesar directamente

Firmar un archivo (p. ej., data.txt):

openssl dgst -sha256 -sign private.key -out signature.bin data.txt

Verifique la firma:

openssl dgst -sha256 -verify public.pem -signature signature.bin data.txt

Extra: lista todas las curvas EC compatibles

openssl ecparam -list_curves

Esto mostrará todas las curvas con nombre compatibles con su versión de OpenSSL, incluidas las familias NIST, SECG y Brainpool.

More latest articles

See all news
See all news