Calculatrices Mathématiques
Générateur de nombres


Générateur de nombres

Le générateur de nombres aléatoires fournit un ensemble de nombres aléatoires selon les options spécifiées par l'utilisateur, telles que la plage, la répétition et le tri.

Options

Nombres aléatoires

48, 9, 49, 11, 17, 22, 16, 37, 45, 41, 4, 36, 43, 10, 28, 27, 47, 25, 21, 33

Il y avait une erreur avec votre calcul.

Table des Matières

  1. L'utilisation des générateurs de nombres aléatoires
  2. La différence entre une séquence aléatoire et une séquence non aléatoire
  3. Les types de générateurs de nombres aléatoires
    1. Le générateur de Google
  4. La méthode linéaire congruente
  5. Générateurs de nombres aléatoires matériels modernes
    1. QRBG121
    2. Lampes à lave
    3. HotBits
    4. Fluctuations quantiques du vide
    5. Générateur de nanotubes de carbone
    6. Cubes et l'Electronic Frontier Foundation (EFF)
    7. Un générateur de nombres aléatoires quantiques à partir d'un smartphone Nokia

Générateur de nombres

Comme son nom l'indique, un générateur de nombres aléatoires est un processus permettant d'obtenir un nombre aléatoire à chaque fois que cela est nécessaire, sans possibilité de définir un modèle à partir de nombres générés précédemment. Ce nombre peut être généré soit par un algorithme, soit par un dispositif matériel.

L'utilisation des générateurs de nombres aléatoires

La génération de nombres aléatoires est nécessaire pour diverses tâches, des jeux informatiques aux applications courantes. Par exemple, le système utilise un générateur de nombres aléatoires pour afficher une bannière ou une unité publicitaire aléatoire sur un site Web. En cryptographie, les nombres aléatoires sont également utilisés pour créer un code ou une clé unique.

La génération de nombres aléatoires est utilisée pour générer des nombres ou du texte pour captcha, le cryptage, la génération de sel pour le stockage de mots de passe, un générateur de mots de passe, un ordre de cartes dans un casino en ligne, la prise de décision, l'échantillonnage et la simulation.

L'algorithme du générateur de nombres aléatoires est souvent utilisé dans les jeux vidéo. Même si vous jouez au même niveau dans un jeu, ce ne sera pas exactement la même chose à chaque fois que vous tenterez d'accomplir une mission. Les différences ne seront pas visibles dans le lieu ou la mission. En revanche, elles se verront dans le nombre d'ennemis qui approchent et les zones où ils apparaissent, les changements climatiques et les divers obstacles rencontrés. Cela rend le jeu plus passionnant.

La différence entre une séquence aléatoire et une séquence non aléatoire

Soit une séquence de nombres : 1 , 2 , 3 , 4 , 5. Est-elle aléatoire ?

Une variable aléatoire est une variable qui prend l'une de certaines valeurs à la suite d'un essai. Et vous ne pouvez pas prédire avec précision l'occurrence d'une valeur particulière avant qu'elle n'apparaisse.

Disons que les nombres donnés ont été obtenus en tapant sur l'une des rangées supérieures du clavier. Dans ce cas, il s'avère que cette combinaison n'est pas aléatoire car, après 5, le nombre suivant, 6, peut être prédit avec une forte probabilité.

La séquence ne sera aléatoire que s'il n'y a pas de dépendance entre les symboles.

La condition de base, qui est cruciale pour les principes corrects et équitables du générateur de nombres aléatoires, est une probabilité absolument égale de tout nombre possible qui ne peut que tomber dans le système créé. Cela démontre l'indépendance totale du facteur et des autres nombres qui sont tombés avant ou après.

Par exemple, si vous lancez un dé à six faces pour la première fois, vous pouvez faire tomber absolument n'importe quel nombre de 1 à 6 avec la même probabilité. Quel que soit le chiffre que vous obtenez, vous pouvez relancer le dé avec la même chance d'obtenir le même chiffre au deuxième, au centième ou au millième lancer.

