Algorithme quantique de Shor

publicité
La factorisation des entiers
Algorithme quantique de Shor
Factorization of RSA-155
On August 22, 1999, a team of scientists from 6 different countries,
led by CWI (Amsterdam), completed the factorization of the 155 digit
(512 bit) RSA Challenge Number:
Factorisation des entiers
en temps polynomial
RSA-155=109417386415705274218097073220403576120
03732945449205990913842131476349984288934784717
99725789126733249762575289978183379707653724402
7146743531593354333897
The computation took 35.7 CPU-years on!:
160
175-400 MHz SGI and Sun workstations
8
250 MHz SGI Origin 2000 processors
120
450 MHz Pentium II PCs
4
500 MHz Digital/Compaq boxes
Philippe Jorrand
CNRS
Laboratoire Leibniz, Grenoble, France
The CPU-effort is estimated to be equivalent to 8000 MIPS years.
The Total calendar time for factoring RSA-155 was 7.4 months,
whereas RSA-140 took about 9 weeks «only».
The found factors are:
p=102639592829741105772054196573991675900716567
808038066803341933521790711307779, and
q=106603488380168454820927220360012878679207958
575989291522270608237193062808643
[email protected]
IQ 2006 - Ph. Jorrand - Shor
1
Un peu de théorie des nombres
P œN
P très grand
Théorème :
Exemple :
IQ 2006 - Ph. Jorrand - Shor
Le nombre d’opérations nécessaires
au meilleur algorithme classique
actuellement connu pour factoriser
un entier est exponentiel en la taille
(nombre de chiffres) du nombre à
1/3
factoriser : de l’ordre de e155 pour
RSA-155.
Le nombre d’opérations nécessaires à
l’algorithme quantique de Peter Shor
(1994) pour factoriser un entier est
polynomial en la taille du nombre à
factoriser : de l’ordre de1553 pour
RSA-155.
IQ 2006 - Ph. Jorrand - Shor
2
Un peu de théorie des groupes
Le meilleur algorithme classique
connu pour factoriser P est de
complexité O(e p 1/3 (log p) 2/3), c.à.d.
exponentiel en p = log P,
la taille du problème.
Définition :
N, P œ N
a, P œ N. On appelle ordre de a modulo P le plus
petit entier r>0 tel que ar=1 mod P
Z N (Z P) : entiers modulo N (P) (groupes multiplicatifs)
Une fonction : fa : Z N ! Z P
S’il existe un algorithme polynomial pour trouver
une solution non triviale (c.à.d. xT!1 mod P) à
l’équation x2=1 mod P, alors il existe un algorithme
polynomial pour factoriser P.
Théorème :
Exemple :
P=15
Equation : x2=1 mod 15
Une solution: x=4, est T !1 mod P
Si x est une solution : (x+1)(x-1)= 0 mod 15
=> x+1=5 et x-1=3 sont des facteurs de 15
fa(k) = ak mod P
1<a<P
fa est périodique, de période r, l’ordre de a modulo P
P=15, a=7
fa(k) = 7k mod 15
k
0 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
fa(k)
1
7 4 13 1 7
4 13 1
7 4 13
1
7 ...
=> période de fa (k) = ordre de 7 modulo 15 = r = 4
3
IQ 2006 - Ph. Jorrand - Shor
4
Algorithme de Shor pour factoriser P œ N
P=15, pour voir fonctionner cet algorithme
1
Choisir a au hasard, 1<a<P
2
Si PGCD(a,P) = 1, continuer. Sinon, le problème est résolu !
3
Trouver la période r de fa(k) = ak mod P. On a alors : ar=1 mod P.
4
Si r est pair, alors (a r/2+1)(a r/2-1) = 0 mod P.
Si r est aussi tel que a r/2 T ±1 mod P, alors :
PGCD(a r/2+1 , P) et
PGCD(a r/2-1 , P) sont des facteurs de P : stop !
Rappel : superposer 2n valeurs dans n qubits
|0Ú
H
(1/!2(|0Ú+|1Ú)
...
(1/!2(|0Ú+|1Ú)
|0Ú
H
|00…0Ú
HN
Ê |xÚ
Ê |xÚ
x œ {0,1}n
fa (k) = 7k mod 15 :
k
0 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
fa(k)
1
7 4 13 1 7 4 13 1
7 4 13
1
7 ...
r=4 est pair et a r/2= 72 = 49 = 4 mod 15 T !1 mod P
PGCD(a r/2+1 , P) = PGCD(50,15) = 5
PGCD(a r/2-1 , P) = PGCD(48,15) = 3
Stop !
IQ 2006 - Ph. Jorrand - Shor
6
|aÚ
|bÚ
|aÚ
Uf
|b " f(a)Ú
|aÚ et |bÚ : 2 registres de n qubits chacun
(où N = 2n)
= 1/!N
x œ {0,1}n
|0Ú
HN
Uf
où HN=H
|0Ú
"n
Ê |xÚ |f(x)Ú
1/!N
x
(où N = 2n)
œ {0,1}n
Une seule application de Uf produit toutes les valeurs de f.
Après l’application de Uf , les deux registres sont intriqués.
n
Résultat : 2 valeurs, uniformément superposées dans le même
registre de n qubits, obtenues avec seulement n operations.
IQ 2006 - Ph. Jorrand - Shor
3
f : {0,1}n ! {0,1}n
(1/!2(|0Ú+|1Ú)
1/!N
PGCD(a,P) = PGCD(7,15) = 1 : on continue.
Rappel : calculer une fonction f
Etat initial : un registre de n qubits dans l’état |00...0Ú
H
2
4
5
|0Ú
On choisit a au hasard, 1<a<P : a=7
«!On voit!» que r = 4
Sinon, retourner au pas 1.
IQ 2006 - Ph. Jorrand - Shor
1
7
IQ 2006 - Ph. Jorrand - Shor
8
Tirer parti de l’intrication
Si f est une fonction périodique, de période r
Soit y0 la valeur de f(x) pour un certain x,
soit x0 le plus petit des x pour lesquels f(x) = y0 ,
alors : f-1(y0) = {x0, x0+r, x0+2r, ..., x0+kr, ...}
f : {0,1}n ! {0,1}n
|0Ú
Superposition de
tous les xi’ tels que
f(xi)= y0
HN
Uf
Ê
1/!N
|0Ú
x0
HN
|xÚ |f(x)Ú (où N = 2n)
r
r
r
...
x œ {0,1}n
Uf
|0Ú
Mesurer
valeur y0 , état |y0Ú
|0Ú
Mesurer
valeur y0 , état |y0Ú
Si la mesure du 2ème registre retourne la valeur y0,
alors le 1er registre contient tous les xi œ f-1(y0) .
IQ 2006 - Ph. Jorrand - Shor
9
10
Solution : Transformée de Fourier Discrète
Trouver la période r d’une fonction f : ZN!Z P
Pour trouver r :
IQ 2006 - Ph. Jorrand - Shor
par calcul classique, N=2n calculs de f.
par calcul quantique, combien de calculs de f ?
x0
Premier calcul de f -> 1er registre après mesure du 2ème registre :
x0
r
r
r
r
r
x1
r
r
r
r
r
...
x2
...
DFT
...
N/r
N/r
N/r
N/r
N/r
...
N
r
Deuxième calcul de f -> 1er registre après mesure du 2ème registre :
x1
r
r
r
r
r
r
...
N
...
IQ 2006 - Ph. Jorrand - Shor
11
IQ 2006 - Ph. Jorrand - Shor
12
DFT: Discrete Fourier Transform
1
w
w2
...
wN-1
1
w2
w4
...
w2(N-1)
...
...
...
...
...
w2
n=3, N=23=8
1
wN-1
w2(N-1)
...
w(N-1)2
w = e2pi/N
Nème racine de l’unité
w = 8ème racine de l’unité = e2pi/8
Ê
N-1
ax |xÚ
N-1
Ê Ê
DFTN
1/!N
x =0
y =0
(
DFT8 = 1/!8
wxy ax ) |yÚ
x =0
13
r
w7
1
1
1
1
1
1
1
1
1
w
i
w3
-1
w5
-i
w7
1
i
-1
-i
1
i
-1
-i
1
w3
-i
w
-1
w7
i
w5
w6
1
-1
1
-1
1
-1
1
-1
IQ 2006 - Ph. Jorrand - Shor
14
1/!2 (|0Ú+ w (N/2)x |1Ú)
"
2
1/!2 (|0Ú+ w (N/2 )x |1Ú)
"
DFTN pour un vecteur |xÚ :
r
N-1
...
|xÚ
DFTN
Êw
1/!N
xy
|yÚ
=
y =0
HN
DFTN
proba. 1/r
Uf
|0Ú
Mesurer
N/r
N/r
N/r
N/r
N/r
|xÚ est dans un registre de n qubits |x1 …xk…xnÚ, xkœ{0,1} :
...
1/!2 (|0Ú+ w (N/2)x |1Ú)
|xkÚ
...
• Espérance de logN=n itérations pour trouver r
• Mais … DFTN est exponentielle : N2 = 22n multiplications
à chaque itération !
|xnÚ
15
IQ 2006 - Ph. Jorrand - Shor
...
...
|x1Ú
IQ 2006 - Ph. Jorrand - Shor
"
n
1/!2 (|0Ú+ w (N/2 )x |1Ú)
l N/r
Mesurer
DFTN
k
1/!2 (|0Ú+ w (N/2 )x |1Ú)
...
|0Ú
1
w7
-i
w5
-1
w3
i
w
1
-i
-1
i
1
-i
-1
i
1
w5
i
w7
-1
w
-i
w3
DFTN est un produit tensoriel de n termes
Combien de calcul de f pour trouver r ?
r
1
w5
IQ 2006 - Ph. Jorrand - Shor
x0
-1
N = 2n
DFTN est unitaire : DFTN Î DFTN * = Id
N-1
w
w3
...
DFTN =
1
1
1/!N 1
...
1
Exemple : DFT8
1/!2 (|0Ú+ w (N/2
n)x
|1Ú)
16
DFT8 appliquée à un vecteur |xÚ = |x1x2x3Ú
1/!2 (|0Ú+ e pxi |1Ú)
|x1Ú
|x2Ú
DFT8
1
1
H = 1/!2 1 -1
7
1/!2 (|0Ú+ e pxi/2 |1Ú)
= 1/!8
Êe
pxyi/4
DFT8
1/!2 (|0Ú+ e px1i e px2i/2 |1Ú)
|x1Ú
1/!2 (|0Ú+ e px2i e px3i/2 |1Ú)
17
De DFT8 à QFT8
H
0
0
e 2pi/2
k
H
1/!2 (|0Ú+ e px1i e px2i/2 e px3i/4 |1Ú)
R2
R3
|x3Ú
IQ 2006 - Ph. Jorrand - Shor
= 1/!2 11
1
|x2Ú
1/!2 (|0Ú+ e px1i e px2i/2 e px3i/4 |1Ú)
|x3Ú
=
1/!2 (|0Ú+ e px1i |1Ú)
1/!2 (|0Ú+ e px3i |1Ú)
|x1Ú
Rk
|yÚ
y =0
1/!2 (|0Ú+ e pxi/4 |1Ú)
|x3Ú
|x2Ú
Vers une Transformée de Fourier Quantique
IQ 2006 - Ph. Jorrand - Shor
18
QFTN : Quantum Fourier Transform
1
-1
Rk
=
1
0
0
2pi/2 k
e
|x1Ú
H
R2
Rn-1
Rn
|x2Ú
Rn-2
H
Rn-1
|xn-1Ú
H
R2
|xnÚ
H
DFT8
R2
H
R3
H
R2
H
= 1/!2 11
H
n(n+1)/2 portes
IQ 2006 - Ph. Jorrand - Shor
19
IQ 2006 - Ph. Jorrand - Shor
1
-1
Rk
=
1
0
0
0
0
1
0
0
0 0
0 0
1 0
k
0 w (N/2 )
DFTN : algorithme en Q(22n)
FFTN : algorithme en Q(n2n)
QFTN : algorithme en Q(n2)
20
Complexité de l’algorithme de Shor
x0
|0Ú
r
HN
r
r
...
l N/r
Mesurer
QFTN
proba. 1/r
Uf
|0Ú
Mesurer
N/r
N/r
N/r
N/r
N/r
...
• O(n) itérations pour trouver r
• Q(n2) opérations pour calculer QFTN
• L’algorithme de Shor est en O(n3)
IQ 2006 - Ph. Jorrand - Shor
21
Téléchargement