In pratica vengono utilizzati generatori pseudocasuali teoricamente sani?


17

Per quanto ne so, la maggior parte delle implementazioni della generazione di numeri pseudocasuali in pratica utilizza metodi come i registri di feedback a spostamento lineare (LSFR) o questi algoritmi "Mersenne Twister". Mentre superano molti test statistici (euristici), non ci sono garanzie teoriche che sembrino pseudocasuali, per esempio, tutti i test statistici calcolabili in modo efficiente. Eppure questi metodi sono usati indiscriminatamente in tutti i tipi di applicazioni, che vanno dai protocolli crittografici al calcolo scientifico al settore bancario (probabilmente). Trovo un po 'preoccupante che non abbiamo quasi nessuna garanzia sul fatto che queste applicazioni funzionino come previsto (perché qualsiasi tipo di analisi avrebbe probabilmente assunto la vera casualità come input).

D'altra parte, la teoria della complessità e la crittografia forniscono una teoria molto ricca di pseudo-casualità, e abbiamo persino costruzioni candidate di generatori pseudocasuali che potrebbero ingannare QUALSIASI test statistico efficiente che potresti realizzare, usando le funzioni candidate one-way.

La mia domanda è: questa teoria è diventata pratica? Spero che per importanti usi della casualità, come la crittografia o il calcolo scientifico, vengano usati teoricamente PRG.

A parte questo, ho potuto trovare alcune analisi limitate di quanto bene gli algoritmi popolari come quicksort funzionano quando si usano gli LSFR come fonte di casualità, e apparentemente funzionano bene. Vedi "Algoritmi randomizzati e numeri pseudocasuali" di Karloff e Raghavan .


3
C'è persino un PRG universale: è sicuro se esistono PRG sicuri.

Intendi PRG crittografici? Se è così, allora non sappiamo che i PRG (crittografici) sono equivalenti agli OWF?
Henry Yuen,

2
Sì. Dividere il seme bit in circa K blocchi di circaK bit ciascuno, eseguiKil primo [numero di blocchi] macchine di Turing sui blocchi corrispondenti per un massimo di passi,K2 pad le uscite a K+1 bit e genera l'output di quelle uscite di TM. (Proprio come la ricerca universale di Levin, questa non può essere utilizzata in pratica.)

1
forse più rilevanti per la pratica sono i risultati relativi alla casualità richiesta per l'hashish: dalle classiche famiglie con indipendenza limitata a risultati più recenti come Mitzenmacher-Vadhan (indipendenza a coppie + qualche entropia nell'input dà pseudorandomness sufficiente per sondaggi lineari e filtri di fioritura) o Patrascu -Thorup risultati sull'hash della tabulazione.
Sasho Nikolov,

1
"Tuttavia questi metodi sono usati indiscriminatamente in tutti i tipi di applicazioni, che vanno dai protocolli crittografici ...". Spero di no. Mersenne Twisters non dovrebbe essere usato per la crittografia poiché non sono crittograficamente forti anche se ci sono varianti che potrebbero esserlo.
Mike Samuel,

Risposte:


13

La nozione di generatori pseudocasuali "teoricamente sani" non è davvero ben definita. Dopotutto, nessun generatore pseudocasuale ha una prova di sicurezza. Non so che possiamo dire che un generatore pseudocasuale basato sulla durezza del factoring di interi di grandi dimensioni sia "più sicuro" di, per esempio, l'uso di AES come generatore pseudocasuale. (In effetti, si ha la sensazione che sia meno sicuro, dal momento che conosciamo algoritmi di factoring quantistico ma non algoritmi quantistici per rompere AES.)

Quello che abbiamo prove matematiche per sono vari risultati di composizione, dicendo che se componi cifrature a blocchi o funzioni di hash in certi modi puoi ottenere generatori pseudocasuali o funzione pseudocasuale. Alcuni di questi risultati sono ampiamente utilizzati in pratica, ad esempio HMAC . Ma è vero che i risultati che ottengono un PRG e iniziano solo supponendo che il componente di base sia una semplice funzione a senso unico non sono abbastanza efficienti da usare per le applicazioni (e questo è almeno in parte inerente). Quindi, in genere dobbiamo assumere una funzione PRG / stream cipher / block-cipher / hash come una primitiva di base e iniziare a costruire altre cose da essa. Il problema non riguarda in realtà l'analisi asintotica poiché essenzialmente tutte le riduzioni crittografiche (tranne forse per il PRG universale di Levin) possono essere concretizzate e quindi dare garanzie concrete sotto ipotesi concrete.

Ma anche se non si basano su funzioni a senso unico, c'è un senso in cui costruzioni come AES sono "teoricamente valide" perché: (1) Ci sono congetture formali sulla loro sicurezza. (2) C'è del lavoro per cercare di confutare queste congetture e anche derivarne implicazioni.

