Capteurs de nombres aléatoires. Les Russes ont mis au point le « premier » générateur biologique de nombres aléatoires au monde. Comment travaille-t-il ? Vérification de l'occurrence de séries de nombres identiques

Capteurs de nombres aléatoires.  Les Russes ont mis au point le « premier » générateur biologique de nombres aléatoires au monde.  Comment travaille-t-il ?  Vérification de l'occurrence de séries de nombres identiques
Capteurs de nombres aléatoires. Les Russes ont mis au point le « premier » générateur biologique de nombres aléatoires au monde. Comment travaille-t-il ? Vérification de l'occurrence de séries de nombres identiques

Leçon 15. Le hasard est l'âme du jeu

Vous avez déjà beaucoup appris à la tortue. Mais elle en a aussi d'autres, possibilités cachées. Une tortue peut-elle faire seule quelque chose qui vous surprendra ?
Il s'avère que oui ! Il y a des tortues dans la liste des capteurs capteur nombres aléatoires :

aléatoire

Nous rencontrons souvent des nombres aléatoires : en lançant des dés dans un jeu d'enfants, en écoutant le coucou diseur de bonne aventure dans la forêt ou simplement en « devinant n'importe quel nombre ». Le capteur de nombres aléatoires de LogoWorlds peut prendre la valeur de n'importe quel nombre entier positif de 0 à la valeur limite spécifiée en paramètre.

Le nombre lui-même, spécifié comme paramètre du capteur de nombres aléatoires, n'apparaît jamais.

Par exemple, un capteur aléatoire 20 peut être n'importe quel nombre entier de 0 à 19, dont 19, un capteur aléatoire 1000 peut être n'importe quel nombre entier de 0 à 999, dont 999.
Vous vous demandez peut-être où en est le jeu : juste des chiffres. Mais n'oubliez pas que dans LogoWorlds, vous pouvez utiliser des nombres pour définir la forme de la tortue, l'épaisseur du stylo, sa taille, sa couleur et bien plus encore. L'essentiel est de choisir la bonne limite de valeurs. Les limites de modification des paramètres de base de la tortue sont indiquées dans le tableau.
Le générateur de nombres aléatoires peut être utilisé comme paramètre pour n'importe quelle commande, par exemple avant, droite et ainsi de suite.

Tâche 24. Utilisation du capteur de nombres aléatoires
Organisez l'un des jeux proposés ci-dessous à l'aide du capteur de nombres aléatoires et lancez la tortue.
Jeu 1 : Écran coloré
1. Placez la tortue au centre de l'écran.
2. Entrez les commandes dans le sac à dos et définissez le mode Plusieurs fois:

new_color aléatoire 140 peinture attendre 10

Équipe peinture effectue les mêmes actions que l'outil Remplissage dans l'éditeur graphique.
3. Exprimez l’intrigue.
Jeu 2 : « Le Peintre Joyeux » 1. Modifiez le jeu n°1 en traçant des lignes sur l'écran dans des zones aléatoires avec des limites continues :

2. Complétez les instructions du sac à dos tortue avec des tours et des mouvements aléatoires :

à droite aléatoire 360
transmettre aléatoire 150

Jeu 3 : "Tapis Patchwork"
Définissez les instructions dans le sac à dos pour déplacer la tortue ( en avant 60) avec une plume de 60 d'épaisseur abaissée d'une couleur aléatoire (0-139) sous petit angle (nouveau_cours 10).
Jeu 4 : "Chasse"
Développez une intrigue dans laquelle une tortue rouge chasse une tortue noire. La tortue noire se déplace le long d'une trajectoire aléatoire et la direction du mouvement de la tortue rouge est contrôlée par un curseur.

Questions pour la maîtrise de soi
1. Qu'est-ce qu'un générateur de nombres aléatoires ?
2. Quel est le paramètre du capteur de nombres aléatoires ?
3. Que signifie la valeur limite ?
4. Le nombre spécifié comme paramètre apparaît-il parfois ?

Une approche est proposée pour construire un capteur biologique de nombres aléatoires conçu pour générer des séquences aléatoires sur un ordinateur ou une tablette à une vitesse de plusieurs centaines de bits par minute. L'approche est basée sur le calcul d'un certain nombre de grandeurs associées à la réaction aléatoire de l'utilisateur à un processus pseudo-aléatoire affiché sur un écran d'ordinateur. Le processus pseudo-aléatoire se réalise à mesure que l'émergence et mouvement curviligne cercles sur l’écran dans une zone donnée.

Introduction

