Présentation

Article

1 - AVANT-PROPOS

2 - DÉFINITIONS

3 - EXEMPLES DE GÉNÉRATEURS PSEUDO-ALÉATOIRES

4 - EXEMPLES DE GÉNÉRATEURS VÉRITABLEMENT ALÉATOIRES

5 - EXEMPLES DE GÉNÉRATEURS ALÉATOIRES HYBRIDES

6 - TESTS DE LA QUALITÉ DE L'ALÉA

7 - UTILISATION DES NOMBRES ALÉATOIRES

8 - CONCLUSION

Article de référence | Réf : H5215 v1

Utilisation des nombres aléatoires
Circuits électroniques pour la génération de nombres aléatoires

Auteur(s) : Arnaud TISSERAND

Relu et validé le 07 févr. 2020

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais English

RÉSUMÉ

Deux principaux types de générateurs de nombres aléatoires existent : les générateurs pseudo-aléatoires basés sur des algorithmes déterministes, et les générateurs réellement aléatoires qui utilisent des sources de bruit physique ayant des propriétés stochastiques. Cet article présente leurs principes élémentaires et quelques exemples de générateurs. Le délicat problème de l'évaluation de la qualité de l'aléa est abordé, ainsi que quelques applications typiques qui illustrent les différents besoins.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

  • Arnaud TISSERAND : Chargé de recherche au Centre National de la Recherche Scientifique (CNRS), docteur en informatique, HDR - Chercheur dans le laboratoire IRISA et l'équipe-projet CAIRN à Lannion - Enseignant vacataire à l'université Rennes 1 et l'École Nationale Supérieure des Sciences Appliquées et de Technologie (ENSSAT).

INTRODUCTION

Des nombres aléatoires sont nécessaires dans certaines applications : loteries, jeux informatiques, cryptographie, sécurité des systèmes, simulation numérique, algorithmes randomisés, test de programmes et de circuits intégrés, etc. Pour cela, on utilise des générateurs de nombres aléatoires ou RNG (random number generators). Il existe deux principaux types de RNG : d'une part, les générateurs pseudo-aléatoires ou PRNG (Pseudo RNG) basés sur des algorithmes déterministes, et d'autre part, les générateurs de nombres vraiment aléatoires ou TRNG (True RNG) qui exploitent une source de bruit physique ayant des propriétés stochastiques.

Deux caractéristiques principales guident le choix d'un RNG : son débit et la qualité de l'aléa produit. Le débit doit être adapté à l'application cible, mais d'autres caractéristiques existent telles que le coût du générateur, son temps de démarrage et le caractère constant ou variable de son débit dans le temps.

La qualité d'un RNG est probablement sa caractéristique la plus importante, mais aussi la plus complexe à évaluer. La séquence aléatoire engendrée doit présenter une distribution de probabilité uniforme et équiprobable. De plus, chaque nouvel élément de la séquence doit être statistiquement indépendant et non-prédictible par rapport aux éléments précédents. Dans certaines applications, on requiert que la séquence soit non-reproductible, c'est-à-dire totalement différente après chaque redémarrage. Enfin, dans certaines applications sécurisées, rien ou personne ne doit pouvoir prédire ou biaiser les valeurs produites : c'est la résistance aux attaques.

Les PRNG peuvent être implantés en logiciel ou bien en matériel. Il existe des PRNG logiciels performants, c'est-à-dire avec un très haut débit et une bonne qualité d'aléa pour un coût limité, pour la plupart des types de processeurs. En matériel, de nombreux PRNG existent pour des ASIC (Application Specific Integrated Circuits) et des FPGA (Field Programmable Gate Arrays). On sait concevoir des PRNG avec d'excellentes caractéristiques d'uniformité, d'équiprobabilité, d'indépendance et de non-prédictibilité. Mais les PRNG sont déterministes, ils ne peuvent pas assurer la caractéristique de non-reproductibilité des séquences après chaque redémarrage. En pratique, il faut une source vraiment aléatoire pour les initialiser correctement.