La séquence de chiffres du nombre Pi semble ne pas être répétitive, et pour beaucoup, elle peut sembler aléatoire. Supposons que notre générateur hypothétique s'appuie sur la représentation binaire de Pi, à partir d'un point non divulgué. Un tel générateur pourrait être imprévisible dans de nombreux contextes, et pourrait passer certains tests d'aléa. Toutefois, le fait de s'appuyer sur Pi à des fins cryptographiques présente des risques. Si un adversaire détermine le segment spécifique de Pi utilisé, il peut prédire les segments précédents et suivants, ce qui compromet la sécurité du système.

Le National Institute of Standards and Technology des États-Unis a proposé le "Statistical Test Package for Random and Pseudorandom Number Generators for Cryptographic Applications". Il comprend 15 tests statistiques dont le but est de déterminer la mesure du caractère aléatoire des bits générés par des générateurs matériels ou logiciels.

Les types de générateurs de nombres aléatoires

Il existe deux types de générateurs de nombres aléatoires (RNG) : les générateurs de nombres aléatoires réels (TRNG) et les générateurs de nombres pseudo-aléatoires (PRNG). Les TRNGs utilisent des phénomènes physiques pour générer des nombres, tandis que les PRNGs utilisent des algorithmes mathématiques.

L'algorithme d'un vrai générateur de nombres aléatoires est créé à l'aide d'un dispositif matériel qui utilise de minuscules processus physiques pour générer des nombres aléatoires, à savoir l'entropie. L'entropie est un chaos pur et non filtré.

Les vrais générateurs de nombres aléatoires utilisent des phénomènes physiques tels que :

  • la radioactivité,
  • le bruit thermique,
  • le bruit électromagnétique,
  • la mécanique quantique, et autres.

Un véritable RNG est couramment utilisé dans les systèmes de sécurité du monde entier et dans certaines formes de cryptage.

Les générateurs de nombres aléatoires utilisent des sources d'entropie pour accumuler de l'entropie et obtenir ensuite la valeur initiale (graine) nécessaire aux générateurs de nombres aléatoires.

L'algorithme des générateurs de nombres pseudo-aléatoires est utilisé dans des domaines qui ne posent pas de problèmes de sécurité, et le caractère aléatoire est utilisé pour éviter les répétitions et rendre quelque chose plus attrayant pour l'utilisateur final. La mise en œuvre de la technologie des générateurs de nombres pseudo-aléatoires est moins coûteuse et plus rapide car elle ne nécessite pas de matériel et peut facilement être intégrée au code du programme. Bien que le processus ne soit pas entièrement aléatoire et soit déterminé sur la base d'un algorithme, il est plus adapté aux jeux et aux programmes.

Le PRNG utilise une seule valeur initiale, dont découle son caractère pseudo-aléatoire. En même temps, le véritable générateur de nombres aléatoires génère toujours un nombre aléatoire en ayant une valeur aléatoire de haute qualité fournie au départ par diverses sources d'entropie.

La génération de nombres pseudo-aléatoires a ses inconvénients. Ils fonctionnent parce qu'ils sont aléatoires pour un œil non averti. Toutefois, si vous connaissiez la valeur initiale d'une séquence particulière de PRNG, vous pourriez prédire quels seront les numéros suivants.

Les amateurs de jeux vidéo rapides exploitent souvent cette vulnérabilité, qu'ils appellent la manipulation du PRNG. Ils font en sorte que le jeu se déroule de manière prévisible, afin de pouvoir le réussir le plus rapidement possible. Heureusement, cela n'entraîne pas de problèmes critiques.

Mais il y a des moments où la prédiction des nombres aléatoires est beaucoup plus critique. Par exemple, lors de la création de clés de sécurité.

Si l'attaquant découvre la valeur initiale utilisée pour créer les clés RSA dans les certificats TLS, il peut potentiellement décrypter le trafic réseau. Cela signifie qu'il peut obtenir des mots de passe et d'autres informations personnelles envoyées sur Internet.

