El procedimiento (§3.2) toma como semilla de HMAC la clave privada y el hash reducido módulo el orden del grupo (int2octets(x) ‖ bits2octets(h1)), ejecuta los pasos de actualización de HMAC-DRBG y extrae candidatos hasta que uno cae en 1…q−1. La misma clave y el mismo mensaje dan siempre el mismo k y, por tanto, la misma firma byte a byte. Los verificadores no pueden distinguirla: la salida es una firma ECDSA o DSA corriente.
FIPS 186-5 aprueba el método como «ECDSA determinista» (§6.3.2, apéndice A.3.3). Elimina el fallo por un RNG defectuoso que causó la filtración de la clave de la PlayStation 3 y muchas filtraciones de claves de billeteras, y hace reproducibles los vectores de prueba: el apéndice A.2 del RFC 6979 incluye vectores para DSA, las curvas P de NIST y las curvas K y B.
La contrapartida es la exposición a fallos inducidos y a canales laterales: firmar dos veces el mismo mensaje con un fallo inducido puede filtrar la clave, así que las variantes hedged mezclan aleatoriedad adicional en la misma derivación (el §3.6 permite datos adicionales). Opciones de las bibliotecas: -pkeyopt nonce-type:1 en OpenSSL 3.2 y posteriores; ec.ECDSA(hashes.SHA256(), deterministic_signing=True) en cryptography de Python; @noble/curves firma de forma determinista por defecto y ofrece la opción extraEntropy para el hedging.