483 / 691PRNG

Deterministic RNG

Deterministický generátor pseudonáhodných čísel

Deterministický generátor opakuje výsledek při stejném stavu a stejných vstupech. To umožňuje reprodukovatelné testy, ale kryptografická bezpečnost navíc vyžaduje vhodný mechanismus a tajemství, které protivník nezná.

Deterministic RNG vytváří posloupnost podle pevného algoritmu. Shoda seedu sama nestačí k porovnání dvou libovolných implementací: záleží i na algoritmu, parametrech, pořadí volání a dalších vstupech. Determinismus není synonymem slabého generátoru ani automatickým důkazem bezpečnosti.

NIST SP 800-90A popisuje stavový DRBG s inicializací, generováním a reseedingem. Reprodukovatelnost se vztahuje na stejný mechanismus, stav a posloupnost vstupů. Nová entropie nebo odlišný další vstup mohou výstup změnit i při stejném původním seedu. [NIST SP 800-90A Rev. 1 — State, inputs and reseeding]

RFC 4086 upozorňuje, že tradiční generátory pro simulace nemusí odolat protivníkovi. Kryptograficky silná posloupnost má zůstat nepředvídatelná při znalosti části výstupu. Dlouhá perioda ani úspěšný statistický test tuto vlastnost samy neprokazují. [RFC 4086 — Pseudorandom sequences and unpredictability]

libsodium randombytes_buf_deterministic() vrací pro stejný seed stejnou posloupnost a hodí se k testování. Veřejný testovací seed je reprodukovatelný také pro ostatní. Takový vstup proto není tajným materiálem pro skutečnou peněženku. [libsodium — Deterministic output and VM snapshots]

BIP32 vytváří strom klíčů z jednoho seedu; konkrétní větev určuje i odvozovací cesta. Obnovení stejného seedu a stejné cesty umožňuje znovu získat stejné klíče. Další odvozená adresa sama nepřidává nezávislou entropii původnímu tajemství. [BIP32 — Hierarchical deterministic key derivation]

BIP39 odvozuje seed z mnemonic a passphrase pomocí PBKDF2. Stejná slova s jinou passphrase vedou k jinému výsledku. Obnovitelnost proto nelze posuzovat pouze podle seznamu slov; záleží na úplných vstupech i následném odvozování klíčů. [BIP39 — Mnemonic and passphrase to seed]

RFC 6979 vytváří podpisovou hodnotu k deterministicky z tajného klíče a zprávy. Dokument výslovně zachovává potřebu náhodnosti při generování páru klíčů. Odstranění nového náhodného vstupu z tohoto podpisového kroku neodstraňuje potřebu kvalitního počátečního tajemství. [RFC 6979 — Deterministic signing and initial key generation]

libsodium upozorňuje, že obnova virtuálního stroje ze snímku může zopakovat výstup generátoru. Jde o jinou situaci než záměrná obnova klíčů BIP32. Při kontrole rozlišujte obnovu identity peněženky od nechtěného opakování čerstvě požadovaných hodnot. [libsodium — Deterministic output and VM snapshots] [BIP32 — Hierarchical deterministic key derivation]

Zaznamenejte algoritmus, verzi, vstupy, chování při reseedingu a očekávané testovací vektory. Shoda s vektorem potvrzuje daný příklad, nikoli kvalitu zdroje entropie ve skutečném zařízení. NIST SP 800-90A odděluje mechanismus od požadavků na jeho vstupní entropii. [NIST SP 800-90A Rev. 1 — State, inputs and reseeding]

Pro nejúplnější obraz čtěte toto heslo společně s CSPRNG, Random Number Generator, HD Wallet, Seed Generation. Opačným směrem na něj odkazují také CSPRNG, COLDCARD RNG Incident (2026).

DOC · 001NIST SP 800-90A Rev. 1 — State, inputs and reseedingSpecifikace ↗DOC · 002RFC 4086 — Pseudorandom sequences and unpredictabilitySpecifikace ↗DOC · 003libsodium — Deterministic output and VM snapshotsDokumentace ↗DOC · 004BIP32 — Hierarchical deterministic key derivationSpecifikace ↗DOC · 005BIP39 — Mnemonic and passphrase to seedSpecifikace ↗DOC · 006RFC 6979 — Deterministic signing and initial key generationSpecifikace ↗
Primární zdroje · Nejde o investiční doporučení