483 / 691PRNG

Deterministic RNG

Deterministic pseudorandom number generator

A deterministic generator repeats results with the same state and inputs. This enables reproducible tests, while cryptographic security additionally requires a suitable mechanism and a secret unknown to an adversary.

Deterministic RNG produces a sequence using a fixed algorithm. Matching seeds alone cannot compare arbitrary implementations: algorithm, parameters, call order and additional inputs matter too. Determinism is neither a synonym for a weak generator nor automatic proof of security.

NIST SP 800-90A describes a stateful DRBG with initialization, generation and reseeding. Reproducibility concerns the same mechanism, state and sequence of inputs. Fresh entropy or different additional input can change output despite the same original seed. [NIST SP 800-90A Rev. 1 — State, inputs and reseeding]

RFC 4086 warns that traditional simulation generators may not resist an adversary. A cryptographically strong sequence should remain unpredictable when part of its output is known. A long period or successful statistical test alone does not establish this property. [RFC 4086 — Pseudorandom sequences and unpredictability]

libsodium randombytes_buf_deterministic() returns the same sequence for the same seed and is useful for testing. A public test seed is reproducible by others too. Such input is therefore not secret material for a real wallet. [libsodium — Deterministic output and VM snapshots]

BIP32 creates a tree of keys from one seed; the derivation path also identifies a particular branch. Restoring the same seed and path allows the same keys to be recovered. Another derived address does not itself add independent entropy to the original secret. [BIP32 — Hierarchical deterministic key derivation]

BIP39 derives a seed from a mnemonic and passphrase using PBKDF2. The same words with a different passphrase produce a different result. Recoverability therefore depends on complete inputs and subsequent key derivation, not only the word list. [BIP39 — Mnemonic and passphrase to seed]

RFC 6979 creates the signing value k deterministically from the secret key and message. The document explicitly retains the need for randomness when generating a key pair. Removing fresh randomness from this signing step does not remove the need for a strong initial secret. [RFC 6979 — Deterministic signing and initial key generation]

libsodium warns that restoring a virtual machine snapshot may repeat generator output. This differs from deliberate BIP32 key recovery. An assessment should distinguish recovering wallet identity from accidentally repeating newly requested values. [libsodium — Deterministic output and VM snapshots] [BIP32 — Hierarchical deterministic key derivation]

Record algorithm, version, inputs, reseeding behavior and expected test vectors. Matching a vector confirms that example, not the quality of entropy in a real device. NIST SP 800-90A separates the mechanism from requirements on its input entropy. [NIST SP 800-90A Rev. 1 — State, inputs and reseeding]

For the clearest picture, read this entry together with CSPRNG, Random Number Generator, HD Wallet, Seed Generation. The reverse links also lead from CSPRNG, COLDCARD RNG Incident (2026).

DOC · 001NIST SP 800-90A Rev. 1 — State, inputs and reseedingSpecification ↗DOC · 002RFC 4086 — Pseudorandom sequences and unpredictabilitySpecification ↗DOC · 003libsodium — Deterministic output and VM snapshotsDocumentation ↗DOC · 004BIP32 — Hierarchical deterministic key derivationSpecification ↗DOC · 005BIP39 — Mnemonic and passphrase to seedSpecification ↗DOC · 006RFC 6979 — Deterministic signing and initial key generationSpecification ↗
Source-first · No investment advice