Gabriele Gori RANDOMNESS parte prima Defin iz io ni , de te rm in ismo, te or ia de l caos Definizioni Casualità e causalità Determinismo classico Meccanica quantistica Teoria del caos Esiste la casualità? Ni. Casualità Un evento si definisce casuale quando non può essere predetto o nel caso in cui non succeda ad una serie di cause predefinite. Si definisce determinismo la caratteristica di un evento (o di un sistema) di seguire specifiche regole di evoluzione. Casualità - Causalità Nasce la dicotomia tra casualità e causalità. La causalità viene affermata dalla Scienza attraverso l'approccio epistemologico alla Natura sfociando in alcuni casi nel concetto di meccanicismo. Ogni evento in natura deriva da una serie di cause – conoscendo tutte le variabili in gioco e le leggi che regolamentano la Natura al momento t (stato del sistema) si può prevedere lo stato del sistema al tempo t + 1. Determinismo classico Cit. «Dobbiamo dunque considerare lo stato presente dell'universo come effetto del suo stato anteriore e come causa del suo stato futuro. Un'intelligenza che, per un dato istante, conoscesse tutte le forze da cui la natura è animata e la situazione rispettiva degli esseri che la compongono, se fosse abbastanza vasta da sottoporre questi dati ad analisi abbraccerebbe nella stessa formula i moti dei corpi più grandi dell'universo e quelli dell'atomo più leggero: per essa non ci sarebbe nulla d'incerto, ed il futuro come il passato sarebbe presente ai suoi occhi.» Pierre-Simon Laplace, 1812 Determinismo classico E' possibile applicare con successo la Matematica nella descrizione del mondo. Il successo della Scienza consiste nella riduzione a leggi della meccanica dei fenomeni naturali: “De revolutionibus orbium coelestium” Copernico, 1543 “Principia” Newton, 1687 I successi L'esistenza di Nettuno venne predetta attraverso calcoli matematici prima ancora che col cannocchiale la sera del 23 settembre 1846 da Johann Gottfried Galle con il telescopio dell'Osservatorio astronomico di Berlino. I cambiamenti insoliti nell'orbita di Urano lasciarono credere agli astronomi che vi fosse al di là un pianeta sconosciuto che ne perturbasse l'orbita. Il pianeta fu successivamente scoperto entro appena un grado dal punto predetto. Irregolarità Il determinismo classico funziona per sistemi relativamente semplici come fenomeni astronomici e fenomeni che permettono l'approssimazione a sistemi più semplici. Sistemi più complessi non possono essere definiti deterministici perché sfuggono alla previsione e presentano una evoluzione irregolare: moti browniani, andamenti economici, dinamiche biologiche: sistemi dinamici. Causalità «A causal relation [...] has no essential reference to existence, as to particular parts of time.» Bertrand Russell, 1902 “The Principles of Mathematics” Una delle prime critiche alla rational dynamics, in opposizione con Laplace. Causalità «Causality, generally, is the principle in virtue of which, from a sufficient number of events at a sufficient number of moments, one or more events at one or more new moments can be inferred.» Bertrand Russell, 1902 “The Principles of Mathematics” Viene eliminata la causalità nella sua definizione. Meccanica quantistica Principi Cambiamento di concezione meccanicistica della dinamica, da un certo grado di determinismo a ad una dinamica probabilistica. Ogni particella ha una probabilità p di avere un certo comportamento: determinismo non certo. Meccanica quantistica Principio di indeterminazione «Non è possibile conoscere simultaneamente la quantità di moto e la posizione di una particella con certezza.» Werner Heisenberg, 1927 Esula dal significato di indeterminismo, principio rivoluzionario all'interno della Fisica Quantistica, ma non abbastanza potente da poter affermare l'esistenza di casualità. Principio di indeterminazione Critiche Albert Einstein non accettava la concezione non deterministica data dal P.d.I. e affermò: «Non credo che Dio abbia scelto di giocare a dadi con l'universo.» Bohr, sostenitore del principio, aggiunse: «Einstein, smettila di dire a Dio cosa deve fare.» Principio di indeterminazione Critiche Secondo la definizione data, la teoria della meccanica quantistica non produce un mondo non deterministico. La Fisica inoltre ci dice che anche se il comportamento di una particella individuale è casuale, è correlato al comportamento delle altre particelle. Determinismo moderno I sistemi dinamici comprendono spesso elementi di impredicibilità, di “non determinismo”. Dal determinismo classico si passa quindi a quello moderno, attraverso il quale un nuovo concetto di determinismo viene alla luce attraverso la teoria del caos. Determinismo moderno Complessità Il determinismo moderno si deve scontrare contro fenomeni denominati complessi. Fenomeni in cui è fondamentale l'interazione complessa dei componenti. Questi sistemi fanno emergere fenomeni olistici, fenomeni risultanti dal principio per cui la somma delle parti è maggiore della somma delle singole parti. La teoria del caos si applica a fenomeni di questo tipo. Causalità Cit. «Let there be three particles A, B, C. We say that B and C both cause accelerations in A, as we compound these two accelerations by the parallelogram law. But this composition is not truly addition, for the components are not parts of the resultant. [...] the whole has no effect except what results from the effects of the parts [...]» Bertrand Russell, 1902 “The Principles of Mathematics” Primo esempio di definizione di sistema complesso. Determinismo moderno Teoria del caos La teoria del Caos rappresenta lo studio di sistemi che possono sembrare ad una prima analisi aleatori ma che invece rispondono a certi comportamenti ben definiti. La sua definizione è giovane (anni 70) ma corrisponde ad una valida alternativa al determinismo classico. Teoria del caos Cit. «A very small cause which escapes our notice determines a considerable effect that we cannot fail to see, and then we say that the effect is due to chance. If we knew exactly the laws of nature and the situation of the universe at the initial moment, we could predict exactly the situation of the same universe at a succeeding moment. But even if it were the case that the natural laws had no longer any secret for us, we could still know the situation approximately. If that enabled us to predict the succeeding situation with the same approximation, that is all we require, and we should say that the phenomenon had been predicted, that it is governed by the laws. But is not always so; it may happen that small differences in the initial conditions produce very great ones in the final phenomena. A small error in the former will produce an enormous error in the latter. Prediction becomes impossible [...]» Henri Poincaré Teoria del caos Lorenz Edward Norton Lorenz (1917 - 2008), matematico statunitense, è stato un pioniere nella teoria del Caos per le sue osservazioni nei sistemi complessi applicate alla meteorologia. Noto per la sua definizione di effetto farfalla, ha gettato le basi della teoria del caos scoprendo gli attrattori strani. Caos - Effetto farfalla Nel 1963, Lorenz lavorava la MIT come meteorologo ed era convinto che la semplificazione delle equazioni con cui lavorava, avrebbe aiutato a fare luce sulle sue problematiche. Dai risultati prima e dopo le semplificazioni formulò uno dei principi del caos: piccole variazioni delle condizioni iniziali producono notevoli divergenze nella evoluzione dei modelli. Chiamò questo l'effetto farfalla, immaginando come il battito d'ali in un emisfero avrebbe modificato le condizioni climatiche nell'altro emisfero. Conferenza annuale della American Association for the Advancement of Science, 1972. Caos - Sistema dinamico Due tipi di sistema dinamico: mappa logistica x(t + 1) = r * x(t) Funzione ricorsiva particolarmente sensibile alla variazione del parametro r. Caos - Sistema dinamico r = 0,85 (a) r = 2,8 (b) r = 3,3 (c) r = 4,0 (d) Fonte: [1] Caos - Spazio delle fasi Un sistema dinamico è descritto da un certo numero di variabili xi, pari al numero di gradi di libertà del sistema. In ogni momento, il sistema può essere descritto attraverso una n-pla di valori del tipo X=(x1, x2, … , xn). L'evoluzione del sistema è quindi l'evoluzione della n-pla dello stato presente del sistema. Si definisce spazio delle fasi, l'insieme di tutti i possibili valori che il sistema può assumere. Caos - Attrattori L'attrattore, concetto formulato dal Lorenz, rappresenta un'insieme limite dell'evoluzione del sistema. In altri termini, corrisponde ad un restringimento dello spazio delle fasi. I sistemi possono tendere ad un punto, ad una curva o ad una varietà in base al numero di gradi di libertà del sistema. Attrattori più complicati (e interessanti) prendono la struttura di un frattale e vengono chiamati attrattori strani. Caos - Attrattori Fonte: [1] Caos - Applicazioni Chimica: mescolamento di componenti. Medicina: evoluzione di epidemie, sistema immunitario, ritmo cardiaco. Statistica: evoluzione delle popolazioni. Economia: rivoluzione delle teorie classiche. Cinema: Jurassic Park Conclusioni La casualità non esiste a livello teorico. Nell’ambito subnucleare esiste un determinismo probabilistico che per certi aspetti ricalca la definizione di casualità. La teoria del Caos, applicata ai sistemi complessi, può portare alla soluzione di numerose problematiche di oggi. La teoria del Caos può infatti indicare modelli di ordine dove invece ci si aspetta il caos. Il cervello rappresenta un sistema complesso. Bibliografia [1] “Determinismo e Caos”, Angelo Vulpiani, 1994 “Le Leggi del Caos”, Ilya Prigogine, 1993 “The Principles of Mathematics”, Bertrand Russell, 1903 “Gödel, Escher, Bach: un'eterna ghirlanda brillante”, Douglas Hofstadter, 1979 Determinismo, Complessità, ecc., Wikipedia.it resonancepub.com/mathematics.htm, Henri Poincaré Cesare Gregori RANDOMNESS parte seconda Lo gica fuzz y e sue appl ic az io ni Cosa c’entra con la randomness? Esistono molti problemi difficili per cui è complicato creare un modello o dei buoni algoritmi risolutivi. Generare randomness è un problema difficile... Quindi? L'uomo ha risolto e risolve tuttora problemi complicati anche senza avere a disposizione modelli matematici complicati. Corollario ✏ il cervello umano è un buon risolutore e funziona meglio di molti algoritmi. È possibile imitare il ragionamento umano nel risolvere problemi complessi? Sì... Un modo che abbiamo per farlo è avvalerci della logica fuzzy. Come vedremo è possibile creare buoni generatori di random attraverso tecniche fuzzy. Un po’ di storia… (1) Nel 1964 Zadeh osservò che gli elementi chiave del pensiero umano non sono numeri ma etichette di insiemi fuzzy: il nostro cervello è pieno di insiemi fuzzy, anzi il pensiero non è altro che un gioco con gli stessi. Infatti una delle più sorprendenti capacità del cervello umano, tuttora non riproducibile dalle intelligenze artificiali, è quella di assumere informazioni approssimandole. Un po’ di storia… (2) Zadeh ritiene la complessità e la precisione inversamente proporzionali: se cresce la complessità del problema diminuisce la possibilità di analizzarlo in termini precisi. Un’applicazione molto nota è stata realizzata dall’HITACHI, per il controllo della frenatura dei treni della metropolitana di Sendai. Con solo 54 regole fuzzy il sistema riesce a far accelerare e decelerare i treni più dolcemente. Non ha mai dato alcun problema e consente una riduzione del 15% del consumo d’energia. È entrato in funzione nel luglio del 1987. Un po’ di storia… (3) L'idea di grado d'appartenenza, il concetto divenuto poi la spina dorsale della teoria degli insiemi sfumati, fu introdotta nel 1964, e ciò portò in seguito, nel 1965, alla pubblicazione di un primo articolo, ed alla nascita della logica sfumata. Il concetto di insieme sfumato,e di logica sfumata, attirò le aspre critiche della comunità accademica; nonostante ciò, studiosi e scienziati di tutto il mondo dei campi più diversi, dalla psicologia alla sociologia, dalla filosofia all'economia, dalle scienze naturali all'ingegneria - divennero seguaci di Zadeh. Logica aristotelica vs. logica fuzzy Non siamo qui a dire che la logica fuzzy può sostituire la logica classica. In alcuni casi però è soluzione di problemi altrimenti irrisolvibili. Teoria degli insiemi fuzzy Prendiamo in considerazione la accezione più larga di logica fuzzy che coinvolge anche la teoria degli insiemi fuzzy. Teoria degli insiemi fuzzy La teoria degli insiemi fuzzy costituisce un'estensione della teoria classica degli insiemi poiché per essa non valgono i principi aristotelici di non-contraddizione (x appartiene ad A, non può appartenere a !A) e del terzo escluso (“tertium non datur”: A e !A costituiscono l'universo del discorso). Max Black e Jan Łukasiewicz (prima metà del XX secolo) ridiscutono questa impostazione bivalente. Paradosso del mentitore Cit. “Il cretese Epimenide afferma che il cretese è bugiardo.” Eubulide di Mileto (metà del IV secolo a.C.) Paradosso del mentitore (2) Soluzione proposta da Koso allievo di Zadeh: se quanto afferma Epimenide è vero: il cretese è bugiardo (= vero)... essendo cretese (mente) afferma che i cretesi mentono... l'affermazione di Epimenide è vera! Paradosso del mentitore (3) Viceversa se: il cretese è bugiardo (= falso)... in quanto cretese (e i cretesi non mentono)... Epimenide mente quando afferma che il cretese è bugiardo... l'affermazione di Epimenide è falsa! Paradosso del mentitore (4) chiamo X l'enunciato e v il suo valore di verità (0/1) X vero v=1, !X falso !v=0 !v può essere visto come: !v(=0) = 1 - v(=1) X falso v=0, !X vero !v=1 !v può essere visto come: !v(=1) = 1 - v(=0) perciò X e !X portano allo stesso risultato X = !X Paradosso del mentitore (5) quindi anche v=!v cioè si arriva alla contraddizione v=1-v che si risolve banalmente in logica fuzzy con 2v=1 cioè v=1/2 Epimenide dice una mezza verità che in logica fuzzy si traduce con l'appartenenza al 50%all'insieme delle affermazioni vere e 50% a quello delle false. Un esempio È stato preso in considerazione un problema apparentemente banale per la mente umana, la cui interpretazione è alquanto complessa in logica binaria. Questa difficoltà nasce dalla necessità di considerare contemporaneamente diverse variabili il cui stato non si limita ai due valori convenzionali della logica binaria (vero o falso), ma possono acquisire infiniti stati intermedi. SmartParking (1) Il problema del parcheggio. L'obiettivo è quello di far parcheggiare al calcolatore un autovettura in retromarcia; le variabili di input (o variabili di stato) del problema, che vengono assegnate dall'utente, sono la posizione (x, y) e l'orientamento dell'auto. SmartParking (2) Nello sviluppo delle regole Fuzzy, viene valutata la posizone x dell'auto (la y è trascurata) e il suo orientamento; le regole sono quindi del tipo: “Se x è molto a sinistra del parcheggio e l'angolo è sud ovest allora sterza di un piccolo angolo positivo” ovvero: ✏ IF x IS S AND a IS SO THEN a IS a+PP Dove a è l'orientamento della macchina. SmartParking (3) Il controllore fuzzy si basa su tre stadi: 1. Fuzzificazione 2. Controllo 3. Defuzzificazione Fuzzificazione La fuzzificazione consiste nella conversione dei valori di input (che nel nostro caso sono posizione ed orientamento) in valori linguistici con un grado di membership che può essere dato come nel nostro caso da funzioni triangolari; per la variabile "posizione" abbiamo definito cinque sets, per "angolo" sette. SmartParking (4) Controllo Per ogni regola “if then” definita viene computato il grado di applicabilità della stessa dato dal minimo tra i due valori di membership delle variabili. Defuzzificazione La defuzzificazione consiste nella riconversione di valori linguistici di output in valori crisp; quetso viene effettuato tramite la regola del controide che, nel nostro caso, è facilmente schematizzabile nel seguente modo: ✏ z = sum(fi * zi) / sum(zi) Dove zi è il grado di applicabilità della regola e fi è il valore centrale della funzione di membership. SmartParking Smart Parking (esempio) Il resto... La letteratura sulla logica fuzzy è molto ampia, in quanto essa è applicabile per svariate situazioni. Per ritornare sul seminato possiamo citare: “The Enhanced Fuzzy Bit generator (EFBG): A Cryptographically Secure Pseudorandom Bit Generator”, Said E. El-Khamy, Mona A. Lotfy e Adel Hamdi Ali, 2007 Bibliografia “A New Fumy Logic Based Pseudo-Random Bit Generator for Secure DS-CDMA Systems”, Said E. EI- Kbamy, Mona Lotfy e Adel Hamdi Ali “The Enhanced Fuzzy Bit generator (EFBG): A Cryptographically Secure Pseudorandom Bit Generator”, Said E. El-Khamy, Mona A. Lotfy e Adel Hamdi Ali, 2007 Stefano Canducci RANDOMNESS parte terza R an dom ne ss e sicu re zz a Domande Dove è usata in ambito di sicurezza? Come ci viene fornita? Il metodo scelto è crittograficamente sicuro? Possibilità di crittografia con fonti di randomness imperfetta? Randomness ... Una definizione colloquiale: “un processo casuale è quello le quali conseguenze sono sconosciute” Molto importante perché ci permette di creare dell’informazione difficile da dedurre o predire. Essa deve essere utilizzata nel migliore dei modi affinche ci permetta di proteggere efficacemente dati e comunicazioni. ... vs. Imprevedibilità Un processo random è sempre imprevedibile; uno imprevedibile non si può dire random. Esempio di processo random: lancio di una moneta per creare stringhe di N bit. Testa/croce 0/1. Esempio di processo solo imprevedibile: lancio di N/3 monete per creare stringhe di N bit. 1 = 001, 2 = 010, … , 6 = 110. Entropy Usata per misurare l’imprevedibilità ed è il logaritmo negativo della probabilità dell’output del processo con maggior probabilità. Se un processo ha entropia massima, esso è completamente random e il suo output è uniformemente distribuibile. (monete) −log(2^−N) = N (dadi) −log(1/6)^(N/3) = N/3log6 ≈ 0.86N Dove viene usata? One-time pads Key generation Message randomization Nonces Identificazione e zero-knowledge One-time pads (1) Schema di cifratura sicuro con chiave utilizzabile una volta sola. Alice m k k Alice spedisce a Bob c = m ⊗ k. Bob capisce m da c usando la chiave comune k e riutilizzando lo xor. Bob One-time pads (2) Intercettare c non fa capire nulla del messaggio originario, perché c non ha nessuna informazione su m. Questo è vero però solo nel caso che la chiave k sia stata scelta in modo veramente random. Key generation (1) Generare le chiavi è uno degli usi più importanti di randomness nell’ambito della crittografia. Nessuna influenza o correlazione tra i bit di una chiave. La debolezza del one-time pad, potrebbe però non tradursi direttamente in una debolezza per algoritmi che usano operazioni iterate e complesse (come il DES, ad esempio). Key generation (2) In DES, se la chiave non è random, il processo di cifratura porta ad usare con maggior frequenza alcuni valori nelle s-box. Questo potrebbe portare a debolezze e attacchi inaspettati. Oltre a questo, una chiave random è molto più difficile da indovinare con attacchi di forza bruta. Sapere che alcuni bit tendono a zero più frequentemente, ad esempio, riduce notevolmente lo spazio di ricerca delle chiavi. Message randomization Ovviamente, la randomness dovrebbe essere usata anche per cifrare messaggi e non solo per la generazione delle chiavi. Un avversario può capire cose interessanti anche solo leggendo il messaggio cifrato. Seminale paper di Shafi Goldwasser e Silvio Micali: “Probabilistic Encryption”, J. Computer System Sciences, 1984 Nonces Nonce sta per “number used once”. Spesso un numero random o pseudo-random usato nei protocolli di autenticazione. Altri modi possibili per generare questi valori: ✏ contatori ✏ time stamps... Identificazione e zero-knowledge Un uso molto affascinante di randomness è l’utilizzo della stessa in protocolli di tipo zeroknowledge. Usato in protocolli d’identificazione. Zero-knowledge (metafora) Dove trovare “randomness”? Ovviamente non possiamo costruire uno specializzato cryptochip che lancia una moneta perfettamente non influenzata ogniqualvolta ci serva un bit random, quindi dove possiamo prendere randomness? 1927: prima tabella di 40000 cifre. Introduciamo la differenza tra numeri casuali e numeri pseudo-casuali. Numeri casuali e pseudo-casuali Vi è differenza tra loro non solo per come vengono generati, ma anche perché vengono usati per scopi differenti. I numeri casuali: ✏ generare coppie di chiavi RSA ✏ fornire il valore del seme iniziale per i generatori di numeri pseudo-casauli… Quelli pseudo-casuali: ✏ generare le chiavi di sessione... Numeri casuali e pseudo-casuali Non è semplice generare numeri veramente casuali. Talmente difficile che gli scienziati spesso optano per mezzi non convenzionali (teoria del caos, ecc) e i programmatori si affidano a operazioni complicate sui numeri. Ma sono realmente random questi numeri ottenuti? Dipende dalla scelta del seme! The Netscape incident Bonus folklore! Settembre 1995: Ian Goldberg e David Wagner (studenti) rompono lo schema di generazione di numeri casuali di Netscape. Tramite reverse-compilation riuscirono a scoprire alcuni difetti (eufemismo) nella generazioni di numeri casuali. Netscape usava 3 valori per il seed iniziale: ✏ il PID ✏ il PPID ✏ l’ora. Col senno di poi ci sembra banale che fu una scelta infelice. The Netscape incident Bonus folklore! Morale della storia: protocolli sicuri si rivelano non sicuri se non costruiti con implementazioni sicura. Di conseguenza, in crittografia, è importante avere una buona fonte di randomness Numeri casuali (1) Processi matematici deterministici, non soddisfano le nostre esigenze di casualità. Si preferisce ricorrere a variabili date da: tempo di clock, numeri di serie (ethernet#...) numero file o spazio libero su disco... stato della memoria centrale... Numeri casuali (2) Con questi metodi si ottengono però pochi bit e neppure tanto segreti. Come sorgenti di casualità è possibile utilizzare eventi esterni al sistema: contenuto battute su tastiera o intervalli di tempo tra le battute; tempi e posizione del cursore e/o mouse… tempo di arrivo dei pacchetti su rete... Numeri casuali (3) Non conoscere le “regole del gioco”. L’ideale sarebbe quello di usare fenomeni fisici intrinsecamente non deterministici per generare eventi casuali. Altri metodi: Metodi manuali Estrazione da tabelle Generazione col calcolatore Numeri casuali (4) Metodi manuali: lancio di dadi o monete, estrazione da urne, ecc. Sequenza dei numeri “ottima”, ma tempo di generazione troppo lungo per generarli in pratica. Estrazione da tabelle: varie tavole di numeri casuali sono state realizzate, contenenti un milione di cifre casuali da 0 a 9, generate mediante un dispositivo elettronico. Numeri casuali (5) Generazione con il calcolatore: ad un calcolatore associato ad un congegno all’estrazione da tavole già costruite alle generazione mediante metodi aritmetici Numeri casuali (6) L’ideale è quella di utilizzare sorgenti diverse tra loro e di mischiare i bit così ottenuti tramite una funzione opportuna (il triplo DES o funzioni hash, ad esempio). Nessuna funzione di tipo deterministico, applicata alla sequenza di bit casuali generata, può aumentare la casualità di quella stringa; l'unica cosa che può fare è rendere più o meno uniforme la casualità della sequenza iniziale! Numeri casuali (7) Fonte: [1] Numeri pseudo-casuali Un generatore pseudo-casuale è una funzione f che a partire dai precedenti valori genera i successivi: ✏ Xi + 1 = f (i, X0 X1...Xi) i = 0, 1, 2, … dove X0 è il valore iniziale, il seme, a partire dal quale si calcola la sequenza: ✏ X1 X2 X3 X4 ... Generatore a congruenze lineari A partire dal valore del seme X0 tutti gli altri Xi vengono generati di volta in volta secondo la seguente formula: ✏ Xi + 1 = (a * Xi + b) mod m In questo tipo di generatore a, b ed m sono noti a tutti, mentre il seme X0 è segreto. Il problema è come scegliere i valori per a, b e m. Generatore a congruenze lineari a = 1, b = 1 ✏ Xi + 1 = (1 * Xi + 1) mod m ✏ no. a = 7, b = 0, m = 32 ✏ Xi + 1 = (7 * Xi + 0) mod 32 ✏ 7, 17, 23, 1, 7, 17, 23, … a = 7^5 = 16805, b = 0, m = 2^31-1 ✏ ok. Alcuni algoritmi Yarrow algorithm e Fortuna /dev/random e /dev/urandom CryptGenRandom OpenBSD UNIX, Linux Windows Test per generatori (1) Quando un generatore casuale viene detto crittograficamente forte? Solo se supera seguenti test (equivalenti tra loro): ✏ il test del prossimo bit ✏ il test statistico Test per generatori (2) Prossimo bit: se sono noti i primi r bit dell'output del generatore (con il seme iniziale non noto), non esiste un algoritmo efficiente che può indovinare l'(r+1)-esimo bit con una probabilità significativamente migliore di 1/2 Statistico: non esiste un algoritmo efficiente che riesce a distinguere tra l'output di un generatore ed una stringa realmente casuale, con una probabilità significativamente migliore di 1/2. Conseguenze a una fonte di randomness imperfetta L’intuizione che basti solo una fonte ad alta entropia per garantire sicurezza, è risultata falsa. Impossibilità: ✏ bit commitment ✏ encryption ✏ secret sharing ✏ zero-knowledge ✏ non-interactive zero-knowledge ✏ secure two-party computation Possibilità: ✏ secure signature scheme ✏ interactive proof Risorse “Randomness in Cryptography”, Rosario Gennaro, 2006, IEEE Security & Privacy [1] “Corso di Sicurezza su Reti”, Prof. Alfredo De Santis, 2000, Università degli Studi di Salerno “On the (Im)possibility of Cryptography with Imperfect Randomness”, Yevgeniy Dodis, Shien Jin Ong, Manoj Prabhakaran, Amit Sahai, 2004, FOCS’04 Fin.