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