You are on page 1of 41

Indice

1 Introduzione 3
2 Descrizione dei sistemi quantistici 4
2.1 Richiami di Algebra Lineare . . . . . . . . . . . . . . . . . . . 4
2.2 I Postulati della Meccanica Quantistica . . . . . . . . . . . . . 6
2.2.1 Denizione . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 Evoluzione . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.3 Misurazione di osservabili quantistiche e riduzione del
pacchetto donda . . . . . . . . . . . . . . . . . . . . . 6
2.2.4 Composizione . . . . . . . . . . . . . . . . . . . . . . . 7
3 Il Qubit 8
3.1 Rappresentazione . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1 Sistemi a un qubit . . . . . . . . . . . . . . . . . . . . 8
3.1.2 Sistemi a n Qubit . . . . . . . . . . . . . . . . . . . . . 9
3.1.3 Rappresentazione vettoriale della base computazionale
estesa . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.4 Rappresentazione della base computazionale estesa at-
traverso lo sviluppo binario . . . . . . . . . . . . . . . 10
3.2 Stati Entangled . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Operatori a singolo bit . . . . . . . . . . . . . . . . . . . . . . 11
3.3.1 Identit`a . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.2 Negazione . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.3 Shift di fase . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.4 Hadamard . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.5 Operatore /8 . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 Operatori a n bit . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4.1 CNOT . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4.2 Hadamard a n qubit . . . . . . . . . . . . . . . . . . . 14
3.4.3 Operatore di Fredkin . . . . . . . . . . . . . . . . . . . 15
3.4.4 Operatori entangling . . . . . . . . . . . . . . . . . . . 15
1
3.4.5 Proiezione . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5 Operatori di Tooli ed operatori reversibili . . . . . . . . . . . 16
3.6 Porte quantistiche universali . . . . . . . . . . . . . . . . . . . 16
3.7 Misurazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 Trasformata di Fourier 19
4.1 Trasformata quantistica . . . . . . . . . . . . . . . . . . . . . 19
4.1.1 Implementazione . . . . . . . . . . . . . . . . . . . . . 20
4.1.2 Costi e complessit` a . . . . . . . . . . . . . . . . . . . . 22
5 Fattorizzazione classica 23
5.1 Brute force . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.2 Metodo di Fermat . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3 Metodo delle curve ellittiche . . . . . . . . . . . . . . . . . . . 25
5.4 Number Field Sieve . . . . . . . . . . . . . . . . . . . . . . . . 25
6 Algoritmo di Shor 27
6.1 Order nding . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2 Panoramica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.3 Probabilit` a di successo . . . . . . . . . . . . . . . . . . . . . . 29
6.4 Algoritmo di Euclide . . . . . . . . . . . . . . . . . . . . . . . 31
6.5 Order nding su un calcolatore quantistico . . . . . . . . . . . 31
6.6 Metodo delle frazioni continue . . . . . . . . . . . . . . . . . . 33
6.7 Complessit` a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.7.1 Probabilit`a di terminazione . . . . . . . . . . . . . . . 34
6.7.2 Costo di una singola iterazione dellalgoritmo . . . . . 36
6.8 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2
Capitolo 1
Introduzione
Oggigiorno vengono eseguite miliardi di transazioni via internet in cui ven-
gono scambiati dati di ogni genere, tra cui dati personali e riservati. Queste
transazioni sono sicure? e se lo sono ora, lo saranno anche in futuro? Gli
attuali metodi crittograci si basano quasi esclusivamente sulla dicolt`a di
invertire alcune funzioni, con cui sono stati cifrati i dati da inviare. Per
invertire i calcoli di queste funzioni `e necessaria una potenza di calcolo mo-
struosa che non `e quasi alla portata di nessuno. Dato che i nostri calcolatori
diventano sempre pi` u veloci secondo una legge esponenziale, ovvero la legge
di Moore, anche i metodi crittograci diventano sempre pi` u complessi. Fino
ad oggi la crittograa `e riuscita a mantenere il passo in modo tale che la po-
tenza di calcolo non fosse mai suciente a decrittare i suoi messaggi. Cosa
succederebbe se invece venisse creato un algoritmo capace di decifrare tali
messaggi in tempi brevi senza avere bisogno di enormi potenze computazio-
nali? Ovvero un algoritmo che potrebbe funzionare tranquillamente su un
computer di fascia bassa che ormai si trova in ogni casa?
Da alcuni anni si `e iniziato a parlare di Calcolatori Quantistici, ovvero com-
puter che per il loro funzionamento si basano su bit quantistici, detti anche
Qubit. Il vantaggio di tali calcolatori `e che riescono a creare un parallelismo
nei calcoli no ad ora mai visto portando alla scoperta di nuovi e interessanti
algoritmi per la risoluzione dei problemi pi` u comuni quali ricerca e ordina-
mento. Tra i tanti algoritmi `e ne `e comparso uno che `e riuscito a mostrare
le deboleze dei nostri attuali metodi crittograci. Tale algoritmo si chiama
Algoritmo di Shor.
La peculiarit` a di tale algoritmo `e la capacit`a di poter facilmente fattoriz-
zare un numero molto grande, problema irrisolto da millenni. Il metodo di
crittograa pi` u usato, ovvero lRSA si basa proprio sulla dicolt`a di po-
ter fattorizzare un numero velocemente. Se fossimo in grado di costruire
calcolatori quantistici anche piuttosto semplici potremmo quindi decifrare i
3
messaggi che viaggiano sul web ottenendo una quantit`a innita di informa-
zioni private. Fortunatamente o sfortunatamente, a seconda del punto di
vista adottato, tali calcolatori sono ancora in uno stato larvale e serviranno
ancora diversi anni prima di poter avere un calcolatore quantistico capace di
fattorizzare i numeri usati nella crittograa RSA. Inoltre non si `e nemmeno
sicuri di poter costruire calcolatori quantistici sucientemente potenti, dato
che esistono molti problemi a livello di implementazione sica. Sono stati
costruiti dei primi modelli di calcolatori quantistici a poche decine di qubit
su cui `e stato testato lalgoritmo di Shor con successo.
4
Capitolo 2
Descrizione dei sistemi
quantistici
2.1 Richiami di Algebra Lineare
Denizione 2.1 (Spazio di Hilbert). Uno spazio di Hilbert `e una coppia
(1, < , >) dove 1 `e uno spazio vettoriale complesso e < , > `e un
prodotto scalare (o una forma hermitiana) su 1, tale che, detta d la distanza
da esso indotta su 1, lo spazio metrico (1, d) sia completo.
Denizione 2.2 (Autovettori e Autovalori ). Sia A : 1 1 un operatore
lineare. Un vettore [v , = 0 1 si dice autovettore di A se A[v = [v,
dove `e un numero complesso detto autovalore di [v.
Denizione 2.3 (Operatori Aggiunti ). Sia A : 1 1 un operatore lineare.
Allora esiste un unico operatore A

su 1, detto operatore aggiunto di A, tale


che
[v , [w C [v [ A[w = A

[v [ [w
Se loperatore A `e Hermitiano o autoaggiunto, cio`e coincide con il suo
aggiunto
A

= A, (2.1)
allora ogni autovalore R.
Denizione 2.4 (Operatori Normali ). Un operatore A : 1 1 si dice
normale se commuta con il suo aggiunto, ovvero se:
A

A = AA

Teorema 2.1.1 (Teorema Spettrale). Un operatore A `e diagonalizzabile se


e solo se `e normale.
5
Denizione 2.5 (Operatori unitari fra spazi di Hilbert). Un operatore
U : 1 1 si dice unitario se
U

U = I. (2.2)
Si osserva che lapplicazione di un operatore unitario U ad un vettore in
uno spazio di Hilbert ne lascia invariata la sua norma.
Denizione 2.6 (a - Prodotto Tensoriale ). Siano V e W spazi vettoriali
complessi di dimensioni nite, m e n, rispettivamente. Si denisce prodotto
tensoriale lo spazio vettoriale complesso nm-dimensionale K = V W (si
legga V tensore W), i cui elementi sono combinazioni lineari, a coecienti
complessi, dei simboli [v [w con [v V e [w W e per cui valgono le
seguenti relazioni:
1. Per un arbitrario scalare z C, [v V e [w W,
z([v [w) = (z [v) [w = [v (z [w)
2. Per [v
1
, [v
2
V e [w W,
([v
1
+[v
2
) [w = [v
1
[w +[v
2
[w
3. Per [v V e [w
1
, [w
2
W,
[v ([w
1
+[w
2
) = [v [w
1
+[v [w
2

Una denizione pi` u intuitiva del prodotto tensoriale `e la seguente:


Denizione 2.7 (b - Prodotto Tensoriale ). Siano V e W spazi vettoriali con
basi rispettivamente v
1
, v
2
, . . . , v
m
, w
1
, w
2
, . . . , w
n
. Si denisce V W lo
spazio vettoriale / che ha come basi v
i
w
j
i m, j n
Denizione 2.8 (Prodotto Tensoriale tra operatori). Sia f : V V

e
g : W W

operatori lineari tra spazi vettoriali. Si denisce


f g : V W V

[v
1
[w
1
[f(v
1
) [g(w
1
)
Nel caso in cui V e V

siano spazi di Hilbert, allora f g `e unitario se f


e g sono unitari a loro volta.
6
2.2 I Postulati della Meccanica Quantistica
2.2.1 Denizione
Postulato 1. Lo spazio degli stati di un sistema sico o `e uno spazio di
Hilbert complesso 1
S
. Lo stato del sistema sico o al tempo t `e descritto
univocamente da un vettore di stato [(t) 1 : |(t)| = 1, con 1 spazio
di Hilbert. Due vettori di stato si dicono equivalenti se appartengono alla
stessa classe di equivalenza rispetto alla relazione :
v v

: v

= v v, v

1/ 0
Quindi due vettori di stato descrivono lo stesso stato se e solo se sono
uguali o dieriscono a meno di una fase, che equivale alla moltiplicazione per
e
i
con R.
2.2.2 Evoluzione
Postulato 2. In un sistema quantistico isolato o, la transizione da uno stato
[(t
1
) a uno stato [(t
2
) avviene tramite un operatore unitario U(t
2
, t
1
)
dipendente solamente dal sistema o e dai due istanti di tempo (t
1
, t
2
)
[(t
2
) = U(t
2
, t
1
) [(t
1
)
In modo analogo `e del tutto equivalente aermare che il sistema evolva se-
condo lequazione di Schrodinger
i
d
dt
[(t) = H [(t) (2.3)
dove H `e un operatore autoaggiunto noto come

Hamiltoniana del sistema e
h/2, con h costante di Planc. La relazione fra loperatore unitario
devoluzione U(t
1
, t
2
) e lhamiltoniana H `e data da U(t
2
, t
1
) = e
iH(t
2
t
1
)
.
Dato che la equazione di Schr odinger `e lineare vale il principio di sovrap-
posizione degli eetti.
2.2.3 Misurazione di osservabili quantistiche e riduzio-
ne del pacchetto donda
Postulato 3. a - Osservabili e misurazioni - Un osservabile quantisti-
ca di un sistema o `e descritta da un operatore autoaggiunto A sullo spazio
7
di Hilbert 1
S
associato al sistema. Gli unici risultati possibili di una mi-
surazione dellosservabile A sono gli autovalori (reali) delloperatore A. Pi` u
precisamente, se consideriamo lequazione agli autovalori per A
A[i = a
i
[i (2.4)
dove [i `e una base ortonormale di autovettori delloperatore A ed espandiamo
il vettore di stato in questa base
[(t) =

i
c
i
(t) [i , (2.5)
allora la probabilit`a che una misura dellosservabile A al tempo t fornisca
risultato a
i
`e data da
p
i
(t) = p(a = a
i
[t) = [ i[(t) [
2
= [c
i
(t)[
2
(2.6)
b - Riduzione del pacchetto donda - Inoltre, se allistante t
0
un sistema
si trova nello stato [(t
0
) e si misura un osservabile A, ottenendo risultato
a
i
, allora immediatamente dopo la misurazione lo stato del sistema `e dato
da:
P
i
[(t
0
)
_
(t
0
)[ P
i
[(t
0
)
, (2.7)
dove P
i
`e loperatore di proiezione sul sottospazio corrispondente allautova-
lore a
i
.
Dato che il vettore [ ha norma unitaria, coerentemente con la deni-
zione di probabilit`a, abbiamo:

i
p
i
(t) =

i
[c
i
(t)[
2
= 1
2.2.4 Composizione
Postulato 4. Lo spazio degli stati di un sistema sico o formato dai sotto-
sistemi o
1
, o
2
, . . . , o
n
`e dato dal prodotto tensoriale degli spazi degli stati dei
sistemi sici che lo compongono:
1
S
= 1
S
1
1
S
2
1
S
n
E utile notare che che se 1 = 1
1
1
2
allora esistono vettori (e quindi
vettori di stato) che non si possono scrivere nella forma decomposta [v =
[v
1
[v
2
con [V
i
1
i
. Tali stati prendono il nome di stati Entangled.
Questo argomento verr` a ridiscusso in modo pi` u approfondito in seguito.
8
Capitolo 3
Il Qubit
Classicamente un singolo bit di informazione pu`o assumere i due valori 0 o 1.
In sistemi quantistici questa rappresentazione non `e pi` u suciente in quanto
un singolo qubit pu` o assumere contemporaneamente i valori 0 e 1. Quando
un qubit si trova in un tale stato si dice che esso `e in una sovrapposizione
di 0 e 1. Questa `e la caratteristica sica che permette un grande speedup
computazionale, ma che pone grandi problemi tecnologici in quanto lo stato
di un sistema di qubit `e estremamente fragile. Per risolvere questi problemi
sono state intraprese due dierenti soluzioni:
1. Cercare di rendere lo stato di un qubit il pi` u stabile possibile, riducendo
le interazioni con lambiente, attraverso mezzi tecnologici avanzati quali
EPR o ION TRAP.
2. Cercare di costruire sistemi tolleranti agli errori usando metodi di
correzione.
Queste nozioni verranno ripresentate nei prossimi paragra in modo pi` u
dettagliato.
3.1 Rappresentazione
3.1.1 Sistemi a un qubit
Come garantito dal primo postulato della meccanica quantistica `e possibile
rappresentare lo stato di un qubit attraverso un vettore [ (
2
. Questo
vettore `e della forma [ = [
1
+ [
2
, con , ( : [[
2
+ [[
2
= 1 e
[
1
, [
2
ortonormali. Nel nostro caso verranno scelti come vettori ortonor-
mali [0 e [1 in analogia ai bit della computazione classica, ma `e possibile
9
scegliere qualsiasi altra coppia di vettori ortonormali in uno spazio di Hilbert.
Questi due vettori possono essere rappresentati nel seguente modo:
[0 =
_
1
0
_
(3.1)
[1 =
_
0
1
_
. (3.2)
Con questa base, detta base computazionale, `e possibile rappresentare ogni
stato di un singolo qubit come combinazione lineare di questi due vettori:
[ = [0 + [1 , (
3.1.2 Sistemi a n Qubit
Un sistema con n qubit pu` o essere rappresentato sempre attraverso un vet-
tore, in una nuova base ottenuta tramite il prodotto tensoriale fra le basi dei
singoli Qubit. Se chiamiamo H lo spazio di Hilbert di un sistema a un qubit,
allora grazie al postulato della composizione `e possibile descrivere lo spazio
degli stati di un sistema a n qubit come
n
H. Nel nostro caso avendo scelto
per ogni Qubit la base [0 , [1 otteniamo che un generico vettore [ pu` o
essere scritto come:
[ = ([0 + [1) (
2
[0 +
2
[1) (
n
[0 +
n
[1)
che per comodit` a di notazione scriveremo come:
[ =
1
[0000000 . . . 0 +
2
[0000000 . . . 1 + +
n
[1111111 . . . 1
Questi nuovi vettori rappresentano una base per lo spazio n-dimensionale del
sistema chiamata base computazionale estesa dove i
1
i
2
. . . i
n
[ [ := i
1
[ [
i
n
[ [.
3.1.3 Rappresentazione vettoriale della base computa-
zionale estesa
E possibile rappresentare n qubits introducendo un isomorsmo fra (C
2
)
n
e C
2
n
, detto rappresentazione vettoriale, nel seguente modo ricorsivo.
Per un sistema a due qubit [a e [b:
[a [b =
_
a
1
a
2
_

_
b
1
b
2
_

_

_
a
1
b
1
a
1
b
2
a
2
b
1
a
2
b
2
_

_
, (3.3)
10
ed essendo poi [c lo stato di un sistema a (n1) qubits (quindi, un elemento
di 1
n1
isomorfo, per induzione, a C
2
n1
) e [d un singolo qubit si pu` o
scrivere il vettore 2
n
dimensionale che rappresenta uno stato in 1
n
come
[c [d =
_

_
c
1
c
2
.
.
.
c
n1
_

_
d
1
d
2
_

_

_
c
1
d
1
c
1
d
2
.
.
.
c
n1
d
1
c
n1
d
2
_

_
. (3.4)
Si prendano ad esempio due qubit nello stato [0, il sistema da essi
composto ha una rappresentazione in C
4
cos` denita
[0 [0 =
_
1
0
_

_
1
0
_

_

_
1
0
0
0
_

_
; (3.5)
e componendo il sistema ottenuto con un terzo qubit nello stato [1 si ottiene
[0 [0 [1
_

_
1
0
0
0
_

_
0
1
_

_

_
0
1
0
0
0
0
0
0
_

_
. (3.6)
3.1.4 Rappresentazione della base computazionale este-
sa attraverso lo sviluppo binario
Una rappresentazione pi` u compatta si pu` o ottenere notando che qualsiasi
vettore della base computazionale estesa pu`o essere interpretato come un
numero binario nel seguente modo:
[0 := [00 . . . 0 := [0 [0 [0
[1 := [0 . . . 01 := [0 [0 [1
[2 := [0 . . . 10 := [0 [1 [0
.
.
.
[2
n
1 := [11 . . . 1 := [1 [1 [1 ,
11
Grazie a questo accorgimento possiamo riscrivere un vettore generico [ nel
seguente modo:
[ =
2
n
1

i=0
c
i
[i (3.7)
con la condizione di normalizzazione
2
n
1

i=0
[c
i
[
2
= 1
Questa notazione verr` a ripresa in seguito per rappresentare in modo compat-
to la trasformata quantistica di Fourier.
3.2 Stati Entangled
Grazie alle notazioni acquisite `e possibile esprimere ogni vettore di stato
tramite gli stati dei singoli qubit nel sistema. Esistono per` o alcuni stati non
esprimibili in tale modo;
vediamo un esempio: lo stato
[00 + [11 , = =
1

2
non pu`o essere rappresentato come prodotto tensoriale di due qubits:

1
[0 +
1
[1), (
2
[0 +
2
[1)
Questo accade poich`e:
(
1
[0 +
1
[1) (
2
[0 +
2
[1) = [00 + [11
(
1
[0+
1
[1)(
2
[0+
2
[1) =
1

1
[00+
1

2
[01+
2

1
[10+
2

2
[11
ma in questo caso
1

2
= 0 implica che
1

2
= 0 oppure
1

2
= 0 e quindi
non `e possibile scomporre lo stato iniziale.
3.3 Operatori a singolo bit
Come nei calcolatori classici esistono delle porte logiche quantistiche per po-
ter eseguire le operazioni classiche della logica proposizionale quali AND,NOT
e OR. Verranno qui presentate le pi` u comuni e quelle che servono per la corret-
ta comprensione dellalgoritmo di Shor presentato in seguito. E importante
12
notare che tutte le porte logiche quantistiche eseguono azioni reversibili dato
che vogliamo mantenere i vettori di stato di norma unitaria. Si consideri un
qubit nello stato
[ = a [0 + b [1 a, b C, [a[
2
+[b[
2
= 1,
unoperazione su di esso , per esempio lazione di una porta quantistica,deve
essere intesa come evoluzione del sistema quantistico qubit e pertanto (come
indicato dal secondo postulato) rappresentata da una matrice U, 22, tale
che
U

U = I,
condizione che ne esprime l unitariet`a.
3.3.1 Identit`a
Questa risulta loperatore pi` u semplice in quanto restituisce in uscita il qubit
ricevuto in ingresso.
I : [0 [0
[1 [1
Loperatore pu`o essere espresso in forma matriciale nel seguente modo:
I =
_
1 0
0 1
_
3.3.2 Negazione
Questo operatore riproduce in uscita il singolo qubit in ingresso negato.
X : [0 [1
[1 [0
Loperatore pu`o essere espresso in forma matriciale nel seguente modo:
X =
_
0 1
1 0
_
13
3.3.3 Shift di fase
Questo operatore ruota di

2
la fase del qubit in ingresso.
Z : [0 [0
[1 [1
Loperatore pu`o essere espresso in forma matriciale nel seguente modo:
Z =
_
1 0
0 1
_
3.3.4 Hadamard
Questo operatore porta un singolo qubit in una sovrapposizione di [0 e [1.
Tale caratteristica lo rende ampiamente usato nella costruzione di circuiti in
calcolatori quantistici.
H [0 =
1

2
([0 +[1) [+ , (3.8)
H [1 =
1

2
([0 [1) [ . (3.9)
Nei circuiti viene rappresentato nel seguente modo:
Figura 3.1: Porta di Hadamard
3.3.5 Operatore /8
Tale operatore prende il suo nome dal fatto che pu` o essere scritto nella
seguente forma:
T = e
i/8
_
e
i/8
0
0 e
i/8
_
. (3.10)
Espresso in notazione matriciale avremo il seguente risultato:
T =
_
1 0
0 e
i/4
_
. (3.11)
14
3.4 Operatori a n bit
3.4.1 CNOT
Il comportamento della porta Controlled-not `e il seguente:
CNOT([x [y) = [x [x y
E possibile rappresentare, utilizzando la base introdotta precedentemente,
tale operatore nella seguente forma matriciale:
CNOT =
_

_
1 0 0 0
0 1 0 0
0 0 0 1
0 0 1 0
_

_
.
Si pu` o facilmente notare, come gi` a evidenziato precedentemente, che tale ope-
ratore `e reversibile. Il primo qubit viene spesso denito bit di controllo, men-
tre il secondo prende il nome di bit bersaglio. Nei circuiti viene rappresentato
nel seguente modo:
Figura 3.2: Porta CNOT
3.4.2 Hadamard a n qubit
Loperatore Hadamard a un qubit precedentemente visto pu`o essere facilmen-
te esteso a n qubit, utilizzando la notazione binaria precedentemente vista,
nel seguente modo:
(H H H) [000 . . . 0 =
1

2
n
(([0 +[1) ([0 +[1) ([0 +[1)) =
1

2
n
2
n
1

x=0
[x
E importante notare come questo operatore, applicato a n qubit, generi una
sovrapposizione di tutti gli 2
n
1 stati possibili.
15
3.4.3 Operatore di Fredkin
Loperatore S, detto operatore di Fredkin(o switch), applicato a due qubit
scambia lo stato di essi nel seguente modo:
[a [b [a [a b
[a (a b) [a b = [b [a b
[b [(a b) b = [b [a , (3.12)
Si nota quindi che esso `e implementabile attravero la applicazione di tre
porte CNOT consecutivamente.
3.4.4 Operatori entangling
Denizione 3.1 (Operatore Entangling). Un operatore unitario a due qubit
V : C
2
C
2
C
2
C
2
si dice entangling, cio`e capace di generare il fenomeno dellentanglement se
esistono [u , [v 1 C
2
tali che
V ([u [v),
non `e decomponibile, cio`e non pu`o essere scritto nella forma
[u

[v

.
3.4.5 Proiezione
Dato un vettore di stato [ = ([x
1
+
2
[x
2
+ +
n
[x
n
) H, si
denisce loperatore di proiezione P sul sottospazio H
0
H,di dimensione
m come:
P : ([x
1
+
2
[x
2
+ +
n
[x
n
) ([x
1
+
2
[x
2
+ +0 [x
i
+ +0 [x
i+mn
+ +
n
[x
n
)
ovvero tale operatore annulla mn componenti del vettore [. Inoltre tale
operatore risulta autoaggiunto tenendo conto che H

= H
0
H
0

, in quanto:
< w, Pv >=< w
0
+w
0

, v
0
>=< w
0
, v
0
>=< w
0
, v
0
+v
0

>=< w
0
, v >=< Pw, v >
(3.13)
Grazie a questo fatto questo operatore pu` o essere realizzato sicamente.
16
3.5 Operatori di Tooli ed operatori reversi-
bili
Gli operatori visti in precedenza sono tutti reversibili e facilmente compa-
rabili agli operatori della logica classica. E importante notare che tutti gli
operatori quantistici sono per loro natura reversibili; viene quindi spontanea
la domanda se sia possibile esprimere ogni funzione logica classica attraverso
operatori quantistici. E facile osservare che nella logica classica esistono degli
operatori non reversibili come lo XOR o il NAND. Ad esempio lo XOR clas-
sico viene quantisticamente simulato attraverso lutilizzo della porta CNOT
nella base computazionale proiettato sul qubit bersaglio. In generale abbia-
mo che si possono simulare tutte le porte logiche classiche su circuiti quan-
tistici mediante operatori particolari e proiezioni. Un importante strumento
mediante il quale ogni circuito classico pu`o essere implementato con porte
quantistiche `e la porta di Tooli. Tale operatore ha tre qubits in input, di
cui due utilizzati come qubits di controllo e un terzo come bersaglio:
[a [b [c [a [b [c ab a, b, c 0, 1. (3.14)
A seconda degli input la porta di Tooli pu` o simulare svariate porte classiche
irreversibili. Si parla di simulazione perch`e loperatore non realizza esatta-
mente la funzione corrispondente ma una analoga in versione quantistica.
Tale operatore viene rappresentato nel seguente modo:
Figura 3.3: Tooli gate
3.6 Porte quantistiche universali
Una caratteristica molto importante dei calcolatori classici `e lesistenza di
insiemi di porte logiche che possono essere utilizzate per comporre qualsiasi
funzione (ad esempio linsieme composto da AND, OR e NOT), questi insiemi
sono chiamati universali. Vogliamo mostrare che un concetto analogo esiste
anche nel campo dei calcolatori quantistici; deniamo intanto
Denizione 3.2. (Insiemi universali)
1. Un insieme di porte logiche classiche (rispettivamente, quantistiche) ( si
17
dice strettamente universale se ogni porta logica classica (rispettivamente,
quantistica) U ad un numero arbitrario di bits (rispettivamente, di qubits),
si scrive come composizione di un numero nito (dipendente da U) di porte
in (.
2. Un insieme di porte logiche quantistiche ( si dice universale se per ogni
porta logica quantistica ad un numero arbitario di qubits, cio`e per ogni ope-
ratore unitario U di C
N
, con N intero positivo arbitario, e per ogni > 0
esiste un numero nito G
1
, G
2
, ..., G
n
di operatori unitari in ( tali che
[[U G
1
G
2
G
n
[[ < .
Nella denizione precedente
[[F[[ := sup[F(u)[ [ u C
N
, [u[ = 1, per ogni operatore lineare
F : C
N
C
N
;
se G `e una porta (operatore) in ( e G opera su n-bits (o qubits), non
facciamo distinzione tra G e la sua estensione ad una porta (opera-
tore) a N bits (o qubits), ottenuta inserendo,in tutti i modi possibili,
lidentit` a sui restanti (N n) bits (o qubits).
E ben noto che le porte AND, OR e NOT costituiscono un insieme (-
nito) strettamente universale di porte classiche. Nel caso quantistico, poich`e
il gruppo delle matrici unitarie U(N) `e non numerabile, non pu`o esistere un
insieme nito strettamente universale di porte logiche quantistiche. E tut-
tavia possibile individuare alcuni insiemi niti, ciascuno universale, di porte
logiche quantistiche. Enunciamo intanto il seguente teorema
Teorema 3.6.1 (Brylinsky,brylinsky). Sia
V : C
2
C
2
C
2
C
2
un operatore a 2 qubits e sia U(C
2
) linsieme di tutti gli operatori unitari
C
2
C
2
. Sia
G
V
:= V, U(C
2
)
allora sono fatti equivalenti
G
V
`e un insieme universale di porte quantistiche
G
V
`e un insieme strettamente universale di porte quantistiche
V `e entangling
Corollario 3.6.2. Linsieme G
CNOT
`e un insieme strettamente universale
di porte quantistiche.
Unaltro insieme universale per il calcolo quantistico `e composto dalle
seguenti porte: Hadamard, Shift di fase, CNOT, /8;
18
3.7 Misurazione
Come visto in precedenza `e noto che misurare un vettore di stato quantistico
equivale a proiettare tale vettore ssu unautospazio dellosservabile quanti-
stica che stiamo misurando. Dopo questa azione il nostro vettore di stato si
trover`a nello stato misurato. Cosa succederebbe se invece volessimo misura-
re pi` u volte uno stato ignoto del tipo [ = [0 + [1? con tale metodo
questo risulta impossibile. Dovremmo eseguire tante copie di tale stato e
misurarlo ripetute volte. Questo fatto porta ad un noto teorema che mostra
la impossiblit`a di clonare uno stato ignoto:
Teorema 3.7.1 (Teorema del No-Cloning). Non `e possibile costruire un di-
spositivo quantistico che implementi un operatore lineare unitario che copi il
generico stato di un qubit.
Dimostrazione. Supponiamo di avere un operatore lineare U che implementi
loperazione di clonazione nel seguente modo: U [x0 = [xx per ogni vettore
di stato [x. In particolare, possiamo prendere due vettori [a e [b :
U [a0 = [aa , U [b0 = [bb a[ [b , = 0 (3.15)
consideriamo [c =
1

2
([a +[b) Per la linearit` a di U otteniamo:
U [c0 =
1

2
(U [a0 + U [b0) =
1

2
([aa +[bb) (3.16)
ma se U clonasse allora
U [c0 = [cc =
1
2
([aa +[ab +[ba +[bb) (3.17)
che non risulta uguale a
1

2
([aa +[bb).
E importante rimarcare il fatto che si parla di stati ignoti, in quanto uno
stato noto pu`o essere replicato a piacere.
Questo `e un limite intrinseco ai sistemi quantistici che contrasta le grandi
potenzialit` a computazionali possibili. La maggiore potenzialit`a di tali siste-
mi deriva dal fatto che se applichiamo un operatore lineare U a uno stato
che si trova in una sovrapposizione, allora U verr` a applicato a tutti i vettori
che compongono la base di tale stato contemporaneamente, generando una
nuova superposizione dello stato di ingresso. Se potessimo misurare tutte
le componenti della base avremmo un incremento di prestazioni esponenzia-
le, ma come visto in precedenza questo ci risulta impossibile per via delle
restrizioni che ci impone loperazione di misura e di clonazione.
19
Capitolo 4
Trasformata di Fourier
In generale una trasformata di Fourier mappa una funzione nel dominio
del tempo in una funzione nel dominio della frequenza. Esistono diverse
trasformate di fourier, ma nel nostro caso useremo le seguenti:
Trasformata di Fourier continua (FT)
Trasformata di Fourier discreta (QFT)
Nel nostro caso ci interessa la trasformata quantistica di Fourier (QFT)
che risulta molto simile alla trasformata di Fourier discreta. Vediamo prima
come funziona la trasformata di fourier discreta: Questo operatore prende
in ingresso N campioni x
n
, associati a una divisione N-regolare di [0, 2), di
una funzione e genera una funzione che ha come dominio gli interi tra 0 e
N 1. Tale operazione pu`o essere schematizzata nel seguente modo:
X
k
=
N1

n=0
x
n
e

2i
N
kn
(4.1)
Se la funzione campionata in ingresso `e periodica di periodo r, allora la
funzione che si otter`a attraverso la DFT avr`a valori diversi da 0 solo nei
multipli di
N
r
. Nel caso in cui la funzione in ingresso non sia periodica, la
funzione in uscita approssimer`a la funzione in ingresso con valori diversi da
0 nelle vicinanze degli interi
N
r
.
4.1 Trasformata quantistica
La QFT risulta analoga alla DFT precedentemente descritta, con lunica
dierenza che N deve essere una potenza di 2.

x
g(x) [x =

c
G(c) [c (4.2)
20
dove G(c) `e la trasformata quantistica di g(x) e x e c sono numeri binari
nellintervallo [0, N 1] con N potenza di 2. Se si misura lo stato di un
sistema dopo aver applicato la trasformata si avr` a come risultato lo stato [c
con probabilit`a [G(c)[
2
. Questo porta al seguente risultato:

c
[G(c)[
2
= 1 (4.3)
Se applichiamo la trasformata di Fourier quantistica ad una funzione g(x)
periodica di periodo r ci aspettiamo di ottenere

c
G(c) [c, con G(c) diver-
so da 0 nei multipli di
N
r
. Quindi se misuriamo lo stato ottenuto dovremmo
ottenere qualcosa del tipo j
N
r
, con j R. Questo per` o non avviene se non si
ha un periodo multipilo di 2, ovvero che divide N.
In generale la trasformata quantistica di Fourier U
QFT
, con N = 2
m
, pu` o es-
sere espressa nel seguente modo, usando lo sviluppo binario precedentemente
descritto:
U
QFT
: [x
1

2
m
2
m
1

c=0
e
2icx
2
m
[c (4.4)
Maggiore viene scelta la potenza di 2, maggiore sar`a la precisione con cui la
trasformata approssima la funzione.
4.1.1 Implementazione
Per poter implementare ecentemente la QFT sono necessari due operatori.
Il primo `e loperatore di Hadamard, percedentemente descritto. Denoteremo
con H
j
loperatore di applicato al j-esimo qubit. Il secondo operatore opera
su due qubit nel seguente modo:
R
j,k
=
_

_
1 0 0 0
0 1 0 0
0 0 1 0
0 0 1 e
i
jk
_

_
(4.5)
con
jk
=

2
jk
. Con questi due operatori `e possibile implementare in modo
ecente la trasformata quantistica. Vediamo pi` u in dettaglio come sia possi-
bile costruire un circuito a partire dagli operatori precedenti che implementa
21
tale trasformata tenendo conto che N = 2
m
:
[x
1
2
m/2
N1

c=0
e
2ixc/N
[c
=
1
2
m/2
1

c
1
=0
...
1

c
m
=0
e
2ix(

m
l=1
c
l
2
l
)
[c
1
...c
m
(4.6)
=
1
2
m/2
1

c
1
=0
...
1

c
m
=0
n

l=1
e
2ixc
l
2
l
[c
l
(4.7)
=
1
2
m/2
m

l=1
_
1

c
l
=0
e
2ixc
l
2
l
[c
l

_
(4.8)
=
1
2
m/2
m

l=1
_
[0 + 2
2ix2l
[1

(4.9)
=
1

2
([0 + e
2i0x
m
[1)
1

2
([0 + e
2i0x
n1
x
m
[1) . . .

1

2
([0 + e
2i0x
1
x
2
...x
m
[1). (4.10)
tenendo conto della notazione:
0x
0
x
1
x
2
. . . x
n
=
x
0
2
n+1
+
x
1
2
n
+ +
x
n
2
(4.11)
Si nota dallultimo passaggio come siano sucienti i due operatori prece-
dentemente descritti. Grazie a questa decomposizione `e possibile costruire il
circuito per calcolare la QFT nel seguente modo:
Figura 4.1: Circuito che realizza la trasformata quantistica di Fourier. Sono
omessi i fattori 1/

2 di normalizzazione.
dove j
1
. . . j
n
sono i singoli qubit. Si deve notare per` o che tale circuito
genera i qubit in ordine inverso e quindi avremo bisogno di uno swap nale
22
per riordinare il nostro risultato.
La trasformata quantistica inversa f
1
([c) `e data da:
f
1
([c) =
1

2
n
2
n
1

k=0
e
2i
ck
2
n
[k (4.12)
4.1.2 Costi e complessit`a
Il primo qubit deve attraversare una porta di Hadamard e n 1 shift di
fase per un totale di n porte. Il secondo qubit deve attraversare una porta
di Hadamard e n 1 shift di fase per un totale di n 1 porte. Conti-
nuando no alln-esimo qubit otteniamo che il numero di porte necessarie ad
implementare la QFT `e:
n + (n 1) + + (n n + 1) =
n(n 1)
2
(4.13)
Considerando anche il numero, (n), di swap necessari a riordinare il risul-
tato otteniamo una complessit` a di (n
2
). Questo risulta gi` a un notevole
guadagno dato che lalgoritmo pi` u veloce per il calcolo della DFT, ovvero la
Fast Fourier Transform, ha una complessit`a di (2
n
). E fondamentale no-
tare che senza questo risultato non sarebbe possibile ottenere nellalgoritmo
di Shor una complessit`a minore di quella esponenziale, dato che con la FFT
normale abbiamo gi`a una complessit`a tale.
23
Capitolo 5
Fattorizzazione classica
Problema (Fattorizzazione in numeri primi). Dato un intero positivo com-
posto N, si vuole sapere quali sono i numeri primi che moltiplicati tra loro
diano come risultato N.
Dati due numeri a e b `e molto semplice controllare se essi sono i fattori
di un numero N. Con il miglior algoritmo si ha una complessit` a (n
1,465..
),
ma risulta estremamente complicato trovare a e b dato il numero N. Con
numeri piccoli tale problema `e facilmente approcciabile, ma quando i numeri
superano le 100 cifre il problema diventa spesso intrattabile. Oggigiorno
tale fatto viene sruttato in diversi metodi di crittograa quale lRSA, uno
dei metodi pi` u comuni. Se fosse possibile fattorizzare grandi numeri in poco
tempo non sarebbe pi` u possibile usare tali metodi di crittograa per eseguire
transazioni sicure.
5.1 Brute force
Il metodo forza bruta `e un algoritmo di risoluzione di un problema che con-
siste nel vericare tutte le soluzioni teoricamente possibili no a che si trova
quella eettivamente corretta. Il suo principale fattore positivo `e che con-
sente teoricamente sempre di trovare la soluzione corretta, ma per contro `e
sempre la soluzione pi` u lenta o dispendiosa. In ambito crittograco, avere
un algoritmo che pu` o essere decifrato solo usando un metodo a forza bruta `e
una ottima cosa, in quanto i costi per la decifrazione sono solitamente spro-
porzionati. Prendiamo anche il solo semplice esempio di dover trovare una
combinazione di una semplice serratura a combinazione. Supponiamo che ci
siano 10 rondelle numerate con i numeri da 0 a 9. In questo caso dovrem-
mo provare 10
10
combinazioni. Se tentassimo manualmente di forzare tale
serratura ci impiegheremmo probabilmente tutta la vita.
24
5.2 Metodo di Fermat
Il metodo di fattorizzazione di Fermat `e un algoritmo ideato da Pierre de
Fermat per fattorizzare dei numeri interi nei suoi fattori primi. Si basa sulla
rappresentazione di un numero come dierenza di due quadrati, ed `e pi` u
ecace quando esistono due fattori del numero vicini tra loro. Vediamo
come funziona tale algoritmo:
1. Sia n un numero dispari.
2. a = ,

n|.
3. Ripeti
(a) b = a
2
n.
(b) Se b non `e un quadrato perfetto a = a + 1
4. nch`e b non `e un quadrato perfetto.
5. b
2
=

b.
6. n = (a b)(a + b).
Spiegazione: Supponiamo che n sia un intero dispari, e che esistano due interi
a e b tali che n = ab (con a > b). Allora
n = (
a + b
2
)
2
(
a b
2
)
2
(5.1)
Quindi n `e la dierenza di due quadrati. Essendo n un intero dispari, anche
a e b lo devono essere a loro volta: dunque i numeri d = a+b e c = ab sono
pari e la loro semisomma `e un intero. Lespressione d
2
c
2
pu` o quindi essere
vista come (dc)(d+c), e se d ,= c +1, si `e ottenuta una fattorizzazione non
banale di n.Lalgoritmo consiste quindi nel calcolare i numeri a
2
n nch`e
non si trova un quadrato perfetto; in tal caso
a
2
n = b
2
a
2
b
2
= n (5.2)
Il calcolo dei quadrati successivi `e inoltre facilitato dal fatto che le dierenze
tra quadrati consecutivi formano una progressione aritmetica di ragione 2:
(a + i)
2
(a + i 1)
2
= 2a + 2i + 1. Il riconoscimento dei quadrati pu` o
essere eettuato o attraverso metodi di aritmetica modulare (che elimina
molte possibilit` a per i quadrati: ad esempio lultima cifra decimale non pu`o
essere solo 2, 3, 7 o 8) oppure attraverso apposite tavole dei quadrati. Questo
algoritmo ha un costo di (

n) dove n `e il numero da fattorizzare. Il costo


pu` o essere facilmente dedotto dallalgoritmo stesso.
25
5.3 Metodo delle curve ellittiche
Il metodo delle curve ellittiche (ECM) `e un algoritmo di fattorizzazione di
ordine subesponenziale, ideato da H.W.Lenstra nel 1985. La particolarit`a di
tale algoritmo `e dovuta al fatto che la sua complessit` a dipende fortemente
dal fattore primo pi` u piccolo del numero da fattorizzare e non tanto dalla
lunghezza n del numero stesso. In termini di prestazioni tale algoritmo si
posiziona al terzo posto dopo il Quadratic Sieve e il Number Field Sieve.
Risulta ottimo per fattorizzare numeri che hanno fattori di 20-25 cifre, ovvero
da 64 a 83 bits. In generale una curva ellittica viene descritta nel seguente
modo
E(Z/nZ) = (x, y L
2
(Z/Z
n
), y
2
x
3
+ ax + b(modn) (5.3)
dove L
2
(Z/nZ) `e il piano proiettivo su (Z/nZ), a, b (Z/nZ) e lelemento
neutro `e O = (0, 1), detto anche punto allinnito. Deniamo KP = P +P +
+ P K volte dove + indica la operazione di somma tra curve ellittiche e
P `e un punto su di una curva ellittica. Lalgoritmo si basa sul fatto che data
una curza ellittica y
2
x
3
+ ax + b(modn) con n numero da fattorizzare,
possiamo creare due curve ellittiche pi` u piccole uguali, ma modulo p e q, con
p e q fattori di n. Queste due curve, con una operazione di somma, possono
essere viste come gruppi. Se questi due gruppi hanno rispettivamente N
p
e
N
q
elementi, allora per ogni punto P della curva di partenza si avr`a, per il
teorema di Lagrange,che se KP = inf sulla curva modulo P, allora K divide
N
p
. Utilizzando operazioni su gruppi `e quidi possibile risalire ad un fattore
non banale di n. Verranno tralasciati gli aspetti tecnici di tale metodo per i
quali si rimanda a [Lenstra]
5.4 Number Field Sieve
Il Numer Field Sieve `e il pi` u eciente algoritmo classico conosciuto per fat-
torizzare gli interi con pi
`
di 100 cifre. Euristicamente, la sua complessit`a
computazionale, per fattorizzare un intero n `e

_
e
(c+o(1))(log n)
1
3 (log log n)
2
3
_
(5.4)
ove c `e una costante che dipende dalla variante dellalgoritmo utilizzata. Il
Number Field Sieve (sia generale che speciale) pu`o essere considerato une-
stensione del pi` u semplice Rational Sieve. Per fattorizzare un intero grande
n, questultimo algoritmo ha bisogno di trovare numeri dello stesso ordine di
n che hanno fattori primi piccoli; la rarit` a di questi numeri rende di fatto
26
inutilizzabile il rational sieve. Per ovviare a questo problema, i crivelli dei
campi di numeri sposta il problema negli anelli degli interi di alcuni campi
di numeri. Questa approccio, pur introducendo alcune complicazioni teori-
che, rende suciente cercare gli interi con fattori primi piccoli tra i numeri
di ordine n
1/d
, ove d `e un intero maggiore di 1. Dato che i numeri pi` u pic-
coli hanno generalmente fattori primi pi` u piccoli, questa modica aumenta
notevolmente lecienza del metodo. Si noti che log(n) `e essenzialmente il
numero di cifre nella rappresentazione binaria di n e di conseguenza, nei casi
peggiori, il tempo necessario per compiere una fattorizzazione `e pi` u che po-
linomiale (nel numero delle cifre). Per i dettagli tecnici di tale algoritmo si
rimanda a [?].
27
Capitolo 6
Algoritmo di Shor
Questo algoritmo `e stato ideato per la dicolt` a attuale di fattorizzare un
numero qualsiasi in poco tempo. Lo svolgimento pu`o essere suddiviso in
due fasi: nella prima fase viene mostrato come sia possibile ridurre il pro-
blema della fattorizzazione di un numero, al problema di trovare il periodo
di una data funzione (order nding); nella seconda fase viene mostrato co-
me sia possibile calcolare tale periodo ecientemente usando la trasformata
quantistica di Fourier su un calcolatore quatistico. Lunico passaggio che de-
ve essere implementato su un calcolatore quantistico `e proprio questultimo.
Va specicato anche che questo algoritmo ha una natura probabilistica, in
quanto il risultato corretto potrebbe non essere ottenuto immediatamente,
ma solo dopo alcune esecuzioni del codice. Una volta trovato il periodo del-
la funzione bastano alcuni semplici passaggi per determinare una possibile
fattorizzazione.
6.1 Order nding
Problema. Siano x e N due interi positivi primi fra loro. Il problema
dellorder nding consiste nel trovare il pi` u piccolo numero r tale che
x
r
= 1 mod N. (6.1)
Supponendo che r sia pari, si pu`o facilmente trovare un fattore del numero
N, sotto alcune ipotesi, nel seguente modo : Dato m N
m
r
= 1 mod N (6.2)
m
r
1 = 0 mod N (6.3)
(m
r/2
1)(m
r/2
+ 1) = 0 mod N. (6.4)
28
(m
r/2
1)(m
r/2
+ 1) = kN (6.5)
per qualche intero k.
Se m
r/2
= 1 mod N si ha banalmente k = 0.
Questa condizione si riduce a m
r/2
= 1 mod N poich`e m
r/2
= 1 mod N
non pu` o essere vero perch`e r `e lordine di m modulo N. Grazie allalgoritmo
di Euclide `e possibile calcolare lintero d > 1 dato da d = gcd(m
r/2
1, N) che
`e un fattore non banale di N, al pi` u si avr` a che d = m
r/2
1. Questo semplice
algoritmo verr` a mostrato pi` u dettagliatamente nel seguente paragrafo. E qui
importante notare che r deve essere un numero pari, altrimenti non `e possibile
applicare la procedura sopra descritta. Questa ipotesi non andr`a ad inuire
sul buon esito dellalgoritmo in quanto cambiando il parametro m `e possibile
ottenere un nuovo valore di r. Iterando su valori casuali di m sar` a facilmente
possibile ottenere r pari molto velocemente come vedremo nel dettaglio in
seguito(si veda Sezione 6.3) E importante notare come tale problema sia del
tutto equivalente e trovare il periodo r della funzione f(x) = a
r
mod N,
ovvero il valore di r tale che f(x + r) = f(x). Questo porta infatti alla
uguaglianza a
x
a
r
= a
x
mod N che implica a
r
= 1 mod N.
6.2 Panoramica
Vediamo ora quali sono i principali passaggi dellalgoritmo di Shor. Lo scopo
`e quello di trovare un fattore di un numero N dato.
1 Si sceglie casualmente un intero positivo m e si utilizza lalgoritmo
di Euclide (che opera in tempo polinomiale) per calcolare il massimo
comune divisore fra m e N; se gcd(m, N) ,= 1, allora abbiamo gi` a
trovato il fattore non banale, altrimenti si passa al punto 2.
2 Si utilizza un calcolatore quantistico per determinare lordine r dellin-
tero m modulo N.
3 Se r `e dispari si torna al punto 1, altrimenti si passa al punto 4.
4 poich`e r `e pari si pu` o arrivare alla seguente forma
(m
r/2
1)(m
r/2
+ 1) = kN, k N (6.6)
attraverso i passaggi precedentemente descritti. Se m
r/2
= 1 mod N
si torna al punto 1 (poich`e risulterebbe k = 0), altrimenti si va al punto
5. Questa condizione si riduce a m
r/2
= 1 mod N dato che m
r/2
,= 1
mod N poich`e r `e lordine di m modulo N.
29
5 Si usa lalgoritmo di Euclide per calcolare lintero d > 1 dato da d =
gcd(m
r/2
1, N) che `e un fattore non banale di N, al pi` u d = m
r/2
1.
Il passaggio fondamentale che riduce la complessit` a di questo algoritmo
risiede nel passaggio numero 4 per il quale `e fondamentale lutilizzo di un
calcolatore quantistico. Si pu` o notare che la natura probabilistica dellalgo-
ritmo risiede nei passaggi 1 e 2. In seguito verr`a analizzata la probabilit` a di
successo dellalgoritmo. Vediamo intanto quale `e la probabilit` a di scegliere
un m che soddis le condizioni richieste e lalgoritmo di euclide utilizzato al
punto 1.
6.3 Probabilit`a di successo
Esistono tre fattori che portano lalgoritmo di Shor ad essere un algoritmo
probabilistico. Inizialmente si richiede la scelta di un numero casuale m, che
verr` a utilizzato per trovare r, ordine di a rispetto ad N, numero da fatto-
rizzare. Lordine di r potrebbe non essere un numero pari, oppure potrebbe
essere che m
r
2
= 1; in quel caso si dovrebbe ripetere lalgoritmo con un nuo-
vo numero casuale. Il terzo fattore verr` a analizzato alla ne dellalgoritmo.
Vale il seguente teorema grazie al quale `e possibile stimare la probabilit` a di
successo di tale scelta:
Teorema 6.3.1. Sia N = p

1
1
. . . p

k
k
la fattorizzazione in numeri primi di
un intero positivo dispari. Sia y un intero scelto a caso da Z

N
e sia r lordine
di y modulo N. Allora
p(r pari e y
r/2
,= 1 mod N) 1
1
2
k1
(6.7)
Dimostrazione. Sappiamo che y
r
1 mod N e che r `e il pi` u piccolo valore
per cui vale questa congruenza. Dato che y
r
2
1 mod N `e impossibile
dimostreremo che:
p(r dispari o y
r/2
1 mod N)
1
2
k1
. (6.8)
Ora sappiamo che gcd(y, p
i

i
) 1, quindi sia r
i
lordine di y mod p
i

i
.
Possiamo quindi aermare che
y
r
i
1 mod p
i

i
, i = 1, . . . , k. (6.9)
Notare che r = mcm(r
1
, . . . , r
k
). Questo deriva dal fatto che y
r
1 mod N
implica che y
r
1 mod p

i
i
, dato che r `e un multiplo di r
i
ed r `e il valore
pi` u piccolo che soddisfa tale condizione. Abbiamo anche che
y
r
2
1 mod N y
r
2
1 mod p

i
i
i (6.10)
30
Limplicazione verso destra `e ovvia dato che ogni p

i
i
divide N. Limplicazione
opposta invece si dimsotra grazie al teorema cinese dei resti, ovvero se = y
r
2
allora il sistema di congruenze = 1 mod p

i
i
ha una unica soluzione
= 1 mod N ( per la implicazione precedente). Scriviamo adesso
r
i
= s
i
2
t
i
, s
i
dispari i (6.11)
dove s = mcm(s
1
, . . . , s
k
), t = max(t
1
, . . . , t
k
) e r = s2
t
. Possiamo ora
aermare che
y
r
2
1 mod p

i
i
t
i
= t (6.12)
Per dimostrare questa aermazione assumiamo che y
r
2
1 mod p

i
i
e che
t
i
< t. Quindi r
i
divide
r
2
, ma questo `e impossibile poich`e y
r
i
1 mod p

i
i
e y
r
2
1 mod p

i
i
per ipotesi. Inoltre r `e dispari se e solo se ogni r
i
`e
dispari, cosi che tutti gli t
i
sono uguali a 0. Dalle considerazioni precedenti
otteniamo che
p(r dispari o y
r/2
1 mod N) p(tutti gli t
i
uguali) (6.13)
Per maggiorare tale probabilit` a utilizziamo che p(t
j
= j)
1
2
i, j. Per
dimostrare questa aermazione usiamo che il gruppo moltiplicativo modulo
p

i
i
`e ciclico. Gli elementi di tale insieme sono i numeri primi con esso e la
cardinalit` a di tale insieme `e (p

i
i
).Sia g un generatore di tale gruppo, allora
g
(p

i
i
)
1 mod p

i
i
(6.14)
per il teorema di Eulero. Scriviamo (p

i
i
) = 2

con dispari. Sempre per


il teorema di Eulero ogni ordine modulo p

i
i
divide 2

, quindi t
i
i.
Sia per ogni b dispari 2

lordine di g
h
mod p

i
i
, . Allora
(g
b
)
2

= g
b2

= 1 (6.15)
e b `e dispari, quindi = . Ugualmente, se b `e pari, allora g
b
ha ordine 2

con 1. Quindi, escludendo i casi ovvi di p

i
i
= 2, (2) = 1, possiamo
notare che ogni valore di pu` o comparire al massimo la met` a dei numeri
coprimi con p

i
i
= 2, (2) = 1. Questo dimostra la aermazione precedente.
Concludendo abbiamo che
p(tutti gli t
i
uguali) =

j
k

i=1
p(t
i
= j) =

j
p(t
1
= j) . . . p(t
k
= j) (6.16)

j
p(t
1
= j)
1
2
k1
=
1
2
k1
(6.17)
Questo ultimo risultato conclude la dimostrazione.
31
E possibile anche mostrare un risultato pi` u forte, ovvero che:
p(r pari o x
r/2
,= 1 mod N)
1
2
(6.18)
per tutti gli N che non sono della forma p

o 2p

, con p primo e N. Questo


mostra che iterando la scelta casuale di un valore x, si ottiene rapidamente
un valore che soddisfa le condizioni necessarie al buon esito dellalgoritmo di
Shor.
6.4 Algoritmo di Euclide
Questo algoritmo `e tr i pi` u antichi conosciuti, essendo presente negli Elementi
di Euclide intorno al 300 a.C Lo scopo `e quello di trovare il massimo comun
divisiore (MCD) tra due numeri a e b. Il funzionamento `e il seguente:
Dati due numeri naturali a e b, si controlla se b `e zero. Se lo `e, a `e il
MCD. Se non lo `e, si divide a per b e si assegna ad r il resto della divisio-
ne. Se r = 0 allora si pu`o terminare aermando che b `e il MCD cercato,
altrimenti occorre assegnare a = b e b = r e si ripete nuovamente la divisione.
Lalgoritmo pu` o essere espresso in modo naturale utilizzando una semplice
ricorsione. Dopo questi 2 passaggi calcolabili su un calcolatore classico si
arriva al nucleo dellalgoritmo di Shor per cui risulta necessario un calcolatore
quantistico.
6.5 Order nding su un calcolatore quantisti-
co
Vediamo ora come sia possibile, con gli strumenti no ad ora incontrati, risol-
vere il problema dellorder nding su un calcolatore quantistico. Supponiamo
di voler trovare lordine r di a rispetto ad N (a
r
= 1 mod N). Sono neces-
sari due registri di qubit per ottenere il nostro risultato. Il primo registro
deve essere semplicemente inizializzato con tutti i numeri tra 0 e 2
a1
, di lun-
ghezza m, dove m `e un numero che soddisfa la condizione N
2
2
m
2N
2
.
Questa condizione `e necessaria per ottenere una precisione suciente nella
QFT. Il secondo registro viene invece inizializzato calcolando per ogni va-
lore del primo registro la funzione f(x) = a
x
mod N. I nostri due registri
avranno quindi, usandola notazione binaria, la seguente forma:
32
2
n
1

x=0
[x [f(x) (6.19)
Eimportante notare come grazie al parallelismo quantistico possiamo cal-
colare tutti i valori di f(x) con un solo calcolo. In teoria ora ci basterebbe
misurare il secondo registro per vedere in quale caso f(x) = 1 e quindi ottene-
re la relativa x. Sappiamo per` o che non `e possibile eettuare tale operazione
per la natura probabilistica di tale operazione. Inoltre i due registri si tro-
vano in uno stato Entangled e quindi la misura di uno dei due provocher` a la
modica dellaltro. Misurando il secondo registro misureremo uno dei pos-
sibili valori di f(x), che chiameremo f(x
0
), modicando conseguentemente
lo stato del sistema e in particolare anche il primo registro. Otteniamo cosi
dopo la nostra misurazione il nuovo stato dato da:
1

m
m1

j=0
[x
0
+ jr [f(x
0
) (6.20)
dove m = N/r `e il numero di valori di x per cui f(x) = f(x
0
). Concen-
triamoci ora sul primo registro che contiene in maniera non esplicita il valore
ri r cercato. Il secondo registro non ci servir` a pi` u nei seguenti passaggi. Per
trovare r utilizzeremo adesso la QFT, grazie alla quale possiamo trovare il
periodo di una sequanza di valori. Applicando la QFT al primo registro
otteniamo :
1

r
r1

k=0
e
2ix
0
k
r
[k
N
r
(6.21)
Quindi la trasformata QFT estrare tutte le frequenze multiple di
N
r
. Se
misuriamo il primo registro otterremo con eguale probabilit`a uno di questi
valori, che chiameremo c. Vale quindi che
c
N
=

r
, con numero intero
sconosciuto. Se e r sono coprimi tra loro, allora
c
N
pu` o essere semplicata
portandola a una frazione irriducibile da cui `e possibile ricavare e r. In
caso contrario lalgoritmo fallisce e deve essere ripetuto. Si pu`o dimostrare
che dopo (log log r) tentativi si avr` a un successo. Inoltre v` a considerato
che spesso la misurazione del registro porta ad un valore approssimato, non
esatto. In questo caso `e possibile utilizzare il metodo delle frazioni continue
per trovare la frazione

r
cercata, da cui sia possibile ricavare r. Per ottenere
una approssimazione suciente deve valere la seguente diseguaglianza:
[
c
N


r
[
1
2N
(6.22)
33
dove c `e il valore misurato, `e un numero intero ignoto e r `e il valore del
periodo. Se la approssimazione non risulta suciente `e possibile aumen-
tare la dimensione del primo registro utilizzato per ottenere una maggiore
approssimazione oppure scegliere un nuovo numero casuale a.
6.6 Metodo delle frazioni continue
In generale quando il periodo r di una funzione non divide 2
m
, m N, il
valore misurato v dopo aver eettuato la QFT, sar`a con una alta probabilit`a
un valore vicino a un intero del tipo
2
m
r
, diciamo j
2
m
r
. Vogliamo riuscire
a estrarre comunque da questa frazione il valore r del periodo. Shor ha
mostrato che con alta probabilit`a v `e compreso tra
1
2
e j
2
m
r
. In generale una
frazione continua nita `e una frazione del tipo:
a
0
+
1
a
1
+
1
a
2
+
1
a
3
+
1
+
1
a
n
(6.23)
dove a
0
, . . . , a
n
sono interi positivi. Se scriviamo la ennesima frazione
p
n
q
n
abbiamo una relazione di ricorsione denita nel seguente modo:
p
0
= a
0
, p
1
= a
1
a
0
+ 1, p
n
= a
n
p
n1
+ p
n2
, (6.24)
q
0
= 1, q
1
= a
1
, q
n
= a
n
q
n1
+ q
n2
. (6.25)
Inoltre le frazioni ottenute durante le iterazioni sono tutte irriducibili, ovvero
gcd(p
i
, q
i
) = 1. Ogni razionale positivo x pu` o essere rappresentato come una
frazione continua ottenuta nel seguente modo: Denotiamo con x| il pi` u
grande intero minore o uguale a x. Allora a
0
= x| e x = a
0
+
0
con
0
0
1. Se
0
,= 0, allora a
1
= 1/
0
| e 1/
0
= a
1
+
1
con 0
1
1. Se
Se
1
,= 0, allora a
2
= 1/
1
| etc. Questo processo termina sempre per ogni
razionale x, ottenendo una successione [a
0
, a
1
, . . . , a
n
]. Grazie al seguente
teorema siamo in grado di calcolare la unica frazione

r
da noi cercata.
Teorema 6.6.1. Supponiamo che
p
q
sia un qualsiasi numero razionale che
soddisfa
[
p
q
x[
1
2q
2
. (6.26)
Allora
p
q
`e una delle frazioni generate con il metodo delle frazioni continue
da x.
Per la dimostrazione si rimanda a (Hardy and Wright, 1945, theorem
161). In questo modo possiamo semplicemente calcolare le frazioni continue
generate da v e vedere quale frazione verica la disuguaglianza [
p
q
v[
1
2q
2
.
34
6.7 Complessit`a
In questa sezione verr`a calcolato ed analizzato il costo computazionale dellal-
goritmo di Shor. Data la natura probabilistica di tale algoritmo, eettueremo
il calcolo in due fasi. Nella prima fase verr` a analizzata la probabilit` a che lal-
goritmo termini con successo; nella seconda si analizzer` a il costo di ciascuna
interazione dellalgoritmo. Il prodotto di queste due analisi ci fornir`a il costo
computazionale cercato. Ovviamente verr` a analizzato il caso in cui un nu-
mero n debba essere fattorizzato in due primi p e q. Nel caso in cui il numero
n sia il prodotto di pi` u primi baster`a iterare lalgoritmo, ed il costo rimarr`a
lo stesso, tralasciando un fattore costante moltiplicativo.
6.7.1 Probabilit`a di terminazione
Conviene qui rielencare rapidamente i passaggi fondamentali dellalgoritmo
di Shor dato che ci saranno utili in seguito. Supponiamo di voler fattorizzare
il numero n in due primi p e q:
1. Scegliere un numero casuale tra 1,. . . ,n-1.
2. Calcolare gcd(a,n).
3. Se il gcd(a, n) = 1 allora proseguire con il passo successivo, altrimenti
passare al passaggio 8.
4. Calcolare lordine r di a rispetto ad n ( Questo `e il passaggio che deve
essere eettuato su un calcolatore quantistico).
5. Se r `e pari allora proseguire con il passo successivo, altrimenti passare
al passaggio 8.
6. Calcolare p

= gcd(a
r/2
+ 1, n) e q

= gcd(a
r/2
1, n).
7. Se p

e q

risultano uguali ad n allora si prosegua con il prossimo


passaggio, altrimenti `e stato trovato un fattore di n.
8. Si vada al passggio 1 e si scelga un nuovo elemento a.
Denoteremo con P
s
la probabilit` a che lalgoritmo termini con successo alla
prima iterazione. Chiameremo N il numero di passaggi necessari a trovare i
due fattori di n sotto la condizione che P
S
1 . Quindi
N
log(1/)
P
s
(6.27)
Per calcolare la probabilit` a di P
s
considereremo i seguenti eventi:
35
A
a
: Levento ottenere un a tale che a < n e gcd(a, n) = 1.
A
r
: Levento ottenere il giusto ordine r.
A
e
: Levento lordine r `e pari.
A
f
: Levento p

e q

calcolati sono i numeri primi cercati.


Usando la notazione appena descritta possiamo scrivere
P
s
P(A
e
A
f
[A
a
A
f
)P(A
a
A
r
) = P(A
e
A
f
[A
a
A
f
)P(A
a
)P(A
r
) (6.28)
dato che A
a
e A
r
sono eventi indipendenti. Quindi dovremo valutare tre
probabilit` a separatamente. La prima Probabilit`a `e gi` a stata calcolata prece-
dentemente nella sezione 6.3 ottendendo:
P(A
e
A
f
[A
a
A
f
) 1
1
2
k1
(6.29)
tenendo conto che k `e il numero di primi in cui si scompone n. Analizziamo
ora la probabilit` a P(A
a
). Levento A
a
`e equvalente allevento scegliere un d
tale che d < r e gcd(d, r) = 1. La cardinalit` a dellinsieme di numeri primi con
d minori di r `e data dalla nota formulda di eulero (r). Quindi P(A
a
) =
(r)
r
.
Essendo noto che
lim
rinf
(r) log log(r)
r
= e

(6.30)
abbiamo per r sucientemente grande
P(A
r
) =
(r)
r

e

log log(r)

e

log(r)

e

log(n)
=
e

log
2
(e)
log
2
(n)
=

log
2
(n)
(6.31)
con costante rispetto ad n. Sapendo che P(A
a
) =
(n)
n1
, possiamo analoga-
mente ottenere
P(A
a
)

log
2
(n)
(6.32)
con costante rispetto ad n. Possiamo inne stimare la probabilit` a totale
come il prodotto delle tre probabilit`a precedentemente calcolate ottenendo
P
s
(1
1
2
k1
)

log
2
(n)
2
. (6.33)
Quindi otteniamo
N
log 1/
(1 1/2
k1
)
(log
2
(n))
2
(6.34)
Abbiamo quidni ottenuto una stima sul numero di iterazioni necessarie alla
corretta terminazione dellalgoritmo.
36
6.7.2 Costo di una singola iterazione dellalgoritmo
Vediamo ora il costo necessario ad ogni singola iterazione completa. Tale
costo verr` a ottenuto dalla somma dei costi di ciascun passaggio descritto
precedentemente. Inizialmente viene eseguito una volta lalgoritmo di Eucli-
de per determinare se il numero scelto casualmente `e un fattore di N. Quando
si analizza il tempo di calcolo dellalgoritmo di Euclide, si trova che i valori di
input che richiedono il maggior numero di divisioni sono due successivi nume-
ri di Fibonacci, e il caso peggiore richiede (n) divisioni, dove n `e il numero
di cifre nellinput. In seguito, dato che analizziamo il caso pessimo, dobbiamo
eseguire il calcolo dellordine di tale numero. Questo passaggio viene eseguito
su un calcolatore quantistico e ha un costo dato dalla trasformata quanti-
stica di Fourier, ovvero (n
2
). Questo si ricava dal fatto che inizialmente
deve essere inizializzato un registro di n digit, quindi con costo lineare; in
seguito deve essere calcolata una funzione, con costo costante (c), la QFT
con costo (n
2
) e alcune misurazioni che hanno nuovamente costo costante
(c). Fatto questo dobbiamo nuovamente eseguire due volte lalgoritmo di
Euclide per trovare i fattori di N. In totale sommando i vari costi otteniamo
un costo del tipo (c n
2
). Facendo il prodotto fra questultimo costo e la
probabilit` a di successo precedentemente calcolata si vede facilmente che si
ottiene un costo polinomiale nel numero di digit in ingresso. Pi` u precisamen-
te si ottiene un costo di circa (c n
3
). Questo mostra il grande vantaggio
di tale algoritmo che riesce quindi a ottenere, ipoteticamente, ottime presta-
zioni anche su grandi numeri. V` a specicato ipoteticamente in quanto n ad
oggi `e sono stati realizzati solo calcolatori quantistici con qualche decina di
qubit. Su tali calcolatori sono stati fattorizzati con successo alcuni piccoli
numeri grazie allalgoritmo di Shor. Gi`a un calcolatore a 1024 qubit sarebbe
suciente per poter decifrare la maggior parte dei messaggi codicati grazie
allRSA.
6.8 Esempio
Vediamo adesso un esempio di dellalgoritmo di Shor. Verr` a mostrato il
nucleo di tale algoritmo, ovvero come trovare, dati m e N numeri interi,
lordine di m rispetto a N. Nel nostro caso prenderemo come numero da
fattorizzare N = 21 e come numero m scelto casualmente 11.
Scegliamo un numero k tale che N
2
2
k
2N
2
. Nel nostro caso
otteniamo 441 2
k
882 da cui deriviamo k = 9. Useremo quindi
per il nostro primo registro 9 qubit e per il secondo 5 qubit dato che
11
x
mod21 21 2
5
= 32. Inizialmente i due registri vengono ini-
37
zializzati nello stato [0, 0. Applichiamo loperatore di Hadamard a n
qubit al primo registro per ottenere:
1

2
m1
2
m1

x=0
[x, 0 (6.35)
Calcoliamo adesso grazie al parallelismo quantistico tutti i valori di
f(x) = 11
x
mod 21 in un solo passaggio.Saremo quindi nella forma:
1

2
m1
2
m1

x=0
[x, 11
x
mod 21 (6.36)
Per analizzare meglio tale stato pu` o risultare utile sviluppare tale som-
matoria ottenendo:
[0, f(0) +[1, f(1) + +[2
n1
, f(2
n1
) (6.37)
Misuriamo adesso il secondo registro ottenendo uno tra i possibili valori
f(x). Supponiamo di avere misurato il valore 8. In questo caso anche il
primo registro collasser` a, mantenendo solo i valori di x per cui f(x) = 8.
Supponendo che esistano s valori di x che soddisfano tale condizione
avremo il nuovo stato:
1

x:f(x)=8
[x, 11
x
mod 21 (6.38)
che espanso diventa: [x
1
, 8 +[x
2
, 8 + +[x
n
, 8.
Il secondo registro risulter`a inutile nei seguenti passaggi e pu` o essere
tranquillamente trascurato, per tale motivo esso non verr` a pi` u rap-
presentato. In questo caso possiamo notare che ogni valore di x ri-
sulta equiprobabile come valore presente nel primo registro e quindi
non ci viene fornita nessuna informazione aggiuntiva.Il graco di tale
distribuzione di probabilit`a risulta il seguente:
applichiamo adesso la transformata quantistica di Fourier al primo
registro ottenendo:

j
c
j
[j
2
m
r
(6.39)
dove j sono i valori di x rimasti ed r `e il periodo di f(x) da noi cercato.
Dopo questo passaggio le probabilit`a di misurare un valore x tra tutti
i possibili risultano le seguenti:
38
Figura 6.1: probablit`a di ottenere x come valore nel primo registro
Figura 6.2: probablit`a di ottenere x come valore nel primo registro dopo aver
applicato la QFT
39
Figura 6.3: Valori ottenuti con la tecina dellespansione
Si pu`o notare che il periodo r non divide esattamente 2
m
dato che ci
sono valori della QFT diversi da 0 nelle vicinanze degli interi del tipo
2
m
r
.
misuriamo adesso il primo registro ottenendo come valore v = 427. Se
il periodo fosse una potenza del 2 allora sarebbe molto facile estrarre
da tale valore r dato che v = j
2
m
r
. Dato che il v non `e una potenza
del 2 useremo la tecnica di espansione precedentemente descritta per
trovare una frazione,

r
, da cui poter ricavare r. Vengono mostrati nella
seguente gura i valori ottenuti da tale espansione:
Possiamo quindi ricavare 6 = q
2
M q
3
, che risulta essere il periodo
r cercato.
Sapendo che (a
r
2
1)(a
r
2
+1) = kN per qualche k N, otteniamo che
(a
r
2
1) = 1330 e (a
r
2
+1) = 1332. Usando lalgoritmo di Euclide tra i
due valori trovati ed N possiamo trovare possibilmente 2 fattori di N,
infatti:
GCD(21, 1330) = 7 (6.40)
GCD(21, 1332) = 3 (6.41)
che risultano essere i due fattori in cui `e scomponibile 21.
Lalgoritmo poteva fallire per le seguenti ragioni:
il valore v poteva non essere sucientemente vicino a un intero
del tipo
2
m
r
.
il periodo r e il numero j potevano avere fattori comuni. In questo
caso il denominatore q poteva essere un fattore del periodo, e non
il periodo stesso.
avremmo potuto trovare, usando lalgoritmo di Euclide, N stesso
come fattore di N.
il periodo della funzione f(x) = a
x
mod N poteva essere dispari.
40
Bibliograa
[Ben] Giuliano Benenti, Giulio Casati e Giuliano Strini. World Scientic,
2004. Principles of Quantum Computation and Information. Volume I:
Basic Concepts.
[Shor] Peter W. Shor. Polynomial-Time Algorithms for Prime Fac-
torization and Discrete Logarithms on a Quantum Computer.
http://arxiv.org/abs/quant-ph/9508027v2
[Lenstra] Lenstra Jr., H. W. 1987. Annals of Mathematics 126. Factoring
integers with elliptic curves.
[KSS05] K.Kuriyama, S.Sano and S. Furuichi 2005. A precise estimation of
the computational complexity in Shors factoring algorithm
[Pomerance 96] Pomerance Carl, December 1996. A Tale of two Sieves. pp:
1473
[Preskill 98] Preskill John, September 1998. Quantu Information and
Computation
[RP] Eleanor Rieel, Wolfgang Polak, 2000. An Introduction to Quantum
Computing for Non-Physicistts
[Mermin] N. David Mermin, 2007. Quantum Computer Science, An
Introduction
41

You might also like