Seed: инициализация генератора
Начальное значение (seed) определяет всю последовательность псевдослучайных чисел.
Требования к seed
Достаточная энтропия: минимум 128 бит для игровых систем, 256 бит для криптографии. Непредсказуемость: невозможность угадать seed. Уникальность: разные seed для разных экземпляров генератора.
Методы генерации seed
Комбинирование источников: время + PID + сетевые данные + энтропия ОС. Использование /dev/urandom или CryptGenRandom. Hardware TRNG для критичных систем. Комбинация нескольких слабых источников через hash-функцию.
Проблемы плохого seeding
Предсказуемость: атакующий может восстановить seed и всю последовательность. Коллизии: одинаковые seed на разных серверах. Время-зависимость: seed только от времени легко угадать.
Best practices
Использовать CSPRNG для генерации seed. Регулярный re-seeding (каждые N значений или T времени). Логирование фактов seeding без самих значений. Разные seed для разных целей (сессии, игровая механика, криптография).