Sei sulla pagina 1di 16

POLITECNICO DI MILANO

CORSO: caos deterministico e applicazioni


Professore: Carlo Piccardi

Presentazione dell’articolo:

True Random Bit Generation From a Double-Scroll Attractor


Müştak E. Yalçin, Student Member, IEEE, Johan A. K. Suykens, Member, IEEE, and Joos Venderwalle, Fellow, IEEE

Matteo Verzillo, matr.666690

1
INTRODUZIONE

Generatore di numeri casuali (RNG):

La possibilità di generare numeri casuali risulta molto utile in alcune applicazioni,


quali:
- simulazioni;
- generazione di test per la valutazione delle performance degli algoritmi;
- metodi di ottimizzazione stocastica per il riconoscimento delle immagini.

Nell’ambito della crittografia l’utilizzo di un generatore di numeri casuali sicuro è


addirittura di vitale importanza (generazione di password, chiavi …).
Affinché il RNG sia sicuro occorre che il suo output sia statisticamente
indistinguibile da una sequenza realmente casuale di numeri e che sia
impredicibile.

Matteo Verzillo 2
INTRODUZIONE

Classificazione dei RNGs:

Gli RNG possono essere suddivisi in tre classi:


-True RNGs (TRNGs): questi generatori operano misurando processi naturali
impredicibili e sono anche detti basati su hardware perché utilizzano gli aspetti
casuali presenti nell’hardware.
- Pseudo RNGs (PRNGs): utilizzano processi deterministici (infatti vengono
anche chiamati RNGs deterministici) per generare una serie di output partendo
da uno stato iniziale. Essi sono migliaia di volte più veloci e molto più economici
dei TRNGs.
- Hybrid RNGs (HRNGs): utilizzano un TRNG con o senza interazione da parte
dell’utente (come le battute dei tasti, i movimenti del mouse o il tempo di ricerca
in un disco), come generatore di origine. Questo generatore viene poi espanso.

Matteo Verzillo 3
INTRODUZIONE

Scopo dell’articolo:

Lo scopo dell’articolo è quello di mostrare come, utilizzando sistemi caotici a


tempo continuo, si possa generare una sequenza di bit realmente casuali;
ovvero si vuole mostrare la sicurezza di un generatore di numeri casuali basato
su un sistema caotico a tempo continuo.

Per far ciò viene proposto e analizzato un particolare TRNG, e viene verificata la
reale casualità e impredicibilità dei bit generati tramite alcuni test statistici a cui
esso è stato sottoposto.

Matteo Verzillo 4
TRBG BASATO SU UN ATTRATTORE DOUBLE-SCROLL

Il TRBG proposto:

Matteo Verzillo 5
TRBG BASATO SU UN ATTRATTORE DOUBLE-SCROLL

Il TRBG proposto:

Parte Hardware:

- Blocco S1 (oscillatore caotico):


è un sistema autonomo del terzo ordine a tempo continuo che presenta un
attrattore double – scroll. È qualitativamente simile all’attrattore osservato nel
circuito di Chua.

- Blocco S2 (circuito di soglia):


divide lo spazio di stato in tre sotto-spazi. Due di questi sono posizionati in
corrispondenza delle due “matasse” dell’attrattore, il terzo, invece, corrisponde
alla regione di transizione.

Matteo Verzillo 6
TRBG BASATO SU UN ATTRATTORE DOUBLE-SCROLL

Il TRBG proposto:

Parte Software:

- Blocco S3 (generatore di bit):


essenzialmente codifica le due “matasse” dell’attrattore (0 se ci si trova sulla
prima, 1 se si è sulla seconda).
L’unione di S2 e S3 è descritta da una funzione non-invertibile che ha la
caratteristica di migliorare la casualità dell’output. Infatti il campionamento del
segnale nello spazio porta ad un campionamento irregolare dello stesso nel
tempo. Ciò rende molto difficile eventuali previsioni sui futuri output.

-Blocco S4 (reallineamento):
elimina il bias nell’output del generatore di bit. Questo bias dipende dalla densità
di probabilità del segnale caotico stesso e dalle limitazioni di ampiezza e
larghezza di banda.

Matteo Verzillo 7
OSCILLATORE CAOTICO

Realizzazione dell’attrattore double-scroll:

Per generare il comportamento di un attrattore “a doppia matassa” si è


recentemente scoperto un modello semplice di circuito elettrico. Esso è dato da:
S1: x& = Ax + Bf(Cx)
0 1 0 0 
Α =  0 0 1  Β = 0  C = [0 0 1]
− a − a − a  a 
 x
 1 se ζ ≥ 0
x =  y  ∈ ℜ
3
f (ζ ) =  ∧ζ ∈ℜ
− 1 se ζ < 0  z 

Questo modello produce un attrattore “a doppia matassa” per a = 0.8

Matteo Verzillo 8
OSCILLATORE CAOTICO

Realizzazione dell’attrattore double-scroll:

Utilizzando il modello precedentemente descritto e apportando opportune