La pertinence des problèmes associés à la génération de séquences aléatoires (RS) pour les applications cryptographiques est due à leur utilisation dans les systèmes cryptographiques pour générer des informations clés et auxiliaires. Le concept même de hasard a des racines philosophiques, ce qui indique sa complexité. En mathématiques, il existe différentes approches pour définir le terme « hasard » ; leur aperçu est donné par exemple dans notre article « Les accidents ne sont-ils pas aléatoires ? . Les informations sur les approches connues pour définir le concept de « caractère aléatoire » sont systématisées dans le tableau 1.

Tableau 1. Approches pour déterminer le caractère aléatoire

Nom de l'approche Auteurs L'essence de l'approche
Fréquence von Mises, église, Kolmogorov, Loveland Dans la coentreprise, la stabilité de la fréquence d'apparition des éléments doit être observée. Par exemple, les signes 0 et 1 doivent apparaître indépendamment et avec des probabilités égales non seulement dans le SP binaire, mais également dans l'une de ses sous-séquences, choisies aléatoirement et quelles que soient les conditions initiales de génération.
Complexe Kolmogorov, Chaitin Toute description de la mise en œuvre d'une coentreprise ne peut être sensiblement plus courte que cette mise en œuvre elle-même. Autrement dit, la coentreprise doit avoir structure complexe, et l'entropie de ses éléments initiaux doit être grande. Une séquence est aléatoire si sa complexité algorithmique est proche de la longueur de la séquence.
Quantitatif Martin-Lof Partitionner l'espace probabiliste des séquences en séquences non aléatoires et aléatoires, c'est-à-dire en séquences qui « échouent » et « réussissent » un ensemble de tests spécifiques conçus pour identifier des modèles.
Cryptographique Approche moderne Une séquence est considérée comme aléatoire si la complexité informatique de la recherche de modèles n'est pas inférieure à une valeur donnée.

Lors de l'étude de la synthèse d'un capteur biologique de nombres aléatoires (ci-après dénommé BioRSN), il convient de prendre en compte la condition suivante : une séquence est considérée comme aléatoire si le caractère aléatoire de la source physique est prouvé, notamment la source est localement stationnaire et produit une séquence avec des caractéristiques données. Cette approche de la définition du caractère aléatoire est pertinente lors de la construction d'un BioDSCh, elle peut être conditionnellement qualifiée de « physique ». Le respect des conditions détermine l’adéquation de la séquence à une utilisation dans des applications cryptographiques.
Il existe diverses méthodes connues pour générer des nombres aléatoires sur un ordinateur, qui impliquent l'utilisation d'actions significatives et inconscientes de l'utilisateur comme source de caractère aléatoire. De telles actions incluent, par exemple, appuyer sur les touches du clavier, déplacer ou cliquer sur la souris, etc. La mesure du caractère aléatoire de la séquence générée est l'entropie. L'inconvénient de beaucoup méthodes connues est la difficulté d’estimer la quantité d’entropie obtenue. Les approches liées à la mesure des caractéristiques des mouvements humains inconscients permettent d'obtenir une fraction relativement faible de bits aléatoires par unité de temps, ce qui impose certaines restrictions sur l'utilisation des séquences générées dans les applications cryptographiques.

Processus pseudo-aléatoire et tâche utilisateur

Considérons la génération de SP en utilisant des réactions significatives des utilisateurs à un processus pseudo-aléatoire plutôt complexe. À savoir : à des moments aléatoires, les valeurs d'un certain ensemble de quantités variant dans le temps sont mesurées. Les valeurs aléatoires des grandeurs de processus sont ensuite représentées sous la forme d'une séquence aléatoire de bits. Les caractéristiques de l'application cryptographique et de l'environnement d'exploitation ont déterminé un certain nombre d'exigences pour le BioDSCh :
  1. Les séquences générées doivent être proches en caractéristiques statistiques des séquences aléatoires idéales, en particulier, la polarité (fréquence relative « 1 ») de la séquence binaire doit être proche de 1/2.
  2. Lors de la mise en œuvre du procédé par l'utilisateur moyen, la vitesse de génération doit être d'au moins 10 bits/sec.
  3. La durée de génération par l'utilisateur moyen de 320 bits (qui correspondent dans l'algorithme GOST 28147-89 à la somme de la longueur de la clé (256 bits) et de la longueur du message de synchronisation (64 bits)) ne doit pas dépasser 30 secondes.
  4. Facilité d'utilisation par l'utilisateur avec le programme BioDSCh.
