Generatori di Numeri Pseudocasuali



Documenti analoghi
Metodi e Modelli per l Ottimizzazione Combinatoria Progetto: Metodo di soluzione basato su generazione di colonne

PROCEDURA INFORMATIZZATA PER LA COMPENSAZIONE DELLE RETI DI LIVELLAZIONE. (Metodo delle Osservazioni Indirette) - 1 -

Ministero della Salute D.G. della programmazione sanitaria --- GLI ACC - L ANALISI DELLA VARIABILITÀ METODOLOGIA

Aritmetica e architetture

Dipartimento di Statistica Università di Bologna. Matematica finanziaria aa lezione 13: 24 aprile 2013

RETI TELEMATICHE Lucidi delle Lezioni Capitolo VII

Macchine. 5 Esercitazione 5

Statistica e calcolo delle Probabilità. Allievi INF

La retroazione negli amplificatori

NOTE DALLE LEZIONI DI STATISTICA MEDICA ED ESERCIZI CONFRONTO DI PIU MEDIE IL METODO DI ANALISI DELLA VARIANZA

* PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE *

Relazioni tra variabili: Correlazione e regressione lineare

3. Esercitazioni di Teoria delle code

Capitolo 3 Covarianza, correlazione, bestfit lineari e non lineari

* * * Nota inerente il calcolo della concentrazione rappresentativa della sorgente. Aprile 2006 RL/SUO-TEC 166/2006 1

Relazione funzionale e statistica tra due variabili Modello di regressione lineare semplice Stima puntuale dei coefficienti di regressione

TITOLO: L INCERTEZZA DI TARATURA DELLE MACCHINE PROVA MATERIALI (MPM)

La verifica delle ipotesi

Analisi ammortizzata. Illustriamo il metodo con due esempi. operazioni su di una pila Sia P una pila di interi con le solite operazioni:

Variabili statistiche - Sommario

Condensatori e resistenze

PARENTELA e CONSANGUINEITÀ di Dario Ravarro

Circuiti di ingresso differenziali

Introduzione al Machine Learning

Calcolo della caduta di tensione con il metodo vettoriale

Trigger di Schmitt. e +V t

CAPITOLO IV CENNI SULLE MACCHINE SEQUENZIALI

Il modello markoviano per la rappresentazione del Sistema Bonus Malus. Prof. Cerchiara Rocco Roberto. Materiale e Riferimenti

Soluzione esercizio Mountbatten

Risoluzione quesiti I esonero 2011

Capitolo 7. La «sintesi neoclassica» e il modello IS-LM. 2. La curva IS

STATISTICA DESCRITTIVA CON EXCEL

Studio grafico-analitico di una funzioni reale in una variabile reale

DBMS multimediali A L B E R T O B E L U S S I B A S I D I D A T I A N N O A C C A D E M I C O /

STATISTICA DESCRITTIVA - SCHEDA N. 5 REGRESSIONE LINEARE

Strutture deformabili torsionalmente: analisi in FaTA-E

LA COMPATIBILITA tra due misure:

Concetti principale della lezione precedente

Lezione 10. L equilibrio del mercato finanziario: la struttura dei tassi d interesse

A. AUMENTO DELLA SPESA PUBBLICA FINANZIATO ESCLUSIVAMENTE TRAMITE INDEBITAMENTO

Dipartimento di Economia Aziendale e Studi Giusprivatistici. Università degli Studi di Bari Aldo Moro. Corso di Macroeconomia 2014

Prova di verifica n.0 Elettronica I (26/2/2015)

Calcolo delle Probabilità

Principi di ingegneria elettrica. Lezione 6 a. Analisi delle reti resistive

Newsletter "Lean Production" Autore: Dott. Silvio Marzo

Soluzioni per lo scarico dati da tachigrafo innovativi e facili da usare.

Test delle ipotesi Parte 2

CAPITOLO 3 Incertezza di misura Pagina 26

LA STATISTICA: OBIETTIVI; RACCOLTA DATI; LE FREQUENZE (EXCEL) ASSOLUTE E RELATIVE

MACROECONOMIA A.A. 2014/2015

Valore attuale di una rendita. Valore attuale in Excel: funzione VA

Modelli descrittivi, statistica e simulazione

Progetto Lauree Scientifiche. La corrente elettrica

VA TIR - TA - TAEG Introduzione

Analisi di mercurio in matrici solide mediante spettrometria di assorbimento atomico a vapori freddi

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili. Modelli per la Logistica: Single Flow One Level Model Multi Flow Two Level Model

Dipartimento di Statistica Università di Bologna. Matematica Finanziaria aa Esercitazione: 4 aprile 2013

Realizzazione di FSM sincrone. Sommario. Introduzione. Sommario. M. Favalli

Ottimizzazione nella gestione dei progetti Capitolo 6 Project Scheduling con vincoli sulle risorse CARLO MANNINO

Dati di tipo video. Indicizzazione e ricerca video

Numeri casuali. Randomness by obscurity. Generazione Deterministica? Caratteristiche del sistema. Caratteristiche del sistema

FORMAZIONE ALPHAITALIA

Questo è il secondo di una serie di articoli, di

{ 1, 2,..., n} Elementi di teoria dei giochi. Giovanni Di Bartolomeo Università degli Studi di Teramo

Università degli Studi di Cassino, Anno accademico Corso di Statistica 2, Prof. M. Furno

Moduli su un dominio a ideali principali Maurizio Cornalba versione 15/5/2013

Hansard OnLine. Unit Fund Centre Guida

Programmazione e Controllo della Produzione. Analisi dei flussi

Analisi degli errori. Introduzione J. R. Taylor, Introduzione all analisi degli errori, Zanichelli, Bo 1986

STATISTICA PSICOMETRICA a.a. 2004/2005 Corsi di laurea. Scienze e tecniche neuropsicologiche Modulo 3 Statistica Inferenziale

LE CARTE DI CONTROLLO

Università degli Studi di Urbino Facoltà di Economia

Norma UNI CEI ENV 13005: Guida all'espressione dell'incertezza di misura

Analisi dei flussi 182

Algebra Sia A un anello commutativo. Si ricorda che in un anello commutativo vale il teorema binomiale, cioè. (a + b) n = a i b n i i.

Corso di Statistica (canale P-Z) A.A. 2009/10 Prof.ssa P. Vicard

Propagazione delle incertezze

I MODELLI MULTISTATO PER LE ASSICURAZIONI DI PERSONE

Intorduzione alla teoria delle Catene di Markov

Tutti gli strumenti vanno tarati

MODELLISTICA DI SISTEMI DINAMICI

Economie di scala, concorrenza imperfetta e commercio internazionale

Capitolo 6 Risultati pag a) Osmannoro. b) Case Passerini c) Ponte di Maccione

ANALISI STATISTICA DELLE INCERTEZZE CASUALI

Architetture aritmetiche. Corso di Organizzazione dei Calcolatori Mariagiovanna Sami

LEZIONE 2 e 3. La teoria della selezione di portafoglio di Markowitz

Limitazioni di ampiezza negli amplificatori reali

Statistica Descrittiva

Strada B. Classe Velocità valore frequenza Frequ. ass Frequ. % hi Freq. Cum

Elementi di statistica

IL RUMORE NEGLI AMPLIFICATORI

Leggere i dati da file

y. E' semplicemente la media calcolata mettendo

TEST D INGRESSO MATEMATICA 24/05/2011

3 CAMPIONAMENTO DI BERNOULLI E DI POISSON

Lezione 20 Maggio 29

ELEMENTI DI STATISTICA

INCUL ISTITUTO NAZIONALE PER L'ASSICURAZIONE CONTRO GLI INFORTUNI SUL LAVORO

Laboratorio 2B A.A. 2012/2013. Elaborazione Dati. Lab 2B CdL Fisica

La regressione. La Regressione. La Regressione. min. min. Var X. X Variabile indipendente (data) Y Variabile dipendente

Transcript:

CORSO DI LAUREA MAGISTRALE INGEGNERIA DELLE TECNOLOGIE DELLA COMUNICAZIONE E DELL INFORMAZIONE Generator d Numer Pseudocasual Dego Belvedere, Alessandro Brugnola, Alessa Vennarn Prof. Francesca Merola Roma, Maggo, 009 Anno Accademco 008/009

