484 / 691TRNG

True Random Number Generator

Фізичний генератор випадкових чисел

TRNG використовує фізичний процес як джерело невизначеності. Слово «true» не замінює оцінювання ентропії, перевірок збоїв і шляху надходження виходу до гаманця.

True Random Number Generator отримує випадковість із фізичного джерела, а не лише розгортає збережений стан. Джерело шуму, вибірка, обробка та інтерфейс застосунку — різні частини. Апаратне походження саме не гарантує рівномірних чи незалежних бітів.

NIST SP 800-90B оцінює джерело ентропії з джерелом шуму, необов’язковою обробкою й тестами стану. Оцінюють підтверджену невизначеність вибірок, не лише кількість байтів. Самої назви фізичного явища для такої оцінки недостатньо. [NIST SP 800-90B — Entropy sources, conditioning and health tests]

Conditioning може зменшити зміщення й зосередити наявну ентропію в коротшому виході. NIST SP 800-90B обмежує заявлену ентропію за входом і механізмом. Випадковий на вигляд геш сам не доводить непередбачуваності початкових вибірок. [NIST SP 800-90B — Entropy sources, conditioning and health tests]

Repetition Count Test і Adaptive Proportion Test у NIST SP 800-90B відстежують повторення та незвичні частоти вибірок. Це не універсальний доказ безпеки. Після виявлення стійкого збою джерело не має продовжувати звичайне видавання результатів. [NIST SP 800-90B — Entropy sources, conditioning and health tests]

NIST SP 800-90B пов’язує оцінку з технічними й робочими умовами конкретного джерела. Тести перезапуску доповнюють довгий безперервний запис. Успішна окрема вибірка не охоплює автоматично всі пристрої, середовища чи зміни прошивки. [NIST SP 800-90B — Entropy sources, conditioning and health tests]

Посібник Intel DRNG розрізняє RDRAND, що читає вихід детермінованого генератора, і RDSEED, що надає оброблену ентропію для ініціалізації. Апаратна інструкція тому не обов’язково означає пряме читання необробленого фізичного шуму. [Intel DRNG guide — RDRAND, RDSEED and CF]

Intel вимагає перевіряти CF для RDRAND і RDSEED: 1 означає доступний результат, 0 — недоступний. Числовий нуль у цільовому регістрі сам не є перевіркою успіху. Підтримка інструкції й успіх окремого виклику — різні речі. [Intel DRNG guide — RDRAND, RDSEED and CF]

Linux hw_random попереджає: дані /dev/hwrng не перевіряються тестами якості в цьому символьному інтерфейсі, а несправне обладнання може повертати хибні дані. Читання пристрою саме не доводить якість ентропії чи безпечну інтеграцію застосунку. [Linux kernel — Hardware random number generator interface]

NIST SP 800-90C поєднує джерела ентропії та механізми генерації в повні конструкції. Потрібно вказати компонент, версію, тести, збої й подальшу обробку гаманця. Сертифікація джерела не оцінює весь гаманець і не захищає пізнішу резервну копію. [NIST SP 800-90C — Complete RBG constructions]

Для повної картини прочитайте також Cryptographic Entropy, Random Number Generator, CSPRNG, Entropy Mixing. На цю статтю також посилаються Entropy Mixing.

DOC · 001NIST SP 800-90B — Entropy sources, conditioning and health testsСпецифікація ↗DOC · 002Intel DRNG guide — RDRAND, RDSEED and CFДокументація ↗DOC · 003Linux kernel — Hardware random number generator interfaceДокументація ↗DOC · 004NIST SP 800-90C — Complete RBG constructionsСпецифікація ↗
Спочатку джерела · Не інвестиційна порада