2013-08-21 2 views
1

Я работаю с криптографическими библиотеками openssl, я новичок во всех этих криптографических материалах и медленно изучаю все это. У меня есть сомнения относительно генератора случайных чисел, я использую RAND_pseudo_bytes() для генерации псевдослучайного числа. Я предоставляю ему семена с необходимой энтропией. Но я сомневаюсь, что если мы предоставим одно и то же семя дважды, генератор случайных чисел будет генерировать одно и то же случайное число?генератор случайных чисел и семя

+0

Вы, вероятно, найдете людей, которые знают ответ на этот вопрос, на [crypto.stackexchange.com] (http://crypto.stackexchange.com) – Joe

+1

Если семя такое же, тогда оно должно сгенерировать ту же последовательность , – doptimusprime

+1

@Joe: Этот вопрос на самом деле не очень подходит для crypto.SE, хотя, по общему признанию, способ, который его задают, немного затрудняет: «Как работают криптографические PRNG?» было бы хорошим вопросом для crypto.SE (за исключением, может быть, слишком широкого); «Как работает OpenSSL PRNG?» будет незначительно по теме, а «Как использовать OpenSSL PRNG?» был бы отключен от криптографии. Этот вопрос, заданный здесь, выглядит как второй тип, но [реальный вопрос] (http://crypto.stackexchange.com/q/9983) за ним ближе к последнему. –

ответ

2

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

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

Обратите внимание, что большинство генераторов псевдослучайных чисел mix в дополнительных семян/энтропии в текущем состоянии. Поэтому, когда генератор псевдослучайных чисел хорошо посеян, он будет продолжать создавать случайные числа. По умолчанию многие библиотеки засевают генератор случайных чисел с помощью хорошего источника энтропии (например, /dev/random или предварительно загруженного /dev/urandom на системах Linux).

Конечно, это не помешает испытать.

+0

Что-то не так с моим ответом, джитин? –

Смежные вопросы