483 / 691PRNG

Deterministic RNG

Детерминированный генератор псевдослучайных чисел

Детерминированный генератор повторяет результаты при одинаковых состоянии и входах. Это позволяет воспроизводить тесты, но криптографическая безопасность дополнительно требует подходящего механизма и неизвестного противнику секрета.

Deterministic RNG создаёт последовательность по фиксированному алгоритму. Совпадения seed недостаточно для сравнения произвольных реализаций: важны также алгоритм, параметры, порядок вызовов и дополнительные входы. Детерминизм не означает слабость и не доказывает безопасность автоматически.

NIST SP 800-90A описывает DRBG с состоянием, инициализацией, генерацией и reseeding. Воспроизводимость относится к одинаковым механизму, состоянию и последовательности входов. Свежая энтропия или другой дополнительный вход могут изменить выход при том же исходном seed. [NIST SP 800-90A Rev. 1 — State, inputs and reseeding]

RFC 4086 предупреждает, что обычные генераторы для моделирования могут не противостоять противнику. Криптографически сильная последовательность должна оставаться непредсказуемой при известной части выхода. Сами по себе большой период или успешный статистический тест этого не доказывают. [RFC 4086 — Pseudorandom sequences and unpredictability]

libsodium randombytes_buf_deterministic() возвращает одинаковую последовательность для одинакового seed и полезна для тестов. Публичный тестовый seed могут воспроизвести и другие. Поэтому такой вход не является секретным материалом для настоящего кошелька. [libsodium — Deterministic output and VM snapshots]

BIP32 создаёт дерево ключей из одного seed; конкретную ветвь определяет также путь вывода. Восстановление тех же seed и пути позволяет получить те же ключи. Следующий выведенный адрес сам не добавляет независимой энтропии исходному секрету. [BIP32 — Hierarchical deterministic key derivation]

BIP39 выводит seed из mnemonic и passphrase через PBKDF2. Те же слова с другой passphrase дают другой результат. Возможность восстановления зависит от полных входов и последующего вывода ключей, а не только от списка слов. [BIP39 — Mnemonic and passphrase to seed]

RFC 6979 создаёт значение подписи k детерминированно из секретного ключа и сообщения. Документ прямо сохраняет необходимость случайности при генерации пары ключей. Её исключение из этого шага подписи не устраняет потребность в сильном начальном секрете. [RFC 6979 — Deterministic signing and initial key generation]

libsodium предупреждает, что восстановление снимка виртуальной машины может повторить выход генератора. Это отличается от намеренного восстановления ключей BIP32. Различайте восстановление идентичности кошелька и случайное повторение вновь запрошенных значений. [libsodium — Deterministic output and VM snapshots] [BIP32 — Hierarchical deterministic key derivation]

Запишите алгоритм, версию, входы, поведение reseeding и ожидаемые тестовые векторы. Совпадение с вектором подтверждает этот пример, не качество энтропии реального устройства. NIST SP 800-90A отделяет механизм от требований к его входной энтропии. [NIST SP 800-90A Rev. 1 — State, inputs and reseeding]

Для полной картины прочитайте эту статью вместе с CSPRNG, Random Number Generator, HD Wallet, Seed Generation. На эту статью также ссылаются CSPRNG, COLDCARD RNG Incident (2026).

DOC · 001NIST SP 800-90A Rev. 1 — State, inputs and reseedingСпецификация ↗DOC · 002RFC 4086 — Pseudorandom sequences and unpredictabilityСпецификация ↗DOC · 003libsodium — Deterministic output and VM snapshotsДокументация ↗DOC · 004BIP32 — Hierarchical deterministic key derivationСпецификация ↗DOC · 005BIP39 — Mnemonic and passphrase to seedСпецификация ↗DOC · 006RFC 6979 — Deterministic signing and initial key generationСпецификация ↗
Сначала источники · Не является инвестиционной рекомендацией