modifiche viene realizzato il circuito col comportamento desiderato:

Cx = Cy = Cz = C
R1 = R
R2 = R4 = R/a
Vx = ax
Vy = ay
Vz = z

Matteo Verzillo 9
CIRCUITO DI SOGLIA

Suddivisione dello spazio di stato:

Lo spazio di stato viene suddiviso in 3 regioni (V0, VT, V1) introducendo 2 valori di
soglia (c1 = 0 e c2 = -1) e vengono definite due nuove funzioni (che compongono
il blocco S2):

0 se x(t ) > c2
σ (x(t )) = 
0

1 se x(t ) ≤ c2

0 se x(t ) < c1
σ ( x(t )) = 
1

1 se x(t ) ≥ c1

Matteo Verzillo 10
GENERATORE DEI BIT

Generazione dei bit:

Un bit è generato quando il segnale attraversa il sottospazio V0 o il sottospazio


V1 passando per il sottospazio VT:

0 se σ 0 = 0, σ 1 : o ↑1
(
σ i σ ,σ = 
0 1
)
1 se σ = 0, σ : o ↑
1 0 1

dove σ0 : o ↑1 indica una transizione da 0 a 1 di σ0 e i = {0, 1, 2, …}.


L’immagine seguente mostra la generazione di una sequenza di bit.

Matteo Verzillo 11
REALLINEAMENTO E SETTAGGIO DELLA SOGLIA C2

Tecniche di reallineamento (de-skewing):


I generatori casuali di bit, molto frequentemente sono affetti da piccoli errori e da
oscillazioni rispetto al comportamento che realmente dovrebbero presentare.

Si utilizzano quindi tecniche di reallineamento (de-skewing) aventi i due seguenti


vantaggi:
- eliminano il bias che influenza il sistema;
- eliminano la correlazione presente nei dati in uscita dal sistema.

Matteo Verzillo 12
REALLINEAMENTO E SETTAGGIO DELLA SOGLIA C2

La tecnica di reallineamento di Von Neumanns:


In questo generatore casuale di bit viene utilizzata la tecnica di reallineamento
proposta da Von Neumanns, che prevede di:
- convertire la coppia 0 1 in un output pari a 0;
- convertire la coppia 1 0 in un output pari a 1;
- eliminare le coppie 0 0 e 1 1.

Si ottiene in questo modo il blocco S4, regolato dalla seguente funzione:

0 se σ i = 0 ∧ σ i −1 = 1
S 4 : bi (σ i , σ i −1 ) = 
1 se σ i = 1 ∧ σ i −1 = 0
Il TRBG proposto ha quindi un unico output:
B = {… , b(i-1), b(i), b(i+1), …} con b(i) = {0, 1}.

Matteo Verzillo 13
REALLINEAMENTO E SETTAGGIO DELLA SOGLIA C2

Settaggio della soglia c2:


L’eliminazione del bias porta a delle variazioni delle proprietà statistiche del
TRBG. Occorre quindi effettuare delle correzioni. Ciò è possibile modificando il
valore della soglia c2, che ha quindi funzione di parametro di controllo del
sistema.

Utilizzando la conoscenza che il rumore ha entropia massima, il valore di soglia


c2 viene settato in modo tale da massimizzare la misura di entropia del TRBG.

In questo particolare TRBG il valore corretto per C2 è stimato essere pari a -1,44
Volt.

Matteo Verzillo 14
TEST STATISTICI

FIPS 140 - 1:
Sono 4 test statistici differenti (Monobit, Poker, Runs, Long-run) che
garantiscono la casualità dei dati.
Nel nostro caso sono state sottoposte ai test stringhe di 20000 bit prodotte dal
TRBG realizzato.
Ogni stringa di bit ha passato brillantemente tutti i test.

Diehard:
È composto da 200 istanze di 15 tradizionali test statistici ed è particolarmente
efficace per il testing empirico.
Nel nostro caso sono stati sottoposti ai test più di 80 milioni di bit prodotti dal
TRBG.
Il generatore ha passato l’intera suite Diehard.

Matteo Verzillo 15
CONCLUSIONI

Conclusioni:
Il TRBG realizzato ha passato entrambe le suite di test statistici, ciò garantisce
buone proprietà statistiche del generatore di bit.
Un altro aspetto a favore è che il TRBG è realizzato tramite un integrato, perciò
esso può diventare una parte hardware standard.

Ci sono anche tre direzioni in cui effettuare ulteriori approfondimenti:


- si potrebbe prendere in considerazione il bit rate del TRBG proposto, cosa che
in questo articolo non è stata fatta;
- si sono testate le proprietà statistiche del TRBG, ma non ancora l’impredicibilità
degli output da questo forniti;
- si potrebbe provare ad effettuare una previsione dell’output ad un passo
cercando di sincronizzare un altro sistema caotico a quello del generatore. È
necessario che il nuovo sistema caotico sia identico a quello del TRBG.

Matteo Verzillo 16

Potrebbero piacerti anche