Esistono ricerche in corso sull'attuazione degli estrattori di casualità?


20

Sono state condotte ricerche sull'implementazione di costruzioni con estrattore di casualità?

Sembra che le prove di estrazione facciano uso di Big-Oh, lasciando la possibilità di grandi costanti nascoste, rendendo potenzialmente realistiche le implementazioni programmatiche.

Qualche contesto: sono interessato all'utilizzo di estrattori di casualità come fonte veloce di (casualmente?) Numeri casuali da utilizzare nelle simulazioni Monte Carlo. Noi (un gruppo di fisica computazionale ETHZ) abbiamo distorto le fonti ad alta entropia da generatori di numeri casuali quantistici da cui vorremmo estrarre la casualità. Uno studente precedente ha tentato di implementare una costruzione di Trevisan e si è imbattuto in problemi di complessità spaziale. A parte quello studente, non ho trovato alcun riferimento alle persone che cercano di implementare estrattori.

Nota: sono un laureando CS che è molto nuovo nell'area degli estrattori teorici di CS e di casualità.


Potresti anche trovare interessante la risposta di Arnab
Suresh Venkat,

Ecco un'implementazione funzionante: wisdom.weizmann.ac.il/~neko/MAE-offline.html
Diego de Estrada

Risposte:


19

Gran parte della letteratura sugli estrattori riguarda la riduzione al minimo della lunghezza dei semi, che è importante per l'applicazione di derandomizzazione. Tuttavia, potrebbe non essere cruciale per il tuo. Inoltre, spesso la letteratura si concentra su un errore relativamente grande (ad esempio, 1/100), che va bene per la derandomizzazione ma può essere problematico in altre impostazioni, che richiedono un errore esponenzialmente piccolo.

Nella tua impostazione, potrebbe essere OK generare una volta per tutte un lungo seme casuale (diciamo lanciando monete), e poi usarlo per estrarre. In questo caso è possibile utilizzare funzioni hash indipendenti a coppie che hanno implementazioni piuttosto efficienti. Ho scritto un articolo con Shaltiel e Tromer su questo argomento. Potresti anche essere in grado di utilizzare funzioni hash quasi indipendenti, che possono essere più efficienti e avere seed più piccoli. (Non conosco con disinvoltura un buon riferimento per la loro efficiente implementazione, anche se ci sono stati diversi lavori su questo.)

Se hai più fonti indipendenti , puoi fare cose migliori. L'estrattore Hadamard classico funziona se il tasso di entropia è superiore al 50% (questo dovrebbe essere menzionato nei sondaggi sopra). Se l'entropia è inferiore al 50%, abbiamo avuto una costruzione semplice con Impagliazzo e Wigderson . La dipendenza tra il numero di fonti e l'errore raggiunto sul tasso di entropia non è l'ideale, anche se per comprenderlo realmente è necessario esaminare i limiti esatti dati dai teoremi attuali del prodotto. (E se sei disposto ad assumere determinate congetture teoriche numeriche puoi ottenere estrattori ancora più efficienti.) Questa costruzione è stata notevolmente migliorata in vari modi, alcuni dei quali potrebbero essere rilevanti per la tua applicazione.Tesi di Anup Rao .


Grazie per la risposta / panoramica ben scritta. Ho sfogliato il documento TRNG che hai scritto con Shaltiel e Tromer. Sembra abbastanza promettente. Mi chiedevo se la pagina Web del documento (e il codice di implementazione) fosse disponibile ovunque poiché il link citato ( people.csail.mit.edu/tromer/trng ) nel documento non contiene alcuna informazione al riguardo.
Phillip Mates,

6

Prima di tutto, vedi l' argomento rilevante su Wikipedia. In secondo luogo, puoi dare un'occhiata al seguente documento:

Recenti sviluppi nelle costruzioni esplicite di estrattori di Ronen Shaltiel.

L'articolo è scritto sotto forma di sondaggio e può aiutarti a trovare gli "sviluppi recenti".

Infine, se tutto ciò che desideri è una sequenza di bit che "sembra" casuale (ma non è necessariamente crittograficamente sicuro), puoi applicare una funzione hash (come MD5 o SHA-1) alla tua sorgente ad alta entropia e ottenere un risultato eccellente (per esperimenti fisici) in pochissimo tempo.


1
Grazie per il suggerimento e i link di hashing. Nei link non ho visto alcuna menzione di persone che tentano di implementare estrattori. Sono molto curioso di sapere se questo è stato tentato. La maggior parte delle carte per estrattori che ho letto menzionano le applicazioni pratiche degli estrattori, ma non fanno alcun riferimento a tentativi di implementazione. Mi è stato detto che il motivo per cui abbiamo evitato le funzioni di hashing è che non sono dimostrabili in modo casuale, il che è molto utile nel regno delle simulazioni MC poiché gli pseudo-RNG hanno dimostrato, a volte, di produrre risultati imprecisi [ref: prl. aps.org/abstract/PRL/v69/i23/p3382_1 ]
Phillip Mates,

4

C'è anche un bel documento di Dodis, Gennaro e altri. che considera le primitive crittografiche pratiche che possono essere utilizzate per l'estrazione. Mostrano che le funzioni di hash non sono note per essere dei buoni estrattori, tuttavia può essere un cifrario a blocchi in modalità CBC-MAC (con qualche stampa fine). Considerano anche le costruzioni HMAC. L'approccio è attraente per l'implementazione poiché è possibile utilizzare librerie di crittografia standard.

Per CBC-MAC, la "stampa fine" è approssimativamente:

  • Suppone che il blockcipher sia una permutazione psueo-casuale
  • Deve essere codificato con una chiave veramente casuale (ma non necessariamente segreta) che può essere riutilizzata
  • Se l'uscita è m bit, l'ingresso deve avere almeno 2 m bit di entropia minima
  • La lunghezza del blocco e la lunghezza della chiave devono essere uguali (quindi se si utilizza AES, ciò significa che funziona solo AES-128)
  • La lunghezza di input è limitata ma il limite è alto

3

Per il caso del generatore pseudo-casuale crittografico, potresti anche consultare HKDF . Nel documento discutono gli estrattori di casualità concettualmente e praticamente e danno bei riferimenti.

Come nota a margine per generare casualità per Monte Carlo, c'è ovviamente HAVEGE . Se la sua velocità in bit e "provabilità" sono sufficienti, potresti evitare di doverti muovere con i generatori quantistici.

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.