Indce Captolo 1. Introduzone 1.1. Sequenze veramente casual e pseudocasual 1.. Requst delle sequenze 1.3. Generator percolos 1.4. Applcazon 1.5. Una defnzone d generatore 1.6. Bontà d un generatore 1.7. Caratterstche de PRNG 1.8. PRNG Crttografcamente Scur (CSPRNG) 1.8.1. CSPRNG: Generatore Fortuna Captolo. Generator d numer pseudocasual.1. Introduzone.. ANSI X9.17.3. Lnear Congruental Generator (LCG).4. Lagged Fbonacc Generator (LFG).5. Mersenne Twster.6. CSPRBG.6.1. Generatore RSA.6.. Blum Blum Shub (BBS) Captolo 3. Test Statstc 3.1. Dstrbuzone Normale e χ 3.. Controllo delle potes 3.3. Cnque test d base 3.4. Maurer s unversal statstcal test 3.5. Next bt test

Captolo 4. Attacch d Crttoanals su PRNG 4.1. Class d attacch 4.. Lnee guda per l utlzzo d PRNG vulnerabl 4.3. Lnee guda per l progetto d un PRNG 4.4. Problem apert Captolo 5. Fortuna Generator 5.1. Algortmo Fortuna 3

Captolo 1. Introduzone Per nzare a comprendere l mportanza della casualtà bsogna capre bene la dfferenza tra numero casuale e numero pseudocasuale. Il numero casuale è un numero estratto da un nseme d valor equprobabl, mentre l numero pseudocasuale è un numero casuale generato da calcolatore. 1.1 Sequenze veramente casual e pseudocasual Nelle lottere con un premo n denaro, numer vncent sono d solto ver numer casual ed ognuno è determnato da una pallna numerata messa con delle altre n un contentore. Un generatore d numer veramente casual ha bsogno d una sorgente randomca esstente n natura ed è un compto dffcle progettare un dspostvo hardware o un programma software che sfrutt questa casualtà e produca una sequenza d numer lbera da error e correlazon. Questo ovvamente non è possble pratcamente con le smulazon al calcolatore, specalmente quando sono rchest mlon d numer casual. Infatt, le tecnche che facevano uso de numer veramente casual e altr metod Monte Carlo (dal legame che esste tra goco e smulazon probablstche, n onore del famoso casnò d Monaco) sono stat abbandonat per vare ragon. Su modern computer, numer pseudocasual sono generat da algortm nteramente determnstc e l obettvo pù soddsfacente è quello per cu nessuno possa dstnguere la sequenza d uscta del generatore da una sequenza veramente random n un tempo ragonevole (qualche anno d tempo d CPU su potent computer), osservando solamente la sequenza d uscta e non conoscendo la struttura del generatore. Secondo quanto affermava John Von Neumann, non è possble produrre numer casual tramte metod matematc, n quanto un vero generatore d numer casual è uno strumento capace d fornre una sequenza d numer non determnstc. Quest numer sono dealmente nfnt e non sono nfluenzabl da alcun fattore esterno. Il computer, o qualsas macchna, non ha la possbltà d generare questo tpo d sequenza. L unco modo è utlzzare opportun algortm che generno numer apparentemente casual. Vengono qund chamat numer pseudocasual poché venendo a conoscenza dell algortmo e del prmo elemento (seme) utlzzato, è possble determnare la sequenza che verrà generata. Inoltre la sequenza non è nfnta, ovvero, la sequenza d numer generat s rpete cclcamente con un ntervallo fsso (perodo del generatore). L unco elemento puramente aleatoro è l seme, poché scelto da dat casual present nella macchna: ad esempo, l numero d fle present, l numero d battute della tastera, l oraro, ecc. 4

1. Requst delle sequenze Una sequenza d numer, per essere defnta casuale, deve possedere due caratterstche fondamental: dstrbuzone unforme e ndpendenza. La prma fa rfermento alla dstrbuzone unforme (equdstrbuzone) che devono possedere numer generat all nterno d un ntervallo determnato e soltamente l ntervallo ha ampezza (0,1). La seconda sgnfca che numer successv devono essere ndpendent tra d loro. L output al tempo t non deve qund nflure sull output generato al tempo t+1. Procedamo con un esempo charfcatore. L potetca sequenza d numer pseudocasual: 1,, 3, 4, 5, 6, 7, 8, 9, 10 è certamente equdstrbuta nell ntervallo (1, 10) e qund l prncpo della dstrbuzone, n questo caso, è stato rspettato. Lo stesso non s può dre ne confront dell ndpendenza. Tutte le coppe d numer sono nfatt nella forma (n, n+1). Rentrando nel campo della defnzone ntutva de PRNG, se osservassmo prm 8 numer della sequenza, potremmo faclmente potzzare l valore del nono output, e questo contrasta con la defnzone d generatore casuale. 1.3 Generator percolos La maggor parte de generator dsponbl su computer non ha le caratterstche deal elencate nel paragrafo precedente. Possono essere nadatt o addrttura percolos per l applcazone n uso. Per la crttografa, molt generator sono percolos perché c sono mod effcent per predre l valore successvo, data una sequenza d valor gà prodotta dal generatore. Molt de generator d default correntemente offert ne software n commerco, sono vecch e non compettv con quell basat sulla recente teora. Costrure un buon generatore non è per nente facle e, per usare una frase d Knuth: I numer casual non dovrebbero essere generat con un metodo scelto a caso!. 5

1.4 Applcazon L utlzzo maggore de numer casual s trova nella smulazone e nella crttografa. Nella smulazone è necessaro creare campon vrtual capac d rappresentare una popolazone reale o un suo aspetto. S effettuano smulazon d natura probablstca d fenomen fsc (reattor nuclear, traffco stradale, aerodnamca), d problem decsonal e fnanzar (es.: econometra, prevsone Dow Jones), nformatca (progettazone VLSI, renderng) o come semplce fonte d dvertmento (vdeogoch). Nella crttografa, nvece, c è la necesstà d generare numer che non possano essere determnat da terz. E dffcle mmagnare un applcazone crttografca ben progettata che non facca uso de numer casual. Le chav d sessone, vettor d nzalzzazone, l hash, parametr unc nelle operazon sulle frme dgtal ed nonce (number used once) ne protocoll sono assunt casual da progettst de sstem. Sfortunatamente, come s accennava all nzo, molte applcazon crttografche non hanno una fonte affdable d numer casual real, come l rumore termco ne crcut elettronc, l decadmento atomco o altr fenomen fsc con alta entropa. Qund usano un meccansmo crttografco chamato Generatore d Numer Pseudocasual (PNRG Pseudo-Random Number Generator), per generare quest valor. I PRNG raccolgono la casualtà da var fluss d ngresso a bassa entropa e provano a generare uscte che sono n pratca ndstngubl da ver fluss casual. 1.5 Una defnzone d generatore I generator d numer casual odern sono software che producono una sequenza d numer perodca e determnstca. L Ecuyer ha dato la seguente defnzone: Un generatore d numer pseudocasual è una struttura g = (S, s 0, T, U, G) dove: - S è un nseme fnto d stat (spazo degl stat), - s 0 S è lo stato nzale, - µ è la dstrbuzone d probabltà utlzzata per selezonare l seme dallo spazo degl stat S, - T : S S è la funzone d transzone utlzzata per determnare lo stato al tempo t+1 dato lo stato al tempo t, pù formalmente: s +1 = T(s ), - U è un nseme fnto d smbol d uscta (spazo degl output), - G : S U è la funzone d uscta. Dato un qualsas stato s, u = G(s ) U. Gl output u 0, u 1, sono numer casual prodott dal generatore. 6