Dans ces situations, il faut trouver un moyen plus sûr d'obtenir des nombres aléatoires, c'est-à-dire un véritable générateur de nombres aléatoires.

Le générateur de Google

Google dispose de son propre outil de génération de nombres aléatoires basé sur JavaScript. Cet outil peut s'avérer utile lors de jeux entre amis ou en famille. Vous pouvez trouver ce générateur si vous tapez la requête de recherche Google "générateur de nombres aléatoires".

La méthode linéaire congruente

L'un des algorithmes les plus populaires pour les générateurs de nombres pseudo-aléatoires est la méthode linéaire congruente. Elle est utilisée dans des cas simples et n'a aucune force cryptographique. Derrick Henry Lehmer a proposé la méthode de congruence linéaire en 1949.

Pour mettre en œuvre la génération de nombres par cette méthode, nous devons choisir quatre nombres :

m > 0, modulo

0 ≤ a ≤ m, le multiplicateur

0 ≤ c ≤ m, l'incrément

0 ≤ X₀ ≤ m, le nombre initial

La séquence de nombres aléatoires elle-même est générée à l'aide de la formule :

Xₙ₊₁ = (aXₙ + c) mod m

Il est intéressant de noter que cette méthode dépend du choix des paramètres.

Par exemple, pour l'ensemble suivant :

X₀ = 3, a = 4, c = 5, m = 6

on obtient une courte séquence répétitive de

3, 5, 1, 3, 5, 1

qui ne semble pas aléatoire.

Mais cela vaut la peine de changer les paramètres pour quelque chose d'autre :

X₀ = 2, a = 85, c = 507, m = 1356

Et la dispersion des résultats devient plus imprévisible. Vous devez choisir les nombres pour cet algorithme avec une attention particulière.

2, 677, 1100, 443, 194, 725, 1112, 107, 110, 365, 344, 1271, 62, 353, 680, 1355, 422, 1121, 872, 47, 434, 785, 788, 1043, 1022, 593, 740, 1031, 2, 677, 1100, 443, 194, 725, 1112, 107, 110, 365, 344, 1271, 62, 353, 680, 1355, 422, 1121, 872, 47, 434, 785, 788, 1043, 1022, 593, 740, 1031, 2, 677, 1100, 443, 194, 725, 1112, 107, 110, 365...

Bien que la méthode de congruence linéaire génère une séquence de nombres pseudo-aléatoires statistiquement bonne, elle n'est pas cryptographiquement robuste. Les générateurs basés sur la méthode de la congruence linéaire sont prévisibles, vous ne pouvez donc pas les utiliser en cryptographie.

Les générateurs basés sur la méthode de la congruence linéaire ont été craqués pour la première fois par Jim Reeds en 1977, puis par Joan Boyar en 1982. Elle a également réussi à casser les générateurs quadratiques et cubiques. Ils ont ainsi prouvé l'inutilité des générateurs basés sur les méthodes congruentes pour la cryptographie. Cependant, les générateurs basés sur la méthode congruente linéaire conservent leur utilité pour des applications non cryptographiques, par exemple pour des simulations. Ils sont efficaces et montrent de bonnes performances statistiques dans la plupart des tests empiriques.

Générateurs de nombres aléatoires matériels modernes

QRBG121

L'effet aléatoire dans le dispositif dépend du processus physique quantique d'émission de photons dans les semi-conducteurs et de la détection ultérieure des photons individuels. Dans ce processus, les photons sont détectés de manière aléatoire, indépendamment les uns des autres, et les informations temporelles des photons détectés sont utilisées pour générer des bits.

Lampes à lave

Le bureau de CloudFlare à San Francisco abrite des générateurs de nombres aléatoires appelés "lampes à lave".

Une ampoule située au fond du récipient chauffe et illumine le contenu du cylindre, avec un mouvement de "lave" de la paraffine dans l'huile. La paraffine est légèrement plus lourde que l'huile, mais lorsqu'elle est légèrement chauffée, elle devient plus légère et flotte vers le haut.