Décrivons le principe de construction de la classe de BioDSCh considérée. Appelons la zone de travail un rectangle situé au centre du personnel ou Tablette et occupant la majeure partie de l'écran pour fournir à l'utilisateur une analyse visuelle pratique du processus. Dans le centre espace de travail sont générés séquentiellement à des intervalles de temps d'une fraction de seconde N cercles de diamètre d, d'où ils partent mouvement droit dans diverses directions. La direction de déplacement du i-ème cercle, généré au moment du i-ème clic de l'utilisateur (dans le cas d'une tablette, une pression du doigt), est déterminée par la direction du « vecteur de départ du cercle », invisible pour l'utilisateur, au même instant, qui tourne uniformément à une vitesse donnée autour du centre de la zone de travail, i=1,…,N.
Les cercles se déplacent comme des projections de boules sur une table de billard ; lorsqu'ils entrent en collision, ils se reflètent les uns sur les autres et depuis les limites de la zone de travail, changeant souvent la direction du mouvement et simulant un processus généralement chaotique de mouvement des cercles à travers l'œuvre. zone (Fig. 1).

Figure 1. Trajectoires de mouvement des centres de cercle à l'intérieur de la zone de travail

La tâche de l'utilisateur est de générer M bits aléatoires. Après l'apparition du dernier cercle dans la zone de travail, l'utilisateur doit supprimer rapidement tous les N cercles mobiles en cliquant dans un ordre aléatoire sur la zone de chaque cercle avec la souris (dans le cas d'une tablette, avec un doigt). La session de génération d'un certain nombre de bits SP se termine une fois tous les cercles supprimés. Si le nombre de bits générés dans une session n'est pas suffisant, alors la session est répétée autant de fois que nécessaire pour générer M bits.

Grandeurs mesurées par le processus

La génération de SP est réalisée en mesurant un certain nombre de caractéristiques du processus pseudo-aléatoire décrit à des instants aléatoires déterminés par la réaction de l'utilisateur. Plus le taux de génération de bits est élevé, plus les caractéristiques indépendantes sont mesurées. L'indépendance des caractéristiques mesurées signifie l'imprévisibilité de la valeur de chaque caractéristique selon valeurs connues autres caractéristiques.
A noter que chaque cercle se déplaçant sur l'écran est numéroté, divisé en 2 k secteurs égaux invisibles pour l'utilisateur, numérotés de 0 à 2 k -1, où k est un nombre naturel et tourne autour de son centre géométrique avec une vitesse angulaire donnée. L'utilisateur ne voit pas la numérotation des cercles et des secteurs d'un cercle.
Au moment de l'entrée dans le cercle (clic réussi ou pression du doigt), un certain nombre de caractéristiques du processus, appelées sources d'entropie, sont mesurées. Soit a i le point d'impact i-ème cercle, i=1,2,... Il convient alors d'inclure parmi les grandeurs mesurées :
  • Coordonnées X et Y du point a i ;
  • distance R du centre du cercle au point a i ;
  • numéro du secteur à l'intérieur du i-ème cercle contenant le point a i ;
  • numéro de cercle, etc.
Les valeurs mesurées sont converties en une représentation binaire dont les éléments sont ensuite filtrés lorsqu'ils sont inclus dans la séquence de bits résultante.

Résultats expérimentaux

Afin de déterminer les paramètres de mise en œuvre prioritaire de BioDSCh, environ 10 4 séances ont été réalisées par différents interprètes. Les expérimentations réalisées ont permis de déterminer les zones valeurs appropriées pour les paramètres du modèle BioDSCh : les dimensions de la zone de travail, le nombre et le diamètre des cercles, la vitesse de déplacement des cercles, la vitesse de rotation du « vecteur de départ des cercles », le nombre de secteurs dans lesquels sont les cercles divisé, la vitesse angulaire de rotation des cercles, etc.
Lors de l'analyse des résultats de l'opération BioDSCh, les hypothèses suivantes ont été faites :
  • les événements enregistrés sont indépendants dans le temps, c'est-à-dire que la réaction de l'utilisateur au processus observé à l'écran est difficile à reproduire avec haute précisionà la fois à un autre utilisateur et à l'utilisateur lui-même ;
  • les sources d'entropie sont indépendantes, c'est-à-dire qu'il est impossible de prédire les valeurs d'une caractéristique à partir des valeurs connues d'autres caractéristiques ;
  • la qualité de la séquence de sortie doit être évaluée en tenant compte des approches connues pour déterminer le caractère aléatoire (tableau 1), ainsi que de l'approche « physique ».
