Random.org - 20 ans d'histoire

Très prochainement, dans le cadre du projet Serveur dans les Nuages , nous aurons une mouche ballon, dont les coordonnées du site d'atterrissage sont un véritable générateur de nombres vraiment aléatoires, dont la source d'entropie est le mouvement des masses d'air. Au moment de la rédaction de cet article, plus de 100 colporteurs participent à cette course intellectuelle - devinant / calculant le lieu d'atterrissage du serveur et remportant un certificat de participation à la régate. Rejoignez-nous !



Pendant ce temps, la course est en cours et la préparation du vol, nous nous sommes souvenus que chez Random.org , l'un des générateurs en ligne les plus populaires qui fournit des nombres vraiment aléatoires, la source d'entropie est aussi l'atmosphère, ou plutôt le bruit atmosphérique. De plus, le site fêtera bientôt ses 20 ans. Et l'histoire du développement de Random.org s'est avérée si enchanteresse, et dans l'esprit de notre projet, qu'en l'honneur de la "coïncidence d'entropie" et de l'anniversaire imminent, nous avons décidé de la traduire pour vous.

Random.org a été lancé en octobre 1998 par Mads Haahr, professeur d'informatique au Trinity College Irish, et en octobre 2010, il est passé d'un projet privé à une entreprise privée.


La tâche de Random.org est de générer et de fournir à chacun des nombres vraiment aléatoires basés sur le bruit atmosphérique, c'est-à-dire le bruit radio provenant des processus atmosphériques naturels. Sur la page principale, vous pouvez générer un nombre aléatoire compris entre 1 et 1 000 000 000.

Pourquoi ne pas utiliser Random.org aujourd'hui: pour parier sur des tirages au sort, pour des jeux en ligne, pour la recherche scientifique, pour créer des images, de la musique et de nombreuses autres tâches. À ce jour, Random.org a généré plus de 1,6 billion de bits aléatoires.

Histoire de Random.org


▍Chapitre 0: Comment tout a commencé ... (1997)


L'histoire de Random.org a commencé à l'été 1997, lorsque je travaillais pour une startup qui développait un moteur de jeu en ligne. C'était un petit projet: quatre personnes ont réalisé un prototype dans l'espoir de lever des fonds pour poursuivre le développement. Le moteur avait des fonctionnalités de base et pouvait être complété par des modules de divers jeux. Nous avons implémenté un prototype du moteur lui-même et plusieurs modules de jeu, ce qui a permis au navigateur de jouer à la loterie, au blackjack et aux machines à sous.

Nous avons rapidement réalisé qu'un moteur sérieux avait besoin d'un véritable générateur de nombres aléatoires qui prendrait en charge les jeux dans lesquels de l'argent réel est impliqué (si vous voulez savoir ce qui peut arriver si vous n'utilisez pas un véritable générateur de nombres aléatoires dans le système de jeu, lisez l' article sur l'émission de télévision de 1980 x "Appuyez sur votre chance "). Après avoir lu sur la théorie de l'aléatoire, nous avons décidé qu'une radio qui capte le bruit atmosphérique serait un moyen bon marché et élégant d'obtenir l'entropie pour générer des nombres aléatoires. De plus, le générateur sera dans notre bureau, c'est-à-dire que la radio a un avantage sur les systèmes basés sur le compteur Geiger (qui sont également très populaires), car la radio n'a pas besoin d'une source de rayonnement.

