Информация об изменениях

Сообщение Re[5]: Программа для шифрования с закрытым ключом от 06.03.2025 11:26

Изменено 06.03.2025 11:58 L_G

Re[5]: Программа для шифрования с закрытым ключом
K>Прошу подсказать, как сгенерировать действительно более-менее случайное число (криптостойкий генератор случайных чисел).

Какой бы программная функция не была, всё, что она сможет выдать без источника реальной случайности — это только псевдослучайные последовательности.
Источники реальной случайности — это АЦП, в том числе видеокамера и аудиокарта (без разницы, что поступает на их аналоговые входы).
(На худой конец — датчики температуры проца/материнки, но поток данных слишком медленный. Не говоря уж о мыши и клавиатуре, хаотически мучиемых пользователем — но для получения одного истинно случайного числа и они годились.)
Т.к. АЦП всегда шумят, самым случайным будет младший бит каждого субпикселя/сэмпла. Но надежнее в цикле брать куски сырых данных в несколько Кбайт и хэшировать их в 32-64 бита — этим вся случайность с этих килобайт будет как бы собрана и упакована в эти биты.

Возможно, на практике достаточно так прохешировать свою коллекцию фильмов/фоток/etc (чтобы не возиться с видео/аудиозаписью). Но перфекционист это не одобрит.
Re[5]: Программа для шифрования с закрытым ключом
K>Прошу подсказать, как сгенерировать действительно более-менее случайное число (криптостойкий генератор случайных чисел).

Тебе вроде нужно не число, а последовательность длиной в 4 Гб!

Какой бы программная функция не была, всё, что она сможет выдать без источника реальной случайности — это только псевдослучайные последовательности.
Источники реальной случайности — это АЦП, в том числе видеокамера и аудиокарта (без разницы, что поступает на их аналоговые входы).
(На худой конец — датчики температуры проца/материнки, но поток данных слишком медленный. Не говоря уж о мыши и клавиатуре, хаотически мучиемых пользователем — но для получения одного истинно случайного числа и они годились.)
Т.к. АЦП всегда шумят, самым случайным будет младший бит каждого субпикселя/сэмпла. Но надежнее в цикле брать куски сырых данных в несколько Кбайт и хэшировать их в 32-64 бита — этим вся случайность с этих килобайт будет как бы собрана и упакована в эти биты.

Возможно, на практике достаточно так прохешировать свою коллекцию фильмов/фоток/etc (чтобы не возиться с видео/аудиозаписью). Но перфекционист это не одобрит.

Еще на практике достаточно взять несколько разных псевдослучайных генераторов и проксорить между собой их результаты. (Во избежание — потом стереть эту прогу и исходники.)
Еще лучше даже плохую псевдослучайную последовательность как следует случайно перетасовать (для этого есть свои алгоритмы).