À moins que je ne sois totalement confus et que cela ne le fasse pas.
Je veux savoir si / dev / urandom gagnera une entropie accrue si je prends un RNG matériel et que je branche son entropie dans / dev / random.
Donc, pour reformuler, si je devais augmenter l'entropie de / dev / random de X bits / sec (c'est-à-dire, / dev / random après l'injection vous permet d'échantillonner X bits / sec), cette entropie accrue sera-t-elle transférée vers urandom?
Réponses:
Il n'est pas vraiment exact de dire que les
/dev/urandom
échantillons proviennent de/dev/random
. Au lieu de cela, les deux pools sont soutenus par la même source d'entropie. Lorsque le nombre d'entropie des pools atteint zéro, ils réamorcent à partir du pool d'entrée partagé. Donc, si vous donnez l'entropie d'entrée du noyau d'une manière ou d'une autre, il peut l'utiliser pour l'un/dev/random
ou l' autre/dev/urandom
, selon celui qui est lu.Cependant, le
/dev/urandom
taux de fréquence de demande de réensemencement est également limité . Par défaut, il ne peut être réamorcé qu'une fois toutes les 60 secondes.Rien de tout cela n'a vraiment d'importance dans la pratique, car tant que le pool est initialement ensemencé avec au moins 128 bits ou plus d'entropie, la prédiction de n'importe quelle sortie nécessiterait non seulement de voir les sorties précédentes, mais également de casser les algorithmes utilisés, y compris au moins la résistance de pré-image de SHA-1 ( qui reste intact ).
la source
Cela dépend de l'implémentation. Mais généralement,
/dev/random
et/dev/urandom
tirez l'entropie de la même piscine, ce sera le cas.la source
Sous Linux, toutes les données écrites dans / dev / random ou / dev / urandom sont copiées à la fois dans le pool de blocage (source d'aléatoire pour / dev / random) et dans le pool non bloquant (source d'aléatoire pour / dev / urandom).
Regardez simplement la fonction random_write .
Mais les données écrites dans / dev / random ne sont pas comptées par l'estimateur d'entropie interne (après tout, certains adversaires locaux peuvent essayer de simplement rediriger / dev / zero ou une autre source très aléatoire vers / dev / random), donc si vous avez des problèmes avec le blocage / dev / random, l'écriture dans / dev / random n'aide pas.
Sous Linux, écrivez dans / dev / random (ou / dev / urandom, pas de différence), mais lisez toujours dans / dev / urandom (une fois qu'il est amorcé - en fait, la meilleure façon est d'utiliser le nouvel appel système getrandom ).
Je ne sais pas comment cela fonctionne dans d'autres Unices.
la source