Cloudflare a introduit un générateur de nombres aléatoires distribués

Société Cloudflare présenté service Ligue d'entropie, pour assurer le fonctionnement duquel un consortium de plusieurs organisations intéressées par la fourniture de nombres aléatoires de haute qualité a été formé. Contrairement aux systèmes centralisés existants, League of Entropy ne s'appuie pas sur une source unique et utilise l'entropie pour générer une séquence aléatoire, reçu provenant de plusieurs générateurs indépendants contrôlés par différents participants au projet. En raison de la nature distribuée du projet, la compromission ou la falsification d'une ou deux des sources n'entraînera pas la compromission du nombre aléatoire final.

Il convient de noter que les nombres aléatoires générés sont classés comme séquences accessibles au public qui ne peuvent pas être utilisées pour générer des clés de chiffrement et dans des zones où le nombre aléatoire doit être gardé secret. Le service vise à fournir des nombres aléatoires qui ne peuvent pas être prédits à l'avance, mais une fois générés, ces nombres deviennent accessibles au public, notamment pour vérifier la validité des valeurs aléatoires passées.

Des nombres aléatoires publics sont générés toutes les 60 secondes. Chaque numéro est associé à son propre numéro de séquence (rond), par lequel à tout moment et depuis n'importe quel serveur participant, vous pouvez obtenir la valeur une fois générée. De tels nombres aléatoires peuvent être utilisés dans les systèmes distribués, les crypto-monnaies et les blockchains, dans lesquels différents nœuds doivent avoir accès à un seul générateur de nombres aléatoires (par exemple, lors de la génération d'une preuve de travail effectué), ainsi que lors de la conduite de diverses loteries et pour générer des nombres aléatoires. des échantillons en cours d'audit des élections de passage.

Travailler avec le service et déployer vos propres nœuds suggéré outils Drand, écrit en Go et publié sous licence MIT. Drand fonctionne sous la forme d'un processus en arrière-plan qui communique avec des générateurs externes participant au réseau distribué et génère collectivement une valeur aléatoire récapitulative. La valeur récapitulative est générée à l'aide des méthodes cryptographie à seuil и conjugaison bilinéaire. La génération d'une valeur aléatoire récapitulative peut être effectuée sur le système de l'utilisateur sans l'intervention d'agrégateurs centralisés.

Drand peut également être utilisé pour fournir aux clients des nombres aléatoires privés générés localement. Pour transmettre un nombre aléatoire, le schéma de cryptage ECIES est utilisé, au sein duquel le client génère une clé privée et publique. La clé publique est transférée au serveur depuis Drand. Le nombre aléatoire est crypté à l’aide de la clé publique donnée et ne peut être consulté que par le client propriétaire de la clé privée. Pour accéder aux serveurs, vous pouvez utiliser l'utilitaire « drand » (par exemple, « drand get public group.toml », où group.toml est une liste de nœuds à interroger) ou l'API Web (par exemple, vous pouvez utiliser « curl https://drand.cloudflare.com /api/public" ou accès depuis JavaScript en utilisant la bibliothèque DrandJS). Les métadonnées de la demande sont envoyées au format TOML et la réponse est renvoyée au format JSON.

Actuellement, cinq entreprises et organisations ont rejoint l'initiative League of Entropy et donnent accès à leurs générateurs d'entropie. Les participants inclus dans le projet sont situés dans différents pays et utilisent différentes méthodes pour obtenir l'entropie :

  • Nuageux, LavaRand, valeurs aléatoires sont formés basé sur des flux de fluides imprévisibles lampes à lave, dont les images sont fournies comme entropie d'entrée pour CSPRNG (Cryptographically Secure PseudoRandom Number Generator) ;
  • EPFL (Ecole Polytechnique Fédérale de Lausanne), URand,
    un générateur local standard /dev/urandom est utilisé, qui utilise la saisie au clavier, le mouvement de la souris, les flux de trafic, etc. comme sources d'entropie.

  • Université du Chili, UChili, un réseau de capteurs sismiques est utilisé comme source d'entropie, ainsi que des données provenant d'émissions de radio, de l'activité de Twitter, des modifications apportées à la blockchain Ethereum et d'un générateur RNG matériel fait maison ;
  • Kudelski Security, ChaChaRand, fournit un CRNG (Cryptographic Random Number Generator) basé sur le chiffre ChaCha20 ;
  • Protocol Labs, InterplanetaryRand, les données aléatoires sont extraites des capteurs de bruit et combinées avec Linux PRNG et un générateur de nombres pseudo-aléatoires intégré au processeur.

Actuellement, des participants indépendants ont lancé 8 points d'accès publics à l'API, grâce auxquels vous pouvez connaître à la fois le nombre aléatoire récapitulatif actuel (par exemple, « curl https://drand.cloudflare.com/api/public ») et déterminer le valeur à un certain moment dans le passé (« curl https://drand.cloudflare.com/api/public?round=1234 ») :

  • https://drand.cloudflare.com:443
  • https://random.uchile.cl:8080
  • https://drand.cothority.net:7003
  • https://drand.kudelskisecurity.com:443
  • https://drand.lbarman.ch:443
  • https://drand.nikkolasg.xyz:8888
  • https://drand.protocol.ai:8080
  • https://drand.zerobyte.io:8888

Source: opennet.ru

Ajouter un commentaire