Смешивание энтропии обрабатывает несколько входов в общее состояние или результат. Нужно различать внесённые данные, подтверждённую энтропию и последующее детерминированное развёртывание. Два названия интерфейсов не обязательно означают два независимых источника.
NIST SP 800-90B отмечает, что совместную энтропию зависимых источников бывает трудно оценить. Время прихода пакетов и обращения к диску может быть связано. Поэтому отдельные оценки нельзя просто сложить без документированной модели. [NIST SP 800-90B — Additional noise sources]
RFC 4086 использует XOR как простой пример смешивания. Независимый равномерный вход сохраняет равномерность результата, но копия того же входа даёт X XOR X = 0. Это иллюстрация зависимости, а не рецепт создания кошелька. [RFC 4086 — Mixing and randomness requirements]
Сильное смешивание может сосредоточить имеющуюся неопределённость; детерминированный хеш известных входов остаётся предсказуемым. RFC 4086 различает смешивание и развёртывание. Длина результата и добавление известной константы не доказывают соответствующего количества новой энтропии. [RFC 4086 — Mixing and randomness requirements]
NIST SP 800-90B разрешает присоединять дополнительные шумовые входы к основному источнику через одобренное кондиционирование, но не засчитывает им дополнительную энтропию в этом режиме. Это правило оценки, а не утверждение, что другие источники никогда не помогают. [NIST SP 800-90B — Additional noise sources]
В OpenSSL 3.5 RAND_add() смешивает num байтов; randomness оценивает энтропию в байтах от нуля до num. Длина буфера не обосновывает оценку. Генератор по умолчанию обычно автоматически инициализируется и обновляется из системных источников. [OpenSSL 3.5 — RAND_add and FIPS reseeding]
Документация OpenSSL 3.5 указывает: в режиме FIPS данные приложения служат лишь дополнительным входом, а не доверенным источником энтропии. Подмешивание не считается полным reseed. Сам вызов RAND_add() поэтому не подтверждает такого обновления. [OpenSSL 3.5 — RAND_add and FIPS reseeding]
RFC 5869 различает HKDF-Extract и HKDF-Expand. Первый концентрирует входную энтропию, второй выводит требуемую длину. Параметр info связывает результат с контекстом приложения; он не заменяет качественный исходный материал и не доказывает новую энтропию. [RFC 5869 — HKDF extraction, expansion and independence]
Проверка должна определить происхождение входов, зависимости, возможности атакующего и конкретный механизм. RFC 5869 прямо рассматривает независимость и манипулирование солью. Перечень источников или тест случайного вида не доказывает безопасность конструкции после отказа источника. [RFC 5869 — HKDF extraction, expansion and independence]
Для полной картины прочитайте эту статью вместе с Cryptographic Entropy, CSPRNG, True Random Number Generator, Seed Generation. На эту статью также ссылаются Dice Roll Entropy, True Random Number Generator.