LINUX.ORG.RU

Генератор криптостойкой псевдослучайной последовательности


0

0

Посоветуйте subj, желательно для 32-битных чисел. Какая-то запредельная надежность не требуется, следовательно, методов, использующих большие простые числа, хотелось бы избежать. Насколько хорошим вариантом будет взять какой-нибудь MT19937 и устанавливать новый seed из /dev/random до того, как будет достигнут период последовательности?


> до того, как будет достигнут период последовательности?

Точнее не период, а отрезок значений, достаточный для предсказания всех следующих

mannaz
() автор топика
Ответ на: комментарий от quickquest

Интересует прежде всего личный опыт использования существующих реализаций тех или иных алгоритмов для задач, не требующих совсем уж высокой надежности. Шнайер и Кнут с интересом читались в ~20, повторить это сегодня я, к сожалению, не готов - свою задачу эти великолепные книги уже выполнили.

mannaz
() автор топика
Ответ на: комментарий от mannaz

> свою задачу эти великолепные книги уже выполнили.

Берешь любой сисмметричный шифр, скажем AES, берешь случайный ключ и шифруешь последовательность 0,1,2,3,4,.....

на выходе имеешь случайные числа

dilmah ★★★★★
()
Ответ на: комментарий от mv

Период гигантский - да, но последовательность можно предсказать, проанализировав всего ~500 значений (не помню точно). Я криво сформулировал мысль, см. первый ответ в топике.

mannaz
() автор топика
Ответ на: комментарий от dilmah

А вот это уже интересно, спасибо. Как-то не подумал даже. Можно поступить проще и пройтись по последовательности каким-нибудь хорошим хешем.

mannaz
() автор топика
Ответ на: комментарий от cathode

> А от ГОСТа взять генератор почему взять не хочешь?

А чем он хорош/знаменит? Я, в принципе, уже сделал следующим образом:
- MT19937 инициализируется из /dev/random
- Получаемая последовательность хешируется md5 (соль по вкусу)

mannaz
() автор топика

ИМХО, лучше, таки, взять генератор случайной последовательности без «псевдо» :)

KRoN73 ★★★★★
()
Ответ на: комментарий от mannaz

>> А чем он хорош/знаменит?

У него достаточно большой период повторения, сколько точно не помню, но большой :)

cathode
()
Ответ на: комментарий от cathode

У MT19937 период 2^19937 − 1 :)

Для моей задачи, впрочем, периода ГОСТа тоже более чем достаточно было бы

mannaz
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.