В чем разница между незащищенным генератором случайных чисел и безопасным генератором случайных чисел? - PullRequest
25 голосов
/ 19 сентября 2008

Как следует из заголовка: В чем разница между незащищенным генератором случайных чисел и безопасным генератором случайных чисел?

Ответы [ 7 ]

31 голосов
/ 19 сентября 2008

Нет вычислительно выполнимого алгоритма должен:

  • восстановить семя или
  • предсказать "следующий бит"

для безопасного генератора случайных чисел.

Пример: регистр сдвига с линейной обратной связью генерирует множество случайных чисел, но при достаточном выходе можно найти начальное число и предсказать все последующие числа.

5 голосов
/ 19 сентября 2008

Безопасное случайное число не должно быть предсказуемым даже с учетом списка ранее созданных случайных чисел. Обычно вы используете его для ключа к процедуре шифрования, поэтому вы не захотите, чтобы он был предсказуемым или предсказуемым. Конечно, угадываемый зависит от контекста, но вы должны предположить, что злоумышленник знает все, что вы знаете, и может использовать для получения вашего случайного числа.

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

1 голос
/ 24 февраля 2009

Случайное число, вероятно, будет означать псевдослучайное число, возвращаемое алгоритмом с использованием 'seed'.

Безопасное случайное число - это истинное случайное число, возвращаемое устройством, таким как генератор случайных чисел на основе цезия (который использует скорость затухания цезия для возврата чисел). Это происходит естественным путем и не может быть предсказано.

1 голос
/ 19 сентября 2008

Согласен с Purfiedeas. Об этом также есть хорошая статья под названием Cheat Online Poker

1 голос
/ 19 сентября 2008

Просто «случайное число» обычно означает псевдослучайное число. Поскольку это псевдослучайное число, оно может (легко) быть предсказано атакующим.

Безопасное случайное число - это случайное число из действительно случайного источника данных, т.е. с участием энтропийного пула некоторых сортов.

0 голосов
/ 19 сентября 2008

Это как разница между AES и ROT13.

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

0 голосов
/ 19 сентября 2008

Вероятно, это зависит от контекста, но когда вы сравниваете их таким образом, я бы сказал, что «случайное число» - это псевдо-случайное число , а «безопасное случайное число» - действительно случайное. Первый дает вам число, основанное на начальном числе и алгоритме, другой - на некоторой случайной функции.

...