You are on page 1of 59

Indice

Introduzione 5
1 Reticoli 8
1.1 Preliminari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.1 Complessit`a computazionale di un algoritmo . . . . . . . . . . 9
1.2 Reticoli: denizioni e propriet`a . . . . . . . . . . . . . . . . . . . . . 11
1.3 Reticoli q-ari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Problemi sui reticoli . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.1 Una stima della lunghezza . . . . . . . . . . . . . . . . . . . . 20
1.5 Reticoli e quantum computation . . . . . . . . . . . . . . . . . . . . . 21
2 Sistemi crittograci sui reticoli 24
2.1 Parametri caratterizzanti di un sistema crittograco . . . . . . . . . . 24
2.2 Principali sistemi crittograci sui reticoli . . . . . . . . . . . . . . . . 27
2.2.1 Hash function . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.2 Crittograa a chiave pubblica . . . . . . . . . . . . . . . . . . 28
2.2.3 Firma digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3 Importanza dei sistemi crittograci sui reticoli . . . . . . . . . . . . . 31
3 Il sistema crittograco di Regev 33
3.1 Preliminari sulle distribuzioni di probabilit` a . . . . . . . . . . . . . . 33
3.2 Learning with error problem . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 Algoritmo di crittograa basato su LWE . . . . . . . . . . . . . . . . 37
3.4 Ecienza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5 Errori di decifrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6 Sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1
4 Varianti dellalgoritmo di Regev 44
4.1 Crittosistema su ring-LWE . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1 Ring-LWE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.2 Algoritmo crittograco . . . . . . . . . . . . . . . . . . . . . . 45
4.1.3 Ecienza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.4 Correttezza e sicurezza . . . . . . . . . . . . . . . . . . . . . . 47
4.2 Crittosistema di Lindner . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.1 Distribuzione gaussiana discreta . . . . . . . . . . . . . . . . . 47
4.2.2 Algoritmo crittograco . . . . . . . . . . . . . . . . . . . . . . 48
4.2.3 Errori di decifrazione e sicurezza . . . . . . . . . . . . . . . . . 50
5 Implementazione e sperimentazione del sistema 53
5.1 Implementazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2
Introduzione
Linvenzione, negli anni 70, della crittograa a chiave pubblica e in particolare
dellRSA ha reso possibile lo scambio di dati in maniera semplice, veloce e sicuro.
Con lavvento di internet tali sistemi hanno consentito di fare acquisti online, gestire
conti corrente dal computer e inviare messaggi in sicurezza. La crittograa `e quindi
diventata fondamentale nella vita di tutti i giorni. Questo ha dato un grande impulso
alla ricerca scientica, spingendola a costruire nuove forme di crittograa a chiave
pubblica sempre pi` u ecienti e sicure.
Lo scopo di questa tesi `e lo studio dei sistemi crittograci a chiave pubblica
che basano la loro sicurezza sul problema learning with error (LWE). Al termine
dellanalisi teorica viene inoltre proposta unimplementazione pratica di una recente
versione di un sistema crittograco LWE (cfr. [LiP11] e [Lin10, cap. 6]), dalla quale
sono stati tratti dati sperimentali che, confrontati con i risultati teorici, suggeriscono
la possibilit`a di aumentare il livello di sicurezza, mantenendo inalterato il grado di
correttezza della decrittazione.
Molto grossolanamente risolvere il problema LWE consiste nellessere in grado
di risolvere un sistema lineare di m equazioni in n incognite con errore: Ax +
e = b, dove lerrore e rispetta una certa distribuzione di probabilit` a. Regev
ha costruito in [Reg05] il primo sistema crittograco basato sul problema LWE:
rompere il sistema equivale a risolvere il problema LWE. Il sistema crittograco di
Regev fa parte di una classe di sistemi crittograci costruiti utilizzando le strutture
reticolari. Ricordiamo che un reticolo in R
n
`e un sottogruppo additivo discreto
di R
n
costituito dalle combinazioni lineari intere di una base di R
n
. Nellarticolo
sopracitato Regev dimostra che risolvere il problema LWE implica lesistenza di un
algoritmo quantistico che permette di risolvere, con una certa approssimazione, il
problema del vettore pi` u corto (SVP) in un reticolo di dimensione n.
Daltra parte il problema del vettore pi` u corto, insieme ad altri problemi sui
reticoli, `e un problema computazionalmente dicile nella sua versione esatta e si
ritiene che sia computazionalmente dicile anche nella sua versione approssimata
3
(cfr. Cap 1), in particolare si congettura che non sia possibile creare un algoritmo
che risolva, in tempo che dipende polinomialmente dalla grandezza dellinput, la
versione approssimata del problema SVP [MRe08, GNg08].
Una seconda congettura, pi` u debole della precedente, aerma che non sia pos-
sibile creare un algoritmo quantistico che risolva, in un tempo che dipenda polino-
mialmente dalla grandezza dellinput, la versione approssimata del problema SVP
[Reg09, MRe08].
Se la seconda congettura fosse vera, il risultato di Regev implicherebbe la sicu-
rezza del sistema crittograco LWE anche in presenza di computer quantistici.
Un risultato pi` u forte, cio`e basato sulla prima congettura, pi` u solida della se-
conda, si potrebbe ottenere dimostrando che risolvere il problema LWE implica
lesistenza di un algoritmo classico per il problema SVP (non esatto ma sempre con
opportuna approssimazione).
Tale risultato `e stato dimostrato da Peikert in [Pei09], ma con un costo piuttosto
alto sulla scelta dei parametri. Il problema di passare da una riduzione quantistica
a una riduzione classica del problema SVP approssimato al problema LWE `e quindi
ancora in parte aperto.
Quanto detto nora non `e una dimostrazione certa della sicurezza dei sistemi
crittograci basati sul problema LWE, ne rispetto ai computer attuali, ne rispetto
ai computer quantistici. Daltra parte nemmeno lRSA, il sistema crittograco di
pi` u larga diusione, ha una dimostrazione certa di sicurezza. LRSA infatti si basa
sul fatto che `e dicile fattorizzare un numero intero molto grande, ma nessuno ha
dimostrato che in futuro non possa essere sviluppato un algoritmo eciente per la
fattorizzazione. Inoltre in [Sho94] Shor dimostra che esiste un algoritmo quantistico
che fattorizza, in tempo polinomiale, i numeri interi, mostrando quindi la debolezza
dellRSA in un possibile futuro in cui i computer quantistici vengano eettivamente
realizzati. Vari adattamenti dellalgoritmo di Shor permettono di rompere la mag-
gior parte dei sistemi crittograci esistenti; da quando Shor ha presentato il suo
lavoro si `e quindi sentita la necessit` a di cercare nuove forme crittograche che resi-
stano ad attacchi quantistici. Come abbiamo visto sopra quelle che fondano la loro
sicurezza sul problema LWE sono, in questo senso, fortemente accreditate.
I sistemi crittograci basati sul problema LWE sono sistemi probabilistici, per la
natura di LWE stesso. Questo ha delle conseguenze: laspetto positivo, legato alla
sicurezza, `e che, cifrando due volte, con la stessa chiave, lo stesso messaggio, si otter-
ranno due messaggi criptati diversi. Laspetto negativo, invece, `e che la componente
probabilistica comporta errori di decifrazione, che per`o, impostando correttamente
i parametri del sistema, possono essere ridotti sotto l1%; se introduciamo nel mes-
4
saggio, prima di cifrarlo, un codice correttivo, possiamo abbassare la frequenza degli
errori no a renderla trascurabile.
Attualmente, un problema fondamentale da risolvere per rendere i sistemi critto-
graci su LWE utilizzabili praticamente `e la diminuzione della grandezza delle chiavi
e del rapporto tra testo cifrato e testo in chiaro. Da quando Regev ha presentato il
suo primo sistema crittograco [Reg05], sono stati apportati alcuni miglioramenti,
ma questo non `e ancora suciente.
Gli studi su queste nuove forme crittograche sono rimasti, nora, puramente
teorici, le implementazioni pratiche che ne valutino leettivo funzionamento e lef-
cienza sono pochissime. Unimplementazione della versione originale del sistema
crittograco su LWE viene utilizzata in [Fre10], per un confronto con il sistema di
Paillier. Adattando limplementazione in [Fre10] abbiamo costruito unimplemen-
tazione, in Python 2.7, di una recente versione di un sistema crittograco su LWE,
[LiP11], [Lin10, cap. 6].
`
E stata scelta questa versione perch`e presenta dei migliora-
menti importanti nellecienza del sistema: la grandezza delle chiavi ridotta `e una
dimostrazione di sicurezza pi` u forte delle altre versioni.
Concludiamo menzionando possibili sviluppi del nostro lavoro: innanzitutto sa-
rebbe interessante eettuare unanalisi sperimentale pi` u approfondita dei vari si-
stemi crittograci, per dare stime migliori sulle varie caratteristiche. Una variante
importante da implementare `e quella che si basa sul ring-LWE [LPR10, Reg10], che
ha migliorato molto lecienza in termini di spazio. Sarebbe inoltre interessante
confrontare questi sistemi con i sistemi crittograci utilizzati attualmente, in parti-
colar modo con lRSA, per vericare se possano eettivamente proporsi come validi
sostituti nellutilizzazione pratica.
5
Capitolo 1
Reticoli
In questo primo capitolo introduciamo innanzitutto la nozione di reticolo. I re-
ticoli sono una delle strutture matematiche pi` u pervasive. La teoria dei reticoli
ha avuto origine, parallelamente, nella teoria dei numeri e nella cristallograa e
la ritroviamo attualmente in numerose altre aree di ricerca, dalla teoria dei grup-
pi alla geometria algebrica, allanalisi numerica, oltre naturalmente ai problemi di
geometria combinatoria che coinvolgono direttamente la nozione di reticolo e che
sono solitamente correlati ai corpi convessi. Citiamo ad esempio il problema dello
sphere packing, a sua volta strettamente correlato con la teoria dei codici e la crit-
tograa. ([GGL95],[CSB91],[Cas97]). Esistono diversi problemi sui reticoli che sono
considerati computazionalmente dicili, questo ha motivato lo studio di sistemi crit-
tograci, che chiameremo sistemi reticolari, la cui sicurezza si basa sulla dicolt` a di
risoluzione di tali problemi: il lavoro fondamentale che ha dato origine a tali sistemi
crittograci `e larticolo di Ajtai [Ajt96] del 1996. Come spiegheremo pi` u in dettaglio
nel prossimo capitolo, Ajtai crea una famiglia di funzioni hash, collision-resistant,
che basano la loro sicurezza su alcuni problemi sui reticoli. Ajtai mostra che la
capacit` a di trovare una collisione nel caso medio equivale a risolvere tali problemi
nel caso peggiore. Questi, come vedremo nel presente capitolo, sono supposti essere
computazionalmente dicili.
In questo capitolo ci limiteremo a presentare solo la parte propedeutica alla
comprensione dei vari sistemi crittograci proposti nel testo. La prima sezione
contiene la denizione di reticolo e la descrizione delle sue propriet`a, in seguito
troviamo una sezione dedicata ai cosiddetti reticoli q-ari e una sezione dedicata
ai problemi sui reticoli di interesse per la tesi. Inne, nellultima sezione, dopo
una breve premessa sui computer quantistici, si enuncia la congettura che ipotizza
la non esistenza, non solo di algoritmi classici, ma anche di algoritmi quantistici,
6
che risolvano i problemi sui reticoli sopra considerati, [MRe08].
`
E sulla base di
tale congettura che i sistemi crittograci reticolari vengono ritenuti potenzialmente
sicuri, anche in caso venissero realizzati i computer quantistici.
1.1 Preliminari
1.1.1 Complessit`a computazionale di un algoritmo
Si richiamano sinteticamente alcuni preliminari sullanalisi della complessit` a compu-
tazionale di un algoritmo, [CLR09]. La valutazione della complessit` a di un algoritmo
si basa su due aspetti: il tempo di esecuzione e lo spazio in memoria occupato dallal-
goritmo. Unanalisi quantitativa del tempo di esecuzione non `e realistica, in quanto
dipende da molti parametri estranei allalgoritmo in se: il linguaggio di programma-
zione usato, la velocit`a del processore usato e la grandezza del suo registro. Questa
stima varierebbe quindi a seconda del computer usato e non sarebbe una stima asso-
luta. Per calcolare la complessit` a di un algoritmo si fa unanalisi qualitativa, usando
come parametri solo la dimensione del suo input n.
Con algoritmo classico o semplicemente algoritmo intendiamo nel seguito un
algoritmo che pu` o essere implementato utilizzando un computer (attuale, non quan-
tistico).
Diciamo che un problema A si riduce a un problema B se esiste un algoritmo
polinomiale H con la seguente propriet` a: se X `e una soluzione di B allora H(X) `e
una soluzione di A. Quindi un algoritmo che risolve B pu` o essere tradotto, in tempo
polinomiale, in un algoritmo che risolve A.
Avere una complessit`a computazionale di O(n
2
) implica che raddoppiando la
dimensione dellinput, il tempo di esecuzione quadruplica e il mio algoritmo, a parit` a
di grandezza di input, impiegher` a un tempo maggiore di uno di complessit`a O(log n).
Il tempo di esecuzione di un algoritmo oltre che dipendere dalla grandezza del-
linput dipende anche dai dati in ingresso e pu` o variare, a volte drasticamente, in
funzione di questi, anche a parit`a di dimensione dellinput.
`
E per questo che si
deniscono tre casi.
Analisi nel caso migliore: si studia la complessit` a dellalgoritmo quando in
ingresso si hanno i migliori dati possibili, ovvero linput che minimizza il tempo di
esecuzione. Per esempio, per un algoritmo di ricerca classico, linput migliore si ha
quando il valore cercato `e il primo che si controlla. Questo metodo non `e molto
utilizzato, dato che analizza solo casi isolati che hanno una probabilit`a di vericarsi
molto bassa quando si ha a che fare con una distribuzione uniforme dei dati.
7
Analisi nel caso peggiore: lanalisi `e eettuata utilizzando in ingresso i peg-
giori dati possibili, ovvero gli input che massimizzano il tempo di esecuzione. Tale
analisi ci d` a un limite superiore della stima generale, in quanto per un qualsiasi
input sappiamo per certo che il tempo di esecuzione non superer`a quello del caso
peggiore.
Analisi nel caso medio: se `e nota la distribuzione di probabilit` a secondo cui
si presentano gli input, lanalisi nel caso medio `e eettuata utilizzando in ingresso i
dati che si presentano con maggior probabilit`a.
Un caso caratteristico `e quello del quicksort dove nel caso peggiore, ovvero quan-
do in input si ha il vettore gi` a ordinato o ordinato nel verso opposto, la complessit`a `e
O(n
2
), mentre nel caso medio, cio`e con un input random, la complessit`a `e O(nlog n).
Supponiamo ora, di avere due problemi, A e B. Si dice che A, nel caso medio,
`e computazionalmente dicile quanto B, nel caso peggiore, se esiste un algoritmo
di riduzione, che esegue in tempo al pi` u polinomiale, dal caso medio di A, al caso
peggiore di B. Cio`e dato un algoritmo che risolve A nel caso medio, con complessit` a
C, mediante lalgoritmo di riduzione, possiamo trovare un algoritmo che risolve B nel
caso peggiore con complessit` a C. Questa considerazione `e molto importante quando
si cerca di calcolare la complessit`a di un problema e non disponiamo di strumenti
sucienti per farlo.
Per quanto riguarda lanalisi delloccupazione di spazio di un algoritmo, lanalisi `e
equivalente a quella per la complessit`a temporale. Le due analisi procedono parallele
e per ognuna delle due si valutano caso peggiore e caso medio se possibile.
Un problema A si dice di complessit`a computazionale P se esiste un algoritmo
polinomiale che risolve A.
Un problema A si dice di complessit`a computazionale NP se esiste un algoritmo
polinomiale che verica se X `e una soluzione di A e se esiste un algoritmo che che
risolve A, in tempo al pi` u esponenziale.
Un problema A si dice di complessit`a computazionale NP-hard se per ogni pro-
blema B in NP si ha che B si riduce ad A. Quindi un problema NP-hard `e
computazionalmente dicile almeno quanto ogni problema NP.
Dora in avanti diremo computazionalmene dicile per indicare un problema
NP-hard.
Un problema Asi dice NP completo se `e NP e NP-hard. Ci sono alcuni problemi
per i quali `e possibile dimostrare che sono NP-completi; un problema classico di
questo tipo `e il problema SAT [Coo71].
In generale, per dimostrare che un problema A `e NP-hard si dimostra che esiste
un problema NP-completo B tale che B si riduce ad A. Quindi A `e dicile almeno
8
quanto il problema NP completo B. Notiamo che i problemi NP-hard non sono
necessariamente NP.
Luguaglianza P = NP `e un fondamentale problema aperto nella teoria della
complessit` a computazionale.
1.2 Reticoli: denizioni e propriet`a
Un reticolo in R
n
`e denito come linsieme di tutte le combinazioni lineari intere di
n vettori linermente indipendenti b
1
,...,b
n
in R
n
/(b
1
, ..., b
n
) =
_
n

i=1
x
i
b
i
: x
i
Z per 1 i n
_
Linsieme dei vettori b
1
, ..., b
n
costituisce una base del reticolo. Una base pu` o
essere rappresentata da una matrice B =
_
b
1
, ..., b
n

