Algorithme de Shor
En arithmĂ©tique modulaire et en informatique quantique, lâalgorithme de Shor est un algorithme quantique conçu par Peter Shor en 1994, qui factorise un entier naturel N en temps O et en espace .
Beaucoup de cryptosystĂšmes Ă clĂ© publique, tels que le RSA, deviendraient vulnĂ©rables si l'algorithme de Shor Ă©tait un jour implantĂ© dans un calculateur quantique pratique. Un message chiffrĂ© avec RSA peut ĂȘtre dĂ©chiffrĂ© par factorisation de sa clĂ© publique N, qui est le produit de deux nombres premiers. En l'Ă©tat actuel des connaissances, il n'existe pas d'algorithme classique capable de faire cela en temps pour n'importe quel k. Les algorithmes classiques connus deviennent donc rapidement impraticables quand N augmente, Ă la diffĂ©rence de l'algorithme de Shor qui peut casser le RSA en temps polynomial. Il a Ă©tĂ© aussi Ă©tendu pour attaquer beaucoup d'autres cryptosystĂšmes Ă clĂ© publique.
Comme la plupart des algorithmes pour calculateur quantique, l'algorithme de Shor est probabiliste : il donne la rĂ©ponse correcte avec une haute probabilitĂ© et la probabilitĂ© d'Ă©chec peut ĂȘtre diminuĂ©e en rĂ©pĂ©tant l'algorithme.
L'algorithme de Shor fut utilisé en 2001 par un groupe d'IBM, qui factorisa 15 en 3 et 5, en utilisant un calculateur quantique de 7 qubits[1].
Procédure
Soit N un entier naturel donnĂ©. Lâalgorithme de Shor vise Ă chercher un entier p compris entre 2 et qui divise N.
Il consiste en deux éléments :
- Une rĂ©duction du problĂšme de factorisation en un problĂšme de recherche d'ordre, qui peut ĂȘtre effectuĂ©e sur un ordinateur classique.
- Un algorithme quantique pour résoudre le problÚme de recherche d'ordre.
Partie classique
- Prendre un nombre pseudo-aléatoire a < N
- Calculer PGCD(a, N). Ceci peut ĂȘtre effectuĂ© par l'utilisation de l'algorithme d'Euclide.
- Si PGCD(a, N) â 1, alors c'est un facteur non trivial de N, ce qui donne une solution au problĂšme.
- Sinon, utiliser le sous-programme de recherche de pĂ©riode (ci-dessous) pour trouver r, la pĂ©riode de la fonction , câest-Ă -dire le plus petit entier r pour lequel .
- Si r est impair, retourner Ă l'Ă©tape 1.
- Si a r/2 ⥠â1 (mod N), retourner Ă l'Ă©tape 1.
- Les facteurs de N sont PGCD(ar/2 ± 1, N), ce qui résout le problÚme.
Partie quantique : sous-programme de recherche de période
- Commencer avec des registres d'entrée et de sortie de chacun log2N qubits, et les initialiser à :
- oĂč x va de 0 Ă N â 1.
- Construire f(x) comme une fonction quantique et l'appliquer à l'état précédent, pour obtenir
- Appliquer la transformée de Fourier quantique au registre d'entrée. La transformée de Fourier quantique sur N points est définie par :
- Ce qui donne l'Ă©tat suivant :
- Effectuer une mesure. On obtient ainsi une certaine valeur y dans le registre d'entrée et dans le registre de sortie. Comme f est périodique, la probabilité de mesurer un certain y est donnée par
- Le calcul montre que cette probabilité est plus haute quand yr/N est proche d'un entier.
- Mettre y/N sous forme irrĂ©ductible, et extraire le dĂ©nominateur râČ, qui est un candidat pour r.
- VĂ©rifier si f(x) = f(x + râČ). Si c'est le cas, c'est terminĂ©.
- Autrement, obtenir plus de candidats pour r en utilisant des valeurs proches de y, ou multiples de râČ. Si un autre candidat marche, c'est terminĂ©.
- Sinon, retourner Ă l'Ă©tape 1 du sous-programme.
Explication de l'algorithme
L'algorithme est composĂ© de deux parties. La premiĂšre partie transforme le problĂšme de factorisation en un problĂšme de recherche de pĂ©riode d'une fonction et peut ĂȘtre implĂ©mentĂ©e de façon classique. La seconde partie trouve la pĂ©riode en utilisant la transformĂ©e de Fourier quantique et est responsable de l'accĂ©lĂ©ration quantique.
Obtenir des facteurs à partir de la période
Les entiers infĂ©rieurs Ă N et premiers avec N forment un groupe fini muni de la multiplication modulo N, qui est typiquement notĂ© (Z/NZ)Ă. La fin de l'Ă©tape 3 permet de dĂ©terminer un entier a dans ce groupe. Comme le groupe est fini, a possĂšde (d'aprĂšs le thĂ©orĂšme d'Euler) un ordre fini r, dĂ©fini comme plus petit entier positif tel que
Par consĂ©quent, N | (a r â 1). Supposons quâil soit possible de dĂ©terminer r, et que celui-ci est pair. Alors
- , dâoĂč
r est le plus petit entier positif tel que N divise (a r â 1), donc N ne peut pas diviser (a r / 2 â 1). Si N ne divise pas non plus (a r / 2 + 1), alors N doit avoir un facteur commun non-trivial avec chacun des (a r / 2 â 1) et (a r / 2 + 1).
Preuve : notons (a r / 2 â 1) et (a r / 2 + 1) par u et v respectivement. N | uv, donc kN = uv pour un certain entier k. Supposons que PGCD(u, N) = 1 ; alors mu + nN = 1 pour certains entiers m et n (identitĂ© de BĂ©zout). En multipliant de part et dâautre par v, lâon trouve que mkN + nvN = v, donc N | v. Par contradiction, PGCD(u, N) â 1. Par un argument similaire, PGCD(v, N) â 1.
Ceci fournit une factorisation de N. Si N est le produit de deux nombres premiers, elle est la seule factorisation possible.
Trouver la période
L'algorithme de recherche de pĂ©riode de Shor est fortement reliĂ© Ă la capacitĂ© d'un calculateur quantique d'ĂȘtre dans de nombreux Ă©tats simultanĂ©ment. Les physiciens appellent ce comportement une « superposition » d'Ă©tats. Pour calculer la pĂ©riode d'une fonction f, nous Ă©valuons la fonction en tous ses points simultanĂ©ment.
Pourtant, la physique quantique ne nous permet pas d'accéder à toute l'information directement. Une mesure fournira seulement une parmi toutes les valeurs possibles en détruisant toutes les autres. Par conséquent nous avons à transformer avec précaution la superposition en un autre état qui retournera la réponse correcte avec une haute probabilité. Ceci est accompli par la transformée de Fourier quantique.
Shor eut ainsi Ă rĂ©soudre trois problĂšmes d'« implĂ©mentation ». Tous ont Ă©tĂ© implĂ©mentĂ©s « rapidement », ce qui veut dire qu'ils peuvent ĂȘtre implĂ©mentĂ©s avec un nombre de portes quantiques qui est polynomial en .
- CrĂ©er une superposition d'Ă©tats. Ceci peut ĂȘtre fait en appliquant des portes d'Hadamard Ă tous les qubits dans le registre d'entrĂ©e. Une autre approche serait d'utiliser la transformĂ©e de Fourier quantique (voir ci-dessous).
- Implémenter la fonction f comme une transformation quantique. Pour accomplir cela, Shor utilisa l'élévation au carré pour sa transformation d'exponentiation modulaire.
- Exécuter une transformation de Fourier quantique. En utilisant les portes NON contrÎlées et les portes qubit à rotation unique, Shor conçut un circuit pour la transformée de Fourier quantique qui utilise juste portes.
AprÚs toutes ces transformations, une mesure fournira une approximation de la période r. Pour simplifier, assurons-nous qu'il existe un y tel que yr/N soit un entier. Alors la probabilité de mesurer y est 1. Pour voir cela, notons qu'alors pour tous les entiers b. Par conséquent, la somme qui nous donne la probabilité de mesurer y sera de N/r comme b prend globalement N/r valeurs et ainsi, la probabilité est 1/r. Il existe r y tels que yr/N soit un entier donc les probabilités totalisent 1.
Note : une autre maniÚre d'expliquer l'algorithme de Shor est de noter que c'est juste l'algorithme d'estimation de phase quantique déguisé.
Notes et références
- (en) Michael Ross, « IBM's Test-Tube Quantum Computer Makes History », sur Web Archive ibm.com, (consulté le ).
Annexes
Bibliographie
- (en) Peter W. Shor, Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. « quant-ph/9508027 », texte en accÚs libre, sur arXiv.
- (en) Michael A. Nielsen et Isaac L. Chuang, Quantum Computation and Quantum Information, Cambridge University Press, 2000Un livre généraliste sur le calcul quantique
Articles connexes
Liens externes
- Une explication de l'algorithme de Shor, sans calculs, sur le blog de Scott Aaronson