man 4 random
a une description très vague des sources d'entropie du noyau Linux :
Le générateur de nombres aléatoires rassemble le bruit environnemental des pilotes de périphériques et d'autres sources dans un pool d'entropie.
Les transferts d'entropie papier dans le générateur de nombres aléatoires Linux ne sont pas non plus beaucoup plus spécifiques. Il répertorie :
add_disk_randomness()
,add_input_randomness()
, etadd_interrupt_randomness()
.
Ces fonctions proviennent de random.c
, qui comprend le commentaire suivant :
Les sources d'aléa de l'environnement incluent les temporisations inter-claviers, les temporisations inter-interruptions de certaines interruptions et d'autres
événements qui sont à la fois (a) non déterministes et (b) difficiles pour un
observateur extérieur sur mesure.
Plus bas, il y a une fonction add_hwgenerator_randomness(...)
indiquant la prise en charge des générateurs de nombres aléatoires matériels.
Toutes ces informations sont plutôt vagues (ou, dans le cas du code source, nécessitent une connaissance approfondie du noyau Linux pour être comprises). Quelles sont les sources d'entropie réelles utilisées et le noyau Linux prend-il en charge des générateurs de nombres aléatoires matériels prêts à l'emploi ?
Réponse acceptée :
La plupart des matériels informatiques de base ont un générateur de nombres aléatoires de nos jours. VIA Semiconductor les a mis dans ses processeurs pendant de nombreuses années; le noyau Linux a le pilote via-rng pour cela. Je compte 34 modules source dans le drivers/char/hw_random/
répertoire dans l'arborescence source la plus récente, y compris les pilotes pour le matériel Intel et AMD, et pour les systèmes dotés d'un périphérique TPM. Vous pouvez exécuter le démon rng (rngd) pour envoyer des données aléatoires au pool d'entropie du noyau.