L'évaluation des intervalles de confiance pour les valeurs des grandeurs de processus calculées correspond à un niveau de signification de 0,05. Pour reconnaître l'uniformité de la distribution des signes de l'échantillon obtenu (après réduction sous forme binaire), le test du chi carré d'accord avec une distribution uniforme a été utilisé.
Conformément à la longueur des séquences binaires générées, une limitation acceptable de leur polarité p a été établie : |p-1/2|?b, où b?10 -2.
Le nombre de bits obtenus à partir des valeurs des grandeurs de processus mesurées (sources d'entropie) a été déterminé empiriquement sur la base d'une analyse de l'entropie informationnelle des valeurs des caractéristiques considérées. Il a été établi empiriquement que « supprimer » n'importe quel cercle permet d'obtenir environ 30 bits d'une séquence aléatoire. Par conséquent, avec les paramètres de mise en page BioDSCh utilisés, 1 à 2 sessions de fonctionnement BioDSCh suffisent pour générer la clé et le vecteur d'initialisation de l'algorithme GOST 28147-89.
Les orientations pour améliorer les caractéristiques des générateurs biologiques doivent être associées à la fois à l'optimisation des paramètres de cet agencement et à l'étude d'autres agencements BioDSCh.

PRNG déterministes

Aucun algorithme déterministe ne peut générer des nombres complètement aléatoires ; il ne peut que se rapprocher de certaines propriétés des nombres aléatoires. Comme le disait John von Neumann : « quiconque a un faible pour les méthodes arithmétiques permettant d'obtenir des nombres aléatoires commet sans aucun doute un péché.».

Tout PRNG avec des ressources limitées évolue tôt ou tard dans des cycles - il commence à répéter la même séquence de nombres. La longueur des cycles PRNG dépend du générateur lui-même et est en moyenne d'environ 2n/2, où n est la taille de l'état interne en bits, bien que les générateurs linéaires congruents et LFSR aient des cycles maximum de l'ordre de 2n. Si un PRNG peut converger vers des cycles trop courts, le PRNG devient prévisible et inutilisable.

La plupart des générateurs arithmétiques simples, bien que très rapides, souffrent de nombreux inconvénients sérieux :

  • La ou les périodes sont trop courtes.
  • Les valeurs consécutives ne sont pas indépendantes.
  • Certains bits sont « moins aléatoires » que d’autres.
  • Distribution unidimensionnelle inégale.
  • Réversibilité.

En particulier, l'algorithme du mainframe s'est avéré très médiocre, ce qui a soulevé des doutes sur la validité des résultats de nombreuses études utilisant cet algorithme.

PRNG avec source d'entropie ou RNG

Tout comme il est nécessaire de générer des séquences de nombres aléatoires facilement reproductibles, il existe également un besoin de générer des nombres complètement imprévisibles ou simplement complètement aléatoires. De tels générateurs sont appelés générateurs de nombres aléatoires(RNG - anglais) générateur de nombres aléatoires, RNG). Étant donné que de tels générateurs sont le plus souvent utilisés pour générer des clés symétriques et asymétriques uniques pour le chiffrement, ils sont le plus souvent construits à partir d'une combinaison d'un PRNG cryptographiquement fort et d'une source externe d'entropie (et c'est précisément cette combinaison qui est maintenant communément comprise comme une source d'entropie externe). RNG).

Presque tous les grands fabricants de puces fournissent des RNG matériels avec différentes sources entropie utilisant diverses méthodes pour les débarrasser de l’inévitable prévisibilité. Cependant, sur ce moment la vitesse à laquelle les nombres aléatoires sont collectés par toutes les puces existantes (plusieurs milliers de bits par seconde) ne correspond pas à la vitesse des processeurs modernes.

DANS Ordinateur personnel les auteurs de logiciels RNG utilisent des sources d'entropie beaucoup plus rapides, telles que le bruit carte son ou compteur de cycles du processeur. Avant qu’il ne devienne possible de lire les valeurs des compteurs d’horloge, la collecte d’entropie était le point le plus vulnérable du RNG. Ce problème n'est pas encore entièrement résolu dans de nombreux appareils (par exemple les cartes à puce), qui restent donc vulnérables. De nombreux RNG utilisent encore des méthodes traditionnelles (obsolètes) de collecte d'entropie, telles que la mesure des réactions des utilisateurs (mouvements de la souris, etc.), comme par exemple, ou l'interaction entre les threads, comme dans Java Secure Random.

Exemples de sources RNG et d'entropie