Les TRNG nécessitent une implantation matérielle, comme un circuit intégré, pour la source de bruit physique. Cette source de bruit physique présente des propriétés de non-prédictibilité et non-reproductibilité du fait de certains phénomènes physiques stochastiques (par exemple, bruit thermique ou électro- magnétique, mécanique quantique, désintégration radioactive). Mais le bruit physique « idéal » est mélangé, et souvent dilué, à d'autres bruits liés au fonctionnement du circuit intégré et de son environnement (horloge du circuit, perturbations électromagnétiques, variations de la tension d'alimentation ou de la température, etc.). Pour concevoir un bon TRNG, il faut extraire le bruit physique vraiment aléatoire des autres bruits. Cette extraction est complexe et délicate. De plus, la source de bruit physique dépend de nombreux paramètres (température, tension d'alimentation, couplages entre blocs du circuit, vieillissement des matériaux, etc.). Des attaques basées sur des modifications de ces paramètres sont possibles pour réduire la qualité de l'aléa produit.

Les TRNG assurent la non-reproductibilité mais avec un coût souvent plus important qu'un PRNG de débit équivalent. On peut alors associer ces deux types de RNG dans un générateur hybride ou HRNG (Hybrid RND). Ainsi, un TRNG produit un véritable aléa physique utilisé pour initialiser, régulièrement ou parfois, un PRNG qui assure un haut débit et une bonne qualité statistique.

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h5215


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais English

7. Utilisation des nombres aléatoires

Outre les domaines classiques des loteries et des jeux, les RNG sont utilisés dans de nombreux autres domaines : cryptographie, sécurité des systèmes, simulation numérique, algorithmes randomisés, test de programmes et de circuits intégrés, etc. Pour chaque application, les besoins en qualité et en débit sont différents. Les applications en test de circuits intégrés sont développées dans  et .

7.1 Cryptographie

L'utilisation de nombres aléatoires en cryptographie est importante et les besoins en débit et en type de générateur, PRNG ou TRNG, sont très différents selon les cas. Voici quelques-unes de ces utilisations :

  • Le cryptosystème appelé masque jetable (one time pad ), ou chiffrement de Vernam, est basé sur la combinaison du message en clair avec une clé de chiffrement (ou masque) devant être totalement aléatoire, de même taille que le message à chiffrer et utilisée une seule fois (aspect « jetable »). La clé de chiffrement doit être produite par un TRNG ou CSPRNG. Ce système de chiffrement est inconditionnellement sûr mais souffre du problème de transmission du masque jetable à l'autre protagoniste pour chaque chiffrement.

  • Le chiffrement par flot ou de flux (stream cipher ) est illustré à la figure 20. L'émetteur utilise un PRNG pour produire une séquence aléatoire combinée avec le message en clair via une porte XOR. Le déchiffrement se fait en utilisant le même bloc (PRNG + porte XOR) mais sur le message chiffré reçu pour obtenir le message déchiffré. L'intérêt par rapport au masque jetable...

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Utilisation des nombres aléatoires
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - KNUTH (D.E.) -   Randm numbers.  -  Chapter 3 in The Art of Computer Programming, Seminumerical Algorithms, 3rd edition, Addison-Wesley, vol. 2 (1997).

  • (2) - DELAHAYE (J.-P.) -   Information complexité et hasard.  -  2e édition. Hermès (1999).

  • (3) - DELAHAYE (J.-P.) -   Complexités : aux limites des mathématiques et de l'informatique.  -  Belin/Pour la Science (2006).

  • (4) - DELAHAYE (J.-P.) (coordinateur) -   Le hasard : une idée, un concept, un outil.  -  L'Harmattan (2005).

  • (5) - L'ECUYER (P.) -   Random number generation.  -  Chapter 2 of the Handbook of Computational Statistics, p. 35-70, Springer (2004) http://www.iro.umontreal.ca/lecuyer/myftp/papers/handstat.pdf

  • (6) - SCHNEIER (B.) -   Applied Cryptography.  -  2nd...

1 Outils logiciels

DIEHARD : bibliothèque de tests statistiques proposée en 1995 par G. Marsaglia https://github.com/nmondal/diehard.c

DIEHARDER : bibliothèque de tests statistiques plus complète que DIEHARD et maintenue par R. Brown depuis 2003 http://www.phy.duke.edu/rgb/General/dieharder.php

TestU01 : bibliothèque C de P. L'Ecuyer et R. Simard disponible depuis 2007 http://www.iro.umontreal.ca/simardr/testu01/tu01.html

HAUT DE PAGE

2 Sites Internet

L'ECUYER Pierre. Page professionnelle (nombreux publications, logiciels et références sur les PRNG) http://www.iro.umontreal.ca/lecueyer

Page d'un groupe d'informaticiens...

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS