Algorithmique quantique : de l exponentiel au polynômial



Documents pareils
Exercices - Polynômes : corrigé. Opérations sur les polynômes

Introduction à l étude des Corps Finis

TABLE DES MATIÈRES CHAPITRE I. Les quanta s invitent

Calculateur quantique: factorisation des entiers

Chapitre VI - Méthodes de factorisation

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Peter W. Shor, Prix Nevanlinna 1998

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Cryptographie et fonctions à sens unique

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Quelques tests de primalité

avec des nombres entiers

Résolution de systèmes linéaires par des méthodes directes

Représentation des Nombres

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

titre.dsf - Page : 1 Ordinateur quantique: rêves et réalité J.M. Raimond Laboratoire Kastler Brossel

I. Polynômes de Tchebychev

Programmation linéaire

Chapitre 1. Une porte doit être ouverte et fermée. 1.1 Les enjeux de l'informatique quantique

ÉPREUVE COMMUNE DE TIPE Partie D

L ordinateur quantique (suite)

Conversion d un entier. Méthode par soustraction

Probabilités sur un univers fini

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Compter à Babylone. L écriture des nombres

Factorisation d entiers (première partie)

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

0x700. Cryptologie Pearson France Techniques de hacking, 2e éd. Jon Erickson

Les indices à surplus constant

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Développement décimal d un réel

Complément d information concernant la fiche de concordance

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Limites finies en un point

Analyse fonctionnelle Théorie des représentations du groupe quantique compact libre O(n) Teodor Banica Résumé - On trouve, pour chaque n 2, la classe


Continuité d une fonction de plusieurs variables

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

M2 IAD UE MODE Notes de cours (3)

Le coloriage virtuel multiple et ses applications

Théorème du point fixe - Théorème de l inversion locale

Représentation d un entier en base b

Le produit semi-direct

Définitions. Numéro à préciser. (Durée : )

LES TYPES DE DONNÉES DU LANGAGE PASCAL

L ordinateur quantique

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Fonctions de plusieurs variables

Informatique Générale

Principe de symétrisation pour la construction d un test adaptatif

Traitement et communication de l information quantique

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Poker. A rendre pour le 25 avril

V- Manipulations de nombres en binaire

Cours 7 : Utilisation de modules sous python

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Chapitre 7. Statistique des échantillons gaussiens. 7.1 Projection de vecteurs gaussiens

Qu est-ce qu un ordinateur quantique et à quoi pourrait-il servir?

Introduction. Mathématiques Quantiques Discrètes

Glossaire des nombres

La persistance des nombres

Calcul fonctionnel holomorphe dans les algèbres de Banach

Sur certaines séries entières particulières

MIS 102 Initiation à l Informatique

I. Introduction. 1. Objectifs. 2. Les options. a. Présentation du problème.

CHAPITRE VIII : Les circuits avec résistances ohmiques

Fibonacci et les paquerettes

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Approximations variationelles des EDP Notes du Cours de M2

ELEC2753 Electrotechnique examen du 11/06/2012

Cours d arithmétique Première partie

Annexe 6. Notions d ordonnancement.

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Chapitre 2. Eléments pour comprendre un énoncé

Le modèle de Black et Scholes

Texte Agrégation limitée par diffusion interne

FONDEMENTS DES MATHÉMATIQUES

Quelques algorithmes simples dont l analyse n est pas si simple

VIII- Circuits séquentiels. Mémoires

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Algorithme. Table des matières

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Transmission d informations sur le réseau électrique

Logique. Plan du chapitre

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

SCIT/P 8/99 Rev.1 ANNEXE 5

CHOIX OPTIMAL DU CONSOMMATEUR. A - Propriétés et détermination du choix optimal

Les lois nouvelles de l information quantique

Simulation de variables aléatoires

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Image d un intervalle par une fonction continue

Correction de l examen de la première session

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Licence Sciences et Technologies Examen janvier 2010

Transcription:

Algorithmiue uantiue : de l onentiel au polynômial Novembre 008 Résumé L informatiue uantiue, même si elle n en est encore u à ses premiers pas, porte en elle des promesses ui lui ont valu un engouement spontané de la part de la communauté scientifiue. Même si la réalisation d ordinateurs uantiues reste hypothétiue à l heure actuelle (sauf pour des miniatures), c est un domaine de recherche ui a été très actif ces uinze dernières années, et pour cause : ces nouveaux concepts permettraient d accélérer drastiuement des opérations ui coûtent beaucoup trop cher sur nos ordinateurs actuels (on passe d une complexité onentielle à une polynômiale, à une très faible probabilité d erreur près). Après avoir liué brièvement en uoi consiste le modèle de l ordinateur uantiue, nous essaierons de comprendre et d apprivoiser la nouvelle puissance de calcul ui s offre à nous par l intermédiaire de deux des plus célèbres algorithmes uantiues : l algorithme de factorisation de Shor et l algorithme de recherche de Grover. Nous ne présenterons ue brièvement le second, le cœur de ce travail étant l algorithme de Shor. Table des matières 1 L ordinateur uantiue 1.1 L ordinateur classiue...................................... 1. L ordinateur uantiue...................................... 1.3 Circuits et portes uantiues.................................. 3 1.3.1 Porte de Toffoli...................................... 3 1.3. Porte CNOT....................................... 4 1.4 Complexité d un algorithme uantiue............................. 5 Algorithme de Shor 6.1 Description du problème & algorithme............................. 6.1.1 Mise en situation..................................... 6.1. Suelette de l algorithme................................ 6. Algorithmes intermédiaires................................... 7..1 L onentiation modulaire............................... 7.. La transformée de Fourier uantiue.......................... 8.3 Recherche de l ordre d un élément............................... 10.3.1 L algorithme....................................... 10.3. Preuve de correction................................... 11 3 Algorithme de Grover 14 3.1 Position du problème....................................... 14 3. Algorithme de Grover...................................... 14 1

1. L ordinateur uantiue 1 L ordinateur uantiue 1.1 L ordinateur classiue Les ordinateurs ue nous manipulons conservent et manipulent leur information à l aide de bits : chaue bit peut valoir 0 ou 1. Avec des millions de tels bits, on peut stocker et traiter d importantes uantités d information. Une suite de bits est une donnée ui peut alors représenter un nombre en base, une adresse mémoire, un mot, ou une uelconue autre information u on sait conserver et relire sous forme de 0 et de 1. Plus précisément, toute manipulation de ces bits passe par l utilisation de portes logiues ui prennent en entrée un certain nombre de bits, disons n, et fournissent en sortie un résultat sur m bits, ui est l application d une certaine fonction booléenne f aux bits d entrée. Fig. 1 Porte logiue d une fonction booléenne f : {0, 1} n {0, 1} m On peut montrer avec uelues notions de logiue propositionnelle élémentaires ue de tels circuits peuvent toujours être décomposés en un réseau de portes NAND ( NON - ET) à entrées et 1 sortie. Par réseau, on entend un ensemble de portes logiues reliées entre elles (une entrée d une porte est la sortie d une autre, ou une des deux constantes 0 et 1), et où on a le droit de diviser un fil en deux, pour le donner en entrée à portes par exemple. Physiuement, on réalise ces circuits à l aide de transistors et autres puces électroniues, où un bit à 0 correspond à un faible potentiel, et un 1 à un fort potentiel (le plus souvent). 1. L ordinateur uantiue Le principe de base de l ordinateur uantiue est de changer le support de l information. Au lieu d un bit, on manipule un ubit. On définit l état uantiue d un ubit comme un vecteur unitaire de C. Afin de représenter cet état, on se fixe une base orthonormée de C u on note 0 et 1. Un ubit ψ peut alors être dans un de ces deux états (on retrouve le bit usuel), mais surtout il peut aussi être dans une superposition de ces deux états : ψ α 0 + β 1 avec α, β C, et α + β 1 Ainsi, là où on avait un nombre d états possibles fini dans le cas du bit, un ubit peut prendre une infinité de valeurs. Mais bien entendu, cela ne veut pas dire u on peut stocker une infinité d information dans un ubit. En effet, les lois de la mécaniue uantiue nous disent u on ne peut avoir accès directement à l information stockée dans un ubit : une mesure n est ue probabiliste et peut modifier l état du ubit, changeant le comportement normal du calcul. De plus, une mesure ne rendra u un état 0 ou 1, donc ne donnera pas accès à α et β ui représentent les vrais porteurs de l information. Il faudra donc utiliser des astuces pour loiter tout de même cette puissance uantiue. On peut maintenant généraliser ce concept de ubit pour accéder au n-ubit. On se place alors dans l espace (C ) n ui représente un système formé de n ubits. Et alors tout état ψ du n-ubit peut se décomposer sur la base dite de calcul de (C ) n obtenue à partir de la base ( 0, 1 ) de C par produits Algorithmiue uantiue : de l onentiel au polynômial

1. L ordinateur uantiue 3 tensoriels successifs : ( 0... 0, 0... 01,..., 1... 1 ). Par convention, on notera, pour a n 1 entier, a le vecteur de la base correspondant à l écriture binaire de a. On peut alors décomposer : ψ n 1 i0 a i i avec a i C et n 1 i1 a i 1 Si on cherche à avoir accès à l état effectif de ψ, on trouvera l état i avec une probabilité a i d après les lois de la mécaniue uantiue. De plus, le n-ubit sera dans l état i après la mesure, modifiant donc éventuellement sa valeur pour la fixer sur un des vecteurs de la base de calcul. On remarue donc ici une première différence essentielle avec le calcul classiue : la mesure peut changer l état d un n-ubit et ne nous donne même pas accès à son vrai état s il est superposé au moment de la mesure. Afin de réaliser des calculs sur ces n-ubits, il convient de définir l analogue des portes logiues de l informatiue traditionnelle dans ce nouveau monde. Mais on rencontre deux problèmes de fond. Premièrement, les opérations u on appliue aux n-ubits doivent être inversibles (réversibles dans le langage de la physiue) : avec la valeur d un n-ubit de sortie, on doit pouvoir retrouver uel était le n-ubit d entrée correspondant (cela impose au passage u on ne peut avoir une porte ui prendrait en entrée un n-ubit et ui rendrait un m-ubit avec m n). Cela est dicté par les lois de la physiue uantiue. Ainsi, on ne peut pas implémenter de manière directe la porte logiue NAND ui agirait sur un -ubit pour rendre un 1-ubit, ni même les usuelles AND, etc. Il va falloir ruser pour les implémenter de façon réversible et disposer ainsi au moins de la puissance du calcul classiue. Fig. Porte uantiue d un opérateur unitaire (donc inversible) f : (C ) n (C ) n Deuxièmement, il est fondamentalement impossible de dupliuer un n-ubit : un circuit uantiue ne peut comporter de bifurcations, c est-à-dire de dédoublement de fil, comme on se l autorisait pour un circuit classiue. Ceci est dû au théorème de non clonage uantiue [NC00, p. 53]. On peut comprendre ce résultat intuitivement de la manière suivante : si on arrivait à dupliuer un état uelconue autant de fois u on veut, on aurait accès statistiuement aux a i ce ui n est pas raisonnable. Là aussi, une astuce va nous sortir de ce mauvais pas. 1.3 Circuits et portes uantiues Malgré ces deux problèmes, on peut tout de même agir sur des n-ubits à la manière de n-bits normaux. La fonction booléenne ue représente une porte classiue est remplacée par un opérateur unitaire de (C ) n : on donne un n-ubit ψ en entrée à un opérateur unitaire U, et il donne en sortie le n-ubit U ψ. Il s agit donc de trouver des opérateurs unitaires ui représentent les opérations logiues ue l on veut réaliser. 1.3.1 Porte de Toffoli Tout d abord, il serait satisfaisant u un ordinateur uantiue ait une puissance de calcul au moins aussi importante u un ordinateur classiue. Pour cela, on construit une porte uantiue particulière, appelée porte de Toffoli, ui permet d obtenir une version uantiue du NAND et de la bifurcation dans un circuit. Ainsi, on aura récupéré au moins la puissance de calcul d un ordinateur classiue d après le résultat énoncé en 1.1. Algorithmiue uantiue : de l onentiel au polynômial

1. L ordinateur uantiue 4 La porte de Toffoli s appliue à 3 ubits en entrée (a, b, c) ie. à un 3-ubit et produit 3 ubits en sortie (a, b, c ). Son action est simple : si les deux premiers ubits sont dans l état 1, elle remplace la valeur du troisième ubit par son complémentaire. Pour fixer les idées, donnons sa table de vérité dans la base de calcul (les 0 et 1 représentent les états 0 et 1 pour plus de clarté) : Entrée Sortie a b c a b c 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 Cette table donne la valeur de la porte appliuée aux vecteurs de base de (C ) 3, et elle caractérise donc bien l opérateur unitaire sous-jacent. À partir de cette porte uantiue, on voit u on obtient les opérations génératrices du calcul logiue classiue : NAND et la bifurcation. En effet, si on fixe c 1, alors c NAND(a, b). De même, si on fixe a 1 et c 0, alors b c b, et on a donc dupliué b. Mais si un ordinateur uantiue peut bien simuler un ordinateur classiue, il présente bien sûr une puissance de calcul beaucoup plus importante. Tout est dans les états dits d intrication des n-ubits. En effet, comme les n-ubits peuvent être des combinaisons linéaires d éléments de la base, on peut y stocker plus d information ue si on pouvait simplement se placer sur des vecteurs de la base (comme on le ferait si l ordinateur était classiue). Malheureusement, les mesures ne renvoient u un vecteur de la base, ce ui exclut de mesurer exactement un état intriué et d en obtenir les différentes composantes sur chaue vecteur de la base de calcul. Cependant, comme on va le voir dans les algorithmes uantiues ui suivent, on peut tout de même utiliser cette latitude de calcul pour accélérer des algorithmes classiues. 1.3. Porte CNOT La porte de Toffoli nous a permis de simuler de manière uantiue la logiue de NAND. Maintenant, nous allons imiter son caractère générateur. En effet, on dispose d une porte de base ui a un rôle analogue à NAND, dans le cas classiue dans le sens où elle est universelle parmi les opérateurs unitaires. Elle prend en entrée ubits. Le premier est dit de contrôle, le second est la cible. Son action peut être décrite simplement : si le ubit de contrôle vaut 0, le ubit cible reste tel uel ; mais si le ubit de contrôle vaut 1, alors le ubit cible est changé en son complémentaire. Sa table de vérité est donc : Entrée Sortie a b a b 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0 et on nomme cette porte CNOT (Controlled-NOT). CNOT présente une propriété algébriue intéressante : [1.A] Proposition (Universalité de CNOT et des portes sur 1-ubit) À partir de CNOT et des portes uantiues agissant sur un 1-ubit, on peut créer par composition n importe uelle porte uantiue agissant sur un n-ubit (c est-à-dire obtenir n importe uel opérateur unitaire de (C ) n ). Algorithmiue uantiue : de l onentiel au polynômial

1. L ordinateur uantiue 5 Contrairement au cas classiue, il n y a pas ue NOT ui agisse sur un seul ubit. Il y en a même une infinité puisu il y a une infinité d opérateurs unitaires sur C. On dénote par exemple l importante porte suivante, u on utilisera par la suite : La porte d Hadamard : H 1 ( 1 1 1 1 Il est bon de noter ici ue cela ne résoud pas totalement notre problème. En effet, si on peut simuler tout opérateur unitaire par un nombre fini de compositions de portes de bases, un ordinateur uantiue effectivement construit ne peut embaruer u un nombre fini de portes uantiues, et donc ne peut avoir accès à tout opérateur agissant sur un ubit on n avait pas ce problème dans le cas classiue puisu il suffisait d embaruer la seule porte NAND. Cependant, des résultats d approximation montrent u on peut choisir, si on se fixe une précision, un sous-ensemble fini de portes de base pour approximer n importe uel opérateur unitaire [Fim00]. 1.4 Complexité d un algorithme uantiue On parle d accélérer des algorithmes classiues, mais encore faut-il se donner un moyen de mesurer effectivement la complexité d un algorithme uantiue. Rappelons ue dans le cas d un algorithme classiue, on choisit de mesurer la complexité en temps : on estime le temps mis par l algorithme sur une entrée de taille n, asymptotiuement. Cela revient à compter le nombre d opérations atomiues réalisées au cours d une exécution. Les algorithmes polynômiaux en n sont considérés comme étant utilisables en pratiue, alors ue les onentiels mettraient beaucoup trop de temps sur des entrées, même petites, pour être utiles. Sur un ordinateur uantiue, on mesure de même le temps d exécution. On va utiliser le résultat de [1.A] : on considère ue l application de CNOT ou d un opérateur agissant sur un 1-ubit se fait en temps constant. Une mesure prend également un temps constant. Ainsi, lorsu on dispose d un circuit uantiue, on établit sa complexité en décomposant chaue opérateur en CNOT et en opérations de 1-ubit, puis on compte. Dans toute la suite, les opérateurs agissant sur les n-ubits se décomposent en un nombre polynômial en n de portes de base. Ainsi, compter un nombre polynômial de ces portes uantiues ou des portes de base est éuivalent. On ne se souciera donc plus de ce détail de définition, et on comptera directement les opérateurs agissant sur des n-ubits. L aspect pratiue des algorithmes polynômiaux à opposer aux onentiels reste évidemment le même : un algorithme polynômial serait assez rapide si un ordinateur uantiue l exécutait, alors u un onentiel serait trop long sur des entrées de taille usuelle. Au moment où est écrit ce texte, on est parvenu à construire effectivement un ordinateur uantiue de 7-ubit, mais pas plus. Il a factorisé 15 avec l algorithme de Shor ue nous allons décrire dans la suite. On est bien loin d un vrai ordinateur disposant d un 100-ubit par exemple, mais c est déjà une belle avancée d être parvenu à passer de la théorie à la pratiue. ) Algorithmiue uantiue : de l onentiel au polynômial

. Algorithme de Shor 6 Algorithme de Shor.1 Description du problème & algorithme.1.1 Mise en situation Actuellement, beaucoup de techniues de cryptologie sont basées sur un fait simple : nous ne connaissons pas de façon efficace (ie. polynômiale) de factoriser un nombre. En particulier, la méthode RSA, utilisée dans les transmissions bancaires par exemple, repose sur ce fait : on fait transiter publiuement un très grand nombre u on sait être produit de deux nombres premiers. La connaissance d un de ces nombres permettrait de casser la sécurité de la transmission, mais vu u on ne peut pas (dans l état actuel des connaissances) trouver ce nombre en moins de centaines d années, on considère ue la transmission est sûre. L algorithme de Shor bouleverse totalement cette vision : en 1994, Shor trouve un algorithme uantiue ui factorise un nombre en temps polynômial. Ainsi, un ordinateur uantiue remettrait en cause une bonne partie de nos algorithmes de cryptologie. (Pas de paniue cependant, il fournirait également une puissance d encryptage plus importante!) Remarue 1. Dans un algorithme manipulant en entrée un nombre N, la taille de l entrée est le nombre de bits de N, ie. log N O(log N)..1. Suelette de l algorithme On peut décrire l algorithme de Shor en plusieurs étapes : Shor Entrée : nombre N à factoriser. On sait ue N n est pas premier. Sortie : 1 facteur non-trivial de N 1. Si N est pair, retourner.. Déterminer si N a b pour des entiers a 1 et b. Si c est le cas, retourner a. 3. Choisir un entier x, 1 x N 1. 4. Si le pgcd(x, N) > 1, alors retourner pgcd(x, N). 5. Sinon, chercher l ordre r de x dans Z/NZ, c est-à-dire ue r est le plus petit entier non-nul tel ue x r 1 mod N. 6. Si r est impair ou x r/ 1 mod N, alors recommencer avec un autre x. 7. Calcule pgcd(x r/ 1, N) et pgcd(x r/ + 1, N). L un des deux est un facteur non trivial. Quelues justifications s imposent ici pour voir ue l algorithme est bien polynômial en log N, et u il calcule bien ce u on veut. Les deux premières étapes sont là pour vérifier ue N est un entier impair avec plus d un facteur premier. Ces étapes peuvent être réalisées en O(1) et en O(log 3 N) respectivement. Cette propriété de N sera essentielle pour l étape 6. L étape 3 choisit un entier aléatoirement. Au vu de la uantité d aléas présente par essence dans un ordinateur uantiue, on se doute u obtenir un entier aléatoire n est pas très compliué. En effet, on peut faire simplement la manipulation suivante : on appliue la porte d Hadamard au 1-ubit 0. On a par définition : 0 + 1 H 0 Algorithmiue uantiue : de l onentiel au polynômial

. Algorithme de Shor 7 Il suffit alors de mesurer l état de H 0 pour obtenir 0 ou 1 avec une probabilité 1/. À partir de cela, il est facile de générer aléatoirement un nombre entre 1 et N 1 en O(log N) (on tire aléatoirement chaue chiffre de son écriture en base ). L étape 4 retourne éventuellement directement un facteur non trivial. Le pgcd se calcule classiuement en O(log 3 N) à l aide de l algorithme d Euclide. Jusue là, nous n avons pas utilisé la puissance particulière de l ordinateur uantiue (l aléa peut être simulé sur un ordinateur classiue). C est dans l étape 5 ue tout se joue. En effet, on ne sait pas trouver l ordre de x en temps polynômial sur un ordinateur classiue, alors u on le peut sur un ordinateur uantiue avec une faible probabilité d erreur. La clef de voûte de cette techniue est la transformée de Fourier uantiue ui se fait en O(log 3 N) contre O(N log N) classiuement. Nous allons étudier en détail cette étape dans la section suivante. Dans l étape 6, il y a aussi une probabilié d erreur de l algorithme, mais elle est très petite : [.A] Théorème (Probabilité d échec) Soit N m i1 p i αi la décomposition en facteurs premiers de N. Alors avec les notations de l algorithme : P (r est pair et x r/ 1 mod N) 1 1 m 1 Preuve de [.A]. cf. [Sho99]. En particulier, cette probabilité d erreur est inférieure à 1/. Dans l étape 7, le calcul du pgcd se fait toujours en O(log 3 N). On sait par l étape précédente ue x r/ 1 mod N, et on sait par définition de r ue x r/ 1 mod N. Ainsi, aucun des deux facteurs n est nul modulo N, et donc leurs pgcd avec N donnent des facteurs non-triviaux, puisue leur produit divise N. Finalement, on voit ue ce ui permet à l algorithme uantiue d être polynômial (à une petite probabilité d erreur près) est simplement le fait de pouvoir calculer une transformée de Fourier efficacement. Comme nous l avions indiué, cet algorithme a une (petite) probabilité d erreur. Il faut distinguer cependant deux sources d erreurs : dans l étape 5 la probabilité d erreur vient des lois de la mécaniue uantiue alors ue dans l étape 6, c est purement arithmétiue.. Algorithmes intermédiaires Afin de réaliser l étape 5, il nous faut construire routines : l onentation modulaire et la transformée de Fourier uantiue. Nous décrivons ici l algorithme tel u il a été énoncé par Shor, mais la version u on trouve plus souvent dans la littérature passe par un autre intermédiaire plus général et utile dans d autres cas, u on appelle l estimation de phase...1 L onentiation modulaire L objet de ce paragraphe est de décrire un algorithme uantiue polynômial pour l onentation : on prend en entrée n, x et a pour donner en sortie (x a mod n). Ce sont des entiers, c est-à-dire des vecteurs de la base de calcul. On peut alors appliuer la méthode classiue pour calculer les puissances, dite d onentiation rapide. Elle consiste à calculer les x i (x i mod n) en mettant au carré successivement tant ue i log a. Ensuite, il reste à multiplier x log a (x log a mod n) par uelues-uns des x i déjà calculés pour l ajuster exactement à (x a mod n). Algorithmiue uantiue : de l onentiel au polynômial

. Algorithme de Shor 8 L implémentation uantiue effective des opérations arithmétiues n est pas triviale, mais elle n est pas terrifiante. On se reportera à [Sho99] pour plus de détails. Cette opération coûte donc clairement O(log n) multiplications de nombres plus petits ue n. On dispose ensuite de l algorithme classiue ui multiplie deux entiers plus petits ue n en O(log n). En fin de compte, la complexité est de O(log 3 n). En réalité, pour notre problème, on pourrait utiliser n importe uel algorithme de multiplication, même naïf, tant u il reste polynômial en log n. En particulier, on peut faire mieux ue ce O(log 3 n) en faisant appel à des algorithmes de multiplication plus sophistiués. Pour ue ce soit un algorithme exécutable sur un ordinateur uantiue, il se doit d être réversible comme on l a déjà vu. Dans [Sho99], l auteur décrit une méthode pour rendre réversible cet algorithme (et même tout algorithme). Nous ne nous attardons pas sur ce point et renvoyons à cette source pour plus de détails... La transformée de Fourier uantiue Usuellement, la transformée de Fourier discrète prend complexes (x 0,..., x 1 ) où est fixé, et calcule (y 0,..., y 1 ) : y k 1 1 ( ) iπck x c c0 On transpose alors aisément ce calcul dans le cadre uantiue. On se fixe un entier l, l 1, et 0 a <. La transformation de Fourier agit sur a ui est un l-ubit de la manière suivante : a 1 1 ( ) πac c c0 En clair, on appliue simplement l opérateur unitaire ui a pour matrice A dans la base de calcul où le terme (a, c) de A est, d après (.i) : (A ) (a,c) 1 ( ) πac (.ii) Il s agit donc de représenter cet opérateur comme une composition d un nombre polynômial en log de portes uantiues simples (voir 1.4). Pour réaliser A, nous n avons besoin ue de uelues opérateurs de base. Premièrement, on doit disposer des portes H j ui opèrent chacune sur le j ème ubit du l-ubit d entrée et ui a pour matrice H sur ce ubit (la porte d Hadamard, cf. 1.3.). Ensuite, il suffit d avoir les opérateurs S j,k ui opèrent chacun sur les j ème et k ème ubit d entrée, avec j < k, et ui a pour matrice sur ces ubits : 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 e iθ j,k, où θ j,k π k j Et alors on obtient la porte A en mettant bout à bout uelues-unes bien choisies de ces portes : H l 1 ; S l,l 1 puis H l ; S l 3,l 1 ; S l 3,l puis H l 3... H 1 ; S 0,l 1... S 0,1 puis H 0 puis en prenant les ubits à l envers dans la réponse de ce circuit (le premier ubit de sortie correspond en fait à la coordonnée de A sur c pour c 1 et non pas c 0, et ainsi de suite) ceci se fait bien en un temps linéaire simplement avec un circuit de Swap puisu il faut intervertir l/ couples. Ainsi, on voit u on utilise l + l i1 i O(l ) O(log ) O(log ) portes, ce ui nous fait donc un algorithme polynômial en log. Reste à voir tout de même pouruoi cela calcule bien la transformée de Fourier u on attend. (.i) Algorithmiue uantiue : de l onentiel au polynômial

. Algorithme de Shor 9 Pour cela, regardons attentivement ce u il se passe sur un vecteur a a l 1... a 0, et plus précisément la coordonnée de A a sur un vecteur c c l 1... c 0. On s attend à retrouver (A ) (c,a). Premièrement, regardons l amplitude. Les S j,k ne la modifient pas, alors ue chaue application de H j la multiplie par 1. Il y a l log applications de H j, et donc l amplitude est multipliée par ( 1/ ) log l 1 Ainsi, le facteur multiplicatif dans (.ii) est acuis. Maintenant, regardons le changement de phase. Pour commencer, regardons l action des H j. Pour j fixé, H j a une action visible (multiplie par 1, ie. déphase de π) sur a seulement si a j vaut 1, et si on regarde le résultat sur une ligne où le j ème ubit de c vaut 1. Mais comme on inverse les ubits en fin d algorithme, cela se traduit par le fait ue c l 1 j 1. On peut voir cela en regardant l action de H j sur un l-ubit global : H j I I... I } {{ } H I... I } {{ } j 1 fois l j fois Donc si on dispose de a a l 1... a 0, d après les règles de calcul des produits tensoriels : H j a I a l 1 I a l I a j+1... H j a j I a j 1 I a 0 a l 1... a j+1 H j a j a j 1... a 0 Ainsi, on peut diviser l étude en deux cas : a j 0 a j 1 H j a 1 a + 1 a l 1... a j+1 1 a j 1... a 0 H j a 1 a l 1... a j+1 0 a j 1... a 0 1 a 1 a l 1... a j+1 0 a j 1... a 0 + 1 e iπ a Ainsi, on remarue ue le seul cas où on observe un déphasage du vecteur initial est lorsue a j 1 et u on regarde le résultat sur un vecteur dont le j ème ubit vaut 1. On traduit ceci par c l j 1 1 dans notre cas. Le déphasage est de π, et c est donc bien le résultat annoncé ci-dessus. Observons à présent l action de S j,k. Par définition, on voit ue S j,k déphase selon c de a j c l k 1 1, et ne fait rien sinon. π k j si On peut maintenant recoller les morceaux et voir ce ue fait effectivement le total. On a un déphasage total Φ pour A a selon le vecteur c de la base de calcul de : Φ,a,c k l k 1 l πa j c l j 1 + j0 0 j k<l 0 j+k<l π l πac 0 j<k<l π k j a j c l 1 k π j k l a j c k l 1 l 1 j a j k c k j0 k0 π k j a j c l k 1 Or (A ) (a,c) (A ) (c,a) 1 e iφ,a,c, donc on a bien montré ue (A ) (a,c) 1 ( ) πac Algorithmiue uantiue : de l onentiel au polynômial

. Algorithme de Shor 10 Intuitivement, on voit bien où le calcul uantiue permet de gagner du temps : lorsu on appliue H j ou S j,k, l opérateur agit sur toutes les composantes en même temps. Plutôt u un long discours, voici la matrice de H lorsue l 3, où le vide représente des zéros. On voit bien ue des calculs sont faits en parallèle ( résultats superposés pour chaue composante en entrée ; plus les opérateurs s appliuent au vecteur de départ, plus l état est superposé, et donc plus on parallélise ) : I H I 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 Malgré tout, il serait abusif de dire ue cet algorithme calcule effectivement la transformée de Fourier de a. En effet, si on sait ue A a est bien dans un état ui représente sa transformée de Fourier, on ne peut pas pour autant en extraire les différentes harmoniues, toujours à cause du problème de la mesure ui est probabiliste et ui projetterait le vecteur sur un vecteur de la base de calcul. Ainsi, elle ne peut servir ue comme étape intermédiaire dans un autre algorithme. C est précisément la manière dont on s en sert dans l algorithme de recherche de l ordre comme on va le voir..3 Recherche de l ordre d un élément.3.1 L algorithme Il est temps de faire effectivement l algorithme pour l étape 5 : Order-Finding Entrée : un entier N, et un entier x, 1 x N. Sortie : r l ordre de x dans Z/NZ. La taille de l entrée est donc log N. Premièrement, choisissons l tel ue l soit la puissance de telle ue n < n. On prend ensuite un l-ubit, auuel on pense comme deux registres d un l-ubit chacun, et ue l on place dans un état de superposition uniforme sur le premier registre : 1 1 a }{{} 0 }{{} a0 l-ubit l-ubit On peut réaliser cette superposition par exemple à l aide d une porte d Hadamard généralisée H n H n, en prenant H n 0. Ensuite, on utilise l algorithme d onentiation modulaire pour calculer x a mod N dans le second registre. Ce calcul peut être fait de façon réversible puisu on conserve a dans le premier registre. On obtient donc le nouvel état : 1 1 a x a mod N a0 Maintenant, on appliue la transformée de Fourier A au premier registre. C est bien une opération polynômiale en log N puisue log N log log + log N. D après (.i), on se retrouve à présent dans l état : 1 1 1 ( ) iπac c x a mod N (.iii) a0 c0 Algorithmiue uantiue : de l onentiel au polynômial

. Algorithme de Shor 11 À présent, les calculs sont terminés et on fait une mesure de l état, récoltant un certain c x a mod N. Il ne reste plus u une étape de gestion des données (ui peut être réalisée sur un ordinateur classiue). On cherche d et r tels ue c d r 1 (on peut utiliser un algorithme de fractions continues pour cela, ui s exécute en temps polynômial). Si d et r (u on ne connaît pas) sont premiers entre eux, alors r r et on a trouvé l ordre de x. Sinon, il faut recommencer l algorithme (pour savoir si on doit recommencer, on teste simplement si x r 1 mod N). Comme on va le voir ci-dessous, la probabilté de recommencer est telle ue l on est certain à une très faible probabilité d erreur près ue le calcul va terminer au bout de O(log log r) exécutions. Et on sait ue r divise N par le théorème de Lagrange, donc c est aussi un O(log log N). Finalement, on a bien un algorithme ui s exécute en temps polynômial et ui prétend trouver l ordre de l élément x. Reste à voir pouruoi et comment dans la section suivante..3. Preuve de correction On se place après la mesure et il faut montrer ue les opérations u on fait ensuite mènent bien à r avec bonne probabilité. Pour plus de clarté, nous allons faire la preuve un petit peu à l envers par rapport à [Sho99]. On définit {rc} N comme la uantité telle ue (rc {rc} Supposons à présent u après la mesure, on ait : mod ) et {rc} ] /, /]. r {rc} r (.iv) c est-à-dire u il existe un entier d tel ue : ou encore r rc d r c d r 1 1 n On connaît c et ui sont fixés. Supposons u on ait deux fractions différentes d r (.v) avec r, r < N. Alors on a : d r d r 1 rr > 1 N et d autre part d r d r d r c + c d r 1 N et d r (.v) ui vérifient Ceci est absurde, donc il existe au plus une fraction ayant un dénominateur r < N ui vérifie (.v). On admettra u on peut trouver une telle fraction en temps polynômial grâce à un algorithme utilisant les fractions continues, on la note d0 r 0. Dans cette situation, si d et r sont premiers entre eux, alors d r est irréductible et l algorithme a donc donné la bonne fraction : d d 0 et r r 0, on a bien trouvé r. Dans le cas où d et r ne sont pas premiers entre eux, l algorithme a donné une version réduite de d/r et donc d 0 < d et r 0 < r : on n a pas trouvé r et il faut recommencer depuis le départ. Si on accepte u on est dans le cas de (.iv), regardons uelle probabilité on a d être dans le cas où d et r sont premiers entre eux. Pour voir ue cette étude ui a pris comme postulat (.iv) reflète bien la réalité, il faut estimer la probabilité u on a d arriver dans la bonne situation. Comptons donc le nombre d états c x k mod N ui nous mènent dans le cas où on obtient bien la valeur de r au bout du compte. Algorithmiue uantiue : de l onentiel au polynômial

. Algorithme de Shor 1 Il y a ϕ(r) valeurs de d telles ue d est premier avec r par définition de ϕ, où ϕ est la fonction d Euler. Et pour chacune de ces valeurs de d, il y a une valeur de c telle ue (.v) soit vérifiée. Pour chacune de ces valeurs de c, il y a r valeurs possibles pour (x k mod N) puisue r est l ordre de x. Donc il y a E rϕ(r) états possibles de c x k mod N ui nous permettent de trouver r. Reste à voir dans uelle mesure la condition (.iv) est vérifiée. D après (.iii), la probabilité de mesurer un état c x k mod N est : P c,k 1 a:x a x k [N] ( ) iπac Et comme l ordre de x est r, cette somme porte en fait sur les a tels ue a k mod r, puisue x a k 1 mod N. Alors si on écrit a br + k, on trouve : P c,k 1 1 k 1 b0 k 1 b0 ( ) iπ(br + k)c ( ) iπb{rc} Il s agit maintenant d évaluer cette probabilité. Pour cela, on va faire une estimation série-intégrale : k 1 b0 k 1 j0 k 1 j0 ( iπb{rc} [ [ ( iπj{rc} ) ) k 1 0 j+1 j ( ) iπb{rc} db ( ) db] iπb{rc} ( ) ( 1 ( iπj{rc} iπb{rc} 1 Or {rc} /, et donc on fait moins d un demi-tour, et pour b [0, 1]. Donc : Finalement, on a donc : k 1 j0 k 1 r [ 0 1 ( iπb{rc} ) db)] ( ) ( ( ))] iπj{rc} iπ{rc} 1 ( ( )) iπ{rc} 1 ) ( ) 1 iπ{rc} 1 k 1 b0 ( ) iπb{rc} 1 k 1 0 ( iπb{rc} ) db + O ( k 1 ( r ( iπ{rc} ) ) ) 1 À l aide d un développement limité, on voit ue si {rc} r/, alors le terme correctif est en O(1/). On l ignorera donc à partir de maintenant. Et après changement de variable on obtient : 1 r k 1 r/ 0 ( iπu{rc} r ) du Algorithmiue uantiue : de l onentiel au polynômial

. Algorithme de Shor 13 Comme k < r, on peut approximer la borne supérieure de l intégrale par 1 en ne faisant u une erreur en O(1/). Donc on se retrouve à traiter : I 1 r 1 0 ( ) iπu{rc} du r Une étude de fonction immédiate montre ue I πr pour {rc} r/. Et donc dans le cas où {rc} r/ (ui est (.iv)), on a P c,k 4 π r 1 3r pour assez grand, c est-à-dire pour N assez grand. Finalement, on vient de montrer u asymptotiuement, la probabilité de mesurer un état tel ue (.iv) soit vérifiée est plus grande ue 1 3r. Le fait ue ce soit asymptotiue n est nullement gênant : on appliue l algorithme de factorisation pour de grands nombres, sinon un test direct est faisable. Si on en revient à la conclusion précédente, la probabilité d être dans le cas où on trouve le bon r est donc supérieure, asymptotiuement, à E 3r rϕ(r) 3r ϕ(r) 3r. Or un théorème d arithmétiue nous dit u il existe une constante δ telle ue ϕ(r). Cela prouve ue l on trouve r effectivement au moins une δ δ r log log r fraction 3 log log r du temps. Donc en répétant l érience seulement O(log log r) O(log log N) fois, on est assuré d une bonne probabilité de succès. Algorithmiue uantiue : de l onentiel au polynômial

3. Algorithme de Grover 14 3 Algorithme de Grover Le cœur de l osé reposant sur l algorithme de Shor, nous ne donnerons u un aperçu rapide de l algorithme de Grover en nous limitant à énoncer les (belles) idées u il fait intervenir. 3.1 Position du problème On dispose d un ensemble de N éléments désordonnés, parmi lesuels on veut trouver un élément particulier (on peut facilement généraliser l algorithme pour trouver M N éléments). Sur un ordinateur classiue, dans une telle situation, on ne peut trouver l élément en moins de N/ opérations en moyenne. Ainsi, la recherche est linéaire : on regarde chaue objet jusu à tomber sur le bon. L algorithme de Grover permet de trouver cet élémént avec une (très) forte probabilité de succès en temps O( N). 3. Algorithme de Grover Le point essentiel de l algorithme de Grover est la parallélisation de calculs ue permet les ordinateurs uantiues. Comme d habitude, on n obtient pas tous les résultats puisu ils ne sont pas mesurables, mais ils sont calculés dans l état. Tout d abord, on se munit de deux registres. Le premier est de taille log N, le deuxième est simplement un ubit. On place le premier registre dans un état de superposition (u on a déjà croisé) : ψ 1 1 N 1 i N On définit la fonction indicatrice de la solution : { 1 si i est l élément cherché i0 f(i) 0 sinon L algorithme de Grover consiste à construire un opérateur unitaire U f tel ue : i0 U f ( i j ) i j f(i) où désigne le NAND (ie. la somme modulo ). Plaçons le deuxième registre dans l état ψ H 1 0 1. Alors : U f ( i ψ ) U f ( i 0 ) U f ( i 1 ) i f(i) i 1 f(i) ( 1) f(i) i ψ Du coup, si on appliue ce calcul à notre état ψ 1, on obtient : U f ( ψ 1 ψ ) N 1 1 U f ( i ψ ) N i0 N 1 1 ( 1) f(i) i ψ N i0 Ainsi, on a différencié l état recherché puisue c est la seule coordonnée de R U f ( ψ 1 ψ ) ui est négative. On a donc bien évalué la fonction f en parallèle sur les N valeurs. Bien entendu, comme toujours, on n a toujours pas accès à l élément recherché puisu une mesure ne nous donnerait aucune Algorithmiue uantiue : de l onentiel au polynômial

3. Algorithme de Grover 15 information (on a une chance sur N de tomber sur la bonne valeur, puisue toutes les coordonnées ont même module). La suite de l algorithme de Grover consiste à manipuler cet état R pour accentuer l amplitude de la coordonnée négative au détrimens des positives. On peut montrer u au bout de O( N) opérations, on a assez accentué la coordonnée cherchée pour ue la probabilité de l avoir dans une mesure soit excellente. On se réfèrera à [Gro96] pour le premier article ui décrit l algorithme, à [LMP03] et [NC00, p. 48] pour une version mieux liuée accompagnée d illustrations parlantes. [Gro01] liue la génèse de cet algorithme et le cheminement pour arriver jusu à lui. Algorithmiue uantiue : de l onentiel au polynômial

Références [Fim00] Pierre Fima. Portes et circuits uantiues. Accessible sur le site du groupe de travail : http ://www.dma.ens.fr/edition/notesgdt/gt_calculuantiue, 000. [Gro96] [Gro01] L.K Grover. A fast uantum mechanical algorithm for database search. Proc. 8th annual ACM Symposium on the Theory of computing (STOC), pages pp. 1 19, May 1996. L.K Grover. From schrödinger s euation to the uantum search algorithm. Trouvable sur arxiv, 001. [LMP03] C. Lavor, L.R.U Mansur, and R. Portugal. Grover s algorithm : uantum database search. Trouvable sur arxiv, 003. [NC00] [Sho99] Michael L. Nielsen and Isaac L. Chuang. Quantum computation and uantum information. Cambridge, 000. P.W. Shor. Polynomial-time algorithms for prime factorization and discrete logarithms on a uantum computer. SIAM Review, 41() :pp. 303 33, Jun. 1999.