Dashboard

Случайность: Опасная vs Безопасная

Демонстрация того, почему LCG небезопасны для криптографии по сравнению с CSPRNG.

LCG

Линейный конгруэнтный метод

Insecure
Generate to start

CSPRNG

Криптографически стойкий PRNG

Secure
Generate for secure random

Сгенерировано с использованием энтропии ОС (шум). Простая математическая формула не связывает это число с предыдущими.

Разбор уязвимости

Почему LCG небезопасен?

Чистая математика

Вывод LCG строго детерминирован: $X_{n+1} = (a \cdot X_n + c) \pmod m$. Здесь нет энтропии или реальной случайности.

Восстановление состояния

Наблюдение всего нескольких значений позволяет злоумышленнику математически вычислить множитель $a$, приращение $c$ и модуль $m$.

Почему CSPRNG безопасен?

Энтропия ОС

CSPRNG инициализируются непредсказуемыми физическими данными (движения мыши, тепловой шум, тайминги прерываний), собранными ядром ОС.

Односторонние функции

Вывод пропускается через криптографические функции (например, AES или ChaCha20), которые невозможно обратить для получения внутреннего состояния.