Nous avons récupéré la première version de notre générateur sur la base du récepteur pour 10 $ au magasin Radio Shack. Son achat en soi était une histoire amusante. Nous savions que de nombreuses radios, même bon marché, contiennent des filtres de bruit et ne fonctionnent que si vous êtes à l'écoute d'une station de radio particulière. Par conséquent, étant venu au magasin, nous avons expliqué au vendeur que nous avions besoin de la radio la moins chère, car notre ordinateur avait besoin d'entendre des bruits statiques. L'homme n'était clairement pas sûr de la solidité de notre esprit. Nous avons également insisté pour que le vendeur nous laisse tester la radio dans le magasin, afin que nous soyons convaincus de la qualité du bruit et de l'absence de filtre parasite. Étonnamment, il nous a permis de le faire (respectez Radio Shack, car c'était une vente à 10 $), et quand nous (il semble que nous étions trois) avons entendu des bruits, nous avons sauté de joie et payé rapidement. Je pense que nous avions l'air très fous.

Pendant plusieurs jours, nous avons écrit la première version du générateur. Il a été écrit en C / C ++, tourné sous Windows NT et utilisé une carte son standard, je ne me souviens plus du fabricant. Bien que le générateur soit entièrement fonctionnel, il s'est avéré être quelque peu maladroit dans le sens où il n'a généré que des bits aléatoires, et non les beaux intervalles personnalisés que vous voyez sur Random.org aujourd'hui. Cependant, cela suffisait à mélanger les jeux de cartes pour le blackjack, à choisir les numéros de loterie et à faire tourner les roues dans les machines à sous.

Qu'est-il arrivé à notre moteur? Le prototype et l'architecture étaient vraiment bons, mais finalement l'entreprise a décidé d'arrêter de développer les jeux d'argent, donc nous n'avons pas fait trop. Je pense que nous sommes un peu en avance. C'était en 1997, et nous pensions que dans un an ou deux, le marché des jeux en ligne monterait en flèche. Mais en réalité, cela a pris beaucoup plus de temps. Random.org est la seule partie survivante de ce projet. Mes amis ont abandonné le jeu et ont fondé deux entreprises prospères: Pentia et Sitecore .

â–ŤChapitre 1: Les jours du soleil (1998-2001)


En septembre 1998, j'ai obtenu un doctorat en informatique au Trinity College de Dublin . Le sujet de la thèse était lié à l'informatique mobile et avait très peu en commun avec les nombres aléatoires. Mais depuis l'année dernière, j'ai fait la plupart du travail sur la création du générateur et j'ai vraiment aimé l'idée d'utiliser le bruit atmosphérique pour générer des nombres aléatoires, j'ai décidé de ne pas abandonner le projet. J'ai dit à Vinny Cahill, le chef de mon groupe de recherche ( Groupe des systèmes distribués ), et suggéré de placer le système dans l'une des salles. Winnie a soutenu la proposition avec enthousiasme et en quelques mois, j'ai adapté l'ancienne Sun SPARCstation, qui était dans le laboratoire, réécrit le générateur sous le SE Solaris et créé la première version de Random.org. Il a commencé à travailler en octobre 1998.

À cette époque, il n'existait toujours pas de services de génération de nombres aléatoires accessibles au public basés sur le bruit atmosphérique, mais HotBits et Lavarand (la version originale de Silicon Graphics) existaient déjà. Pourquoi fallait-il un autre générateur? La raison principale - j'étais intéressé à le créer. La deuxième raison est que les services disponibles étaient principalement destinés à la formation et au divertissement. Je voulais que Random.org soit utilisé pour la formation et le divertissement, mais en même temps, je voulais le transformer en un service utile pour résoudre certaines tâches (non critiques) qui nécessitent des nombres aléatoires. Depuis lors, les gens ont utilisé Random.org à des fins auxquelles je ne pouvais même pas penser, et le service a été mis à jour plusieurs fois afin qu'il puisse être utilisé pour des tâches beaucoup plus sérieuses que ce à quoi je m'attendais.


Random.org v1 (avec des bouteilles de whisky)

Cette photo montre la première version de l'équipement Random.org, donc elle avait l'air de 1998 à 2001 (bien qu'elle ait été prise en 2005). La radio est un récepteur à transistors Hitachi, que j'ai obtenu gratuitement parce que la cassette intégrée était cassée. Comme tout le système était situé sur une étagère dans notre laboratoire d'étudiants diplômés, et j'avais peur que quelqu'un ne le casse par accident ou intentionnellement, j'ai collé un morceau de papier à la radio avec une demande de ne pas le toucher.

À gauche de la radio se trouve le panneau arrière de la station Sun SPARC, que j'ai adapté à mes besoins. Je ne peux pas imaginer à quelle vitesse elle a travaillé, mais pas très rapidement, même pas du tout. Mais elle avait 96 Mo de mémoire, beaucoup à l'époque, donc il n'y avait aucun problème pour lancer des applications. De plus, Sun SPARCstation avait une carte son intégrée, il était donc facile de se connecter à la radio. La machine exécutait Solaris, un système d'exploitation incroyablement stable qui était parfait pour mon service. Sur le bord gauche de l'étagère, vous voyez un disque SCSI de 500 mégaoctets (oui, mégaoctet ) sur lequel tous les fichiers ont été stockés. Derrière la radio se trouve un onduleur que j'ai ajouté plus tard.

Et les bouteilles? Il y avait une tradition dans notre groupe de recherche lorsque votre travail est accepté pour parler à une conférence ou publier dans un magazine, vous achetez une bouteille de whisky irlandais (ou une autre boisson agréable) et célébrez avec des collègues. Comme vous pouvez le voir, il y a un autocollant sur chaque bouteille expliquant en l'honneur de quelle conférence ou magazine il a été acheté et qui a de la chance.

▍Chapitre 2: Générateur avec deux radios (2001-2007)


À l'automne 2000, SPARCstation a commencé à montrer des signes de vieillissement et j'ai commencé à chercher une nouvelle voiture. De plus, j'ai emmené le premier cycle Antonio Arauzo Azofra pour faire quelque chose pour mon projet. La tâche de l'étudiant était d'implémenter un nouveau module statistique suffisamment stable pour être déployé sur Random.org. Antonio a fait un excellent travail et a beaucoup aidé à configurer le "nouveau" serveur PC Siemens Scenic 300, que j'ai obtenu. Antonio m'a également convaincu de passer à Debian GNU / Linux (je me tournais vers Red Hat), a installé du matériel et des logiciels, et a même aidé à maintenir le système après avoir terminé mes études à Dublin et retourné en Espagne pour travailler sur mon doctorat.

Depuis l'été 2001, Random.org a travaillé sur un ordinateur Siemens avec deux radios. Le cœur de l'ordinateur était un Pentium III fonctionnant à une fréquence allant jusqu'à 500 MHz. Initialement, la machine avait 128 Mo de mémoire, mais plus tard, j'ai augmenté à 384 Mo. L'ordinateur était équipé de trois cartes son Cirrus Logic Crystal CS4281 et de deux tuners FM (un Sony, un autre Tensai), que j'ai achetés d'occasion pour environ 40 € au Blackberry Market à Dublin. La photo ci-dessous montre à quoi tout ressemblait. Siemens est sur deux autres ordinateurs, et il y a deux radios dessus. Bien que le système ne soit plus dans le laboratoire, dans mon bureau personnel, j'étais toujours inquiet pour les visiteurs (par exemple, les nettoyeurs) qui pourraient accidentellement abattre les paramètres de la radio et perturber le service, j'ai donc écrit une demande de prudence sur un morceau de papier.


Random.org v2

En tant qu'OS, j'ai utilisé Debian GNU / Linux 3.0 ('Woody') incroyablement stable (c'était ma première expérience avec Debian, et je suis toujours un fan - respect à l'équipe Debian pour leur excellent travail). Le générateur a été configuré pour prendre le bruit des tuners radio sous la forme d'un flux audio à partir d'échantillons 8 bits en mono avec une fréquence d'échantillonnage de 8 KHz. Autrement dit, 1 500 bits aléatoires par seconde ont été supprimés de chaque radio, soit un total de 3 000 bits par seconde.

▍Chapitre 3: Système à trois radios (2007-2009)


Du début de 2007 à la fin de 2009, Random.org a utilisé deux configurations matérielles différentes. Pendant la majeure partie de 2007, le Dell Dimension 4550 a fonctionné, qui m'a été présenté par René Meier et Jim Dowling du projet de recherche Digital Business Ecosystem . L'ordinateur était Pentium 4 avec une fréquence de 2,53 GHz et 1 Go de mémoire. Plus tard, j'ai installé trois cartes son C-Media Electronics CM8738, et les deux mêmes tuners FM ont été utilisés comme radio, mais Akai, acheté pour 12 € dans un magasin de produits d'occasion à Copenhague, y a ajouté.

Fin 2007, j'ai remplacé Dell Dimension par IBM eServer avec 1280 Mo de mémoire et Pentium III 1.266 GHz. Bien que le processeur soit plus faible que le Dell, l'eServer pouvait facilement gérer la charge. En même temps, c'était un vrai serveur avec des disques SCSI bien adaptés à mes tâches. Les cartes son et la radio sont restées les mêmes.

Ce système matériel a généré environ 3 000 bits par seconde à partir de chaque radio. L'OS utilisé était Debian GNU / Linux, mais déjà les versions 3.1 ('Sarge') et 4.0 ('Etch'). Ils étaient aussi stables que leurs prédécesseurs, mais beaucoup plus faciles à configurer. Je le recommande vivement.

â–ŤChapitre 4: Random.org aujourd'hui (2009-)


Fin 2009, Random.org a subi une restructuration en réponse à une augmentation du nombre de clients qui ont besoin d'une bonne fiabilité et de bonnes performances. Maintenant, c'est un système géographiquement distribué avec plusieurs nœuds générés aléatoirement. Les données qu'ils contiennent sont soumises à des tests statistiques, puis le flux de bits aléatoires effacés est transféré vers l'hébergement cloud, dans lequel tourne le service Random.org. Cette architecture a une fiabilité et des performances plus élevées, Random.org convient donc pour résoudre de graves problèmes (par exemple, les jeux de loterie). Des nombres aléatoires testés dans le temps sont toujours générés sur la base du bruit atmosphérique, mais le matériel et les logiciels ont beaucoup évolué depuis le récepteur de dix dollars de Radio Shack, avec lequel tout a commencé en 1997.

â–ŤChapitre N: L'avenir?


Random.org se développe toujours activement, il y a beaucoup de projets sympas dans le travail. Restez à l'écoute ou abonnez-vous à notre newsletter (et vous pouvez gagner un iPod).



En parlant de hasard. Pour le moment, l'estimation des probabilités du site d'atterrissage de notre serveur par les colporteurs ressemble à ceci:


Après le concours, nous essaierons d'appliquer la méthode de Monte Carlo et d'évaluer à quel point les coordonnées mises sur la carte par nos participants se sont révélées aléatoires.

Source: https://habr.com/ru/post/fr421031/


All Articles