Quelques exemples de RNG avec leurs sources et générateurs d'entropie :

Source d'entropie PRNG Avantages Défauts
/dev/random sous Linux Compteur d'horloge du processeur, cependant collecté uniquement lors d'interruptions matérielles LFSR, avec sortie hachée viaIl « chauffe » très longtemps, peut « rester bloqué » longtemps, ou fonctionne comme un PRNG ( /dev/urandom)
Achillée par Bruce Schneier Méthodes traditionnelles (obsolètes) AES-256 etConception flexible et résistante aux cryptomonnaies Prend beaucoup de temps à « chauffer », état interne très petit, dépend trop de la force cryptographique des algorithmes sélectionnés, lent, applicable exclusivement pour la génération de clés
Générateur par Leonid Yuriev Bruit de la carte son ? Très probablement une bonne et rapide source d’entropie Aucun PRNG indépendant, connu et crypto-forté, disponible exclusivement sous Windows
Microsoft Intégré à Windows, ne reste pas bloqué Petit état interne, facile à prédire
Communication entre les threads Il n'y a pas encore d'autre choix en Java, il y a un grand état interne Collecte d'entropie lente
Chaos par Ruptor Compteur d'horloge du processeur, collecté en continu Hachage de l'état interne de 4096 bits basé sur une variante non linéaire du générateur Marsaglia Jusqu’à ce que le plus rapide de tous, le grand État interne, se retrouve « bloqué »
RRAND de Ruptor Compteur de cycles du processeur Chiffrement de l'état interne avec un chiffrement de fluxTrès rapide, état interne de taille arbitraire au choix, pas de « coincé »

PRNG en cryptographie

Un type de PRNG sont les PRBG - générateurs de bits pseudo-aléatoires, ainsi que divers chiffrements de flux. Les PRNG, comme les chiffrements de flux, consistent en un état interne (dont la taille varie généralement de 16 bits à plusieurs mégaoctets), une fonction permettant d'initialiser l'état interne avec une clé ou graine(Anglais) graine), les fonctions de mise à jour de l'état interne et les fonctions de sortie. Les PRNG sont divisés en arithmétique simple, cryptographique brisée et cryptographique forte. Leur objectif général est de générer des séquences de nombres qui ne peuvent être distinguées du hasard par des méthodes informatiques.

Bien que de nombreux PRNG ou chiffrements de flux puissants offrent des nombres beaucoup plus « aléatoires », ces générateurs sont beaucoup plus lents que les générateurs arithmétiques conventionnels et peuvent ne pas convenir à tout type de recherche nécessitant que le processeur soit libre pour des calculs plus utiles.

À des fins militaires et conditions de terrain Seuls les PRNG (chiffrements de flux) cryptographiques synchrones et secrets ne sont pas utilisés ; Des exemples de PRNG cryptographiquement forts bien connus sont ISAAC, SEAL, Snow, l'algorithme théorique très lent de Blum, Blum et Shub, ainsi que des compteurs avec des fonctions de hachage cryptographique ou des chiffrements par blocs cryptographiquement forts au lieu d'une fonction de sortie.

PRNG matériel