Un generatore opera nel modo seguente: parte dallo stato nzale s 0 (chamato seme) e defnsce u 0 G(s 0 ). Po, per 1,, mposta s T(s -1 ) e u G(s ). S assume che sono dsponbl procedure effcent per calcolare T e G. La sequenza {u } è l output del generatore e gl element u sono chamat osservazon. Per generator d numer pseudocasual c s aspetta che l uscta abba l comportamento d una varable casuale unformemente dstrbuta sullo spazo U. L nseme U spesso è un nseme d nter {0,, m-1} o un nseme fnto d valor compres tra 0 e 1 per approssmare la dstrbuzone U(0,1). Dal momento che lo spazo degl stat S è fnto, selezonando un qualsas seme s, essterà sempre un valore l tale per cu: s +l = s In pratca, qualsas sa lo stato nzale, dopo un numero l d terazon, l PRNG torna nevtablmente allo stato nzale. Dal momento che sa la funzone d transzone che la funzone d output sono determnstche, allora anche gl output generat torneranno nevtablmente allo stato nzale. Il valore d l pù pccolo per cu s realzza l rtorno allo stato nzale è chamato perodo del PRNG ed è ndvduato dal smbolo ρ. Il valore d ρ è mnore o uguale alla cardnaltà dello spazo degl stat S. Nella pratca, essendo S memorzzato n un calcolatore sotto forma d strnga bnara d lunghezza k, allora ρ avrà lunghezza: ρ k I generator d buona qualtà s dstnguono per valor d ρ prossm a. Il valore d ρ dpende anche dal seme ed buon generator possedono valor del perodo unform per tutt possbl stat nzal. Un PRNG con l = 0 è detto puramente perodco. Da questa defnzone, lo stato nzale s 0 è assunto dato (determnstco). Per ntrodurre un po d casualtà reale, questo stato nzale può essere scelto casualmente (come estrarre de numer da un contentore). In altre parole, possamo generalzzare questa defnzone dcendo che lo stato nzale s 0 è generato casualmente secondo qualche dstrbuzone d probabltà µ su S. Generare un seme veramente casuale rchede molto meno lavoro ed è molto pù ragonevole che generare una lunga sequenza d ver numer casual. Un generatore con un seme casuale può essere vsto come un 7

estensore d casualtà, l cu scopo è quello d smulare l lanco della moneta ed estende un seme d breve lunghezza, veramente casuale, n una lunga sequenza d valor che s suppone comportars come una sequenza veramente casuale. 1.6 Bontà d un generatore Per valutare la bontà d un generatore vengono consderat l perodo del generatore e la casualtà della sequenza. Per l perodo è semplce: pù è lungo, mglore sarà l generatore; mentre per la casualtà, è dffcle attrbure l aggettvo casuale ad una sequenza d numer. Prendamo come esempo due sere d 1 e 0: 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,... 1, 1, 0, 1, 0, 1, 1, 0, 0, 1,... Apparentemente s è portat e defnre la prma sequenza determnstca, poché s rconosce una certa perodctà o un algortmo capace d generarla; la seconda sembra essere pù casuale e non s trova alcuna regola capace d formarla. In realtà entrambe potrebbero essere generate dal lanco d una moneta come da un algortmo. Il buon senso qund non basta per dare una valutazone ed esstono altr crter pù obettv fra qual: crtero d Turng. Se una sequenza numerca generata da estrazon meccanche è apparentemente ndstnguble da quella generata da un algortmo, allora anche quest ultma può consderars casuale. crtero d Von Neumann. Esstono de procedment matematc per determnare la bontà d un generatore d numer casual. Quest metod s fondano sull assunto che ogn numero casuale sa equprobable e dunque l estrazone d N numer dvers da luogo ad una dstrbuzone unforme. Da questo s nota che l prmo crtero resta legato al buon senso, mentre l secondo è pù obettvo ed ntroduce all adattamento. 1.7 Caratterstche de PRNG Analzzamo ora le caratterstche che determnano la qualtà d un generatore. Oltre al perodo, altr parametr d valutazone de PRNG sono: Effcenza, Rpetbltà e Portabltà. 8

Analzzamol nel dettaglo: Perodo: I mglor PRNG sono quell caratterzzat da perod lungh. Valor d ρ prossm a S asscurano che l sstema non entr n ccl brev e prevedbl. Effcenza: Un buon PRNG è un software che utlzza un quanttatvo rdotto d rsorse computazonal, msurate n termn d memora allocata. Rpetbltà: Gl PRNG devono essere n grado d rprodurre esattamente la stessa sequenza d numer pseudo casual partendo dallo stesso stato nzale. Portabltà: Gl algortm PRNG devono essere realzzat n manera da essere l pù possble ndpendent dal contesto hardware e software n cu sono mplementat. Oltre a queste 4 caratterstche, per valutare la qualtà d un PRNG è fondamentale valutare l unformtà della dstrbuzone de numer generat. 1.8 PRNG crttografcamente scur (CSPRNG) I CSPRNG sono generator d numer pseudocasual crttografcamente scur, l che sgnfca che hanno propretà tal da renderl adatt per la crttografa. La qualtà della casualtà rchesta vara n base all applcazone consderata. Per esempo, creare una chave d sessone n alcun protocoll rchede solo l unctà, mentre la generazone delle master key rchede una qualtà pù alta, o meglo, un entropa pù alta. Nel caso po del one-tme pad, la teora mpone che per avere una segretezza perfetta la chave dev essere ottenuta da una vera sequenza casuale con alta entropa. Idealmente, la generazone de numer casual ne CSPRNG usa l entropa ottenuta da una sorgente d alta qualtà, la quale può essere un generatore hardware d numer casual. Da un punto d vsta della teora dell nformazone, l entropa che può essere generata è uguale all entropa fornta dal sstema. Ma qualche volta, nelle stuazon pratche, sono rchest pù numer casual rspetto all entropa dsponble ed noltre, process per estrarre la casualtà da un sstema sono molto lent. In tal crcostanze può essere usato un CSPRNG, dato che può estendere l entropa dsponble su pù bt. I requst d un PRNG ordnaro sono soddsfatt anche da un PRNG crttografcamente scuro, ma non è vero l contraro. 9

I requst d un CSPRNG cadono n due grupp, nfatt quest devono: - passare test d casualtà statstca (next-bt test); - resstere bene ad attacch ser anche quando parte del loro stato nzale (o corrente) sa dsponble ad un attaccante (attacco d compromssone dello stato); Molt PRNG non sono adatt per essere de CSPRNG e non soddsfano nessuno de due requst; altr nvece passano test statstc ma non resstono ad attacch d ngegnera nversa. I CSPRNG sono esplctamente progettat propro per resstere alla crttoanals. 1.8.1 CSPRNG: Generatore Fortuna Fortuna è un generatore d numer casual crttografcamente scuro ed è stato chamato così n onore della dea romana della fortuna da suo due nventor Bruce Schneer e Nels Ferguson. E composto dalle seguent part: - Generatore. Una volta che l suo seme è nzalzzato produce una quanttà ndefnta d numer pseudocasual; - Accumulatore d entropa. Selezona numer casual da vare sorgent e l usa per nzalzzare d volta n volta l seme del generatore (reseedng) quando è dsponble abbastanza entropa; - Seme. Memorzza un numero suffcente d stat per abltare l computer ad nzare la generazone d numer casual non appena è avvato. 10

