Les générateurs
de nombres aléatoires
Il existe littéralement des milliers de propositions de brevets, c'est vraiment très difficile de trouver un truc vraiment nouveau, souvent il ne s'agit que d'une amélioration particulière dans un contexte donné.
Il est impossible de faire un état des lieux exhaustif de ce qui existe, par contre je peux vous donner un échantillon qui vous montrera l'étendue des dégâts.
Comment classer tout ce fatras de propositions ?
J'ai fait un choix arbitraire. Comme il faut impérativement utiliser au moins un processeur pour utiliser le résultat du RNG, il parait naturel d'utiliser des moyens électroniques, de préférence intégrable directement sur silicium, et on commencera par là.
Les RNG classiques électroniques
Le concepteur microélectronique passe son temps à se battre contre le bruit, qu'il soit analogicien ou numéricien
Mais il est vrai que le concepteur de circuits numériques, le bruit, c'est de l'analogique, ça le dépasse, et c'est le problème du technologue -le gars qui conçoit le procédé de fabrication-.
Alors pour faire un RNG, autant se servir du bruit !
Avec la contrariété qu'on aimerait avoir un maximum de bruit dans la source, mais qu'ensuite, dans les amplificateurs et autres fonctions utiles, il faudrait que ces mêmes composants présentent un minimum de bruit les gens ne sont jamais contents.
Bruit analogique
L'analogicien sera tenté par les sources de bruit qui habituellement le tracassent, et utilisera pour commencer ce genre de montage :