Le mouvement des liquides est surveillé par plusieurs caméras qui prennent des clichés. Les instantanés sont convertis en chiffres, à partir desquels sont générées les clés de chiffrement.

Les deux autres bureaux de CloudFlare utilisent des méthodes différentes pour obtenir des valeurs aléatoires. À Londres, une caméra capte les mouvements de trois pendules chaotiques, et à Singapour, on a placé un compteur Geiger qui mesure la désintégration radioactive d'un petit morceau d'uranium. Dans ce dernier cas, l'uranium est utilisé comme "source de données" car le rayonnement radioactif se caractérise par le caractère aléatoire de chaque acte de désintégration.

HotBits

HotBits est un site qui fournit de véritables nombres aléatoires générés par un compteur Geiger qui enregistre des radiations ionisantes pour tout le monde. Vous remplissez un formulaire de demande sur le site en spécifiant le nombre d'octets aléatoires et choisissez votre méthode préférée pour obtenir les données. Une fois que les nombres aléatoires sont fournis au client, ils sont immédiatement retirés du système.

Fluctuations quantiques du vide

Contrairement à son nom ("vacuus" - vide), le vide ne peut pas être considéré comme vide. En vertu du principe d'incertitude d'Heisenberg, des particules virtuelles naissent et meurent sans cesse.

Des physiciens canadiens ont conçu un générateur de nombres aléatoires rapide et structurellement simple, basé sur les fluctuations du vide. Le générateur se compose d'un laser pulsé à haute fréquence de rayonnement, d'un milieu à haut indice de réfraction (diamant) et d'un détecteur. En traversant le diamant, chaque impulsion sur le détecteur présente des caractéristiques différentes en fonction des fluctuations du champ de vide rencontrées sur le trajet des photons.

Dans le spectre du rayonnement diffusé, des lignes spectrales apparaissent. En raison de l'imprévisibilité des fluctuations du vide, ces lignes diffèrent de manière imprévisible à chaque fois.

Générateur de nanotubes de carbone

Cette méthode combine compacité et génération de bruit thermique. Les chercheurs ont construit un générateur de nombres aléatoires à partir d'une cellule de mémoire vive statique imprimée avec des encres spéciales contenant des nanotubes de carbone semi-conducteurs. La cellule de mémoire utilise les fluctuations du bruit thermique pour générer des bits aléatoires.

Le générateur de nanotubes de carbone peut être imprimé sur des substrats plastiques flexibles, ce qui permet de l'intégrer dans de minuscules dispositifs électroniques flexibles, des capteurs portables, des étiquettes jetables et des vêtements intelligents.

Cubes et l'Electronic Frontier Foundation (EFF)

Cette société a proposé un moyen simple de créer des mots de passe sécurisés en utilisant un générateur de nombres aléatoires physiques. Il est basé sur les dés.

Vous lancez cinq dés à la fois et vous notez les chiffres obtenus. Les dés sont disposés de gauche à droite comme suit : 63131. Ensuite, vous ouvrez une longue liste de mots sur le site Web de l'EFF pour trouver le mot correspondant à côté de 63131. Ce mot est "turbofan".

Vous pouvez répéter cette procédure plusieurs fois. Par exemple, cinq fois. Vous pouvez vous retrouver avec une phrase de cinq mots. Par exemple, "turbofan purge unfitting try pruning". Si vous savez comment utiliser les règles de la mnémotechnie, vous pouvez mémoriser des phrases comme celles-ci.

Un générateur de nombres aléatoires quantiques à partir d'un smartphone Nokia

En 2014, l'Université de Genève a créé un dispositif QRNG qui utilisait l'appareil photo du smartphone Nokia N9.

L'appareil photo du smartphone comptait le nombre de photons frappant chaque pixel. La source lumineuse était une LED standard. Chaque pixel de l'appareil photo 8 MP a détecté environ 400 photons en un court laps de temps. Le nombre total de photons sur tous les pixels a ensuite été converti en une séquence de nombres aléatoires.