Qu'est-ce qu'un générateur pseudo-aléatoire?

Qu'est-ce qu'un générateur pseudo-aléatoire?
Comment est-il utilisé pour le chiffrement à flot?

Un générateur pseudo-aléatoire est un procédé qui, à partir d'une initialisation de taille fixée (généralement d'une ou quelques centaines de bits) appelée graine ou germe, engendre de manière déterministe une suite de très grande longueur que l'on ne peut pas distinguer d'une suite aléatoire quand on ne connaît pas la graine.

Un exemple de générateur pseudo-aléatoire est la fonction rand() ou random() que l'on trouve dans la plupart des langages des programmation : dans un programme, n appels consécutifs à rand() fournissent une suite de n nombres aléatoires, mais plusieurs exécutions du programme produisent toujours la même suite si l'on n'a pas modifié la graine du générateur (à l'aide d'une fonction d'initialisation appelée généralement srand() ou srandom()).
La notion de générateur pseudo-aléatoire doit être distinguée de celle de générateur aléatoire, qui désigne également un procédé engendrant une suite semblable à une suite aléatoire, mais de façon non déterministe, ce qui signifie que, contrairement au cas précédent, la génération de la suite n'est pas reproductible. On trouve par exemple parmi les générateurs aléatoires des techniques qui produisent une suite aléatoire (par exemple une clef) à partir des dates (mesurées en fractions de seconde) de divers événements ayant lieu sur une machine : clavier, souris, accès réseau... Ces événements ont en effet lieu à des dates qui ne sont pas toutes prévisibles avec une telle précision. Il est clair dans ce cas que la suite obtenue ne peut pas être reproduite, même par la même personne.

Les générateurs pseudo-aléatoires pour le chiffrement à flot.
Dans un algorithme à flot, le chiffrement consiste à additionner (par ou exclusif bit à bit) le texte clair à la sortie d'un générateur pseudo-aléatoire initialisé par la clef secrète. Le destinataire du chiffré effectue la même opération : il engendre à partir de la clef secrète la même suite pseudo-aléatoire, l'additionne au texte chiffré et retrouve ainsi le message clair. On voit ici que le déchiffrement impose clairement le fait que la suite pseudo-aléatoire soit reproductible par toute personne connaissant la clef secrète.
Dans la plupart des applications, on utilise des générateurs pseudo-aléatoires dont l'initialisation est calculée à partir de deux données : la clef secrète et une quantité publique, usuellement appelée valeur initiale. En effet, les protocoles de communication transmettent généralement les messages sous forme de paquets de taille fixée ; la valeur initiale correspond donc souvent au numéro de paquet, la clef secrète restant inchangée au cours d'une même communication.

Informations sur la fiche

Titre :
Qu'est-ce qu'un générateur pseudo-aléatoire?
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 :
31/01/2006

Syndication

Il vous est possible de suivre la publication des fiches PICSI via le fil RSS des fiches.