La source de bruit peut être :
- Du bruit thermique (Johnson's effect)
- Du bruit de grenaille (shot noise)
- ... et d'autres noms, souvent on a du mal à séparer les divers types de bruit.
Ce bruit est généralement lié au déplacement des électrons dans les conducteurs et semi-conducteurs, les collisions engendrant des perturbations aléatoires.
Du coup, l'analogicien va utiliser les composants bruyants à disposition, en espérant que le technologue, qui essaye toujours d'améliorer sa technologie, ne viennent pas trop améliorer ses composants en réduisant le bruit par divers artifices genre implantation ionique astucieuse (ils aiment bien ça).
- résistance (le plus basique)
- jonction sous toutes ses formes : diodes (normales, Zener, Schottky...), transistors bipolaires, MOSFET (bruit télégraphique)...
- L'effet tunnel (commode pour dire que c'est quantique donc forcément bien, mais bon, ça dépend comment c'est fait)
- ...
Les astuces et configurations sont pléthores.
Bruit numérique
Enfin, numérique, pas vraiment en fait, car il n'y a pas de miracle. À la base, le bruit qu'on va appeler numérique, et bien il est analogique, mais son impact se retrouve au niveau temporel ou fréquentiel (phase).
Il existe divers circuits forts commodes pour la conception de RNG. Il s'agit principalement d'oscillateurs sous toutes ses formes, à commencer par les oscillateurs en anneau, tarte à la crème des RNG, au moins au début des premiers RNG intégrés.

Après, de nombreuses subtilités sont proposées pour améliorer ce basique. En effet, si vous mettez plusieurs oscillateurs les uns à côté des autres, de plus sur la même alimentation, ces zouaves ont tendance à se synchroniser, alors qu'on ne veut pas.
On peut également utiliser les boucles à verrouillage de phase vu que c'est une boucle, ça peut osciller n'importe comment si le concepteur n'y prend pas garde, et là, il fera exprès de se rater.
Mais bon, les oscillateurs, en anneau ou pas, sont vraiment des basiques.
Ils sont malheureusement sensibles à la tension d'alimentation, à la température, et c'est un peu normal puisqu'ils malmènent ces malheureuses alimentations en effectuant des appels de courant un peu de partout. Ce qui les rends vulnérables aux attaques.
(pub/copinage)
Vous pourrez creuser cet aspect sur le site d'OpenTRNG, un open-source concernant la réalisation de RNG avec des oscillateurs en anneau.
Forcément intéressant, puisque fait par mes collègues du CEA.
Métastabilité
La métastabilité des bascules est également un élément intéressant pour un RNG. En effet, lorsqu'une bascule est pile-poil à l'endroit où elle bascule, et bien difficile de savoir de quel côté elle basculera. Tout le jeu consiste à se mettre juste au point d'instabilité, à l'aide de divers artifices.
Un point mémoire est essentiellement une sorte de bascule. Du coup, on retrouve de nombreuses propositions utilisant des mémoires sous diverses formes, à commencer par les deux inverseurs rebouclés.
Après, pour la modèlisation mathématique, et surtout pour bien définir quelle est la vraie source de bruit, vous trouverez moins de monde.
Les radiofréquences
Il est aussi tentant d'utiliser le bruit qu'on reçoit sur les ondes radiofréquences, vu qu'il suffit de raccorder une antenne à une puce électronique pour recevoir la radio. Parfois même, l'antenne peut être mise directement sur la puce.

Ceci me parait très optimiste pour un usage sécuritaire. Rien de plus facile que d'injecter des parasites sur les ondes...
De plus, cela oblige à laisser une "fenêtre" sur votre puce pour laisser passer les ondes, et on n'aime pas ça en sécurité. On préfère se blinder à l'abri dans sa cage de Faraday...
Composants ajoutés (genre capteurs)
Dès que vous intégrez sur silicium, ou à côté (ce n'est pas interdit d'empiler des puces issues de diverses technologies), et bien vous avez immanquablement des problèmes de bruit que l'on va pouvoir exploiter.
Voici quelques exemples, histoire de vous en mettre plein la vue :
- capteurs de température, divers et variés
- memristor
- des électrons émis par des dispositifs nanométriques
- des capacités pyroélectriques (ma faute, brevet de 2003 à moi)
- spin transfer torque magnetic tunnel junction (STT-MTJ) que je ne traduirais pas en français, débrouillez-vous
- la radioactivité (voir ci-après)
- ...
A chaque fois, il faut décortiquer ce que c'est pour comprendre le cas particulier et remonter aux origines physiques, quand c'est faisable...
Radioactivité
Les désintégrations radioactives sont certainement très aléatoires, vu que c'est un phénomène d'essence quantique, vous ne trouverez personne pour vous contester cela. Et c'est vrai que l'on connait bien la distribution qui décroit dans le temps (les histoires de demi-vie radioactives).
Comme les gens ont peur d'utiliser la radioactivité dans une application, alors qu'au niveau où on peut l'utiliser pour faire des RNG sera certainement très faible (et bien plus faible que les détecteurs de fumée radioactifs largement répandus aux USA), la radioactivité reste toujours au niveau de la proposition.
Je pense que l'on peut certainement intégrer une source radioactive inoffensive sur du silicium. Ceci dit, cela mène généralement à des débits de bits aléatoires un poil faible, faudra ruser.
Vous trouverez facilement sur le web des propositions où on utilise la radioactivité naturelle, comme celle-ci :
Mais bon, en sécurité, on n'aime pas utiliser des choses qu'on ne maitrise pas, surtout si elles viennent de l'extérieur. Alors il faudra intégrer la source radioactive.
La lumière
Les photons sont utilisés à toutes les sauces pour faire des RNG.
Mais je pense que le plus simple est quand même la lame semi-réfléchissante sur laquelle on envoie un (seul) photon, un basique en matière de mécanique quantique.

Là, au moins, personne ne viendra chercher des poux concernant la modélisation, c'est vraiment trop simple. Par contre on pourra vous enquiquiner sur la mise en pratique concernant l'unicité du photon, et l'efficacité du détecteur de photon.
A côté de cela, de nombreux effets physiques sur la lumière sont proposés pour extraire de l'aléa, utilisant des LED, des lasers, des fibres optiques, des chemins optiques alambiqués... les gens sont très créatifs dans l'optique aussi.
Flot de données "externes"
Externe dans le sens "pas dans une puce silicium".
Par exemple les nombreuses propositions consistant à utiliser une caméra observant une scène, mais aussi écouter avec un microphone, voire directement utiliser le flot de données Ethernet qui arrive. Il y en a même qui écoutent le bruit sur la ligne électrique (le 220V).
Une des plus rigolotes : observer son bocal de poissons rouges. Si, si, cela a été proposé. L'auteur reconnaitra son aquarium.

Ce qui est éminemment discutable, bien sûr.
Tout ceci n'est généralement pas utilisable en pratique, et qualifier la source d'entropie ne mène généralement à rien d'intéressant.
Souris
L'utilisation de la souris comme source aléatoire n'a rien de bien nouveau, ceux qui se sont servi de PGP doivent se rappeler la séquence de création de clés où il fallait bouger la souris aussi aléatoirement que possible. Ceci dit, c'est certainement une idée qui a le bon goût d'être efficace et pragmatique.
Vous trouverez régulièrement des gens qui réinvente ça.
Le bizarre
Je vous donne juste les mots-clés, ça laisse rêveur.
- Turbulence du flot dans un cristal liquide
- Instabilité d'un actuateur électrostatique, avec des feuilles ou des billes
- Des billes de mercure tombant sur la pointe d'un cône
- Le mouvement brownien (avec une caméra)
- Les temps de lecture d'un disque dur
- ...
Le quantique
Aahhh! Les sources d'entropie dites "quantiques " !
Vous verrez dans l'épilogue les catégories de personnes que j'ai définies. Sinon, les phénomènes quantiques exploitables, il n'y en a pas des masses qui sont vraiment exploités :
- C'est du quantique "recyclé" : par exemple, l'effet tunnel en microélectronique sert depuis des lustres à faire des mémoires flash (des électrons franchissent une barrière isolante, ce n'est pas normal), et c'est effectivement un phénomène quantique. Après, tous les phénomènes impliquant des électrons dans un semi-conducteurs peuvent être qualifiés (abusivement) de quantique.
- C'est un photon qui a une chance sur deux d'aller d'un côté. C'est certainement ce qui peut être qualifié de vraiment quantique, vu qu'on a un photon unique détecté. Pour challenger votre correspondant, demandez-lui de vous montrer que sa source de photon émet un photon unique... et si ce n'est pas clair, alors il a plutôt dû utiliser le constat de la distribution de Poisson, et là, quantique, on peut en rediscuter.
En résumé, méfiez-vous quand vous entendez "RNG quantique".
Vous avez des centaines de propositions que vous trouverez dans des brevets, et c'est une vraie sinécure si vous deviez effectuer des recherches dans ce domaine... vous êtes prévenus.
Il existe des produits commerciaux comme source de nombres aléatoires, je vais vous en donner quelques exemples dans la page suivante.