Криптографически стойкий генератор случайных чисел

Простыми словами

Ключ или токен нельзя надёжно защитить, если следующий результат генератора легко угадать. Для секретов нужен криптографический источник случайности, а не функция для игр или моделирования.

Как применяется

CSPRNG используют для ключей, случайных токенов и параметров, где нужна непредсказуемость. В приложениях выбирают документированный криптографический API ОС или библиотеки. Не подменяют его самостоятельно выбранным seed из времени, PID или номера запроса.

Пример применения

Сервис выпускает токен сброса пароля через криптографический API, задаёт достаточную длину, срок действия и одноразовость. Даже качественный генератор не исправит отсутствие этих ограничений. После клонирования среды отдельно проверяют, что разные экземпляры не повторяют состояние генератора.

Не путать с

  • Обычный PRNGМожет быть пригоден для статистического моделирования, но не обещает непредсказуемость для атакующего.
  • ЭнтропияСвойство исходной случайности; генератор преобразует её, а не создаёт надёжный секрет из заведомо известного seed.
  • NonceМожет требовать лишь уникальности; необходимость случайности определяет конкретная схема.

Как это работает

  1. Выбрать криптографический APIИспользуют поддерживаемый источник ОС или проверенной библиотеки.
  2. Инициализировать состояниеМеханизм получает необходимую случайность и защищает внутреннее состояние.
  3. Получить значениеЗапрашивают объём, достаточный для задачи, и корректно обрабатывают ошибки.
  4. Применить ограниченияДля токенов задают срок и одноразовость; для ключей — безопасное хранение и назначение.

Связанные термины

Частые вопросы

Длинная строка всегда случайна?

Нет. Длина не компенсирует предсказуемое происхождение.

Можно взять текущее время как seed?

Для секретов такой подход недостаточен: время обычно угадывается в небольшом диапазоне.

CSPRNG решает повтор nonce?

Не всегда. При требовании строгой уникальности нужны также правила схемы, учёт объёма и состояния.

Криптографически стойкий генератор случайных чисел (CSPRNG) — механизм получения значений, предсказание которых должно быть практически неосуществимо при выполнении условий его конструкции. Он опирается на защищённое состояние и достаточную начальную случайность; требования зависят от назначения выходных данных.