No ECDSA, o signatário escolhe k no intervalo 1…n−1, calcula o ponto kG e toma a coordenada x dele módulo n como r; depois, s = k⁻¹·(z + r·d) mod n, em que z é o hash truncado da mensagem e d, a chave privada (FIPS 186-5 §6.4.1). Como s é linear tanto em k quanto em d, conhecer o k de uma única assinatura basta para obter a chave privada: d = (s·k − z)·r⁻¹ mod n. Por isso, o FIPS 186-5 §6.3 exige um k novo para cada assinatura, protegido como a própria chave.
A reutilização é igualmente fatal e fácil de detectar: duas assinaturas sob a mesma chave com o mesmo r dão k = (z₁ − z₂)·(s₁ − s₂)⁻¹ mod n e, em seguida, d. Foi assim que a chave de assinatura do PlayStation 3 foi extraída em 2010 e que muitas carteiras de blockchain foram esvaziadas. O nonce nem precisa se repetir: alguns bits de viés ou de vazamento por assinatura, reunidos ao longo de assinaturas suficientes, permitem que a redução de reticulados resolva o problema do número oculto e recupere a chave.
As bibliotecas modernas derivam k de forma determinística da chave privada e do hash da mensagem (RFC 6979, permitida pelo FIPS 186-5 §6.3.2) ou usam uma variante hedged que mistura aleatoriedade nova na mesma derivação. O EdDSA incorpora a ideia ao algoritmo: o nonce do Ed25519 é o SHA-512 de uma metade da chave secreta e da mensagem (RFC 8032 §5.1.6). O verificador de reutilização de nonce procura valores r repetidos em um conjunto de assinaturas.
Fora das assinaturas, “nonce” significa qualquer valor usado uma única vez: o IV de 96 bits do AES-GCM, a claim nonce do OpenID Connect, o cabeçalho Replay-Nonce do ACME. Esses valores precisam ser únicos e novos, mas não secretos; o nonce de assinatura é incomum por precisar das duas coisas.