Насколько случайна случайность?

В Linux насколько случайным является /dev/urandom/? Это считается безопасным?

Также возможно ли получить поток 1-х?


person Recursion    schedule 08.12.2009    source источник
comment
Считается ли это безопасным? Безопасно для чего? Ответ полностью зависит от контекста.   -  person dmckee --- ex-moderator kitten    schedule 09.12.2009


Ответы (3)


Примечание спустя 4,5 года: это плохой совет. См. один из этих ссылки для получения подробной информации.

Если вы генерируете криптографические ключи в Linux, вам нужен /dev/random, даже если он блокирует — вам не нужно столько битов.

Практически для всего остального, например, для генерации случайных тестовых данных или непредсказуемых идентификаторов сеанса, /dev/urandom подходит. В большинстве систем достаточно источников энтропии (время событий клавиатуры и мыши, сетевых пакетов и т. д.), поэтому результат будет непредсказуемым.

person Eric Seppanen    schedule 08.12.2009
comment
+1, хотя часто проще и быстрее собрать собственную энтропию, чем ждать блокировки /dev/random. Я заполняю большие файлы таким образом для «бутылочной» энтропии при работе с симуляциями Монте-Карло, гораздо быстрее стучать по клавишам и двигать мышь, чем ждать /dev/random - person Tim Post♦; 09.12.2009
comment
Я в замешательстве: чем это лучше, чем использование /dev/urandom? - person Eric Seppanen; 09.12.2009
comment
В прошлый раз, когда я смотрел /dev/urandom в Linux, возвращался тот же результат, что и /dev/random до тех пор, пока в пуле есть энтропия, потому что они оба используют пул. Разница в том, что urandom будет использовать простой алгоритм повторного хеширования, когда нет сохраненной энтропии, а random будет ждать, пока не будет добавлена ​​новая энтропия. - person dmckee --- ex-moderator kitten; 09.12.2009
comment
См. также эту статью, в которой рекомендуется использовать /dev/urandom исключительно. - person Keith Thompson; 26.02.2014
comment
Правда, я уже не верю своему собственному ответу. Мне также нравится эта статья. - person Eric Seppanen; 27.06.2014

Пожалуйста, проверьте справочную страницу:

Yarrow is a fairly resilient algorithm, and is believed to be resistant
     to non-root.  The quality of its output is however dependent on regular
     addition of appropriate entropy. If the SecurityServer system daemon
     fails for any reason, output quality will suffer over time without any
     explicit indication from the random device itself.

     Paranoid programmers can counteract this risk somewhat by collecting
     entropy of their choice (e.g. from keystroke or mouse timings) and seed-
     ing it into random directly before obtaining important random numbers.
person ennuikiller    schedule 08.12.2009
comment
Но скажем, вы вытягиваете из случайного или случайного. и система просто сидит там, скажем, на живом компакт-диске. Разве энтропия не будет одинаковой каждый раз, когда происходит один и тот же сценарий? - person Recursion; 08.12.2009
comment
Это ссылка на справочную страницу BSD, и в этом случае поведение Linux отличается: /dev/random сильнее, чем /dev/urandom. - person Eric Seppanen; 08.12.2009