Entropía es un término técnico para "Aleatoriedad". Las computadoras realmente no generan entropía, pero la recopilan observando cosas como las variaciones de las velocidades de rotación del disco duro (un fenómeno físico que es muy difícil de predecir debido a la fricción, etc.) Cuando una computadora quiere generar datos pseudoaleatorios, lo hará siembra una fórmula matemática con entropía verdadera que encontró midiendo clics del mouse, variaciones de giro del disco duro, etc. En términos generales, entropy_avail
es la medida de bits actualmente disponibles para leer/dev/random
A la computadora le toma tiempo leer la entropía de su entorno a menos que tenga un hardware genial como un diodo ruidoso o algo así.
Si tiene 4096 bits de entropía disponibles y /dev/random
puede esperar, puede esperar poder leer 512 bytes de entropía (4096 bits) antes de que el archivo se bloquee mientras espera más entropía.
Por ejemplo, si " cat /dev/random
" su entropía se reducirá a cero. Al principio, obtendrá 512 bytes de basura aleatoria, pero se detendrá y, poco a poco, verá más datos aleatorios.
Sin /dev/random
embargo, no es así como las personas deberían operar . Normalmente, los desarrolladores leerán una pequeña cantidad de datos, como 128 bits, y los usarán para generar algún tipo de algoritmo PRNG. Es cortés no leer más entropía de la /dev/random
que necesita, ya que lleva mucho tiempo construirla y se considera valiosa. Por lo tanto, si lo drena cat
dándole descuidadamente el archivo como se indica arriba, provocará que otras aplicaciones que necesitan leer se /dev/random
bloqueen. En un sistema en el trabajo notamos que muchas funciones criptográficas se estancaban. Descubrimos que un trabajo cron estaba llamando a un script de Python que seguía inicializándoseramdom.random()
en cada carrera que se ejecutaba cada pocos segundos. Para solucionar esto, reescribimos el script de Python para que se ejecute como un demonio que se inicializó solo una vez y el trabajo cron leería los datos a través de XMLRPC para que no siguiera leyendo desde /dev/random
el inicio.