Hormis les anciens générateurs LFSR bien connus qui ont été largement utilisés comme PRNG matériels au 20e siècle, malheureusement, on sait très peu de choses sur les PRNG matériels modernes (chiffrements de flux), car la plupart d'entre eux ont été développés à des fins militaires et sont gardés secrets. . Presque tous les PRNG matériels commerciaux existants sont brevetés et également gardés secrets. Les PRNG matériels sont limités par des exigences strictes en matière de mémoire consommable (le plus souvent l'utilisation de la mémoire est interdite), de vitesse (1 à 2 cycles d'horloge) et de surface (plusieurs centaines de FPGA - ou

En raison du manque de bons PRNG matériels, les fabricants sont obligés d'utiliser les chiffrements par blocs beaucoup plus lents, mais bien connus, disponibles à portée de main (Computer Review No. 29 (2003).

  • Youri Lifshits. Cours « Problèmes modernes de cryptographie » Cours 9 : Générateurs pseudo-aléatoires
  • L. Barash. Algorithme AKS pour vérifier la primalité des nombres et rechercher des constantes de générateur de nombres pseudo-aléatoires
  • Jelnikov Vladimir. Séquences pseudo-aléatoires de nombres // Cryptographie du papyrus à l'ordinateur M. : ABF, 1996.
  • random.org (anglais) - service en ligne pour générer des nombres aléatoires
  • Nombres aléatoires cryptographiques
  • Théorie et pratique de la génération de nombres aléatoires
  • Zvi Gutterman, Benny Pinkas, Tzachy Reinman. Analyse du générateur de nombres aléatoires Linux
  • Une suite de tests statistiques pour les générateurs de nombres aléatoires et pseudo-aléatoires pour les applications cryptographiques NIST SP 800-22
  • Il en existe trois fondamentalement différents différentes façons obtention de nombres utilisés de manière aléatoire : physiques, tabulaires et algorithmiques.

    On pense que la première tentative de création d’un générateur physique de nombres aléatoires remonte à 3 500 avant JC. et est associé à jeu de plateau senet, divertissement social égyptien antique. Selon les reconstructions modernes des règles du jeu, quatre bâtons plats, dont un côté était blanc et l'autre noir, étaient utilisés pour déterminer le nombre de points marqués par chaque joueur et l'ordre des coups dans ce jeu. Les bâtons étaient lancés simultanément et, selon la combinaison de couleurs qui tombaient, les caractéristiques supplémentaires joueurs. Au début du 20ème siècle. des séquences de nombres aléatoires ont été simulées manuellement - en lançant une pièce de monnaie ou un dé, en disposant jouer aux cartes, roulette, retirer des boules d'une urne, etc. Les capteurs physiques (matériels) modernes sont des dispositifs spéciaux qui génèrent des nombres aléatoires basés sur la transformation d'un bruit aléatoire, naturel ou origine artificielle(bruit thermique, effet de tir dans les tubes à vide, désintégration radioactive etc.). Par exemple, une voiture ERNIE 4 (équipement indicateur électronique de nombres aléatoires)),

    • 1 Parfois, bien que rarement, la distribution spécifiée par le tableau 0 1 ... 8 9 est considérée comme standard
    • 0,1 0,1 ... 0,1 0,1/ qui est utilisé pour déterminer les numéros gagnants de la loterie britannique mensuelle, comme source Variables aléatoires utilise le bruit thermique des transistors. U méthode physique L’obtention d’une séquence de nombres aléatoires présente des caractéristiques qui constituent des inconvénients pour le modèle de simulation. Celles-ci incluent tout d'abord la nécessité de mesures spéciales pour assurer la stabilité de la source de signal convertie en nombres aléatoires et l'impossibilité de reproduire la séquence de nombres aléatoires résultante.

    Les tables de nombres aléatoires sont supprimées les lacunes mentionnées. Expliquons ce qu'on entend par tableau de nombres aléatoires. Supposons que nous ayons implémenté N expériences indépendantes, à la suite desquelles ils ont obtenu des nombres aléatoires a, a 2, osdg. L'écriture de ces nombres (dans l'ordre d'apparition et sous forme d'un tableau rectangulaire) donnera ce qu'on appelle un tableau de nombres aléatoires. Il est utilisé comme suit. Lors des calculs, nous pouvons avoir besoin soit d'un chiffre aléatoire, soit d'un nombre aléatoire. Si un nombre aléatoire est requis, nous pouvons alors prendre n’importe quel nombre de ce tableau. La même chose s'applique au cas d'un nombre aléatoire entier - pour chaque chiffre, vous pouvez choisir n'importe quel chiffre. Si nous avons besoin d'un nombre aléatoire 0 k des chiffres suivants сс, et 2 , ос/, et supposons que 8 = (Hoco^.-.o^. Dans ce cas, dans le cas d'une table « idéale » de chiffres aléatoires , nous pouvons en sélectionner des chiffres au hasard, éventuellement dans une rangée, vous pouvez utiliser n'importe quel algorithme de sélection qui ne dépend pas des valeurs des numéros du tableau, partir de n'importe quel endroit du tableau, lire dans n'importe quelle direction.

    Les premiers tableaux de nombres aléatoires ont été obtenus à l'aide de roulettes. Ces tableaux ont été publiés à plusieurs reprises sous forme de livre. L'un des tableaux les plus célèbres, publié en 1927, contenait plus de 40 000 nombres aléatoires « tirés au hasard des rapports de recensement ».

    Référence historique

    Léonard Tippett (Leonard Henry Caleb Tippett, 1902-1985) - statisticien anglais, élève de K. Pearson et R. Fisher. En 1965-1966 - Président de la Royal Statistical Society. Certains résultats importants de la théorie des valeurs extrêmes sont associés à son nom, par exemple la distribution de Fisher-Tippett et le théorème de Fisher-Tippett-Gnedenko.

    Plus tard, des dispositifs spéciaux (machines) ont été conçus pour générer mécaniquement des nombres aléatoires. La première machine de ce type a été utilisée en 1939 par M. J. Kendall et B. Babington-Smith pour créer des tableaux contenant 100 000 chiffres aléatoires. En 1955, l'entreprise Société RAND a publié les célèbres tables contenant un million de chiffres aléatoires obtenus par une autre machine de ce type. Utilisation pratique les tableaux de nombres aléatoires sont actuellement limités, en règle générale, aux problèmes dans lesquels des méthodes de sélection aléatoire sont utilisées

    des échantillons, par exemple, dans le cadre de recherches sociologiques ou lors de contrôles statistiques d'acceptation de la qualité de produits à la pièce à des fins diverses.

    C'est intéressant

    En Russie, GOST 18321-73 (ST SEV 1934-79) est en vigueur, établissant les règles de sélection des unités de produits dans l'échantillon lors de la réalisation d'un contrôle qualité d'acceptation statistique, de méthodes statistiques d'analyse et de régulation. processus technologiques pour tous types de produits à la pièce à usage industriel et technique et de biens de consommation. Il précise notamment que lors de la sélection des unités de produits pour l'échantillon, "des tableaux de nombres aléatoires sont utilisés conformément à ST SEV 546-77".

    appliquer à plusieurs reprises ; tous les nombres sont faciles à reproduire ; et l'offre de numéros dans une telle séquence est limitée. Cependant, une séquence de nombres pseudo-aléatoires présente un avantage évident par rapport à un tableau : il existe formules simples pour calculer un nombre pseudo-aléatoire, alors que seules 3 à 5 commandes sont consacrées à l'obtention de chaque nombre et que le programme de calcul n'occupe que quelques cellules dans le lecteur.

    Il existe de nombreux algorithmes permettant d'obtenir des séquences de nombres pseudo-aléatoires ; les implémentations de tels algorithmes, appelées capteurs (générateurs) de nombres pseudo-aléatoires, sont décrites de manière assez détaillée dans la littérature spécialisée. Indiquons quelques-uns des algorithmes les plus connus.

    • Tippett L. Numéros d'échantillonnage aléatoires. Londres : Cambridge University Press, 1927.
    • Voir : Knuth D. E. L'art de la programmation. 3e éd. M. : Williams, 2000. T. 2. Ch. 3. Nombres aléatoires.

    19/09/2017, mar, 13h18, heure de Moscou , Texte : Valeria Shmyrova

    La société Security Code, développeur du complexe cryptographique Continent, a reçu un brevet pour un capteur biologique de nombres aléatoires. Il s’agit précisément d’un capteur biologique, puisque le hasard repose sur la réaction de l’utilisateur à l’image qui lui est présentée. L'entreprise assure que de telles technologies n'ont jamais été brevetées dans le monde auparavant.

    Obtention d'un brevet

    La société Security Code a reçu un brevet pour la technologie des capteurs biologiques de nombres aléatoires. Selon les développeurs, lors de la création de la technologie, « une nouvelle approche pour résoudre le problème de la génération de nombres aléatoires à l'aide d'un ordinateur et d'une personne » a été utilisée. Le développement est déjà utilisé dans un certain nombre de produits, notamment Continent-AP, Secret Net Studio, Continent TLS et Jinn, ainsi que dans la bibliothèque cryptographique SCrypt.

    Comme l'ont expliqué les représentants de l'entreprise à CNews, les travaux sur le capteur durent depuis maintenant trois ans. Il se compose d’une partie scientifique, d’une partie mise en œuvre et d’une partie expérimentale. Trois personnes sont responsables de la partie scientifique de l'entreprise ; toute l'équipe de programmeurs a participé au développement, et les tests et expériences ont été réalisés par toute l'équipe, soit plusieurs centaines de personnes.

    Capacités technologiques

    Un nouveau capteur peut générer des séquences aléatoires sur des appareils personnels – pas besoin de le faire appareils supplémentaires ou des modules complémentaires matériels. Il peut être utilisé dans le cryptage de données et dans tout domaine où des séquences binaires aléatoires sont nécessaires. Selon les développeurs, avec son aide, les clés de cryptage sont créées beaucoup plus rapidement sur appareils mobiles. Cette propriété peut être utilisée pour chiffrer des données ou générer une signature électronique.

    Comme expliqué Alisa Koreneva, analyste du système « Code de sécurité », le capteur de l’entreprise génère des séquences aléatoires basées sur la vitesse et la précision de la réponse de la main de l’utilisateur aux changements d’image sur l’écran du PC ou de la tablette. Une souris ou un écran tactile est utilisé pour la saisie. Cela ressemble à ceci : les cercles se déplacent de manière chaotique sur l'écran, certains de leurs paramètres changent avec le temps. À certains moments, l'utilisateur réagit aux changements dans l'image. Compte tenu des particularités de sa motricité, cela se reflète dans la masse aléatoire de bits.

    Générer aléatoire séquences de nombres peut être basé sur des réactions humaines spontanées

    En dehors de la cryptographie, le capteur peut être utilisé pour générer des nombres aléatoires dans jeux d'ordinateur ou pour sélectionner les gagnants du concours.

    Nouveauté scientifique

    Comme l'entreprise l'a expliqué à CNews, de nombreuses méthodes connues pour construire des capteurs de nombres aléatoires sont basées soit sur des lois et phénomènes physiques, soit sur des algorithmes déterministes. Les séquences peuvent être générées à l'aide d'un ordinateur - dans ce cas, l'instabilité de certaines parties de l'ordinateur et l'incertitude des interférences matérielles sont prises comme base du caractère aléatoire.

    La nouveauté de la technologie des codes de sécurité réside dans le fait que la source du caractère aléatoire est la réaction d’une personne à une image changeante affichée sur l’écran de l’appareil. C'est pourquoi le nom de l'invention contient le mot « biologique ». La société rapporte que ni elle ni Rospatent n'ont trouvé d'analogues brevetés de cette technologie en Russie ou dans le monde. Cependant, de telles techniques sont généralement connues : par exemple, une séquence peut être générée sur la base d'actions de l'utilisateur telles que des clics ou des mouvements de la souris ou des frappes sur le clavier.

    Selon Koreneva, l'équipe de développement a analysé différentes façons générer des séquences aléatoires. Il s’est avéré que, dans de nombreux cas, il n’existe aucune estimation raisonnable des performances de génération, ni des propriétés statistiques des séquences générées, ou des deux. Cela est dû à la difficulté de justifier une technologie déjà inventée. Security Code affirme que ses recherches ont produit des estimations raisonnables du taux de génération, ont pu justifier de bonnes caractéristiques probabilistes et propriétés statistiques et ont estimé l'entropie apportée par les actions humaines.

    Produits qui utilisent la technologie

    "Continent" est du matériel progiciel, conçu pour le cryptage des données. Utilisé dans le secteur public russe, par exemple au Trésor. Se compose d'un pare-feu et d'outils pour créer un VPN. Il a été créé par la société NIP Informzashita et est actuellement développé par Security Code LLC.

    Concrètement, le serveur d'accès « Continent » et le système de protection cryptographique des informations « Continent-AP » constituent un module sécurisé. accès à distance utilisant les algorithmes GOST, et « Continent TLS VPN » est un système permettant de fournir un accès à distance sécurisé aux applications Web utilisant également les algorithmes de cryptage GOST.

    Secret Net Studio est solution globale pour protéger les postes de travail et les serveurs au niveau des données, des applications, du réseau, système opérateur et les équipements périphériques, qui élaborent également un « Code de sécurité ». Jinn-Client est conçu pour la protection des informations cryptographiques afin de créer une signature électronique et une visualisation fiable des documents, et Jinn-Server est un complexe logiciel et matériel permettant de créer des systèmes de gestion de documents électroniques juridiquement significatifs.

    Bibliothèque cryptographique SCrypt, qui utilise également nouveau capteur, a été développé par le « Code de sécurité » pour une application plus pratique des algorithmes cryptographiques dans divers produits. Il s'agit d'un code de programme unique dont les erreurs ont été vérifiées. La bibliothèque prend en charge les algorithmes de hachage cryptographique, de signature électronique et de cryptage.

    A quoi sert le « Code de sécurité » ?

    "Code de sécurité" - entreprise russe, qui développe des logiciels et du matériel. A été fondée en 2008. Portée du produit : protection systèmes d'information et les mettre en accord avec les normes internationales et normes de l'industrie, y compris la protection des informations confidentielles, y compris les secrets d'État. "Code de sécurité" dispose de neuf licences Service fédéral pour le contrôle technique et des exportations (FSTEC) de Russie, le Service fédéral de sécurité (FSB) de Russie et le ministère de la Défense.

    L'entreprise compte environ 300 spécialistes ; les produits sont vendus par 900 partenaires agréés dans toutes les régions de la Russie et des pays de la CEI. La clientèle de Security Code comprend environ 32 000 organisations gouvernementales et commerciales.