Cloudflare прСдставил распрСдСлённый Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ случайных чисСл

Компания Cloudflare прСдставила сСрвис League of Entropy, для обСспСчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сформирован консорциум ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, заинтСрСсованных Π² прСдоставлСнии качСствСнных случайных чисСл. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм League of Entropy Π½Π΅ полагаСтся Π½Π° ΠΎΠ΄ΠΈΠ½ источник ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ случайной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡΠ½Ρ‚Ρ€ΠΎΠΏΠΈΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡƒΡŽ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½Π΅ связанных с собой Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ участниками ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Благодаря распрСдСлённому Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° компромСтация ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π»ΠΎΠ³ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Π²ΡƒΡ… ΠΈΠ· источников Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ случайного числа.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ случайныС числа относятся ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ доступных ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π² областях, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случайноС число Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² Ρ‚Π°ΠΉΠ½Π΅. БСрвис Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° прСдоставлСниС случайных чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅, Π½ΠΎ послС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ эти числа становятся ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ доступны, Π² Ρ‚ΠΎΠΌ числС для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ достовСрности ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… случайных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ случайныС числа Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π· Π² 60 сСкунд. КаТдоС число связываСтся со своим Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (round), ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈ с любого сСрвСра-участника ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ сгСнСрированноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ случайныС числа ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² распрСдСлённых систСмах, ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡŽΡ‚Π°Ρ… ΠΈ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ случайных чисСл (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π»ΠΎΡ‚Π΅Ρ€Π΅ΠΉ ΠΈ для формирования случайных Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ Π² процСссС Π°ΡƒΠ΄ΠΈΡ‚Π° прохоТдСния Π²Ρ‹Π±ΠΎΡ€ΠΎΠ².

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСрвисом ΠΈ для развёртывания собствСнных ΡƒΠ·Π»ΠΎΠ² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ инструмСнтарий Drand, написанный Π½Π° языкС Go ΠΈ поставляСмый ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT. Drand выполняСтся Π² Ρ„ΠΎΡ€ΠΌΠ΅ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ процСсса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ связываСтся с ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π² распрСдСлённой сСти внСшними Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ сводноС случайноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π‘Π²ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ гСнСрируСтся с использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈ Π±ΠΈΠ»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ сопряТСния. ГСнСрация сводного случайного значСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π½Π° систСмС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±Π΅Π· привлСчСния Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ΠΎΠ².

Drand Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для доставки ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ локально сгСнСрированных ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… случайных чисСл. Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ случайного числа примСняСтся схСма ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ECIES, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ пСрСдаётся Π½Π° сСрвСр с Drand. Π‘Π»ΡƒΡ‡Π°ΠΉΠ½ΠΎΠ΅ число ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ΡΡ с использованиСм Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ просмотрСно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ, Π²Π»Π°Π΄Π΅ΡŽΡ‰ΠΈΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. Для обращСния ΠΊ сСрвСрам ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° «drand» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «drand get public group.toml», Π³Π΄Π΅ group.toml список ΡƒΠ·Π»ΠΎΠ² для опроса) ΠΈΠ»ΠΈ Web API (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ «curl https://drand.cloudflare.com/api/public» ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈΠ· JavaScript ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DrandJS). ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ запроса ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ TOML, Π° ΠΎΡ‚Π²Π΅Ρ‚ выдаётся Π² JSON.

Π’ настоящСС врСмя ΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π΅ League of Entropy ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡŒ ΠΏΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставили доступ ΠΊ своим Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ энтропии. Π’ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ участники находятся Π² Ρ€Π°Π·Π½Ρ‹Ρ… странах ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ получСния энтропии:

  • Cloudflare, LavaRand, случайныС значСния Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° основС нСпрСдсказуСмых ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Тидкости Π² Π»Π°Π²ΠΎΠ²Ρ‹Ρ… Π»Π°ΠΌΠΏΠ°Ρ…, изобраТСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ Π² качСствС Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ энтропии для CSPRNG (Cryptographically Secure PseudoRandom Number Generator);
  • EPFL (Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½Π°Ρ политСхничСская школа Π›ΠΎΠ·Π°Π½Π½Ρ‹), URand,
    примСняСтся ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ /dev/urandom, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π² качСствС источников энтропии ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΠΈ, ΠΏΠΎΡ‚ΠΎΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Ρ‚.ΠΏ.

  • Чилийский унивСрситСт, UChile, Π² качСствС источника энтропии примСняСтся ΡΠ΅Ρ‚ΡŒ ΠΈΠ· сСйсмичСских Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· радиоэфира, активности Π² Twitter, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° Ethereum ΠΈ самодСльного Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° RNG;
  • Kudelski Security, ChaChaRand, прСдоставляСт CRNG (Cryptographic Random Number Generator) Π½Π° основС примСнСния ΡˆΠΈΡ„Ρ€Π° ChaCha20;
  • Protocol Labs, InterplanetaryRand, случайныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈΠ· ΡƒΠ»ΠΎΠ²ΠΈΡ‚Π΅Π»Π΅ΠΉ ΡˆΡƒΠΌΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с Linux PRNG ΠΈ встроСнным Π² CPU Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ псСвдослучайных чисСл.

Π’ настоящСС врСмя нСзависимыми участниками Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ 8 ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ доступа ΠΊ API, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ сводноС случайноС число (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «curl https://drand.cloudflare.com/api/public»), Ρ‚Π°ΠΊ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ («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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru