483 / 691PRNG

Deterministic RNG

Gerador determinístico de números pseudoaleatórios

Um gerador determinístico repete resultados com o mesmo estado e entradas. Isso permite testes reproduzíveis; a segurança criptográfica exige também mecanismo adequado e segredo desconhecido do adversário.

Deterministic RNG produz uma sequência por um algoritmo fixo. Seeds iguais não bastam para comparar implementações quaisquer: algoritmo, parâmetros, ordem das chamadas e entradas adicionais também importam. Determinismo não significa fraqueza nem prova automaticamente segurança.

NIST SP 800-90A descreve um DRBG com estado, inicialização, geração e reseeding. A reprodução exige o mesmo mecanismo, estado e sequência de entradas. Entropia nova ou outra entrada adicional pode mudar a saída apesar da mesma seed original. [NIST SP 800-90A Rev. 1 — State, inputs and reseeding]

RFC 4086 alerta que geradores tradicionais de simulação podem não resistir a um adversário. Uma sequência forte criptograficamente deve permanecer imprevisível mesmo com parte conhecida. Período longo ou teste estatístico bem-sucedido, isoladamente, não comprova essa propriedade. [RFC 4086 — Pseudorandom sequences and unpredictability]

libsodium randombytes_buf_deterministic() devolve a mesma sequência para a mesma seed e é útil em testes. Uma seed de teste pública também pode ser reproduzida por outros. Essa entrada não é material secreto para uma carteira real. [libsodium — Deterministic output and VM snapshots]

BIP32 cria uma árvore de chaves a partir de uma seed; o caminho de derivação também define o ramo específico. Restaurar a mesma seed e caminho permite recuperar as mesmas chaves. Outro endereço derivado não acrescenta, por si só, entropia independente ao segredo original. [BIP32 — Hierarchical deterministic key derivation]

BIP39 deriva uma seed de mnemonic e passphrase usando PBKDF2. As mesmas palavras com outra passphrase produzem outro resultado. A recuperação depende das entradas completas e da derivação posterior de chaves, não apenas da lista de palavras. [BIP39 — Mnemonic and passphrase to seed]

RFC 6979 cria o valor de assinatura k deterministicamente a partir da chave secreta e da mensagem. O documento mantém explicitamente a necessidade de aleatoriedade ao gerar o par de chaves. Retirá-la desta etapa de assinatura não elimina a necessidade de um segredo inicial forte. [RFC 6979 — Deterministic signing and initial key generation]

libsodium avisa que restaurar um snapshot de máquina virtual pode repetir a saída do gerador. Isso difere da recuperação deliberada de chaves BIP32. Distinga recuperar a identidade da carteira de repetir acidentalmente valores recém-solicitados. [libsodium — Deterministic output and VM snapshots] [BIP32 — Hierarchical deterministic key derivation]

Registe algoritmo, versão, entradas, comportamento de reseeding e vetores de teste esperados. Coincidir com um vetor confirma aquele exemplo, não a qualidade da entropia do aparelho real. NIST SP 800-90A separa o mecanismo dos requisitos de sua entropia de entrada. [NIST SP 800-90A Rev. 1 — State, inputs and reseeding]

Para ter uma visão mais completa, leia este verbete junto com CSPRNG, Random Number Generator, HD Wallet, Seed Generation. Também há referências a este verbete em CSPRNG, COLDCARD RNG Incident (2026).

DOC · 001NIST SP 800-90A Rev. 1 — State, inputs and reseedingEspecificação ↗DOC · 002RFC 4086 — Pseudorandom sequences and unpredictabilityEspecificação ↗DOC · 003libsodium — Deterministic output and VM snapshotsDocumentação ↗DOC · 004BIP32 — Hierarchical deterministic key derivationEspecificação ↗DOC · 005BIP39 — Mnemonic and passphrase to seedEspecificação ↗DOC · 006RFC 6979 — Deterministic signing and initial key generationEspecificação ↗
Fontes em primeiro lugar · Não é recomendação de investimento