E in effetti, le persone sono consapevoli del fatto che per molte applicazioni non sarebbe intelligente usare PRG come LSFR che non soddisfano (1) e (2) sopra.


1
Immagino che volessi collegarti a uno dei documenti di Jonathan Katz in atto sulla sua pagina web. A proposito, vuoi che uniamo questo con l'altro account ?
Kaveh,

9

Sembra che tu confonda la teoria con la pratica. Un generatore pseudocasuale teoricamente valido non è adatto all'uso pratico per diversi motivi:

  • Probabilmente è molto inefficiente.
  • La prova di sicurezza è solo asintotica, e quindi per il particolare parametro di sicurezza utilizzato, il generatore pseudocasuale può essere facile da interrompere.
  • Tutte le prove di sicurezza sono condizionate, quindi in un certo senso non soddisfano nemmeno il concetto di sicurezza teorica.

Al contrario, i generatori pseudocasuali effettivi sono veloci e hanno gusti diversi a seconda del loro utilizzo. Per un uso non crittografico, quasi qualsiasi cosa diversa da un semplice LFSR farà il lavoro - non in modo dimostrabile, ma in pratica (che è più importante per le persone che usano le cose nella realtà).

Per uso crittografico, le persone cercano di essere più intelligenti. A questo punto la tua critica ha un senso: non possiamo sapere che un particolare generatore pseudocasuale utilizzato è "sicuro", e in effetti alcuni vecchi sono stati rotti, ad esempio RC4 come usato in WEP. Tuttavia, per le ragioni sopra esposte, l'uso di un generatore pseudocasuale teoricamente (condizionatamente) sano non è purtroppo una soluzione realistica. Invece, la comunità crittografica si affida alla "peer review" - altri ricercatori che cercano di "rompere" il sistema (la loro definizione di quando si rompe un codice è molto ampia).

Infine, nelle applicazioni in cui il denaro può essere investito e la sicurezza è abbastanza importante - dicono i codici nucleari - le persone usano il rumore generato fisicamente (passato attraverso un estrattore di casualità), anche se anche questo non è al di là delle critiche teoriche.


Quando i ricercatori scrivono proposte di sovvenzione o presentazioni a documenti, spesso affermano che la loro ricerca riguarda e informa la pratica. Che ci credano o sia solo un servizio labiale non lo so (e potrebbe dipendere dal ricercatore), ma dovresti essere consapevole che la connessione è molto esagerata negli ambienti accademici, per ovvie ragioni.

Una cosa che ci limita come ricercatori matematici è il nostro attaccamento dogmatico alla prova formale. Citi l'analisi di algoritmi randomizzati alimentati da semplici generatori pseudocasuali. Questo tipo di analisi non può essere esteso ai problemi del mondo reale, poiché sono semplicemente troppo complicati. Eppure, in pratica, le persone risolvono continuamente anche problemi NP-difficili, con metodi informati.

I problemi del mondo reale sono meglio compresi con un occhio più scientifico e sperimentale. Sono meglio risolti dal punto di vista ingegneristico. Ispirano la ricerca teorica e occasionalmente ne sono informati. Come diceva Dijsktra, l'informatica (teorica) non riguarda più i computer, non più.


Grazie per la tua risposta, Yuval. Tuttavia, non credo pienamente che le costruzioni di generatori pseudocasuali dalla crittografia siano impraticabilmente inefficienti. Per quanto posso vedere, nessuno ha studiato questo.
Henry Yuen,

2
Sono anche in disaccordo con l'affermazione generale secondo cui i generatori pseudocasuali standard sono sufficienti per "scopi quotidiani". Come ha mostrato il recente documento "Ron aveva torto, Whit aveva ragione", la generazione pseudocasuale difettosa ha portato a vulnerabilità imbarazzanti per un numero non trascurabile di persone. Quell'analisi particolare era abbastanza semplice; quante applicazioni del "mondo reale" potrebbero presentare vulnerabilità più sottili perché gli LSFR non sono adeguati? Se l'overhead computazionale aggiunto necessario per i PRG teoricamente validi non è molto, perché non usarli?
Henry Yuen,

1
Gli LSFR @HenryYuen non sono usati per applicazioni crittografiche in nessun sistema decente e moderno. (Certo, ci sono sistemi mal progettati là fuori, come il GSM che viene insegnato nei corsi introduttivi su come non farlo.) I problemi riscontrati nel documento "Ron aveva torto, Whit ha ragione" non erano con la qualità del PRNG stesso, ma con la qualità della raccolta di entropia.
Gilles 'SO- smetti di essere malvagio'
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.