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 для разных целей (сессии, игровая механика, криптография).