L'entropie est un terme technique pour «aléatoire». Les ordinateurs ne génèrent pas vraiment d'entropie mais les collectent en regardant des choses comme les variations de vitesse de rotation du disque dur (un phénomène physique très difficile à prévoir en raison de la friction, etc.) Lorsqu'un ordinateur veut générer des données pseudo-aléatoires, il le fera créer une formule mathématique avec une véritable entropie trouvée en mesurant les clics de souris, les variations de rotation du disque dur, etc. En gros, entropy_avail
la mesure des bits actuellement disponibles pour être lus/dev/random
Il faut du temps à l'ordinateur pour lire l'entropie de son environnement à moins qu'il n'ait un matériel cool comme une diode bruyante ou quelque chose.
Si vous disposez de 4096 bits d'entropie et que vous /dev/random
pensez que vous pouvez être en mesure de lire 512 octets d'entropie (4096 bits) avant que le fichier ne bloque pendant qu'il attend plus d'entropie.
Par exemple, si vous " cat /dev/random
" votre entropie se réduira à zéro. Au début, vous obtiendrez 512 octets d'ordures aléatoires, mais cela s'arrêtera et, petit à petit, vous verrez plus de creux de données aléatoires.
Ce n'est pas ainsi que les gens devraient fonctionner /dev/random
. Normalement, les développeurs liront une petite quantité de données, comme 128 bits, et l'utiliseront pour créer une sorte d'algorithme PRNG. Il est poli de ne pas lire plus d'entropie /dev/random
que nécessaire, car cela prend beaucoup de temps à construire et est considéré comme précieux. Ainsi, si vous le vidangez en cat
négligeant le fichier comme ci-dessus, vous bloquerez d'autres applications qui ont besoin de lire /dev/random
. Sur un système au travail, nous avons remarqué que de nombreuses fonctions de cryptage se bloquaient. Nous avons découvert qu'un travail cron appelait un script python qui continuait à s'initialiserramdom.random()
sur chaque course qui a fonctionné toutes les quelques secondes. Pour résoudre ce problème, nous avons réécrit le script python afin qu'il s'exécute en tant que démon qui ne s'est initialisé qu'une seule fois et le travail cron lirait les données via XMLRPC afin qu'il ne poursuive pas la lecture /dev/random
au démarrage.