Les générateurs de nombres aléatoires et pseudo-aléatoires
Un générateur aléatoire produit des nombres "aléatoires" non reproductibles.
Un générateur pseudo-aléatoire permet à partir d'une graine ou d'une clé secrète de générer une suite de nombres reproductible.
Le besoin en nombres aléatoires se fait ressentir dans de nombreuses applications de la cryptographie. Dans des systèmes cryptographiques courants, on utilise des clés (des nombres) qui doivent être produites de façon aléatoire.
Par exemple lorsque l’on consulte sur Internet ses comptes bancaires ou lorsque l’on effectue une commande par Internet certaines informations « sensibles » (votre code d’accès ou votre numéro de carte bleue) doivent rester confidentielles pour assurer votre authentification : personne ne doit pouvoir accéder à vos comptes ni commander avec votre carte bancaire. Pour assurer ces fonctions des protocoles Internet ont été mis en place. Ils vous permettent d’entrer vos codes sur une page Web sans risquer qu’une personne extérieure puisse y avoir accès. Ces protocoles utilisent des nombres aléatoires pour chiffrer les données et ainsi empêcher tout espionnage.
Le besoin en nombre aléatoire est donc particulièrement important dans les domaines de l’informatique et d’Internet. Pour répondre à ce besoin deux types de générateurs existent : les générateurs de nombres aléatoires (RNG pour Random Number Generator) et les générateurs de nombre pseudo aléatoire (PRNG pour PseudoRandom Number Generator). La différence entre ces types de générateur est principalement d’ordre technique :
Un RNG utilise comme source un ou plusieurs paramètres physiques provenant de son environnement (la température du processeur, le bruit parasite sur une ligne électrique ou le déplacement de la souris par exemple). Ils fournissent une clé unique pour chaque paramètre (ou ensemble de paramètres si le générateur en utilise plusieurs). Le caractère aléatoire provient dans ce cas du hasard des paramètres du générateur et le nombre ne peut pas être reproduit (car on ne peut pas produire deux fois exactement les mêmes paramètres).
Les PRNG ont été conçus spécialement pour générer des suites aléatoires reproductibles. Une telle suite possède toutes les propriétés d’imprévisibilité de celles qui sont produites par un RNG, mais la production des nombres est déterministe, c’est-à-dire reproductible. On conserve dans ce cas le caractère aléatoire en utilisant comme paramètre un nombre fournit par un RNG. On fournit donc au PRNG un unique paramètre (la graine) et le PRNG calcule par un algorithme la suite de nombres aléatoires correspondante. De manière étonnante lorsqu’on mesure le caractère aléatoire (par des tests statistiques) d’une suite provenant d’un PRNG, on observe souvent qu’elle possède de meilleures propriétés que celles qui sont fournies par un RNG.
Informations sur la fiche
- Titre :
- Les générateurs de nombres aléatoires et pseudo-aléatoires
- Profil(s) :
- Enseignant & Lycéen, Ingénieur informatique, Enseignant-Chercheur, Etudiant
- Thème :
- Générateur pseudo-aléatoire
- Finalité :
- Pédagogique
- Difficulté :
- niveau 1
- Mise à jour :
- 25/11/2005