R
nn
con i vettori della base
come colonne. Il numero n `e il rango del reticolo, che indichiamo con rank(/) = n.
Figura 1.1: Esempio di un reticolo con due diverse basi
Lesempio pi` u semplice di reticolo `e il reticolo degli interi Z
n
R
n
. Notiamo
che un reticolo ammette diverse basi. Ad esempio 1 e 1 sono basi di Z,
(1, 0), (0, 1) e (1, 1), (1, 1) sono basi di Z
2
. In generale linsieme delle basi di
un reticolo `e parametrizzato dal gruppo GL(n, Z) delle matrici unimodulari, ossia
con determinante 1, in Z
nn
. Pi` u precisamente si ha:
Proposizione 1.2.1. Siano B, C R
nn
. Allora /(B) = /(C) se e solo se esiste
una matrice U GL(nZ) tale che C = BU.
9
Osserviamo che un reticolo `e un sottogruppo additivo di R
n
discreto, ossia per
ogni elemento x L esiste un aperto U
x
tale che U
x
/ = x. Questo si mostra
facilmente: si consideri una base b
1
, ..., b
n
di /, `e denito univocamente un iso-
morsmo f : R
n
R
n
che manda la base canonica di R
n
nella base b
1
, ..., b
n
.
In particolare f(Z
n
) = /. Poich`e Z
n
`e discreto e f `e un isomorsmo, quindi in
particolare un omeomorsmo di R
n
, si ha che / `e discreto. Si noti che `e essenziale
il fatto che / sia generato da una base da R. Il sottogruppo Z +

