Aller au contenu

PRNG : Pseudo-Random Number Generator

Aléa

Générateur déterministe produisant une suite d’apparence aléatoire à partir d’une graine. Doit être cryptographique pour la sécurité.

Principe : Suite déterministe issue d’une graine. Non cryptographique (Mersenne Twister) ≠ CSPRNG.

CSPRNG : Pour la sécurité : /dev/urandom, getrandom(), CTR_DRBG. Imprévisible même en connaissant les sorties passées.

Ce qui arrive si on s'en passe

Employer un générateur pseudo-aléatoire non cryptographique, comme Mersenne Twister, pour produire des clés, des jetons de session ou des nonces revient à confier un secret à une suite déterministe : quelques centaines de sorties observées suffisent à reconstituer l'état interne, puis à prédire toutes les valeurs suivantes. Une graine prévisible, comme l'heure de démarrage, réduit le secret à une poignée de possibilités qu'on essaie toutes. Les interfaces système comme getrandom() ou /dev/urandom fournissent pourtant un générateur cryptographique sans le moindre effort. Le hasard qui se laisse prévoir a toutes les qualités, sauf celle d'être le hasard.

Explication de la marmotte

Imagine une machine qui fabrique une longue suite de nombres qui semblent tirés au hasard, un peu comme si tu lançais une pièce de monnaie plusieurs fois. Mais en réalité, cette machine suit une recette précise, appelée « graine », qui décide exactement quels nombres elle va produire. Si tu connais cette recette, tu peux refaire la même suite encore et encore. Pour que cette suite soit vraiment sûre, surtout quand on l’utilise pour protéger des informations, il faut que la machine soit très spéciale, pour que personne ne puisse deviner la suite même s’il connaît une partie des nombres.

Où ce terme est utilisé

← Tout le glossaire