C’est déjà (parfois) « intégré dans nos ordinateurs » :
dans certains processeurs Intel (instruction RDRAND) ;
sur certaines carte-mères ;
dans les « Trusted Platform Modules » (TPM) ;
sur des cartes PCI spécifiques, par exemple les cartes d’accélération SSL.
Le noyau Linux utilise automatiquement l’instruction RDRAND si elle est supportée par le processeur (dans ce cas c’est une des sources d’entropie alimentant les pools derrière /dev/random et /dev/urandom). S’il y a un RNG sur la carte mère ou dans le TPM, le noyau le met à disposition directe de l’espace utilisateur via /dev/hw_random, mais ne l’utilise pas lui-même.
Quant aux principes de fonctionnement des RNG matériels, tout ce que je sais, c’est que ça repose sur la mesure de phénomènes physiques imprévisibles (quantiques notamment). Si quelqu’un d’autre dans le coin est capable d’en dire plus...
[^] # Re: Comment la puce fait-elle pour générer des nombres vraiment aléatoires ?
Posté par gouttegd . En réponse à la dépêche scdrand: alimenter le pool d’entropie du noyau à partir d’une carte à puce. Évalué à 7.
C’est déjà (parfois) « intégré dans nos ordinateurs » :
Le noyau Linux utilise automatiquement l’instruction RDRAND si elle est supportée par le processeur (dans ce cas c’est une des sources d’entropie alimentant les pools derrière
/dev/randomet/dev/urandom). S’il y a un RNG sur la carte mère ou dans le TPM, le noyau le met à disposition directe de l’espace utilisateur via/dev/hw_random, mais ne l’utilise pas lui-même.Quant aux principes de fonctionnement des RNG matériels, tout ce que je sais, c’est que ça repose sur la mesure de phénomènes physiques imprévisibles (quantiques notamment). Si quelqu’un d’autre dans le coin est capable d’en dire plus...