Cloudflare ha introdotto un generatore di numeri casuali distribuiti

Azienda Cloudflare presentato servizio Lega dell'entropia, per garantire il funzionamento del quale è stato formato un consorzio di diverse organizzazioni interessate a fornire numeri casuali di alta qualità. A differenza dei sistemi centralizzati esistenti, League of Entropy non si basa su un'unica fonte e utilizza l'entropia per generare una sequenza casuale, ricevuto da diversi generatori indipendenti controllati da diversi partecipanti al progetto. A causa della natura distribuita del progetto, compromettere o manomettere una o due delle fonti non porterà alla compromissione del numero casuale finale.

Va notato che i numeri casuali generati sono classificati come sequenze pubblicamente disponibili che non possono essere utilizzate per generare chiavi di crittografia e in aree in cui il numero casuale deve essere mantenuto segreto. Il servizio mira a fornire numeri casuali che non possono essere previsti in anticipo, ma una volta generati, questi numeri diventano disponibili al pubblico, anche per verificare la validità dei valori casuali passati.

I numeri casuali pubblici vengono generati ogni 60 secondi. Ad ogni numero è associato un proprio numero progressivo (tondo), mediante il quale in ogni momento e da qualunque server partecipante è possibile ottenere il valore una volta generato. Tali numeri casuali possono essere utilizzati in sistemi distribuiti, criptovalute e blockchain, in cui diversi nodi devono avere accesso a un unico generatore di numeri casuali (ad esempio, quando si genera una prova del lavoro svolto), così come quando si conducono varie lotterie e per generare numeri casuali. campioni nel processo di verifica delle elezioni di passaggio.

Per lavorare con il servizio e distribuire i propri nodi proposto utensili Drand, scritto in Go e rilasciato sotto licenza MIT. Drand viene eseguito sotto forma di un processo in background che comunica con generatori esterni che partecipano alla rete distribuita e genera collettivamente un valore casuale riepilogativo. Il valore di riepilogo viene generato utilizzando i metodi crittografia di soglia и coniugazione bilineare. La generazione di un valore casuale riepilogativo può essere eseguita sul sistema dell'utente senza il coinvolgimento di aggregatori centralizzati.

Drand può anche essere utilizzato per fornire ai clienti numeri casuali privati ​​generati localmente. Per trasmettere un numero casuale, viene utilizzato lo schema di crittografia ECIES, all'interno del quale il client genera una chiave privata e pubblica. La chiave pubblica viene trasferita al server da Drand. Il numero casuale viene crittografato utilizzando la chiave pubblica fornita e può essere visualizzato solo dal client che possiede la chiave privata. Per accedere ai server è possibile utilizzare l'utility “drand” (ad esempio “drand get public group.toml”, dove group.toml è un elenco di nodi da interrogare) o la Web API (ad esempio è possibile utilizzare “ curl https://drand.cloudflare.com /api/public" o accedi da JavaScript utilizzando la libreria DrandJS). I metadati della richiesta vengono inviati in formato TOML e la risposta viene restituita in JSON.

Attualmente, cinque aziende e organizzazioni hanno aderito all'iniziativa League of Entropy e stanno fornendo accesso ai loro generatori di entropia. I partecipanti inclusi nel progetto si trovano in diversi paesi e utilizzano diversi metodi per ottenere entropia:

  • lampo di nuvola, LavaRand, valori casuali sono formati basato su flussi di fluido imprevedibili lampade laviche, le cui immagini vengono fornite come entropia di input per CSPRNG (Cryptographicly Secure PseudoRandom Number Generator);
  • EPFL (Ecole Polytechnique Federale de Lausanne), URand,
    viene utilizzato un generatore locale standard /dev/urandom, che utilizza input da tastiera, movimento del mouse, flussi di traffico, ecc. come fonti di entropia.

  • Università del Cile, Cile, una rete di sensori sismici viene utilizzata come fonte di entropia, così come i dati provenienti da trasmissioni radio, attività su Twitter, modifiche alla blockchain di Ethereum e un generatore RNG hardware fatto in casa;
  • Kudelski Security, ChaChaRand, fornisce un CRNG (Cryptographic Random Number Generator) basato sulla cifratura ChaCha20;
  • Protocol Labs, InterplanetaryRand, i dati casuali vengono estratti dai rilevatori di rumore e combinati con Linux PRNG e un generatore di numeri pseudo-casuali integrato nella CPU.

Attualmente, i partecipanti indipendenti hanno lanciato 8 punti di accesso pubblici all'API, attraverso i quali è possibile scoprire sia l'attuale numero casuale di riepilogo (ad esempio, "curl https://drand.cloudflare.com/api/public") sia determinare il valore in un determinato momento nel passato (“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

Fonte: opennet.ru

Aggiungi un commento