La saga des PRNG (Pseudo-Random Number Generator en anglais) continue ! Le précédent article [1] a étudié la nature des séquences de nombres pseudo-aléatoires et tenté de classifier leurs applications. Il ne s’agissait pas de décrire un algorithme ou un système en particulier, mais d’en définir les propriétés essentielles et distinctives. Dans cette suite, nous allons plus loin en concevant un PRNG abstrait pour en déduire les caractéristiques « par construction », en s’appuyant sur les principes fondamentaux. Cela nous permettra plus tard de comprendre les défauts et qualités d’algorithmes concrets.
Le dernier opus définissait un PRNG par opposition à un générateur de nombres réellement aléatoires (« True RNG » ou TRNG) alors même que leurs caractéristiques devraient être indiscernables. Ce n’est pas courant de chercher un résultat similaire à quelque chose, mais en devant faire tout l’inverse !
Ce paradoxe n’est pas le seul : à mesure que nous construisons un algorithme de PRNG idéal, en appliquant des contraintes de plus en plus fortes, les séquences possibles sont de moins en moins nombreuses, afin de complètement satisfaire le critère primordial d’indiscernabilité. Cela conduit à une autre contradiction : un PRNG a un espace de validité très restreint puisqu’il est cyclique, alors que celui d’un TRNG est infini. Mais commençons par le début.
1. Le retour des permutations
L’article de janvier [2] a montré l’importance des permutations pour construire les corps de Galois, et dans ce chapitre, nous les retrouvons à un niveau...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première