A menos que esté totalmente confundido y no haga eso.
Quiero saber si / dev / urandom ganará o no una mayor entropía si tomo un RNG de hardware y conecto su entropía en / dev / random.
Entonces, para reformular, si tuviera que aumentar la entropía de / dev / random en X bits / seg (es decir, / dev / random después de la inyección le permite muestrear X bits / seg), ¿aumentará la transferencia de entropía a urandom?
Respuestas:
No es realmente exacto decir que las
/dev/urandom
muestras de/dev/random
. En cambio, los dos grupos están respaldados por la misma fuente de entropía. Cuando el recuento de entropía de las agrupaciones llega a cero, se reinicializan desde la agrupación de entrada compartida. Entonces, si le das a la entrada de kernel entropía de alguna manera, puede usar eso para cualquiera/dev/random
o/dev/urandom
, dependiendo de cuál se lea.Sin embargo,
/dev/urandom
también tiene una tasa limitada en cuanto a la frecuencia con la que puede solicitar una nueva siembra. Por defecto, solo puede reiniciarse una vez cada 60 segundos.Nada de eso realmente importa en la práctica, porque mientras el grupo se siembra inicialmente con al menos 128 bits de entropía, predecir cualquier salida requeriría no solo ver las salidas anteriores sino también romper los algoritmos utilizados, incluida al menos la resistencia previa a la imagen de SHA-1 ( que permanece intacto ).
fuente
Depende de la implementación. Pero típicamente,
/dev/random
y/dev/urandom
extrae la entropía del mismo grupo, así será.fuente
En Linux, todos los datos escritos en / dev / random o / dev / urandom se copian tanto en el grupo de bloqueo (fuente de aleatoriedad para / dev / random) como en el grupo sin bloqueo (fuente de aleatoriedad para / dev / urandom).
Solo mira la función random_write .
Pero los datos escritos en / dev / random no son contados por el estimador de entropía interno (después de todo, algunos adversarios locales pueden tratar de redirigir / dev / zero o alguna otra fuente altamente no aleatoria a / dev / random), así que si tiene problemas con el bloqueo / dev / random, solo escribir en / dev / random no ayuda.
En Linux, escriba en / dev / random (o / dev / urandom, no hay diferencia), pero lea siempre desde / dev / urandom (una vez que se siembra; en realidad, la mejor manera es usar un nuevo sistema de llamada getrandom ).
No sé cómo funciona en otros Unices.
fuente