phhsnews.com


phhsnews.com / Comment les ordinateurs génèrent des nombres aléatoires

Comment les ordinateurs génèrent des nombres aléatoires


Les ordinateurs génèrent un nombre aléatoire pour tout, de la cryptographie aux jeux vidéo et au jeu. Il existe deux catégories de nombres aléatoires - "vrais" nombres aléatoires et pseudo-aléatoires - et la différence est importante pour la sécurité des systèmes de chiffrement.

Les ordinateurs peuvent générer des nombres vraiment aléatoires en observant des données extérieures , qui n'est pas prévisible, et en créant des données à partir de celui-ci. C'est ce qu'on appelle l'entropie. D'autres fois, ils génèrent des nombres "pseudo-aléatoires" en utilisant un algorithme de sorte que les résultats semblent aléatoires, même s'ils ne le sont pas.

Ce sujet est devenu plus controversé récemment, de nombreuses personnes s'interrogeant puce est digne de confiance. Pour comprendre pourquoi il n'est pas digne de confiance, vous devez comprendre comment les nombres aléatoires sont générés en premier lieu, et à quoi ils servent.

Quels sont les nombres aléatoires utilisés

Les nombres aléatoires ont été utilisés pour plusieurs milliers d'années. Qu'il s'agisse de lancer une pièce de monnaie ou de lancer un dé, le but est de laisser le résultat final au hasard. Les générateurs de nombres aléatoires dans un ordinateur sont similaires - ils sont une tentative d'obtenir un résultat aléatoire imprévisible

LIÉS: Qu'est-ce que le chiffrement et comment ça marche?

Les générateurs de nombres aléatoires sont utiles pour beaucoup objectifs différents. Mis à part les applications évidentes comme générer des nombres aléatoires à des fins de jeu ou créer des résultats imprévisibles dans un jeu d'ordinateur, le hasard est important pour la cryptographie.

La cryptographie nécessite des nombres que les pirates ne peuvent deviner. Nous ne pouvons pas utiliser les mêmes chiffres encore et encore. Nous voulons générer ces nombres d'une manière très imprévisible afin que les attaquants ne puissent pas les deviner. Ces nombres aléatoires sont essentiels pour le chiffrement sécurisé, que vous cryptiez vos propres fichiers ou que vous utilisiez simplement un site Web HTTPS sur Internet

Numéros aléatoires réels

Vous vous demandez peut-être comment un ordinateur peut en fait générer un nombre aléatoire. D'où vient ce "hasard"? Si c'est juste un morceau de code informatique, n'est-il pas possible que les nombres générés par l'ordinateur soient prévisibles?

Nous regroupons généralement les nombres aléatoires générés par les ordinateurs en deux types, selon la façon dont ils sont générés: nombres et nombres pseudo-aléatoires.

Pour générer un "vrai" nombre aléatoire, l'ordinateur mesure un certain type de phénomène physique qui se produit en dehors de l'ordinateur. Par exemple, l'ordinateur pourrait mesurer la décroissance radioactive d'un atome. Selon la théorie des quanta, il n'y a aucun moyen de savoir avec certitude quand la désintégration radioactive se produira, donc c'est essentiellement "pur hasard" de l'univers. Un attaquant ne serait pas capable de prédire quand la désintégration radioactive se produirait, donc il ne connaîtrait pas la valeur aléatoire.

Pour un exemple plus quotidien, l'ordinateur pourrait compter sur le bruit atmosphérique ou simplement utiliser la valeur exacte. temps que vous appuyez sur les touches de votre clavier comme une source de données imprévisibles, ou entropie. Par exemple, votre ordinateur peut remarquer que vous avez appuyé sur une touche à exactement 0,23423523 secondes après 14 heures ... Prenez assez de temps spécifiques associés à ces touches et vous aurez une source d'entropie que vous pouvez utiliser pour générer un "vrai" aléatoire nombre. Vous n'êtes pas une machine prévisible, donc un attaquant ne peut pas deviner le moment précis où vous appuyez sur ces touches. Le périphérique / dev / random sur Linux, qui génère des nombres aléatoires, "bloque" et ne renvoie pas de résultat jusqu'à ce qu'il recueille suffisamment d'entropie pour renvoyer un nombre vraiment aléatoire.

Numéros pseudo-aléatoires

Les nombres pseudo-aléatoires sont une alternative "Vrais" nombres aléatoires. Un ordinateur pourrait utiliser une valeur de départ et un algorithme pour générer des nombres qui semblent aléatoires, mais qui sont en fait prévisibles. L'ordinateur ne rassemble pas de données aléatoires dans l'environnement.

Ce n'est pas nécessairement une mauvaise chose dans toutes les situations. Par exemple, si vous jouez à un jeu vidéo, cela n'a pas vraiment d'importance si les événements qui se produisent dans ce jeu sont encadrés par de «vrais» nombres aléatoires ou des nombres pseudo-aléatoires. D'un autre côté, si vous utilisez le cryptage, vous ne voulez pas utiliser les nombres pseudo-aléatoires qu'un intrus pourrait deviner.

Par exemple, supposons qu'un attaquant connaisse l'algorithme et la valeur de départ utilisée par un générateur de nombres pseudo-aléatoires. Et supposons qu'un algorithme de cryptage obtienne un nombre pseudo-aléatoire de cet algorithme et l'utilise pour générer une clé de cryptage sans ajouter de caractère aléatoire supplémentaire. Si un attaquant en sait assez, ils pourraient travailler en arrière et déterminer le nombre pseudo-aléatoire que l'algorithme de cryptage doit avoir choisi dans ce cas, brisant le cryptage.

La NSA et Intel Random Number Generator

Pour faciliter les choses aider à générer des nombres aléatoires sécurisés, les puces Intel comprennent un générateur de nombres aléatoires matériel connu sous le nom RdRand. Cette puce utilise une source d'entropie sur le processeur et fournit des nombres aléatoires au logiciel lorsque le logiciel le demande.

Le problème ici est que le générateur de nombres aléatoires est essentiellement une boîte noire et nous ne savons pas ce qui se passe à l'intérieur. Si RdRand contenait une porte dérobée NSA, le gouvernement serait capable de casser les clés de chiffrement qui ont été générées avec seulement les données fournies par ce générateur de nombres aléatoires.

Ceci est une préoccupation sérieuse. En décembre 2013, les développeurs de FreeBSD ont supprimé le support de l'utilisation de RdRand comme source de hasard, disant qu'ils ne pouvaient pas lui faire confiance. [Source] La sortie du périphérique RdRand serait introduite dans un autre algorithme qui ajouterait une entropie supplémentaire, garantissant que les portes dérobées dans le générateur de nombres aléatoires n'auraient pas d'importance. Linux a déjà fonctionné de cette manière, rendant encore plus aléatoires les données aléatoires provenant de RdRand, de sorte qu'il ne serait pas prévisible, même s'il y avait une porte dérobée. [Source] Dans un récent AMA ("Ask Me Anything") sur Reddit, le PDG d'Intel, Brian Krzanich, n'a pas répondu à ces questions. [Source]

Bien sûr, ce n'est probablement pas un problème avec les puces Intel. Les développeurs de FreeBSD ont aussi appelé les puces de Via par leur nom. Cette controverse montre pourquoi générer des nombres aléatoires qui sont vraiment aléatoires et non prévisibles est si important.


Pour générer de vrais nombres aléatoires, les générateurs de nombres aléatoires recueillent des données "entropiques" ou apparemment aléatoires du monde physique qui les entoure. Pour les nombres aléatoires qui ne sont pas vraiment doivent être aléatoires, ils peuvent simplement utiliser un algorithme et une valeur initiale

Crédit image: rekre89 sur Flickr, Lisa Brewster sur Flickr, Ryan Somma sur Flickr, huangjiahui sur Flickr


Comment faire taire les sons de notification de WhatsApp Group

Comment faire taire les sons de notification de WhatsApp Group

Les chats de groupe sont le fléau de la plupart des utilisateurs de WhatsApp. Juste au moment où vous mettez votre téléphone, vos camarades décident de résoudre la faim dans le monde, le problème de la prolifération nucléaire et la décision inadmissible de repousser la saison finale de Game of Thrones à 2019.

(how-top)

Création de lecteurs USB et de cartes SD amorçables pour chaque système d'exploitation

Création de lecteurs USB et de cartes SD amorçables pour chaque système d'exploitation

La création de supports d'installation pour votre système d'exploitation de prédilection était simple. Il suffit de télécharger un ISO et le graver sur CD ou DVD. Maintenant, nous utilisons des lecteurs USB, et le processus est un peu différent pour chaque système d'exploitation. Vous ne pouvez pas copier les fichiers d'une image de disque ISO directement sur votre clé USB.

(how-top)