![Page 1: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/1.jpg)
Generatori di numeri
pseudo-random
Giorgia Rossi
Fabio Bottoni
Giacomo Albanese
![Page 2: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/2.jpg)
Sommario
1) Introduzione ai generatori di numeri
pseudocasuali (PRNG).
2) Il generatore Fortuna.2) Il generatore Fortuna.
3) Approccio pratico: la realizzazione di un
PRNG
![Page 3: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/3.jpg)
Introduzione ai generatori di
numeri pseudocasuali
![Page 4: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/4.jpg)
Sommario
� Sequenze casuali
� PRNG
� Sicurezza, caratteristiche e problemi di un PRNG
� Possibili applicazioni di un PRNG
�Alcuni metodi di generazione deterministica
�Una classe particolare di PRNG: i CSPRNG
�Test statistici
![Page 5: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/5.jpg)
Sequenze casuali
Varie applicazioni
� crittografia
� simulazioni� simulazioni
Generare sequenze veramente
casuali è molto dispendioso,
sono più comode quelle
pseudo casuali.
![Page 6: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/6.jpg)
Sequenze casuali
Per quanto “somiglianti” a delle vere sequenze casuali,
non si potrà mai arrivare ad ottenere numeri che siano
effettivamente non deterministici.effettivamente non deterministici.
� infiniti
� non influenzabili da qualunque tipo di fattore
esterno.
![Page 7: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/7.jpg)
PRNG
Def: PRNG è un algoritmo in grado di generare sequenze di numeri che approssimano le proprietà di quelle di numeri realmente casuali.
L’input che viene introdotto nel generatore definisce il suo stato iniziale, ed è anche detto seme, che viene espanso.
![Page 8: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/8.jpg)
PRNG
�Una generazione deterministica avviene per mezzo di una funzione.
�La stringa non è mai infinita
periodo di un PRNG
La massima lunghezza della sequenza prima che questa cominci a ripetersi. Se il seme in bit misura n, il periodo massimo è di 2^n.
![Page 9: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/9.jpg)
PRNG
Un PRNG è un algoritmo che prende una sequenza random in ingresso di lunghezza k ne genera una lunga l>>k che sembra casuale
Def
Siano k ed l interi positivi tali che l≥k+1. Un generatore di bit(k,l) è una funzione f che presenta un tempo computazionale polinomiale (come una funzione di k). L’input è detto seme, l’output f è detto stringa generata. È sempre richiesto che l sia una funzione polinomiale di k.
![Page 10: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/10.jpg)
Sicurezza di un PRNG
Le caratteristiche fondamentali
�Deve essere veloce, ovvero eseguibile in tempi
polinomiali.polinomiali.
�Deve essere sicuro.
Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi.
![Page 11: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/11.jpg)
Sicurezza di un PRNG
Intuitivamente un PRNG si definisce sicuro se in un Intuitivamente un PRNG si definisce sicuro se in un
tempo polinomiale (che sia quindi funzione di k ) è
impossibile distinguere il flusso di bit in uscita da uno
realmente casuale.
![Page 12: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/12.jpg)
Sicurezza di un PRNG
Strategia�In media un reale flusso casuale (di lunghezza l) di bit
ha un numero di 1 pari ad l/2, poiché uniformemente distribuito. distribuito.
�Un generico flusso, sempre di lunghezza l, di bit pseudo casuali, conterrà un numero di 1 pari a 2l/3.
l1 > (l/2 +2l/3)/2 = 7l/12
l1 ⇒ numero di 1 contenuti nella stringa esaminata.
![Page 13: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/13.jpg)
Caratteristiche di un PRNG
�Distribuzione uniforme .
� Indipendenza.� Indipendenza.
Esempio:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
![Page 14: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/14.jpg)
Problemi
�Spesso il periodo del generatore risulta più corto di quanto in realtà ci si aspetti, a seconda del tipo di seme posti in ingresso.posti in ingresso.
�Mancanza di uniformità nella distribuzione dei numeri della sequenza.
�Alti valori di correlazione fra i valori generati in output.
�Bassa distribuzione dimensionale della sequenza in uscita.
![Page 15: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/15.jpg)
Applicazioni
SimulazioneSono usati per creare campioni su cui poter effettuare
delle statistiche. Il metodo più conosciuto è indubbiamente il Metodo Monte Carlo.
L’ algoritmo genera una serie di numeri tra loro incorrelati, che seguono la distribuzione di probabilità che si suppone abbia il fenomeno da indagare.
![Page 16: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/16.jpg)
Applicazioni
In teoria
Il One-Time-Pad raggiunge la sicurezza perfetta.
In pratica
poco agibile in quanto prevede l’uso di una chiave lunga poco agibile in quanto prevede l’uso di una chiave lunga quanto il testo in chiaro.
Se pensiamo al seme come ad una chiave e al PRNG come un generatore di chiavi, basterà che Alice trasmetta solo il seme a Bob e poi entrambi saranno in grado di ottenere la stessa sequenza in uscita da usare come chiave.
![Page 17: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/17.jpg)
Metodo di Von Neumann
Suggerito nel 1946 era noto come Middle Square Method.Si prende un valore iniziale che sia un qualunque
numero di 10 cifre e si eleva al quadrato. Le 10 cifre nel mezzo del risultato sarebbero andate a costituire il mezzo del risultato sarebbero andate a costituire il secondo numero pseudo casuale della sequenza in uscita. Processo iterativo. Molto veloce.
�Se durante il processo le cifre mediane sono tutte 0, il generatore produrrà in uscita sempre sequenze nulle.
![Page 18: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/18.jpg)
Mersenne twister
Nel 1997 Makoto Matsumoto e Takuji Nishimura.
Risolse molti problemi che vi erano stati fino ad allora con i PRNG precedenti.
�Periodo a dir poco colossale, di (2^19937)-1.
�Punti equamente distribuiti in spazi fino a 623 dimensioni.
�Uno dei generatori più veloci.
![Page 19: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/19.jpg)
CSPRNG
Un algoritmo adatto a lavorare in ambito crittografico è detto Crittograficamente Sicuro.
Deve essere in grado di resistere a vari attacchi.
I test per verificare che un generatore sia un PRNG durano molto tempo e NON si è mai completamente sicuri!!
![Page 20: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/20.jpg)
Requisiti di un CSPRNG
�Una sequenza di numeri prodotta in uscita da un algoritmo deterministico deve essere indistinguibile da una stringa realmente casuale.
�Deve essere impossibile per un qualunque attaccante, a partire da una data sottosequenza, poter risalire ai valori passati o futuri di output del PRNG.
�Deve essere impossibile per un qualunque attaccante, a partire da un dato stato interno, poter risalire ai valori passati o futuri di output del PRNG.
![Page 21: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/21.jpg)
Test statistici
Frequency (Monobits) Test
Lo scopo di questo test è verificare se il numero di “1” e “0” in una sequenza sono circa gli stessi che ci si “0” in una sequenza sono circa gli stessi che ci si aspetterebbe per una sequenza veramente casuale. Il test valuta la “distanza” della frequenza degli “1” e “0” rispetto a ½, cioè il numero di zeri e di uno che dovrebbero essere contenuti in una sequenza realmente casuale.
![Page 22: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/22.jpg)
Test statistici
Maurer's Universal Statistical Test
Lo scopo del test è di rilevare se la sequenza possa essere notevolmente compressa senza perdita di informazioni. Una sequenza eccessivamente comprimibile è considerata non casuale.
![Page 23: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/23.jpg)
Test statistici
Runs Test
Questo test si propone di valutare la frequenza delle “runs” di varie lunghezze. Con il termine “run” “runs” di varie lunghezze. Con il termine “run” indichiamo una sottostringa di lunghezza variabile k, i cui k elementi siano tutti identici e che è collegata, all’inizio e al termine, al resto della sequenza tramite dei valori opposti.
…1, 0, 1, 0, 0, 0, 0, 1, 0, 1…
![Page 24: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/24.jpg)
Test statistici
Next bit test
Dati i primi k bit di una sequenza casuale, non deve Dati i primi k bit di una sequenza casuale, non deve essere possibile, in un tempo polinomiale, predire il (k +1) esimo bit con probabilità di successo superiore a 1/2 . Nel 1982 fudimostrato che un generatore in grado di passare il next bit test passerà anche tutte le altre prove statistiche di casualità a tempo polinomiale .
![Page 25: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/25.jpg)
I più famosi
�I cifrari a flusso.
I cifrari a blocco.�I cifrari a blocco.
�Fra i cifrari appositamente disegnati per avere delle caratteristiche specifiche per la sicurezza in ambito crittografico ricordiamo l’algoritmo di Yarrow, il BlumBlum Shub ed il Fortuna.
![Page 26: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/26.jpg)
Il generatore Fortuna
![Page 27: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/27.jpg)
PRESENTATION OVERVIEWPRESENTATION OVERVIEWPRESENTATION OVERVIEW
1)Random Number Generators
2)Possibili attacchi ad un PRNG
3)CS-PRNG: Fortuna
![Page 28: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/28.jpg)
RANDOM NUMBER
GENERATORSRANDOM NUMBER
GENERATORS
RANDOM NUMBER
GENERATOR
TRNG= True Random Number Generator
• si basano su fenomeni fisici imprevedibili
• vantaggio: sequenze intrinsecamente aleatorie
• svantaggio: basso throughput (frequenza di
emissione dei simboli)
![Page 29: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/29.jpg)
RANDOM NUMBER
GENERATORSRANDOM NUMBER
GENERATORS
RANDOM NUMBER
GENERATOR
PRNG= Pseudo Random Number Generator
• algoritmo deterministico alimentato da un seme
casuale
• vantaggio: throughput più elevato rispetto ai TRNG
![Page 30: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/30.jpg)
RANDOM NUMBER
GENERATORS
RANDOM NUMBER
GENERATOR
CSPRNG= Cryptographically Secure Pseudo Random
Number Generator
• PRNG utilizzati nell'ambito della crittografia
![Page 31: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/31.jpg)
Un CSPRNG deve rispettare i seguenti criteri:
RANDOM NUMBER
GENERATORSRANDOM NUMBER
GENERATORS
RANDOM NUMBER
GENERATOR
Un CSPRNG deve rispettare i seguenti criteri:
• Passare il “next-bit test”
• Resistere all'attacco “state compromise extensions”
Fortuna appartiene alla classe dei CSPRNG!
![Page 32: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/32.jpg)
Possibili attacchi ad un CS-PRNG
• Attacco più semplice: attacco diretto
PRNG: POSSIBILI ATTACCHIPRNG: POSSIBILI ATTACCHI
• Pericolosità: l'hacker che acquisisce
in qualche modo lo stato interno
• Ripristinare la sicurezza: tramite le fonti di numeri
realmente casuali a disposizione
![Page 33: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/33.jpg)
Possibili attacchi ad un CS-PRNG
• Problema: qual'è la quantità minima di entropia
necessaria a garantire la sicurezza?..
PRNG: POSSIBILI ATTACCHIPRNG: POSSIBILI ATTACCHI
• In generale è difficile effettuare una stima dell'entropia
• Il generatore Fortuna risolve questo
problema!
![Page 34: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/34.jpg)
FORTUNAFORTUNAFORTUNA
![Page 35: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/35.jpg)
FORTUNAFORTUNAFORTUNA
FORTUNA si suddivide in
1) Generatore
2) Accumulatore
3) Controllo sul file del seme
![Page 36: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/36.jpg)
FORTUNA: GENERATORE
• Generatore: cifrario a blocchi (AES) in modalità contatore
• Stato interno: chiave 256 bit + contatore 128 bit
FORTUNA: GENERATOREFORTUNA: GENERATORE
• Stato interno: chiave 256 bit + contatore 128 bit
![Page 37: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/37.jpg)
FORTUNA: GENERATORE
Aggiornamento del seme (reseed):
FORTUNA: GENERATOREFORTUNA: GENERATORE
Aggiornamento del seme (reseed):
• Dopo ogni richiesta di dati casuali
• Dopo aver generato 220 dati pseudo-casuali
![Page 38: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/38.jpg)
FORTUNA: ACCUMULATORE
Accumulatore di entropia:
• Fornisce al Generatore un seme casuale
FORTUNA: ACCUMULATORE
DI ENTROPIA
FORTUNA: ACCUMULATORE
DI ENTROPIA
• Fornisce al Generatore un seme casuale
• 32 pool di entropia
![Page 39: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/39.jpg)
FORTUNA: ACCUMULATORE
L'entropia dalle sorgenti è distribuita ciclicamente
sui vari pool
FORTUNA: ACCUMULATORE
DI ENTROPIA
FORTUNA: ACCUMULATORE
DI ENTROPIA
sui vari pool
![Page 40: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/40.jpg)
• L'aggiornamento del seme è effettuato quando il pool
P0
ha accumulato abbastanza entropia
FORTUNA: ACCUMULATORE
DI ENTROPIA
FORTUNA: ACCUMULATORE
DI ENTROPIA
• Indico con r la generica variazione del seme
• Il Pool Piè incluso se 2i è un divisore di r:
P0
è usato ogni variazione
P1
ogni 2,..
![Page 41: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/41.jpg)
FORTUNA: ACCUMULATORE
• I pool Picaratterizzati da un indice i elevato
contribuiscono molto raramente all'aggiornamento, ma
FORTUNA: ACCUMULATORE
DI ENTROPIA
FORTUNA: ACCUMULATORE
DI ENTROPIA
accumulano maggiore entropia tra due variazioni
• L'hacker non può determinare lo stato interno finchè egli
non controlla tutte le sorgenti di entropia
• Questo rappresenta il vero pregio di Fortuna: l'aver
eliminato le stime dell'entropia!
![Page 42: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/42.jpg)
FORTUNA: CONTROLLO SUL FILE
DEL SEME
• Controllo sul file del seme:
FORTUNA: SEED FILE
MANAGER
FORTUNA: SEED FILE
MANAGER
• Fornisce al generatore un seme iniziale, in questo modo
Fortuna può generare immediatamente dati pseudo-
casuali
• Il file viene riscritto prima dello spegnimento della
macchina, e aggiornato approssimativamente ogni 10 min
![Page 43: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/43.jpg)
Approccio pratico:
realizzazione di un RNG
![Page 44: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/44.jpg)
Riepilogo applicazioni� Generare chiavi in crittografia
� Simulare e modellare fenomeni complessi
� Testing di sistemi complessi
![Page 45: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/45.jpg)
Che cosa si produce� Singolo numero:estratto da un set di valori possibili ed
equiprobabili.
� Sequenza di numeri:indipendenza statistica e ditribuzione uniforme.ditribuzione uniforme.
� Introdurre casualità nei computer non è semplice
![Page 46: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/46.jpg)
PRNG vs TRNG� Due approcci per generare numeri casuali usando un
computer:PRNG,TRNG.
� PRNG utilizzano formule matematiche.
� TRNG usano fenomeni fisici naturali.� TRNG usano fenomeni fisici naturali.
![Page 47: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/47.jpg)
PRNG� Usano algoritmi e formule matematiche per generare
sequenze di numeri che appaiono random.
� Un valido esempio è il “metodo congruenziale lineare”.
� Efficienti,deterministici( noto lo starting� Efficienti,deterministici( noto lo startingpoint),periodici.
� Vanno bene solo per alcune applicazioni:dove si necessita di velocità computazionale elevata,di molti numeri,di ripetere sequenze già generate.
� Periodicità:anche se nei più moderni è trascurabile.
![Page 48: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/48.jpg)
Dove si applicano i PRNG� Testing e simulazioni
� Non sempre usati nel data encryption,dove c’ è necessità di numeri realmente impredicibili,anche se esistono buonissimi algoritmi PRNG.esistono buonissimi algoritmi PRNG.
![Page 49: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/49.jpg)
TRNG� Prendono la casualità da fenomeni fisici e la elaborano
al computer.
� È importante la scelta della sorgente caotica.
� Possibili fenomeni da utilizzare:variazione dei � Possibili fenomeni da utilizzare:variazione dei movimenti del mouse in più persone,decadimento di una sorgente radioattiva(si usa un generatore di impulsi pilotato dalla sorgente),rumore atmosferico (reperibile con una normale radio),rumore termico,effetto fotoelettrico.
![Page 50: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/50.jpg)
Altri fenomeni da sfruttare…� Fenomeni macroscopici :carte da gioco,dadi,ruota
della roulette.
� La loro impredicibilità è giustificata dalla teoria del caos e dei sistemi dinamici instabili.caos e dei sistemi dinamici instabili.
� Quindi sono fenomeni imprevedibili apparteconoscendo le condizioni iniziali perfettamente.
![Page 51: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/51.jpg)
..di facile acquisizione� È importante che la sorgente caotica sia facilmente
collegabile col calcolatore per l’acquisizione dei dati.
� i TRNG lavorano come se rendessero il computer capace di sostituirsi a un giocatore nel lancio di un capace di sostituirsi a un giocatore nel lancio di un dado o meglio usano qualche altro fenomeno fisico che è più facile da collegare a un computer di quanto non lo sia un dado.
![Page 52: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/52.jpg)
![Page 53: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/53.jpg)
Differenze PRNG/TRNG
Characteristic Pseudo-Random
Number Generators
True Random Number
Generators
Efficiency Excellent Poor
Determinism Determinstic Nondeterministic
Periodicity Periodic Aperiodic
![Page 54: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/54.jpg)
APPLICAZIONI
Application Most Suitable Generator
Lotteries and Draws TRNG
Games and Gambling TRNG
Random Sampling (e.g., drug
screening) TRNG
Simulation and Modelling PRNG
Security (e.g., generation of data
encryption keys) TRNG
![Page 55: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/55.jpg)
Metodo congruenza lineare (1)� Computer incapace di generare ,nel senso letterale del
termine,numeri casuali.
� Allora si realizza algoritmo che genera sequenza con stesse proprietà statistiche dei numeri casuali.stesse proprietà statistiche dei numeri casuali.
� Metodo congruenza: dato un seme X0 ottiene sequenza pseudocasuale ripetendo la formula seguente
x i+1 = (a * x i + c) (MOD m)
![Page 56: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/56.jpg)
Metodo congruenza lineare (2)� x i+1 = (a * x i + c) (MOD m)
� a coeff. intero positivo detto moltiplicatore
� c coeff. intero non negativo detto incremento
m coeff. intero strettamente positivo detto modulo� m coeff. intero strettamente positivo detto modulo
� x i è il generico numero della sequenza
� Il metodo prende il nome dalla definizione di congruenza.
� Nel nostro caso x i+1 sarà congruo modulo m a (a * x i + c).
![Page 57: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/57.jpg)
Metodo congruenza lineare (3)� x i+1 = (a * x i + c) (MOD m)� Il metodo è detto moltiplicativo se c=0, misto se c ¹ 0; se a=1
il metodo è detto additivo.� Esempio:Esempio:Ipotizziamo le seguenti assegnazioni:a=3c=5m=11Se x0=3 la sequenza che si ottiene applicando la formula della
congruenza modulo m è:3, 3, 3, 3, …, cioè una sequenza assolutamente non casuale.
![Page 58: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/58.jpg)
Metodo congruenza lineare (4)� Le cose cambiano se scegliamo x0=1; la sequenza
ottenuta è allora la seguente:
1, 8, 7, 4, 6, 1, 8, 7, 4, 6, 1, …
Possiamo notare che i primi 5 numeri vengono Possiamo notare che i primi 5 numeri vengono riprodotti interamente!
� Se x0=2 si ottiene
2, 0, 5, 9, 10, 2, 0, 5, 9, 10, 2, …;
ancora una sequenza di 5 numeri ripetuta.
![Page 59: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/59.jpg)
Metodo congruenza lineare (5)� Se modifichiamo invece a assegnandogli il valore 12, e
poniamo x0=1 allora si ottiene:
1, 6, 0, 5, 10, 4, 9, 3, 8, 2, 7, 1, 6, 0, 5, …1, 6, 0, 5, 10, 4, 9, 3, 8, 2, 7, 1, 6, 0, 5, …
una sequenza di lunghezza 11 e cioè pari a m.
� E’ da sottolineare che in ogni caso i numeri ottenuti sono compresi tra 0 e 10 e cioè tra 0 e
m-1.
![Page 60: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/60.jpg)
Osservazioni..� La lunghezza massima raggiungibile dalla sequenza
generata, senza ripetizione, vale
m;
� Il valore di x0 può essere determinante nella � Il valore di x0 può essere determinante nella lunghezza della sequenza.
� E’ allora necessario individuare dei criteri per assegnare ad a, c, m e al seme dei valori in
modo che la sequenza riprodotta sia la più lunga possibile.
![Page 61: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/61.jpg)
Criteri ottimalità metodo� Alcuni studiosi hanno individuato i seguenti criteri
necessari e sufficienti che garantiscono l'ottimalità del metodo:x i+1 = (a * x i + c) (MOD m)
1. I parametri c e m devono essere coprimi cioè MCD(c,m) 1. I parametri c e m devono essere coprimi cioè MCD(c,m) = 1
2. ogni divisore primo di m deve dividere (a-1)3. se m è multiplo di 4, anche (a-1) lo deve essere.� Per rendere più aleatorio il processo, il seme viene fissato in
modo hardware,prelevandone il valore da un contatore interno al computer.
![Page 62: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/62.jpg)
il prezzo da pagare..� PRNG progettato male
� Maggio 2008 si scopre falla di sicurezza nel PRNG di OpenSSL.
� OpenSSL è software di crittografia per creazione di � OpenSSL è software di crittografia per creazione di connessioni di rete sicure(usato in Mozilla).
� Ha interessato tutte le chiavi crittografiche generate da Settembre 2006.
� Causa:rimozione di linee di codice che inizializzavano il PRNG con dati di entropia.
![Page 63: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/63.jpg)
segue..� Senza questa entropia,l’unico dato dinamico per
l’inizializzazione era il PID del software(ma può assumere valori solo tra 1 e 32768).
� Troppi pochi valori,quindi prevedibilità chiavi � Troppi pochi valori,quindi prevedibilità chiavi generate.
� Importanza test di valutazione di un generatore a seconda delle applicazioni.
![Page 64: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/64.jpg)
In pratica:generatore Lava� Si parte dal presupposto che realizzare un’autentica
sequenza non ripetitiva è inattuabile utilizzando solo un computer .
� Il generatore Lava usa una sorgente caotica in cui una � Il generatore Lava usa una sorgente caotica in cui una piccola sollecitazione a un certo istante di tempo ha un notevole impatto sullo stato futuro del sistema (scorrelati).
![Page 65: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/65.jpg)
Come funziona(1)
PhysicalSource ofChaos
analogto digital
DigitalBlender
produces RandomNumbers
![Page 66: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/66.jpg)
Come funziona(2)1.Si digitalizza la sorgente caotica,catturando un istante
dell’attività della sorgente .
2.Digital Blender:algoritmo che ha in input dati digitali stutturati e caotici;dà in output solo dati caotici.stutturati e caotici;dà in output solo dati caotici.
3.L’insieme di dati random sono raccolti e adattati a seconda dell’applicazione che ne farà uso.
![Page 67: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/67.jpg)
Sorgente caotica(1)� si incapsula sensore CCD in modo che questo misuri
solamente il rumore di fondo in uno spazio totalmente privo di luce.
![Page 68: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/68.jpg)
Sorgente caotica(2)� Si può utilizzare anche una webcam dato che la
maggior parte di esse hanno un chip CCD al loro interno.
![Page 69: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/69.jpg)
Sorgente caotica(3)� Esempio:si può avere una quantità di dati relativi ad
un’immagine ,pari a 19200 pixels nel dominio YUV.
� Massimizzo entropia della sorgente caotica settandone il guadagno.il guadagno.
� Crominanze non mostrano livelli di caoticità a differenza della luminanza che andremo a considerare.
![Page 70: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/70.jpg)
Luminanza Y� Dati relativi alla luminanza rappresentati con 2
immagini: deboli strisce uniformi con intorno rumore
Webcam luminance data(2x magnification)
![Page 71: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/71.jpg)
Digital Blender(1)
![Page 72: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/72.jpg)
Digital Blender(2)� un “n-way turn”,
� n diverse SHA-1 operazioni hash in parallelo
� n operazioni di xor-rotate.
![Page 73: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/73.jpg)
Come funziona(3)� L’n-way turn converte i dati digitalizzati ottenuti dal
CCD in n sets di dati.
� Ognuno di questi n entra nel blocco SHA-1 che produce in uscita 20 ottetti di dati.produce in uscita 20 ottetti di dati.
� Ognuno degli n entra anche nel blocco xor-rotate che produce anch’esso 20 ottetti di dati.
� I 20 ottetti di dati prodotti da un blocco xor rotate sono messi in xor coi 20 ottetti prodotti dal blocco SHA-1 successivo e producono 20 ottetti di numeri random.
![Page 74: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/74.jpg)
Scelta di n� In totale questo algoritmo produce n*20 ottetti di
numeri random.
� Come scelgo n?
Dipende dalla quantità di dati ottenuti dalla sorgente Dipende dalla quantità di dati ottenuti dalla sorgente caotica e dall’output rate factor chiamato alfa.
� Più grande è alfa ,maggiore sarà l’output per un dato input.
![Page 75: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/75.jpg)
Esempio� Assumendo 19200 ottetti di input, la seguente tabella
mostra il numero di ottetti generati in funzione di alfa:
input length alpha rate n-way level octets generated
19200 16.00 71 1420
19200 12.00 61 1220
19200 8.00 49 980
19200 6.00 43 860
19200 4.00 35 700
19200 3.00 31 620
![Page 76: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/76.jpg)
Esempio� Ipotizziamo di utilizzare un 17 way turn,una volta che
questo è completo,l’algoritmo fa 17 differenti operazioni SHA-1 hash e 17 operazioni di xor rotate.
� Quando le rispettive uscite di questi blocchi sono � Quando le rispettive uscite di questi blocchi sono messe in xor e concatenate vengono prodotti 340 ottetti di numeri random.
Random numbers in image form(2x magnification)
![Page 77: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/77.jpg)
..continua esempio� È facile notare come allo stesso livello d’ingrandimento
l’immagine in uscita sia molto più piccola di quella in ingresso all’algoritmo.
� questo perché per un alfa uguale a 1 ad esempio,ci sono � questo perché per un alfa uguale a 1 ad esempio,ci sono circa 56 ottetti di pixels di luminanza consumati per ogni ottetto di numeri random prodotto.
![Page 78: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/78.jpg)
Applicazione� Solitamente nonserve una grande quantità di numeri
casuali tutti insieme ma serve metterli in una certa forma(a seconda dell’applicazione per la quale vengono utilizzati.vengono utilizzati.
� Nel modificare i dati(per adattarli all’applicazione finale) è importare mantenere la loro distribuzione uniforme.
![Page 79: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/79.jpg)
Invenzioni recenti� QRBG usa un led ed un sensore che rileva l’emissione
di fotoni ,esso sfrutta la luce prodotta da un semiconduttore.Usa dei chip che registrano il fenomeno costruendo un database contenente fenomeno costruendo un database contenente un’autentica sequenza random.
� società britannica genera randomness basandosi su tutto quello che và dall’analisi del vento solare alle nuvole di venere,dalle emissioni di giove ad altri eventi cosmici.
![Page 80: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/80.jpg)
Excel e i numeri casuali� Due funzioni:CASUALE e CASUALE.TRA(;)
� CASUALE:genera numero con virgola tra 0 e 1.
� CASUALE.TRA(;) genera numero in un range che posso specificare.posso specificare.
� Esempio:voglio generare un numero casuale tra 20 e 45;in una cella excel scrivo =CASUALE.TRA(20;45)
![Page 81: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/81.jpg)
Java e i numeri casuali� Utilizzo la classe java.util.Random ma va bene solo per casi
semplici,cioè nessun requisito di sicurezza.� Per verificare quanto siano poco casuali i bit generati da
java.util.Random vediamo:
� Per la crittografia si usa la classe java.security.SecureRandom; fornisce un RNG crittograficamente molto valido.esempio codice:SecureRandom random = new SecureRandom(); byte bytes[] = new byte[20]; random.nextBytes(bytes);
![Page 82: Generatori di numeri pseudo-randomricerca.mat.uniroma3.it/users/merola/critto/tesine/PRNGsli.pdf · Risulta molto spesso arduo trovare un compromesso fra questi obbiettivi. ... Dati](https://reader031.vdocuments.pub/reader031/viewer/2022022112/5c65d1ae09d3f252168b5c55/html5/thumbnails/82.jpg)
GRAZIE PER L’ATTENZIONE!