Générateur de nombres pseudo-aléatoires (RNG)
Un PRNG (générateur de nombres pseudo-aléatoires) est un algorithme qui produit des nombres selon un schéma complexe, apparemment imprévisible. Les nombres vraiment aléatoires (par exemple issus d'une source radioactive) sont totalement imprévisibles, alors que tous les algorithmes sont prévisibles, et un PRNG retourne les mêmes nombres lorsqu'on lui fournit les mêmes paramètres de départ ou graine.
Les PRNG peuvent être utilisés pour de nombreuses applications, comme les jeux.
Un PRNG sécurisé pour la cryptographie est un PRNG doté de certaines propriétés supplémentaires le rendant adapté à un usage cryptographique. Ces propriétés incluent :
- il doit être impossible, en pratique, pour un·e attaquant·e (sans connaissance de la graine) de prédire sa sortie,
- si un·e attaquant·e parvient à déterminer son état courant, cela ne doit pas lui permettre de retrouver les nombres précédemment générés.
La plupart des PRNG ne sont pas sécurisés pour la cryptographie.
Voir aussi
- Générateur de nombres pseudo-aléatoires sur Wikipédia
Math.random(): fonction JavaScript PRNG native. Notez que ce n'est pas un PRNG sécurisé pour la cryptographie.Crypto.getRandomValues(): cette méthode est conçue pour fournir des nombres sécurisés pour la cryptographie.