2Z ad esempio `e
denso in R.
Riportiamo qui di seguito alcuni enunciati tralasciando le dimostrazioni, date da
semplici passaggi algebrici.
Denizione 1.1. Se / = /(B) `e un reticolo, si denisce
1. determinante det(/) := [det(B)[.
2. densit`a den(/) = 1/det(/)
3. duale /

:= y R
n
[ x / : x, y Z.
Dalla precedente proposizione, si consta che il determinante e la densit` a sono
invarianti del reticolo, ossia non dipendono dalla scelta di una base B.
Proposizione 1.2.2 (Duale di un reticolo). Sia / = /(B) R
n
un reticolo. Allora
1. /

= /(B
1
)
T
2. det(/

) := 1/det(/).
Introduciamo di seguito un algoritmo classico che, partendo da un insieme di
m generatori di un reticolo, produce una base triangolare del reticolo ([Her51] e,
per lapplicazione ai reticoli [Cas97][pag. 9-13]). Lalgoritmo `e sostanzialmente una
variazione della riduzione di Gauss, che preserva i coecienti interi e opera sulle
colonne della matrice, in modo quindi da non modicarne limmagine. Quindi se le
colonne sono un insieme di generatori di un reticolo, le colonne della matrice ridotta
generano lo stesso reticolo.
10
Algoritmo 0 Algoritmo di riduzione della base
Input: A Z
nm
, con n m e rank(A) = n.
Output: B Z
nn
, con /(B) = /(A) e rank(B) = n.
/*Sia A
j
la j-esima colonna e a
ij
la sua componente i-esima */
1. for j = 1, ..., n
2. g
j
:= gcd(a
jj
, a
jj+1
, ..., a
jm
)
3. scegliere
j
j
, ...,
m
j
Z con

m
l=j

l
j
a
jl
= g
j
4. A
j
:=

m
l=j

l
j
A
l
5. for k = j + 1, ...m
6. A
k
:= A
k

a
jk
g
j
A
j
7. return [A
1
, ..., A
n
]
Si noti che rank(A) = n garantisce che, al passo 2, (a
jj
, a
jj+1
, ..., a
jm
) non sono
tutti nulli. Per quanto riguarda il passo 3, i coecienti
l
j
possono essere calcolati
tramite lalgoritmo euclideo esteso.
In particolare notiamo che m non `e una grandezza intrinseca del reticolo. Pren-
diamo A, base di un reticolo, di dimensioni n m e n < m con rank(A) = n.
Abbiamo quindi m generatori per il reticolo, ma m `e maggiore del rango e quindi
abbiamo m n generatori ridondanti. Lalgoritmo di riduzione ci assicura che da
un insieme di generatori posso sempre ricavare una base triangolare del reticolo.
Quindi il parametro m ha un peso ininuente nello studio di un reticolo. Questa
constatazione ci sar` a utile in seguito quando andremo ad analizzare i sistemi crit-
tograci. Troveremo utile questo algoritmo poco pi` u avanti, nella dimostrazione di
un importante teorema sui reticoli.
Enunciamo inne un lemma che ci servir`a nel prossimo paragrafo.
Lemma 1.2.1 ([HWa11], Proposizione 1.9). Sia v Z
n
e B = [b
1
, ..., b
n
] una base
di un reticolo. Linsieme
Z
v
:=
_
n

i=1

i
b
i
[
i
R con v
i

i
< v
i
+ 1
_
soddisfa luguaglianza vol(Z
v
) =det(B) e R
n
=

v
Z
v
.
11
Dimostrazione. Per ogni punto del reticolo Bv, linsieme Z
v
`e il parallelotopo n-
dimensionale con un vertice in Bv e determinato dai vettori della base b
1
, ..., b
n
.
Il parallelotopo Z
0
si dice parallelotopo fondamentale del reticolo. Lo spazio R
n
`e
ricoperto dai parallelotopi, in ognuno vi `e un solo punto del reticolo. In particolare
possiamo scrivere R
n
=

v
Z
v
. Inoltre vol(Z
v
) = vol(Z
0
) = [det(B)[ per ogni v
(per lultima uguaglianza cfr. ad esempio [Rud87]).
Il lemma 1.2.1 pu` o essere formulata anche dicendo che linverso del determinante
di un reticolo `e uguale alla sua densit` a.
1.3 Reticoli q-ari
Denizione 1.2. Sia q Z
+
. Un reticolo / di rango n `e detto q-ario se qZ
n

/ Z
n
I reticoli q-ari hanno avuto molta fortuna in crittograa grazie al fatto che la
maggior parte dei problemi che li conivolgono sono dicili nel caso medio.
Proposizione 1.3.1. Sia / = /(B) un reticolo intero, i.e. B Z
nn
, e assumiamo
che q Z
+
sia un multiplo intero di det(/). Allora / `e un reticolo q-ario.
Corollario 1.3.1. Tutti i reticoli razionali, ossia con B Q
nn
, sono q-ari per
qualche q N.
Denizione 1.3. Sia n m e sia A Z
nm
con rank(A) = n. Per q Z
+
, si
denisce

q
(A) :=
_
y Z
m
[ s Z
n
: y A
T
s (mod q)
_

q
(A) := y Z
m
[ Ay 0 (mod q)
Proposizione 1.3.2 ([MRe08]).
q
(A) `e un reticolo q-ario di rango m. Inoltre

q
(A) = q

q
(A)

Dimostrazione. Sia A

=
_
A
qI
m
_
Z
(n+m)m
. Notiamo innanzitutto che

q
(A) = I
m
(A

)
T
=
_
A
qI
m
_
T
Z
m+n
12
Se applichiamo lalgoritmo di riduzione della base, visto precedentemente, ad A

,
otteniamo come output una matrice B Z
mm
di rango massimo tale che
q
(A) =
B Z
m
= /(B) e questo `e un reticolo q-ario per denizione. Abbiamo quindi provato
che
q
(A) `e un reticolo q-ario; per concludere la dimostrazione vogliamo far vedere
che
q

(A = q/(B)

. Per vedere questo faremo uso del teorema 1.2.2 e della


denizione 1.1.
Per dimostrare luguaglianza, procederemo in due fasi, facendo vedere la doppia
inclusione:
q

(A) q/(B)

e
q

(A) q/(B)

.
Partiamo dalla prima inclusione, vogliamo provare che se un elemento appartiene
a q/(B)

allora appartiene anche a


q

(A). Sia y q/

, ovvero y = qy, con


y R
m
tale che x / : x, y Z, cio`e y /

dalla denizione 1.1. Se entrambi


y e Ay fossero interi, avremmo concluso, in quanto A y = qAy 0 (mod q) e
quindi y
q

(A). Daltra parte dalla denizione di


q
(A) possiamo scrivere
x
q
(A) come x = A
T
s + qa con s Z
n
e a Z
m
. Ponendo s = 0 e a = e
i
,
con e
i
i-esima componente della base canonica di Z
n
, abbiamo x = qe
i
. Allora

A
T
e
i
, y
_
= e
i
, Ay Z, dato che y /

. Quindi Ay `e un intero per ogni


y. Scegliendo invece x = A
T
e
i
, possiamo vedere che anche y `e un intero infatti,
qe
i
, y = e
i
, y Z.
Passiamo ora alla seconda inclusione e facciamo vedere che se un vettore ap-
partiene al reticolo
q

(A) allora appartiene anche a q/(B)

. Sia y Z
m
tale che
A y 0 (mod q). In altre parole, esiste z Z
n
con A y = qz. Si denisce y := q
1
y,
y /(B)

. Rimane da mostrare che x, y Z per ogni x


q
(A). Quindi sia
x
q
(A) e scriviamo come prima x = A
T
s + qa. Allora
x, y =

A
T
s + qa, q
1
y
_
=

A
T
s, q
1
y
_
+a, y
= q
1
s, A y +a, y = s, z +a, y Z.
Denizione 1.4. Sia
q
: Z Z
q
lomomorsmo di anelli che manda ogni intero
nella sua classe di resto modulo q. Per le matrici A = (a
ij
) Z
nm
scriviamo

q
(A) = (
q
(a
ij
) Z
nm
.
Proposizione 1.3.3 ([MRe08]). Sia A Z
nm
di rango massimo n e sia anche

q
(A) di rango massimo.
Allora,
det(

q
(A)) = q
n
,
q
(A) = q
mn
.
13
Dimostrazione. Notiamo che dim ker(
q
(A)) = m n perci` o il numero di vettori
nel nucleo `e #ker(
q
(A)) = q
mn
per denizione. Chiamiamo Q
k
:= [0, kq[
m
il cubo
con il lato di lunghezza kq, allora V
k
:= Q
k

(A) contiene esattamente k


m
q
mn
elementi. Sia B Z
mm
tale che
q

(A) = /(B). Possiamo quindi scrivere ognuno


di questi k
m
q
mn
elementi come Bv
j
con v
j
Z
m
e j = 1, . . . , k
m
q
mn
. Denotiamo
con
Z
k
:=
k
m
q
mn
_
j=1
q
mn
Z
v
j
.
Dove i parallelotopi Z
v
j
sono deniti in Lemma 1.2.1 e hanno in comune al pi` u delle
facce. Il volume di Z
k
quindi `e dato da
vol(Z
k
) = [det(B)[k
m
q
mn
.
Si osservi ora che Z
k
`e contenuto in un cubo di lato kq + s e contiene un cubo di
lato kq t, con s, t > 0 che dipendono da Z
0
e non da k. Quindi avremo
(kq t)
n
vol(Z
k
) (kq + s)
n
.
Poich`e vol(Q
k
) = (qk)
m
, si ottiene
k
n
q
n
(k
n
q
n
(kq t)
n
) vol(Z
k
) k
n
q
n
+ ((kq + s)
n
k
n
q
n
)
che implica
k
n
q
n

h=1
nk
nh
q
nh
(t)
h
vol(Z
k
) k
n
q
n
+

h=1
nk
nh
q
nh
(s)
h
.
Otteniamo
1

h=1
nk
nh
q
nh
(t)
h
k
n
q
n

vol(Z
k
)
vol(Q
k
)
1 +

h=1
nk
nh
q
nh
(s)
h
k
n
q
n
.
Quindi il limite per k che tende a + di vol(Z
k
)/vol(Q
k
) = 1.
Daltra parte il quoziente
vol(Z
k
)
vol(Q
k
)
=
[det(B)[k
m
q
mn
(qk)
m
14
non dipende da k, quindi vol(Z
k
)/vol(Q
k
) = 1 per ogni k.
det(
q

))
q
n
=
[det(B)[k
m
q
mn
(qk)
m
=
vol(Z
k
)
vol(Q
k
non dipende da k e deve perci` o essere uguale a 1. Segue quindi che det(
q

(A)) =
q
n
. Si ha poi

q
(A) = q/(B)

= q/(B
T
) = /(qI
m
B
T
).
Calcolando il determinante otteniamo il risultato voluto.
1.4 Problemi sui reticoli
Presentiamo di seguito alcuni tra i pi` u importanti problemi sui reticoli, dando una
descrizione della loro complessit` a computazionale. Tali problemi sono alla base delle
primitive crittograche descritte nel capitolo 3.
Shortest Vector Problem (SVP

). Trovare un vettore v /(B) 0 tale che


|v| min
wL(B),w=0
|w|
Con costante.
Figura 1.2: Shortest vector problem
Closest Vector Problem (CVP

). Dato t R
n
, trovare un punto del reticolo
v /(B) tale che
|v t| min
wL(B)
|wt|
15
Figura 1.3: Closest vector problem
Shortest Indipendent Vector Problem (SIVP

). Data una base per un reticolo


B Z
nn
, trovare n vettori del reticolo linearmente indipendenti S =
_
s
1
, ..., s
n

(s
i
/(B) i) che minimizzino la quantit`a |S| = max
i
|s
i
|. Questo problema pu` o
essere descritto in maniera pi` u rigorosa nel seguente modo: trovare U GL
n
(Z)
con
|BU| min
CGL
n
(Z)
|BV|
La costante viene introdotta perch`e usualmente si calcolano delle approssimazioni
dei vari problemi. Per esempio nel caso SVP lobbiettivo `e trovare un vettore la cui
norma sia al massimo volte quella del vettore pi` u corto.
Notiamo che, poich`e un reticolo L `e discreto in R
n
, i problemi esatti SVP
1
e
CVP
1
ammettono entrambi una soluzione. Infatti L discreto implica, per motivi
topologici, che lintersezione di una palla di R
n
con il reticolo `e sempre costituita
da un numero nito di punti. Inoltre `e interessante notare che i problemi SVP
1
e
CVP
1
, sono il primo la versione omogenea del secondo. Infatti il primo ci chiede
di trovare il punto del reticolo pi` u vicino allo zero, mentre il secondo, il punto del
reticolo pi` u vicino a un punto dato non appartenente al reticolo. I reticoli q-ari,
con q primo, possono essere visti come codici per canali a banda limitata. Dato
un codice (, decodicare una parola ricevuta con quella che realizza la minima
distanza da (, equivale a determinare una soluzione del problema CVP
1
. Esistono
e sono di fondamentale importanza algoritmi per la risoluzione del problema CVP
1
per particolari reticoli. Per una trattazione esaustiva della relazione codici e reticoli
cfr. [CSB91] e la relativa bibliograa.
Tra i problemi pi` u importanti relativi ai reticoli q-ari vi `e il seguente:
Short Integer Solution (SIS). Dati n, m, q, A Z
q
nm
e una norma compresa
tra 1 < q, trovare v

q
(A) con 0 < |v|
2
.
16
I principali metodi di risoluzione di questi problemi si basano sulla cosidetta
riduzione di una base oppure su metodi combinatori. Lorigine del metodo della
riduzione della base si deve al fondamentale lavoro di Lenstra, Lenstra e Lovaz
[LLL82]. In questo lavoro gli autori, combinando lalgoritmo di Berlekamp [Ber71] e
il procedimento di ortogonalizzazione di Gram-Schmidt, costruiscono un algoritmo
per fattorizzare un polinomio a coecienti razionali in fattori irriducibili, in un
tempo, misurato in bits, che dipende polinomialmente dal grado del polinomio.
Lalgoritmo intermedio utilizzato in questo lavoro `e lalgoritmo di riduzione della
base: data una base B =
_
b
1
, ..., b
n

R
nn
di un reticolo / R
n
, lalgoritmo LLL
produce una base LLL-ridotta per il reticolo, con vettori corti e quasi ortogonali, in
tempo O(n
6
log
3
B
max
) dove B
max
= max
0in
|b
i
|.
Questo algoritmo non era stato pensato per risolvere i problemi sui reticoli, ma
in [LSc92], Lovaz e Scarf dimostrano il seguente teorema
Denizione 1.5. Sia / un reticolo. Si indica con
1
(/) := min
vL
|v| la lunghezza
del vettore pi` u corto in /.
Teorema 1.4.1 ([LSc92], Teorema 2). Sia b
1
, ..., b
n
una base ridotta secondo lal-
goritmo LLL. Allora

1
[b
1
[
_
1
2

_
n1
con 0 < <
1
2
.
Abbiamo quindi un algoritmo per calcolare il vettore pi` u corto di un reticolo con
unapprossimazione di
_
1
2

_
n1
.
In [GMS99] viene dimostrato che risolvere CV P

`e almeno dicile quanto risol-


vere SV P

e che ogni algoritmo che risolve CV P

pu` o essere facilmente adattato a


risolvere SV P

con lo stesso fattore di approssimazione. Entrambi SV P

e CV P

sono NP hard nelle loro versioni esatte ( = 1) o per valori molto piccoli di
, [Mic01], perci` o `e verosimile che non esistano algoritmi ecienti che risolvano i
problemi, in una dimensione arbitraria.
Gama e Nguyen hanno testato i vari algoritmi di riduzione conosciuti sul proble-
ma SVP con varie approssimazioni, [GNg08], mostrando che al momento `e possibile
ottenere un tempo polinomiale di esecuzione o un fattore di approssimazione poli-
nomiale, ma non entrambi. Inoltre hanno mostrato che il vettore pi` u corto che pu`o
essere trovato in

q
(A) per un A Z
q
nm
random, usando il miglior algoritmo di
17
riduzione conosciuto, `e di lunghezza almeno
min
_
q, 2

4nlog q log
_
(1.1)
dove non `e pi` u piccolo di 1.01 e dipende dallalgoritmo usato; gli algoritmi pi` u
veloci hanno un 1.013, mentre algoritmi pi` u veloci forniscono un 1.012 o
addirittura 1.011.
La seguente tabella d` a una panoramica sui vari algoritmi n qui ottenuti. Il
fattore n corrisponde al rango del reticolo.
Approssimazione Tempo di escuzione Spazio
1 2
O(n)
2
O(n)
1 2
O(nlog n)
p(n)
p(n) 2
O(n)
2
O(n)
2
O(n)
p(n)
Lo studio n qui eettuato sui reticoli ha portato alla seguente congettura,
[MRe08]:
Congettura 1.4.1. Non esiste un algoritmo che esegue in tempo polinomiale che
risolva i problemi sui reticoli con un fattore di approssimazione polinomiale.
Questa congettura `e alla base delle primitive crittograche su reticoli. Durante
gli anni sono stati presentati algoritmi con un tempo di esecuzione sempre minore,
ma comunque asintoticamente esponenziale.
Anno Autori Tempo Spazio
2001 Ajtai, Kumar, Sivakumar [AKS01] 2
O(n)
2
O(n)
2004 Regev [Reg04] 2
16n
2
8n
2008 Nguyen, Vidick [NgV08] 2
5.9n
2
2.95n
2010 Pujol, Stelhe [PSt10] 2
2.46n
2
1.233n
1.4.1 Una stima della lunghezza
Abbiamo visto che la densit` a di un reticolo pu`o essere vista come linverso del suo
determinante. Quindi la densit`a di

q
(A)) `e q
n
. Questo signica che in una palla
18
chiusa di volume q
n
centrata in zero ci aspettiamo di trovare un vettore non zero del
reticolo, in particolare il pi` u corto, [MRe08]. Il volume di una palla m-dimensionale
centrata in zero di raggio r, B
r
(0) R
m
`e uguale a
vol(B
r
) =

m
r
m
(m/2 + 1)
.
Dove (n + 1) `e la funzione gamma di Eulero ed `e denita da (n + 1) = n!. A
questo punto il raggio della palla di volume q
n
pu` o essere calcolato come
r =
m
_
q
n

(m/2 + 1)

m
.
Grazie alla formula di Stirling possiamo approssimare
n!

2n(n/e)
n
.
A questo punto
m
_
(m/2 + 1) =
m
_
(m/2)!
_
m/2e dove abbiamo usato che
(m)
1/2m
1. In conclusione, si stima la lunghezza del vettore pi` u corto come

1
(

q
(A)) q
n/m

_
m
2e
.
`
E stato mostrato che questa stima `e molto buona per valori di m che non sono n`e
troppo vicini n`e troppo lontani da n.
1.5 Reticoli e quantum computation
I computer attuali basano il loro funzionamento sui transistor, il cui funzionamento
`e spiegato dalla meccanica quantistica. Tuttavia la meccanica quantistica entra in
gioco solo per spiegare come funziona lo switch di un transistor; mentre, per quanto
riguarda il funzionamento di un computer nel complesso, questultimo viene consi-
derato come se fosse soltanto meccanico. In altre parole, come se fosse governato
dalla sola meccanica classica.
Il primo a pensare ad unevoluzione del moderno calcolatore, in qualcosa di
pi` u eciente e potente, `e stato Feynman, che in [Fey82], ipotizza la realizzazione
di un computer interamente basato sulla meccanica quantistica. Le operazioni di
base per un computer quantistico avrebbero coinvolto le trasformazioni ammissibili
della meccanica quantistica. Feynman aveva proposto lo sviluppo di questo nuovo
19
tipo di calcolatore, per studiare i fenomeni della meccanica quantistica, che non sono
riproducibili con i normali computer. Studi successivi allarticolo di Feynman hanno
mostrato che un computer quantistico avrebbe permesso di risolvere anche problemi
comuni, non necessariamente di questa natura, in tempi molto pi` u brevi rispetto ad
un computer standard, grazie alla particolare struttura di un computer quantistico.
Alla base di questa tipologia di computer c`e il concetto di quantum bit o in
breve qubit; al contrario del normale bit, che pu`o assumere solo due stati 0, 1, un
qbit `e rappresentato da un vettore unitario nello spazio di Hilbert C
2
. Lo stato di
un qbit `e dato da
[ = [
0
+ [
1

dove e sono numeri complessi per cui vale [[


2
+[[
2
= 1 e linsieme [
0
[, [
1
[
costituisce una base ortonormale per lo spazio vettoriale C
2
. Un qubit pu` o assu-
mere quindi degli stati che sono combinazioni lineari della base ortonormale di C
2
.
Linsieme di tutti questi vettori `e detto spazio degli stati. Lo stato di un sistema
quantistico `e rappresentato da un vettore dello spazio degli stati, e possiamo espri-
mere levoluzione del sistema tramite un operatore lineare unitario. Il generico stato
di un sistema quantistico non pu`o essere ricavato esattamente: `e possibile soltanto
ottenere informazioni su di esso tramite la misurazione. Secondo la meccanica quan-
tistica, la misurazione causa la modica dello stato del sistema. Uno dei vantaggi
principale di un computer quantistico `e la possibilit` a di eettuare operazioni su pi` u
dati contemporaneamente, cosa che non `e possibile su un computer classico, questo
concetto `e noto con il nome di parallelismo quantistico. Il problema che viene a
crearsi, per quanto aermato in precedenza, `e che, `e possibile leggere solo uno di
questi dati, in quanto, eettuando la lettura tutti gli altri dati verranno modicati.
Passiamo ora a descrivere, in caratteri generali, un algoritmo quantistico: questa
tipologia di algoritmo esegue su un modello realistico di quantum computation; il
modello pi` u comunemente utilizzato `e il modello computazionale del circuito quanti-
stico. Nella teoria dellinformazione quantistica, un circuito quantistico `e un modello
in cui la computazione `e una sequenza di porte quantistiche, che sono trasformazio-
ni reversibili sullanalogo quantistico di un registro di n bit. Le porte quantistiche
sono i blocchi elementari che costituiscono un circuito quantistico, come le classiche
porte logiche lo sono per i convenzionali circuiti. Come gli algoritmi classici, anche
gli algoritmi quantistici sono una successione nita di istruzioni che possono essere
elaborate da un computer quantistico. Molto importante `e sottolineare il fatto che
se un algoritmo `e implementabile su un computer quantistico, allora `e implemen-
tabile su un computer classico. In particolare, i problemi che sono indecidibili per
20
un computer classico, rimangono indecidibili per un computer quantistico. Ci` o che
rende interessante questa tipologia di algoritmi `e che essi sono in grado di risolvere
alcuni problemi molto pi` u velocemente rispetto ad algoritmi classici. Il caso pi` u
eclatante `e lalgoritmo di Shor che permette di fattorizzare un numero in tempo
polinomiale, al contrario dei migliori algoritmi classici, che hanno una complessit` a
esponenziale.
`
E stato proprio questo algoritmo che ha dato la spinta maggiore ad
investire nella creazione di computer quantistici anche se attualmente siamo ancora
lontani dalla realizzazione di computer quantistici. Per approfondimenti si ramanda
a [Wal04].
Da quando nel 1994 Shor ha presentato il suo algoritmo quantistico per la fat-
torizzazione dei numeri interi [Sho94] si `e sentita lesigenza di creare nuove forme
di crittograa che resistano ad attacchi quantistici. Lalgoritmo di Shor, che gira in
tempo polinomiale, fattorizzando i numeri interi molto velocemente permetterebbe
infatti di rompere lRSA in un ragionevole lasso di tempo rendendo inutile lalgo-
ritmo crittograco maggiormente utilizzato attualmente. Lalgoritmo di Shor, con
delle opportune modiche, permetterebbe anche di rompere la crittograa su curve
ellittiche; tale crittograa, nonostante non trovi applicazioni pratiche, era conside-
rata una valida sostituta dellRSA in quanto `e molto pi` u eciente sia in termini di
tempo di computazione che in termini di spazio occupato dalle chiavi e dal testo ci-
frato. I recenti sviluppi nella creazione di computer quantistici hanno ulteriormente
accresciuta lesigenza di trovare nuove forme crittograche in grado di resistere ai
loro attacchi.
La crittograa reticolare `e una potenziale alternativa ai precedenti algoritmi
crittograci. Infatti, [Reg09, MRe08]:
Congettura 1.5.1. Non esiste un algoritmo quantistico che esegue in tempo poli-
nomiale che risolva i problemi sui reticoli con approssimazione polinomiale.
Ci sono molti fattori che supportano questa congettura; tra i principali troviamo
la struttura periodica dei reticoli; e il fatto che la trasformata di Fourier, utilizzata
con successo negli algoritmi quantistici e la tecnica di trovare una periodicit` a, usata
da Shor nel suo algoritmo, non sembrano applicabili ai problemi su i reticoli. Da
quando Shor ha scoperto il suo algoritmo sono stati fatti molti tentativi nella ricerca
di algoritmi quantistici che risolvessero i problemi su i reticoli, ma senza successo,
[Reg04].
21
Capitolo 2
Sistemi crittograci sui reticoli
In questo capitolo analizziamo le principali applicazioni che i reticoli hanno in crit-
tograa. Da quando si `e sviluppata lidea che alcuni problemi sui reticoli, ritenuti
computazionalmente dicili, potessero essere una buona base su cui costruire pri-
mitive crittograche, sono stati presentati molti possibili algoritmi e spesso ognuno
di questi algoritmi ha subito delle trasformazioni e dei miglioramenti in termini di
sicurezza ed ecienza. Tra questi algoritmi ci sono quelli con una sicurezza forte, ma
che sono inecienti in termini di spazio utilizzato e tempo necessario alla cifratura
e decifratura ed altri che, invece, sono molto ecienti, molto pi` u anche degli attuali
sistemi crittograci come lRSA, ma mancano di una dimostrazione della sicurezza
e non sono perci` o ancora utilizzabili in pratica.
In questo capitolo verranno presentati alcuni di questi algoritmi, che si dividono
in tre classi, secondo le primitive matematiche che stanno alla loro base. Iniziamo
con la crittograa che utilizza una funzione hash, la prima ad essere stata scoper-
ta, in seguito vedremo un esempio di crittograa a chiave pubblica e per nire le
rme digitali, che rappresentano un ramo recente ed importante nel campo della
crittograa reticolare.
2.1 Parametri caratterizzanti di un sistema crit-
tograco
Deniamo in questa sezione alcune propriet`a dei sistemi crittograci in riferimento
alla sicurezza.
22
Denizione 2.1 (Sicurezza semantica). Una crittosistema a chiave pubblica `e se-
manticamente sicuro se `e computazionalmente dicile per un avversario derivare
informazioni sul messaggio in chiaro dal messaggio cifrato e dalla chiave pubblica.
Denizione 2.2 (Chosen ciphertext attack (CCA)). Si parla di chosen ciphertext
attack quando un avversario `e in grado di chiedere la decifrazione di un testo cifrato
con una chiave da lui scelta.
In alcuni casi, in un attacco di questo tipo, ottenendo testi in chiaro da pi` u
testi cifrati, utilizzando una chiave pubblica da noi scelta appositamente, `e possibile
risalire alla chiave privata.
Unaltra denizione pi` u attuale di sicurezza semantica `e quella di indistinguibilit`a
del testo cifrato sotto un chosen plaintext attack (CPA).
Denizione 2.3 (Chosen plaintext attack (CPA)). Il chosen plaintext attack `e
un modello di attacco in cui lavversario ha la capacit`a di scegliere testi in chiaro
arbitrariamente e di criptarli ottenendo il corrispondente testo cifrato.
Dato che, per qualunque sistema crittograco a chiave asimmetrica, un possibile
avversario `e sempre in grado di ottenere la chiave pubblica, lunica possibilit`a per un
sistema crittograco di essere semanticamente sicuro `e quello di essere probabilistico,
in quanto `e sempre possibile eettuare un attacco di tipo CPA.
Prima di andare ad analizzare in dettaglio i vari algoritmi che verranno presentati
in seguito, `e importante capire quali sono le caratteristiche che un sistema deve avere
per essere un buon sistema crittograco. Le prime propriet` a a cui pensiamo sono
la correttezza e ladabilit`a. Vogliamo essere certi che se cifrando un messaggio
ed inviandolo, il destinatario sia in grado di decifrarlo correttamente, cio`e che il
messaggio da lui ottenuto corrisponda alloriginale. Quando si parla di adabilit` a
ci si riferisce al fatto che nessuno, tranne il destinatario, deve essere in grado di
decifrare il messaggio stesso. Chiaramente nessun sistema crittograco `e sicuro in
assoluto, c`e sempre la possibilit` a di risalire al messaggio originale, perci` o lobbiettivo
della crittograa `e quello di creare sistemi crittograci che siano dicili da rompere,
o in altre parole, la cui probabilit` a di violarne la sicurezza sia molto bassa. Un
esempio molto signicativo `e quello dellRSA. Per essere in grado di rompere lRSA
`e suciente riuscire a fattorizzare un intero N, che `e dato come parte della chiave
pubblica. Fattorizzare un intero, quando questo `e molto grande (centinaia di cifre),
non `e impossibile, ma richiede, anche con il computer pi` u potente, pi` u di un anno
di tempo. Perci`o si pu`o aermare che lRSA `e un sistema sicuro.
23
Quindi adabilit`a e correttezza sono due fattori assolutamente indispensabili
per un algoritmo crittograco, ma non sono i soli. Possiamo dire che sono neces-
sari, ma non sucienti. Perch`e un sistema crittograco sia eciente ed utilizzabile
praticamente, occorre che soddis altri due requisiti, ecienza in termini di spazio
occupato e di tempo necessario allesecuzione. Con i miliardi di transazioni protette
che vengono eettuate ogni giorno, `e necessario un algoritmo crittograco eciente.
Vediamo pi` u in dettaglio questi parametri.
Quando ci riferiamo allo spazio occupato, intendiamo la dimensione delle chiavi
e il rapporto tra il messaggio cifrato e il messaggio iniziale. Il messaggio cifrato, cos`
come le chiavi pubbliche, viaggiano attraverso la rete e devono essere elaborati dai
vari utenti; `e necessario perci` o che le loro dimensioni siano ridotte. Se un algoritmo
crittograco produce un testo cifrato 100 volte pi` u grande del messaggio in chiaro,
non pu` o essere ecacemente utilizzato: un le iniziale di 1MB diventerebbe, una
volta cifrato, di 100MB, troppo pesante per essere trasferito velocemente.
Lecienza temporale `e unaltra caratteristica molto importante per un sistema
crittograco. Con la frequenza degli scambi digitali attuali, non possiamo permette-
re che i messaggi che arrivano si accodino, per aspettare di essere decifrati, abbiamo
bisogno di una decifrazione rapida. Spazio occupato e tempo di esecuzione sono
due aspetti correlati per un algoritmo crittograco. Andando ad operare un mi-
glioramento sulla memoria richiesta, miglioriamo indirettamente anche il tempo di
esecuzione dellalgoritmo. Meno dati da elaborare, meno tempo necessario per farlo.
Un altro concetto interessante da analizzare `e lunit`a di misura della sicurezza dei
sistemi crittograci. Questo `e un concetto importante perch`e permette di poter con-
frontare sistemi crittograci che si basano su strutture matematiche completamente
diverse. Lunit` a di misura sono i bit. Aermare che un certo sistema crittograco
ha n bits di sicurezza, equivale ad aermare che il tempo necessario ad un computer
per rompere tale sistema equivale a quello che impiegherebbe a contare da 0 no
a n bit, ovvero no a 2
n
1. Prendiamo per esempio n = 112, 2
10
1000 = 10
3
quindi possiamo scrivere 2
112
2
10
11
10
3
11
= 10
33
. Stimiamo ora quanto impiega,
approssimativamente, un computer da ucio a contare no a 10
33
. Prendiamone
uno di fascia alta, quad-core, con velocit`a di 2.5 GHz per ogni core. Supponiamo
che il conto sia parallelizzabile, abbiamo quindi una velocit`a totale di 10GHz= 10
9
operazioni al secondo. 10
33
/10
9
= 10
24
secondi necessari al conto totale. In un anno
ci sono 60 x 60 x 24 x 365 = 31536000 = 3 10
7
secondi. Otteniamo quindi che,
con un personal computer, sono necessari 10
24
/10
7
= 10
17
anni per anni rompere il
sistema.
Queste considerazioni ci saranno utili in seguito per capire la dierenza tra i vari
24
algoritmi presentati.
2.2 Principali sistemi crittograci sui reticoli
2.2.1 Hash function
Una funzione hash resistente alle collisioni `e una funzione h : D R che mappa un
dominio D in un insieme pi` u piccolo R, [R[ [D[, tale che `e computazionalmente
dicile trovare collisioni, i.e., data in ingresso una coppia x
1
, x
2
D con x
1
,= x
2
si abbia h(x
1
) = h(x
2
). Usualmente le funzioni hash sono denite come famiglie
di funzioni h
k
: D R e la propriet` a di sicurezza `e che, scelto k in maniera
random, nessun attacco `e in grado di trovare in maniera eciente una collisione in
h
k
, nonostante tale collisione certamente esista, in quanto D `e molto pi` u grande
di R. Le funzioni hash resistenti alle collisioni sono inoltre primitive crittograche
molto importanti in quanto permettono di comprimere un lungo messaggio x D
in uno pi` u corto h(x) R.
Il primo algoritmo crittograco basato su reticoli, con una sicurezza nel caso peg-
giore garantita, fu presentato da Ajtai nel 1996, [Ajt96]. Ajtai mostr` o una famiglia
di funzioni a senso unico la cui sicurezza `e basata sulla dicolt` a di risolvere SVP
nel caso peggiore. In altre parole mostr` o che essere capaci di invertire una funzione
scelta in questa famiglia, equivaleva, con alta probabilit`a, a risolvere ogni istanza di
SVP. Dalla presentazione, da parte di Ajtai, del suo sistema crittograco, sono stati
fatti grandi passi avanti, sia per quanto riguarda lottimizzazione della velocit`a di
applicazione degli algoritmi crittograci e dello spazio occupato dalle chiavi, sia per
quanto riguarda la dimostrazione della sicurezza. Le attuali funzioni hash si basano
su nuovi tipi di reticoli, chiamati reticoli ideali e ciclici. Per comprendere meglio
la connessione tra funzioni hash e reticoli andiamo ora a presentare lalgoritmo di
Ajtai.
Algoritmo di Ajtai. La sicurezza di questo metodo `e basata sul fatto che per
unappropriata scelta di q, n, m trovare vettori corti in

q
(A) quando A `e scelta
uniformemente in Z
q
nm
`e dicile.
I parametri della funzione hash sono n, m, q, d N. Una possibile scelta dei
parametri `e d = 2, q = n
2
e m > nlog q/ log d. La scelta di n determina la sicu-
rezza della funzione hash. La chiave della funzione hash `e data da una matrice A
scelta uniformemente in Z
q
nm
. La funzione hash f
A
: 0, ..., d 1
m
Z
q
n
`e data
da f
A
= Ay mod q. In termini di bit, la funzione mappa mlog d in nlog q quindi
dovremmo scegliere m > nlog q/ log d per ottenere una compressione, in particolare
25
m 2nlog q/ log d per ottenere un fattore di compressione 2.
Algoritmo 1 Funzione hash secodo la costruzione di Ajtai
Parametri: n, m, q, d N

.
Chiave: Una matrice A scelta secondo la distribuzione uniforme in
Z
q
nm
.
Fuzione hash: f
A
: 0, ..., d 1
m
Z
q
n
con f
A
= Ay mod q.
Possiamo notare che una collisione f
A
(y) = f
A
(y) per qualche y ,= y porta
immediatamente a un vettore corto non zero yy

q
(A). Usando una riduzione
dal caso peggiore al caso medio possiamo concludere che trovare una collisione, nel
caso medio, per la funzione f
A
`e dicile come risolvere lapprossimazione di SVP o
SIVP nel caso peggiore.
Questa funzione hash come possiamo vedere `e estremamente semplice da im-
plementare in quanto richiede solo addizioni e moltiplicazioni modulo q, inoltre q
ha un numero di bits dellordine di O(log n) e sta in ununica cella di registro di
un processore e quindi tutte le operazioni aritmetiche possono essere eseguite sen-
za la necessit` a di utilizzare larbitrary precision arithmetic, usata nelle pi` u comuni
funzioni crittograche. Tuttavia queste funzioni hash non sono molto ecienti in
quanto la grandezza della chiave cresce almeno con il quadrato di n. Inoltre per
ottenere 100 bits di sicurezza `e necessario avere una chiave di almeno 500.000 bits
che comporta un tempo computazionale di 50.000 operazioni aritmetiche. Per una
cifratura a chiave pubblica questi dati sono considerati accettabili ma non per una
cifratura a chiave simmetrica.
2.2.2 Crittograa a chiave pubblica
La crittograa a chiave pubblica `e la pi` u importante forma di crittograa esistente.
La sua introduzione negli anni 70 ha rivoluzionato il mondo dellinformatica e della
protezione dei dati, permettendo oggi di poter eettuare transazioni bancarie dal
proprio computer e di poter eettuare acquisti on-line con la propria carta di credito,
senza correre il rischio che i nostri dati siano intercettati da un agente esterno, che li
userebbe per danneggiarci. Fino a quel momento tutti i sistemi crittograci erano a
chiave simmetrica, ovvero mittente e destinatario dovevano essere in possesso della
stessa chiave per poter crittare e decifrare il messaggio, ma come fare a scambiarsi le
26
chiavi quando i due agenti sono lontani, diciamo uno in America e laltro in Europa?
Il metodo migliore `e che i due agenti si scambino di persona le chiavi, per essere sicuri
che nessun altro possa scoprirlo, ma non `e certo possibile che debbano spostarsi di
migliaia di chilometri, considerando anche il fatto che per ragioni di sicurezza le
chiavi andrebbero cambiate periodicamente. Per risolvere questo problema `e stata
introdotta la crittograa a chiave pubblica: la chiave non `e pi` u la stessa per mittente
e destinatario, ma si crea un coppia di chiavi per ognuno, costituita da una pubblica
ed da una privata. Ciascuno dei due utenti d` a allaltro la propria chiave pubblica
che viene utilizzata per cifrare il messaggio, che verr` a poi decifrato con la chiave
privata. Il potere di questo meccanismo `e che nessuno `e in grado, in tempi brevi, di
decifrare un messaggio cos` cifrato, conoscendo solo la chiave pubblica. Il problema
della cifratura a chiave pubblica `e che il meccanismo di cifratura e decifratura `e
pi` u lento di quello classico e che lo spazio occupato dalle chiavi e il rapporto tra
messaggio cifrato e messaggio in chiaro `e molto pi` u alto. Il metodo per ovviare
a questo problema, quando si ha la necessit` a di inviare grandi messaggi cifrati, `e
quello di cifrare il messaggio con un sistema a chiave simmetrica, pi` u veloce, e poi
di inviare al destinatario la chiave, cifrata con un algoritmo a chiave pubblica.
Nel corso degli anni sono stati proposti molti metodi per creare sistemi critto-
graci a chiave pubblica basati sui reticoli. Alcuni di questi sono di interesse solo
teorico, in quanto sono troppo inecienti da usare in pratica, nonostante la loro
sicurezza sia garantita in maniera forte: rompere questi sistemi crittograci `e di-
cile come risolvere i problemi sui reticoli nel caso peggiore. Altri sistemi sono molto
pi` u ecienti, ma non dispongono ancora di una dimostrazione della loro sicurezza.
In questa sezione andremo ad analizzare il sitema crittograco GGH, proposto da
Goldreich, Goldwasser e Halevi, [GGH97], il quale, nonostante sia stata dimostrata
la sua insicurezza, [NSt98], `e molto intuitivo da analizzare e pone le basi per i pi` u
recenti sistemi crittograci a chiave pubblica basati su reticoli.
Prima di iniziare con la presentazione dellalgoritmo `e necessario introdurre
alcune conoscenze matematice:
Denizione 2.4 (Forma hermitiana normale). Una matrice B Z
nn
`e in forma
hermitiana normale se
1. B `e triangolare superiore,
2. b
i,j
> 0 1 i m e
3. 0 b
i,j
< b
i,i
1 i < j m.
Ogni reticolo intero di rango massimo ha esattamente una base in HNF.
27
Usare questa particolare matrice per descrivere il reticolo `e conveniente, in quan-
to, essendo una matrice triangolare, richiede meno bit per essere salvata in memoria
rispetto ad altre basi.
Sistema crittograco GGH
La chiave privata `e una buona base B per il reticolo. Tipicamente una
buona base `e una base costituita da vettori corti e quasi ortogonali. Da un
punto di vista algoritmico una buona base permette di risolvere ecientemente
alcune istanze del closest vector problem in B, in particolare quando il vettore
obbiettivo `e molto vicino al reticolo.
La chiave pubblica H corrisponde alla forma hermitiana normale della ma-
trice B.
Cifratura: sia m Z
n
il messaggio da cifrare e sia v := Hm. Il messaggio
cifrato c Q
n
`e calcolato nel seguente modo: scegliere r Q
n
tale che il
vettore del reticolo /(B) pi` u vicino a c = r +v sia v.
Decifrazione: sia U = B
1
H, il messaggio iniziale m = U
1
B
1
c.
La sicurezza di questo algoritmo sta nel fatto che senza conoscere la base speciale,
calcolare il closest vector problem in /(B) = /(H) `e computazionalmente dicile.
Notiamo che il sistema non `e semanticamente sicuro in quanto il processo crittogra-
co `e deterministico e un avversario pu`o facilmente distinguere due messaggi cifrati
corrispondenti a due diversi messaggi.
2.2.3 Firma digitale
Una rma digitale `e uno schema matematico che serve a dimostrare lautenticit` a di
un messaggio digitale o di un documento. Una rma digitale valida d` a a un ricevente
la sicurezza di credere che il messaggio sia stato creato da un mittente conosciuto e
che non `e stata alterata durante il trasferimento.
Denizione 2.5 (Firma digitale). Una rma digitale `e una tripla (G, V, S) di algo-
ritmi (possibilmente probabilistici) che eseguono in tempo polinomiale, tale che per
ogni coppia di output (s,
v) di G(1
n
) e per ogni messaggio di n bit m si ha che
Pr [V (v, m, S(s, m)) = 1] = 1
28
dove la probabilit`a `e calcolata sulla randomicit`a degli algoritmi S, V .
Nella denizione precedente G `e chiamato lalgoritmo di generazione delle chiavi,
S `e lalgoritmo di rma , V quello di verica e s e v sono rispettivamente la rma
e la chiave di verica.
Una rma digitale `e detta sicura se, solo con una probabilit`a trascurabile, un
avversario, dopo aver visto le rme di messaggi da lui scelti, `e in grado di rmare
un messaggio di cui non ha mai visto la rma. Le rme digitali basate sui reticoli
sono delle evoluzioni di sistemi crittograci basati su una funzione hash o da sistemi
a chiave pubblica. In particolare la crittograa a chiave pubblica si presta bene
ad essere adattata allutilizzo come rma digitale per la sua struttura asimmetrica.
Possiamo infatti notare il parallelo tra la chiave pubblica e la chiave privata della
crittograa asimmetrica con i due algoritmi S e V della rma digitale.
In questo lavoro non ci addentreremo in dettagli matematici sulla costruzione
di schemi di rma digitale, in quanto non sono di particolare interesse per quello
che andremo a sviluppare in seguito. Per approfondimenti si rimanda a [MRe08,
LyM08, HGP03].
2.3 Importanza dei sistemi crittograci sui reti-
coli
Nonostante nessuno dei precedenti sistemi descritti sia implementato e venga uti-
lizzato praticamente come strumento crittograco, la crittograa reticolare, come
abbiamo accennato nellintroduzione, assume importanza se si pensa a un possibile
avvento dei computer quantistici. Diventa in questo caso essenziale costruire un
valido sostituto dellalgoritmo RSA che, come abbia visto nel paragrafo 1.5, non `e
sicuro rispetto ad attacchi quantistici. Inoltre, con laumentare della potenza dei
calcolatori, ` necessario aumentare continuamente la grandezza delle chiavi del siste-
ma RSA, in modo che non sia possibile romperle con un approccio di tipo esaustivo.
Inne lalgoritmo RSA non `e semanticamente sicuro, in quanto `e deterministico e
`e quindi sempre possibile capire se due testi cifrati identicano lo stesso testo in
chiaro oppure no.
La crittograa reticolare `e un ottimo candidato per ovviare ai problemi del si-
stema RSA appena esposti. Come visto nel paragrafo 1.5, nonostante non ci siano
dimostrazioni rigorose, ma solo congetture, c`e una forte convinzione che gli algorit-
mi reticolari siano sicuri anche in presenza di computer quantistici. Per ora nessuno
`e riuscito a trovare un algoritmo quantistico che rompa la sicurezza degli algoritmi
29
reticolari pi` u velocemente degli algoritmi classici. Per quanto riguarda la sicurezza
semantica sono stati inventati algoritmi, quale il crittosistema basato su LWE, che
analizzeremo nel prossimo capitolo, che introducendo al loro interno elementi di pro-
babilit` a, non sono deterministici e non permettono quindi di ottenere informazioni
semantiche dai testi cifrati.
Il primo approccio allimplementazione di uno di questi sistemi `e stato di Fre-
deriksen che recentemente ha confrontato il sistema crittograco basato sul LWE
con il crittosistema di Paillier, [Fre10]. Il sistema crittograco basato su LWE come
vedremo nel prossimo capitolo `e attualmente tra i sistemi reticolari pi` u importanti.
Il sistema crittograco di Paillier `e stato scelto da Frederiksen in quanto presenta
molte caratteristiche in comune con i pi` u utilizzati sistemi crittograci attualmen-
te, come lRSA o ElGamal, inoltre `e un algoritmo probabilistico e questo rende il
confronto con il sistema basato su LWE pi` u semplice e completo. Il confronto `e
stato realizzato tra i due sistemi utilizzando parametri che rendessero la sicurezza,
in termini di bit, uguale per entrambi. Dai risultati ottenuti possiamo dedurre come
il sistema crittograco basato su LWE possa essere competitivo e possa essere una
valido sostituto per lRSA in quanto i tempi di cifratura e decifrazione, il rapporto
tra testo cifrato e testo in chiaro e le grandezze delle chiavi sono molto competitivi
e non si discostano molto dai valori dei sistemi crittograci attualmente utilizzati.
30
Capitolo 3
Il sistema crittograco di Regev
In questo capitolo descriviamo quello che probabilmente `e il sistema crittograco
reticolare a chiave pubblica pi` u eciente che sia anche supportato da una dimo-
strazione teorica della sua sicurezza. La prima versione di questo crittosistema `e
stata presentata da Regev nel 2005, assieme ad una dimostrazione della sua sicu-
rezza [Reg05]. Nel corso degli anni altri studiosi si sono interessati a questo sistema
crittograco, introducendo miglioramenti e nuove versioni, che hanno permesso di
ottenere un sensibile incremento delle prestazioni. La prima sezione di questo capi-
tolo `e dedicata allanalisi del learning with error problem (problema LWE) e alla sua
relazione con i problemi su essi descritti nel primo capitolo. Il sistema crittograco
che andremo ad analizzare si basa sul problema LWE. Le ultime due sezioni riguar-
dano lanalisi della scelta dei parametri per rendere lalgoritmo adabile, sicuro ed
eciente.
3.1 Preliminari sulle distribuzioni di probabilit`a
Diamo sinteticamente alcune denizioni preliminari, rimandiamo alla letteratura per
una trattazione approfondita (cf. [MoP11] e relativa bibliograa). Una densit`a di
probabilit`a (discreta) su un sottoinsieme nito k
1
, . . . , k
r
di Z `e una funzione
: k
1
, . . . , k
r
[0, 1] tale che

r
j=0
(k
j
) = 1. Se X `e una variabile aleatoria a
valori in k
1
, . . . , k
r
tale che Pr(X = k
j
) = (k
j
), allora `e la densit`a di probabilit` a
della variabile aleatoria X.
Il valore atteso di X `e:
E[X] =
r

j=1
k
j
Pr(X = k
j
) =
r

j=1
k
j
(k
j
)
31
e la varianza di X `e data da:
Var[X] =
r

j=1
(k
j
E[X])
2
Pr(X = k
j
) =
r

j=1
(k
j
E[X])
2
(k
j
).
La densit` a di probabilit`a uniforme U su k
1
, . . . , k
r
`e la densit` a in cui i valori
k
j
sono equiprobabili, ossia U(k
j
) =
1
r
.
Unaltra densit` a di probabilit` a importante per il nostro lavoro `e la densit` a
Gaussiana o normale, che deniremo pi` u avanti.
Diciamo che un vettore x Z
n
q
`e scelto secondo la densit` a su Z
q
, e scriviamo
in questo caso x

Z
n
q
, se le variabili aleatorie
X
i
: Z
n
q
Z
q
x x
i
sono indipendenti e hanno densit` a di probabilit` a per ogni j = 1, . . . , n.
Ad esempio, se si considera la densit` a di probabilit` a uniforme U su Z
q
, un vettore
x scelto secondo la densit` a uniforme `e un vettore in cui ogni coeciente `e scelto in
modo equiprobabile tra gli elementi di Z
q
. Avremo bassa probabilit` a di avere un
vettore, ad esempio, con tutti i coecienti uguali a 1. Tale probabili`a decresce
esponenzialmente con n.
Deniamo ora la densit`a normale su Z
q
(cfr. e.g. [HWa11]). La densit` a normale,
continua, f
,
: R [0, 1] `e denita come
f
,
:=
1

2
2
e

(x)
2
2
2
.
Deniamo ora due densit`a di probabilit`a discrete, la prima su Z e la seconda su Z
q
:
g
,
: Z [0, 1] g
,
(n) :=
_
n+
1
2
n
1
2
f
,
(x) dx
h
,
q
: Z
q
[0, 1] h
,
q
(n) :=

kZ
g
,
(n + kq)
Chiamiamo h
,
q
densit`a normale su Z
q
. Deniamo inne

:= h
0,(q/

2
)
q
Usualmente, e in particolare nel nostro caso, si sceglie =

. Con abuso di
32
notazione utilizzeremo spesso, per le densit` a discrete, il termine distribuzione anziche
il termine densit`a.
Figura 3.1: Distribuzione Gaussiana discreta
3.2 Learning with error problem
Per il contenuto di questa sezione rimandiamo per un approfondimento [Reg05,
MRe08, Reg10].
Denizione 3.1 (Learning with error problem, versione di ricerca). Dati i parametri
n, m, q Z
+
, una densit`a di probabilit`a : Z
q
[0, 1] e una matrice A Z
q
mn
scelta secondo la distribuzione uniforme. Diciamo che un algoritmo W risolve il
problema LWE se dato in input un vettore As + e, con s
U
Z
q
n
e e

Z
q
m
,
lalgoritmo W produce in output s con probabilit`a che tende esponenzialmente a 1.
Sostanzialmente abbiamo un sistema di equazioni con matrice A, se lerrore intro-
dotto e fosse 0, avremmo un usuale sistema di equazioni lineari. Introdurre lerrore
e aumenta sensibilmente la dicolt` a del problema. Con probabilit` a che tende espo-
nenzialmente a 1 intendiamo la probabilit` a come frequenza di successi: sia p
n
il
numero di successi su n input, la frequenza di successo `e allora p
n
/n. Si chiede che
(1 p
n
/n) exp(n) per n grande, ossia limsup
n
(1 p
n
/n)e
n
< + (probabilit` a
come frequenza di successi). Introduciamo ora la nozione di oracolo.
Denizione 3.2 (Oracolo). Nella teoria della complessit`a un oracolo `e una macchi-
na astratta che `e capace di risolvere problemi di decisione con una singola operazione.
Il problema pu`o essere di una qualsiasi classe di complessit`a, anche indecidibile.
33
Denizione 3.3 (Learning with error problem, versione decisionale). Dati i pa-
rametri n, m, q Z
+
, una densit`a di probabilit`a : Z
q
[0, 1] e una matrice
A Z
q
mn
scelta secondo la distribuzione uniforme. Diciamo che un oracolo W
risolve il problema LWE se W accetta con probabilit`a che tende esponenzialmente a
1 le coppie (A, v), con v = As + e, dove s Z
q
n
e e

Z
q
m
, mentre riuta con
probabilit`a che tende esponenzialmente a 1 le coppie con v
U
Z
m
q
.
Il problema LWE decisionale si riduce dal caso peggiore al caso medio. Ossia se
abbiamo accesso a un oracolo W che distingue As + e da v
U
Z
m
q
per s
U
Z
n
q
allora esiste un algoritmo che esegue in tempo polinomiale in n che distingue tra
As +e e v
U
Z
m
q
con s Z
n
q
.
Inoltre, e questo verr`a utilizzato in seguito, il problema di ricerca si riduce al
problema decisionale per 2 q poly(n), q primo, ossia se abbiamo accesso a un
oracolo W che risolve LWE decisionale, allora esiste un algoritmo polinomiale che
risolve LWE di ricerca [Reg05, Lemma 4.2].
Anche il viceversa `e vero, ossia: il problema di decisionale si riduce al problema
di ricerca. Intuitivamente: assumiamo di avere accesso a un algoritmo W che risolve
LWE di ricerca. Accettiamo v se AW(v) v

Z
m
, altrimenti riutiamo.
Si ritiene che il problema LWE sia un problema computazionalmente dicile
(per opportune scelte dei parametri) [Reg09, Reg10]. Ci sono diversi risultati che
supportano questa ipotesi. Si osserva innanzitutto che il miglior algoritmo noto
per il problema LWE esegue in tempo esponenziale. Inoltre il problema LWE `e
strettamente correlato a problemi di decodica nella teoria dei codici ritenuti com-
putazionalmente dicili. Citiamo inoltre il seguente risultato di riduzione formulato
da Regev in [Reg05] nel teorema principale.
Teorema 3.2.1. Assumiamo di avere accesso ad un oracolo che risolve il problema
LWE decisionale con parametri n, m, q,

dove q >

n, q poly(n) `e primo e
m poly(n). Allora esiste un algoritmo quantistico, che esegue in tempo poly(n),
che risolve i problemi SIVP
O(n/)
e SVP
O(n/)
nel caso peggiore, in qualsiasi reticolo
di dimensione n.
Il teorema ci garantisce che trovare un algoritmo classico o quantistico che rompa
LWE `e dicile come trovare un algoritmo quantistico che risolva SVP, rendendo cos`
sicuro LWE da attacchi quantistici.
La sicurezza di LWE anche in caso di accesso a un computer quantistico `e dunque
basato sulla Congettura 1.5.1. La solidit` a di questa congettura `e senzaltro minore
di quella della Congettura 1.4.1. Un miglioramento di questo risultato sarebbe
34
quindi senzaltro passare dalla riduzione quantistica da SVP a LWE di Regev a
una riduzione classica, ossia mediante un algoritmo classico che esegue in tempo
polinomiale su n. Infatti, in questo modo, la sicurezza di LWE, anche in caso di
accesso a un computer quantistico, sarebbe basata sulla Congettura 1.4.1.
Peikert in [Pei09] modica la dimostrazione di Regev stabilendo una riduzione
classica da SVP a LWE, questo da una parte `e un miglioramento ma dallaltra ha
dei costi, ad esempio tale riduzione `e possibile solo per valori di q molto grandi. La
riduzione classica da SVP a LWE rimane dunque un problema aperto se si richiede
anche, ad esempio, la possibilit` a di scegliere parametri, come q, non troppo grandi.
3.3 Algoritmo di crittograa basato su LWE
Introduciamo ora il sistema crittograco su reticoli di Regev. La versione iniziale
presentata da Regev nel 2005 era a un singolo bit. Il sistema funzionava soltanto
cifrando un bit per volta. La versione sotto esposta `e levoluzione dellalgoritmo
iniziale e permette di lavorare con vettori composti da un numero arbitrario di bit
(il parametro l sotto riportato corrisponde al numero di bit) [Reg09].
Lalgoritmo `e parametrizzato da n, m, l, t, r, q N e R
+
, dove

`e la distri-
buzione gaussiana discreta descritta in precedenza. Il parametro n `e il parametro
pi` u importante che determina la sicurezza del sistema e corrisponde alla rango del
reticolo.
Algoritmo 2 Generazione delle chiavi
Input: n, m, l, t, r, q N e R
+
.
Output: la chiave privata S Z
q
nl
e la chiave pubblica (A, P) Z
q
mn

Z
q
ml
.
1. scegliere S Z
q
nl
e A Z
q
mn
secondo la distribuzione uniforme
e E Z
q
ml
secondo la distribuzione

2. porre P := AS +E
3. ritornare (S, (A, P))
Notiamo che riuscire a ricostruire la chiave privata solo da (A, P) implicherebbe
essere in grado di trovare un algoritmo polinomiale per risolvere LWE. Infatti essendo
35
P := AS +E, riuscire a calcolare S signica essere in grado di risolvere la versione
di ricerca di LWE, questo, per quanto visto in precedenza, corrisponde a risolvere
qualsiasi istanza di LWE. Approfondiremo questa considerazione nel paragrafo sulla
sicurezza.
Dati q, t Z
+
introduciamo ora la funzione
t
q
: Z
t
l
Z
q
l
come

t
q
(n) :=
_
nq
t
_
Con [] si intende la funzione che arrotonda allintero pi` u vicino.
Algoritmo 3 Cifratura
Input: n, m, l, t, r, q N, la chiave pubblica (A, P) Z
q
mn
Z
q
ml
, il
messaggio v Z
t
l
.
Output: il testo cifrato (u, c) Z
q
n
Z
q
l
.
1. scegliere a [r, r]
m
Z
m
2. porre u := A
T
a
3. porre c := P
T
a +
t
q
(v)
4. ritornare (u, c)
Algoritmo 4 Decifratura
Input: il messaggio cifrato (u, c) Z
q
n
Z
q
l
, la chiave privata S Z
q
nl
.
Output: il messaggio in chiaro v Z
t
l
.
1. ritornare
q
t
(c S
T
u)
3.4 Ecienza
Da quanto visto sopra possiamo dedurre che lalgoritmo `e altamente eciente in
quanto coinvolge solo operazioni tra matrici modulo un dato numero intero. Grazie
a questo lalgoritmo `e anche parallelizzabile per aumentarne la velocit` a di calcolo.
Inoltre altri miglioramenti nella velocit` a di esecuzione possono essere fatti scegliendo
t = 2
k
, questo semplica il processo di conversione del messaggio in ingresso al
sistema in un elemento dello spazio del messaggio.
36
Di seguito sono presentate le propriet` a del sistema crittograco sopra descritto
(cfr. e.g. [MRe08]) Tutte le dimensioni sono in bits e i logaritmi sono in base 2.
Dimensione chiave pubblica: nl log q
Dimensione chiave privata: m(n + l) log q
Dimensione del messaggio: l log t
Dimensione del testo cifrato: (n + l) log q
Rapporto tra il testo cifrato e il testo in chiaro:
_
1 +
n
l
_
log q/ log t
Operazioni di cifratura per bit: O(m
_
1 +
n
l
_
)
Operazioni di decifratura per bit: O(n)
3.5 Errori di decifrazione
Lalgoritmo appena descritto `e un algoritmo probabilistico ed al contrario di quelli
deterministici, come lRSA, pu` o presentare errori di decifrazione. La probabilt` a con
cui questi errori si presentano pu`o essere calcolata in base ai parametri del sistema
e, scegliendo tali parametri in maniera oculata, `e possibile ridurre la frequenza degli
errori. Vediamo come si calcola [MRe08, HWa11]:
Il risultato dellalgoritmo `e dato da

q
t
(c S
T
u) =
q
t
(P
T
a +
t
q
(v) S
T
A
T
a)
=
q
t
((AS +E)
T
a +
t
q
(v) S
T
A
T
a)
=
q
t
(E
T
a +
t
q
(v)) .
Chiamiamo b = E
T
a. Se per ogni i [b
i
[ <
qt
2t
allora
q
t
(E
T
a +
t
q
(v)) = v Quindi,
sotto lipotesi [b
i
[ <
qt
2t
Pr
_

q
t
(c S
T
u) = v

Pr
_
i : [b
i
[ <
q t
2t
_
.
Analizziamo quindi il comportamento di b = E
T
a. Possiamo vedere ogni coordinata
di b come una variabile aleatoria. La variabile aleatoria b
i
`e una variabile aleatoria
con densit`a normale a media nulla poich`e `e somma di variabili aleatorie indipen-
denti con densit`a normali a media nulla. Denotiamo con X la variabile aleatoria
37
corrispondente a b
i
, per un i ssato, e sia Z :=
X
(X))
, dove
2
(X) = V ar(X).
La variabile aleatoria Z ha valore atteso 0 e varianza 1 [MoP11, ex.12.1]. Sia
(t) :=
_
t

f
0,1
(x) dx. allora Pr [z
1
Z z
2
] = (z
2
) (z
1
). Osserviamo che,
poich`e a
U
[r, r] Z si ha
V ar(a
i
) =
1
2r + 1

r

k=r
k
2
= 2
1
2r + 1

r(r + 1)(2r + 1)
6
=
r(r + 1)
3
.
Quindi
(X)
2
= V ar(b
i
) = V ar
_
m

j=1
E
ij
a
j
_
=
m

j=1
E
ji
2
V ar(a
j
) = |E
i,
|
2

r(r + q)
3
Da questo possiamo dedurre un limite superiore per lerrore di decifrazione per ogni
componente:

i
= Pr
_
[X[
q t
2t
_
= Pr
_
Z
q t
2t(X)
_
+ Pr
_
Z
t q
2t(X)
_
= 1
_
q t
2t(X)
_
+
_
t q
2t(X)
_
= 2 2
_
q t
2t(X)
_
= 2
_
1
_
q t
2t |E
i,
|

3
r(r + 1)
__
.
Utilizzando luguaglianza (|E
,i
|) =
q

2
, otteniamo una probabilit` a di errore
per lettera pari a
= 2
_
1
_
q t
2tq

6
mr(r + 1
__
.
A questo punto siamo in grado, agendo sulla scelta dei parametri, di ottenere un
errore piccolo a piacere. Inoltre `e possibile applicare codici correttori di errori al
testo in chiaro per poter ottenere un errore del tutto trascurabile.
38
3.6 Sicurezza
Andiamo ora a discutere la sicurezza del sistema descritto, a fronte di attacchi
esterni [MRe08, PVW08, HWa11]. La dimostrazione della sicurezza `e composta
da due parti. Nella prima parte si vuole mostrare che essere in grado di distingue
chiavi pubbliche (A, P) generate dal sistema crittograco da coppie (A, P) scelte
secondo la distribuzione uniforme su Z
q
, implica risolvere il problema LWE con
parametri n, m, q,

. Quindi se impostiamo i parametri in modo che il problema


LWE sia dicile, le chiavi generate dal sistema crittograco saranno indistinguibili
dalle coppie scelte uniformemente. La seconda parte consiste nel mostrare che,
se criptiamo un messaggio con una chiave pubblica (A, P) scelta uniformemente,
allora, con alta probabilit`a, il messaggio crittato non contiene alcuna informazione
sul messaggio di partenza.
Insieme queste due propriet` a stabiliscono la sicurezza del sistema crittograco
a fronte di un chosen plaintext attack. Il ragionamento `e il seguente: la seconda
parte implica che essere in grado di rompere il sistema, anche con solo una piccola
probabilit` a, implica la capacit`a di distinguere tra una valida chiave pubblica e una
coppia scelta secondo la distribuzione uniforme. Ma, per la parte uno, questo implica
risolvere il problema LWE ed `e quindi dicile.
Per garantire la sicurezza del sistema dobbiamo scegliere in parametri in modo
che entrambe le propriet` a sopra descritte siano soddisfatte. Si mostra in [MRe08]
che la seconda propriet` a `e garantita quando
(2r + 1)
m
>> q
n+l
Per la prima propriet` a occorre il seguente risultato [Reg10, LiP11]:
Proposizione 3.6.1 (DallLWE al SIS). Risolvere SIS con i parametri (n, m, q, 1.5

2/)
implica risolvere LWE con i parametri (n, m, q, ).
Il nostro obbiettivo `e scegliere i parametri n, m, q, , cos` che il problema LWE
sia dicile.
Sia (A, v) unistanza di LWE .
Scegliere un vettore corto w
q
(A
T
)

.
Calcolare := w, v.
Se `e vicino ad un intero, possiamo indovinare che v = As + e per qualche
e Z
q
m
scelto secondo la distribuzione

.
39
Questo procedimento si basa sul fatto che
As +e, w = As, w
. .
Z
+e, w
e si ada al fatto che e, w `e molto piccolo. Dato un qualsiasi vettore w e dato
e Z
q
m
scelto secondo la distribuzione

,
V ar (e, w) = V ar
_
m

i=1
e
i
w
i
_
=
m

i=1
w
i
2
V ar(e
i
) = |w|
2


2
q
2
2
otteniamo una deviazione standard di |w|
q

2
. Anch`e lalgoritmo sopra fallisca,
dobbiamo scegliere
q

1
|w|
. (3.1)
La stima (1.1) applicata a
q
(A
T
)

= q
1

q
(A
T
) porta a
|w| q
1
min
_
q, 2

4nlog q log
_
.
Se i membri destro e sinistro della (3.1) dieriscono di un fattore di 1.5, questo
porta la distribuzione di mod Z ad una trascurabile distanza dalla distribuzione
uniforme. Quindi scegliamo
1.5

2 max
_
q
1
, 2
2

nlog q log
_
.
Il parametro m sembra ricoprire ancora un ruolo minore nella sicurezza pratica del
sistema.
Nella tabella qua sotto, [MRe08] andiamo ad elencare una serie di parametri, che
soddisfano i vincoli precedenti garantendo, sia la correttezza, in fase di decifrazione,
che la sicurezza.
40
n 166 192 214 233
m 1319 1500 1333 1042
q 4093 8191 16381 32749
r 4 5 12 59
0.0024 0.0009959 0.00045 0.000217
Dim. chiave pubblica in bits 5.25 10
6
7.5 10
6
8 10
6
7.3 10
6
Rapp. testo cifrato/testo chiaro 24 13 14 30
Probabilit` a di errore 0.56% 1% 0.8% 0.9%
Tabella 3.1: Possibili scelte dei parametri con = 1.01 e l = n
.
41
Capitolo 4
Varianti dellalgoritmo di Regev
Da quando Regev ha pubblicato il suo lavoro, sul sistema crittograco basato sul
problema LWE, molti studiosi si sono cimentati nella ricerca di versioni pi` u ecienti,
dellalgoritmo crittograco. La maggior parte della ricerca si basa sul trovare algorit-
mi che, rispettando i vincoli di sicurezza e di correttezza, diminuiscano la grandezza
dei parametri, portando cos` ad una riduzione della grandezza delle chiavi e del
rapporto tra il testo cifrato e il testo in chiaro. Ridurre la grandezza delle chiavi
non solo migliora loccupazione della memoria, ma rende lalgoritmo pi` u eciente
anche in termini di ecienza temporale. Questo `e dovuto al fatto che, nonostante
la complessit` a computazionale non diminuisca, in quanto la struttura dellalgoritmo
`e essenzialmente la stessa, il numero di calcoli da fare `e minore, essendo minore la
grandezza delle chiavi. Tra le tante varianti esistenti ne presenteremo soltanto due.
La prima, proposta dallo stesso Regev, in collaborazione con Lyubashevsky e Pei-
kert, ([LPR10], [Reg10]) si basa sul problema Ring-LWE, una variante del classico
LWE che vedremo in seguito. La seconda `e un risultato recente di Lindner e Peikert,
[LiP11], che basandosi sul problema LWE standard, fornisce un sistema crittograco
con parametri pi` u piccoli, rispetto a quelli proposti da Regev e con una forte dimo-
strazione della sicurezza. Abbiamo implementato questultimo sistema crittograco
con Python 2.7 e NumPy 1.6.1, vericandone la correttezza.
4.1 Crittosistema su ring-LWE
Prima di passare alla presentazione dellalgoritmo, presentiamo la variante al pro-
blema LWE, su cui si basa questo algoritmo.
42
4.1.1 Ring-LWE
Deniamo lanello R
q
=
Z
q
[x]
x
n
+1
con n potenza del due, con q 1 (mod 2n). In
questa variante lavoreremo anzich`e sulle matrici sullanello R. Gli elementi possono
essere visti come polinomi in Z
q
con grado minore di n. Denotiamo con : R
q
R
q

R
q
il prodotto nellanello R e + : R
q
R
q
R
q
la somma. Dati a, s R
q
scelti
uniformemente ed e R
q
scelto secondo la distribuzione normale discreta
R,
,
calcoliamo b = a s+e.
Il problema ring-LWE di ricerca e decisionale si formulano analogamente ai
problemi LWE classici. Linput in questo caso `e la coppia (a, b).
In [LPR10] viene dimostrato che il problema ring-LWE mantiene le stesse pro-
priet` a del problema LWE classico. La versione decisionale e quella di ricerca sono
equivalenti. In particolare abbiamo il seguente
Teorema 4.1.1. Risolvere la versione decisionale di ring-LWE in R
q
=
Z
q
[x]
(x
n
+1)
con
n = 2
k
e q 1 (mod 2n) `e dicile come risolvere la versione di ricerca di ring-LWE.
La dimostrazione di questo teorema `e analoga a quella alla versione classica.
4.1.2 Algoritmo crittograco
Passiamo ora alla presentazione del sistema crittograco basato su ring-LWE.
Algoritmo 5 Generazione delle chiavi
Input: n, q N, con n = 2
k
e q 1 (mod 2n) e R
+
.
Output: la chiave privata s R
q
e la chiave pubblica (a, b) R
q
R
q
.
1. scegliere s R
q
e a R
q
secondo la distribuzione uniforme e
e R
q
secondo la distribuzione normale discreta
R,
2. porre b := a s+e
3. ritornare (s, (a, b))
43
Algoritmo 6 Cifratura
Input: n, q R
q
, la chiave pubblica (a, b) R
q
R
q
, il messaggio m
0, 1
n
.
Output: il testo cifrato (c
1
, c
2
) R
q
R
q
.
1. scegliere t R
q
piccolo
2. porre c
1
:= a t
3. porre c
2
:= b t +m
_
q
2

4. ritornare (c
1
, c
2
)
Algoritmo 7 Decifratura
Input: il messaggio cifrato (c
1
, c
2
) R
q
R
q
, la chiave privata s R
q
.
Output: il messaggio in chiaro m 0, 1
n
.
1. ritornare (c
2
c
1
s)
_
2
q
_
4.1.3 Ecienza
Notiamo subito come questa variante porti una maggiore ecienza in termini di
grandezza delle chiavi e questo `e dato dal fatto che si lavora con gli anelli di po-
linomi. Le chiavi dellalgoritmo classico sono costituite da matrici in Z
q
nn
, che
occupano in memoria O(n
2
log q) bits. In questo algoritmo le chiavi sono invece co-
stituite da polinomi in R
q
di grado minore di n, che occupano in memoria O(nlog q)
bits. Rimane invece invariata la grandezza del testo cifrato. Limportanza di ridurre
la grandezza delle chiavi non sta soltanto nella diminuzione delloccupazione di me-
moria e nellaumento della velocit`a di scambio delle chiavi. Utilizzando chiavi pi` u
piccole, diminuisce il numero di operazioni necessarie a cifrare e decifrare un mes-
saggio, aumentando cos` lecienza temporale dellalgoritmo. Andiamo a vedere in
dettaglio lo spazio richiesto in memoria per ogni componente; tutte le misure sono
in bits e i log sono in base 2.
Dimensione chiave pubblica: nlog q
Dimensione chiave privata: 2nlog q
Dimensione del messaggio: n
44
Dimensione del testo cifrato: 2nlog q
Rapporto tra il testo cifrato e il testo in chiaro: 2 log q
4.1.4 Correttezza e sicurezza
La dimostrazione della correttezza `e del tutto analoga a quella per lalgoritmo clas-
sico descritta nel paragrafo 3.5. Lalgoritmo di decifrazione produce il seguente
risultato
(c
2
c
1
s)
_
2
q
_
= (b t +m
_
q
2
_
a t s)
_
2
q
_
= (a s t +e t +m
_
q
2
_
+a t s)
_
2
q
_
= (m
_
q
2
_
+e t)
_
2
q
_
A questo punto `e suciente impostare i valori di e t in modo tale che ogni
coeciente del polinomio e t sia
_
q
4

.
Per quanto riguarda la sicurezza le considerazioni da fare sono le stesse che nel
paragrafo 3.6.
4.2 Crittosistema di Lindner
In [LiP11] Lindner propone un nuovo sistema crittograco, basato su LWE, pi` u
compatto ed eciente della versione standard. Le chiavi sono no a 10 volte pi` u
piccole e garantisce un livello concreto di sicurezza maggiore rispetto alla versione
classica.
4.2.1 Distribuzione gaussiana discreta
Prima di introdurre lalgoritmo crittograco, `e necessario ripresentare la distribu-
zione Gaussiana discreta, in una forma leggermente diversa che ci sar` a utile nella
dimostrazione della correttezza dellalgoritmo.
Dato un reticolo e s R
+
, si denisce la distribuzione Gaussiana discreta
D
,s
su con parametro s, la distribuzione di probabilit`a su che assegna una
probabilit` a, proporzionale a e

x
2
s
2
per ogni x . Per = Z
n
possiamo vedere
(per lortonormalit`a della sua base standard) che la Gaussiana discreta D
Z
n
,s
`e la
45
distribuzione del prodotto di n copie indipendenti di D
Z,s
. Presentiamo ora due
bound per la Gaussiana discreta, per le dimostrazioni cfr [Ban95].
Lemma 4.2.1. Sia c 1 e C = c e
1c
2
2
< 1. Allora per ogni s R
+
e per ogni
intero n 1, abbiamo
Pr
_
|D
Z
n
,s
| c
1
2
s

n
_
C
n
.
Lemma 4.2.2. Per ogni s R
+
, T > 0 e x R
n
, abbiamo
Pr [[x, D
Z
n
,s
[ T s|x|] < 2e
T
2
.
4.2.2 Algoritmo crittograco
Consideriamo distribuzioni gaussiane discrete con parametro s = /

2. I parametri
dellalgoritmo sono: q, n
1
, n
2
N, rispettivamente il numero di elementi e le dimen-
sioni dello spazio di lavoro; i parametri delle Gaussiane, s
k
e s
e
per la generazione
della chiave e per la cifratura; t e l che caratterizzano lo spazio del messaggio. Inne
richiamiamo la funzione che cambia la base denita nel paragrafo 3.3,
t
q
: Z
t
l
Z
t
l
,
denita come

t
q
(n) :=
_
nq
t
_
Descriviamo i tre algoritmi.
Algoritmo 8 Generazione delle chiavi
Input: n
1
, n
2
, l, q N e s
k
R
+
.
Output: la chiave privata R
2
Z
ln
2
e la chiave pubblica (A, P)
Z
q
n
2
n
1
Z
q
ln1
.
1. scegliere A Z
q
mn
secondo la distribuzione uniforme, R
1
Z
ln
1
secondo D
ln
1
Z,s
k
, R
2
Z
ln
2
secondo D
ln
2
Z,s
k
,
2. porre P := R
1
R
2
A
3. ritornare (R
2
, (A, P))
46
Algoritmo 9 Cifratura
Input: n
1
, n
2
, l, t, q N, s
e
R
n
, la chiave pubblica (A, P) Z
q
n
2
n
1

Z
q
ln1
, il messaggio m Z
t
l
.
Output: il testo cifrato (c
1
, c
2
) Z
q
n
2
Z
q
l
.
1. porre m :=
t
q
(m)
2. scegliere e = (e
1
, e
2
, e
3
) Z
n
1
Z
n
2
Z
l
, con ogni componente
scelta inidipendentemente da D
Z,s
e
3. porre c
1
:= Ae
1
+e
2
4. porre c
2
:= Pe
1
+e
3
+m
5. ritornare (c
1
, c
2
)
Possiamo vedere la cifratura in forma matriciale come
c =
_
c
1
c
2
_
=
_
A I
n
2
0
l
P 0
n
2
I
l
_

_
_
e
1
e
2
e
3
+m
_
_
Algoritmo 10 Decifratura
Input: il messaggio cifrato (c
1
, c
2
) Z
q
n
2
Z
q
l
, la chiave privata R
2

Z
q
ln
2
.
Output: il messaggio in chiaro m Z
t
l
.
1. ritornare
q
t
(R
2
c
1
+c
2
)
Andando a svolgere lespressione ritornata dallalgoritmo precedente otteniamo
R
2
c
1
+c
2
= R
2
Ae
1
+R
2
e
2
+Pe
1
+e
3
+m
= R
2
Ae
1
+R
2
e
2
+R
1
e1 R
2
Ae
1
+e
3
+m
= R
2
e2 +R
1
e1 +e
3
+m
Deniamo R :=
_
R
1
R
2
I
l

Z
q
l(n
1
+n
2
+l)
e e = (e
1
, e
2
, e
3
) Z
n
1
Z
n
2
Z
l
. Il
47
(n
1
+ n
2
) c s
k
s
e
)/t
256 1.35 0.08936
384 1.28 0.07695
512 1.25 0.06824
640 1.22 0.06253
Tabella 4.1: Soglie sui parametri per il lemma precedente usando una probabilit` a
di errore di = 0.01 e c `e stato determinato cos` che la probabilit` a di scegliere un
vettore di cifratura cattivo `e al massimo 2
40
risultato della decifrazione diviene quindi
m =
q
t
(Re +m).
Lalgoritmo appena descritto funziona correttamente, cio`e senza produrre errori nel
messaggio decifrato se, denita R
j
la j-esima riga di R
[e, R
j
[ <
_
q t
2t
_
j = 1, .., l (4.1)
4.2.3 Errori di decifrazione e sicurezza
Riportiamo ora i risultati che indicano come devono essere scelti i parametri anch`e
non si producano errori nella decifrazione del messaggio, ovvero che risulti vera la
disuguaglianza 4.1.
Lemma 4.2.3. La probabilit`a di errore per lettera `e limitata superiormente da un
qualsiasi > 0, se
s
k
s
e

2
c

r
_
(n
1
+ n
2
) ln 2/
.
Dove c 1 `e un parametro che dipende solo da n
1
+n
2
e determina quale `e la pro-
babilit`a di ottenere un cattivo vettore e data s
e
, mentre r rappresenta la tolleranza
allerrore del nostro sistema.
Dimostrazione. Supponiamo, senza perdere di generalit` a, che t = 2, la disugua-
glianza 4.1 diventa perci` o [e, R
j
[ <
_
q
4

. Ricordiamoci che ogni componente di


eZ
n
1
Z
n
2
Z
l
`e indipendente e ha un distribuzione D
Z,s
e
.
48
Per limitare la probabilit`a di errore, sia e Z
n
1
+n
2
, il vettore costituito dalle
prime n
1
+ n
2
componenti di e. Allora per il lemma 4.2.1, c`e un c 1 tale che
|e| c
1

2
s
e

n
1
+ n
2
apparte che per una probabilit` a molto bassa. Per ogni e ssato che soddisfa la
disuguaglianza precedente, ogni e, R
j
`e indipendente e distribuito essenzialmente
come e, D
n
1
+n
2
Z,s
k
, ricordiamoci che ogni elemento di R `e stato scelto in accordo a
D
Z,s
k
. Dal lemma 4.2.2 abbiamo che, per ogni T 0
Pr
_
[e, D
n
1
+n
2
Z,s
k
[ T s
k
|e|

< 2e
T
2
.
Impostiamo T
2
= r/(s
k

|e|). Per ipotesi vogliamo che la probabilit` a di errore


per lettera sia minore di perci`o possiamo scrivere utilizzando la disequazione su
|e|
2e

r
s
k
e
e

r
s
k
c
1

2
s
e

n
1
+n
2
/2

r
s
k
c
1

2
s
e

n
1
+ n
2
ln /2
s
k
s
e

2
c

t
_
(n
1
+ n
2
) ln 2/
e otteniamo la disuguaglianza dellipotesi del lemma.
Teorema 4.2.4. Il sistema crittograco `e CPA-sicuro, assumendo la robustezza
della versione decisionale di LWE con modulo q per:
(i) dimensione n
2
con distribuzione dellerrore secondo la distribuzione Gaussiana
con parametro s
k
e
(ii) dimensione n
1
con errore D
Z,s
e
.
Andiamo ora vedere alcune possibili scelte dei parametri che soddisfano tutti i
vincoli precedenti, rendendo lalgoritmo sicuro e adabile.
49
n 192 256 320
q 4093 4093 4093
s 8.87 8.35 8.00
Dim. chiave pubblica in bits 5.25 10
5
11.2 10
5
17.2 10
5
Rapp. testo cifrato/testo chiaro 30 36 42
Probabilit` a di errore < 1% < 1% < 1%
Sicurezza (bassa) (media) (alta)
Tabella 4.2: Possibili scelte dei parametri con l = 128, n
1
= n
2
= n, s
k
= s
e
= s e
t = 2.
50
Capitolo 5
Implementazione e
sperimentazione del sistema
In questo capitolo andiamo a descrivere unimplementazione pratica del sistema
crittograco descritto nel paragrafo 4.2.2. Lidea di unimplementazione `e venuta
dallarticolo di Frederiksen,[Fre10], nel quale descrive la sua implementazione del-
lalgoritmo classico LWE, [Reg05], confrontandolo con il crittosistema di Paillier.
Nel nostro caso non `e stato eettuato un confronto con altri sistemi crittograci,
ma ci siamo limitati a testare i dati teorici, ottenendo alcuni interessanti risultati.
La scelta del sistema crittograco presentato da Lindner e Peikert `e dovuta al
suo miglior rapporto tra grandezza dei parametri e sicurezza. Se confrontiamo le
tabelle 3.1 e 4.2 vediamo come, a parit`a di sicurezza, i parametri della seconda
tabella hanno valori molto minori. Prendiamo per esempio lultima colonna delle
due tabelle che corrisponde ad un livello di sicurezza alto, circa 112 bits, equivalente
ad una chiave a 2048 bits per lRSA. Nella seconda tabella m = n, perci` o il numero
di elementi nelle matrici di lavoro `e almeno la met`a, se aggiungiamo anche che il
parametro q della seconda tabella `e circa un ottavo di quella nella prima, otteniamo
unulteriore ottimizzazione, sia nella maggiore semplicit` a di calcolo che nello spazio
occupato.
5.1 Implementazione
Limplementazione `e stata fatta tutta in Python 2.7, con lutilizzo della libreria
NumPy 1.5.1 per quanto riguarda la scelta dei parametri a random e secondo la
distribuzione Gaussiana. Per quanto riguarda le due matrici R
1
e R
2
e il vettore e,
51
n 192 256 320
q 4093 4093 4093
s 8.87 8.35 8.00
nuovo s 11.3 10.5 9.8
Probabilit` a di errore < 1% < 1% < 1%
Tabella 5.1: Valori di s ottenuti dallesperimento. l = 128 e t = 2.
ogni componente `e stata scelta secondo la distribuzione gaussiana con media zero
e scarto quadratico medio =
s

2
. I parametri utilizzati sono stati quelli forniti
nella tabella 4.2.
Dopo aver vericato con successo leettivo funzionamento del sistema critto-
graco, siamo andati a testare come varia lerrore di decifrazione al variare del
parametro s. I risultati ottenuti sono molto interessanti, in quanto hanno mostrato
che anche per valori di s superiori a quelli presenti nella tabella 4.2, ottenuti dai
vincoli teorici, lerrore di decifrazione rimane minore dell 1 %.
Limportanza di questo risultato `e data dal fatto che il parametro s non inuisce
solo sullerrore di decifrazione, ma anche sulla sicurezza del sistema. Questo perch`e,
allaumento di s corrisponde un aumento dellampiezza della gaussiana, che lavvi-
cina ad una distribuzione uniforme, rendendo cos` il problema LWE pi` u dicile da
risolvere e di conseguenza il sistema crittograco pi` u dicile da rompere.
Sono stati eettuati tre esperimenti, uno per ogni gruppo di parametri. Per
ciascun gruppo abbiamo studiato come variava lerrore al variare di s da 8 a 15 con
passo 0.1. Per ogni s `e stato calcolato lerrore medio su 1000 esecuzioni del sistema
crittograco, ogni volta su un messaggio diverso generato a random. Abbiamo inne
individuato per quale valore di s il sistema produce un errore 1%. I risultati sono
mostrati nella tabella 5.1. Nei seguenti graci si pu` o vedere come varia lerrore
di decifrazione al variare di s, per i tre gruppi di parametri. Basandoci su queste
tabelle siamo quindi in grado di scegliere opportunamente s, in modo da ottenere
lerrore desiderato.
5.2 Sviluppi futuri
I sistemi crittograci basati su LWE hanno ottime qualit`a e per questo si pro-
pongono, nel futuro, come alternativa pratica agli attuali sistemi crittograci. In
52
Figura 5.1: Graco dellerrore di decifrazione in funzione di s per n = 192.
particolare, grazie alla cifratura probabilistica, essi sono semanticamente sicuri, al
contrario della maggior parte degli altri sistemi ed inoltre garantiscono una forte
sicurezza, basata sulla dicolt`a di risoluzione dellLWE nel caso peggiore. Tuttavia
queste qualit` a hanno un prezzo, che `e dato da chiavi grandi e da un grande rapporto
tra testo cifrato e testo in chiaro. La versione basata su ring-LWE `e una prima ot-
timizzazione che permette di migliorare le dimensioni delle chiavi, mantenendo una
forte dimostrazione di sicurezza, sarebbe quindi molto interessante crearne unim-
plementazione pratica. Una sperimentazione interessante sarebbe confrontare il crit-
tosistema LWE con lRSA. La scelta dellRSA come parametro di confronto `e ovvia,
in quanto `e la principale, se non unica, struttura crittograca attualmente in uso.
Il confronto non `e tuttavia semplice, in quanto lRSA `e un sistema deterministico,
mentre come abbiamo visto in precedenza lLWE `e probabilistico. Inoltre il confron-
to andrebbe eseguito con parametri che garantiscano lo stesso grado di sicurezza, e
questo `e dicile, per la loro natura cos` diversa.
53
Figura 5.2: Graco dellerrore di decifrazione in funzione di s per n = 256.
54
Figura 5.3: Graco dellerrore di decifrazione in funzione di s per n = 320.
55
Bibliograa
[Ajt96] M. Ajtai. Generatin Hard Instance of Lattice Problem. Electronic
Colloquium on Computational Complexity, 1996
[AKS01] M. Ajtai, R. Kumar, D. Sivakumar. A sieve algorithm for the shortest
lattice vector problem. Proceeding STOC 01 Proceedings of the thirty-
third annual ACM symposium on Theory of computing, 2001
[Ban95] W. Banaszczyk. Inequalites for convex bodies and polar reciprocal lattices
in R
n
. Discrete & Computational Geometry, 13:217231, 1995.
[Ber71] E. R. Berlekamp. Factoring Polynomials Over Large Finite Fields. SYM-
SAC 71 Proceedings of the second ACM symposium on Symbolic and
algebraic manipulation, 1971
[Cas97] J.W.S, Cassels. An introduction to the geometry of numbers. Springer
Edition, 1997
[CSB91] J. H. Conway, N. J. A. Sloane, E. Bannai. Sphere packing, lattices and
groups. Springer Edition, 1991
[CLR09] T. H. Cormen, C. E. Leiserson, R.L. Rivest, C. Stein. Introduction to
Algorithms. The MIT press, 2009
[Coo71] S. A. Cook, The Complexity of Theorem Proving Procedures, in Proc.
3rd Ann. ACM Symp. on Theory of Computing, pp. 151-158, Association
for Computing Machinery, 1971.
[Fey82] R. P. Feynman. Simulating physics with computers. Int. J. Theor. Phys.,
21(1982)
[Fre10] T. K. Frederiksen. A Practical Implementation of Regevs LWE-based
Cryptosystem. 2010
56
[GNg08] N. Gama and P. Q. Nguyen. Predicting Lattice Reduction. EURO-
CRYPT08
[GGH97] O. Goldreich, S. Goldwasser, and S. Halevi. Public-key cryptosystems
from lattice reduction problems. In Advances in cryptology, volume 1294
of Lecture Notes in Comput. Sci., pages 112131. Springer, 1997.
[GMS99] O. Goldreich, D. Micciancio, S. Safra, J.-P. Seifert. Approximating shor-
test lattice vectors is not harder than sapproximating closest lattice
vectors. Information Processing Letters, 71(2):55-61, 1999
[GGL95] R. L. Graham, M. Gr otschel, L. Lov asz. Handbook of combinatorics, vol.
1, North Holland, 1995
[Her51] C. Hermite. Sur lintroduction des variables continues dans la theorie des
nombres. Reine Angew. Math., v. 41, pp. 191-216, 1851
[HGP03] J. Hostein, N. A. H. Graham, J. Pipher, J. H. Silverman, W. Whyte.
NTRUSIGN: Digital signatures usign the NTRU lattice. In Proc. of CT-
RSA, volume 2612 of Lecture Notes in Comput. Sci., pages 122140.
Springer-Verlag, 2003
[HWa11] J. Huttenhain, L. Wallenborn. Topics in Post-Quantum Cryptography,
Lattice-Based Methods, 2011
[LLL82] A. Lenstra, H. Lenstra and L. Lovasz. Factoring polynomials with
rational coecients. Mathematische Annalen, (page(s) 515 - 534), 1982
[Lin10] R. Lindner. Towards Ecient Lattice-Based Cryptography. PhD. Thesis,
Darmstadt University, 2010
[LiP11] R. Lindner, C. Peikert. Better Key Sizes (and Attacks) for LWE-
Based Encryption. Lecture Notes in Computer Science, 2011, Volume
6558/2011, 319-339, 2011
[LSc92] L. Lovasz, H. Scarf. The Generalized Base Reduction Algori-
thm.Mathematics of Operation Reserch, vol. 17, 1992
[LyM08] V. Lyubashevsky, D. Micciancio. Asymptotically ecient lattice-based
digital signatures. In Fifth Theory of Cryptography Conference (TCC),
volume 4948 of Lecture Notes in Computer Science. Springer, 2008.
57
[LPR10] V. Lyubashevsky, C. Peikert, O. Regev. On Ideal Lattices and Learning
With Errors Over Rings. EUROCRYPT10, 2010
[Mic01] D. Micciancio. The Shortest Vector in a Lattice is Hard to Approximate
to within Some Constant. SIAM Journal on Computing, 30(6):20082035,
March 2001
[MRe08] D. Micciancio, O. Regev. Lattice-based Cryptography. Springer Edition,
2008
[MoP11] G. Modica, L. Poggiolini, Note di calcolo delle probabilit` a, Pitagora
Editrice, Bologna, 2011.
[NSt98] P. Q. Nguyen and J. Stern. Cryptanalysis of the Ajtai-Dwork crypto-
system. In Advances in cryptology (CRYPTO), volume 1462 of Lecture
Notes in Comput. Sci., pages 223242. Springer, 1998
[NgV08] P. Q. Nguyen, T. Vidick. Sieve algorithms for the shortest vector problem
are practical. Journal of Mathematical Cryptology. Volume 2, Issue 2,
Pages 181207, 2008
[Pei09] C. Peikert. Public-Key Cryptosystems from the Worst-Case Shortest Vec-
tor Problem. STOC 09 Proceedings of the 41st annual ACM symposium
on Theory of computing, 2009
[PVW08] C. Peikert, V. Vaikuntanathan, B. Waters. A Framework for Ecient
and Composable Oblivious Transfer. ADVANCES IN CRYPTOLOGY
CRYPTO 2008, Lecture Notes in Computer Science, 2008, Volume
5157/2008, 554-571
[PSt10] X. Pujol, D. Stehle. Rigorous and Ecient Short Lattice Vectors Enu-
meration. Lecture Notes in Computer Science, 2008, Volume 5350/2008,
390-405, 2010
[Reg04] O. Regev, Quantum computation and lattice problem. SIAM J. on
Computing, 33(3):738-760, 2004
[Reg05] O. Regev, On Lattices. Learning with Errors, Random Linear Codes, and
Cryptography. STOC 05 Proceedings of the thirty-seventh annual ACM
symposium on Theory of computing, 2005
58
[Reg09] O. Regev, On Lattices. Learning with Errors, Random Linear Codes, and
Cryptography. Journal of the ACM (JACM) JACM. Volume 56 Issue 6,
September 2009
[Reg10] O. Regev. The Learning with Error Problem. Computational Complexity
(CCC), 2010 IEEE 25th Annual Conference, 2010
[Rud87] W. Rudin. Real and complex analysis. McGraw-Hill, 1987
[Sho94] P. W. Shor. Polynomial-Time Algorithms for Prime Factorization and
Discrete Logarithms on a Quantum Computer. Proceedings of the 35th
Annual Symposium on Foundations of Computer Science, SantaFe, NM,
Nov. 2022, 1994, IEEE Computer Society Press, pp. 124134.
[Wal04] N. R. Wallach. Quantum computing and entanglement for mathema-
ticians. Lectures notes per il corso CIME: Representation Theory and
Complex Analysis.
59

You might also like