Ho bisogno di un vero servizio web di generatore di numeri casuali [chiuso]


10

Random.org fornisce 200k bit casuali gratuiti (solo 6250 interi a 32 bit!) Dal mondo analogico ( cfr. ) Per IP al giorno.

Qualcuno sa di un servizio web alternativo che fornisce più bit casuali su richiesta al giorno?

(il pagamento è OK fintanto che il prezzo è "entro le aspettative" di 1000 × 1024 bit per centesimo usd (spese di servizio pagate di random.org 100 × questo prezzo)


9
La domanda più grande è "perché" hai bisogno di un generatore di numeri casuali "veramente"?
Darknight,

5
Non esiste un vero generatore casuale nel software puro. Puoi avvicinarti, alla fine della giornata, non sarà davvero casuale.
Ramhound,

10
A cosa ti serve? Se è un gioco o qualcosa del genere, lo pseudo-casuale è normalmente abbastanza buono. Se si tratta di crittografia, non dovresti usare un servizio web. Devi spiegare a cosa serve prima che possiamo indicarti soluzioni praticabili.
Michael Kohne,

4
Ecco qua! [webservice] public int GetRandomNumber() { return 4; // rfc 1149.5 }. Credito: xkcd.com/221
Homde,

3
Mi scusi signore, le piacerebbe comprare dei numeri interi? Disponiamo solo dei migliori numeri interi artigianali ruspanti.
Rein Henrichs,

Risposte:


25

Forse questo.

http://qrng.physik.hu-berlin.de/

Dal sito:

Forniamo un nuovo generatore di numeri casuali quantistici (QRNG) basato sulla casualità quantistica dei tempi di arrivo dei fotoni. Promette qualità statistica dimostrabile ea lungo termine, velocità e convenienza. Il nostro design crea una nuova qualità, nel senso che offre bit rate sostanzialmente più elevati rispetto alle precedenti soluzioni disponibili al pubblico. Ciò è diventato possibile sfruttando la più recente strumentazione di fasatura dei fotoni e l'elaborazione dei dati all'avanguardia nell'hardware.

Oltre a fornire alta velocità (fino a 150 Mbits / s su USB), l'algoritmo di post-elaborazione applicato ai dati grezzi si basa su solide previsioni della teoria dell'informazione che garantiscono la conservazione della casualità. Ciò consente l'utilizzo dei numeri casuali consegnati negli schemi di crittografia incondizionatamente sicuri.
[...]
Politiche di accesso
Nessuno dei dati forniti viene consegnato più di una volta, né a un singolo utente né a utenti> indipendenti. L'uso del servizio è gratuito, ma richiede la registrazione.


1
(0.o)?! Egad! Ho pensato che fosse uno scherzo, ma no esiste davvero :) (+1) grande scoperta
Darknight

4
-1 per una risposta di scarsa qualità. Potrebbe benissimo essere un'ottima soluzione, ma non hai fornito dettagli sul link / servizio e non mi interessa leggere l'intero link per un riepilogo. Quando una risposta su P.SE richiede un collegamento, fornire un riepilogo della soluzione a cui ci si sta collegando. Prenderò in considerazione la rimozione del mio voto negativo se rivedrai la tua risposta.
Craige,

4
@NimChimpsky - Perché? Perché è così che scrivi una risposta di qualità su P.SE. ba__friend avrebbe dovuto pubblicare una breve descrizione del servizio per coloro che leggono questa domanda. Forse una rapida spiegazione / citazione su come il servizio genera i suoi numeri casuali.
Craige,

2
@Craige Ho aggiornato il post con un estratto dal sito.
Adam Lear

5
@NimChimpsky: Perché accade il linkrot.
Jon Purdy,

31

Quello che stai chiedendo è l'acqua santa e stai rifiutando il suggerimento di usare acqua normale. L'unico motivo per preferire l'acqua santa all'acqua è religioso. Esistono PRNG semplici, seminati casualmente, che non possono essere distinti dalla vera casualità fisica da alcun processo noto. E questi sistemi non sono deterministici.

Un computer del mondo reale ha diverse fonti di vera casualità fisica. Ad esempio, una moderna CPU x86 ha un 'TSC' che misura il conteggio del ciclo di istruzioni (e quindi, indirettamente, il tempo necessario per una risoluzione di un miliardesimo di secondo circa).

È possibile acquisire il TSC all'arrivo di un pacchetto di rete. I bit bassi del TSC dipenderanno dall'offset preciso tra l'oscillatore a cristallo che moltiplica l'interfaccia di rete e l'oscillatore a cristallo che esegue la CPU. Ciò dipende dalle microscopiche variazioni di temperatura della zona nei due cristalli di quarzo che si ritiene siano veramente casuali.

Allo stesso modo, è possibile acquisire il TSC quando i dati arrivano dal disco rigido. I bit bassi dipendono dal flusso turbolento del flusso d'aria tra la superficie del disco rigido e il case. Si ritiene che anche questo sia veramente casuale.

Algoritmi ben noti, come quello utilizzato dal kernel Linux (sviluppato da Theodore Ts'o basato sul lavoro di M. Matsumoto e Y. Kurita) usano l'effetto valanga per convertire alcuni bit imprevedibili in un numero molto più grande. Le uniche differenze tra gli output di questi algoritmi (supponendo che siano adeguatamente seminati dai dati TSC) e l'output della vera casualità fisica è religiosa - nessun metodo noto può distinguere questi output. Non c'è test che uno passerà e l'altro fallirà.

Ho sviluppato generatori di numeri casuali per l'uso di casinò online che hanno ottenuto la certificazione indipendente. Questi metodi sono quelli usati nel mondo reale.


6
+1 per il buon senso, gli esempi interessanti e la bella metafora dell'acqua santa!
Mikera,


@ David, ciao, mente elaborando la storia "Ho sviluppato generatori di numeri casuali per l'uso di casinò online" ..?
Pacerier,

Non è così interessante. Un casinò online mi ha assunto per sviluppare un RNG per loro, l'ho fatto, ed è stato certificato da TST, una società di certificazione australiana.
David Schwartz,

13

Non capisco ancora perché un PRNG crittografico non sia abbastanza buono per il tuo problema. Una proprietà che definisce un cripto-PRNG è che non è possibile (con quantità ragionevoli di hardware) distinguere il suo output da un vero RNG.

Ciò significa che è abbastanza buono per qualsiasi tipo di simulazione o applicazione che mi viene in mente, a parte la generazione di chiavi crittografiche o l'inizializzazione del PRNG crittografico stesso (ovviamente per iniziare sono necessarie alcune centinaia di bit di vera entropia).

D'altra parte, da allora, i servizi RNG di webservice non possono essere utilizzati per criptovalute

  1. Non puoi dimostrare che sono in realtà un PRNG vero poiché non puoi distinguere il loro output da un PRNG
  2. Devi fidarti dell'operatore del servizio
  3. I dati casuali ti vengono trasmessi sul canale di sicurezza inferiore. Un utente malintenzionato che può interrompere un PRNG può anche rompere SSL.

Quindi non riesco a pensare a un singolo uso in cui si preferirebbe un servizio di assistenza alla rete RNG piuttosto che un buon PRNG. Se hai davvero bisogno di numeri casuali reali e sicuri, non vedo alternative alla costruzione dell'hardware da solo.


Sì, non posso dimostrare che l'output è veramente casuale. ma non è così difficile fidarsi di random.org/statistics . Sembra che la sicurezza sia uno dei miei requisiti, ma non lo è. Ho bisogno di un numero casuale fullstop. Non un numero casuale e sicuro. (Se un attaccante vuole intercettare, non farebbe male)
Pacerier,

1
Non è difficile fidarsi di un PRNG per il quale è stato matematicamente dimostrato che distinguerlo da un vero RNG richiede la risoluzione di problemi matematici molto difficili.
CodesInChaos,

@CodeInChaos è un casinò online un problema matematico molto difficile? Non lo è, ma richiede quel tipo di vera casualità non credi?
Pacerier,

2
Non vedo ragioni tecniche per cui un buon PRNG occasionalmente riceva cento bit di vera entropia non dovrebbe essere sufficiente nemmeno per un casinò online. Potrebbero esserci motivi legali , ma presumo che in tal caso sia necessario generare la tua casualità reale localmente poiché ciò ti dà maggiori possibilità di dimostrare che stai utilizzando numeri casuali reali.
Codici A Caos

8
+1 Sono totalmente d'accordo con te. Se stai creando un gioco che deve generare dati casuali realistici, allora stai meglio con un PRNG che un generatore di numeri veramente casuale. Innanzitutto esiste una prova matematica che produce dati statisticamente casuali adattati a una distribuzione di probabilità. In secondo luogo puoi scegliere quella distribuzione di probabilità. In terzo luogo puoi testare la tua applicazione in modo deterministico. In quarto luogo, puoi scegliere il seme all'avvio in modo che non si comporti mai allo stesso modo due volte. Personalmente penso che l'OP in realtà non capisca cosa significhi casualità o perché ne abbia bisogno.

5

Diversi anni fa potevi chiamare la lavarand di SGI che generava numeri casuali usando l'attuale forma a blob e la posizione di una lampada di lava che veniva guardata da una webcam.

Anche se ora è sparito, puoi facilmente creare il tuo generatore con una webcam e il codice open source dai bravi ragazzi di LavaRnd (EDIT: inattivo da qualche tempo. Wayback Machine Sourceforge Project ). Si scopre che non è necessaria affatto la lampada lavica: il rumore raccolto dal CCD mentre la webcam è sigillata in un contenitore a prova di luce è un'ottima fonte per generare numeri casuali crittografici.

(So ​​che questo non è un servizio che puoi usare ora, ma perché lo era una volta, perché era così bello e perché puoi crearne uno quasi molto facilmente, ho pensato che fosse degno di essere una risposta.)


ma sicuramente nel tempo il rumore "casuale" generato dalla webcam si adatterebbe ad una distribuzione normale? Non so vorrebbe che fosse chiarito?
Darknight,

4
@Darknight: cosa c'entra la distribuzione con la casualità? È possibile generare sequenze deterministiche per adattarsi a qualsiasi distribuzione ed è possibile che numeri casuali si adattino a qualsiasi distribuzione.
David Thornley,

2
@Darknight Come osserva David, se i numeri alla fine si adattano o meno a una distribuzione normale non influisce sulla casualità. Se sei interessato a ciò che è necessario per rendere un generatore di numeri casuali crittograficamente (o crittografato forte), i ragazzi di LavaRnd hanno un sacco di informazioni e collegamenti "stat nerd" sul loro sito, insieme a come si collegano a LavaRnd.
Matthew Frederick,

Seriamente non c'è modo di crearne uno facilmente Matthew. Come definisci esattamente facile?
Pacerier,

2
@Pacerier Hai ragione sul fatto che "facile" è una questione di prospettiva. Questo metodo è semplice se hai accesso al tuo server e trovare una webcam adatta non richiede molto tempo - un $ 10 "compralo subito" su eBay, diciamo. Ciò lascia attaccare la fotocamera; scaricare, compilare ed eseguire il software gratuito; e aggiungendo una chiamata al servizio nel tuo codice. Non banale, ma piuttosto semplice, estremamente economico e fornisce un numero illimitato di richieste.
Matthew Frederick,

1

Aprire una connessione TCP a qualsiasi host / porta e contare il numero di nanosecondi necessari. C'è il tuo numero casuale.


Spero che non sia così che stai generando numeri casuali.
Craige,

9
Il punto della mia risposta (leggermente sarcastica) è che l'entropia nel tempo necessario ai pacchetti per viaggiare vale molto più di un numero "casuale" di cui ti fidi dell'entropia su un server di terze parti.
R .. GitHub smette di aiutare ICE

5
@Pacerier: nessuno intelligente scrive la propria crittografia, a meno che non sia un esperto. È diverso dall'invio del testo in chiaro a un servizio Web e il recupero del testo cifrato. Allo stesso modo, probabilmente non vuoi provare a progettare il tuo sistema di casualità quantistica, ma ottenere numeri casuali spediti tramite HTTP non è affidabile.
David Thornley,

1
@Pacerier Ma non hai ancora dimostrato perché l'alternativa all'utilizzo di un PRNG locale con iniezione di entropia occasionale (da fonti di entropia locale) non è possibile.
Codici A Caos

1
@Pacerier: fidati di me su questo: non hai bisogno di veri numeri casuali per simulazioni economiche. Un buon generatore casuale pseudo- (o quasi-, se ti interessa la distribuzione uniforme) sarà sufficiente. I problemi si trovano altrove (ad esempio: vuoi che i numeri non siano correlati in molte dimensioni - come fai a sapere che il servizio web che usi anche disturba per controllare come i loro numeri riempiono uno spazio tridimensionale?).
quant_dev,

1

ecco un altro generatore a base quantistica, con un resto api non meno:

http://photonics.anu.edu.au/qoptics/Research/qrng.php

I ricercatori dell'ANU stanno generando numeri casuali reali da una fonte quantica fisica. Lo facciamo dividendo un raggio di luce in due raggi e quindi misurando la potenza di ciascun raggio. Poiché la luce è quantizzata, l'intensità della luce in ciascun raggio oscilla intorno alla media. Queste fluttuazioni, dovute in definitiva al vuoto quantistico, possono essere convertite in una fonte di numeri casuali.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.