Captolo. Generator d bt pseudo casual.1 Introduzone Un generatore d bt pseudo casual, pseudorandom bt generator (PRBG), è un algortmo determnstco che, data una sequenza bnara realmente casuale d lunghezza k, resttusce una sequenza bnara d lunghezza l k, che sembra essere casuale. L ngresso del PRBG è chamato seme, mentre l uscta del PRBG è chamata sequenza d bt pseudo casual. Qu d seguto vene data una defnzone pù formale: Defnzone: Sano k, l due nter postv tal che l k 1. Un generatore d bt k ( ) ( ) + (, ) kl è una funzone f : Z Z che può essere calcolata n tempo polnomale (come una funzone d k). ( ) L nput s Z è detto seed (seme), l output f s Z ) l è la strnga d bt generata. E 0 k necessaro che l sa una funzone polnomale d k. l ( ) ( 0 L uscta d un PRBG non è casuale. Lo scopo è d consderare una pccola sequenza realmente casuale e d espanderla n una sequenza molto pù grande, n modo tale che un attaccante non posso dstnguere effcentemente la sequenza d uscta del PRBG dalla sequenza realmente casuale. S dce che un generatore d bt pseudo casual passa l test next-bt se non s conoscono algortm esegubl n tempo polnomale che, rcevendo n ngresso prm l bt d una sequenza d uscta s, rescano a prevedere l bt ( l + 1) d s con probabltà statstcamente pù grande d 1. Se l PRBG passa l test next-bt è chamato generatore d bt pseudo casual crttografcamente scuro (CSPRBG).. Generatore ANSI X9.17 Uno de pù robust PRBG (crttografcamente parlando) è specfcato nell ANSI X9.17. Molte applcazon utlzzano questa tecnca, ncluse le applcazon d scurezza fnanzara e l PGP. La fgura 1 mostra l algortmo, che utlzza l Trplo DES (EDE) per la cfratura. I parametr sono seguent: 11

Input: l generatore è gudato da due ngress pseudo casual. Uno è una rappresentazone a 64 bt del gorno e dell ora corrente (tmestamp), che è aggornata a ogn generazone del numero. L altro è un seme a 64 bt; quest ultmo è nzalzzato con un valore arbtraro ed è aggornato durante l processo d generazone. Chav: l generatore utlzza 3 modul d cfratura TrpleDES. Tutt e tre fanno uso della stessa coppa d chav a 56 bt, che devono essere mantenute segrete ed essere utlzzate solo per la generazone d numer pseudo casual. Output: l uscta è costtuta da un numero pseudo casuale a 64 bt e da un seme a 64 bt. Sono defnte le seguent quanttà: DT V Valore Gorno/Ora all nzo dell -esma terazone Valore del seme all nzo dell -esma terazone R Numero pseudo casuale generato all -esma terazone K1, K Chav DES utlzzate n ogn fase Fg.1 1

S ha: dove ([ 1, ], ) EDE K K X utlzza due chav TrpleDES per cfrare X. ([, ], 1 ([, 1 ], ) ) R = EDE K K V EDE K K DT ([, ], ([, ], ) ) V = EDE K K R EDE K K DT + 1 1 1 ndca la sequenza d operazon cfratura - decfratura - cfratura che Dvers fattor contrbuscono alla forza crttografca d questo metodo. La tecnca rchede una chave a 11 bt e tre cfrature EDE per un totale d nove cfrature DES. Lo schema è gudato da due ngress pseudo casual, la data e l ora e un seme prodotto dal generatore che è dstnto dal numero pseudo casuale prodotto dal generatore. Percò, l ammontare del materale che deve essere compromesso da un attaccante è scoraggante. Anche se un numero pseudo casuale R è compromesso, sarebbe mpossble dedurre V + 1 da R perché vene utlzzata un operazone EDE agguntva per produrre V + 1. Ogn strnga d bt n uscta R può essere utlzzata come vettore d nzalzzazone (IV) per l funzonamento del DES; per ottenere, nvece, una chave per l DES da R, s consderano 56 bt d R, restant 8 bt sono utlzzat per l controllo d partà..3 Lnear Congruental Generator (LCG) Un generatore d bt molto noto (ma nscuro) è l Lnear Congruental Generator (Generatore Congruenzale Lneare), presentato nell Algortmo 1. L dea alla base è d generare una sequenza d resdu modulo M, n cu cascun elemento della sequenza è una certa funzone lneare modulo M del precedente elemento della sequenza. Il seme sarà un resduo modulo M, e bt meno sgnfcatv degl element della sequenza formano la strnga d bt generat. Algortmo 1: Lnear Congruental Generator Supponamo che M sa un ntero e che 1 ab, M 1. Defnamo k = 1+ log M e sa k + 1 l 1 M. 13

Il seme è un ntero, con 0 s M 1. (S not cha la rappresentazone bnara del seme è una s 0 strnga d lunghezza non superore a k; comunque non tutte le strnghe d lunghezza d k sono sem ammssbl). Per 1 l s eseguono seguent pass: ( ) 1. s = as 1 + b mod M.. z = s mod. 3. La sequenza d uscta è f ( s ) ( z z z ) 0 =,,..., l. 0 1 f è un ( kl, ) -Lnear Congruental Generator ( generatore lneare congruenzale). Qu d seguto c è un pccolo esempo per llustrare l funzonamento dell LCG. Questo esempo mostra anche la natura perodca de PRBG, vale a dre, che PRBG eventualmente s rpetono se sono generat un numero suffcente d bt. Esempo 1: Supponamo d costrure un generatore d bt lneare congruenzale (5, 10), prendendo M = 31, a = 3 e b = 5 per l LCG. Consderamo la mappatura s 3s+ 5mod31. Se l seme è 13 s ha che 13 Ø 13, gl altr 30 resdu sono permutat n un cclo d lunghezza 30, 0, 5, 0, 3, 14, 16,, 9, 1, 8, 9, 30,, 11, 7, 6, 1, 6, 3, 1, 10, 4, 17, 5, 18, 8, 7, 4, 15, 19. Se l seme è qualcosa d dverso da 13, allora questo rappresenta un punto d partenza nel cclo, e prossm 10 element, resdu modulo, formano la sequenza pseudo casuale. Le possbl 31 strnghe d bt prodotte da questo generatore sono mostrate n Tabella 1. Per esempo, la sequenza costruta dal seme 0 s ottene prendendo 10 nter seguent lo 0 della sequenza mostrata prma, coè, 5, 0, 3, 14, 16,, 9, 1, 8, 9, e la rduzone n modulo. 14

Tabella 1: Strnga d bt prodotta da un LCG Seme Sequenza 0 1010001101 1 0100110101 1101010001 3 0001101001 4 1100101101 5 0100011010 6 1000110010 7 0101000110 8 1001101010 9 1010011010 10 0110010110 11 1010100011 1 0011001011 13 1111111111 14 0011010011 15 1010100011 Seme Sequenza 16 0110100110 17 1001011010 18 0101101010 19 0101000110 0 1000110100 1 0100011001 1101001101 3 0001100101 4 1101010001 5 0010110101 6 1010001100 7 0110101000 8 1011010100 9 0011010100 30 0110101000 Quest generator sono comunemente utlzzat per le smulazon e per algortm probablstc, sono predcbl e qund completamente nscur per scop crttografc: data una sequenza parzale d uscta, s può rcostrure l resto della sequenza, anche se non s conoscono parametr a, b e M. Infatt se Eve scopre quattro valor prodott s0, s1, s, s3 rsolvendo l sstema d equazon s = as + bmod M 1 0 s = as + bmod M 1 s = as + bmod M 3 resce a trovare a, b e M. 15

.4 Lagged Fbonacc Generator (LFG) L algortmo lagged_fbonacc per generare numer pseudo casual nasce dal tentatvo d generalzzare l metodo delle congruenze lnear che, come noto, è dato dalla rcorrenza lneare X = n 1 ( ax + + n c)modm. Uno de motv che spngono alla rcerca d generator nuov è la necesstà - utle per molte applcazon, spece nel calcolo parallelo - d allungare l perodo del generatore. Il perodo d un generatore lneare quando m è approssmatvamente par alla grandezza della parola del computer, è all ncrca dell ordne d 9 10, suffcente per molte applcazon ma non per tutte. Una delle tecnche ndagate è quella d far dpendere X n + 1 da entramb X n e n 1 X nvece che solo da X n ; allora l perodo può arrvare vcno al valore m perché la sequenza non s rpeterà fnché non s avrà ( X, X ) = ( X, X ) n+ λ n+ λ+ 1 n n+ 1 Il pù semplce generatore d questo tpo è la successone d Fbonacc ( ) X mod n+ 1 = Xn + Xn 1 m Questo generatore è stato analzzato negl ann 50 e fornsce un perodo m, ma la sequenza non supera pù semplc test statstc. Anche generator del tpo ( ) X n+ 1 = Xn + Xn k mod m pur mglor della successone d Fbonacc, non danno rsultat soddsfacent. Bsogna attendere l 1958 quando Mtchell e Moore propongono la sequenza ( ) X = X + X mod m, n 55 n n 4 n 55 dove m è par e X 0,... X 54 sono nter arbtrar non tutt par. Le costant 4 e 55 non sono scelte a caso, sono numer che defnscono una sequenza cu bt meno sgnfcatv ( mod ) hanno un X n 16

perodo d lunghezza almeno 55 1; percò la successone ( ) X deve avere un perodo d lunghezza 55 M 1 55 1. In realtà la successone ha perodo ( 1) dove m = M. I numer 4 e 55 sono comunemente chamat lags e la ( X n ) s dce essere una successone lagged- Fbonacc (LFG). La successone LFG può essere generalzzata n n X n ( X ) = + mod M n l X n k ma solo alcune coppe 1 perodo è ( ) ( kl, ) M l 1. Le coppe (, ) l > k > 0 danno perod suffcentemente lungh; n quest cas s dmostra che l kl devono essere scelte n modo opportuno. L unca condzone su prm l valor è che almeno uno d ess deve essere dspar ( altrment la successone sarà composta d numer par)..5 Mersenne Twster Mersenne Twster è un algortmo per la generazone d numer pseudocasual d tpo lneare congruenzale svluppato nel 1997 da Makoto Matsumoto e Takuj Nshmura. Analzzamo nel dettaglo le caratterstche che hanno reso popolare questo PRNG: 1. È stato progettato per avere un perodo a dr poco colossale: 19937 1. Questo perodo spega l'orgne del nome: è un Numero prmo d Mersenne e alcune delle costant dell'algortmo sono anch'esse numer prm d Mersenne.. Permette d generare punt equdstrbut n spaz fno a 63 dmenson (molt altr generator che sono "buon" per selezonare sngol numer mostrano le loro mancanze utlzzando N valor consecutv per selezonare un punto n uno spazo N-dmensonale). 3. È pù veloce della maggor parte degl altr algortm, compres quell notevolmente nferor n quanto a qualtà. 4. Ha passato numeros test statstc d casualtà. 17

Il Mersenne Twster e generator lnear congruenzal hanno la capactà d generare sequenze pù o meno correlate. Immagnamo d avere a dsposzone un PRNG e d generare una sere d sequenze d numer pseudo casual d lunghezza unforme k. Utlzzamo queste sequenze per dentfcare una sere d punt all nterno d uno spazo k-dmensonale. Se numer generat fossero realmente casual, punt ndvduat dalle sequenze s dstrburebbero n manera unforme nello spazo. Nella realtà punt s dstrbuscono n pan k-1 dmensonal. Prendamo per esempo una sere d sequenze d numer pseudo casual d lunghezza par a (coè k = ). Se le sequenze generate fossero statstcamente sml a sequenze realmente casual e qund non-correlate, rportando numer su un pano cartesano dovremmo osservare una dstrbuzone unforme de punt (mmagne d snstra). Nel caso contraro, numer fnrebbero per dspors all nterno d aree crcoscrtte del pano, come llustrato nell mmagne d destra: 18

.6 Generator d bt pseudocasual crttografcamente scur (CSPRBG) In questo paragrafo sono presentat de generator d bt pseudocasual crttografcamente scur..6.1 Generatore RSA Il Generatore RSA scegle un elemento nzale n n (nter modulo n) come seme. S forma una sequenza d element d n, n cu cascun elemento della sequenza è la cfratura RSA dell elemento precedente. I bt meno sgnfcatv degl element della sequenza formano la strnga z1, z,..., zl d lunghezza l. Il generatore RSA d bt pseudo casual è generatore d bt pseudo casual crttografcamente scuro se s assume che sa ntrattable l RSA-problem (dat b e n calcolare le radc b-esme modulo n, non s sa se l RSA-problem è equvalente alla fattorzzazone). Algortmo. RSA Generator 1. S consderano due numer prm p e q, e s calcola n= pqe φ ( n) = ( p 1)( q 1). ( ). S selezona un ntero casuale b, 1 b φ ( n) tale che MCD b, φ ( n) e b sono pubblc mentre p e q sono prvat. s 0 * 3. S selezona un ntero casuale (l seme) n ( gruppo moltplcatvo d ). 4. Per 1 l b 4.1 s = s mod 1 n. 4. z = s mod. 5. La sequenza d uscta è f s ( z z z ) ( 0) 1,,..., l =. n =1. Come sempre, n n f è un (k, l)-rsa Generator. Esempo: Supponamo n = 9161 = 63 μ 347, b = 1547, e s 0 = 75634. I prm 0 bt prodott dall RSA Generator sono calcolat come mostrato nella Tabella 1. La strnga d bt rsultante per questo seme è 10000111011110011000. 19

Tabella 1: Bt prodott dall RSA Generator s z 0 75634 1 31483 1 3138 0 3 51968 0 4 39796 0 5 8716 0 6 14089 1 7 593 1 8 44891 1 9 684 0 10 11889 1 11 43467 1 1 7115 1 13 10401 1 14 77444 0 15 56794 0 16 78147 1 17 7137 1 18 8959 0 19 90 0 0 13356 0.6. Blum-Blum-Shub Generator (BBS) Uno de pù famos PRBG è l Blum-Blum-Shub Generator. Il generatore d bt pseudo casual Blum-Blum-Shub (anche conoscuto come generatore x mod n o generatore BBS) è un CSPRBG se s assume che la fattorzzazone degl nter sa ntrattable. Per ogn numero ntero dspar n, ndchamo con QR ( n ) resdu quadratc modulo n, dove ( n) = { x n x Z * } QR mod : n. Il Blum-Blu-Shub Generator è presentato nell Algortmo1. 0

Algortmo1: Blum-Blum-Shub Generator Sano p, q due numer prm cascuno congruo a 3 modulo 4, QR ( n) l nseme de resdu quadratc modulo n. p q 3mod4, e sa n = pq. Sa Un seme s è un qualsas elemento d QR ( n ). 0 6. Per 1 l 6.1 s mod = s 1 n. 6. z = s mod. 7. La sequenza d uscta è f ( s ) = ( z z z ) 0 1,,..., l f è una (k,l)-prbg, chamato Blum-Blum-Shub Generator (BBS Generator). Un modo per sceglere un seme approprato è quello d selezonare un elemento s s mod n 0 1. Questo garantsce che = s ( n) 0 QR. * s 1 Zn e calcolare Il generatore lavora molto semplcemente. Dato un seme s ( ) 0 QR n, s calcola la sequenza s1, s,..., sl s z segue che da quadrature successve modulo n, e po s rducono gl modulo per ottenere. Ne ( ) 0 z = s mod n mod, 1 l. D seguto c sono due semplc esemp d BBS Generator. Esempo1: Supponamo che n = 19649 = 383 μ 503 e s0 = 101355 mod n = 0749. I prm 0 bt prodott dal BBS Generator sono calcolat come mostrato nella Tabella. Qund la strnga rsultante da questo seme è 11001110000100111010. 1

Tabella: Bt prodott dal BBS Generator s z 0 0749 1 143135 1 177671 1 3 97048 0 4 8999 0 5 174051 1 6 80649 1 7 45663 1 8 6944 0 9 186894 0 10 177046 0 11 1379 0 1 13175 1 13 8630 0 14 114386 1 15 14863 1 16 133015 1 17 106065 1 18 45870 0 19 137171 1 0 48060 0 Esempo: Sa n = pq = 7 19 = 133 e sa s = 100. S ottene s 0 = 100 mod133 = 5, s 1 = 5 mod133 =93, s = 93 mod133 = 4, sequenza d uscta è 1 0 0 1. s = od133 = 16, = 16 mod133 = 13. La 3 4 m s 4

Defnzone. Supponamo che n sa un ntero postvo dspar e che la fattorzzazone n numer prm d n sa la seguente: k n = p. = 1 e Sa a un ntero postvo. Il Jacob symbol a n è defnto come segue: k a a = n p. = 1 e Supponamo, ora, che p e q sano due prm dspar dstnt, e sa n Dalla defnzone del Jacob symbol, è facle vedere che = pq. 0 se MCD( x, n) > 1 x x x x x = 1 se = 1 o se = 1 n p q = p q = x x 1 se uno tra e = 1 e gl altr sono ugual a -1 p q Rcordamo che x è un resduo quadratco modulo n se e solo se x x = = 1 p q. Defnamo * x QR( n) = x Z n \ QR( n) : = 1. n Qund * x x QR( n) = x Z n : = = 1 p q. 3

Un elemento x QR( n) è chamato pseudo-quadrato modulo n. Non è dffcle vedere che ( ) QR( n) = QR( n) = ( p 1) q 1 / 4. La scurezza del BBS Generator è basata sull ntrattabltà del Composte Quadratc Resdues problem, che è defnto nel Problema1. Problema1: Composte Quadratc Resdues stanza: Un ntero postvo n che è l prodotto tra due prm dspar dstnt ncognt p e q, e un ntero * x Zn tale che x = 1. n domanda: x QR ( n)? Fondamentalmente, l Composte Quadratc Resdues problem c rchede d dstnguere resdu quadratc modulo n da pseudo-quadrat modulo n. Questo può non essere pù dffcle che fattorzzare n. Se s può calcolare la fattorzzazone n = pq, allora sarà semplce calcolare Dato che x x = 1, ne segue che x è un resduo quadratco modulo n se e solo se = 1 n p. x p. Questo non sembra essere un modo effcente per rsolvere l Composte Quadratc Resdues problem se non è nota la fattorzzazone d n. Pertanto, questo problema è ntrattable se non è possble fattorzzare n. Questa è una propretà del BBS Generator che è mportante quando s consdera la sua scurezza. Poché n= pq con p q 3mod 4, ne segue che, per ogn resduo quadratco x, v è un unca radce quadrata d x che è anche un resduo quadratco. Questa partcolare radce quadrata è chamata radce quadrata prncpale d x. D conseguenza, la mappatura x x mod n, che è utlzzata per defnre l BBS Generator, è una permutazone su QR ( n ), l nseme de resdu quadratc modulo n. 4

Esempo: Supponamo che n = 53 = 11 x 3. S ha allora 10x QR( n ) = = 55. 4 S può dmostrare che l BBS Generator n Z55 permuta gl element d QR(55) n un cclo d lunghezza 1, un cclo d lunghezza 4, un cclo d lunghezza 10 e due ccl d lunghezza 0. 5

Captolo 3. Test statstc In questo paragrafo sono presentat alcun test progettat per msurare la qualtà d un generatore che s fa passare per un generatore d bt pseudo casual. Sebbene non sa possble fornre una prova matematca che l generatore sa veramente un generatore d bt pseudo casual, test qu propost scoprono alcune debolezze che potrebbero avere generator. Questo vene fatto prendendo una sequenza d uscta campone d un generatore e sottoponendola a var test statstc. Ognuno d quest test determna se la sequenza possede alcun attrbut che dovrebbe mostrare una sequenza realmente casuale; la conclusone d quest test non è defntva, ma puttosto probablstca. Se s rtene che la sequenza abba fallto qualsas test, l generatore deve essere scartato poché non è casuale; altrment l generatore deve essere sottoposto ad altr test. Se, nvece, la sequenza passa tutt test statstc, l generatore può essere accettato casuale. Pù precsamente, l termne accettato dovrebbe essere sosttuto da non scartato, poché passare test prova solamente che l generatore produce sequenze che hanno alcune caratterstche delle sequenze casual. 3.1 La dstrbuzone Normale e χ La dstrbuzone Normale La dstrbuzone normale s presenta nella pratca quando s sommano un gran numero d varabl casual ndpendent avent la stessa meda e varanza. Una varable casuale (contnua) X ha dstrbuzone normale con meda μ e varanza σ se la sua funzone d denstà d probabltà è defnta da 1 ( x μ) f( x) = exp, σ π σ < x <. X è detta N( μ, σ ). Se X è N(0,1), s dce che X ha dstrbuzone normale standard. In Fg.1 è rappresentato un grafco della dstrbuzone N(0,1). 6

Fg. 1 Il grafco è smmetrco rspetto all asse vertcale, e qund PX ( > x) = PX ( < x) per ogn x. La Tabella 1.1 da de percentl per la dstrbuzone normale standard. α 0.1 0.05 0.05 0.01 0.005 0.005 0.001 0.0005 x 1.816 1.6449 1.9600.363.5758.8070 3.090 3.905 Tabella 1.1: Se X è una varable random avente dstrbuzone normale standard sa ha che P( X> x) = α La dstrbuzone χ La dstrbuzone χ può essere utlzzata per confrontare la bontà d adattamento delle frequenze d event osservat alla loro frequenza prevsta rspetto a dstrbuzon potzzate. La dstrbuzone χ con v grad d lbertà s presenta nella pratca quando s sommano quadrat d v varabl casual ndpendent che hanno delle dstrbuzon normal standard. Sa v 1 un ntero. Una varable casuale (contnua) X ha una dstrbuzone χ con v grad d lbertà se la sua funzone d denstà d probabltà è defnta da 7

1 ( v ) 1 x x e, 0 x<, v f( x) = Γ ( v ) 0, x < 0, dove Γ è la funzone gamma. La meda e la varanza della dstrbuzone sono μ = v, e σ = v. In Fg. è rappresentato un grafco della dstrbuzone χ con v = 7 grad d lbertà. Fg. La Tabella. da de percentl per la dstrbuzone χ per var grad d lbertà. Per esempo se s pone v = 5 e α = 0.05 s ha x = 11.0705. 8

α v 0.100 0.050 0.05 0.010 0.005 0.001 1.7055 3.8415 5.039 6.6349 7.8794 10.876 4.605 5.9915 7.3778 9.103 10.5966 13.8155 3 6.514 7.8147 9.3484 11.3449 1.838 16.66 4 7.7794 9.4877 11.1433 13.767 14.8603 18.4668 5 9.364 11.0705 1.835 15.0863 16.7496 0.5150 6 10.6446 1.5916 14.4494 16.8119 18.5476.4577 7 1.0170 14.0671 16.018 18.4753 0.777 4.319 8 13.3616 15.5073 17.5345 0.090 1.9550 6.145 9 14.6837 16.9190 19.08 1.6660 3.5894 7.877 10 15.987 18.3070 0.483 3.093 5.188 9.5883 11 17.750 19.6751 1.900 4.750 6.7568 31.641 1 18.5493 1.061 3.3367 6.170 8.995 3.9095 13 19.8119.360 4.7356 7.688 9.8195 34.58 14 1.0641 3.6848 6.1189 9.141 31.3193 36.133 15.3071 4.9958 7.4884 30.5779 3.8013 37.6973 16 3.5418 6.96 8.8454 31.9999 34.67 39.54 17 4.7690 7.5871 30.1910 33.4087 35.7185 40.790 18 5.9894 8.8693 31.564 34.8053 37.1565 4.314 19 7.036 30.1435 3.853 36.1909 38.583 43.80 0 8.410 31.4104 34.1696 37.566 39.9968 45.3147 1 9.6151 3.6706 35.4789 38.93 41.4011 46.7970 30.8133 33.944 36.7807 40.894 4.7957 48.679 3 3.0069 35.175 38.0756 41.6384 44.1813 49.78 4 33.196 36.4150 39.3641 4.9798 45.5585 51.1786 5 34.3816 37.655 40.6465 44.3141 46.979 5.6197 6 35.563 38.8851 41.93 45.6417 48.899 54.050 7 36.741 40.1133 43.1945 46.969 49.6449 55.4760 8 37.9159 41.3371 44.4608 48.78 50.9934 56.893 9 39.0875 4.5570 45.73 49.5879 5.3356 58.301 30 40.560 43.7730 46.979 50.89 53.670 59.7031 31 41.417 44.9853 48.319 5.1914 55.007 61.0983 63 77.7454 8.587 86.896 9.0100 95.6493 103.444 17 147.8048 154.3015 160.0858 166.9874 171.7961 181.9930 55 84.3359 93.478 301.150 310.4574 316.9194 330.5197 511 55.3739 564.6961 575.598 588.978 597.0978 615.5149 103 1081.3794 1098.508 1113.5334 1131.1587 1143.653 1168.497 Tabella.: Se X è una varable random avente dstrbuzone χ con v grad d lbertà, sa ha che P( X> x) = α 9

3. Controllo delle potes Un potes statstca, ndcata con H 0, è un asserzone sulla dstrbuzone d una o pù varabl casual. Un test d un potes statstca è una procedura, basata su valor osservat delle varabl casual, che porta all accettazone o al rfuto dell potes. Il test c resttusce solo una msura della potenza dell evdenza fornta da dat contro l potes; qund, la conclusone del test non è defntva, ma puttosto probablstca. (Ipotes H 0 Ø La sequenza è un campone d varabl casual ndpendent e dentcamente dstrbute U(0,1) ) H 0 Defnzone: Il lvello d sgnfcatvtà α d un test dell potes statstca H 0 è la probabltà d scartare H 0 quando è vera. In questa stuazone H 0 sarà l potes che una data sequenza bnara è stata prodotta da un generatore d bt casual. Se l lvello d sgnfcatvtà α d un test d H 0 è troppo alto, l test potrebbe scartare una sequenza che n realtà è stata prodotta da un generatore d bt casual (questo errore è chamato Type I error). Invece, se l lvello d sgnfcatvtà α d un test d è troppo basso, c è l rscho che l test possa accettare delle sequenze, anche se non sono state prodotte da un generatore d bt casual (questo errore è chamato Type II error). E qund mportante che l test sa progettato attentamente per avere lvell d sgnfcatvtà α che sano adeguat a dvers scop; un lvello d sgnfcatvtà α compreso tra 0.001 e 0.05 può essere utlzzato nella pratca. Un test statstco è mplementato specfcando una statstca su un campone casuale. Le statstche sono generalmente scelte n modo che possano essere calcolate effcentemente e che abbano (approssmatvamente) una dstrbuzone N (0,1) o χ. Il valore della statstca per una sequenza d uscta campone vene calcolato e confrontato con l valore supposto per una sequenza casuale come descrtto d seguto. 1. S suppone che una statstca X per una sequenza casuale abba una dstrbuzone χ con v grad d lbertà e supponamo che X possa essere presa su grand valor d sequenze non casual. Per ottenere un lvello d sgnfcatvtà α, s scegle (utlzzando la tabella.) un valore d sogla x α tale che PX ( > ) = α. Se l valore della statstca X s per la sequenza x α H 0 30

d uscta campone è tale che X s Questo test è chamato One-sded test. > x α, la sequenza fallsce l test; altrment, passa l test.. S suppone che una statstca X per una sequenza casuale abba una dstrbuzone N(0,1) e supponamo che X possa essere presa su grand e pccol valor d sequenze non casual.per ottenere un lvello d sgnfcatvtà α, s scegle (utlzzando la tabella 1.1) un valore d sogla x α tale che PX ( > xα ) = PX ( < x α ) = α. Se l valore della statstca X s per la sequenza d uscta campone è tale che X s > x α o X s altrment, passa l test. Questo test è chamato Two-sded test. < x α, la sequenza fallsce l test; 3.3 Cnque test d base Sa s = s0, s1, s,..., sn 1 una sequenza bnara d lunghezza n. S presentano ora cnque test statstc che sono comunemente utlzzat per determnare se la sequenza bnara s possede alcune specfche caratterstche che dovrebbe probablmente mostrare una sequenza realmente casuale. S sottolnea ancora che l rsultato del test non è defntvo, ma puttosto probablstco. Se la sequenza passa tutt e cnque test, non c è nessuna garanza che è stata veramente prodotta da un generatore d bt casual. Frequency test (monobt test) Lo scopo d questo test è d determnare se l numero degl 0 e degl 1 n s sa approssmatvamente lo stesso, come c s aspetta da una sequenza casuale. S ndcano con e n, rspettvamente, l numero d 0 e d 1 n s. la statstca utlzzata è n0 1 ( n0 n1) X 1 = n che approssmatvamente ha una dstrbuzone χ con 1 grado d lbertà se n 10. Seral test ( two-bt test) Lo scopo d questo test è d determnare se l numero d occorrenze d 00, 01, 10, 11, come sottosequenze d s è approssmatvamente lo stesso, come c s aspetta da una sequenza casuale. S 31

ndcano con e l numero d o e d 1 n s, e con n, n,,, rspettvamente, l numero d n0 n1 00 occorrenze d 00, 01, 10, 11 n s. S not che sottosequenze d sovrappors. La statstca utlzzata è n n n 01 10 11 00 n01 n10 n 11 (n 1) + + + =, poché è permesso alle X 4 = ( ) ( 1 n + n + n n + n n n + n 00 01 10 11 0 1 ) + 1 che approssmatvamente ha una dstrbuzone χ con grad d lbertà se n 1. Poker test n m n Sa m un ntero postvo tale che 5() m, e sa k = m. S dvde la sequenza s n k part che non s sovrappongono ognuna d lunghezza m, e sa sequenza d lunghezza m, 1 m l numero d occorrenze d tpo della. Il poker test determna se le sequenze d lunghezza m appaono approssmatvamente lo stesso numero d volte n s, come c s aspetta da una sequenza casuale. La statstca utlzzata è n m m X 3 = n k k = 1 che approssmatvamente ha una dstrbuzone χ con m 1 grad d lbertà. S not che l poker test è una generalzzazone del frequency test: ponendo m = 1 nel poker test s produce l frequency test. Runs test Lo scopo del runs test è d determnare se l numero d sequenze (d 0 o d 1) d vare lunghezze nella sequenza s è come c s aspetta per una sequenza casuale. Il numero prevsto d ntervall (o d + blocch) n una sequenza casuale d lunghezza n è ( ) l quale e 5. Sano per ogn, 1 k B, G e = n + 3. Sa k l ntero pù grande per, rspettvamente, l numero d blocch e d ntervall d lunghezza n s. La statstca utlzzata è 3

X 4 k ( ) k B e ( G e ) = + e = 1 = 1 che ha approssmatvamente una dstrbuzone χ con k grad d lbertà. e Autocorrelaton test Lo scopo d questo test è d controllare le correlazon tra la sequenza s e una versone (non cclca) d questa shftata. Sa d un ntero fssato, 1 d n. Il n d bt dvers tra s e la sua versone d- shftata è n d 1 s 0 s = + d, dove ndca l operatore XOR. La statstca utlzzata è A( d) = n d X 5 = Ad ( ) / n d che ha approssmatvamente una dstrbuzone N(0,1) se n d 10. Esempo. Consderamo una sequenza s (non casuale) d lunghezza n = 160 ottenuta replcando la seguente sequenza quattro volte: 11100 01100 01000 10100 11101 11100 10010 01001. (frequency test) n 0 = 84, n 1 = 76 e l valore della statstca X 1 è 0.4. (seral test) n 00 = 44, n 01 = 40, n 10 = 40, n 11 = 35 e l valore della statstca X è 0.65. (poker test) Qu m = 3 e k = 53. I blocch 000, 001, 010, 011, 100, 110, 111 appaono, rspettvamente, 5, 10, 6, 4, 1, 3, 6, e 7 volte e l valore della statstca X 3 è 9.6415. (runs test) Qu e 1 = 0.5, e = 10.065, e 3 = 5, e k = 3. C sono 5, 4, 5, blocch d lunghezza, rspettvamente, 1,, 3 e 8, 0, 1 ntervall d lunghezza, rspettvamente, 1,, 3. Il valore della statstca X 4 è 31.7913. (autocorrelaton test) Se d = 8 s ha A (8) = 100. Il valore della statstca X 5 è 3.8933. 33

Per un lvello d sgnfcatvtà α = 0.05, le sogle d valor d X 1, X, X 3, X 4 e X 5 sono, rspettvamente, 3.8415, 5.9915, 14.0671, 9.4877, e 1.96 (ved le tabelle 1.1 e.). Qund la sequenza data s passa l frequency, seral, e poker test, ma fallsce l runs e l autocorrelaton test. 3.4 Maurer s unversal statstcal test L dea d base detro l test statstco unversale d Maurer è che non dovrebbe essere possble comprmere sgnfcatvamente (senza perdta d nformazone) una sequenza d output d un generatore d bt pseudo casuale. Se una sequenza d uscta campone s d un generatore d bt può essere compressa sgnfcatvamente, l generatore dovrebbe essere scartato n quanto dfettoso. In realtà, nvece d comprmere la sequenza s, l unversal statstcal test calcola una quanttà che è collegata alla lunghezza della sequenza compressa. L unversaltà d questo test sta nel fatto che è n grado d rlevare qualsas possble dfetto che un generatore d bt potrebbe avere. Uno svantaggo del test unversale ne confront de cnque test d base è che rchede sequenze d uscta campon molto pù lunghe per essere effcace. Maurer s unversal statstcal test Fssato un ntero L, dvdo la sequenza s n blocch (non sovrapponbl) d L-bt scartando restant bt. Per ogn, con 1 Q+ K, dove Q+ K rappresenta l numero totale d blocch, e sa b l ntero che n bnaro rappresenta l -esmo blocco. Vene creata una tabella T n modo tale che ad ogn passo T[j] rappresent la poszone dell ultma occorrenza del blocco corrspondente all ntero L j, con 0 j 1. Q rappresenta l numero de prm blocch utlzzat per nzalzzare T e deve essere almeno par a 10 L. D conseguenza, K rappresenta l numero de blocch rmanent e deve essere almeno par a 1000 L. Per ogn, con Q 1 Q K numero d poszon dall ultma occorrenza del blocco b. + +, sa A T[ j] =, dove ndca l A La statstca utlzzata da Maurer è: X u Q+ K 1 = lg A. k = Q+ 1 Per testare la sequenza s vene utlzzato un lvello d sgnfcatvtà α compreso tra 0,001 e 0,01. 34

3.5 Next bt test Le specfche che devono soddsfare PRNG per essere CSPRNG s dvdono n due grupp: 1. devono avere buone propretà statstche (devono superare test d casualtà);. devono resster bene agl attacch, anche nel caso n cu vengano scoperte parte delle varabl che dovrebbero rmanere segrete. Pù precsamente: 1. Un CSPRNG deve soddsfare l Next bt test.. Un CSPRNG può drs tale se nel caso n cu parte o tutto lo stato nterno del generatore è stato rlevato (o ndovnato) sa mpossble rcostrure bt casual generat prma della scoperta. Inoltre se c è una sorgente d entropa deve essere computazonalmente nsostenble usare la conoscenza dello stato per predrne cambament futur. Next bt test Dat prm k bt d una sequenza casuale non esste alcun algortmo eseguble n tempo polnomale che possa predre l bt k+1 con una probabltà maggore d ½. Andre Yao ha dmostrato nel 198 che un generatore casuale che passa l Next bt test passerà anche tutt gl altr test statstc d casualtà esegubl n tempo polnomale. Defnzone: Una funzone f:{0,1}* Ø {0,1}* è next-bt unpredctable se: 1. è calcolable n tempo polnomale;. l output è un estensone dell nput; 3. se l nput (l seme) è casuale, allora l output passa l Next bt test. Teorema: Una funzone f:{0,1}* Ø {0,1}* è next-bt unpredctable se e solo se è un generatore pseudo casuale. 35

Captolo 4. Attacch d Crttoanals su PRNG In questa trattazone dscuteremo possbl attacch contro PRNG, daremo delle lnee guda per l progetto e per l utlzzo de PRNG e concluderemo e con alcun svlupp possbl. 4.1 Class d attacch 1. Drect Cryptanalytc Attack: Quando un attaccante è drettamente n grado d dstnguere tra le uscte d un PRNG e output casual. Questo tpo d attacco non è applcable a tutt PRNG. Per esempo, un PRNG usato per generare chav trple-des non può ma essere vulnerable a questo tpo d attacco, dato che le uscte del PRNG non sono ma vste drettamente.. Input-Based Attack: Quando un attaccante è n grado d usare la conoscenza o l controllo degl nput del PRNG per analzzare crttografcamente l PRNG stesso, coè per dstnguere tra le uscte del PRNG e valor casual. Questa classe d attacch può essere suddvsa n Known-Input Attacks, Replayed_Input Attacks e Chosen-Input Attacks. 3. State Compromse Extenson Attack: Un attacco d compromssone dello stato S tenta d estendere vantagg d un tentatvo precedente con esto postvo che ha recuperato S l pù possble. Un attacco del genere resce quando un attaccante o è capace d recuperare le uscte sconoscute del PRNG prma che S sa compromesso o quando recupera gl output dopo che l PRNG ha raccolto una sequenza d nput che l attaccante non può ndovnare. Questa classe d attacch s suddvde n Backtrackng Attacks, Permanent Compromse Attacks, Iteratve Guessng Attacks e Meet-n-the-Mddle Attacks. 4. Lnee guda per l utlzzo d PRNG vulnerabl Qu è proposta una lsta d mod per proteggere un PRNG contro ognuna delle class d attacch che abbamo dscusso. 36

1. Utlzzare funzon hash per proteggere le uscte d un PRNG vulnerable (vulnerabltà a Drect Cryptanalytc Attacks).. Fare l hash degl nput del PRNG con un contatore o un tmestamp (tmbro oraro) prma d usarlo (vulnerabltà a Chosen-Input Attacks). 3. Generare occasonalmente nuov stat d nzalzzazone del PRNG (per PRNG che lascano gran parte de loro stat mmutat una volta nzalzzat). 4. Fare partcolare attenzone a punt d partenza del PRNG e a fle se sem (vulnerabltà a State Compromse Extenson Attacks). 4.3 Lnee guda per l progetto d un PRNG Proponamo delle lnee guda per svluppare nuov PRNG che dovranno resstere alle class d attacch descrtte precedentemente. 1. Basare l PRNG su qualcosa d robusto. Il PRNG dovrebbe essere progettato n modo tale che un Drect Cryptanalytc Attack ruscto mplch un attacco ruscto a qualcosa d orgnaramente crttografco che s credeva essere resstente. Idealmente, questo dovrebbe essere provato.. Asscurars che l ntero stato del PRNG camb pù volte nel tempo. L ntero stato segreto nterno dovrebbe cambare pù volte nel tempo. Questo prevene che un sngolo stato compromesso sa rrecuperable. 3. Fare reseedng catastrofc del PRNG. La parte dello stato nterno che vene utlzzata per generare le uscte dovrebbe essere separata dal gruppo dell entropa. Lo stato d generazone dovrebbe essere cambato solo quando è stata raccolta l entropa suffcente per resstere agl attacch Iteratve Guessng Attacks, n accordo con valutazon conservatve. 4. Resstere al backtrackng. I PRNG dovrebbero essere progettat per resstere al Backtrackng Attack. Idealmente, questo vorrebbe dre che un uscta t dovrebbe essere non predcble nella pratca da un attaccante che ha compromesso lo stato del PRNG al tempo t +1. S dovrebbe accertare d passare semplcemente gl stat d un PRNG ad una 37

funzone undrezonale (one-way functon) per ogn uscta, lmtando la possbltà d un Backtrackng Attack. 5. Resstere a Chosen-Input Attacks. Gl ngress del PRNG dovrebbero essere assocat nello stato del PRNG n modo tale che, data una sequenza d ngress non predcbl, un attaccante che nza a capre lo stato del PRNG ma non la sequenza d ngresso, e un altro attaccante che nza a capre la sequenza d ngresso ma non lo stato, sono entramb ncapac d ndovnare lo stato fnale. Questo fornsce delle protezon contro Chosen- Input Attacks e State Compromse Extenson Attacks. 6. Rprenders velocemente dalle compromsson. Il PRNG dovrebbe avvantaggars d ogn bt d entropa che rceve n ngresso. Un attaccante che cerca d capre gl effett d una sequenza d ngress su un PRNG dovrebbe ndovnare l ntera sequenza d ngresso. 4.4 Problem apert V mostramo mportant aree d nteresse che non abbamo trattato n questa sezone: 1. Progett d PRNG dedcat. I PRNG esstent sono tutt costrut su prmtve crttografche esstent. Questo solleva la questone se ha senso costrure algortm PRNG dedcat. Tpcamente la motvazone d costrure un algortmo dedcato è d mglorare le performance.. Prove d scurezza. Sarebbe smpatco vedere alcune prove d scurezza, che dmostrano che facendo alcune class d attacch al PRNG è equvalente a rompere un blocco cfrato, un flusso cfrato o una funzone hash. 3. Punt d nzalzzazone. Un modo semplce per un attaccante d compromettere lo stato d un PRNG è d nzalzzare l PRNG con uno stato predcble. Questo aggunge un altro problema a un progettsta, l quale deve asscurare che l suo sstema nzalzz l PRNG con una sequenza non predcble. 4. Seme compromesso. Vorremmo che c fossero molte pù dscusson su come deve resstere uno stato compromesso. Questo è un grande problema pratco, che ha rcevuto un attenzone relatvamente pccola da parte della letteratura. 5. Analzzare altr PRNG. C sono molt PRNG che qu non sono stat analzzat. In partcolare vorremmo occupare una dscussone completa sulla classe de PRNG utlzzat ne PGP e nel Cryptolb d Gutmann. Quest PRNG s adattano a nostr modell, ma sono molto dvers da quell che abbamo analzzato qu: tpcamente mantengono uno stato 38

consderablmente molto pù grande, nella speranza d accumulare grand quanttà d entropa. 6. Svluppare nuov PRNG. Abbamo dscusso su PRNG gà esstent. Samo nteressat a consderare nuov progett che propongono d resstere a nostr attacch. 39