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.