Studio e Sviluppo di Algoritmi per il Calcolo della Trasformata di

Studio e Sviluppo di Algoritmi per il Calcolo della Trasformata di
Fourier Discreta nel Dominio Cifrato
Tesi Teorico-Sperimentale di Pierluigi Failla
Relatore: Prof. Mauro Barni
Anno Accademico: 2006-2007
Negli ultimi anni con l’introduzione dei nuovi sistemi crittografici, ovvero con l’inizio di quella che viene
definita come crittografia moderna, l’interesse che prima era strettamente e quasi unicamente correlato al
concetto di sicurezza dei dati o dell’informazione, ha iniziato a evolversi in una nuova direzione. Le nuove
tecnologie e la fortissima diffusione dei sistemi per le telecomunicazioni hanno iniziato a far sorgere la
necessità di sistemi crittografici molto più elastici e con proprietà matematiche spiccatamente direzionate ad
ottenere qualcosa di più interessante della semplice cifratura dell’informazione.
Già nel 1978 Rivest e altri [RAD78], si erano accorti delle potenzialità che i nuovi sistemi crittografici
potevano offrire ed è da quegli anni che si inizia a parlare di crittografia omomorfa. In algebra con il termine
omomorfismo1 si intende una corrispondenza univoca tra strutture rispetto ad una determinata operazione,
più precisamente: data una struttura algebrica S su cui è definita un’operazione ◦ e una seconda struttura
0
0
algebrica S su cui è definita un’operazione •, si dice che esiste un omomorfismo tra S e S se dati a, b ∈ S e
0
0
0
0
0
0
a , b ∈ S all’elemento c = a ◦ b corrisponde l’elemento c = a • b . Se la corrispondenza è biunivoca allora
non si parla di omomorfismo, ma di isomorfismo2 .
Figure 1: Omomorfismo tra strutture algebriche
Con la dicitura crittografia omomorfa si intende un sistema crittografico attraverso il quale è possibile
realizzare alcune semplici operazioni algebriche sull’informazione non crittata elaborando l’informazione crittata. Dal punto di vista matematico vale la medesima definizione che è stata data poche righe sopra, con
l’accortezza di definire come strutture algebriche, lo spazio dei messaggi in chiaro e lo spazio dei messaggi
crittati.
La crittografia omomorfa è uno strumento importante, ma fino a qualche tempo fa utilizzato solo come
un possibile punto di debolezza di un sistema crittografico, infatti le proprietà di omomorfia permettono di
modificare l’informazione contenuta nel messaggio cifrato e permettono così ad un ipotetico attaccante di
modificare l’informazione nascosta magari rendendola non più intellegibile. Questo problema è noto in letteratura come il problema della malleability [Wik07] dei crittosistemi. Anche se attacchi basati sull’omomorfia
rimangono sempre attuabili, si sta iniziando a guardare queste proprietà con un ottica diversa che, anche se
in modo limitato, consentono l’elaborazione dell’informazione crittata garantendone comunque la sicurezza.
1 Dal
2 Dal
greco omo e morphosis: di forma simile.
greco iso e morphosis: di forma uguale.
1
Generalmente esistono tre tipologie principali di sistemi crittografici omomorfi:
additivi: si dice che un sistema è additivamente omomorfo o omomorfo rispetto all’addizione, se esiste
un’operazione ◦ tale che applicata a due elementi crittati ritorna la somma dei due elementi in chiaro
quando si decritta
moltiplicativi: si dice che un sistema è moltiplicativamente omomorfo o omomorfo rispetto alla moltiplicazione, se esiste un’operazione ◦ tale che applicata a due elementi crittati ritorna il prodotto dei due
elementi in chiaro quando si decritta
algebrici: si dice che un sistema è algebricamente omomorfo o omomorfo rispetto alla somma e al prodotto
se esistono due operazioni tali che il sistema risulta contemporaneamente additivamente e moltiplicativamente omomorfo
Tutti i crittosistemi moderni più noti e usati3 hanno qualche proprietà di omomorfia come ad esempio
RSA[RSA78] che risulta essere moltiplicativamente omomorfo, per cui moltiplicare due messaggi crittati
equivale a moltiplicare i due messaggi in chiaro, oppure il crittosistema di Paillier [Pai99] che è additivamente
omomorfo. Per quanto riguarda sistemi algebricamente omomorfi ancora non è possibile dire neanche se
esistano o meno [FM91]. Il miglior risultato conosciuto, in questa direzione, al momento è il crittosistema
di Boneh-Goh-Nissim [BGN05] che è additivamente omomorfo ed inoltre consente un’unica moltiplicazione.
Nel contesto della crittografia omomorfa è possibile definire protocolli, fino ad arrivare anche a veri e
propri algoritmi, che consentono la modifica, quindi l’elaborazione, di dati ignoti per chi li elabora, ma che
acquistano un senso nel momento in cui il legittimo proprietario li decritta. Gli strumenti forniti da questo
particolare aspetto della crittografia permettono, ad esempio, di realizzare sistemi sicuri per le votazioni
elettroniche oppure protocolli per il recupero dell’informazione senza che chi la gestisce sappia cosa è stato
cercato e recuperato (privacy preserving information retrivial). Non solo, è possibile sviluppare strumenti
per multi-party computation, dove più soggetti, senza rivelare niente delle proprie informazioni private,
riescono a computare insieme funzioni che dipendono dai dati di tutti (Problema del Milionario) [Yao82]. La
possibilità di calcolare funzioni crittate, permette la realizzazione di Mobile Agent sicuri ovvero lo sviluppo
di software autonomo che migrando da un host all’altro liberamente, su una rete come Internet, è in grado di
effettuare la ricerca di informazioni in basi di dati e servizi, cosa che fino a qualche tempo non era possibile,
proprio per via di questioni legate alla sicurezza del Mobile Agent [LAFH04]. Non è difficile immaginare
contesti più complessi dove la crittografia omomorfa può trovare un impiego di sostanziale importanza,
come lo streaming delle informazioni. In un servizio di streaming, è possibile immaginare che chi offre un
servizio voglia che questo sia decifrabile solo da chi ne è autorizzato, ma allo stesso tempo ha la necessità
di trasmetterlo su una rete eterogenea come Internet, all’interno della quale la trasmissione non può essere
sempre garantita ad un bit-rate stabilito, per cui sarebbe gradito che, senza rivelare l’informazione, i nodi
intermedi della rete potessero ad esempio abbassare il bit-rate per garantire una certa velocità. Problemi
come questi possono essere risolti attraverso la crittografia omomorfa.
Realizzare protocolli e algoritmi per la crittografia omomorfa implica l’uso di strutture numeriche che non
sono quelle comunemente usate nei calcolatori che abitualmente vengono usati, ma che sono molto più vicine,
se non le stesse, di quelle usate per la crittografia. Normalmente nei calcolatori è possibile lavorare con numeri
in virgola mobile o interi, di dimensione stabilita dalla struttura della macchina (32 o 64 bit), la crittografia,
invece può lavorare solo con numeri interi e con dimensioni molto superiori (800 bit e oltre) e questo richiede
strutture dati costruite ad hoc. Ci sono sostanziali differenze tra un algoritmo che lavora su dati in chiaro e
lo stesso che lavora su dati cifrati. Il primo ostacolo che si incontra è proprio la struttura algebrica del nuovo
dominio in cui si lavora, quindi ad esempio l’impossibiltà di lavorare direttamente con numeri in virgola
mobile, ma essere costretti a lavorare su anelli di lunghezza finita con numeri interi che sono tali per via
del fatto che generalmente i crittosistemi lavorano su classi di residui modulo n. Questo problema porta in
primo piano la questione della quantizzazione dell’informazione. Si desidera costruire delle rappresentazioni
dei numeri che siano controllabili rispetto all’errore che si compie quantizzando l’informazione. I dati, che
in generale possono essere numeri reali e quindi rappresentabili in virgola mobile, devono essere mappati,
3 Perfino
il DES risulta essere omomorfo rispetto alla negazione del dato cifrato.
2
tramite quantizzazione su numeri interi. Questo che può sembrare un problema da poco, in realtà, sta alla
base della definizione di un algoritmo che elabora dati cifrati: se non è possibile definire una corrispondenza
tra le rappresentazioni dei due domini, non è possibile effettuare nessun tipo di computazione, inoltre se non
è possibile controllare l’errore compiuto tramite la quantizzazione non è possibile garantire che il risultato
che si ottiene si significativo dal punto di vista della rappresentazione numerica. Inoltre la quantizzazione
potrebbe richiedere di dover modificare il parametro di sicurezza del crittosistema (la lunghezza in bit del
modulo), in modo da poter garantire un errore minore di un certo valore desiderato. Quindi la realizzazione
di un’aritmetica finita e la definizione di una idonea quantizzazione, è il primo passo per la definizione di
un algoritmo che sfrutta la crittografia omomorfa. Infine è necessario valutare come cambia la complessità
computazionale di un dato algoritmo quando questo viene riprogettato per lavorare con l’informazione crittata poiché, come nel caso che verrà esaminato in questa tesi, l’omomorfismo può mappare le operazioni del
dominio in chiaro in operazioni diverse nel dominio cifrato, le quali possono avere complessità diverse.
Oggetto di questa tesi sarà lo studio e lo sviluppo degli algoritmi cifrati per la DFT e la FFT che sfruttano
le proprietà di omomorfia per realizzare la trasformata di Fourier discreta di un dato vettore di informazioni
crittate. L’intento finale sarà quello di valutare se la eFFT (encrypted FFT) è computazionalmente migliore
della eDFT (encrypted DFT) come accade nel dominio dei dati in chiaro, lo studio sarà sia teorico che
sperimentale e verrà valutato a parità di precisione. Per questo fine verrano mostrate le caratteristiche dei
crittosistemi omomorfi e specialmente del crittosistema di Paillier che è lo schema additivamente omomorfo
che verrà usato per l’implementazione degli algoritmi (Capitolo 2). Verranno esaminate in dettaglio le versioni
quantizzate degli algoritmi per il calcolo della trasformata di Fourier DFT e FFT, con particolare attenzione
al calcolo dell’errore finale sui coefficienti trasformati. I risultati ottenuti per la valutazione dell’errore saranno
poi utilizzati per definire i valori dei quantizzatori per i dati. Una volta definiti i quantizzatori sarà possibile
esaminare come deve cambiare la grandezza dell’anello Zn affinchè si possa garantire una predeterminata
precisione dei coefficienti. La parte finale del (Capitolo 3) verrà, infine, dedicata a determinare le complessità
computazionali degli algoritimi cifrati. Il (Capitolo 4) sarà completamente dedicato alla parte implementativa
in linguaggio C++, quindi alla definizioni delle classi e strutture utili per lo sviluppo degli algoritmi ed alla
c 4 per la gestione dei grandi numeri. Infine nel (Capitolo 5), saranno mostrati i risultati
libreria MIRACL°
di alcuni test usati per valutare se le complessità teoriche calcolate nel Capitolo 3, rispecchiano quelle reali.
References
[BGN05]
D. Boneh, E.J. Goh, and K. Nissim. Evaluating 2-DNF formulas on ciphertexts. Proceedings of Theory
of Cryptography Conference, pages 325–342, 2005.
[FM91]
J. Feigenbaum and M. Merritt. Open questions, talk abstracts, and summary of discussion. DIMACS
Series in Discrete Mathematics and Theoretical Computer Science, 2:1–45, 1991.
[LAFH04] H. Lee, J. Alves-Foos, and S. Harrison. The use of encrypted functions for mobile agent security. In
Hawaii International Conference on System Sciences, 2004.
[Pai99]
P. Paillier. Public-key cryptosystems based on composite degree residuosity classes. In Proceedings of
EUROCRYPT 1999, pages 223–238, 1999.
[RAD78]
R. Rivest, L. Adelman, and M. Dertouzos. On data banks and privacy homomorphism. Foundation of
Secure Computation, pages 169–177, 1978.
[RSA78]
R. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2):120–126, 1978.
[Wik07]
Wikipedia.
Malleability (cryptography) — wikipedia,
http://en.wikipedia.org/wiki/Malleability(cryptography).
[Yao82]
A. C. Yao. Protocols for secure computations. In IEEE Symp. on Foundation of Computer Science, pages
160–164, 1982.
4 Multiprecision
the
Integer and Rational Arithmetic C/C++ Library by Shamus Software Ltd.
3
free
encyclopedia,
2007.