У BIP39 початкова ентропія перетворюється на фразу; фраза й необов’язкова passphrase потім створюють бінарний seed. BIP32 виводить із нього головний ключ і chain code. Значення та кроки не взаємозамінні; інші формати резервування можуть працювати інакше.
BIP39 призначений для читабельного запису комп’ютерної випадковості, а не речень, вигаданих людиною. Вибір відомої цитати чи власної послідовності слів не дорівнює генеруванню ентропії за визначеним процесом. [BIP39 — Mnemonic generation and seed conversion]
Linux getrandom() за замовчуванням чекає ініціалізації джерела. GRND_NONBLOCK може натомість повернути EAGAIN. Реалізація має враховувати стан і повернену довжину; помилку читання не можна видавати за успішно отриманий вхід. [Linux getrandom — Initialization and return values]
Web Crypto getRandomValues() надає криптографічно безпечні байти цілочисельному масиву; понад 65536 байтів спричиняє QuotaExceededError. Відповідність цьому інтерфейсу сама не перевіряє завантажений код, подальшу обробку чи захист фрази від витоку. [W3C Web Crypto — getRandomValues contract]
BIP39 додає 4 контрольні біти до 128 вхідних бітів для 12 слів; до 256 бітів додає 8 бітів для 24 слів. Ці біти походять із SHA256, а не є додатковою незалежною ентропією. [BIP39 — Mnemonic generation and seed conversion]
BIP39 виводить 512-бітовий seed через PBKDF2-HMAC-SHA512 з 2048 ітераціями. Використовує фразу й сіль із буквального тексту mnemonic та passphrase, обидва в UTF-8 NFKD. Без passphrase береться порожній рядок; довжина не доводить 512 бітів вхідної ентропії. [BIP39 — Mnemonic generation and seed conversion]
BIP32 обробляє seed через HMAC-SHA512 з ключем Bitcoin seed і ділить результат на головний приватний ключ та chain code. Нуль або значення поза дозволеним діапазоном невалідні; весь seed не використовується безпосередньо як один приватний ключ. [BIP32 — Master key generation]
BIP39 публікує вектори з ентропією, фразою й seed, зокрема тестовою passphrase TREZOR. Збіг доводить перетворення даного входу, а не непередбачуваність робочого генератора. Публічний тестовий вхід не повинен бути таємною резервною копією реальних коштів. [BIP39 — Mnemonic generation and seed conversion]
NIST SP 800-90C поєднує джерела ентропії та механізми генерації. Оцінка гаманця має також простежити конкретну версію, обробку помилок і передачу значень наступним крокам. Доказ щодо однієї компоненти не підтверджує безпеку всього процесу чи подальшого зберігання копії. [NIST SP 800-90C — Random bit generator constructions]
Для повної картини прочитайте також Random Number Generator, BIP 39, HD Wallet, Seed Phrase. На цю статтю також посилаються Random Number Generator, CSPRNG, Deterministic RNG, Entropy Mixing.