https://audentia-gestion.fr/QUANTIQUE/PDF/Livre-quantum-Un-peu-de-mathematiques-pour-l-informatique-quantique.pdf
Au ofrmat texte : Q UA N T UM UN P E U D E MAT H EMAT I Q U E S P O U R Lf I N F O RMAT I Q U E Q UA N T I Q U E A R N AU D B O D I N A L G O R I T HME S E T MAT H EMAT I Q U E S Exo7 Un peu de mathematiques pour lfinformatique quantique Les ordinateurs quantiques sont parmi nous ! Enfin presque. . . Dans ce livre vous decouvrirez lfinformatique quantique et apprendrez a programmer sur un vrai ordinateur quantique. Meme sfils sont encore balbutiants et ne sont pas disponibles chez vous, vous avez acces en ligne a des machines quantiques pour tester de petits programmes. La physique quantique est lfune des revolutions du vingtieme siecle. Cela reste une matiere difficile a etudier et encore plus a comprendre tant certains phenomenes quantiques contredisent notre perception du monde physique classique. Cependant la theorie quantique est validee par de nombreuses experiences et a des applications dans notre quotidien. Depuis quelques annees il existe des ordinateurs quantiques effectuant des calculs sur des á qubits â. Un qubit stocke lfinformation quantique : soit lfinformation 0, notee |0., soit lfinformation 1, notee |1., soit dfune certaine maniere les deux en meme temps ! Un qubit correspond a lfetat dfune particule qui peut osciller entre un etat au repos et un etat excite. Cfest la qufinterviennent les mathematiques ! La physique quantique est difficile a comprendre et les ordinateurs quantiques sont compliques a realiser mais heureusement les mathematiques necessaires pour sfinitier a lfinformatique quantique sont simples. Par exemple un qubit sfexprime en fait par lfexpression mathematique : ƒ¿|0. + ƒÀ |1. . Cfest cette combinaison des deux etats |0. et |1. qufon vulgarise par la phrase mysterieuse á prendre a la fois la valeur 0 et la valeur 1 â. Il est cependant delicat de trouver un sens physique a cette superposition dans le monde classique et cfest encore plus ardu de maitriser une particule qui realise un qubit. Les mathematiques sont le langage ideal pour exprimer la physique et lfinformatique quantique. Nous expliquons ici les notions (superposition, intrication, non-clonage quantique,. . .) comme des concepts mathematiques en se permettant de sfaffranchir de lfunivers physique delicat qui se cache derriere. Ce livre offre une introduction douce a lfinformatique quantique et aux mathematiques afin dfetre en mesure de presenter lfalgorithme de Shor. Cet algorithme a fait decouvrir au monde la revolution que pourrait apporter un ordinateur quantique. Les communications sur internet sont pour la plupart securisees par un chiffrement qui repose sur la difficulte de factoriser de tres grands entiers, meme avec des ordinateurs tres puissants. Lfalgorithme de Shor montre que sur un ordinateur quantique (plus gros que ceux qui existent actuellement) ce probleme deviendrait simple a resoudre. Pour demarrer lfetude de lfinformatique quantique avec ce livre, vous nfavez pas besoin de connaitre la physique quantique, vous nfavez pas non plus besoin de competences avancees en programmation (un peu de Python). Les mathematiques de ce cours sont dfun niveau premiere annee dfetudes superieures, avec des incursions vers la deuxieme annee. Toutes les notions de bases sont introduites, en particulier les nombres complexes jouent un role important (dfailleurs les nombre ƒ¿ et ƒÀ ci-dessus sont des nombres complexes) ainsi que les vecteurs et les matrices. Lfinformatique quantique est un monde deconcertant mais bien reel. A vous de le decouvrir ! Le cours est aussi disponible en videos : Youtube : á Quantum â. Lfintegralite des codes Python ainsi que tous les fichiers sources sont sur la page GitHub dfExo7 : á GitHub : quantum-exo7 â. Sommaire I Premiers pas quantiques 1 1 Decouverte de lfinformatique quantique 2 2 Utiliser un ordinateur quantique (avec Qiskit) 21 3 Nombres complexes 33 4 Vecteurs et matrices 47 5 Informatique classique 66 6 Physique quantique 74 7 Teleportation quantique 85 II Algorithmes quantiques 95 8 Un premier algorithme quantique 96 9 Portes quantiques 104 10 Algorithme de Deutsch.Jozsa 118 11 Algorithme de Grover 125 III Algorithme de Shor 142 12 Arithmetique 143 13 Algorithme de Shor 155 14 Complements dfarithmetique 169 15 Transformee de Fourier discrete 184 IV Vivre dans un monde quantique 201 16 Cryptographie quantique 202 17 Code correcteur 208 18 Avantage quantique 217 Index Resume des chapitres Decouverte de lfinformatique quantique Ce chapitre donne un apercu des calculs avec les qubits et est une introduction detaillee des chapitres suivants dans lesquels plusieurs notions seront revues : nombres complexes, vecteurs, matrices, portes logiques, physique quantique. Ce chapitre se termine par une application assez difficile : le codage super-dense. Utiliser un ordinateur quantique (avec Qiskit) Le but est de programmer des circuits quantiques et de simuler les resultats. Mais nous allons aussi utiliser un veritable ordinateur quantique. Nombres complexes Les nombres complexes sont les coefficients naturels des qubits. Nous detaillons les calculs avec les nombres complexes ainsi que sur les qubits. Vecteurs et matrices Un qubit est un vecteur et les operations sur les qubits sont codees par des matrices. Nous etudions ici le calcul sur les vecteurs, les matrices et leur lien avec les qubits. Informatique classique Nous rappelons quelques principes de base du fonctionnement dfun ordinateur classique avec les notions de bits, de portes logiques et de complexite dfun algorithme. Physique quantique Lfobjectif est de comprendre les notions de base de la physique quantique. Teleportation quantique La teleportation quantique permet de transmettre un qubit dfun point A a un point B. Un premier algorithme quantique Nous commencons par etudier une version simple de lfalgorithme de Deutsch.Jozsa afin de nous familiariser avec les objets, les techniques et les types dfalgorithmes que nous decouvrirons dans la seconde partie du livre. Portes quantiques Nous approfondissons nos connaissances theoriques des portes quantiques en etudiant ce qufelles peuvent realiser (ou pas !). Algorithme de Deutsch.Jozsa Nous expliquons et prouvons lfalgorithme de Deutsch.Jozsa dans le cas general. Cfest notre premier algorithme quantique qui supplante les algorithmes classiques et cfest aussi lfoccasion dfintroduire plusieurs notions utiles pour la suite. Algorithme de Grover Lfalgorithme de Grover est un algorithme de recherche dfun element dans une liste qui est plus efficace que les algorithmes classiques. Son principe est simple, meme si sa mise en oeuvre est un peu complexe. Lfalgorithme de Grover ne fournit pas un resultat sur a 100 %, mais une reponse qui a de grandes chances dfetre la bonne. Arithmetique La securite des communications sur internet est basee sur lfarithmetique et en particulier sur le systeme de cryptographie RSA qui repose sur la difficulte de factoriser de tres grands entiers avec un ordinateur classique. Nous presentons dans ce chapitre les notions essentielles dfarithmetique afin de comprendre plus tard lfalgorithme de Shor qui permet de factoriser rapidement un entier a lfaide dfun ordinateur quantique. Algorithme de Shor Nous detaillons le circuit et les calculs qui permettent une factorisation rapide des entiers a lfaide dfun ordinateur quantique. Complements dfarithmetique Nous apportons des complements a lfalgorithme de Shor en etudiant chacune des hypotheses. Transformee de Fourier discrete Nous revenons sur lfoutil principal de lfalgorithme de Shor : la transformee de Fourier. Nous expliquons comment elle est construite, comment la realiser par un circuit quantique et quelles sont ses autres applications. Cryptographie quantique Nous etudions le protocole BB84 qui permet le partage dfun secret commun entre deux personnes grace a la physique quantique. Code correcteur Lors de la transmission dfun qubit il peut y avoir des erreurs. Les codes correcteurs permettent de detecter et corriger ces erreurs. Avantage quantique Quand est-ce qufun ordinateur quantique sera plus performant qufun ordinateur classique ? PR EMI E R E PA RT I E | 0 > | 0 > P R EMI E R S PA S Q UA N T I Q U E S 1 Decouverte de lfinformatique quantique Chapitre 1 Video ¡ partie 1.1. Un qubit Video ¡ partie 1.2. Portes quantiques Video ¡ partie 1.3. Les 2-qubits (partie 1) Video ¡ partie 1.3. Les 2-qubits (partie 2) Video ¡ partie 1.4. Plus de qubits Video ¡ partie 1.5. Communication par codage super-dense Plongeons directement au coeur de lfinformatique quantique en abordant la notion de qubit et les circuits quantiques fondamentaux. Ce chapitre donne un apercu des calculs avec les qubits et est une introduction detaillee des chapitres suivants dans lesquels plusieurs notions seront revues : nombres complexes, vecteurs, matrices, portes logiques, physique quantique. Ce chapitre se termine par une application assez difficile : le codage super-dense. 1. Un qubit Pour un ordinateur classique lfunite dfinformation est le bit represente soit par 0, soit par 1. Avec plusieurs bits on peut coder un entier, par exemple 19 est code en binaire par 1.0.0.1.1; on peut aussi coder des caracteres, par exemple le code ASCII de á A â est 1.0.0.0.0.0.1. 1.1. Un qubit est un vecteur En informatique quantique on part aussi de deux etats quantiques de base : |0. et |1. . La notation est un peu bizarre (elle sera justifiee ulterieurement). En fait |0. et |1. sont deux vecteurs : |0. = 1 0 et |1. = 0 1 . Ces deux vecteurs forment une base orthonormee du plan. |0. |1. Etats quantiques de base |0. |1. |ƒÕ. = ƒ¿|0. + ƒÀ |1. Un etat quantique |ƒÕ. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 3 Ce qui est nouveau et fondamental est que lfon peut superposer ces deux etats |0. et |1.. Un qubit est un etat quantique obtenu par combinaison lineaire : |ƒÕ. = ƒ¿|0. + ƒÀ |1. Ainsi, un qubit est represente par un vecteur : |ƒÕ. = ƒ¿ ƒÀ . En effet : |ƒÕ. = ƒ¿|0. + ƒÀ |1. = ƒ¿ 1 0 + ƒÀ 0 1 = ƒ¿ ƒÀ . Vocabulaire. . Les etats |0. et |1. se lisent á ket zero â et á ket un â (á ket â se prononce comme le mot á quete â). . ƒÕ est la lettre grecque á psi â, ainsi |ƒÕ. se lit á ket psi â. La ou cela se complique un peu, cfest que les coefficients ƒ¿ et ƒÀ ne sont pas des nombres reels mais des nombres complexes : ƒ¿ ¸ C et ƒÀ ¸ C Ainsi |ƒÕ. est un vecteur de C2, defini par ses deux coordonnees complexes ƒ¿ et ƒÀ. ƒ¿ ¸ C ƒÀ ¸ C |0. = 1 0 |1. = 0 1 |ƒÕ. = ƒ¿ ƒÀ ƒ¿ ƒÀ Sur la figure ci-dessus, on a represente un vecteur a coordonnees complexes comme un vecteur du plan. Cette figure aide a la comprehension mais ne correspond pas tout a fait a la realite. Comme chacun des axes correspond a une coordonnee complexe (de dimension 2), un dessin realiste necessiterait quatre dimensions. Exemple. . |ƒÕ. = (3 + 4i) |0. + (2 . 8i) |1.. On rappelle que i est le nombre complexe tel que i2 = .1. . |ƒÕ. = 1 p 2 |0. + ip 2 |1.. . On peut superposer des etats par addition, par exemple : .. 2 |0. + (1 + i) |1. + .. i |0. + (2 . 3i) |1. = (2 + i) |0. + (3 . 2i) |1. , ce qui correspond a additionner deux vecteurs : 2 1 + i + i 2 . 3i = 2 + i 3 . 2i . DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 4 Remarque. . Si on souhaitait definir |ƒÕ. uniquement avec des nombres reels, alors on pourrait ecrire ƒ¿ = ƒ¿1 + iƒ¿2, ƒÀ = ƒÀ1 + iƒÀ2 et dire qufun etat quantique est defini par 4 nombres reels ƒ¿1, ƒ¿2, ƒÀ1, ƒÀ2. Cependant ce nfest pas le bon etat dfesprit pour la suite. . Attention |0. nfest pas le vecteur nul .. 00 , mais bien le vecteur .. 10 . 1.2. Norme Etats de norme 1. On va principalement considerer les etats |ƒÕ. = ƒ¿|0.+ ƒÀ |1. dont la norme est egale a 1, cfest-a-dire : |ƒ¿|2 + |ƒÀ|2 = 1 ou |ƒ¿| et |ƒÀ| sont les modules des coefficients complexes. On rappelle que si z = a + ib est un nombre complexe (avec a, b ¸ R), alors son module |z| est le nombre reel positif defini par |z|2 = a2 + b2. Exemple. . |ƒÕ. = 1 p 2 |0. + 1 p 2 |1.. Alors |ƒ¿|2 + |ƒÀ|2 = 1 p 2 2 + 1 p 2 2 = 12 + 12 = 1. Ainsi cet etat |ƒÕ. est bien de norme 1. . |ƒÕ. = (3 + 4i) |0. + (2 . 8i) |1.. |ƒ¿|2 + |ƒÀ|2 = |3 + 4i|2 + |2 . 8i|2 = 25 + 68 = 93. Ainsi la norme de |ƒÕ. est p |ƒ¿|2 + |ƒÀ|2 = p 93 et nfest pas egale a 1. En divisant par la norme, on transforme facilement |ƒÕ. en un etat ƒÕŒ de norme 1 : ƒÕŒ = 3 + 4i p 93 |0. + 2 . 8i p 93 |1. . Remarque. On peut schematiser de facon imparfaite les etats de norme 1 par le dessin du cercle ci-dessous. |0. |1. |ƒÕ. = ƒ¿|0. + ƒÀ |1. Cependant ceci est un dessin ou lfon considere que les coefficients ƒ¿ et ƒÀ sont des nombres reels, ce qui nfest pas le cas en general. La á sphere de Bloch â fournira une representation plus fidele, voir le chapitre á Nombres complexes â. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 5 1.3. Mesure et probabilites Un des aspects fondamentaux mais troublants de la physique quantique est que lfon ne peut pas mesurer les coefficients ƒ¿ et ƒÀ de lfetat quantique |ƒÕ. = ƒ¿|0. + ƒÀ |1.. Partons dfun etat quantique de norme 1 : |ƒÕ. = ƒ¿|0. + ƒÀ |1. avec |ƒ¿|2 + |ƒÀ|2 = 1. La mesure de lfetat quantique |ƒÕ. va renvoyer lfun des bits classiques 0 ou 1 : . 0 avec une probabilite |ƒ¿|2 . 1 avec une probabilite |ƒÀ|2 Noter que, comme nous sommes partis dfun etat de norme 1, nous avons bien la somme des probabilites |ƒ¿|2 + |ƒÀ|2 qui vaut 1. Exemple. Considerons lfetat quantique : |ƒÕ. = 1 . i p 3 |0. + 1 + 2i p 15 |1. . Alors |ƒ¿|2 = 1 . i p 3 2 = 2 3 et |ƒÀ|2 = 1 + 2i p 15 2 = 5 15 = 1 3 . On a bien |ƒ¿|2 + |ƒÀ|2 = 1. Si on mesure |ƒÕ. alors on obtient 0 avec une probabilite 23 et 1 avec une probabilite 13 . Autrement dit, si je peux repeter 100 fois lfexperience á je prepare lfetat initial |ƒÕ., puis je le mesure â, alors pour environ 66 cas sur 100 jfobtiendrai pour mesure 0 et pour environ 33 cas sur 100 jfobtiendrai 1. La mesure dfun etat quantique |ƒÕ. le perturbe de facon irremediable. Cfest un phenomene physique appele á reduction du paquet dfonde â. Si la mesure a donne le bit 0, alors lfetat |ƒÕ. est devenu |0., si la mesure a donne le bit 1 alors |ƒÕ. est devenu |1.. Autrement dit, une fois qufil est mesure, un qubit ne sert plus a grand chose ! Remarque. Bien evidemment la mesure de |0. donne 0 avec une probabilite 1 (lfevenement est presque sur). De meme la mesure de |1. donne 1 avec une probabilite 1. Dans ce cours nous faisons le choix qufune mesure renvoie un bit classique 0 ou 1. Une autre convention serait de decider qufune mesure renvoie un des etats de base |0. ou |1.. Bilan. On retient qufa partir dfun etat |ƒÕ. = ƒ¿|0. + ƒÀ |1. avec ƒ¿,ƒÀ ¸ C tels que |ƒ¿|2 + |ƒÀ|2 = 1 : . on ne peut pas mesurer les coefficients ƒ¿ et ƒÀ ; . la mesure de |ƒÕ. renvoie soit 0 avec une probabilite |ƒ¿|2, soit 1 avec une probabilite |ƒÀ|2 ; . la mesure transforme le qubit |ƒÕ. en |0. ou en |1., les coefficients ƒ¿ et ƒÀ ont disparu apres mesure. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 6 2. Porte avec une entree Un ordinateur quantique produit des qubits et leur applique des transformations, qui dans un circuit sfappellent des á portes â. Nous commencons par transformer un seul qubit. 2.1. Porte X La porte X sfappelle aussi porte NON (ou NOT) et est la transformation qui echange les deux etats quantiques de base : |0. X 7....¨|1. et |1. X 7....¨|0. |0. |1. X Porte X |0. |1. |ƒÕ. = ƒ¿|0. + ƒÀ |1. X |ƒÕ. = ƒÀ |0. + ƒ¿|1. X La transformation est de plus lineaire, ce qui fait que la porte X echange les deux coefficients dfun etat quantique : |ƒÕ. = ƒ¿|0. + ƒÀ |1. X 7....¨ƒÀ |0. + ƒ¿|1. . Par exemple lfetat |ƒÕ. = 2 |0. + (1 . i) |1. est transforme par la porte X en lfetat X(|ƒÕ.) = (1 . i) |0. + 2 |1.. En termes de vecteurs cette transformation sfecrit : 1 0 X 7....¨ 0 1 0 1 X 7....¨ 1 0 ƒ¿ ƒÀ X 7....¨ ƒÀ ƒ¿ La matrice de la porte X est donc : X = 0 1 1 0 car 0 1 1 0 ƒ¿ ƒÀ = ƒÀ ƒ¿ . Note. La notion de matrice nfest pas indispensable pour ce premier chapitre, elle sera developpee dans le chapitre á Vecteurs et matrices â. 2.2. Porte H de Hadamard La porte H de Hadamard est la transformation lineaire definie par : |0. H 7....¨ 1 p 2 .. |0. + |1. et |1. H 7....¨ 1 p 2 .. |0. . |1. . Ainsi, si |ƒÕ. = ƒ¿|0. + ƒÀ |1. alors H(|ƒÕ.) = ƒ¿ 1 p 2 .. |0. + |1. + ƒÀ 1 p 2 .. |0. . |1. . On regroupe les coefficients selon les termes |0. et |1., pour obtenir : H(|ƒÕ.) = ƒ¿ + ƒÀ p 2 |0. + ƒ¿ . ƒÀ p 2 |1. . Par exemple lfetat |ƒÕ. = i |0. + (2 + i) |1. est transforme en H(|ƒÕ.) = 2+2i p 2 |0. . 2 p 2 |1.. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 7 En termes de vecteurs cette transformation sfecrit sur les vecteurs de base : 1 0 H 7....¨ 1 p 2 1 1 0 1 H 7....¨ 1 p 2 1 .1 La matrice de la porte H est donc : H = 1 p 2 1 1 1 .1 car la multiplication 1 p 2 1 1 1 .1 ƒ¿ ƒÀ redonne bien le vecteur correspondant a H(|ƒÕ.). Geometriquement la base (|0. , |1.) est transformee en une autre base orthonormee (H(|0.),H(|1.)). |0. H |0. |1. Porte H H |1. |0. |1. H |0. H |1. |ƒÕ. H |ƒÕ. H Remarque. Il est frequent de rencontrer les notations suivantes : |+. = 1 p 2 (|0. + |1.) et |.. = 1 p 2 (|0. . |1.) meme si nous eviterons de les utiliser ici. 2.3. Mesure Cfest un element fondamental dfun circuit quantique. Cfest le seul moment ou lfon peut obtenir une information sur un etat quantique |ƒÕ., mais cfest aussi la fin du qubit, car la mesure ne renvoie que 0 ou 1 et perturbe irremediablement lfetat quantique. 2.4. Exemples de circuit Un circuit est compose dfune succession de portes. Il se lit de gauche a droite. Exemple. Voici un circuit compose dfune porte X (cfest-a-dire une porte NON) suivie dfune porte mesure symbolisee par un petit cadran. X / . Si lfentree est |0., alors X(|0.) = |1., la sortie mesuree vaut donc 1 (avec une probabilite 1) : |0. X / 1 . Par contre si lfentree est |1., alors X(|1.) = |0. et la sortie mesuree vaut 0 : |1. X / 0 DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 8 . Si lfentree est lfetat |ƒÕ. = ƒ¿|0. + ƒÀ |1. (avec |ƒ¿|2 + |ƒÀ|2 = 1), alors X(|ƒÕ.) = ƒÀ |0. + ƒ¿|1.. La mesure donne donc 0 avec une probabilite |ƒÀ|2 et 1 avec une probabilite |ƒ¿|2. ƒ¿|0. + ƒÀ |1. X / 0 ou 1 Exemple. Ce circuit est forme dfune porte H de Hadamard, suivi dfune mesure : H / . Si lfentree est |0., alors H(|0.) = 1 p 2 |0.+ 1 p 2 |1., la mesure donne donc le bit 0 avec une probabilite 12 et le bit 1 avec une probabilite 1 2 . . Si lfentree est |1., alors H(|1.) = 1 p 2 |0. . 1 p 2 |1. et les mesures conduisent aux memes resultats que precedemment. . Par contre si lfentree est |ƒÕ. = 1 p 2 |0. + 1 p 2 |1., alors : H(|ƒÕ.) = H . 1 p 2 |0. + 1 p 2 |1. . = 1 p 2 H(|0.) + 1 p 2 H(|1.) = 1 p 2 1 p 2 (|0. + |1.) + 1 p 2 1 p 2 (|0. . |1.) = 1 2 |0. + 1 2 |0. + 1 2 |1. . 1 2 |1. = |0. Ainsi pour cette entree, le circuit renvoie, apres mesure, 0 avec une quasi-certitude. . Exercice : trouver |ƒÕ. tel que la mesure donne 1 avec une quasi-certitude. 2.5. Portes X, Y et Z de Pauli Nous avons deja rencontre la porte X (dite aussi porte NOT), qui fait partie dfune famille de trois portes, dites portes de Pauli. Les voici definies par leur action sur les etats quantiques de base |0. et |1., et egalement par leur matrice. Porte X X |0. 7¨ |1. |1. 7¨ |0. X = 0 1 1 0 Porte Y Y |0. 7¨ i |1. |1. 7¨ .i |0. Y = 0 .i i 0 Porte Z Z |0. 7¨ |0. |1. 7¨ .|1. Z = 1 0 0 .1 Exercice. On considere la porte p NOT definie par p NOT |0. 7¨ 1+i 2 |0. + 1.i 2 |1. |1. 7¨ 1.i 2 |0. + 1+i 2 |1. cfest-a-dire M = 1 2 1 + i 1 . i 1 . i 1 + i DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 9 1. Pour lfentree |0., que donne une mesure apres la porte p NOT ? Meme question avec |1.. |0. p NOT / ? |1. p NOT / ? 2. Pour lfentree |ƒÕ. = 12 |0. + i p 3 2 |1., que donne la sortie apres la porte p NOT ? Que donne ensuite une mesure ? |ƒÕ. p NOT / ? |ƒÕ. p NOT / ? 3. Montrer que le circuit suivant, qui consiste a enchainer deux portes p NOT, equivaut a une seule porte NOT (notee aussi porte X). p NOT p NOT = NOT Autrement dit, il sfagit de montrer que : p NOT ..p NOT(|ƒÕ.) = NOT(|ƒÕ.) Indication. On peut faire les calculs avec un qubit general |ƒÕ. = ƒ¿|0.+ƒÀ |1.. Mais on peut aussi seulement verifier que cette affirmation est vraie pour les deux etats de bases |0. et |1., ce qui est suffisant par linearite. Une autre technique serait dfutiliser les matrices. 3. Les 2-qubits Nous allons maintenant reunir deux qubits pour obtenir un 2-qubit. Cfest la version quantique de lfunion de deux bits. 3.1. Superposition Deux qubits reunis sont dans un etat quantique |ƒÕ., appele 2-qubit, defini par la superposition : |ƒÕ. = ƒ¿|0.0. + ƒÀ |0.1. + ƒÁ|1.0. + ƒÂ|1.1. ou ƒ¿,ƒÀ,ƒÁ,ƒÂ ¸ C, avec souvent la convention de normalisation : |ƒ¿|2 + |ƒÀ|2 + |ƒÁ|2 + |ƒÂ|2 = 1. La mesure dfun 2-qubit, donne deux bits classiques : . 0.0 avec probabilite |ƒ¿|2, . 0.1 avec probabilite |ƒÀ|2, . 1.0 avec probabilite |ƒÁ|2, . 1.1 avec probabilite |ƒÂ|2. Notons deja la difference remarquable avec lfinformatique classique : avec deux bits classiques, on encode un seul des quatre etats 0.0, 0.1, 1.0 ou 1.1, mais avec un 2-qubit on encode en quelque sorte les quatre etats en meme temps ! Que representent |0.0., |0.1.,. . . ? Il sfagit de nouveaux vecteurs dfune base mais cette fois en dimension 4 : |0.0. = 0 BB@ 1 0 0 0 1 CCA |0.1. = 0 BB@ 0 1 0 0 1 CCA |1.0. = 0 BB@ 0 0 1 0 1 CCA |1.1. = 0 BB@ 0 0 0 1 1 CCA Ainsi |ƒÕ. est un vecteur de C4 : |ƒÕ. = ƒ¿ 0 BB@ 1 0 0 0 1 CCA + ƒÀ 0 BB@ 0 1 0 0 1 CCA + ƒÁ 0 BB@ 0 0 1 0 1 CCA + ƒÂ 0 BB@ 0 0 0 1 1 CCA = 0 BB@ ƒ¿ ƒÀ ƒÁ ƒÂ 1 CCA . DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 10 Exemple. |ƒÕ. = 1 p 6 |0.0. + ip 6 |1.0. + 1 + i p 3 |1.1. est un 2-qubit de norme 1. Sa mesure donne : . 0.0 avec probabilite 1/6, . 0.1 avec probabilite 0, . 1.0 avec probabilite 1/6, . 1.1 avec probabilite 2/3. On peut aussi noter les etats de base par des formules de multiplications : |0.0. = |0. E |0. |0.1. = |0. E |1. |1.0. = |1. E |0. |1.1. = |1. E |1. On note aussi ce produit par le symbole . : |0.1. = |0. . |1. = |0. . |1. 3.2. Porte CNOT La porte CNOT est une porte qui prend en entree deux qubits et renvoie deux qubits en sortie. . Voici la regle sur les quatre etats quantiques de bases : |0. . / |0. |0. / |0. |0. . / |0. |1. / |1. |1. . / |1. |0. / |1. |1. . / |1. |1. / |0. Autrement dit le premier qubit reste inchange. Cfest different pour le second qubit : . si le premier qubit est |0. alors le second qubit est inchange, . si le premier qubit est |1. alors le second qubit est change selon la regle dfune porte X : |0. 7¨ |1. et |1. 7¨ |0.. On peut interpreter cette porte comme une instruction á si . . ., sinon . . . â : si le premier qubit est |0. faire ceci, sinon faire cela. Voici la regle reformulee avec la notation des 2-qubits : |0.0. CNOT 7.......¨|0.0. |0.1. CNOT 7.......¨|0.1. |1.0. CNOT 7.......¨|1.1. |1.1. CNOT 7.......¨|1.0. Voici cette meme regle presentee a lfaide de vecteurs : 0 BB@ 1 0 0 0 1 CCA 7¨ 0 BB@ 1 0 0 0 1 CCA 0 BB@ 0 1 0 0 1 CCA 7¨ 0 BB@ 0 1 0 0 1 CCA 0 BB@ 0 0 1 0 1 CCA 7¨ 0 BB@ 0 0 0 1 1 CCA 0 BB@ 0 0 0 1 1 CCA 7¨ 0 BB@ 0 0 1 0 1 CCA La matrice de la transformation de CNOT est donc la matrice 4 ~ 4 : M = 0 BB@ 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 CCA . DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 11 La porte CNOT transforme un vecteur representant un 2-qubit par multiplication par cette matrice M : 0 BB@ ƒ¿ ƒÀ ƒÁ ƒÂ 1 CCA CNOT 7.......¨ 0 BB@ 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 CCA 0 BB@ ƒ¿ ƒÀ ƒÁ ƒÂ 1 CCA = 0 BB@ ƒ¿ ƒÀ ƒÂ ƒÁ 1 CCA . 3.3. Lfetat de Bell A lfaide de la porte CNOT nous allons obtenir un des etats les plus importants pour deux qubits : lfetat de Bell : ƒ³+ = 1 p 2 |0.0. + 1 p 2 |1.1. Une mesure de cet etat conduit a : . 0.0 avec une probabilite 12 , . 1.1 avec une probabilite 12 , . les deux autres sorties 0.1 et 1.0 ayant une probabilite nulle. Remarque. En physique quantique il est toujours aventureux de faire des analogies avec le monde tel qufon le connait. Permettons-nous un petit ecart : . Un qubit, cfest un peu comme une piece de monnaie lancee en lfair. Tant que la piece tourne dans lfair, á pile â et á face â ont les memes chances de se produire. Ce nfest que lorsque la piece est retombee que lfon peut lire le resultat (cfest la partie á mesure â) et ensuite le resultat est definitivement fige a á pile â ou bien a á face â. . Un 2-qubit, cfest-a-dire la reunion de deux qubits, cfest comme deux pieces de monnaie en train dfetre lancees en lfair en meme temps. Les quatre resultats á pile/pile â, á pile/face â, á face/pile â ou encore á face/face â sont possibles. . Lfetat de Bell, cfest comme deux pieces liees entre elles lancees en lfair. Le resultat ne peut etre que á pile/pile â ou bien á face/face â. Ce phenomene sfappelle á lfintrication quantique â. PILE PILE Obtention de lfetat de Bell. Considerons le circuit suivant, compose dfune porte de Hadamard, suivie dfune porte CNOT : H . Alors, a partir de lfentree |0.0., lfetat de Bell ƒ³+ est obtenu en sortie. |0. . |0. H . / / 1 p 2 |0. . |0. + 1 p 2 |1. . |1. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 12 Reprenons le calcul en details (en adoptant la notation verticale) a partir de lfentree |0.0. = |0. . |0. Tout dfabord le premier qubit (celui du haut) passe par une porte H, le second qubit reste inchange : |0. . |0. H 7....¨ H(|0.) . |0. = 1 p 2 |0. + 1 p 2 |1. . |0. = 1 p 2 |0. . |0. + 1 p 2 |1. . |0. Ensuite ce resultat intermediaire passe par la porte CNOT. On regarde dfabord independamment les deux termes de la somme obtenue : |0. . |0. CNOT 7.......¨ |0. . |0. et |1. . |0. CNOT 7.......¨ |1. . |1. Ainsi par linearite, la porte CNOT a pour action : H(|0.) . |0. CNOT 7.......¨ 1 p 2 |0. . |0. + 1 p 2 |1. . |1. qui est bien lfetat de Bell ƒ³+ . Exercice. Reprenons le meme circuit : H . 1. Quelle est la sortie produite pour lfentree |1.0. ? 2. Trouver ou inserer une porte X dans le circuit, de sorte que lfentree |0.0. conduise a la sortie 1 p 2 |0.1. + 1 p 2 |1.0.. 3.4. Calculs algebriques avec un ou deux qubits Il faut savoir faire des calculs algebriques avec les qubits, meme si pour vraiment comprendre ces operations il faudra attendre le produit tensoriel qui sera explique dans le chapitre á Vecteurs et matrices â. Addition. Lfaddition se fait coefficient par coefficient et ne pose pas de probleme, par exemple si |ƒÓ. = (1 + 3i) |0. + 2i |1. et |ƒÕ. = 3 |0. + (1 . i) |1. alors |ƒÓ. + |ƒÕ. = (4 + 3i) |0. + (1 + i) |1. . Ou encore pour des 2-qubits : .. |1.0. + |0.1. + .. |1.0. . |0.1. = 2 |1.0. . Multiplication. On peut multiplier deux 1-qubits pour obtenir un 2-qubit. Les calculs se font comme des calculs algebriques a lfaide des regles de bases |0. E |0. = |0.0., |0. E |1. = |0.1.,. . . Par exemple : .. 3 |0. + 2i |1. E .. (1 + i) |0. . |1. = 3(1 + i) |0. E |0. . 3 |0. E |1. + 2i(1 + i) |1. E |0. . 2i |1. E |1. = (3 + 3i) |0.0. . 3 |0.1. + (.2 + 2i) |1.0. . 2i |1.1. . DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 13 On a utilise lfidentite i2 = .1 et fait attention que la multiplication des á ket â nfest pas commutative : |0. E |1. .= |1. E |0.. En particulier on a la relation (k |a.) E |b. = |a. E (k |b.) = k |a.b. pour k ¸ C. Cette relation a ete utilisee precedemment sans le dire pour la porte CNOT : € 1 p 2 |0. . E |0. = 1 p 2 |0.0.. On a aussi la relation de developpement/factorisation |(a + b).c. = |a.c.+|b.c.. Par exemple : |(0 + 1).1. = |0.1. + |1.1.. Norme. . Pour un nombre reel x, |x| est sa valeur absolue. . Pour un nombre complexe z = a + ib, |z| = p a2 + b2 est son module. . Pour un qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1., aƒÕa = p |ƒ¿|2 + |ƒÀ|2 est sa norme. . Pour un 2-qubit |ƒÕ. = ƒ¿|0.0.+ƒÀ |0.1.+ƒÁ|1.0.+ƒÂ|1.1., sa norme est aƒÕa = p |ƒ¿|2 + |ƒÀ|2 + |ƒÁ|2 + |ƒÂ|2. . La normalisation dfun qubit |ƒÕ. est |ƒÕ. aƒÕa qui est un qubit de norme 1. Exercice. Soit |ƒÓ. = 1 p 3 |0. + p 2 p 3 i |1. et |ƒÕ. = 2+i p 10 |0. . 1 p 2 |1.. Calculer la norme de |ƒÓ., |ƒÕ., |ƒÓ. + |ƒÕ. et |ƒÓ. E |ƒÕ.. Conclusion : on note que la somme de deux qubits de norme 1 nfest pas necessairement de norme 1, par contre le produit de deux qubits de norme 1 est encore un qubit de norme 1. Exercice. Dans une porte CNOT les deux entrees ne jouent pas des roles symetriques. . .= . Sur la figure a droite, est dessinee une porte CNOT renversee pour laquelle cfest le premier qubit qui change (ou non) en fonction du second qubit. Cependant on peut construire la porte CNOT renversee a partir de la porte CNOT classique et de quatre portes H de Hadamard. Montrer que les circuits suivants sont equivalents : H . H H H = . Indication. Il suffit de verifier que lfaffirmation est vraie pour les quatre etats de base |0.0., |0.1., |1.0., |1.1.. La porte CNOT. Revisitons la porte CNOT dfune maniere un peu plus abstraite. La transformation associee a cette porte sfecrit aussi : |x. y. CNOT 7.......¨|x. y . x. cfest-a-dire : |x. . / |x. | y. / |x . y. ou x et y ont pour valeurs 0 ou 1 et ou á . â represente lfaddition usuelle sur un bit (comme une porte XOR) : 0 . 0 = 0 1 . 0 = 1 0 . 1 = 1 et 1 . 1 = 0. Par exemple : CNOT(|1.1.) = |1.(1 . 1). = |1.0. . DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 14 4. Plus de qubits 4.1. Circuit quantique Dfune facon generale, le regroupement de plusieurs qubits conduit a un á n-qubit â. Voici le schema de principe dfun circuit quantique : . en entree : n qubits dont la superposition represente un n-qubit ; . une succession de portes quantiques, chacune agissant sur un ou plusieurs qubits ; . le circuit est termine par un certain nombre de mesures, qui renvoient des bits classiques. q1 q2 qn b1 b2 bk portes quantiques registre quantique (qubits) registre classique (bits) mesures Circuit quantique 4.2. Les n-qubits Un n-qubit est un etat quantique : |ƒÕ. = ƒ¿0 |0.0 . . . 0.0. + ƒ¿1 |0.0 . . . 0.1. + E E E + ƒ¿2n.1 |1.1 . . . 1.1. . . Un n-qubit possede donc 2n coefficients. Cfest toute la puissance de lfinformatique quantique : la reunion de n qubits conduit a la superposition de 2n etats de base. Travailler avec un n-qubit correspond a travailler sur tous les 2n n-bits classiques 0.0 . . . 0.0, 0.0 . . . 0.1, . . ., 1.1 . . . 1.1 en meme temps, alors que lfinformatique classique ne sfoccupe que dfun seul n-bit a la fois. Par exemple, lfecriture dfun 3-qubit est la superposition de 8-etats de base : |ƒÕ. = ƒ¿0 |0.0.0. + ƒ¿1 |0.0.1. + ƒ¿2 |0.1.0. + ƒ¿3 |0.1.1. + ƒ¿4 |1.0.0. + ƒ¿5 |1.0.1. + ƒ¿6 |1.1.0. + ƒ¿7 |1.1.1. . . Un n-qubit correspond donc au vecteur : 0 BBB@ ƒ¿0 ƒ¿1 ... ƒ¿2n.1 1 CCCA ¸ C 2n . On impose souvent la condition de normalisation P2n.1 i=0 |ƒ¿i |2 = 1. . La mesure dfun n-qubit de norme 1 produit un n-bit classique : 0.0. . .0.0 avec la probabilite |ƒ¿0|2, 0.0 . . . 0.1 avec la probabilite |ƒ¿1|2,. . ., 1.1 . . . 1.1 avec la probabilite |ƒ¿2n.1|2. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 15 Exercice. Voici un exemple de circuit avec 3 qubits en entree. X . . / H / / Pour chacune des entrees, correspondant a un etat de base |0.0.0., |0.0.1.,. . .,|1.1.1., calculer la sortie produite. Exemple. Pour |0.0.0. la sortie est 1 p 2 |1.0.1. . 1 p 2 |1.1.1.. Exercice. La porte de Toffoli est un exemple de porte qui necessite 3 qubits en entree. Si lfetat des deux premiers qubits est |1. alors la porte echange |0. et |1. pour le troisieme qubit, sinon elle conserve le troisieme qubit. Cfest une generalisation de la porte CNOT qui se note aussi CCNOT. Autrement dit, si (x, y) .= (1,1) alors : |x. . / |x. | y. . / | y. |z. / |z. Mais pour le cas particulier x = 1 et y = 1 : |1. . / |1. |1. . / |1. |z. / X(|z.) On suppose que les qubits en entree sont : . |ƒÕ1. = |0. + |1. . |ƒÕ2. = |0. + 2i |1. . |ƒÕ3. = 2 |0. . 3 |1. Calculer les trois qubits de sortie. Indication. On pourra commencer en developpant |ƒÕ1. E |ƒÕ2. E |ƒÕ3. (voir la section 3.4). Note. La matrice associee a la porte de Toffoli est la matrice 8 ~ 8 suivante : M = 0 BBBBBBBBBBB@ 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 CCCCCCCCCCCA . DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 16 5. Communication par codage super-dense Le codage super-dense est un protocole quantique permettant a deux personnes dfechanger de lfinformation. 5.1. Motivation On commence par une situation tres simple. Transmission. Alice souhaite envoyer un message a Bob, par exemple á Noir â code par 0 ou á Blanc â code par 1. Elle peut envoyer le qubit |0. a Bob qui le mesure, obtient 0 et sait donc que le message est á Noir â. Si Alice envoie le qubit |1. a Bob, sa mesure donne 1 et le message est á Blanc â. Alice Bob Information et codage Noir = 0 Blanc = 1 Message |0. ou |1. Transmission du qubit Mesure et decodage 0 = Noir 1 = Blanc Avec cette technique, un seul bit classique dfinformation est transmis pour chaque qubit envoye. Ne pourraiton pas mieux faire ? Interception. De plus cette technique nfest pas sure, si lfespionne Eve intercepte le qubit transmis, alors elle peut mesurer le qubit sans changer son etat. Elle recupere lfinformation et Bob ne sfapercoit de rien ! Alice Bob Eve |0. ou |1. interception En effet, mesurer le qubit |0. donne 0 mais ne change pas son etat, idem pour le qubit |1.. Ce ne serait pas le cas pour les autres etats. Lorsque, par exemple, le qubit |ƒÕ. = 1 p 2 (|0.+|1.) est mesure en 0 ou 1 (une chance sur deux), il change dfetat en |0. ou en |1.. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 17 |0. Mesure |0. bit 0 |1. Mesure |1. bit 1 |ƒÕ. = ƒ¿|0. + ƒÀ |1. Mesure |0. ou |1. bit 0 ou 1 Note. Alice, Bob et Eve (pour eavesdropper, espionne) sont les noms habituels utilises en cryptographie ! 5.2. Schema general du protocole Le reste de la section est consacre au protocole appele á codage super-dense â. Alice souhaite transmettre de facon securisee a Bob une information constituee de deux bits classiques, en envoyant un seul qubit. Voici les trois etapes de ce protocole : 1. preparation de lfetat de Bell, 2. codage de lfinformation par Alice, 3. decodage par Bob. 1. Preparation Etat de Bell |ƒ³+. Charlie 2. Codage de lfinformation Alice 3. Decodage et mesure Bob qubit qubit qubit 5.3. Preparation de lfetat de Bell Le protocole commence par un travail de preparation externe : une troisieme personne, Charlie, prepare lfetat de Bell. Cfest tres facile : partant de lfetat quantique |0.0., lfaction dfune porte H suivi dfune porte CNOT conduit a lfetat de Bell : ƒ³+ = 1 p 2 |0.0. + 1 p 2 |1.1. . |0. . |0. H . / / 1 p 2 |0. . |0. + 1 p 2 |1. . |1. = ƒ³+ Les calculs ont ete expliques dans la section 3.3, les voici refaits rapidement : |0.0. H 7....¨ 1 p 2 (0 + 1).0 ÷ = 1 p 2 (|0.0. + |1.0.) CNOT 7.......¨ 1 p 2 (|0.0. + |1.1.) Pour clarifier lfexpose et distinguer ce qui est a destination dfAlice et ce qui est a destination de Bob, on note lfetat de Bell sous la forme : ƒ³+ = 1 p 2 |0A.0B. + 1 p 2 |1A.1B. . Ensuite Charlie envoie : DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 18 . un premier qubit |ƒÕA. = 1 p 2 |0A. + 1 p 2 |1A. a Alice, . un second qubit |ƒÕB. = 1 p 2 |0B. + 1 p 2 |1B. a Bob. Intrication quantique. Attention ces deux qubits |ƒÕA. et |ƒÕB. sont intriques, cfest-a-dire lies entre eux, meme une fois separes. Si on mesure |ƒÕA. et que lfon obtient 0, alors la mesure de |ƒÕB. donne aussi 0 et, bien entendu, si la mesure de |ƒÕA. donne 1 alors la mesure de |ƒÕB. donne aussi 1. Cela sfexplique par le fait que ces deux qubits sont issus de lfetat de Bell, qui lors de sa mesure ne peut conduire qufa 0.0 ou 1.1. Lfintrication quantique est un des aspects les plus troublants de la mecanique quantique. Deux particules intriquees, meme distantes, continuent de partager des proprietes communes. 5.4. Transformation dfAlice Alice souhaite envoyer un des quatre messages suivants a Bob, codes chacun par une couleur ou deux bits classiques. . á Noir â ou 0.0, . á Rouge â ou 0.1, . á Bleu â ou 1.0, . á Blanc â ou 1.1. Elle recoit de Charlie le qubit |ƒÕA. = 1 p 2 |0A. + 1 p 2 |1A. et lui applique une des quatre transformations en fonction de lfinformation qufelle souhaite transmettre : . Si elle veut transmettre lfinformation á Noir/0.0 â elle applique lfidentite I (elle ne fait rien et conserve |ƒÕA.). . Si elle veut transmettre á Rouge/0.1 â, elle applique la porte X a |ƒÕA.. . Si elle veut transmettre á Bleu/1.0 â, elle applique la porte Z a |ƒÕA.. . Si elle veut transmettre á Blanc/1.1 â, elle applique la porte X, suivie de la porte Z a |ƒÕA.. Ensuite elle transmet le qubit transforme ƒÕŒ A a Bob. Charlie Selon Noir = 0.0 Rouge = 0.1 Bleu = 1.0 Blanc = 1.1 alors porte I porte X porte Z portes X puis Z Alice |ƒÕA. Bob ƒÕŒ A 5.5. Decodage de Bob Bob recoit deux qubits : . le qubit transforme ƒÕŒ A envoye par Alice, . le qubit |ƒÕB. = 1 p 2 |0B. + 1 p 2 |1B. prepare par Charlie. Mais attention, ces deux qubits sont toujours lies par intrication. Bob a suffisamment dfinformations pour retrouver le message dfAlice. Dans la pratique, il applique une porte CNOT suivi dfune porte H (cfest lfoperation inverse de la preparation de Charlie). Puis Bob mesure les deux qubits. Nous allons verifier que la mesure redonne exactement lfinformation que voulait transmettre Alice : 0.0, 0.1, 1.0, 1.1 (pour Noir, Rouge, Bleu, Blanc). DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 19 Alice Charlie |ƒÕA. porte CNOT porte H mesure Bob ƒÕŒ A |ƒÕB. Information 0.0 = Noir 0.1 = Rouge 1.0 = Bleu 1.1 = Blanc Voici le circuit quantique du decodage de Bob : . H / / On reprend pour chaque cas le codage dfAlice et le decodage de Bob. Ainsi Alice recoit le qubit |ƒÕA. = 1 p 2 (|0A. + |1A.). Elle applique ensuite une transformation. Cas de á Noir/0.0 â. Dans ce cas Alice ne fait rien (porte identite I sur le premier qubit), elle envoie donc directement |ƒÕA. = 1 p 2 (|0A.+|1A.) a Bob. Bob recoit aussi |ƒÕB. = 1 p 2 (|0B.+|1B.) de Charlie. Mais nfoublions pas que ces deux qubits sont intriques. Ainsi Bob a en main le 2-qubit 1 p 2 (|0A.0B. + |1A.1B.). Il applique ensuite une porte CNOT : 1 p 2 (|0A.0B. + |1A.1B.) CNOT 7.......¨ CNOT( 1 p 2 |0A.0B.) + CNOT( 1 p 2 |1A.1B.) = 1 p 2 |0A.0B. + 1 p 2 |1A.0B. . Bob continue et applique une porte H sur le premier qubit (indexe par A) : HA 7.....¨ 1 p 2 1 p 2 (0A + 1A).0B ÷ + 1 p 2 1 p 2 (0A . 1A).0B ÷ = 12 (|0A.0B. + |1A.0B. + |0A.0B. . |1A.0B.) = |0A.0B. . Il ne reste plus que la mesure qui donne bien evidemment 0.0, ce qui est exactement le message dfAlice. Cas de á Rouge/0.1 â. Alice applique la porte X au premier qubit de lfetat de Bell, elle transforme son qubit 1 p 2 (|0A.+|1A.) en 1 p 2 (|1A.+|0A.). Mais pour lfetat de Bell 1 p 2 (|0A.0B.+|1A.1B.) initial, cette transformation correspond au nouvel etat 1 p 2 (|1A.0B. + |0A.1B.). Ainsi Bob recoit le 2-qubit |ƒÕ. = 1 p 2 (|1A.0B. + |0A.1B.). Bob applique une porte CNOT, suivie dfune porte H sur le premier qubit : 1 p 2 (|1A.0B. + 1 p 2 |0A.1B.) CNOT 7.......¨ 1 p 2 |1A.1B. + 1 p 2 |0A.1B. HA 7.....¨ 12 |(0A . 1A).1B. + 12 |(0A + 1A).1B. = |0A.1B. . Ainsi Bob mesure 0.1 ce qui est le message dfAlice. Cas de á Bleu/1.0 â. Alice applique la porte Z au premier qubit de lfetat de Bell, Bob recoit donc |ƒÕ. = 1 p 2 (|0A.0B. . |1A.1B.). Bob applique une porte CNOT, suivie dfune porte H sur le premier qubit : 1 p 2 (|0A.0B. . |1A.1B.) CNOT 7.......¨ 1 p 2 |0A.0B. . 1 p 2 |1A.0B. HA 7.....¨ 1 2 |(0A + 1A).0B. . 12 |(0A . 1A).0B. = |1A.0B. . Ainsi Bob mesure 1.0 ce qui est le message dfAlice. Cas de á Blanc/1.1 â. A partir de lfetat de Bell, Alice applique la porte X sur le premier qubit, ce qui donne 1 p 2 (|1A.0B.+|0A.1B.), puis une porte Z sur le premier qubit. Ainsi Bob recoit |ƒÕ. = 1 p 2 (.|1A.0B.+|0A.1B.). Bob applique une porte CNOT, suivie dfune porte H sur le premier qubit : 1 p 2 (.|1A.0B. + |0A.1B.) CNOT 7.......¨. 1 p 2 |1A.1B. + 1 p 2 |0A.1B. HA 7.....¨.1 2 |(0A . 1A).1B. + 12 |(0A + 1A).1B. = |1A.1B. . Ainsi Bob mesure 1.1 ce qui est le message dfAlice. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 20 5.6. Bilan Alice transmet une information composee de deux bits a Bob, mais elle ne lui a envoye qufun seul qubit (meme si Bob recoit globalement deux qubits). De plus cfest un protocole de transmission securise. En effet, si Eve intercepte le qubit qufAlice envoie a Bob alors elle ne peut en tirer aucune information car ce qubit est de la forme 1 p 2 (}|0.}|1.) et donc sa mesure donne 0 ou 1 et ne permet pas a Eve de conclure quoi que ce soit sur lfinformation que souhaitait transmettre Alice. Utiliser un ordinateur quantique (avec Qiskit) Chapitre 2 Video ¡ partie 2.1. Un premier circuit quantique Video ¡ partie 2.2 Un qubit Video ¡ partie 2.3 Deux qubits Video ¡ partie 2.4 Utiliser un vrai ordinateur quantique Le but est de programmer des circuits quantiques et de simuler les resultats. Mais nous allons aussi utiliser un veritable ordinateur quantique. 1. Un premier circuit quantique On se jette lfeau et on realise notre premier circuit quantique. Nous utilisons le langage de programmation Python et la librairie qiskit fournie par IBM. 1.1. Le circuit Il sfagit de programmer le circuit suivant. |0. H / On part donc de lfetat initial |0., on applique une porte de Hadamard, lfetat quantique devient donc 1 p 2 |0.+ 1 p 2 |1.. On termine par une mesure qui renvoie un bit classique 0 ou 1 avec ici chacun la probabilite 1/2. Pour mieux representer la realite de ce circuit, on lfecrit sur deux lignes. La premiere ligne correspond au qubit, note q et a sa transformation, la seconde ligne correspond au bit classique, note c, qui sert a stocker la mesure du qubit. q = |0. H c = 0 / Remarque importante. Noter la difference avec les circuits rencontres dans le premier chapitre : les circuits sont ici initialises avec un etat initial, |0. pour les qubits et 0 pour les bits classiques. 1.2. Le programme import qiskit as q from qiskit_aer import QasmSimulator ### Partie A. Preparation UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 22 # On simule un ordinateur quantique simulator = QasmSimulator() ### Partie B. Construction du circuit # Circuit quantique avec un qubit et une mesure circuit = q.QuantumCircuit(1, 1) # Une porte de Hadamard circuit.h(0) # Mesure du qubit (donne un bit classique) circuit.measure(0, 0) # Affichage du circuit print(circuit.draw(output='text')) ### Partie C. Execution # Lancer de 1000 simulations tcircuit = q.transpile(circuit, simulator) job = simulator.run(tcircuit, shots=1000) ### Partie D. Resultats et visualisation result = job.result() # Comptage counts = result.get_counts(tcircuit) print("Nombre de '0' et de '1' :", counts) # Diagramme en barres import matplotlib.pyplot as plt q.visualization.plot_histogram(counts) plt.show() 1.3. Explications et resultats On reprend pas a pas le programme ci-dessus avec des explications et les resultats. Partie A. Preparation . Le module Python a importer au prealable est le module qiskit, on abrege son nom par la seule lettre q. . Pour lfinstant on nfutilise pas un veritable ordinateur quantique, mais on transforme notre machine en un simulateur avec lfoption 'QasmSimulator'. Partie B. Construction du circuit On commence par declarer lfarchitecture du circuit : circuit = q.QuantumCircuit(1, 1) Lfinstruction definit un circuit quantique, nomme circuit, et declare le nombre de bits quantiques (ici 1) suivi du nombre de bits classiques (ici 1 egalement, pour la mesure). UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 23 On construit ensuite le circuit de la gauche vers la droite : . on ajoute une porte H de Hadamard pour le qubit numero 0 : circuit.h(0). . on mesure le qubit numero 0 et on envoie le resultat sur le bit classique numero 0 : circuit.measure(0, 0). Le programme affiche ensuite une version texte de notre circuit, ce qui permet de verifier que tout est bien en place. Comme lfentree nfa pas ete precisee, cfest, comme mentionne sur lfaffichage ci-dessus, la valeur par defaut qui sera utilisee, a savoir |0.. Partie C. Execution On transforme notre circuit en un circuit adapte a une machine quantique via une operation appelee transpilation : tcircuit = q.transpile(circuit, simulator) Le travail de simulation commence. Un test du circuit conduit a une mesure, avec une sortie 0 ou 1 (la valeur exacte du qubit dans le circuit nfest pas accessible). Une seule valeur ne permet pas de conclure sur la nature du circuit, cfest pourquoi on effectue une simulation avec un grand nombre de lancers (shots). job = simulator.run(tcircuit, shots=1000) Partie D. Resultats et visualisation Voici un exemple de resultat renvoye. Nombre de '0' et de '1': '0': 519, '1': 481 Bien sur, chaque simulation a une part dfaleatoire et conduit a des resultats differents. Cependant, selon la loi des grands nombres, par exemple avec 1000 lancers, la proportion de 0 et de 1 obtenue doit se rapprocher de la probabilite attendue. Ici les proportions de 0 et de 1 sont effectivement proches de la probabilite 12 attendue : p0 = 519 1000 = 0.519 et p1 = 481 1000 = 0.481. On dispose aussi dfun affichage graphique. En conclusion, notre circuit, qui realise la mesure du qubit 1 p 2 |0. + 1 p 2 |1., fonctionne bien comme attendu et renvoie 0 ou 1 avec chacun une probabilite 12 . UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 24 2. Un qubit 2.1. Nombres complexes avec Python Le nombre complexe z = p 3 2 + 12 i sfaffiche avec Python de la maniere suivante : 0.8660254037844386-0.5j Le nombre i est represente par j (ou plus exactement par 1j). Malheureusement Python ne fait pas de calculs exacts, il utilise des nombres flottants pour la partie reelle et pour la partie imaginaire. Voici comment definir et afficher ce nombre complexe : import numpy as np z = np.sqrt(3)/2 + 1/2j print(z) print(abs(z)) print(1/z) On manipule les nombres complexes comme les nombres reels : z1+z2, z1*z2, z**2, 1/z. Le module du nombre complexe z est 1, la valeur renvoyee par la fonction abs(z) est 0.99999... 2.2. Circuit Nous allons programmer un circuit encore plus simple que precedemment : X / Deux differences majeures cependant : . Cette fois nous allons initialiser lfentree par un qubit |ƒÕ. quelconque (et non plus |0.). . Nous utiliserons un á faux â ordinateur quantique afin dfobtenir les etats quantiques. En effet un á vrai â circuit quantique nfest pas pratique pour lfapprentissage car il ne permet dfobtenir que des probabilites approchees et pas les etats quantiques de qubits. 2.3. Le programme from qiskit_aer import AerSimulator ### Partie A. Preparation simulator = AerSimulator(method="statevector") ### Partie B. Construction du circuit circuit = q.QuantumCircuit(1) # Initialisation a la main : ecriture algebrique alpha0 = 3+1j beta0 = 1-2j norme = np.sqrt(abs(alpha0)**2 + abs(beta0)**2) alpha, beta = alpha0/norme, beta0/norme etat_initial = [alpha,beta] qubit_initial = circuit.initialize(etat_initial, [0]) UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 25 # Circuit : une porte X circuit.x(0) # Sauvegarder l'etat du qubit circuit.save_statevector() ### Partie C. Execution tcircuit = q.transpile(circuit, simulator) job = simulator.run(tcircuit) ### Partie D. Resultats result = job.result() coefficients = result.get_statevector() print("Coefficient alpha:", coefficients[0]) print("Coefficient beta :", coefficients[1]) 2.4. Explications et resultats . Cette fois le simulateur appele est 'statevector_simulator', ce qui nous permet de recuperer les etats quantiques en plus de leur mesure. Cfest pratique pour verifier la validite de nos circuits mais cela ne correspond pas a la realite physique ! . Cette fois, notre circuit est defini avec un seul qubit (indexe par 0). La valeur par defaut de ce qubit est |0.. . Mais on va changer cette valeur, on souhaite comme qubit initial : |ƒÕ. = (3 + i) |0. + (1 . 2i) |1. . Pour cela on definit ƒ¿0 = 3 + i, ƒÀ0 = 1 . 2i. Afin que lfentree p soit acceptee, il faut normaliser le qubit |ƒÕ.. On calcule donc la norme aƒÕa = |ƒ¿0|2 + |ƒÀ0|2. Et on definit ƒ¿ = ƒ¿0/aƒÕa et ƒÀ = ƒÀ0/aƒÕa. Ce qui nous permet de definir le qubit initial a lfaide de la commande initialise([alpha,beta],[0]). . On rajoute une porte de Pauli X (qui echange les coefficients ƒ¿ et ƒÀ du qubit). . On recupere les coefficients du qubit de sortie par la fonction get_statevector(). . Resultats. Notre qubit normalise en entree est : ƒÕŒ = (0.7746 + 0.2582i) |0. + (0.2582 . 0.5164i) |1. La sortie obtenue : (0.2582 . 0.5164i) |0. + (0.7746 + 0.2582i) |1. est bien X( ƒÕŒ ). Toutes les portes classiques sont disponibles : la porte H de Hadamard, les portes de Pauli X, Y , Z. . . Exercice. On considere le circuit : H X Y / et le qubit dfentree |ƒÕ. = p 3 2 |0. + 1 . i 2 p 2 |1. qui est un qubit de norme 1. Calculer la sortie a lfaide de la machine et verifier vos calculs a la main. UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 26 3. Deux qubits 3.1. Le circuit |0. H . / |0. X H / Voici une representation plus realiste de ce circuit, avec les deux lignes pour les bits classiques qui servent de stockage pour les mesures : q0 = |0. H . q1 = |0. X H c0 = 0 / c1 = 0 / 3.2. Le programme ### Partie A. Preparation simulator = QasmSimulator() ### Partie B. Construction du circuit circuit = q.QuantumCircuit(2, 2) # 2 qubits et 2 mesures circuit.h(0) # Porte de Hadamard sur le premier qubit circuit.x(1) # Porte X sur le second qubit circuit.cx(0, 1) # CNOT circuit.h(1) # Porte de Hadamard sur le second qubit circuit.measure([0,1], [0,1]) # Mesure (q0->c0, q1->c1) # Affichage graphique du circuit img_circuit = circuit.draw(output='mpl') img_circuit.show() ### Partie C. Execution tcircuit = q.transpile(circuit, simulator) job = simulator.run(tcircuit, shots=1000) ### Partie D. Resultats et visualisation result = job.result() counts = result.get_counts(tcircuit) print("Nombre de '00', '01', '10' et de '11':", counts) # Diagramme en barres q.visualization.plot_histogram(counts) plt.show() UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 27 3.3. Commentaires Voici les quelques points nouveaux. . Il faut preciser le numero de ligne du circuit lorsque lfon ajoute une porte, par exemple circuit.h(i). Lfajout se fait toujours de la gauche vers la droite. . Pour une porte CNOT, il faut bien sur preciser deux numeros de lignes. . Pour la mesure, on precise dfabord la liste des lignes de qubits a lire et ensuite la liste des destinations. . Ici on propose un affichage graphique du circuit construit. 3.4. Resultats Verifier que le qubit de sortie attendu (avant mesure) est : |ƒÕ. = 1 2 |0.0. . 1 2 |0.1. + 1 2 |1.0. + 1 2 |1.1. . |0. . |0. H . / X H / 1 2 |0. . |0. . 1 2 |0. . |1. + 1 2 |1. . |0. + 1 2 |1. . |1. Experimentalement, voici un exemple de ce que renvoie le programme : '00': 245, '01': 240, '10': 273, '11': 242 Lfaffichage graphique met en evidence que chacune des 4 mesures possibles 0.0, 0.1, 1.0, 1.1 est equiprobable. Piege ! Il y a une inversion entre notre notation |0.1. (qui se mesure 0.1) et celle de qiskit '10'. De meme |1.0. correspond a '01'. En effet, qiskit adopte la convention dfecriture des nombres binaires dans laquelle les bits sont ecrits de droite a gauche. Ecriture dfun qubit |c0.c1 . . . ck. Ecriture de sa mesure c0.c1 . . . ck Notation qiskit 'ck . . . c1 c0 ' UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 28 Exercice. On souhaite verifier experimentalement que les deux circuits suivants sont equivalents (des entrees egales donnent des sorties egales). |ƒÕ1. H . H / |ƒÕ2. H H / |ƒÕ. |ƒÕ1. |ƒÕ2. . |ƒÕ. Voici les etapes. 1. Utiliser le moteur AerSimulator(method='statevector'). 2. Definir au hasard un qubit de norme 1, |ƒÕ1.. Pour cela, on suit la methode utilisee dans le programme de la section 2.3 : . definir des nombres complexes ƒ¿0 et ƒÀ0 (choisis au hasard), . puis calculer la norme n = p |ƒ¿0|2 + |ƒÀ0|2, . puis ƒ¿ = ƒ¿0/n et ƒÀ = ƒÀ0/n definissant |ƒÕ1. = ƒ¿|0. + ƒÀ |1. de norme 1, . puis utiliser la fonction Initialize() pour definir ce qubit. 3. Definir de meme |ƒÕ2.. 4. Definir le circuit circuit1 suivant le premier schema et calculer le 2-qubit |ƒÕ. de sortie. 5. Definir le circuit circuit2 suivant le second schema et calculer le 2-qubit ƒÕŒ de sortie. 6. Comparer les sorties |ƒÕ. et ƒÕŒ . On doit avoir |ƒÕ. = ƒÕŒ quel que soit le choix des entrees |ƒÕ1. et |ƒÕ2.. 3.5. Plus de qubits On peut bien sur avoir davantage de qubits en entree. Voici un exemple de circuit avec trois qubits. |0. H . / |0. H . / |0. H / circuit = q.QuantumCircuit(3, 3) circuit.h(0) # Porte de Hadamard circuit.h(2) # Porte de Hadamard circuit.cx(0, 1) # CNOT circuit.h(1) # Porte de Hadamard circuit.cx(1, 2) # CNOT circuit.measure([0,1,2], [0,1,2]) # Mesures Voici un exemple de resultat : UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 29 4. Utiliser un vrai ordinateur quantique 4.1. Acces a un ordinateur quantique Un des interets de qiskit est que lfon peut executer ses programmes sur un ordinateur quantique ! En effet, IBM met a disposition du temps de calculs sur des veritables ordinateurs quantiques. Cet acces est gratuit et ouvert a tous. Il faut cependant sfinscrire et patienter dans une file dfattente pour lancer son programme. Voici les etapes prealables. . Se creer un compte sur le site quantum-computing.ibm.com. . Recuperer son code dfacces (token) qui est un un long mot de passe du genre 'ce5a6210bb21...'. Ce code nfest necessaire que pour la premiere connexion. 4.2. Programme Voici un circuit. |0. H . / |0. / Et voici le programme qui sfexecute a distance sur un vrai ordinateur quantique. import qiskit as q from qiskit_ibm_provider import IBMProvider import matplotlib.pyplot as plt ### Partie A. Preparation # Cle a donner une fois seulement, ensuite commenter cette ligne IBMProvider.save_account(token='ce5a6210bb21...') provider = IBMProvider() print(provider.backends()) # Affiche les ordinateurs disponibles backend = provider.get_backend('ibm_kyoto') # Choix d'un ordinateur dispo ### Partie B. Construction du circuit UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 30 circuit = q.QuantumCircuit(2, 2) circuit.h(0) circuit.cx(0, 1) circuit.measure([0,1], [0,1]) ### Partie C. Execution tcircuit = q.transpile(circuit, backend) job = backend.run(tcircuit, shots=1000) ### Partie D. Resultats et visualisation result = job.result() counts = result.get_counts(tcircuit) print("Nombre de '00', '01', '10' et de '11' :", counts) q.visualization.plot_histogram(counts) plt.show() 4.3. Explications Partie A. Preparation. La preparation consiste a donner son code dfacces (une seule fois), a choisir un ordinateur quantique en acces (ici 'ibmq_kyoto'). Partie B. Construction du circuit. Comme dfhabitude ! Partie C. Execution. Presque comme dfhabitude sauf qufil faut etre un peu plus patient pour disposer de lfacces et attendre la fin des calculs. On retrouve aussi les resultats sur la page de son compte. 4.4. Resultats Voici un exemple de resultats sous forme numerique : '00': 449, '01': 60, '10': 28, '11': 463 et sous forme graphique : Noter que lfetat quantique de sortie (avant mesure) est ƒ³+ = 1 p 2 |0.0. + 1 p 2 |1.1.. Les resultats devraient donc etre uniquement mesures en 0.0 ou 1.1 (avec des probabilites proches de 1/2). Mais sur un veritable UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 31 ordinateur quantique il y a des erreurs, qui ici produisent certaines mesures impossibles en theorie (ici 0.1 et 1.0). On distingue deux causes qui font que lfon nfobtient pas exactement moitie/moitie pour les mesures 0.0 et 1.1 : . une cause probabiliste : il peut y avoir un ecart entre les mesures et les probabilites theoriques attendues, ecart du au caractere aleatoire dfune mesure (comme le lancer dfune piece de monnaie). Avec un grand nombre de lancers, cet ecart diminue. . une cause dferreur physique : un ordinateur quantique nfest pas parfait, il peut y avoir des erreurs. 5. Codage super-dense 5.1. Circuit Il sfagit de transmettre une information classique composee de deux bits 0.0 ou 0.1 ou 1.0 ou 1.1 en transmettant un seul qubit. On renvoie a la fin du chapitre á Decouverte de lfinformatique quantique â pour les explications. On rappelle le circuit en jeu : q0 = |0. H . I, Z, X, X Z . H q1 = |0. c0 = 0 / c1 = 0 / 5.2. Programme import qiskit as q from qiskit_aer import QasmSimulator ### Partie A. Preparation simulator = QasmSimulator() ### Partie B. Construction du circuit circuit = q.QuantumCircuit(2, 2) ## B.1 Preparation de l'etat de Bell circuit.h(0) # Porte de Hadamard circuit.cx(0, 1) # CNOT message_alice = '01' # choix entre '00', '01', '10', '11' ## B.2 Porte d'Alice selon message a transmettre if message_alice == '00': circuit.iden(0) # identite elif message_alice == '01': circuit.z(0) # porte Z elif message_alice == '10': circuit.x(0) # porte X elif message_alice == '11': UTILISER UN ORDINATEUR QUANTIQUE (AVEC QISKIT) 32 circuit.x(0) # porte X circuit.z(0) # suivi de porte Z ## B.3 Decodage circuit.cx(0, 1) # CNOT circuit.h(0) # Porte de Hadamard ## B.4 Mesures circuit.measure([0,1], [0,1]) # Mesures print(circuit.draw(output='text')) ### Partie C. Execution # Lancer de 1000 simulations tcircuit = q.transpile(circuit, simulator) job = simulator.run(tcircuit, shots=1000) # Partie D. Resultats result = job.result() # Comptage counts = result.get_counts(tcircuit) print("Nombre de '00', '01', '10' '11' :", counts) 5.3. Resultats Le programme sfutilise en choisissant le message qufAlice envoie a Bob, par exemple message_alice = '01'. Dans ce cas, Alice ajoute une porte Z au circuit. La sortie mesuree est alors '01' (dans 100% des simulations). Testez les autres messages ! On rappelle la subtilite : si la mesure du qubit q0 est 1 et celle du qubit q1 est 0 alors on note globalement la mesure 1.0 (correspondant a lfetat quantique |1.0.) mais qiskit ecrit cette meme mesure '01' (de la droite vers la gauche). Faites un choix pour votre programme et tenez-vous-y ! Nombres complexes Chapitre 3 Video ¡ partie 3.1. Ecriture algebrique Video ¡ partie 3.2. Qubit Video ¡ partie 3.3. Module - Argument Video ¡ partie 3.4. Ecriture trigonometrique des qubits Video ¡ partie 3.5. Sphere de Bloch Les nombres complexes sont les coefficients naturels des qubits. Nous detaillons les calculs avec les nombres complexes ainsi que sur les qubits. 1. Ecriture algebrique Les nombres complexes etendent les nombres reels de facon a pouvoir resoudre les equations du type x2 = .1. 1.1. Definition . Un nombre complexe est un couple (a, b) ¸ R2 que lfon notera a + ib. . Exemple avec a = 2 et b = 3 : z = 2 + 3i. . Le nombre complexe i verifie lfequation : i2 = .1 0 1 i a b a + ib R iR . Addition. (a + ib) + (aŒ + ibŒ) = (a + aŒ) + i(b + bŒ) . Multiplication : (a + ib) ~ (aŒ + ibŒ) = (aaŒ . bbŒ) + i(abŒ + baŒ). Ainsi on developpe, en suivant les regles usuelles de la multiplication et en utilisant la regle i2 = .1. Exemple. Soit z1 = 2 + 3i et z2 = 5 . 4i. Alors z1 + z2 = (2 + 3i) + (5 . 4i) = 7 . i. NOMBRES COMPLEXES 34 Et z1 ~ z2 = (2 + 3i) ~ (5 . 4i) = 10 . 8i + 15i . 12i2 = 10 . 8i + 15i + 12 = 22 + 7i. 1.2. Partie reelle et imaginaire Soit z = a + ib un nombre complexe, sa partie reelle est le reel a et on la note Re(z) ; sa partie imaginaire est le reel b et on la note Im(z). 0 1 i Re(z) iIm(z) z R iR Re(z) Im(z) 1.3. Module Module. Le module de z = a + ib est le reel positif |z| = p a2 + b2. Il mesure la distance du point (a, b) a lforigine (0, 0). |z| 0 z = a + ib a b Exemple : |5 . 2i| = p 52 + (.2)2 = p 29. Nombres complexes de module 1. On peut representer lfensemble des nombres complexes de module 1 par le cercle de rayon 1 centre a lforigine. NOMBRES COMPLEXES 35 .1 1 i .i 1 p 2 + 1 p 2 i 0 Exemples : 1, i et 1 p 2 + 1 p 2 i sont des nombres complexes de module 1. On peut transformer un nombre complexe quelconque (non nul) en un nombre complexe de module 1 en le divisant par son module. Par exemple z = 5 . 2i a pour module |z| = p 29, donc z |z| = 5 p 29 . 2 p 29 i est de module 1. Conjugue. Le conjugue de z = a + ib est z. = a . ib, autrement dit Re(z.) = Re(z) et Im(z.) = .Im(z). Le point z. est le symetrique du point z par rapport a lfaxe reel. Comme z ~ z. = (a + ib)(a . ib) = a2 + b2 alors le module vaut aussi |z| = p zz.. 0 1 i z z. Notation. Une ecriture plus classique pour le conjugue est Pz, mais nous preferons ici la notation z. plus adaptee pour la suite du cours. Inverse. Lf inverse : si z .= 0, il existe un unique zŒ ¸ C tel que zzŒ = 1 (ou 1 = 1 + i ~ 0). zŒ = 1 z = a . ib a2 + b2 = z. |z|2 . 2. Qubit 2.1. Definition Rappelons la definition des qubits a partir des deux etats quantiques de base |0. et |1.. Un 1-qubit, appele aussi simplement qubit, est un etat quantique obtenu par combinaison lineaire : |ƒÕ. = ƒ¿|0. + ƒÀ |1. avec ƒ¿ ¸ C et ƒÀ ¸ C avec souvent la condition de normalisation : |ƒ¿|2 + |ƒÀ|2 = 1. NOMBRES COMPLEXES 36 Un qubit est donc defini par deux nombres complexes, ƒ¿ = a1 + ib1 et ƒÀ = a2 + ib2. Il faut ainsi 4 nombres reels a1, b1, a2, b2 pour definir un qubit. Deux qubits reunis sont dans un etat quantique |ƒÕ., appele 2-qubit, defini par la superposition : |ƒÕ. = ƒ¿|0.0. + ƒÀ |0.1. + ƒÁ|1.0. + ƒÂ|1.1. avec ƒ¿,ƒÀ,ƒÁ,ƒÂ ¸ C avec souvent la convention de normalisation : |ƒ¿|2 + |ƒÀ|2 + |ƒÁ|2 + |ƒÂ|2 = 1. Il faudrait donc 8 nombres reels pour definir un 2-qubit. 2.2. Operations Addition. Lfaddition de deux qubits se fait coefficient par coefficient, il sfagit donc dfadditionner des paires de nombres complexes. Par exemple si |ƒÓ. = (1 + 3i) |0. + 2i |1. et |ƒÕ. = 3 |0. + (1 . i) |1. alors |ƒÓ. + |ƒÕ. = (4 + 3i) |0. + (1 + i) |1. . Ou encore pour des 2-qubits : .. |1.0. + |0.1. + .. |1.0. . |0.1. = 2 |1.0. . Multiplication. On peut multiplier deux 1-qubits pour obtenir un 2-qubit. Les calculs se font comme des calculs algebriques a lfaide des regles de bases |0. E |0. = |0.0., |0. E |1. = |0.1.,. . . Pour les coefficients, on utilise la multiplication des nombres complexes, avec bien sur toujours la relation i2 = .1. Par exemple avec |ƒÓ. = (1 + 3i) |0. + 2i |1. et |ƒÕ. = 3 |0. + (1 . i) |1. on a |ƒÓ. E |ƒÕ. = .. (1 + 3i) |0. + 2i |1. ~ .. 3 |0. + (1 . i) |1. = (1 + 3i) E 3 E |0. E |0. + (1 + 3i) E (1 . i) E |0. E |1. + 2i E 3 E |1. E |0. + 2i E (1 . i) E |1. E |1. = (3 + 9i) |0.0. + (4 + 2i) |0.1. + 6i |1.0. + (2 + 2i) |1.1. ou on a utilise (1 + 3i) E (1 . i) = 1 . i + 3i . 3i2 = 4 + 2i et 2i E (1 . i) = 2i . 2i2 = 2 + 2i. 2.3. Norme Norme. La norme dfun qubit est un nombre reel aƒÕa. . Pour un qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1., aƒÕa = p |ƒ¿|2 + |ƒÀ|2 est sa norme. . Pour un 2-qubit |ƒÕ. = ƒ¿|0.0.+ƒÀ |0.1.+ƒÁ|1.0.+ƒÂ|1.1., sa norme est aƒÕa = p |ƒ¿|2 + |ƒÀ|2 + |ƒÁ|2 + |ƒÂ|2. . La normalisation dfun qubit |ƒÕ. est |ƒÕ. aƒÕa , qui est un qubit de norme 1. Exemple : pour |ƒÕ. = (3 + 4i) |0. + (2 . i) |1. alors la norme au carre vaut : aƒÕa2 = |3 + 4i|2 + |2 . i|2 = (32 + 42) + (22 + (.1)2) = 30. Donc aƒÕa = p 30. Exercice. Verifier que la norme de |ƒÕ. = (1 + i) |0.0. + (1 . 2i) |0.1. + (3 . 4i) |1.0. + 2i |1.1. est aƒÕa = 6. Que vaut la normalisation de |ƒÕ. ? NOMBRES COMPLEXES 37 3. Ecriture trigonometrique 3.1. Module et argument Un nombre complexe z ¸ C, admet lfecriture trigonometrique : z = r cosƒÆ + ir sinƒÆ avec r ¸ R+ et ƒÆ ¸ R r = |z| 0 1 i z R iR ƒÆ = arg(z) . r est en fait le module de z : r = |z|, . ƒÆ est un argument de z, on le note arg(z). Lfargument nfest pas unique : si ƒÆ est un argument alors ƒÆ + 2kƒÎ (k ¸ Z) aussi. Pour rendre lfargument unique, on peut imposer la condition ƒÆ ¸] . ƒÎ,ƒÎ] (ou encore ƒÆ ¸ [0, 2ƒÎ[). Si on impose ƒÆ ¸] . ƒÎ,ƒÎ] alors pour un nombre complexe z non nul, lfecriture z = r cosƒÆ + ir sinƒÆ est unique. On dira que arg(z) est á defini modulo 2ƒÎ â et lfecriture ƒÆ ß ƒÆŒ (mod 2ƒÎ) signifie que ƒÆ = ƒÆŒ + 2kƒÎ pour un certain entier k ¸ Z. Exemple. . Soit z = 1 . p 3i. Alors r = |z| = 2 et ƒÆ = .ƒÎ3 , car alors r cosƒÆ = 2 cos(.ƒÎ3 ) = 2 ~ 1 2 = 1 = Re(z) et r sinƒÆ = 2 sin(.ƒÎ3 ) = .2 ~ p 3 2 = . p 3 = Im(z). r = 2 1 . p 3 ƒÆ = .ƒÎ3 0 i z R iR rŒ = 3 0 1 i z R iR ƒÆŒ = 3ƒÎ 4 . Le nombre complexe de module r = 3 et dfargument ƒÆ = 3ƒÎ 4 est zŒ = r cosƒÆ + ir sinƒÆ = . 3 p 2 2 + 3 p 2 2 i = 3 p 2 2 (.1 + i). Lfecriture module-argument facilite le calcul des multiplications. Les modules se multiplient, les arguments sfadditionnent. NOMBRES COMPLEXES 38 Proposition 1. Soient z et zŒ deux nombres complexes. Alors |zzŒ| = |z| E |zŒ| et arg(zzŒ) ß arg(z) + arg(zŒ) (mod 2ƒÎ) Demonstration. zzŒ = |z| (cosƒÆ + i sinƒÆ) zŒ .. cosƒÆŒ + i sinƒÆŒ = zzŒ .. cosƒÆ cosƒÆŒ . sinƒÆ sinƒÆŒ + i .. cosƒÆ sinƒÆŒ + sinƒÆ cosƒÆŒ = zzŒ .. cos .. ƒÆ + ƒÆŒ + i sin .. ƒÆ + ƒÆŒ donc |zzŒ| = |z| E |zŒ| et arg(zzŒ) ß arg(z) + arg(zŒ) (mod 2ƒÎ). 3.2. Notation exponentielle Nous definissons la notation exponentielle par eiƒÆ = cosƒÆ + i sinƒÆ et donc tout nombre complexe sfecrit : z = reiƒÆ ou r = |z| est son module et ƒÆ = arg(z) est un de ses arguments. Exemples : eiƒÎ2 = i, eiƒÎ = .1, e2iƒÎ = e0 = 1. Avec la notation exponentielle, les calculs sfeffectuent avec les lois habituelles pour les puissances. Par exemple : .. eiƒÆ n = einƒÆ Il sfagit en fait de la formule de Moivre qui sfecrit en version etendue : (cosƒÆ + i sinƒÆ)n = cos (nƒÆ) + i sin (nƒÆ) . De facon plus generale, pour z = reiƒÆ et zŒ = rŒeiƒÆŒ , on peut ecrire : . zzŒ = r rŒeiƒÆ eiƒÆŒ = r rŒei(ƒÆ+ƒÆŒ) . zn = .. reiƒÆ n = rn .. eiƒÆ n = rneinƒÆ . 1/z = 1/ .. reiƒÆ = 1r e.iƒÆ . z. = re.iƒÆ Tout nombre complexe de module 1 sfecrit sous la forme z = eiƒÆ , autrement dit z = cosƒÆ + i sinƒÆ. r = 1 cosƒÆ i sinƒÆ 0 1 i z = eiƒÆ R iR ƒÆ NOMBRES COMPLEXES 39 4. Ecriture trigonometrique des qubits 4.1. Ecriture des qubits A lfaide de la notation exponentielle, un qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. peut aussi sfecrire : |ƒÕ. = reiƒÆ |0. + rŒeiƒÆŒ |1. . Un tel qubit est normalise si r2 + rŒ2 = 1. Certains utilisent un vocabulaire issu de la physique : . ƒÆ est la phase associee a |0., . ƒÆŒ est la phase associee a |1.. Lfecriture algebrique est adaptee a un calcul de somme tandis que la notation exponentielle rend le calcul dfune multiplication plus facile. Exemple. Si |ƒÓ. = 2eiƒÎ3 |0. + 3eiƒÎ4 et |ƒÕ. = 4eiƒÎ5 |0. + 5eiƒÎ6 . Alors : |ƒÓ. E |ƒÕ. = € 2eiƒÎ3 |0. + 3eiƒÎ4 |1. . ~ € 4eiƒÎ5 |0. + 5eiƒÎ6 |1. . = 2eiƒÎ3 E 4eiƒÎ5 |0.0. + 2eiƒÎ3 E 5eiƒÎ6 |0.1. + 3eiƒÎ4 E 4eiƒÎ5 |1.0. + 3eiƒÎ4 E 5eiƒÎ6 |1.1. = 8ei(ƒÎ3 +ƒÎ5 ) |0.0. + 10ei(ƒÎ3 +ƒÎ6 ) |0.1. + 12ei(ƒÎ4 +ƒÎ5 ) |1.0. + 15ei(ƒÎ4 +ƒÎ6 ) |1.1. . 4.2. Equivalence de qubits La mesure physique dfun qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. ne permet pas dfacceder aux valeurs de ƒ¿ et ƒÀ. Par exemple |0. + |1. et 2 |0. + 2 |1. ne pourront pas etre distingues par des mesures, ils donnent tous les deux une mesure 0 ou 1 avec probabilite 1/2. On dit que deux etats sont equivalents si on peut passer de lfun a lfautre par les operations suivantes : . multiplication par une constante reelle : k |ƒÕ. ß |ƒÕ. ou k ¸ R ., . multiplication par eiƒÆ (un nombre complexe de module 1) : eiƒÆ |ƒÕ. ß |ƒÕ. ou ƒÆ ¸ R. Une reformulation est de dire que deux qubit |ƒÓ. et |ƒÕ. sont equivalents sfil existe z ¸ C . tel que |ƒÓ. = z |ƒÕ.. Deux etats quantiques equivalents ne peuvent pas etre distingues par des mesures. Exemple. . Par exemple |0. + |1. ß 1 p 2 |0. + 1 p 2 |1. . On passe de lfun a lfautre en multipliant par k = 1/ p 2. . On a aussi i |0. + (1 . i) |1. ß .|0. + (1 + i) |1. On passe de lfun a lfautre en multipliant par i = eiƒÎ2 . . On peut combiner les deux operations : (1 + 2i) |0. + i |1. ß |0. + 2 + i 5 |1. NOMBRES COMPLEXES 40 On passe de lfun a lfautre en multipliant par z = 1.2i 5 . Les deux qubits equivalents (1+2i) |0.+i |1. et |0. + 2+i 5 |1. conduisent tous les deux lors dfune mesure a 0 avec une probabilite 56 et a 1 avec une probabilite 16 . Remarque. . Attention, deux etats equivalents ne sont pas egaux ! Il ne faut pas les interchanger dans les calculs intermediaires. Cependant, lors de la mesure finale, on peut remplacer un etat par un etat equivalent sans changer le resultat. . En effet, les deux operations elementaires qui definissent lfequivalence ne changent pas le calcul de probabilite pour la mesure. . Lfequivalence des qubits evite en particulier de parler de normalisation. Proposition 2. Un qubit |ƒÕ. = ƒ¿|0.+ ƒÀ |1. non nul (cfest-a-dire (ƒ¿,ƒÀ) .= (0,0)) est equivalent a un qubit de norme 1 de la forme : |ƒÕ. ß cos .. ƒÆ 2 |0. + sin .. ƒÆ 2 eiƒÓ |1. De plus lfecriture est unique lorsque lfon a les conditions 0 < ƒÆ < ƒÎ et .ƒÎ < ƒÓ . ƒÎ. Exemple. . |ƒÕ. = i p 2 |0. + p 3(1 + i) |1.. On commence par rendre le coefficient devant |0. reel positif. Pour cela on multiplie tout par .i = e.iƒÎ2 : |ƒÕ. ß (.i) .. i p 2 |0. + p 3(1 + i) |1. = p 2 |0. + p 3(1 . i) |1. . La norme de ce dernier qubit est 2 p 2, on divise donc par cette norme. Ainsi : |ƒÕ. ß 1 2 |0. + p 3 2 1 . i p 2 |1. . On pose dfune part ƒÆ = 2ƒÎ 3 pour lequel cos .. ƒÆ 2 = 12 et sin .. ƒÆ 2 = p 3 2 et dfautre part ƒÓ = .ƒÎ4 pour lequel eiƒÓ = 1.i p 2 . . Il nfest en general pas possible dfexpliciter les angles ƒÆ etƒÓ. Considerons par exemple |ƒÕ. = 1 |0..2i |1.. Alors aƒÕa = p 5 et |ƒÕ. ß 1 p 5 |0. . 2 p 5 i |1.. On sait qufil existe un reel ƒÆ tel que cos .. ƒÆ 2 = 1 p 5 et sin .. ƒÆ 2 = 2 p 5 , ce ƒÆ est defini par ƒÆ 2 = arccos( 1 p 5 ) mais nfa pas dfexpression plus explicite. On pose alors ƒÓ = .ƒÎ2 qui verifie eiƒÓ = .i. Ces ƒÆ et ƒÓ conviennent. Demonstration. Existence. On commence par transformer le coefficient de |0. en un reel positif. Si ƒ¿ = reiƒÆ alors |ƒÕ. ß e.iƒÆ |ƒÕ. = e.iƒÆ .. reiƒÆ |0. + ƒÀ |1. = r |0. + ƒÀ E e.iƒÆ |1. . NOMBRES COMPLEXES 41 On normalise ensuite ce qubit en divisant par aƒÕa : |ƒÕ. ß 1 aƒÕa |ƒÕ. ß 1 aƒÕa .. r |0. + ƒÀ E e.iƒÆ |1. = r aƒÕa |0. + ƒÀ E e.iƒÆ aƒÕa |1. . Ce dernier qubit sfecrit : ƒÕŒ = rŒ |0. + ƒÀŒ |1. avec rŒ ¸ R et ƒÀŒ ¸ C. Mais comme par definition ƒÕŒ est un qubit de module 1, on a de plus rŒ2 +|ƒÀŒ|2 = 1 et en particulier 0 . rŒ . 1 et |ƒÀŒ| . 1. Rappel. Pour deux nombres reels a, b . 0 verifiant a2 + b2 = 1, il existe x ¸ [0, ƒÎ2 ] tel que a = cos x b = sin x a = cos x b = sin x 0 1 (a, b) x On applique le rappel a rŒ et |ƒÀŒ| afin dfobtenir x = ƒÆ 2 (ƒÆ ¸ [0,ƒÎ]), et dfecrire rŒ = cos .. ƒÆ 2 et |ƒÀŒ| = sin .. ƒÆ 2 . Finalement, ƒÀŒ = sin .. ƒÆ 2 eiƒÓ pour un certain argument ƒÓ ¸ R. Ainsi |ƒÕ. est bien equivalent a un qubit de la forme souhaitee : |ƒÕ. ß ƒÕŒ = cos . ƒÆ 2 . |0. + sin . ƒÆ 2 . eiƒÓ |1. . On aurait pu effectuer toutes les operations en une seule fois. En effet, si |ƒÕ. = ƒ¿|0. + ƒÀ |1. avec ƒ¿ = reiƒÆ alors e.iƒÆ aƒÕa |ƒÕ. est de la forme voulue. Unicite. Lfunicite decoule de la construction. On peut aussi la prouver de la facon suivante. Si on suppose qufil existe (ƒÆ,ƒÓ) et (ƒÆŒ,ƒÓŒ) tels que cos . ƒÆ 2 . |0. + sin . ƒÆ 2 . eiƒÓ |1. = cos . ƒÆŒ 2 . |0. + sin . ƒÆŒ 2 . eiƒÓŒ |1. alors, par identification, les coefficients devant |0. sont egaux, de meme pour les coefficients devant |1.. Ainsi N cos( ƒÆ 2 ) = cos( ƒÆŒ 2 ) sin( ƒÆ 2 )eiƒÓ = sin( ƒÆŒ 2 )eiƒÓŒ NOMBRES COMPLEXES 42 Mais comme 0 < ƒÆ 2 < ƒÎ2 et 0 < ƒÆŒ 2 < ƒÎ2 alors cos( ƒÆ 2 ) = cos( ƒÆŒ 2 ) implique ƒÆ = ƒÆŒ. On en deduit donc que sin( ƒÆ 2 ) = sin( ƒÆŒ 2 ), puis que eiƒÓ = eiƒÓŒ . Deux arguments sont egaux modulo 2ƒÎ, mais comme on a impose .ƒÎ < ƒÓ . ƒÎ et .ƒÎ < ƒÓŒ . ƒÎ, on a ƒÓ = ƒÓŒ. 5. Sphere de Bloch 5.1. Representation Un qubit |ƒÕ. = ƒ¿|0.+ƒÀ |1. est determine par ses 2 coefficients complexes ƒ¿,ƒÀ, donc par 4 parametres reels Re(ƒ¿), Im(ƒ¿), Re(ƒÀ), Im(ƒÀ). Mais un qubit est equivalent a un qubit de la forme : ƒÕŒ = cos . ƒÆ 2 . |0. + sin . ƒÆ 2 . eiƒÓ |1. avec seulement deux parametres reels ƒÆ, ƒÓ qui verifient 0 . ƒÆ . ƒÎ et .ƒÎ < ƒÓ . ƒÎ. Cela permet de representer un qubit sur la sphere de Bloch, par un point (ou un vecteur) de colatitude ƒÆ et longitude ƒÓ, et un rayon 1. ƒÓ ƒÆ |0. |1. x y z Les formules pour obtenir les coordonnees (x, y, z) ¸ R3 de ce point sont : 8< : x = sinƒÆ E cosƒÓ y = sinƒÆ E sinƒÓ z = cosƒÆ Etats quantiques de base. Lfetat de base |0. correspond au pole Nord de coordonnees (x, y, z) = (0,0,1) avec pour colatitude ƒÆ = 0 (et nfimporte quelle valeur comme longitude ƒÓ). NOMBRES COMPLEXES 43 x y z |0. x y z |1. Lfetat de base |1. correspond au pole Sud de coordonnees (x, y, z) = (0, 0,.1) avec pour colatitude ƒÆ = ƒÎ (ou 180.) (et nfimporte quelle valeur comme longitude ƒÓ). Mesure. Pour un qubit |ƒÕ. = cos .. ƒÆ 2 |0. + sin .. ƒÆ 2 eiƒÓ |1., la probabilite que sa mesure donne 0 est cos2( ƒÆ 2 ). Ainsi, si le qubit est plus proche du pole Nord, cfest-a-dire 0 . ƒÆ < ƒÎ2 , alors la probabilite de mesurer 0 est plus forte. Par contre, si le qubit est plus proche du pole Sud, cfest-a-dire ƒÎ2 < ƒÆ . ƒÎ, alors la probabilite de mesurer 1 est plus forte. Un qubit sur lfequateur se mesure en 0 ou 1 avec la meme probabilite. ƒÆ probabilite de mesure 0 p = cos2( ƒÆ 2 ) 0 ƒÎ ƒÎ2 0 12 1 Exemple. Lfetat |ƒÕ+ . = 1 p 2 .. |0. + |1. a pour parametres ƒÆ = ƒÎ2 (ou 90.) et ƒÓ = 0. Lfetat |ƒÕ.. = 1 p 2 .. |0. . |1. a pour parametres ƒÆ = ƒÎ2 et ƒÓ = ƒÎ. NOMBRES COMPLEXES 44 |ƒÕ+ . ƒÎ2 |ƒÕ.. ƒÎ2 |0. |1. x y z Ils sont tous les deux situes sur lfequateur, donc se mesurent en 0 ou 1 avec une probabilite 12 . Remarque. On rappelle que lfecriture dfun qubit sous la forme cos .. ƒÆ 2 |0.+ sin .. ƒÆ 2 eiƒÓ |1. ne sfobtient qufa equivalence pres. Aussi la representation sur la sphere de Bloch nfest que partielle et ne permet pas une representation complete dfun qubit. Exercice. 1. Tracer les points suivants sur la sphere de Bloch : (a) Les points de coordonnees spheriques (ƒÆ,ƒÓ) = (ƒÎ3 ,.ƒÎ4 ) et (ƒÆ,ƒÓ) = (ƒÎ2, 2ƒÎ 3 ). Exprimer les qubits correspondants. (b) Les points de coordonnees cartesiennes (x, y, z) = (0,.1, 0) et ( 1 p 2 ,. 1 p 2 , 0), ( 1 p 2 , 0,. 1 p 2 ). Exprimer les qubits correspondants. (c) Les points des etats |ƒÕ1. = .12 |0. . p 3 2 eiƒÎ |1. (attention au facteur 2 dans la formule ƒÆ 2 !) et |ƒÕ2. = |0. + i |1. (penser a normaliser). 2. Trouver les valeurs des qubits suivants places sur la sphere de Bloch. Une lecture graphique approximative des valeurs ƒÆ et ƒÓ suffit. ƒÓ ƒÆ |0. |1. x y z ƒÓ ƒÆ |0. |1. x y z 3. Trouver lfexpression des etats quantiques situes sur lfequateur. 4. A quelle transformation geometrique correspond la transformation dfun qubit |ƒÕ. = cos .. ƒÆ 2 |0. + sin .. ƒÆ 2 eiƒÓ |1. en ƒÕŒ = cos ..ƒÎ2 . ƒÆ 2 |0. + sin ..ƒÎ2 . ƒÆ 2 eiƒÓ |1. ? NOMBRES COMPLEXES 45 5. Trouver lfexpression de la symetrie centrale de centre lforigine. Exprimez dfabord la transformation (ƒÆ,ƒÓ) 7¨ (ƒÆŒ,ƒÓŒ) puis lfaction |ƒÕ. 7¨ ƒÕŒ . 5.2. Portes X, Y et Z de Pauli Les portes de Pauli X, Y et Z transforment un qubit en un autre qubit. Elles ont chacune une interpretation geometrique simple lorsque lfon regarde leur action sur la sphere de Bloch. Porte X. La porte X echange les coefficients dfun qubit : porte X : |0. 7¨ |1. |1. 7¨ |0. Autrement dit : X(ƒ¿|0. + ƒÀ |1.) = ƒÀ |0. + ƒ¿|1. . Regardons ce que cela donne sur la sphere de Bloch. Soit |ƒÕ. = cos .. ƒÆ 2 |0. + sin .. ƒÆ 2 eiƒÓ |1., alors X(|ƒÕ.) = sin ƒÆ 2 eiƒÓ |0. + cos ƒÆ 2 |1. ß sin ƒÆ 2 |0. + cos ƒÆ 2 e.iƒÓ |1. = cos ..ƒÎ2 . ƒÆ 2 |0. + sin ..ƒÎ2 . ƒÆ 2 e.iƒÓ |1. = cos ƒÆŒ 2 |0. + sin ƒÆŒ 2 eiƒÓŒ |1. avec ƒÆŒ = ƒÎ . ƒÆ et ƒÓŒ ß .ƒÓ (mod 2ƒÎ) Ainsi les coordonnees spheriques (ƒÆ,ƒÓ) sont transformees par X en (ƒÎ . ƒÆ,.ƒÓ). Geometriquement X(|ƒÕ.) est obtenu sur la sphere de Bloch par la rotation (de lfespace) dfaxe (Ox) et dfangle ƒÎ (un demi-tour donc). |0. |1. x y z Portes Y et Z. Rappelons lfaction des portes de Pauli Y et Z sur les etats de base : porte Y : |0. 7¨ i |1. |1. 7¨ .i |0. porte Z : |0. 7¨ |0. |1. 7¨ .|1. Geometriquement la porte Y correspond a la rotation dfaxe (Oy) et dfangle ƒÎ. Les coordonnees (ƒÆ,ƒÓ) sont transformees en (ƒÎ . ƒÆ,ƒÎ .ƒÓ). La porte Z correspond a la rotation dfaxe (Oz) et dfangle ƒÎ. Les coordonnees (ƒÆ,ƒÓ) sont transformees en (ƒÆ,ƒÓ + ƒÎ). NOMBRES COMPLEXES 46 |0. |1. x y z |0. |1. x y z Vecteurs et matrices Chapitre 4 Video ¡ partie 4.1. Vecteurs Video ¡ partie 4.2. Produit scalaire hermitien Video ¡ partie 4.3. Produit tensoriel de vecteurs Video ¡ partie 4.4. Matrices Video ¡ partie 4.5. Matrice adjointe Video ¡ partie 4.6. Matrice unitaire Un qubit est un vecteur et les operations sur les qubits sont codees par des matrices. Nous etudions ici le calcul sur les vecteurs, les matrices et leur lien avec les qubits. 1. Vecteurs 1.1. Vecteurs du plan On commence par la notion de vecteur du plan. Un vecteur du plan est la donnee de deux nombres reels, note : .u = x1 x2 avec x1, x2 ¸ R. On peut additionner deux vecteurs : .u = x1 x2 .v = y1 y2 alors .u +.v = x1 + y1 x2 + y2 . On peut multiplier un vecteur par un coefficient reel ƒÉ : .u = x1 x2 ƒÉ E.v = ƒÉx1 ƒÉx2 . ƒÉ E .u .u .v .u +.v VECTEURS ET MATRICES 48 Le vecteur nul a toutes ses coordonnees nulles : .0 = 0 0 La norme (ou longueur) dfun vecteur est : a.ua = q x2 1 + x2 2 1.2. Vecteurs a coefficients complexes Nous generalisons la notion precedente : le nombre n de coefficients nfest pas limite a 2 et ceux-ci sont maintenant des nombres complexes (et non plus des nombres reels). Notons K un corps, qui pour nous sera K = R ou K = C. Fixons n . 1 un entier. Un vecteur de taille n a coefficients dans K sfecrit : u = 0 BBB@ x1 x2 ... xn 1 CCCA avec x1, x2, . . . , xn ¸ K. Noter qufa partir de maintenant on nfutilise plus la notation avec une fleche au-dessus du nom du vecteur. Lfaddition de deux vecteurs : u = 0 BBB@ x1 x2 ... xn 1 CCCA v = 0 BBB@ y1 y2 ... yn 1 CCCA alors u + v = 0 BBB@ x1 + y1 x2 + y2 ... xn + yn 1 CCCA . Le vecteur nul est : 0 BBB@ 0 0... 0 1 CCCA Nous allons voir plusieurs multiplications associees a des vecteurs. Pour lfinstant on definit seulement la multiplication par un scalaire ƒÉ ¸ K : u = 0 BBB@ x1 x2 ... xn 1 CCCA ƒÉ E u = 0 BBB@ ƒÉx1 ƒÉx2 ... ƒÉxn 1 CCCA . Rappels. Pour un nombre complexe x, on note x. son conjugue. Si x est un nombre reel alors x. = x. Le vecteur dual dfun vecteur u est un vecteur de meme taille, dont les coefficients sont les conjugues de ceux de u, et qui est ecrit sous la forme dfun vecteur ligne : u = 0 BBB@ x1 x2 ... xn 1 CCCA u. = .. x. 1 x. 2 E E E x. n . Exemple. VECTEURS ET MATRICES 49 u = 0 BB@ 1 + i i 2 3 . 4i 1 CCA u. = .. 1 . i .i 2 3 + 4i . 1.3. Qubit sous forme de vecteur Un qubit est un vecteur, ses coefficients sont des nombres complexes et sa taille est toujours une puissance de 2. Un 1-qubit est un vecteur de taille 2 : |ƒÕ. = x1 x2 avec x1, x2 ¸ C. On note |0. = .. 10 (qui nfest pas le vecteur nul !) et |1. = .. 01 les deux 1-qubits de base. Plus generalement un n-qubit est un vecteur de taille 2n : |ƒÕ. = 0 B@ x1 ... x2n 1 CA avec x1, . . . , x2n ¸ C. Le dual du vecteur |ƒÕ. sera note .ƒÕ| : .ƒÕ| = |ƒÕ.. = .. x. 1 x. 2 E E E x. 2n On rappelle que la notation |ƒÕ. se lit á ket psi â. La notation .ƒÕ| se lit á bra psi â. 2. Produit scalaire 2.1. Produit scalaire hermitien Nous allons definir une operation qui, a partir de deux vecteurs, donne un scalaire (cfest-a-dire un nombre complexe si K = C ou un nombre reel si K = R). Soient u = 0 BBB@ x1 x2 ... xn 1 CCCA v = 0 BBB@ y1 y2 ... yn 1 CCCA . Le produit scalaire hermitien des deux vecteurs u et v est defini par : .u|v. = Xn i=1 x. i E yi Autrement dit : .u|v. = x. 1 E y1 + x. 2 E y2 + E E E + x. n E yn. VECTEURS ET MATRICES 50 Proposition 1. Le produit scalaire hermitien est lineaire par rapport au terme de droite et anti-lineaire par rapport au terme de gauche : .u|v1 + v2. = .u|v1. + .u|v2. .u1 + u2|v. = .u1|v. + .u2|v. et pour ƒÉ ¸ C : .u|ƒÉv. = ƒÉ.u|v. et .ƒÉu|v. = ƒÉ. .u|v. Enfin : .v|u. = .u|v.. Notez bien le coefficient ƒÉ. obtenu par anti-linearite par rapport au terme de gauche. Exemple. .(1 + i)u1 + (4 + 2i)u2|iv1 + (1 . 2i)v2. = i .(1 + i)u1 + (4 + 2i)u2|v1. + (1 . 2i) .(1 + i)u1 + (4 + 2i)u2|v2. linearite a droite = i(1 . i) .u1|v1. + i(4 . 2i) .u2|v1. + (1 . 2i)(1 . i) .u1|v2. + (1 . 2i)(4 . 2i) .u2|v2. anti-linearite a gauche 2.2. Norme La norme du vecteur u = x1 ... xn , notee aua, est definie par : aua = vut Xn i=1 |xi |2 Autrement dit : aua2 = |x1|2 + |x2|2 + E E E + |xn|2. Cfest un nombre reel positif. On rappelle que |z|, le module du nombre complexe z = a + ib, est un nombre reel positif, et que : |z|2 = a2 + b2 = z. E z. On peut donc recrire la norme a lfaide du produit scalaire hermitien : aua = A .u|u.. On retient aussi : aua2 = .u|u. VECTEURS ET MATRICES 51 2.3. Vecteurs orthogonaux Rappel sur le produit scalaire reel. Pour deux vecteurs du plan, le produit scalaire correspond a une mesure de lfangle entre les deux vecteurs. En effet, on a la formule : .u|v. = aua E ava E cos(ƒÆ) ou ƒÆ est lfangle entre les vecteurs u et v. u v ƒÆ On dit que deux vecteurs du plan sont orthogonaux si ƒÆ = }ƒÎ2 (mod 2ƒÎ). Ainsi deux vecteurs du plan sont orthogonaux si et seulement si leur produit scalaire est nul : .u|v. = 0. u v ƒÎ2 .ƒÎ2 Cas general. On utilise le produit scalaire hermitien pour definir la notion dforthogonalite pour des vecteurs quelconques. Deux vecteurs u et v de Kn sont orthogonaux si leur produit scalaire hermitien est nul : .u|v. = 0. Exemple : le qubit |0. = .. 10 et le qubit |1. = .. 01 sont des qubits orthogonaux. Qubits orthogonaux et sphere de Bloch. Considerons deux qubits |ƒÕ. et ƒÕŒ ecrits sous forme normalisee |ƒÕ. ß cos . ƒÆ 2 . |0. + sin . ƒÆ 2 . eiƒÓ |1. = cos .. ƒÆ 2 sin .. ƒÆ 2 eiƒÓ ƒÕŒ ß cos . ƒÆŒ 2 . |0. + sin . ƒÆŒ 2 . eiƒÓŒ |1. = cos € ƒÆŒ 2 . sin € ƒÆŒ 2 . eiƒÓŒ ! Sous quelles conditions ces qubits sont-ils orthogonaux ? On exclut le cas ƒÆ = 0, qui correspond au qubit |0., car le seul qubit orthogonal a |0. est |1. (a equivalence pres). Pour la meme raison on exclut le cas ƒÆ = ƒÎ, qui correspond au qubit |1.. Ainsi on a 0 < ƒÆ,ƒÆŒ < ƒÎ et . ƒÎ < ƒÓ,ƒÓŒ . ƒÎ. On calcule leur produit scalaire hermitien : ƒÕ ƒÕŒ = cos . ƒÆ 2 . E cos . ƒÆŒ 2 . + sin . ƒÆ 2 . e.iƒÓ E sin . ƒÆŒ 2 . eiƒÓŒ = cos . ƒÆ 2 . cos . ƒÆŒ 2 . + sin . ƒÆ 2 . sin . ƒÆŒ 2 . ei(ƒÓŒ.ƒÓ) VECTEURS ET MATRICES 52 Avant dfetre nul, ce produit scalaire doit etre un nombre reel. Bien sur, les sinus et les cosinus sont des nombres reels, mais il faut aussi que ei(ƒÓŒ.ƒÓ) soit un nombre reel. Or ei(ƒÓŒ.ƒÓ) ¸ R .Ë ƒÓŒ .ƒÓ ß 0 (mod 2ƒÎ) ou ƒÓŒ .ƒÓ ß ƒÎ (mod 2ƒÎ). En effet, on a eiƒ¿ = 1 si et seulement si ƒ¿ ß 0 (mod 2ƒÎ), et eiƒ¿ = .1 si et seulement si ƒ¿ ß ƒÎ (mod 2ƒÎ). Premier cas : ƒÓŒ .ƒÓ ß 0 (mod 2ƒÎ). Alors ƒÓ = ƒÓŒ, et ƒÕ ƒÕŒ = 0 .Ë cos . ƒÆ 2 . cos . ƒÆŒ 2 . + sin . ƒÆ 2 . sin . ƒÆŒ 2 . = 0 .Ë cos . ƒÆ 2 . ƒÆŒ 2 . = 0 .Ë ƒÆ 2 . ƒÆŒ 2 = ƒÎ 2 (mod ƒÎ) .ËƒÆ . ƒÆŒ = ƒÎ (mod 2ƒÎ) Mais cette derniere egalite est impossible car 0 < ƒÆ < ƒÎ et 0 < ƒÆŒ < ƒÎ, donc .ƒÎ < ƒÆ . ƒÆŒ < ƒÎ. Le premier cas ne conduit donc a aucune solution. Second cas : ƒÓŒ .ƒÓ ß ƒÎ (mod 2ƒÎ). Alors ƒÓŒ = ƒÓ + ƒÎ (mod 2ƒÎ), et alors ƒÕ ƒÕŒ = 0 .Ë cos . ƒÆ 2 . cos . ƒÆŒ 2 . . sin . ƒÆ 2 . sin . ƒÆŒ 2 . = 0 .Ë cos . ƒÆ 2 + ƒÆŒ 2 . = 0 .Ë ƒÆ 2 + ƒÆŒ 2 = ƒÎ 2 (mod ƒÎ) .˃ƌ = ƒÎ . ƒÆ (mod 2ƒÎ) Nous avons obtenu une solution : le qubit de representation (ƒÆŒ,ƒÓŒ) = (ƒÎ . ƒÆ,ƒÓ + ƒÎ) est orthogonal au qubit de representation (ƒÆ,ƒÓ). Geometriquement le qubit ƒÕŒ est antipodal au qubit |ƒÕ. sur la sphere de Bloch. Autrement dit, lfun sfobtient de lfautre par la symetrie centrale centree a lforigine. Noter que cfest aussi valide pour |0. et |1.. On retient : Deux 1-qubits sont orthogonaux si, et seulement si, ils sont antipodaux sur la sphere de Bloch. ƒÓ ƒÆ VECTEURS ET MATRICES 53 2.4. Inegalite de Cauchy-Schwarz Terminons par lfenonce dfune inegalite importante. Theoreme 1 (Inegalite de Cauchy-Schwarz). |.u|v.| . aua E ava 3. Produit tensoriel de vecteurs 3.1. Definition Soient u = 0 BBB@ x1 x2 ... xn 1 CCCA ¸ K n et v = 0 BBB@ y1 y2 ... ym 1 CCCA ¸ K m. Le produit tensoriel de u par v, note u . v, est le vecteur de Knm defini par : u . v = 0 BBBBBBBBBBBBBBBBBBBBB@ x1 0 B@ y1 ... ym 1 CA x2 0 B@ y1 ... ym 1 CA ...... xn 0 B@ y1 ... ym 1 CA 1 CCCCCCCCCCCCCCCCCCCCCA = 0 BBBBBBBBBBBBBBBBBBBBB@ x1 y1 ... x1 ym x2 y1 ... x2 ym ...... xn y1 ... xn ym 1 CCCCCCCCCCCCCCCCCCCCCA Autrement dit, on prend des copies du vecteur v, et chaque copie est multipliee par une coordonnee du vecteur u. Par exemple : a b . c d = 0 BB@ a c d b c d 1 CCA = 0 BB@ ac ad bc bd 1 CCA En general u . v .= v . u : 1 2 . 0 @ 3 4 5 1 A = 0 BBBBBBB@ 3 4 5 6 8 10 1 CCCCCCCA 0 @ 3 4 5 1 A. 1 2 = 0 BBBBBBB@ 3 6 4 8 5 10 1 CCCCCCCA VECTEURS ET MATRICES 54 3.2. Proprietes Proposition 2. Le produit tensoriel est lineaire a gauche et a droite : (ƒÉu) . v = ƒÉ(u . v) = u . (ƒÉv) ƒÉ ¸ C (u1 + u2) . v = u1 . v + u2 . v u . (v1 + v2) = u . v1 + u . v2 Exemple. On developpe lfexpression (u1 + u2) . (v1 + v2) en deux temps : (u1 + u2) . (v1 + v2) = u1 . (v1 + v2) + u2 . (v1 + v2) linearite a gauche = u1 . v1 + u1 . v2 + u2 . v1 + u2 . v2 linearite a droite 3.3. Produit de qubits Si |ƒÓ. est un n-qubit et |ƒÕ. est un m-qubit, alors le produit de |ƒÓ. E |ƒÕ. est defini par le produit tensoriel : |ƒÓ. E |ƒÕ. = |ƒÓ. . |ƒÕ. Le produit |ƒÓ. E |ƒÕ. est un (n + m)-qubit (un vecteur de taille 2n E 2m = 2n+m). On rappelle que |0. = 1 0 |1. = 0 1 Ainsi : |0.0. = |0. E |0. = 1 0 . 1 0 = 0 BB@ 1 0 0 0 1 CCA |0.1. = |0. E |1. = 1 0 . 0 1 = 0 BB@ 0 1 0 0 1 CCA |1.0. = |1. E |0. = 0 1 . 1 0 = 0 BB@ 0 0 1 0 1 CCA |1.1. = |1. E |1. = 0 1 . 0 1 = 0 BB@ 0 0 0 1 1 CCA Exemple. Voyons comment calculer le produit |ƒÓ. E |ƒÕ. dans le cas ou : |ƒÓ. = (1 + 2i) |0. + i |1. |ƒÕ. = 2 |0. + (3 . 4i) |1. 1. Calcul tensoriel. Nous revenons a la definition vectorielle des qubits. VECTEURS ET MATRICES 55 |ƒÓ. . |ƒÕ. = (1 + 2i) 1 0 + i 0 1 . 2 1 0 + (3 . 4i) 0 1 = (1 + 2i) 1 0 . 2 1 0 + (1 + 2i) 1 0 . (3 . 4i) 0 1 + i 0 1 . 2 1 0 + i 0 1 . (3 . 4i) 0 1 = 2(1 + 2i) |0.0. + (1 + 2i)(3 . 4i) |0.1. + 2i |1.0. + (4 + 3i) |1.1. 2. Calcul formel. Cfest la technique vue dans le chapitre á Decouverte de lfinformatique quantique â. Cfest en fait le meme calcul que precedemment, mais sans revenir aux vecteurs : |ƒÓ. . |ƒÕ. = .. (1 + 2i) |0. + i |1. . .. 2 |0. + (3 . 4i) |1. = (1 + 2i) |0. . 2 |0. + (1 + 2i) |0. . (3 . 4i) |1. + i |1. . 2 |0. + i |1. . (3 . 4i) |1. = 2(1 + 2i) |0.0. + (1 + 2i)(3 . 4i) |0.1. + 2i |1.0. + (4 + 3i) |1.1. On note lfinteret de la notation |E. qui permet dfecrire les calculs de facon condensee, mais il faut bien comprendre que la justification theorique qui nous permet cette ecriture est le calcul tensoriel sur les vecteurs. 3.4. Intrication quantique Definition. . Un 2-qubit |ƒÓ. est non intrique sfil existe deux 1-qubits |ƒÕ1. et |ƒÕ2. tels que : |ƒÓ. = |ƒÕ1. E |ƒÕ2. . . Sfil nfexiste aucun |ƒÕ1. et |ƒÕ2. tels que |ƒÓ. = |ƒÕ1. E |ƒÕ2., alors le qubit |ƒÓ. est dit intrique. Exemple. Le 2-qubit |ƒÓ. suivant nfest pas intrique : |ƒÓ. = |0.0. . |0.1. + |1.0. . |1.1. . En effet si on pose : |ƒÕ1. = |0. + |1. |ƒÕ2. = |0. . |1. alors |ƒÕ1. E |ƒÕ2. = (|0. + |1.) E (|0. . |1.) = |0.0. . |0.1. + |1.0. . |1.1. = |ƒÓ. . Exemple. Lfetat de Bell ƒ³+ est intrique : ƒ³+ = 1 p 2 |0.0. + 1 p 2 |1.1. Preuve. Supposons par lfabsurde que ƒ³+ ne soit pas intrique, alors il existerait |ƒÕ1. = ƒ¿|0.+ƒÀ |1. et |ƒÕ2. = ƒ¿Œ |0. + ƒÀŒ |1. tels que ƒ³+ = |ƒÕ1. E |ƒÕ2., ou ƒ¿, ƒÀ, ƒ¿Œ, ƒÀŒ sont des nombres complexes. Dfune part, on aurait : ƒ³+ = |ƒÕ1. E |ƒÕ2. = ƒ¿ƒ¿Œ |0.0. + ƒ¿ƒÀŒ |0.1. + ƒÀƒ¿Œ |1.0. + ƒÀƒÀŒ |1.1. . VECTEURS ET MATRICES 56 Mais dfautre part ƒ³+ = 1 p 2 |0.0. + 1 p 2 |1.1.. Par identification des coefficients on obtient : N ƒ¿ƒ¿Œ = 1 p 2 ƒÀƒÀŒ = 1 p 2 et ƒ¿ƒÀŒ = 0 ƒÀƒ¿Œ = 0 . Les equations de gauche impliquent que ƒ¿, ƒÀ, ƒ¿Œ et ƒÀŒ sont tous non nuls, ce qui contredit les equations de droite. Ainsi notre hypothese de depart est necessairement fausse, ce qui implique qufil ne peut exister de tels |ƒÕ1. et |ƒÕ2., cfest-a-dire que le qubit ƒ³+ est intrique. 4. Matrices Nous allons voir les notions de base concernant les matrices. Nous nous concentrons en particulier sur les matrices de taille 2 ~ 2. 4.1. Definition Une matrice est un tableau de nombres represente de la maniere suivante : A= 0 BBBBBBB@ a1,1 a1,2 . . . a1, j . . . a1,p a2,1 a2,2 . . . a2, j . . . a2,p . . . . . . . . . . . . . . . . . . ai,1 ai,2 . . . ai, j . . . ai,p . . . . . . . . . . . . . . . . . . an,1 an,2 . . . an, j . . . an,p 1 CCCCCCCA ou A= .. ai, j 1.i.n 1.j.p ou .. ai, j . Les ai, j seront pour nous des nombres reels ou des nombres complexes. On note Mn,p(K) les matrices de taille n ~ p a coefficients dans K. Par exemple : A= 1 + i .2i 5 i 0 1 + 7i ¸ M2,3(C), A est une matrice 2 ~ 3 a coefficients complexes. Si n = p (meme nombre de lignes que de colonnes), la matrice est dite matrice carree. On note Mn(K) au lieu de Mn,n(K). Dans ce cas les elements a1,1, a2,2, . . . , an,n forment la diagonale principale de la matrice : 0 BBB@ a1,1 a1,2 . . . a1,n a2,1 a2,2 . . . a2,n ... ... ... ... an,1 an,2 . . . an,n 1 CCCA . On retrouve des cas particuliers deja rencontres. . Une matrice qui nfa qufune seule ligne (n = 1) est appelee matrice ligne ou vecteur ligne. On la note A= .. a1,1 a1,2 . . . a1,p . . De meme, une matrice qui nfa qufune seule colonne (p = 1) est appelee matrice colonne ou vecteur colonne. On la note A= 0 BBB@ a1,1 a2,1 ... an,1 1 CCCA . VECTEURS ET MATRICES 57 Definition (Somme de deux matrices). Soient A et B deux matrices ayant la meme taille n~ p. Leur somme C = A+ B est la matrice de taille n~ p definie par ci j = ai j + bi j pour 1 . i . n et 1 . j . p. En dfautres termes, on somme coefficients a coefficients. Remarque : on note indifferemment ai j ou ai, j pour les coefficients de la matrice A. Si A= 3 + i .2 1 7i et B = .2 5 + 2i 3i .i alors A+ B = 1 + i 3 + 2i 1 + 3i 6i . La matrice de taille n ~ p dont tous les coefficients sont des zeros est appelee la matrice nulle et est notee 0n,p ou plus simplement 0. Dans le calcul matriciel, la matrice nulle joue le role du nombre 0 pour les reels, cfest lfelement neutre pour lfaddition. 4.2. Produit de matrices Definition (Produit de deux matrices). Soient A= (ai j) une matrice n ~ p et B = (bi j) une matrice p ~ q. Alors le produit C = AB est une matrice n ~ q dont les coefficients ci j sont definis par : ci j = Xp k=1 aik bk j ou 1 . i . n et 1 . j . q. On peut ecrire le coefficient general de facon plus developpee, a savoir : ci j = ai1b1j + ai2b2j + E E E + aik bk j + E E E + aip bp j . Il est commode de disposer les calculs de la facon suivante : 0 BB@ ~ ~ ~ ~ 1 CCA © B A¨ 0 BB@ ~ ~ ~ ~ 1 CCA 0 BB@ | | . . . ci j 1 CCA ©AB Avec cette disposition, on considere dfabord la ligne de la matrice A situee a gauche du coefficient que lfon veut calculer (ligne numero i representee par des ~ dans A) et aussi la colonne de la matrice B situee au-dessus du coefficient que lfon veut calculer (colonne numero j representee par des ~ dans B). On calcule le produit du premier coefficient de la ligne par le premier coefficient de la colonne (ai1 ~ b1j), que lfon ajoute au produit du deuxieme coefficient de la ligne par le deuxieme coefficient de la colonne (ai2 ~ b2j), que lfon ajoute au produit du troisieme. . . VECTEURS ET MATRICES 58 4.3. Exemples Exemple. A= 1 2 3 2 3 4 B = 0 @ 1 2 .1 1 1 1 1 A On dispose dfabord le produit correctement (a gauche) : la matrice obtenue sera de taille 2 ~ 2. Puis on calcule chacun des coefficients, en commencant par le premier coefficient c11 = 1~1 + 2~(.1) + 3~1 = 2 (au milieu), puis les autres (a droite). 0 @ 1 2 .1 1 1 1 1 A 1 2 3 2 3 4 c11 c12 c21 c22 0 @ 1 2 .1 1 1 1 1 A 1 2 3 2 3 4 2 c12 c21 c22 0 @ 1 2 .1 1 1 1 1 A 1 2 3 2 3 4 2 7 3 11 La matrice carree suivante sfappelle la matrice identite : In = 0 BBB@ 1 0 . . . 0 0 1 . . . 0 ... ... ... ... 0 0 . . . 1 1 CCCA . Ses elements diagonaux sont egaux a 1 et tous ses autres elements sont egaux a 0. Elle se note In ou simplement I. Dans le calcul matriciel, la matrice identite joue un role analogue a celui du nombre 1 pour les reels. Cfest lfelement neutre pour la multiplication. En dfautres termes : Proposition 3. Si A est une matrice n ~ p, alors In E A= A et AE Ip = A. 4.4. Matrice inverse, determinant Definition (Matrice inverse). Soit A une matrice carree de taille n ~ n. Sfil existe une matrice carree B de taille n ~ n telle que AB = I et BA= I, on dit que A est inversible. On appelle B lfinverse de A et on la note A.1. Considerons le cas dfune matrice 2 ~ 2 : A= a b c d . Proposition 4. Soit A= a b c d . Si ad . bc .= 0, alors A est inversible et A.1 = 1 ad . bc d .b .c a Le nombre ad . bc ¸ K sfappelle le determinant de la matrice A ¸ M2(K). Plus generalement pour une matrice carree A ¸ Mn(K), il existe un scalaire det(A) ¸ K, appele determinant de A tel que : VECTEURS ET MATRICES 59 . si det(A) .= 0 alors la matrice A est inversible ; . det(AB) = det(A) E det(B) ; . det(I) = 1 ; . det(A.1) = 1/ det(A), si A est inversible. Nous admettons ces proprietes et nous nfexpliquons pas ici comment calculer le determinant en general. 5. Matrice adjointe Une matrice adjointe est la version complexe dfune matrice transposee. 5.1. La transposition On commence par rappeler que la transposition est une operation qui transforme une matrice : les lignes de A deviennent les colonnes de AT . Voici une matrice A de taille n ~ p et sa matrice transposee notee AT qui est de taille p ~ n : A= 0 BBB@ a11 a12 . . . a1p a21 a22 . . . a2p ... ... ... an1 an2 . . . anp 1 CCCA AT = 0 BBB@ a11 a21 . . . an1 a12 a22 . . . an2 ... ... ... a1p a2p . . . anp 1 CCCA . Autrement dit : le coefficient a la place (i, j) de AT est aji . 5.2. Matrice adjointe Nos matrices ont des coefficients complexes, la matrice adjointe sfobtient par transposition et conjugaison complexe. On rappelle que si a ¸ C, alors a. est le conjugue. Definition. On appelle matrice adjointe de A, de taille n ~ p, la matrice A. de taille p ~ n definie par : A. = 0 BBB@ a. 11 a. 21 . . . a. n1 a. 12 a. 22 . . . a. n2 ... ... ... a. 1p a. 2p . . . a. np 1 CCCA . Exemple. A= 0 @ 1 + i 2 + i 3 + i 4 + i 5 + i 6 + i 1 A A. = 1 . i 3 . i 5 . i 2 . i 4 . i 6 . i Nous avons deja vu le cas des vecteurs : lfadjoint dfun vecteur colonne est un vecteur ligne, et reciproquement. u = 0 B@ x1 ... xn 1 CA u. = .. x. 1 E E E x. n v = .. x1 E E E xn v. = 0 B@ x. 1 ... x. n 1 CA VECTEURS ET MATRICES 60 Proposition 5. Pour deux matrices A et B de tailles respectives n ~ p et p ~ m : (A.). = A (AB). = B.A. La relation (A.). = A signifie que lfadjointe de lfadjointe est la matrice elle-meme. Cfest deja le cas pour la transposition et aussi la conjugaison complexe. On va prouver la seconde assertion (AB). = B.A.. Notez bien lfinversion de lfordre, que lfon rencontre deja pour les inverses (AB).1 = B.1A.1. On rappelle aussi que lfordre dfun produit de matrices est important, car en general AB .= BA. Demonstration. On va faire la preuve pour les matrices 2 ~ 2 uniquement. Soient : A= a b c d B = ƒ¿ ƒÀ ƒÁ ƒÂ . Alors AB = aƒ¿ + bƒÁ aƒÀ + bƒÂ cƒ¿ + dƒÁ cƒÀ + dƒÂ (AB). = a.ƒ¿. + b.ƒÁ. c.ƒ¿. + d.ƒÁ. a.ƒÀ. + b.ƒÂ. c.ƒÀ. + d.ƒÂ. . Et dfautre part A. = a. c. b. d. B. = ƒ¿. ƒÁ. ƒÀ. ƒÂ. B.A. = a.ƒ¿. + b.ƒÁ. c.ƒ¿. + d.ƒÁ. a.ƒÀ. + b.ƒÂ. c.ƒÀ. + d.ƒÂ. On a bien (AB). = B.A.. 5.3. Notation bra-ket On rappelle la notation á ket â |ƒÕ. et la notation á bra â .ƒÓ|. En posant : |ƒÕ. = 0 B@ y1 ... yn 1 CA et |ƒÓ. = 0 B@ x1 ... xn 1 CA alors .ƒÓ| = |ƒÓ.. = .. x. 1 E E E x. n . Calculons le produit de matrices .ƒÓ| ~ |ƒÕ. : .ƒÓ| ~ |ƒÕ. = .. x. 1 E E E x. n 0 B@ y1 ... yn 1 CA = x. 1 y1 + E E E x. n yn = .ƒÓ|ƒÕ. . Cfest le produit dfun vecteur ligne par un vecteur colonne qui donne une matrice de taille 1 ~ 1, qufon identifie a un nombre complexe. Ce calcul justifie la notation á bra-ket â : le produit .ƒÓ|~|ƒÕ. correspond au produit scalaire hermitien .ƒÓ|ƒÕ.. Ainsi la notation á bra-ket â est un jeu de mots associe au á bracket â du produit scalaire hermitien (bracket signifie crochet). 5.4. Produit scalaire hermitien Proposition 6. .Au|v. = .u|A.v. VECTEURS ET MATRICES 61 Demonstration. Nous faisons la preuve uniquement pour les matrices de taille 2 ~ 2. A= a b c d A. = a. c. b. d. u = x1 x2 v = y1 y2 Au = ax1 + bx2 c x1 + d x2 .Au|v. = (ax1 + bx2). y1 + (c x1 + d x2). y2 A.v = a. y1 + c. y2 b. y1 + d. y2 .u|A.v. = x. 1(a. y1 + c. y2) + x. 2(b. y1 + d. y2) Ainsi .Au|v. = a. x. 1 y1 + b. x. 2 y1 + c. x. 1 y2 + d. x. 2 y2 = .u|A.v. . 6. Matrice unitaire On travaille souvent avec des qubits de norme 1. Les portes logiques transforment les qubits, mais doivent tout de meme transformer un qubit |ƒÓ. de norme 1 en un qubit |ƒÕ. de norme 1. Lorsque cette transformation est lineaire et sfecrit A|ƒÓ. = |ƒÕ., la matrice A est dfun type particulier : cfest une matrice unitaire. Dans ce chapitre les exemples seront des matrices 2 ~ 2. On retrouvera le cas general dans le chapitre á Portes quantiques â. 6.1. Definition Definition. Une matrice A ¸ Mn est unitaire si : A.A= I On note Un lfensemble des matrices unitaires de taille n ~ n. Si A est une matrice unitaire alors on a A.1 = A. et AA. = I. Exemple. Les matrices de Pauli sont les matrices unitaires suivantes : X = 0 1 1 0 Y = 0 .i i 0 Z = 1 0 0 .1 Verifier que lfon a bien A.A= I. De plus pour ces exemples on a A. = A. La propriete fondamentale des matrices unitaires est qufelles preservent le produit scalaire hermitien. Proposition 7. Si A est une matrice unitaire alors .Au|Av. = .u|v. En termes de vecteurs du plan, cela signifie que lfangle entre deux vecteurs est preserve par lfaction dfune matrice unitaire. VECTEURS ET MATRICES 62 u v ƒÆ O Au Av ƒÆ O Demonstration. .Au|Av. = .u|A.Av. = .u|v. 6.2. Matrice unitaire de dimension 2 Soit A= a b c d de taille 2 ~ 2. Notons cette matrice a lfaide de ses vecteurs colonnes : A= .. u v avec u = a c , v = b d . Proposition 8. La matrice A est unitaire si et seulement si les vecteurs (u, v) forment une base orthonormale, cfest-a-dire satisfont les conditions : aua = 1, ava = 1 et .u|v. = 0. Demonstration. A= a b c d A. = a. c. b. d. A.A= aa. + cc. ba. + dc. ab. + cd. bb. + dd. Si A est une matrice unitaire alors A.A= I = 1 0 0 1 . On identifie les coefficients : 8< : aa. + cc. = 1 bb. + dd. = 1 a.b + c.d = 0 donc 8< : aua2 = |a|2 + |c|2 = 1 ava2 = |b|2 + |d|2 = 1 .u|v. = a.b + c.d = 0 On nfutilise pas lfegalite ab. + cd. = 0 qui est en fait (a.b + c.d). = 0. Reciproquement, si on a les egalites aua = 1, ava = 1 et .u|v. = 0, alors les coefficients de A.A sont les coefficients de lfidentite. Exemple. La matrice suivante est unitaire : U(ƒÆ,ƒÓ,ƒÉ) = cos .. ƒÆ 2 .sin .. ƒÆ 2 eiƒÉ sin .. ƒÆ 2 eiƒÓ cos .. ƒÆ 2 ei(ƒÓ+ƒÉ) . On verifie que les deux vecteurs verticaux formant cette matrice sont de norme 1 et orthogonaux. VECTEURS ET MATRICES 63 Cette transformation est disponible sous la forme dfune porte quantique. U3(ƒÆ,ƒÓ,ƒÉ) Proposition 9. Lfensemble des matrices unitaires forme un groupe pour la multiplication. En particulier si A, B ¸ Un alors AB ¸ Un et A.1 ¸ Un. Demonstration. Soient A, B ¸ Un. (AB).(AB) = (B.A.)(AB) = B.(A.A)B = B. IB = B.B = I. De meme, comme A.1 = A. : (A.1).A.1 = (A.).A. = AA. = I. 6.3. Longueur preservee Une matrice unitaire preserve les longueurs, autrement dit si A est une matrice unitaire et u un vecteur alors aAua = aua. En fait cette particularite caracterise les matrices unitaires. Proposition 10. Soit A ¸ M2. La matrice A est unitaire si et seulement pour tout vecteur u, on a aAua = aua. u Au A O Demonstration. . Sens Ë. aAua2 = .Au|Au. = .u|A.Au. = .u|u. = aua2. . Sens .. Notons la matrice A sous la forme de ses vecteurs colonnes A= .. u v et supposons qufelle preserve les longueurs. Nous allons utiliser la caracterisation de la proposition 8. . Comme A .. 10 = u et que A preserve les longueurs alors A .. 10 = .. 10 donc aua = 1. . De meme A .. 01 = v, donc ava = 1. VECTEURS ET MATRICES 64 . Dfune part A .. 11 = u + v, donc au + va = p 2. Ainsi : au + va2 = 2 =Ë .u + v|u + v. = 2 =Ë .u|u + v. + .v|u + v. = 2 =Ë .u|u. + .u|v. + .v|u. + .v|v. = 2 =Ë aua2 + .u|v. + (.u|v.). + ava2 = 2 mais aua2 = 1 et ava2 = 1 =Ë 2Re .. .u|v. = 0 sachant que z + z. = 2Re(z) . Dfautre part A .. 1i = u + iv, donc au + iva = p 2. Ainsi : au + iva2 = 2 =Ë .u + iv|u + iv. = 2 =Ë .u|u + iv. + .iv|u + iv. = 2 =Ë .u|u. + i .u|v. . i .v|u. + .v|v. = 2 =Ë aua2 + i .u|v. . i(.u|v.). + ava2 = 2 =Ë 2Im .. .u|v. = 0 sachant que z . z. = 2iIm(z) . On a prouve que la partie reelle et la partie imaginaire de .u|v. sont nulles. Ainsi .u|v. = 0. . On a donc aua = 1, ava = 1 et .u|v. = 0, alors par la proposition 8, la matrice A= .. u v est unitaire. 6.4. Matrice speciale unitaire Parmi les matrices unitaires, celles dont le determinant vaut 1 sont particulierement interessantes. Definition. Une matrice A ¸ Mn est speciale unitaire si elle est unitaire (cfest-a-dire A.A= I) et de determinant 1 : det(A) = 1. On note SUn lfensemble des matrices speciales unitaires de taille n ~ n. Exemple. Les matrices de Pauli (voir lfexemple plus haut) ne sont pas speciales unitaires car de determinant .1, par contre en multipliant tous les coefficient par i, on obtient un determinant +1, donc iX, iY, iZ ¸ SU2. Proposition 11. Lfensemble des matrices speciales unitaires forme un groupe pour la multiplication. En particulier si A, B ¸ SUn alors AB ¸ SUn et A.1 ¸ SUn. Demonstration. On sait deja que AB et A.1 sont des matrices unitaires et que de plus det(AB) = det(A) det(B) = 1 et det(A.1) = 1 det(A) = 1. Dans le cas de matrices de taille 2 ~ 2, nous decrivons lfensemble des matrices de SU2. Proposition 12. Une matrice speciale unitaire de taille 2 ~ 2, sfecrit sous la forme A= ƒ¿ .ƒÀ. ƒÀ ƒ¿. avec ƒ¿,ƒÀ ¸ C tels que |ƒ¿|2 + |ƒÀ|2 = 1. Demonstration. Tout dfabord comme A ¸ SU2 alors en particulier A ¸ U2. Dfapres la proposition 8, A sfecrit sous la forme de ses vecteurs colonnes : A= .. u v aua = 1 ava = 1 .u|v. = 0. VECTEURS ET MATRICES 65 Notons u = ƒ¿ ƒÀ . Comme aua = 1 alors |ƒ¿|2 + |ƒÀ|2 = 1. Notons v = ƒÁ ƒÂ . Comme u et v sont orthogonaux, car .u|v. = 0, alors ƒ¿.ƒÁ + ƒÀ.ƒÂ = 0. Cela implique ƒ¿.ƒÁ = .ƒÀ.ƒÂ. Si ƒ¿ .= 0, on pose ƒÉ = ƒÂ ƒ¿. . On a alors ƒÁ = .ƒÂƒÀ. ƒ¿. = .ƒÉƒÀ. et ƒÂ = ƒÉƒ¿.. (Si ƒ¿ = 0 alors on a necessairement ƒÀ .= 0 donc ƒÂ = 0 et on a encore une relation ƒÁ = .ƒÉƒÀ. et ƒÂ = ƒÉƒ¿. avec ƒÉ = . ƒÁ ƒÀ. ). Donc la matrice A sfecrit : A= ƒ¿ .ƒÉƒÀ. ƒÀ ƒÉƒ¿. . Or det(A) = ƒÉƒ¿ƒ¿. + ƒÉƒÀƒÀ. = ƒÉ(|ƒ¿|2 + |ƒÀ|2) = ƒÉ. Comme det(A) = 1, alors ƒÉ = 1. Ainsi : A= ƒ¿ .ƒÀ. ƒÀ ƒ¿. avec |ƒ¿|2 + |ƒÀ|2 = 1. Terminons par une propriete, dite de transitivite. On peut transformer un vecteur en nfimporte quel autre vecteur par une matrice speciale unitaire, a condition que ces deux vecteurs aient la meme longueur. Proposition 13. Soient u ¸ C2 et v ¸ C2 deux vecteurs avec aua = ava. Il existe une matrice A ¸ SU2 telle que Au = v. Une telle matrice A nfest pas unique. Application. Si |ƒÓ. et |ƒÕ. sont de norme 1, alors il existe A ¸ SU2 telle que |ƒÕ. = A|ƒÓ.. Demonstration. Sans perte de generalite on suppose aua = ava = 1. Etape 1. Il existe B ¸ SU2 telle que B .. 10 = u. En effet, si on note u = .. ƒ¿ ƒÀ avec ƒ¿,ƒÀ ¸ C. Alors posons : B = ƒ¿ .ƒÀ. ƒÀ ƒ¿. Comme aua2 = |ƒ¿|2 + |ƒÀ|2 = 1, cfest bien une matrice speciale unitaire : B ¸ SU2. Comme B ¸ SU2, alors B.1 ¸ SU2 et verifie B.1u = .. 10 . Etape 2. On reprend la construction de la premiere etape pour construire cette fois C ¸ SU2 telle que C .. 10 = v. Etape 3. La matrice A= CB.1 convient. En effet, comme B, C ¸ SU2 alors CB.1 ¸ SU2 et Au = (CB.1)u = C(B.1u) = C .. 10 = v. Note. Certains passages de ce chapitre sont extraits du chapitre á Matrice â du livre á Algebre â dfExo7. Informatique classique Chapitre 5 Video ¡ partie 5.1. Bits classiques Video ¡ partie 5.2. Portes logiques Video ¡ partie 5.3. Algorithme et complexite Nous rappelons quelques principes de base du fonctionnement dfun ordinateur classique avec les notions de bits, de portes logiques et de complexite dfun algorithme. 1. Bits classiques 1.1. 0 ou 1 Un bit est une valeur 0 ou 1 et correspond a lfinformation minimale pour lfinformatique classique. Cette valeur peut etre codee par une information physique (allume/eteint, 0 volts/5 volts, lforientation magnetique dfun element. . .). 1.2. Ecriture binaire Avec plusieurs bits on peut transmettre plus dfinformation. Voyons le cas dfun entier qui peut etre represente en ecriture binaire. Par exemple, 1.0.1.1.0.0.1 (prononcer les chiffres un par un) est lfecriture binaire de lfentier 89. Comment faire ce calcul ? Cfest comme pour la base 10, mais en utilisant les puissances de 2. 1 0 1 1 0 0 1 64 32 16 8 4 2 1 26 25 24 23 22 21 20 Donc lfecriture 1.0.1.1.0.0.1 represente lfentier : 1 ~ 26 + 0 ~ 25 + 1 ~ 24 + 1 ~ 23 + 0 ~ 22 + 0 ~ 21 + 1 ~ 20 = 1 ~ 64 + 0 ~ 32 + 1 ~ 16 + 1 ~ 8 + 0 ~ 4 + 0 ~ 2 + 1 ~ 1 = 64 + 16 + 8 + 1 = 89 Plus generalement un n-bit, bn.1 . . . b2.b1.b0, est lfecriture en base 2 de lfentier : N = Xn.1 i=0 bi2i = bn.1 E 2n.1 + E E E + b2 E 22 + b1 E 2 + b0 avec bi = 0 ou bi = 1. INFORMATIQUE CLASSIQUE 67 1.3. Codage Il nfy pas que les entiers qui peuvent etre representes par une succession de bits. Une succession de bits peut aussi representer : . un caractere, par exemple le code ASCII de á A â est lfentier 65 et se code sur 8 bits par 0.1.0.0.0.0.0.1, . une instruction, par exemple á Ajouter 1 â, á Copier cette variable â,. . . Plus generalement, on formalise un ordinateur par une machine de Turing qui est un modele abstrait dfordinateur qui lit et ecrit des 0 et des 1 sur un ruban. 1.4. Logarithme Avec n bits, il y a 2n combinaisons possibles. Si on a N objets a enumerer, alors combien de bits faut-il pour les enumerer ? On va utiliser le logarithme en base 2 qui est defini par la relation : N = 2n .Ë n = log2(N). On peut egalement le definir a lfaide du logarithme neperien ln(x) : log2(x) = ln(x) ln(2) . Ainsi pour enumerer N objets, il faut au moins n = log2(N) bits dfinformation. Dans la pratique on arrondit a lfentier superieur : n = .log2(N). ou .x. correspond a lfarrondi superieur, comme le ferait ceil(x) avec Python. 2. Portes logiques 2.1. Quelques portes Une porte logique est une fonction qui prend en entree des bits et renvoie un bit en sortie. Dfun point de vue mathematique, cfest donc une fonction f : {0,1}n ¨{0,1}, ou n . 1. Dfun point de vue electronique, cette porte peut etre realisee par des composants elementaires (diode, transistor,. . .). On presente ici quelques portes classiques. Il faut penser a la valeur 0 comme á Faux â et a la valeur 1 comme á Vrai â. Porte NOT. Elle a une seule entree et change 0 en 1, et 1 en 0. 0 NOT 1 1 NOT 0 Entree Sortie 0 1 1 0 Porte AND. AND 0 0 0 AND 0 1 0 AND 1 0 0 AND 1 1 1 On resume lfaction de la porte AND par le tableau suivant : INFORMATIQUE CLASSIQUE 68 A B Sortie 0 0 0 0 1 0 1 0 0 1 1 1 AND A B Sortie Porte OR. OR 0 0 0 OR 0 1 1 OR 1 0 1 OR 1 1 1 A B Sortie 0 0 0 0 1 1 1 0 1 1 1 1 OR A B Sortie Porte XOR. Le á OU exclusif â cfest le á ou â dans á fromage ou dessert â, cfest lfun ou lfautre mais pas les deux. XOR 0 0 0 XOR 0 1 1 XOR 1 0 1 XOR 1 1 0 On resume lfaction de la porte XOR par le tableau suivant : A B Sortie 0 0 0 0 1 1 1 0 1 1 1 0 XOR A B Sortie 2.2. Circuit Un circuit est construit a partir de plusieurs portes logiques et definit une fonction logique : f : {0, 1}n ¨ {0, 1}, ou n . 1. Exemple. Voici un exemple de circuit : AND NOT A B C OR Sortie A vous de completer le tableau donnant la valeur de sortie en fonction de celles de depart ! INFORMATIQUE CLASSIQUE 69 A B C Sortie 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Combinatoire. Soit n . 1 le nombre dfentrees dfun circuit. Une entree est du type (b1, b2, . . . , bn) ¸ {0, 1}n. Il y a donc 2n entrees differentes possibles. On rappelle que pour E de cardinal m et F de cardinal p, le nombre de fonctions f : E ¨ F possibles est pm. Dans notre cas, on considere toutes les fonctions f : {0, 1}n ¨{0, 1}, donc m = 2n et p = 2, il y donc a 2(2n) fonctions logiques possibles. Ce nombre N = 2(2n) de fonctions possibles est enorme. Par exemple, pour n = 5 entrees il y a N = 2(25) = 232 = 4 294 967 296 fonctions logiques possibles. Faut-il autant de portes logiques differentes pour realiser ces fonctions ? Ce serait dramatique pour nos ordinateurs qui devraient etre gigantesques. On va voir qufun miracle se produit : une seule porte logique suffit a realiser toutes les fonctions logiques possibles. 2.3. La porte NAND est universelle Porte NAND. La porte NAND est definie par les quatre etats suivants. NAND 0 0 1 NAND 0 1 1 NAND 1 0 1 NAND 1 1 0 A B Sortie 0 0 1 0 1 1 1 0 1 1 1 0 NAND A B Sortie Elle peut se realiser comme la porte NOT(AND), cfest-a-dire la porte AND suivie de la porte NOT. AND NOT Mais nous preferons la voir comme une porte a part entiere. Elle a la propriete fondamentale suivante : Theoreme 1. La porte NAND est universelle : nfimporte quelle fonction logique f : {0, 1}n ¨{0, 1} peut-etre realisee par un circuit ne comportant que des portes NAND. Nous nfallons pas prouver ce theoreme, mais nous allons voir comment retrouver les portes de base que nous connaissons a partir de portes NAND. Realisation des portes elementaires. On commence par realiser une porte NOT en dupliquant lfunique entree aux deux bornes de la borne NAND. INFORMATIQUE CLASSIQUE 70 NAND Equivalent porte NOT Maintenant que lfon est capable de construire une porte NOT, on peut realiser et retrouver la porte AND. NAND NOT Equivalent porte AND Si vous ne voulez vraiment que des portes NAND, il faut remplacer la porte NOT par une seconde porte NAND. NAND NAND Equivalent porte AND On peut aussi faire un circuit qui correspond a la porte OR. NAND NOT NOT Equivalent porte OR A vous de trouver comme realiser une porte XOR. Exercice. Un circuit multiplexeur, note MUX, est une sorte dfaiguillage entre deux choix A et B avec un interrupteur I qui permet la selection. Si I vaut 1 alors la sortie du circuit est la valeur de A. Si I vaut 0 alors la sortie est la valeur de B. Cela peut aussi etre vu comme un test rudimentaire : á Si I = 1 faire ceci, sinon faire cela. â Prouver que le circuit suivant est bien un circuit multiplexeur. NAND NAND NAND NAND B A I Circuit MUX INFORMATIQUE CLASSIQUE 71 3. Algorithme et complexite 3.1. Vitesse dfun algorithme Un algorithme cfest un peu comme une recette de cuisine : cfest une suite dfinstructions qui permettent de resoudre un probleme. Mais pour un meme probleme il peut exister plusieurs solutions. Il peut y avoir des algorithmes rapides, dfautres qui utilisent peu de memoire, dfautres qui sont efficaces mais qui ne donnent la bonne reponse qufavec 90% de certitude. Voici un exemple de probleme : decider si un entier n donne est un nombre premier. . Une premiere methode consiste a tester sfil admet un diviseur k, pour k variant de 2 jusqufa n . 1. Si cfest le cas n nfest pas un nombre premier, sinon cfest bien un nombre premier. . On peut aller beaucoup plus vite en testant seulement les diviseurs k compris entre 2 et p n. . On pourrait dfabord etablir le debut de la liste de tous les nombres premiers par le crible dfEratosthene, puis tester si n est dedans. . Il existe aussi des algorithmes probabilistes tres efficaces, qui donnent une reponse du genre á oui n est probablement un nombre premier a 90% â ou á non je suis sur que n nfest pas un nombre premier â. En reiterant lfalgorithme on peut obtenir une quasi-certitude. Nous comparerons les algorithmes en nous limitant ici a la á vitesse â des algorithmes. La vitesse que lfon chronometrerait en secondes nfest pas une mesure objective car elle depend trop du materiel et de lfimplementation. Nous allons etudier la vitesse theorique qui sfappelle la á complexite â. Cela demande dfintroduire des notions mathematiques. 3.2. Notation á grand O â On souhaite comparer deux suites, ou plus exactement leur ordre de grandeur. Par exemple les suites (n2)n¸N et (3n2)n¸N ont le meme ordre de grandeur, mais sont beaucoup plus petites que la suite (12 en)n¸N. Notation á grand O â. . On considere (un)n¸N et (vn)n¸N deux suites de termes strictement positifs. . On dit que (un) est un grand O de (vn) si la suite €un vn . est bornee. . Autrement dit il existe une constante reelle k > 0 telle que pour tout n ¸ N : un . kvn. . Notation. On note alors un = O(vn). Il sfagit de la lettre á O â (pour Ordre de grandeur) et pas du chiffre zero. Exemples . Soient un = 3n + 1 et vn = 2n . 1. Comme un vn ¨ 32 lorsque n¨+‡alors la suite €un vn . est bornee donc un = O(vn). . un = 2n2 et vn = en. Comme un vn ¨0 alors la suite €un vn . est bornee donc un = O(vn). . un = p n et vn = ln(n). Comme un vn ¨+‡lorsque n¨+‡alors la suite €un vn . nfest pas bornee. (un) nfest pas un grand O de (vn). Par contre dans lfautre sens, on a bien vn = O(un). . un = O(n) signifie qufil existe k > 0 tel que un . kn (pour tout n ¸ N). . un = O(1) signifie que la suite (un) est bornee. 3.3. Suites de reference On souhaite comparer une suite (un) avec des suites de reference. Voici les suites de reference choisies : ln(n |{z}) croissance logarithmique n n2 n3 E E E | {z } croissance polynomiale en |{z} croissance exponentielle INFORMATIQUE CLASSIQUE 72 . Les suites sont ecrites en respectant lfordre des O : on a ln(n) = O(n), n = O(n2), n2 = O(n3), n3 = O(en). . On pourrait intercaler dfautres suites, par exemple ln(n) = O( p n) et p n = O(n). Ou encore n ln(n) = O(n2). Les suites ln(n), p n, n, n2, en. 3.4. Complexite dfun algorithme On mesure lfefficacite dfun algorithme a lfaide de la complexite. Nous definissons de maniere informelle la complexite : la complexite dfun algorithme est le nombre dfoperations elementaires executees. . Ce que lfon appelle á operation elementaire â peut varier selon le contexte : pour un calcul cela peut etre le nombre de multiplications, pour un tri le nombre de comparaisons. . . . La complexite Cn depend de la taille n des donnees en entree (par exemple le nombre de chiffres dfun entier ou bien la longueur de la liste). On obtient ainsi une suite (Cn). . Les bons algorithmes ont des complexites polynomiales qui sont en O(n) (lineaire), en O(n2) (quadratique) ou bien en O(nk), k ¸ N . (polynomiale). Les mauvais algorithmes ont des complexites exponentielles, en O(en) par exemple. 3.5. Exemples de complexite Multiplication de deux entiers. On souhaite multiplier deux entiers a et b de n chiffres. Il y a plusieurs methodes, on les compare en comptant le nombre dfoperations elementaires : ici les multiplications de petits nombres (entiers a 1 ou 2 chiffres). Algorithme Ordre de la complexite Multiplication dfecole O(n2) Multiplication de Karatsuba O(nlog2(3)) . O(n1.58) Transformee de Fourier rapide O(n E ln(n) E ln(ln(n))) Voici des exemples dfordre de grandeur de la complexite pour differentes valeurs de n. Algorithme n = 10 n = 100 n = 1000 Multiplication dfecole 100 10 000 1 000 000 Multiplication de Karatsuba 38 1478 56 870 Transformee de Fourier rapide 19 703 13 350 INFORMATIQUE CLASSIQUE 73 Plus lfentier n est grand, plus un bon algorithme prend lfavantage. On termine par des exemples de problemes et dfalgorithmes correspondant a differentes classes de complexite. Complexite Probleme et algorithme O(1) acces a un element dfune liste de taille n test si un nombre est pair ou impair O(log2(n)) recherche par dichotomie dans une liste ordonnee de taille n O(n) recherche dfun maximum dans une liste non ordonnee de taille n recherche si un element est present dans une liste de taille n O(n log2(n)) tri dfune liste de taille n par mergesort O(n2) tri dfune liste de taille n par bubble sort, selection sort, insertion sort recherche si un element est present en double dans une liste de taille n O(2n) probleme du voyageur de commerce avec n villes trouver tous les sous-ensembles de {1, 2, . . . , n} La derniere categorie dfalgorithmes dont la complexite est en O(2n) est de complexite exponentielle (car 2n = en ln 2). Ce qui signifie que pour des valeurs de n moyennes ou grandes, ces algorithmes sont inutilisables car ils nfaboutiront pas dans un temps raisonnable. Note. Certains passages de cette section sont extraits du chapitre á Tri . Complexite â du livre á Python au lycee (tome 2) â. Physique quantique Chapitre 6 Video ¡ partie 6.1. Particule Video ¡ partie 6.2. Dualite onde/corpuscule Video ¡ partie 6.3. Fonction d'onde et equation de Schrodinger Video ¡ partie 6.4. Qubits Lfobjectif est de comprendre les notions de base de la physique quantique. 1. Particule 1.1. Bestiaire Commencons par un tour dfhorizon des particules : . Les protons (charge electrique positive) et les neutrons (pas de charge) constituent le noyau des atomes. . Autour du noyau gravitent des electrons (charge negative). . Un modele simple de structure de lfatome est decrit par les electrons qui se repartissent sur des couches spheriques ayant pour centre le noyau, ce modele est maintenant desuet. Avec la mecanique quantique, on considere qufun electron peut etre a nfimporte quelle position autour du noyau, mais pas partout avec la meme probabilite. noyau electron Modele (desuet) de couches dfelectrons Modele quantique . Le photon est la particule fondamentale de la lumiere (et des ondes electromagnetiques). Il nfa ni masse ni charge. 1.2. Quantification Des experiences montrent que le changement dfetat des electrons dans un atome correspond a des niveaux dfenergie bien determines. On le concoit bien avec le modele dans lequel les electrons gravitent sur des couches : pour qufun electron passe a une couche superieure, il faut lui fournir un certain niveau dfenergie. PHYSIQUE QUANTIQUE 75 saut ƒ¢E = nhƒË Changement de couche La formule qui calcule lfenergie a fournir est donnee par : ƒ¢E = Eapres . Eavant = nhƒË ou n est un entier, ƒË est la frequence du rayonnement recu (ou emis) (exprimee en s.1) et h est la constante de Planck, h . 6.62 E 10.34 J E s. Il y a donc un phenomene de quantification, car lfenergie recue (ou emise) ne peut prendre que des valeurs discretes, cfest-a-dire que lfon peut indexer par lfentier n qui vaut 1, 2, 3. . . et non par des valeurs continues (comme on lfaurait avec un parametre reel t . 0). La formule de Bohr-Einstein lie lfenergie a la frequence : E = hƒË On rencontre aussi souvent la constante de Planck reduite : .h = h 2ƒÎ 1.3. Principe dfincertitude dfHeisenberg Le principe dfincertitude dfHeisenberg sfenonce mathematiquement ainsi : ƒÐx EƒÐv . h 4ƒÎm ou : . ƒÐx est lfecart-type dfune serie de mesures de la position x = (x, y, z) dfune particule. Cet ecart-type est obtenu en repetant plusieurs fois lfexperience suivante : on prepare la particule, toujours avec le meme etat initial, puis on mesure sa position. . ƒÐv est lfecart-type de la mesure de la vitesse de la particule v = (vx , vy , vz). Lfinterpretation de la formule est la suivante : si on connait avec une grande precision la position dfune particule alors on ne peut pas connaitre tres precisement sa vitesse. Et reciproquement si on connait tres precisement la vitesse, on ne peut pas connaitre tres precisement la position. En effet, imaginons que lfon connaisse tres precisement la position dfune particule, alors lorsque lfon va repeter la mesure de la position, on obtiendra presque toujours la meme mesure. Autrement dit, les ecarts entre les differentes mesures sont tout petits : ƒÐx . 0. Par le principe dfincertitude, ƒÐv . h 4ƒÎmƒÐx doit etre tres grand. Cfest-a-dire que les differentes mesures de la vitesse conduisent a des grands ecarts. Lfincertitude est dfautant plus grande que la masse m est petite. Par contre la constante de Planck h etant toute petite (h . 6.62 E 10.34 J E s), cette incertitude ne concerne vraiment que les particules et pas les objets plus gros de la physique classique. PHYSIQUE QUANTIQUE 76 2. Dualite onde/corpuscule En physique classique, on separe lfetude des corpuscules (un objet materiel comme une bille) de celle des ondes (par exemple une onde sonore ou bien la lumiere). En physique quantique, une particule se comporte a la fois comme une onde et un corpuscule. Cfest la tres deroutante á dualite onde/corpuscule â. Corpuscule. Un á corpuscule â est un petit objet aux proprietes physiques bien determinees : comme sa position (x, y, z), sa vitesse (vx , vy , vz), sa masse. . . Il peut avoir une taille mais est souvent modelise par un point. La mecanique dfun point materiel est bien connue, meme si on a vu, avec le principe dfincertitude dfHeisenberg, que la mesure de la position et celle de la vitesse ne sont pas si evidentes que cela ! (x, y, z) (vx , vy , vz) Onde. Une á onde â est la variation dfune propriete physique par propagation. Par exemple, une onde sonore est la variation de la pression : un mouvement initial fait que des molecules dfair viennent frapper les molecules voisines qui a leur tour deplacent les molecules suivantes. Pourtant chaque molecule ne se deplace presque pas (elle revient a sa place apres avoir rebondi sur sa voisine) par contre lfonde se deplace. Une vague est un autre exemple dfonde, les molecules dfeau font varier la hauteur. Pourtant les molecules dfeau ne se deplacent pas en suivant les vagues. Dfailleurs un bouchon flottant sur les vagues ne se deplace pas horizontalement. Les ondes electromagnetiques se deplacent dans le vide a la vitesse de la lumiere (300000 kmE s.1). Le courant electrique se deplace dans un fil de cuivre un peu moins vite (200000 km E s.1). Par contre les electrons qui propagent ce courant se deplacent tres lentement (quelques centimetres par heure). Voici deux vues dfune onde sinusoidale : la premiere vue en une vue en coupe (on voit les vagues avec les cretes et les creux), la seconde vue est une vue de dessus, comme si on avait jete un caillou dans lfeau et qufon observe les lignes de crete circulaires. crete creux Une des proprietes fondamentales des ondes est le principe de superposition. Deux ondes se superposent (figure de gauche), ce qui peut conduire a une onde renforcee (figure centrale), ou bien a annulation (figure de droite). PHYSIQUE QUANTIQUE 77 x f1(x) x f2(x) x f1(x) + f2(x) x f1(x) x f2(x) x f1(x) + f2(x) x f1(x) x f2(x) x f1(x) + f2(x) annulation Nous allons etudier les phenomenes dfinterference a lfaide de lfexperience de Young a deux fentes, mais commencons par un cas plus simple. Experience a une fente. Une onde est emise dfun point. Elle se propage vers une paroi opaque dans laquelle on a effectue une fente mince (ou bien un petit trou). En passant cette fente lfonde se diffracte (elle perd sa direction dforigine) et vient eclairer un ecran recepteur. Que voit-on sur cet ecran ? Lfonde frappe lfecran de maniere essentiellement uniforme. En realite la partie centrale est plus touchee que les bords et fait apparaitre une large bande de diffraction, mais ce nfest pas important pour nous. Ci-dessous le resultat dfune experience a une fente a lfaide dfune lumiere laser. Source Onde Paroi avec une fente Ecran recepteur Diffraction Experience a deux fentes. On reprend lfexperience mais cette fois avec deux fentes. PHYSIQUE QUANTIQUE 78 Source Ecran recepteur Paroi a deux fentes Lfonde passe simultanement par les deux trous et se diffracte. Un point de lfecran est donc atteint depuis deux sources differentes. Que voit-on sur lfecran ? On note des franges minces et nettes qui sont des franges dfinterference. Comment expliquer cela ? Placons-nous en un point P de lfecran. Ce point capte lfonde depuis deux sources differentes F1 et F2, mais ces deux sources ne sont pas situees a la meme distance de P : PF1 .= PF2. Il y a donc un decalage (appele dephasage) entre lfonde recue depuis F1 et lfonde recue depuis F2. Selon la position du point P, les ondes peuvent sfamplifier ce qui conduit aux franges claires les plus atteintes. Cfest ce qufil se passe ci-dessous au point P ou les deux sinusoides arrivent en phase (les deux cretes arrivent en meme temps au point P, et au fil du temps les ondes restent en phase). paroi avec deux fentes F1 F2 P Mais les ondes peuvent sfannuler ce qui correspond aux franges sombres (rien nfest capte). Cfest le cas au point de la configuration ci-dessous. En ce nouveau point P une sinusoide presente une crete alors que lfautre sinusoide est a un creux (de meme amplitude), la resultante des deux est nulle (et reste nulle au fil du temps). PHYSIQUE QUANTIQUE 79 F1 F2 P Mathematiquement si le signal issu de F1 est f1(t) = sin(ƒÖt) alors le signal issu de F2 est f2(t) = sin(ƒÖt+ƒÓP ) ou ƒÓP est le dephasage, sa valeur depend de la position du point P. Si ƒÓP est de la forme 2kƒÎ alors f2(t) = sin(ƒÖt) et donc les ondes sfajoutent pour donner f (t) = f1(t)+f2(t) = 2 sin(ƒÖt). Par contre si ƒÓP est de la forme ƒÎ+2kƒÎ alors f2(t) = .sin(ƒÖt) et donc les ondes sfannulent pour donner f (t) = f1(t)+f2(t) = 0. Que se passe-t-il si on realise lfexperience a deux fentes avec un corpuscule (par exemple en envoyant une multitude de petites billes) au lieu dfune onde ? Chaque corpuscule passe par la fente 1 ou bien par la fente 2 (mais pas les deux) et il y a un phenomene de diffraction a chaque fente. Que voit-on a lfecran ? Lfecran est uniformement atteint. Il nfy a pas de phenomene dfinterference puisque une bille ne passe que par un seul trou. Experience quantique a deux fentes. Voici lfexperience incroyable : on envoie une a une des particules a travers le dispositif a deux fentes. Ces particules sont par exemple des photons ou des electrons. Voici ce que lfon obtient a lfecran au fur et a mesure des lancers (ici des electrons). Nombre dfelectrons captes (a) 11 ; (b) 200, (c) 6000, (d) 40 000, (e) 140 000. On observe des franges dfinterference alors qufon a envoye les particules une par une ! Ces particules sont bien des corpuscules puisque qufon les envoie une par une et on peut meme les compter. Mais les franges dfinterference prouvent que ces particules sont aussi des ondes ! Ainsi on ne peut parler de trajectoire pour PHYSIQUE QUANTIQUE 80 une particule quantique. Une particule quantique possede a la fois des proprietes corpusculaires et des proprietes ondulatoires : cfest la á dualite onde/corpuscule â. Mesure. Si on reprend lfexperience quantique a deux fentes mais que cette fois on mesure par quel trou la particule passe, alors on obtient un ecran uniformement atteint ! Il faut comprendre que la mesure perturbe irremediablement lfetat quantique et la particule perd ses caracteristiques quantiques. Le fait de rajouter une mesure entraine que ce nfest pas du tout la meme experience qufauparavant. Le chat de Schrodinger. Dans le monde dans lequel nous vivons les objets sont á gros â et leur appliquer des proprietes quantiques nfa pas trop de sens. Cfest pourtant ce que lfon fait avec lfexperience de pensee du chat de Schrodinger. Dans une boite recouverte dfun voile noir, on met un chat, un fiole de poison et une particule. Si la particule se desintegre, elle casse la fiole qui libere le poison et le chat meurt. La particule a une demi-vie dfune heure, cfest-a-dire qufau bout dfune heure, il y a une chance sur deux qufelle se soit desintegree. Question : au bout dfune heure le chat est-il mort ou vivant ? Ou bien moitie-mort et moitie-vivant ? En fait, tant que le voile noir nfest pas leve le chat nfest pas vraiment mort. Par contre lever le voile (ce qui correspond a une mesure) enleve le caractere mi-mort/mi-vivant au chat et rend lfetat du chat certain. Cfest assez perturbant ! On retient que la mecanique quantique est une theorie qui sfapplique aux particules de petite taille, et souvent sur de courtes periodes. 3. Fonction dfonde et equation de Schrodinger 3.1. Fonction dfonde Fonction dfonde. Le mouvement dfune particule en physique classique est decrit par sa position (x, y, z) (qui peut varier en fonction du temps) et sa vitesse (vx , vy , vz). Ce modele nfest plus valide en physique quantique. En physique quantique on associe a une particule une fonction dfonde ƒµ : ƒµ(x, y, z, t) : R 4 .¨C. Cette fonction depend du point de lfespace (x, y, z) et du temps t ; elle est a valeurs complexes et nfa pas dfinterpretation physique. Probabilite. Par contre la fonction dfonde permet de determiner la probabilite de la particule dfetre a une position donnee : la probabilite que la particule soit mesuree a la position (x, y, z) au temps t est donnee par la densite de probabilite : |ƒµ(x, y, z, t)|2 . Autrement dit : dP(x, y, z, t) = |ƒµ(x, y, z, t)|2 dxdydz ou dxdydz represente un petit cube elementaire autour de la position (x, y, z). Nous avons la relation : Z |ƒµ(x, y, z, t)|2 dxdydz = 1 PHYSIQUE QUANTIQUE 81 qui signifie que la somme des probabilites (pour toutes les positions possibles) est 1. Mesure de la position. Il faut bien comprendre que lfon ne connait pas la position de la particule. Ce nfest pas un defaut ou un manque de precision mais la base de la mecanique quantique. La notion de position nfa pas de sens avant la mesure. On pourrait dire que la particule est á partout â, et que cfest la mesure qui determine une position (x, y, z). Enfin, meme si la particule peut etre mesuree a nfimporte quelle position, certaines positions sont cependant plus probables que dfautres. Voici un exemple de repartition des mesures dfune position x (on se limite a la mesure de la seule coordonnee x) obtenue en repetant lfexperience : je prepare la particule, puis je mesure la position x. On note que certaines positions sont plus frequentes que dfautres. x nombre dfevenements Mathematiquement les resultats sfinterpretent avec la densite de probabilite P(x) = |ƒµ(x)|2 qui decrit la repartition probable. Lfaire sous la courbe vaut 1, car R |ƒµ(x)|2 dx = 1 (ce qui est la traduction que la somme des probabilites vaut 1). x P(x) 3.2. Equation de Schrodinger La loi qui regit le mouvement dfune particule classique est le principe fondamental de la mecanique : X .F = m.a. La somme des forces est egale a la masse multipliee par lfacceleration. Lfacceleration est la derivee de la vitesse par rapport au temps, qui elle-meme est la derivee de la position par rapport au temps. Ainsi on nfobtient pas exactement la position x = (x(t), y(t), z(t)) mais une equation differentielle faisant intervenir la derivee seconde d2x dt2 (t). Si on sait resoudre cette equation differentielle (ce qui nfest pas toujours possible), on trouve la position x. Qufen est-il pour la mecanique quantique ? On a vu que le comportement dfune particule est regi par sa fonction dfonde ƒµ(x, y, z, t). La loi quantique fondamentale qui regit le comportement dfune particule libre est donnee par lfequation de Schrodinger : PHYSIQUE QUANTIQUE 82 i Ý ƒµ Ý t = . .h 2m ƒ¢ƒµ ou : . i est le nombre complexe avec i2 = .1, . .h = h 2ƒÎ est la constante de Planck reduite, . m est la masse de la particule, . ƒµ(x, y, z, t) est la fonction dfonde, . Ý ƒµ Ý t est la derivee de la fonction dfonde par rapport au temps (on parle de derivee partielle par rapport a t), . ƒ¢ƒµ est le Laplacien de ƒµ, cfest la somme des derivees partielles secondes en x, y et z : ƒ¢ƒµ = Ý 2ƒµ Ý x2 + Ý 2ƒµ Ý y2 + Ý 2ƒµ Ý z2 . Lfequation de Schrodinger est une equation differentielle (ici une equation aux derivees partielles) qui regit ƒµ et donc le comportement de la particule. Par contre, en trouver des solutions est difficile. Si de plus la particule est soumise a des forces externes, donnees par un potentiel V(x, y, z, t), alors lfequation de Schrodinger devient : i.hÝ ƒµ Ý t (x, y, z, t) = . .h2 2m ƒ¢ƒµ(x, y, z, t) + V(x, y, z, t)ƒµ(x, y, z, t). 3.3. Principe de superposition Il est facile de verifier que si ƒµ1 et ƒµ2 sont deux fonctions dfonde, solutions de lfequation de Schrodinger alors la combinaison lineaire ƒµ = ƒ¿ƒµ1 + ƒÀƒµ2 avec ƒ¿,ƒÀ ¸ C est aussi une solution (il faut tout de meme verifier la condition de normalisation R |ƒµ|2 = 1). Par contre en termes de probabilites, cfest plus complique. Si on note P1 = |ƒµ1|2 et P2 = |ƒµ2|2 les densites de probabilite associees aux deux fonctions dfonde et avec par exemple ƒµ = 1 p 2 (ƒµ1 + ƒµ2), alors on pourrait penser que la densite de probabilite P = |ƒµ|2 est 12 (P1 + P2) mais ce nfest pas le cas. En effet : P = |ƒµ|2 = |ƒµ1 + ƒµ2|2 = 1 2(ƒµ1 + ƒµ2)(ƒµ1 + ƒµ2). = 1 2(|ƒµ1|2 + |ƒµ2|2 + ƒµ1ƒµ. 2 + ƒµ. 1ƒµ2) = 1 2(P1 + P2 + ƒµ1ƒµ. 2 + ƒµ. 1ƒµ2). Le terme ƒµ1ƒµ. 2 + ƒµ. 1ƒµ2 est un terme dfinterference entre les deux fonctions dfondes. 4. Qubits 4.1. Realisation de qubits Il existe de nombreuses facons de realiser physiquement un qubit, chacune presentant ses avantages et ses defis technologiques. Il est encore difficile de determiner laquelle de ces technologies permettra de construire lfordinateur quantique du futur. . Polarisation des photons. La lumiere polarisee vibre simultanement dans deux directions orthogonales. La mesure peut conduire a la polarisation horizontale ¨ (qui est |0.) ou verticale ª (qui est |1.). . Spin dfelectrons pieges. Les electrons possedent un mouvement cinetique interne. On dit qufun electron á tourne sur lui-meme â. Le moment cinetique peut prendre une infinite de valeurs. Mais lorsque lfon mesure ce moment cinetique on nfobtient que deux valeurs possibles +.h2 ou ..h2 . On note |0. et |1. ces deux mesures possibles. Par contre avant la mesure, le moment cinetique avait la forme dfun qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. avec |ƒ¿|2 + |ƒÀ|2 = 1. PHYSIQUE QUANTIQUE 83 . Ions pieges. Les ions dfatomes sont pieges dans une cavite magnetique et dans le vide, ils sont manipules par des rayons laser. . Atomes froids. Des atomes sont refroidis par des lasers, leur etat quantique correspond a leur niveau dfenergie, ils sont egalement manipules par des lasers. . Les supra-conducteurs sur silicium. Lfobjet quantique est dans ce cas un courant obtenu dans une jonction Josephson constituee par des oxydes dfaluminium sur des puces de silicium. Lfetat de ces qubits est manipule par des impulsions a micro-onde qui constituent les portes quantiques. 4.2. Mesure La mesure joue un role important en physique quantique : la mesure est un acte irreversible qui change la fonction dfonde. Avant la mesure, la fonction dfonde dfune particule peut conduire a plusieurs mesures possibles (si on repete lfexperience de la preparation de la particule, puis de la mesure, on obtient des resultats qui peuvent etre differents a chaque mesure). Par contre apres une mesure, la fonction dfonde est changee definitivement, on parle de la á reduction du paquet dfonde â, et ne conduit plus qufa un seul resultat : si on effectue une seconde mesure immediatement apres, on obtient le meme resultat. La theorie de la decoherence quantique tente dfexpliquer le passage du monde quantique a la physique classique. Un etat quantique ne reste á coherent â que sfil nfest pas perturbe. Une particule vit dans un environnement complexe et perd sa coherence quantique plus ou moins rapidement. En particulier une mesure physique vient deranger la coherence, et la particule change dfetat quantique. Par exemple une molecule (de taille environ 10.7 m) dans un vide de laboratoire conserve sa coherence quantique seulement environ 10.17 seconde. 4.3. Intrication quantique Analogie elementaire. Commencons par des analogies simplistes. On dispose de deux cartes : une rouge et une bleue. On place ces deux cartes dans deux enveloppes. On donne, au hasard, une enveloppe a Alice et une autre a Bob. Ensuite Alice et Bob se separent. Pour Alice la probabilite dfavoir la carte rouge est de 1/2, la carte bleue egalement 1/2. De meme pour Bob. Si Alice ouvre son enveloppe, et par exemple decouvre la carte rouge. Alors bien sur, elle a la carte rouge avec probabilite 1, mais surtout Bob a maintenant la carte bleue avec probabilite 1, meme sfil nfa pas ouvert son enveloppe. Les deux cartes sont liees : on parle dfintrication. La mesure de lfun fait disparaitre les probabilites pour les deux cartes. Alice Bob Un des principes de la theorie de la relativite est qufaucune particule, aucun signal, aucune information ne peut voyager plus vite que la lumiere. Ce principe est-il viole ici ? Des qufAlice decouvre que son enveloppe contient la carte rouge, elle a automatiquement la certitude que Bob a en sa possession la carte bleue. Ce nfest pas un paradoxe car en fait Bob reste ignorant de la couleur de sa carte. Il peut toutefois connaitre la couleur de sa carte sans ouvrir son enveloppe. Il suffit qufAlice lui telephone et lui dise qufelle a eu la carte rouge, ainsi Bob saura qufil a la carte bleue. Mais aucun principe nfest viole car la vitesse de transmission telephonique dfune information ne depasse pas la vitesse de la lumiere. Autre analogie. On continue avec une experience un peu plus physique. On prend deux particules identiques que lfon fait cogner lfune contre lfautre au point O. Lfune part vers Alice et lfautre vers Bob. Elles ont exactement des mouvements opposes : position et vitesse sont egales au signe pres. Si Alice mesure la PHYSIQUE QUANTIQUE 84 position ou la vitesse de sa particule, alors cela determine la position ou la vitesse de la particule Bob. Ainsi Bob peut connaitre la position ou la vitesse de sa particule sans faire lui-meme une mesure. Etat initial Alice Bob Experience reelle. Dans la pratique on sait preparer deux photons qui sont intriques par polarisation. Ensuite on sait envoyer les photons a des centaines de kilometres lfun de lfautre en les maintenant intriques, ce qui permet de realiser le codage super-dense et la teleportation quantique. Credits photos. Wikipedia, Double-slit experiment : . pour les photos de lfexperience en lumiere laser a une et deux fentes, Jordgette, CC BY-SA 3.0, . pour les photos de lfinterference quantique, Dr. Tonomura, CC BY-SA 3.0. Teleportation quantique Chapitre 7 Video ¡ partie 7.1. Protocole de la teleportation Video ¡ partie 7.2. Calculs Video ¡ partie 7.3. Mesure partielle Video ¡ partie 7.4. Les etats de Bell Video ¡ partie 7.5. Mesure partielle dans la base de Bell La teleportation quantique permet de transmettre un qubit dfun point A a un point B. 1. Teleportation 1.1. Principe Alice possede un qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. et souhaite le transmettre a Bob. Cfest possible grace a la teleportation quantique ! Cfest un protocole simple ayant des similarites avec le codage super-dense (voir le chapitre á Decouverte de lfinformatique quantique â). Plus en details : . Alice possede un 1-qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1.. . On a prepare un 2-qubit a lfetat de Bell ƒ³+ = 1 p 2 (|0.0. + |1.1.). . On realise le 3-qubit |ƒÕ. . ƒ³+ . . Alice realise une mesure partielle (sur les deux premiers qubits) et obtient une information classique (une paire de bits parmi 0.0, 0.1, 1.0, 1.1). . Bob reconstitue le qubit |ƒÕ. a partir de cette information que lui transmet Alice et du troisieme qubit du 3-qubit. TELEPORTATION QUANTIQUE 86 3-qubit |ƒÕ. . |ƒ³+. Mesure partielle Alice 1-qubit |ƒÕ. Reconstitution Bob |ƒÕ. 2-qubit |ƒ³+. etat de Bell Information classique 0.0 0.1 1.0 1.1 Remarques : . Le qubit est bien á teleporte â, cfest-a-dire qufil est reconstitue par Bob. Ce nfest physiquement pas la particule originale mais une copie ; seuls deux bits classiques sont envoyes dfAlice a Bob. . Contrairement au codage super-dense dans lequel Bob obtient a la fin un message dfAlice limite a quatre possibilites, avec la teleportation quantique Bob obtient dfAlice un qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. parmi une infinite de possibilites car ƒ¿ et ƒÀ sont des nombres complexes (seulement limites par la contrainte |ƒ¿|2 + |ƒÀ|2 = 1). . La teleportation quantique nfest pas un á copier-coller â. En effet, Alice effectue une mesure sur |ƒÕ. et nfa donc plus ce qubit en sa possession en fin de protocole. . La teleportation quantique nfest pas immediate (et ne depasse pas la vitesse de la lumiere) car il faut qufAlice transmette a Bob une information classique (deux bits classiques). . Le point-cle est lfintrication des deux qubits de lfetat de Bell qui restent lies malgre la distance. 1.2. Protocole de la teleportation Detaillons le protocole de teleportation. H + 2-qubit |ƒ³+. etat de Bell 3-qubit |ƒÓ. = |ƒÕ. . |ƒ³+. H + Action dfune porte I X Z XZ |ƒÕ. |0. |0. 1. Alice a un qubit |ƒÕ. 2. Preparation de lfetat de Bell Alice 3. Mesure partielle Bob 4. Reconstitution |ƒÕ. Bob reconstitue le qubit |ƒÕ. Information classique 0.0 0.1 1.0 1.1 TELEPORTATION QUANTIQUE 87 Voici les etapes : 1. Alice possede un qubit |ƒÕ.. Alice souhaite transmettre a Bob sans se deplacer le 1-qubit |ƒÕ. = ƒ¿|0.+ƒÀ |1.. 2. Preparation de lfetat de Bell. Lfetat de Bell ƒ³+ peut etre prepare par une tierce personne. Nous avons deja vu comment preparer cet etat (voir le chapitre á Decouverte de lfinformatique quantique â) et nous y reviendrons. A partir de lfetat |0.0. on applique le circuit suivant, compose dfune porte de Hadamard, suivie dfune porte CNOT : |0. H . / |0. / ƒ³+ Le 1-qubit |ƒÕ. reuni avec le 2-qubit ƒ³+ realise le 3-qubit |ƒÓ. = |ƒÕ. . ƒ³+ . 1-qubit |ƒÕ. 2-qubit |ƒ³+. ˜ / / / 3-qubit |ƒÓ. = |ƒÕ. . ƒ³+ 3. Mesure partielle dfAlice. Alice realise une mesure partielle (dite mesure partielle dans la base de Bell, voir plus loin). Pour cela elle realise un circuit qui agit uniquement sur les deux premiers qubits de |ƒÓ. : une porte CNOT, suivie dfune porte de Hadamard, suivie de deux mesures (sur les qubits 1 et 2 mais pas sur le numero 3). . H / / Elle obtient deux bits classiques, 0.0, 0.1, 1.0 ou 1.1 selon les mesures. Elle transmet ces deux bits a Bob. 4. Reconstitution du qubit |ƒÕ. par Bob. Bob a en main, dfune part le troisieme qubit de |ƒÓ., que lfon note |ƒÓ3., provenant du circuit et la connaissance des deux bits transmis par Alice. . Cas 0.0, il ne fait rien (autrement dit, il applique lfidentite I), il conserve |ƒÓ3. qui est en fait |ƒÕ.. . Cas 0.1, il applique une porte X a |ƒÓ3. et obtient |ƒÕ.. . Cas 1.0, il applique une porte Z a |ƒÓ3. et obtient |ƒÕ.. . Cas 1.1, il applique une porte X suivie dfune porte Z a |ƒÓ3. et obtient |ƒÕ.. Dans tous les cas Bob reconstitue le qubit |ƒÕ. ! 2. Calculs Nous allons effectuer les calculs qui prouvent que la teleportation quantique fonctionne. Cependant pour comprendre cela en profondeur, il faudra attendre les sections suivantes de ce chapitre. . Le qubit en possession dfAlice a teleporter est un 1-qubit |ƒÕ. = ƒ¿|0.+ƒÀ |1. avec ƒ¿,ƒÀ ¸ C et |ƒ¿|2+|ƒÀ|2 = 1. . Lfetat de Bell est ƒ³+ = 1 p 2 (|0.0. + |1.1.). Cfest un 2-qubit (voir plus loin pour plus de details). . Lfetat total compose de |ƒÕ. et ƒ³+ est le 3-qubit |ƒÓ. = |ƒÕ. . ƒ³+ que lfon va calculer : |ƒÓ. = |ƒÕ. . ƒ³+ = (ƒ¿|0. + ƒÀ |1.) . 1 p 2 |0.0. + 1 p 2 |1.1. . = 1 p 2 (ƒ¿|0.0.0. + ƒ¿|0.1.1. + ƒÀ |1.0.0. + ƒÀ |1.1.1.) TELEPORTATION QUANTIQUE 88 . La suite du circuit est : . H / / / Elle ne concerne en fait que les deux premiers qubits de |ƒÓ. et est effectuee par Alice. . La porte CNOT change lfetat du second qubit en fonction de lfetat du premier (le troisieme reste inchange, par exemple |1.0.0. devient |1.1.0.). Ainsi ƒÓŒ = CNOT |ƒÓ. = 1 p 2 (ƒ¿|0.0.0. + ƒ¿|0.1.1. + ƒÀ |1.1.0. + ƒÀ |1.0.1.) . Ensuite la porte de Hadamard ne change que lfetat du premier qubit. On rappelle que H |0. = 1 p 2 (|0. + |1.) et H |1. = 1 p 2 (|0. . |1.). Ainsi ƒÓŒŒ = H ƒÓŒ = 1 p 2 . ƒ¿ p 2 |(0 + 1).0.0. + ƒ¿ p 2 |(0 + 1).1.1. + ƒÀ p 2 |(0 . 1).1.0. + ƒÀ p 2 |(0 . 1.0.1. . = ƒ¿ 2 |0.0.0. + ƒ¿ 2 |1.0.0. + ƒ¿ 2 |0.1.1. + ƒ¿ 2 |1.1.1. + ƒÀ 2 |0.1.0. . ƒÀ 2 |1.1.0. + ƒÀ 2 |0.0.1. . ƒÀ 2 |1.0.1. . On regroupe les termes qui ont les deux premiers qubits identiques : ƒÓŒŒ = ƒ¿ 2 |0.0.0. + ƒÀ 2 |0.0.1. + ƒÀ 2 |0.1.0. + ƒ¿ 2 |0.1.1. + ƒ¿ 2 |1.0.0. . ƒÀ 2 |1.0.1. . ƒÀ 2 |1.1.0. + ƒ¿ 2 |1.1.1. . On factorise selon les deux premiers qubits : ƒÓŒŒ = 1 2 |0.0. (ƒ¿|0. + ƒÀ |1.) + 1 2 |0.1. (ƒÀ |0. + ƒ¿|1.) + 1 2 |1.0. (ƒ¿|0. . ƒÀ |1.) + 12 |1.1. (.ƒÀ |0. + ƒ¿|1.) . La mesure partielle sur les deux premiers qubits conduit (de facon equiprobable) a 0.0 ou 0.1 ou 1.0 ou 1.1. Mais notons que dans tous les cas le troisieme qubit est presque |ƒÕ. : . Si Alice mesure 0.0 alors le troisieme qubit recu par Bob est deja |ƒÕ. = ƒ¿|0. + ƒÀ |1.. Il le conserve tel quel (transformation identite I). . Si Alice mesure 0.1 alors le troisieme qubit recu par Bob est ƒÀ |0.+ƒ¿|1. et comme il applique ensuite la transformation X (qui echange |0. et |1.) cela lui fournit |ƒÕ. = ƒ¿|0. + ƒÀ |1.. . Si Alice mesure 1.0 alors le troisieme qubit recu par Bob est ƒ¿|0. . ƒÀ |1. et il applique alors la transformation Z (qui change |1. en .|1. et laisse invariant |0.) cela lui fournit |ƒÕ. = ƒ¿|0. + ƒÀ |1.. . Si Alice mesure 1.1 alors le troisieme qubit recu par Bob est .ƒÀ |0. + ƒ¿|1. et il applique la transformation X suivie de Z cela lui fournit encore une fois |ƒÕ. = ƒ¿|0. + ƒÀ |1.. TELEPORTATION QUANTIQUE 89 3. Mesure partielle 3.1. Mesure classique dfun 2-qubit Soit le 2-qubit |ƒÕ. = ƒ¿|0.0. + ƒÀ |0.1. + ƒÁ|1.0. + ƒÂ|1.1. ou ƒ¿,ƒÀ,ƒÁ,ƒÂ sont des nombres complexes tels que |ƒ¿|2 + |ƒÀ|2 + |ƒÁ|2 + |ƒÂ|2 = 1. Le circuit suivant effectue la mesure de |ƒÕ. sur chacun des deux 1-qubits. / / On sait que la mesure donne : . 0.0 avec la probabilite |ƒ¿|2, . 0.1 avec la probabilite |ƒÀ|2, . 1.0 avec la probabilite |ƒÁ|2, . 1.1 avec la probabilite |ƒÂ|2. 3.2. Mesure partielle dfun 2-qubit Mesure partielle. On reprend le meme 2-qubit |ƒÕ. = ƒ¿|0.0. + ƒÀ |0.1. + ƒÁ|1.0. + ƒÂ|1.1. . Le circuit suivant effectue la mesure partielle de |ƒÕ. sur son premier 1-qubit seulement (on conserve le second 1-qubit tel quel). / / Question. Si on mesure 0 sur le premier qubit, que peut-il arriver sur le second qubit ? |ƒÕ. / 0 / ? Exemple. Commencons par etudier un exemple : |ƒÕ. = p 2 2 |0.0. + 1 2 |0.1. + 1 2 |1.1. Si pour le premier qubit on mesure b1 = 1, alors le second qubit est necessairement q2 = |1. (qui se mesurerait en b2 = 1). En effet dans |ƒÕ. on a le terme |1.1. (donc q1 = |1. et q2 = |1.) mais pas de terme |1.0. (qui aurait pu donner q1 = |1. et q2 = |0.). Si par contre pour le premier qubit on mesure b1 = 0, alors comment faire ? On factorise les termes de |ƒÕ. selon le premier qubit : |ƒÕ. = 1 2 |0. E ..p 2 |0. + |1. + 1 2 |1. E |1. On obtient alors que : . si q1 = |0., alors q2 est donne par p 2 |0. + |1. qufil faut normaliser en tant que 1-qubit, cfest-a-dire q2 = p 2 p 3 |0. + 1 p 3 |1.. Une mesure de ce second qubit q2, sachant que le premier qubit est mesure a 0, donnerait 0 avec probabilite 2/3 et 1 avec probabilite 1/3. . si q1 = |1., alors q2 = |1., on retrouve bien que si on mesure 1 pour le premier qubit, on mesure necessairement 1 pour le second. TELEPORTATION QUANTIQUE 90 Cas general. Revenons au cas dfun 2-qubit general : |ƒÕ. = ƒ¿|0.0. + ƒÀ |0.1. + ƒÁ|1.0. + ƒÂ|1.1. . On factorise par le premier qubit : |ƒÕ. = |0. E (ƒ¿|0. + ƒÀ |1.) + |1. E (ƒÁ|0. + ƒÂ|1.). |ƒÕ. / 0 / ? Si on mesure 0 sur le premier qubit, alors le second qubit est le normalise de ƒ¿|0. + ƒÀ |1., cfest donc q2 = ƒ¿ p |ƒ¿|2 + |ƒÀ|2 |0. + ƒÀ p |ƒ¿|2 + |ƒÀ|2 |1. Si on mesurait ce second qubit, on obtiendrait donc 0 avec probabilite |ƒ¿|2 |ƒ¿|2+|ƒÀ|2 et 1 avec la probabilite |ƒÀ|2 |ƒ¿|2+|ƒÀ|2 . |ƒÕ. / 1 / ? Si on mesure 1 sur le premier qubit alors le second qubit est le normalise de ƒÁ|0. + ƒÂ|1., cfest donc q2 = ƒÁ p |ƒÁ|2 + |ƒÂ|2 |0. + ƒÂ p |ƒÁ|2 + |ƒÂ|2 |1. Si on mesurait ce second qubit, on obtiendrait donc 0 avec probabilite |ƒÁ|2 |ƒÁ|2+|ƒÂ|2 et 1 avec la probabilite |ƒÂ|2 |ƒÁ|2+|ƒÂ|2 . 3.3. Mesure partielle dfun 3-qubit Le principe est le meme si on effectue la mesure partielle des deux premiers qubits dfun 3-qubit. / / / Considerons par exemple |ƒÕ. = 1 5 .. 2 |0.0.0. . |0.0.1. + 3 |0.1.0. + |0.1.1. . 2 |1.0.0. + 2 |1.0.1. + p 2 |1.1.1. Factorisons ce 3-qubit selon ses deux premiers qubits : 5 |ƒÕ. = |0.0. .. 2 |0. . |1. + |0.1. .. 3 |0. + |1. + 2 |1.0. .. . |0. + |1. + p 2 |1.1. E |1. . Si la mesure partielle est 0.0 alors le troisieme qubit est le normalise de 2 |0..|1., donc q3 = 1 p 5 (2 |0..|1.). Ainsi la mesure du troisieme qubit, sachant que les deux premiers ont ete mesures en 0.0, donnerait 0 avec probabilite 4/5 et 1 avec probabilite 1/5. . Si la mesure partielle est 0.1 alors le troisieme qubit normalise est q3 = 1 p 10 (3 |0. + |1.). . Si la mesure partielle est 1.0 alors le troisieme qubit normalise est q3 = 1 p 2 (.|0. + |1.). . Si la mesure partielle est 1.1 alors le troisieme qubit est q3 = |1.. Dans ce cas, la mesure du troisieme qubit donnerait toujours 1. TELEPORTATION QUANTIQUE 91 4. Les etats de Bell 4.1. Les quatre etats de Bell Les quatre etats de Bell sont les 2-qubits suivants : ƒ³+ = 1 p 2 (|0.0. + |1.1.) ƒµ+ = 1 p 2 (|0.1. + |1.0.) ƒ³. = 1 p 2 (|0.0. . |1.1.) ƒµ. = 1 p 2 (|0.1. . |1.0.) On rappelle que ƒ³+ est un etat intrique (ce nfest pas le produit de deux 1-qubits). Il en est de meme pour les trois autres etats de Bell. 4.2. Construction A partir du qubit |0.0. on construit lfetat de Bell ƒ³+ a lfaide dfune porte de Hadamard H suivie dfune porte CNOT. |0. H . / |0. / ƒ³+ On construit alors a partir de ƒ³+ , les autres etats de Bell. ƒ³+ X / / ƒµ+ ƒ³+ Z / / ƒ³. ƒ³+ X Z / / ƒµ. 4.3. Base de Bell On connait deja la base canonique des 2-qubits, formee des quatre etats : |0.0. |0.1. |1.0. |1.1. Etre une base signifie que nfimporte quel 2-qubit |ƒÕ. de norme 1 sfecrit de facon unique : |ƒÕ. = ƒ¿|0.0. + ƒÀ |0.1. + ƒÁ|1.0. + ƒÂ|1.1. ou ƒ¿,ƒÀ,ƒÁ,ƒÂ sont des nombres complexes avec |ƒ¿|2 + |ƒÀ|2 + |ƒÁ|2 + |ƒÂ|2 = 1. Proposition 1. Les quatre etats de Bell ƒ³+ , ƒµ+ , ƒ³. , ƒµ. forment aussi une base des 2-qubits, appelee base de Bell. Cela signifie que nfimporte quel 2-qubit |ƒÕ. de norme 1 sfecrit de facon unique : |ƒÕ. = ƒ¿Œ ƒ³+ + ƒÀŒ ƒµ+ + ƒÁŒ ƒ³. + ƒÂŒ ƒµ. avec |ƒ¿Œ|2 + |ƒÀŒ|2 + |ƒÁŒ|2 + |ƒÂŒ|2 = 1. Comment passer dfune base a une autre ? Si |ƒÕ. = ƒ¿Œ ƒ³+ + ƒÀŒ ƒµ+ + ƒÁŒ ƒ³. + ƒÂŒ ƒµ. , alors on substitue TELEPORTATION QUANTIQUE 92 ƒ³+ , ƒµ+ ,. . . a lfaide de lfegalite ƒ³+ = 1 p 2 (|0.0. + |1.1.), . . . Ce qui donne |ƒÕ. = ƒ¿Œ ƒ³+ + ƒÀŒ ƒµ+ + ƒÁŒ ƒ³. + ƒÂŒ ƒµ. = 1 p 2 ƒ¿Œ (|0.0. + |1.1.) + 1 p 2 ƒÀŒ (|0.1. + |1.0.) + 1 p 2 ƒÁŒ (|0.0. . |1.1.) + 1 p 2 ƒÂŒ (|0.1. . |1.0.) = 1 p 2 (ƒ¿Œ + ƒÁŒ) |0.0. + 1 p 2 (ƒÀŒ + ƒÂŒ) |0.1. + 1 p 2 (ƒÀŒ . ƒÂŒ) |1.0. + 1 p 2 (ƒ¿Œ . ƒÁŒ) |1.1. Pour le passage dans lfautre sens, on utilise les identites suivantes : |0.0. = 1 p 2 .. ƒ³+ + ƒ³. |0.1. = 1 p 2 .. ƒµ+ + ƒµ. |1.0. = 1 p 2 .. ƒµ+ . ƒµ. |1.1. = 1 p 2 .. ƒ³+ . ƒ³. Par exemple si |ƒÕ. = 1 p 15 (|0.0. + 2 |0.1. . 3 |1.0. . |1.1.) alors : |ƒÕ. = 1 p 30 .... ƒ³+ + ƒ³. + 2 .. ƒµ+ + ƒµ. . 3 .. ƒµ+ . ƒµ. . ..ƒ³+ . ƒ³. = 1 p 30 .. 0 ƒ³+ . 1 ƒµ+ + 2 ƒ³. + 5 ƒµ. = 1 p 30 .. . ƒµ+ + 2 ƒ³. + 5 ƒµ. Une autre vision du passage dfune base a une autre est celle des circuits : Base canonique H . / / Base de Bell Cfest-a-dire, le circuit ci-dessus envoie |0.0. sur ƒ³+ , |0.1. sfenvoie sur ƒµ+ , |1.0. sfenvoie sur ƒ³. , |1.1. sfenvoie sur ƒµ. . Pour le circuit ci-dessous, cfest exactement lfinverse : ƒ³+ sfenvoie sur |0.0., etc. Base de Bell . H / / Base canonique TELEPORTATION QUANTIQUE 93 5. Mesure partielle dans la base de Bell 5.1. Mesure partielle dans une autre base La teleportation quantique est basee sur une mesure partielle par Alice, qui est en fait une mesure partielle dans la base Bell. Une mesure partielle dfun 3-qubit |ƒÓ. dans la base canonique, correspond a la factorisation : |ƒÓ. = |0.0. E |ƒÕ1. + |0.1. E |ƒÕ2. + |1.0. E |ƒÕ3. + |1.1. E ƒÕ4 . Ainsi, si la mesure partielle sur les deux premiers qubits donne 0.0, alors le troisieme qubit est |ƒÕ1., si la mesure donne 0.1, alors cfest |ƒÕ2.,. . . On peut faire un travail similaire dans la base de Bell, avec la factorisation : |ƒÓ. = ƒ³+ E ƒÕŒ 1 + ƒµ+ E ƒÕŒ 2 + ƒ³. E ƒÕŒ 3 + ƒµ. E ƒÕŒ 4 . Si la mesure partielle dans la base de Bell correspond a ƒ³+ alors le troisieme qubit est ƒÕŒ 1 , etc. Comment se fait la mesure partielle dans la base de Bell ? A lfaide du circuit utilise par Alice ! |ƒÓ. . H / b1 / b2 / ? . Si la mesure donne 0.0 alors les deux premiers qubits de |ƒÓ. forment le 2-qubit ƒ³+ et donc le troisieme qubit de |ƒÓ. est ƒÕŒ 1 . . Si la mesure donne 0.1 alors les deux premiers qubits de |ƒÓ. forment ƒµ+ et donc le troisieme qubit est ƒÕŒ 2 . . etc. 5.2. Calculs de la teleportation quantique On recommence le calcul de la section 2 qui explique la teleportation quantique, mais cette fois en mettant en evidence qufelle est basee sur la mesure partielle de lfetat |ƒÕ. . ƒ³+ dans la base de Bell. On rappelle : . le qubit a teleporter est |ƒÕ. = ƒ¿|0. + ƒÀ |1., . lfetat de Bell est ƒ³+ = 1 p 2 (|0.0. + |1.1.), . le 3-qubit compose de |ƒÕ. et ƒ³+ est |ƒÓ. = |ƒÕ. . ƒ³+ . |ƒÓ. = |ƒÕ. . ƒ³+ = 1 p 2 (ƒ¿|0.0.0. + ƒ¿|0.1.1. + ƒÀ |1.0.0. + ƒÀ |1.1.1.) = 1 p 2 (ƒ¿|0.0. E |0. + ƒ¿|0.1. E |1. + ƒÀ |1.0. E |0. + ƒÀ |1.1. E |1.) = 1 2ƒ¿ .. ƒ³+ + ƒ³. E |0. + 1 2ƒ¿ .. ƒµ+ + ƒµ. E |1. + 12 ƒÀ .. ƒµ+ . ƒµ. E |0. + 1 2ƒÀ .. ƒ³+ . ƒ³. E |1. = 1 2 ƒ³+ (ƒ¿|0. + ƒÀ |1.) + 1 2 ƒµ+ (ƒÀ |0. + ƒ¿|1.) + 1 2 ƒ³. (ƒ¿|0. . ƒÀ |1.) + 1 2 ƒµ. (.ƒÀ |0. + ƒ¿|1.) TELEPORTATION QUANTIQUE 94 Ainsi, si la mesure partielle dans la base de Bell sur les deux premiers qubits identifie ƒ³+ , alors le troisieme qubit est deja |ƒÕ., sinon Bob nfa qufa appliquer les transformations X et Z pour reconstituer |ƒÕ.. DE U X I EME PA RT I E | 1 > | 1 > A L G O R I T HME S Q UA N T I Q U E S 95 Un premier algorithme quantique Chapitre 8 Video ¡ partie 8. Un premier algorithme quantique La force de lfinformatique quantique est de pouvoir faire des calculs avec des 0 et des 1 en meme temps. Au lieu de deux calculs classiques sur le bit 0, puis sur le bit 1, lfordinateur quantique effectue un seul calcul sur un 1-qubit. Encore plus fort : avec un n-qubit, un seul calcul quantique remplace 2n calculs classiques. La realite est cependant plus compliquee, car tous les algorithmes de lfinformatique classique ne vont pas miraculeusement etre plus rapides grace a lfinformatique quantique. Nous allons voir dans cette partie des problemes que lfinformatique quantique resout beaucoup mieux que les algorithmes classiques. Le but final est de comprendre lfalgorithme quantique de Shor qui permet la factorisation rapide des entiers. Nous commencons par etudier une version simple de lfalgorithme de Deutsch.Jozsa afin de nous familiariser avec les objets, les techniques et les types dfalgorithmes que nous decouvrirons dans cette seconde partie du livre. 1. Objectifs 1.1. Motivation Lfalgorithme de Deutsch.Jozsa nfest pas tres utile ! Il permet de decider si une fonction est constante ou equilibree. Cependant cet algorithme est tres interessant car il prouve que lfinformatique quantique permet de faire des calculs plus rapidement qufavec un ordinateur classique. Lfalgorithme complet (avec n variables) sera etudie plus loin dans le chapitre á Algorithme de Deutsch. Jozsa â. Dans ce chapitre dfintroduction, on se contente de presenter lfalgorithme pour les fonctions les plus simples : celles ayant une, puis deux variables. 1.2. Fonction a etudier On commence par le cas des fonctions dfune seule variable. Lfensemble de depart et dfarrivee est {0,1}. Considerons une telle fonction : f : {0, 1} .¨{0, 1} Il y a en fait 4 fonctions possibles que lfon separe en deux categories : Fonctions constantes f0 0 7¨ 0 1 7¨ 0 f1 0 7¨ 1 1 7¨ 1 Fonctions equilibrees f2 0 7¨ 0 1 7¨ 1 f3 0 7¨ 1 1 7¨ 0 UN PREMIER ALGORITHME QUANTIQUE 97 Probleme. On nous donne une fonction f : {0, 1} .¨{0, 1}, comment determiner si elle est constante ou equilibree ? 1.3. Solution classique La solution classique a ce probleme est simple : . calculer f (0) ; . calculer f (1) ; . conclure : si f (0) = f (1) la fonction est constante, sinon elle est equilibree. Cet algorithme est tres simple, mais il demande deux evaluations de la fonction f (le calcul de f (0) puis celui de f (1)) et on ne peut pas faire mieux. Si on definit la complexite de cet algorithme par le nombre dfevaluations de f , alors sa complexite vaut 2. Nous allons voir un algorithme quantique dont la complexite est 1. Cela ne vous parait peut-etre pas formidablement mieux, mais dans le cas dfune fonction de n variables alors la complexite classique est dfordre 2n alors que lfalgorithme quantique reste de complexite 1. Lfamelioration est donc exponentielle ! 2. Circuit quantique 2.1. Circuit Lfalgorithme quantique est fourni par le circuit quantique ci-dessous qui repond au probleme a lfaide dfune seule evaluation de f . |0. H Of H / sortie |1. H Le circuit est initialisee, puis utilise des portes de Hadamard H mais aussi un sous-circuit Of , appele á oracle â que nous detaillerons apres. Algorithme. . Entree. Une fonction f : {0, 1}¨{0, 1}. . Sortie. La sortie est donnee par la mesure sur le premier qubit du circuit. Si la mesure vaut 0, la fonction est constante ; si la mesure vaut 1, la fonction est equilibree. 2.2. Oracles Un oracle est un circuit quantique associe a une fonction f . Voici ce que realise un oracle pour une fonction f : {0, 1}¨{0, 1}. x Of x / y y.f (x) / ou x et y sont des bits classiques 0 ou 1. Lforacle nous donne lfaction de la porte Of sur les qubits de base |0. et |1.. |x. Of / |x. | y. / | y . f (x). Detaillons ce qui se passe sur chaque ligne de lforacle. Premiere ligne. En entree lforacle recoit le bit x et en sortie il renvoie cette meme valeur x. UN PREMIER ALGORITHME QUANTIQUE 98 Seconde ligne. En entree lforacle recoit le bit y mais la sortie depend des valeurs de x, y et de la fonction f . Cette sortie est le bit 0 ou 1, donne par la formule : y . f (x) Addition binaire. Lfaddition á . â est lfaddition binaire sur les bits 0 et 1. Elle est equivalente au á ou exclusif â : 0 . 0 = 0 0 . 1 = 1 1 . 0 = 1 1 . 1 = 0 On rappelle que les valeurs x, y et f (x) valent 0 ou 1. Ainsi la sortie y . f (x) vaut aussi 0 ou 1. Exemple. Prenons la fonction f definie par f (0) = 1 et f (1) = 0. . Pour x = 0, y = 0 alors f (0) = 1 donc y . f (x) = 0 . 1 = 1. . Pour x = 0, y = 1 alors f (0) = 1 donc y . f (x) = 1 . 1 = 0. . Pour x = 1, y = 0 alors f (1) = 0 donc y . f (x) = 0 . 0 = 0. . Pour x = 1, y = 1 alors f (1) = 0 donc y . f (x) = 1 . 0 = 1. 0 x Of x / 0 0 y y.f (x) / 1 0 x Of x / 0 1 y y.f (x) / 0 1 x Of x / 1 0 y y.f (x) / 0 1 x Of x / 1 1 y y.f (x) / 1 Fonction de deux variables. Dans notre situation, lforacle fournit une fonction de deux variables F : {0, 1}2 ¨{0, 1}2 definie par : F(x, y) = .. x, y . f (x) . Exemple. Reprenons la fonction f definie par f (0) = 1 et f (1) = 0. Alors (0, 0) F 7.¨(0, 1) (0, 1) F 7.¨(0, 0) (1, 0) F 7.¨(1, 0) (1, 1) F 7.¨(1, 1) Action sur les qubits. Lforacle associe a f definit alors une fonction sur les 2-qubits. Notons .F : C4 ¨ C4 definie sur la base canonique (|0.0. , |0.1. , |1.0. , |1.1.) par la fonction F, cfest a dire .F(|x. y.) = |F(x, y)., puis etendue par linearite a C4. Si |ƒÕ. = ƒ¿|0.0. + ƒÀ |0.1. + ƒÁ|1.0. + ƒÂ|1.1. . Alors : .F .. |ƒÕ. = ƒ¿.F(|0.0.) + ƒÀ .F(|0.1.) + ƒÁ.F(|1.0.) + ƒÂ.F(|1.1.). Exemple. Toujours sur le meme exemple, cela donne : |0.0. .F 7.¨|0.1. |0.1. .F 7.¨|0.0. |1.0. .F 7.¨|1.0. |1.1. .F 7.¨|1.1. Et ainsi : .F .. |ƒÕ. = ƒÀ |0.0. + ƒ¿|0.1. + ƒÁ|1.0. + ƒÂ|1.1. . UN PREMIER ALGORITHME QUANTIQUE 99 2.3. Preuve |0. H Of H / sortie |1. H |ƒÕ0. |ƒÕ1. |ƒÕ2. |ƒÕ3. Nous detaillons les calculs en suivant lfevolution des qubits au fil du circuit. Qubit initial |ƒÕ0.. |ƒÕ0. = |0. . |1. = |0.1. Qubit |ƒÕ1. obtenu apres transformation de Hadamard. On applique une porte de Hadamard sur la premiere ligne : H |0. = 1 p 2 (|0.+|1.), et une autre sur la seconde ligne H |1. = 1 p 2 (|0. . |1.). Ainsi : |ƒÕ1. = 1 2(|0. + |1.)(|0. . |1.) = 1 2 .. |0.0. . |0.1. + |1.0. . |1.1. . Pour simplifier lfecriture des calculs dans la suite, on va á oublier â le coefficient 12 et ecrire 0.0 au lieu de |0.0., 0.1 au lieu de |0.1.,. . . Ainsi on note : |ƒÕ1. ß 0.0 . 0.1 + 1.0 . 1.1 Qubit |ƒÕ2. obtenu apres lforacle. |ƒÕ2. ß 0.(0 . f (0)) . 0.(1 . f (0)) + 1.(0 . f (1)) . 1.(1 . f (1)) En effet, lforacle envoie x sur x pour la premiere ligne et y sur y . f (x) pour la seconde. Attention á . â est lfaddition binaire et doit etre effectuee en priorite. Il ne faut pas la confondre avec lfaddition de qubits, notee á + â : x.( y . f (x)) nfa rien a voir avec x.( y + f (x)). On regroupe les termes commencant par le meme qubit : |ƒÕ2. ß 0.(0 . f (0)) . 0.(1 . f (0)) | {z } A + |1.(0 . f (1)){.z1.(1 . f (1)}) B . Calculons le terme A en fonction de f (0) : A= 0.0 . 0.1 si f (0) = 0 .(0.0 . 0.1) si f (0) = 1 donc A= (.1)f (0)(0.0 . 0.1). On rappelle que (.1)k est juste une facon dfobtenir +1 ou .1 selon la parite de k : (.1)k = +1 si k = 0 (ou si k est pair) .1 si k = 1 (ou si k est impair) On calcule de facon similaire B. Ainsi : |ƒÕ2. ß (.1)f (0)(0.0 . 0.1) + (.1)f (1)(1.0 . 1.1). Qubit |ƒÕ3. obtenu apres une porte de Hadamard. Apres lforacle on applique une porte de Hadamard sur la premiere ligne. Ainsi : UN PREMIER ALGORITHME QUANTIQUE 100 |ƒÕ3. ß (.1)f (0)((0 + 1).0 . (0 + 1).1) + (.1)f (1)((0 . 1).0 . (0 . 1).1) ß (.1)f (0)(0.0 . 0.1 + 1.0 . 1.1) + (.1)f (1)(0.0 . 0.1 . 1.0 + 1.1) ß .. (.1)f (0) + (.1)f (1) 0.0 + .. . (.1)f (0) . (.1)f (1) 0.1 + .. (.1)f (0) . (.1)f (1) 1.0 + .. . (.1)f (0) + (.1)f (1) 1.1 Le coefficient que lfon a omis devant tous les qubits est 1 2 p 2 et correspond aux trois portes de Hadamard (chacune apportant un facteur 1 p 2 ) : |ƒÕ3. = 1 2 p 2 .. (.1)f (0) + (.1)f (1) |0.0. + E E E Discutons maintenant selon la categorie de f . Si f est constante. Alors f (0) = f (1), donc (.1)f (0) + (.1)f (1) = +2 ou . 2 et (.1)f (0) . (.1)f (1) = 0. Ainsi : |ƒÕ3. = } 1 p 2 .. |0.0. . |0.1. donc la mesure sur le premier qubit donne 0 dans tous les cas, car les seuls 2-qubits presents sont |0.0. et |0.1.. Si f est equilibree. Alors f (0) .= f (1), donc (.1)f (0) + (.1)f (1) = 0 et (.1)f (0) . (.1)f (1) = }2 alors : |ƒÕ3. = } 1 p 2 .. |1.0. . |1.1. . La mesure sur le premier qubit donne donc 1 dans tous les cas (car les 2-qubits presents sont |1.0. et |1.1.). Conclusion. Si f est constante la mesure du premier qubit donne 0, si f est equilibree cette mesure donne 1. Ainsi le circuit repond bien au probleme pose et lforacle associe a f nfa ete appele qufune seule fois. 2.4. Realisation des oracles Cfest a celui qui utilise lfalgorithme de fournir lforacle, sorte de boite noire, utilisee par lfalgorithme. Voyons quel circuit quantique permet de realiser lforacle Of pour chacune des quatre possibilites de la fonction f . Notons au prealable que x sfenvoie sur x, donc pour la premiere ligne quantique il nfy a rien a faire. Fonction constante egale a 0 f0 0 7¨ 0 1 7¨ 0 Comme y . f (x) = y . 0 = y alors lforacle envoie y sur y. Il nfy a rien a faire comme circuit quantique. x / x y / y Fonction constante egale a 1 f1 0 7¨ 1 1 7¨ 1 UN PREMIER ALGORITHME QUANTIQUE 101 Comme y . f (x) = y . 1 = NOT( y) alors lforacle envoie y sur NOT( y), que lfon peut realiser par une porte X. x / x y X / y Fonction equilibree identite f2 0 7¨ 0 1 7¨ 1 Alors f2(x) = x et y . f (x) = y . x, cfest donc y si x = 0 et NOT( y) si x = 1. Cfest exactement lfaction dfune porte CNOT : x . / x y / y . x Fonction equilibree f3 f3 0 7¨ 1 1 7¨ 0 A vous de chercher en exercice un circuit qui realise cet oracle en vous aidant des deux circuits precedents. 3. Cas de deux variables 3.1. Probleme On considere maintenant une fonction de deux variables : f : {0, 1}2 .¨ {0, 1} (x, y) 7.¨ f (x, y) On ne sfinteresse qufa deux categories de fonctions. Fonctions constantes. Il y a en a deux : . f est constante egale a 0 : f (x, y) = 0 Íx, y ¸ {0, 1}, . f est constante egale a 1 : f (x, y) = 1 Íx, y ¸ {0, 1}. Fonctions equilibrees. Pour ces fonctions, il y a autant de valeurs (x, y) avec f (x, y) = 0 que de valeurs avec f (x, y) = 1. Il y a 6 fonctions possibles. Voici un exemple : (0, 0) f 7.¨1 (0, 1) f 7.¨0 (1, 0) f 7.¨0 (1, 1) f 7.¨1 Attention ! Il existe des fonctions qui ne sont ni constantes, ni equilibrees. Par exemple, la fonction qui vaut 0 partout, sauf en (1, 1) ( f (1, 1) = 1). Probleme. On nous donne une fonction f : {0,1}2 .¨{0,1} qui a la propriete dfetre soit constante, soit equilibree, mais on ne nous dit pas a quelle categorie elle appartient. Comment determiner cette categorie constante ou equilibree ? La solution classique est de calculer plusieurs valeurs. Parfois calculer deux valeurs suffit, par exemple si f (0, 0) .= f (0, 1) alors la fonction nfest pas constante, elle est donc equilibree. Mais si f (0, 0) = f (0, 1) alors il faut calculer une troisieme valeur f (1, 0) pour pouvoir conclure. La complexite de lfalgorithme classique est de 3 evaluations (on retient toujours le pire cas). UN PREMIER ALGORITHME QUANTIQUE 102 3.2. Circuit solution |0. H Of H / |0. H H / |1. H sortie Encore une fois, le circuit fait intervenir des portes de Hadamard et un oracle Of qui depend de la fonction f dont le circuit quantique est fourni par celui qui pose le probleme. Pour nous, cfest une boite noire : x Of x / y y / z z.f (x, y)// ou x, y, z sont des bits classiques 0 ou 1. La sortie de la troisieme ligne est z . f (x, y). Noter que la mesure se fait sur les deux premieres lignes quantiques seulement. La reponse au probleme est donnee par cette mesure : . si la mesure est 0.0 alors la fonction est constante, . sinon la fonction est equilibree. On rappelle que la fonction f doit par hypothese etre dans lfune des deux categories ci-dessus. Le circuit quantique nfeffectue qufune seule evaluation de f (plus precisement qufun seul appel au circuit de lforacle) et donc la solution proposee est de complexite 1. Cette evaluation correspond a f € 1 p 2 (|0. + |1.), 1 p 2 (|0. + |1.) . , qui est une facon dfevaluer f sur les quatre qubits de base |0.0., |0.1., |1.0. et |1.1. simultanement. 3.3. Calcul et preuve Les calculs et la preuve peuvent etre omis lors dfune premiere lecture, dfune part ils sont similaires a ceux pour une variable (mais un peu plus compliques) et dfautre part les calculs seront faits dans le cas general dfune fonction de n variables dans le chapitre á Algorithme de Deutsch.Jozsa â. |0. H Of H / |0. H H / |1. H |ƒÕ0. |ƒÕ1. |ƒÕ2. |ƒÕ3. Qubit initial |ƒÕ0.. |ƒÕ0. = |0. . |0. . |1. = |0.0.1. Qubit |ƒÕ1.. Pour simplifier lfecriture des calculs on á oublie â le coefficient constant commun a tous les UN PREMIER ALGORITHME QUANTIQUE 103 qubits. |ƒÕ1. ß (|0. + |1.)(|0. + |1.)(|0. . |1.) ß |0.0.0. . |0.0.1. + |0.1.0. . |0.1.1. + |1.0.0. . |1.0.1. + |1.1.0. . |1.1.1. ß X x, y¸{0,1} |x. y.0. . |x. y.1. Qubit |ƒÕ2.. On applique lforacle et on va remarquer que |x. y.(0 . f (x, y)). . |x. y.(1 . f (x, y)). = (.1)f (x, y)(|x. y.0. . |x. y.1.). Ainsi |ƒÕ2. ß X x, y¸{0,1} |x. y.(0 . f (x, y)). . |x. y.(1 . f (x, y)). ß X x, y¸{0,1} (.1)f (x, y)(|x. y.0. . |x. y.1.) ß X x, y¸{0,1} (.1)f (x, y) |x. y. |0 . 1. Qubit |ƒÕ3.. |ƒÕ3. ß X x, y¸{0,1} (.1)f (x, y) |H(x).H( y). |0 . 1. ß (.1)f (0,0) |0 + 1. |0 + 1. |0 . 1. + (.1)f (0,1) |0 + 1. |0 . 1. |0 . 1. + (.1)f (1,0) |0 . 1. |0 + 1. |0 . 1. + (.1)f (1,1) |0 . 1. |0 . 1. |0 . 1. Le troisieme qubit est toujours |0 . 1.. On ne va pas expliciter tous les termes mais seulement le coefficient devant le qubit |0.0.(0 . 1).. On en profite pour remettre les coefficients oublies : |ƒÕ3. = 1 4 .. (.1)f (0,0) + (.1)f (0,1) + (.1)f (1,0) + (.1)f (1,1) | {z } ƒ¿ |0.0. 1 p 2 (0 . 1) ÷ + E E E Conclusion. Si f est constante alors ƒ¿ = }1 (ce qui fait qufil nfy a pas dfautres qubits) et |ƒÕ3. = }|0.0. 1 p 2 (0 . 1) ÷ . Ainsi toute mesure sur les deux premiers qubits donne 0.0. Si f est equilibree alors il y a autant de valeurs en lesquelles f vaut 0 que de valeurs en lesquelles f vaut 1, donc ƒ¿ = 1 4 .. (.1)f (0,0) + (.1)f (0,1) + (.1)f (1,0) + (.1)f (1,1) = 0. Ainsi |ƒÕ3. nfa pas de qubits commencant par 0.0. Donc aucune mesure sur les deux premiers qubits ne peut donner 0.0. Nous avons donc bien resolu notre probleme : si la mesure des deux premiers qubits donne 0.0 alors f est constante, sinon f est equilibree. Portes quantiques Chapitre 9 Video ¡ partie 9.1. Portes quantiques - Theorie Video ¡ partie 9.2. Portes quantiques - Oracle Nous approfondissons nos connaissances theoriques des portes quantiques en etudiant ce qufelles peuvent realiser (ou pas !). 1. La porte de Toffoli est universelle 1.1. Quelques portes quantiques Nous presentons de nouvelles portes et leur lien avec des portes deja rencontrees. Porte CNOT. Nous connaissons bien la porte CNOT. . On rappelle que la porte CNOT est une porte NOT conditionnelle, si sur la premiere ligne on a le qubit |0. alors la seconde ligne est inchangee ; par contre si le qubit de la premiere ligne est |1. alors la seconde echange le qubit |0. en |1. et inversement. Si x, y ont pour valeurs 0 ou 1, alors lfaction sur la seconde ligne est en fait y . x ou á . â est lfaddition binaire (et ne doit pas etre confondue avec lfaddition de qubits). |x. . |x. | y. | y . x. |0.0. CNOT 7.......¨|0.0. |0.1. CNOT 7.......¨|0.1. |1.0. CNOT 7.......¨|1.1. |1.1. CNOT 7.......¨|1.0. Voici la matrice de la transformation de CNOT (dans la base (|0.0. , |0.1. , |1.0. , |1.1.)) : M = 0 BB@ 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 CCA Porte SWAP. La porte SWAP echange deux qubits. Voici sa notation : ou ~ ~ Comme on lfa dit, cette porte echange deux qubits : |ƒÓ. / |ƒÕ. |ƒÕ. / |ƒÓ. PORTES QUANTIQUES 105 Exercice. Calculer lfimage des 2-qubits de la base canonique (|0.0. , |0.1. , |1.0. , |1.1.) et en deduire la matrice 4 ~ 4 de la porte SWAP. Exercice. Montrer qufune porte SWAP est equivalente a un circuit realise a partir de trois portes CNOT. = . . . Indication. Il suffit de le verifier sur les 2-qubits de la base canonique. Exercice. Montrer que le circuit suivant, construit a partir de trois portes SWAP correspond a une porte SWAP3 qui renverse lfordre de 3 qubits, cfest-a-dire (|ƒÕ1. , |ƒÕ2. , |ƒÕ3.) 7¨ (|ƒÕ3. , |ƒÕ2. , |ƒÕ1.). |ƒÕ1. / |ƒÕ3. |ƒÕ2. / |ƒÕ2. |ƒÕ3. / |ƒÕ1. Il existe un circuit qui, a partir de portes SWAP, realise une porte SWAPn renversant lfordre de n qubits, cfest-a-dire (|ƒÕ1. , |ƒÕ2. , . . . , |ƒÕn.) 7¨ (|ƒÕn. , . . . , |ƒÕ2. , |ƒÕ1.). Construire un tel circuit pour n = 4. Porte FANOUT. La porte FANOUT transforme un 1-qubit en un 2-qubit. Dans un circuit quantique, cela permet dfaugmenter le nombre de lignes quantiques. / |ƒÓ. = ƒ¿|0. + ƒÀ |1. / |ƒÕ. = ƒ¿|0.0. + ƒÀ |1.1. Piege. La porte FANOUT envoie |0. sur |0.0. et |1. sur |1.1.. / |0. |0. / |0. / |1. |1. / |1. Cependant, il faut bien comprendre la porte FANOUT ne realise pas un copier-coller du 1-qubit dfentree. Ceci nfest pas vrai : / |ƒÓ. |ƒÓ. / |ƒÓ. Dfailleurs, une telle porte ne peut pas exister ! Ce sera prouve par le theoreme de non-clonage quantique en fin de chapitre. Exercice. Montrer qufune porte FANOUT peut etre realisee a partir dfune porte CNOT initialisee par |0. sur sa seconde ligne. / |ƒÓ. / |ƒÕ. = |ƒÓ. . / |0. / |ƒÕ. PORTES QUANTIQUES 106 Porte de Toffoli (CCNOT). La porte de Toffoli est similaire a une porte CNOT mais avec trois lignes. Si les deux premiers qubits sont |1., alors on applique une porte X (cfest-a-dire NOT) au troisieme qubit. . . Voici lfaction dfune porte de Toffoli lorsque x, y, z sont des bits 0 ou 1 (noter que x y = 1 si et seulement si x = 1 et y = 1 et alors 1 . z = NOT(z)). x . / x y . y z z . (x y) M = 0 BBBBBBBBBBB@ 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 CCCCCCCCCCCA Exercice. Montrer qufune porte Toffoli permet de realiser une porte CNOT. Il suffit dfimposer le qubit |1. en entree de la seconde ligne. |ƒÓ. . / |ƒÓ. |1. . |ƒÕ. |ƒÕŒ/ . = |ƒÓ. . / |ƒÓ. |ƒÕ. |ƒÕŒ/ . Exercice (Difficile). On peut realiser une porte de Toffoli a partir de plusieurs portes CNOT et de portes elementaires S, H, T et son adjointe T.. . . = . . . . T . . T. T. S H T. T T. T H Essayer de prouver cette construction, soit par un calcul theorique, soit experimentalement a lfaide dfun ordinateur (voir le chapitre á Utiliser un ordinateur quantique (avec Qiskit) â). On rappelle qufune porte H de Hadamard est definie par la matrice : H = 1 p 2 1 1 1 .1 . La porte S est appele á porte phase â et est definie par la matrice : S = 1 0 0 i . La porte ƒÎ8 est definie par la matrice unitaire : T = 1 0 0 eiƒÎ4 PORTES QUANTIQUES 107 et donc T. = 1 0 0 e.iƒÎ4 . 1.2. Theoreme dfuniversalite Theoreme 1. La porte de Toffoli est universelle : nfimporte quelle fonction logique f : {0, 1}n ¨{0, 1} peut etre realisee par un circuit quantique ne comportant que des portes de Toffoli. Remarque. La realisation pratique requiert lfajout de lignes auxiliaires. Preuve. . On sait que nfimporte quelle fonction logique f : {0,1}n ¨ {0,1} peut etre realisee par un circuit classique ne comportant que des portes NAND (voir le chapitre á Informatique classique â). NAND x y NOT(x AND y) . On realise facilement lfequivalent dfune porte NAND a lfaide dfune porte de Toffoli en lfinitialisant avec un 1 sur la troisieme ligne. Lfentree correspond aux deux premieres lignes et la sortie a la troisieme ligne. x . y . 1 / 1 . (x y) = NOT(x AND y) Pour verifier que cela fonctionne, il faut remarquer que pour des bits x, y valant 0 ou 1 alors x y est la meme chose que x AND y, et donc 1 . (x y) = NOT(x AND y). . Conclusion : on realise la fonction f : {0, 1}n ¨{0, 1} en substituant chaque porte NAND par une porte de Toffoli, avec un 1 sur sa troisieme ligne. 2. Oracle 2.1. Definition Le groupe Z/nZ. Le groupe (Z/nZ,+) correspond a lfensemble des entiers modulo n. On peut representer ce groupe par lfensemble {0, 1, . . . , n . 1}, avec la convention que n ß 0, n + 1 ß 1,. . . La loi de ce groupe est lfaddition. On a deja rencontre le groupe Z/2Z (cas n = 2) qui est lfensemble {0,1} muni de lfaddition binaire notee á . â (en preference a á + â) qui verifie 1 . 1 = 0, ce qui est coherent car 1 + 1 = 2 ß 0 modulo 2. Oracle. Nous allons associer a une fonction f un oracle. Lforacle dfune fonction f est un circuit quantique dont on explicite seulement lfentree et la sortie (qui depend de f ). Cfest une sorte de boite noire, car nous nfavons pas besoin de connaitre les details du circuit qui realise un oracle. Cas f : Z/2Z¨Z/2Z. Cfest le cas deja rencontre dans le chapitre á Un premier algorithme quantique â, la fonction etait alors notee f : {0, 1}¨{0, 1}. Voici la transformation effectuee par un oracle, lorsque les entrees sont des bits classiques 0 ou 1 : x Of x / y y.f (x) / PORTES QUANTIQUES 108 Il y a deux lignes pour lfentree de lforacle et deux lignes pour la sortie. La premiere sortie laisse la premiere entree inchangee. Pour la seconde sortie : si x et y sont 0 ou 1 alors la seconde sortie est y . f (x) ; cfest donc y si f (x) = 0 et NON( y) si f (x) = 1. Ainsi lforacle associe a f fournit une fonction F : Z/2Z ~ Z/2Z .¨ Z/2Z ~ Z/2Z (x, y) 7.¨ .. x, y . f (x) Nous verrons plus tard comment cela definit naturellement une transformation quantique sur les 2-qubits. Pour lfinstant nous generalisons lforacle au cas dfautres fonctions. Cas f : Z/nZ¨Z/2Z. Cette situation correspondra a lfalgorithme de Grover. On fixe n . 2 et on considere une fonction quelconque f : Z/nZ¨Z/2Z que lfon peut aussi voir comme une fonction f : {0, 1, . . . , n . 1}¨{0, 1}. La transformation de lforacle, pour x ¸ Z/nZ et y ¸ Z/2Z, renvoie une nouvelle fois x (element de Z/nZ) et y . f (x) (element de Z/2Z). x Of x / y y.f (x) / On obtient ainsi : F : Z/nZ ~ Z/2Z .¨ Z/nZ ~ Z/2Z (x, y) 7.¨ .. x, y . f (x) Exemple. Fixons . ¸ {0, . . . , n . 1} un entier et f : Z/nZ ¨ Z/2Z tel que f (x) = 0 pour tout x, sauf f (.) = 1. Alors : . pour x .= . et y = 0 on a y . f (x) = 0, . pour x .= . et y = 1 on a y . f (x) = 1, . pour x = . et y = 0 on a y . f (x) = 1, . pour x = . et y = 1 on a y . f (x) = 1 . 1 = 0. Cas f : (Z/2Z)k ¨Z/2Z. Cette situation correspondra a lfalgorithme de Deutsch.Jozsa. On fixe k . 1 et on considere une fonction quelconque f : .. Z/2Z k ¨Z/2Z que lfon peut aussi voir comme une fonction f : {0, 1}k ¨{0, 1}. La transformation de lforacle, pour x = (x1, . . . , xk) ¸ (Z/2Z)k et y ¸ Z/2Z, renvoie x = (x1, . . . , xk) (element de (Z/2Z)k) et y . f (x) (element de Z/2Z). x1 Of x1 / x2 x2 / ... ... / xk xk / y y.f (x1,...,xk) / On obtient ainsi : F : (Z/2Z)k ~ Z/2Z .¨ (Z/2Z)k ~ Z/2Z (x1, . . . , xk, y) 7.¨ .. x1, . . . , xk, y . f (x1, . . . , xk) PORTES QUANTIQUES 109 Exemple. On considere f : .. Z/2Z 2 ¨Z/2Z definie par f (x, y) = x XOR y. Voici quelques exemples dfaction de lforacle : 0 x Of x / 0 1 y y / 1 1 z z.f (x, y) / 1.f (0,1)=1.1=0 1 x Of x / 1 1 y y / 1 1 z z.f (x, y) / 1.f (1,1)=1.0=1 Autrement dit F(0, 1, 1) = (0, 1, 0) et F(1, 1, 1) = (1, 1, 1). On pourrait generaliser lforacle au cas dfune fonction f : E ¨ EŒ pour lequel lforacle associe serait une fonction F : E ~ EŒ ¨ E ~ EŒ defini par F(x, y) = (x, y . f (x)) ou á . â est une addition dans EŒ. 2.2. Lforacle est bijectif Quel peut etre lfinteret dfun oracle ? Plus precisement quel est lfavantage de la fonction F par rapport a f ? Considerons une fonction f : E ¨Z/2Z quelconque. En particulier elle nfest pas supposee bijective, par contre la fonction F associee a lforacle va lfetre. Lemme 1. Soit f : E ¨ Z/2Z une fonction quelconque, alors la fonction F : E ~ Z/2Z ¨ E ~ Z/2Z definie par F(x, y) = (x, y . f (x)) est bijective. Demonstration. Il suffit de trouver la bijection reciproque de F : nous allons montrer que cette reciproque est F elle-meme. Partons de F(x, y) = (x, y . f (x)) donc F .. F(x, y) = F(x, y . f (x)) = (x, y . f (x) . f (x)) = (x, y). En effet, pour a ¸ Z/2Z on a a . a = 2a = 0 (car 0 . 0 = 0 et 1 . 1 = 0), donc x . a . a = x. Ainsi F est bijective et de plus F.1 = F (autrement dit F . F = id). Exemple. Reprenons f : .. Z/2Z 2 ¨Z/2Z definie par f (x, y) = x XOR y. Alors F est bien bijective : (0, 0, 0) F 7.¨ (0, 0, 0) (0, 1, 0) F 7.¨ (0, 1, 1) (1, 0, 0) F 7.¨ (1, 0, 1) (1, 1, 0) F 7.¨ (1, 1, 0) (0, 0, 1) F 7.¨ (0, 0, 1) (0, 1, 1) F 7.¨ (0, 1, 0) (1, 0, 1) F 7.¨ (1, 0, 0) (1, 1, 1) F 7.¨ (1, 1, 1) Exemple. Soit f : Z/nZ ¨ Z/2Z telle que f (x) = 0 pour tout x, sauf f (.) = 1, pour un entier . ¸ {0, . . . , n . 1} fixe. . Pour x .= ., f (x) = 0 donc F(x, y) = (x, y . f (x)) = (x, y). . pour x = ., f (x) = 1 donc F(x, y) = (x, y . 1) = (x,NON( y)). Lfapplication F est bijective. PORTES QUANTIQUES 110 2.3. Transformation quantique Considerons le cas dfune fonction f : (Z/2Z)k ¨ Z/2Z. Lforacle fournit une fonction F : (Z/2Z)k+1 ¨ (Z/2Z)k+1 en ayant considere (Z/2Z)k ~ Z/2Z = (Z/2Z)k+1. Voyons la transformation quantique associee sur les (k + 1)-qubits. Les (k + 1)-qubits sont engendres par la base canonique formee des 2k+1 qubits de base : |0.0 . . . 0. | {z } k+1 bits |0.0 . . . 1. . . . |1.1 . . . 1. . La fonction F (definie sur des (k + 1)-bits) sfetend naturellement en une fonction .F sur les vecteurs de la base des (k + 1)-qubits : |e0. = |0.0 . . . 0. .F 7.¨ |F(0, 0, . . . , 0). = | f0. |e1. = |0.0 . . . 1. .F 7.¨ |F(0, 0, . . . , 1). = | f1. E E E |e2k+1.1. = |1.1 . . . 1. .F 7.¨ |F(1, 1, . . . , 1). = | f2k+1.1. Maintenant que .F est definie sur les vecteurs de la base par la relation .F(|ei.) = |F(ei). = | fi., elle sfetend par linearite a tous les (k + 1)-qubits. Ainsi on obtient .F : C 2k+1 .¨C 2k+1 et pour un (k + 1)-qubit |ƒÕ. = 2kX+1.1 i=0 ƒ¿i |ei. , avec ƒ¿i ¸ C, on obtient le (k + 1)-qubit : .F(|ƒÕ.) = 2kX+1.1 i=0 ƒ¿i | fi. . Comme F est bijective alors .F envoie lfensemble des vecteurs de la base canonique sur ces memes vecteurs de la base canonique (autrement dit .F permute les vecteurs de la base). Ainsi .F est une transformation unitaire (voir la section 3). Exemple. Reprenons lfexemple de la fonction f : .. Z/2Z 2 ¨ Z/2Z definie par f (x, y) = x XOR y. Nous avons deja calcule F, ce qui donne les valeurs de .F sur les 3-qubits de base. Par exemple .F |0.1.0. = |0.1.1., .F |0.1.1. = |0.1.0.,. . . Pour un 3-qubit quelconque : |ƒÕ. = ƒ¿0 |0.0.0. + ƒ¿1 |0.0.1. + ƒ¿2 |0.1.0. + ƒ¿3 |0.1.1. + ƒ¿4 |1.0.0. + ƒ¿5 |1.0.1. + ƒ¿6 |1.1.0. + ƒ¿7 |1.1.1. alors .F |ƒÕ. = ƒ¿0 |0.0.0. + ƒ¿1 |0.0.1. + ƒ¿3 |0.1.0. + ƒ¿2 |0.1.1. + ƒ¿5 |1.0.0. + ƒ¿4 |1.0.1. + ƒ¿6 |1.1.0. + ƒ¿7 |1.1.1. . 2.4. Matrice de lforacle Nous allons calculer la matrice de lforacle, cfest-a-dire la matrice de lfapplication .F. On rappelle que (x, y) F 7.¨(x, y . f (x)) ou x = (x1, . . . , xk) est un k-bit et y un 1-bit. La fonction F est naturellement etendue aux qubits de base par la formule : |x. y. .F 7.¨|x. y . f (x). PORTES QUANTIQUES 111 Calculons explicitement lfimage de chacun des vecteurs |ei. de la base canonique de (k + 1)-qubits. |e0. = | |0 .{.z. 0} x . |{0z} y . .F 7.¨| |0 .{.z. 0} x . 0 . f (0, . . . , 0) | {z } 0 ou 1 . = |e0. si f (0, . . . , 0) = 0 |e1. si f (0, . . . , 0) = 1 De meme |e1. = | |0 .{.z. 0} x . |{1z} y . F 7.¨| |0 .{.z. 0} x . 1 . f (0, . . . , 0) | {z } 1 ou 0 . = |e1. si f (0, . . . , 0) = 0 |e0. si f (0, . . . , 0) = 1 De facon generale ( |e2i. .F 7.¨|e2i. |e2i+1. .F 7.¨|e2i+1. ou ( |e2i. .F 7.¨|e2i+1. |e2i+1. .F 7.¨|e2i. La sous-matrice de .F dans la base (e2i , e2i+1) est donc I2 = 1 0 0 1 ou J2 = 0 1 1 0 . Ainsi la matrice de .F dans la base canonique des (k + 1)-qubits est la matrice suivante, qui est une matrice diagonale par blocs, chaque bloc etant I2 ou J2 : A= 0 BBBBBB@ I2/J2 I2/J2 ... ... I2/J2 1 CCCCCCA ¸ M2k+1(C). On a bien sur I2 2 = I2, mais aussi J2 2 = I2 et J. 2 = J2, donc A.A = I, ce qui prouve que A est une matrice unitaire. (On le savait deja car lfapplication associee .F est unitaire, voir ci-dessus.) 2.5. Oracle pour f = NOT Considerons f : Z/2Z¨Z/2Z defini par f (0) = 1 et f (1) = 0. Cfest donc la negation : f (x) = NOT(x) = 1 . x. Decrivons lforacle de f . x Of x / y y.f (x) / Lfapplication F est : F : Z/2Z ~ Z/2Z .¨ Z/2Z ~ Z/2Z (x, y) 7.¨ .. x, y . f (x) = .. x, 1 . x . y . ce qui donne concretement : (0, 0) F 7.¨ (0, 1) (0, 1) F 7.¨ (0, 0) (1, 0) F 7.¨ (1, 0) (1, 1) F 7.¨ (1, 1) donc |0.0. .F 7.¨ |0.1. |0.1. .F 7.¨ |0.0. |1.0. .F 7.¨ |1.0. |1.1. .F 7.¨ |1.1. Ainsi la matrice de lforacle est : 0 BB@ 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 CCA PORTES QUANTIQUES 112 2.6. Oracle pour f = AND Exercice. Effectuer le meme travail mais cette fois avec la fonction de deux variables f definie par AND. Soit f : (Z/2Z)2 ¨Z/2Z definie par f (x, y) = x AND y = x y. Nous allons voir que lforacle associe a ce f est exactement une porte de Toffoli (CCNOT). x Of x / y y / z z.f (x, y)// = x . / x y . y z z . (x y) En details : 1. Calculer lfimage par lforacle de chacun des vecteurs de la base des 3-qubits : |0.0.0., |0.0.1.,. . .,|1.1.1.. 2. En deduire que lforacle associe a ce f est equivalent a une porte de Toffoli, en verifiant que le resultat est le meme que lfaction de la porte de Toffoli sur les 3-qubits de base. 3. Verifier que lfapplication F (ou .F) est bijective alors que f ne lfest pas. 4. Calculer la matrice de lforacle (et retrouver la matrice de la porte de Toffoli). 3. Matrices unitaires Nous reprenons lfetude des matrices unitaires, ici de taille quelconque, les matrices 2 ~ 2 ayant deja ete etudiees dans le chapitre á Vecteurs et matrices â. 3.1. Produit scalaire hermitien Rappelons quelques definitions et proprietes. . Le produit scalaire hermitien .u|v. des deux vecteurs u et v est defini par : u = 0 BBB@ x1 x2 ... xn 1 CCCA v = 0 BBB@ y1 y2 ... yn 1 CCCA .u|v. = x. 1 E y1 + x. 2 E y2 + E E E + x. n E yn = Xn i=1 x. i E yi . . Le produit scalaire permet de calculer la norme : aua2 = .u|u.. . Le produit scalaire est anti-lineaire a gauche et lineaire a droite. Pour ƒÉ ¸ C : .ƒÉu|v. = ƒÉ. .u|v. et .u|ƒÉv. = ƒÉ.u|v. . . La matrice adjointe de A est la matrice A. obtenue par transposition et conjugaison complexe : A= 0 BBB@ a11 a12 . . . a1p a21 a22 . . . a2p ... ... ... an1 an2 . . . anp 1 CCCA A. = 0 BBB@ a. 11 a. 21 . . . a. n1 a. 12 a. 22 . . . a. n2 ... ... ... a. 1p a. 2p . . . a. np 1 CCCA . . La notation á ket â |ƒÓ. designe un vecteur ecrit sous forme colonne : |ƒÓ. = 0 B@ x1 ... xn 1 CA . PORTES QUANTIQUES 113 . La notation á bra â .ƒÓ| designe un vecteur ligne, obtenu comme lfadjoint : si |ƒÓ. = 0 B@ x1 ... xn 1 CA alors .ƒÓ| = |ƒÓ.. = .. x. 1 E E E x. n . . Ainsi lfecriture .E|E. designe de facon coherente a la fois le produit scalaire hermitien et la multiplication matricielle dfun vecteur ligne par un vecteur colonne (qui donne un scalaire) : |ƒÓ. = 0 B@ x1 ... xn 1 CA |ƒÕ. = 0 B@ y1 ... yn 1 CA .ƒÓ|ƒÕ. = x. 1 E y1 + x. 2 E y2 + E E E + x. n E yn. Proposition 1. .Au|v. = .u|A.v. Demonstration. Si A= (ai j) et u = (xi) alors Au est un vecteur dont le terme de rang i est (Au)i = Pn j=1 ai j x j . Ainsi si v = ( yi) alors .Au|v. est la somme sur i de termes Xn j=1 ai j x j !. yi , et donc .Au|v. = Xn i=1 Xn j=1 a. i j x. j yi . Dfautre part .u|A.v. est la somme sur i de termes x. i Xn j=1 a. i j yj ! , ce qui prouve que .u|A.v. = .Au|v.. 3.2. Caracterisation des matrices unitaires Definition. Une matrice A ¸ Mn(C) est unitaire si : A.A= I On note Un lfensemble des matrices unitaires. Si A est une matrice unitaire alors on a A.1 = A. et AA. = I. Proposition 2. Lfensemble des matrices unitaires forme un groupe. En particulier I ¸ Un et si A, B ¸ Un alors AB ¸ Un et A.1 ¸ Un. Pour la suite nous aurons besoin de la notion suivante : Definition. Les vecteurs (e1, e2, . . . , en) forment une base orthonormale de Cn si ei ej = 0 pour tout i .= j et aeia = 1 pour tout i = 1, . . . , n. PORTES QUANTIQUES 114 On peut rassembler les deux conditions en une seule ei ej = ƒÂi, j ou ƒÂi, j est le symbole de Kronecker : ƒÂi, j = 0 si i .= j et ƒÂi,i = 1. Proposition 3. Les assertions suivantes sont equivalentes : (i) La matrice A ¸ Mn(C) est unitaire. (ii) A preserve le produit scalaire hermitien : .Au|Av. = .u|v. quels que soient u, v ¸ Cn. (iii) A preserve les longueurs : aAua = aua quel que soit u ¸ Cn. (iv) Si (ei) est une base orthonormale de Cn, alors (Aei) est aussi une base orthonormale. (v) Les vecteurs colonnes ( fi) de A forment une base orthonormale de Cn. Demonstration. . (i) =Ë (ii) .Au|Av. = .u|A.Av. = .u|v. . (ii) =Ë (iii) aAua2 = .Au|Au. = .u|u. = aua2 . (iii) =Ë (iv) Notons fi = Aei . Alors afia = aeia = 1. Soit i .= j, comme aei + eja2 = 2 alors afi + f ja2 = aA(ei + ej)a2 = aei + eja2 = 2. Or afi + f ja2 = fi + f j fi + f j = . fi | fi. + fi f j + f j fi + f j f j = afia2 + fi f j + fi f j . + af ja2 = afia2 + 2Re .. fi f j + af ja2 Comme afi + f ja2 = 2, afia2 = 1 et af ja2 = 1 alors 2Re .. fi f j = 0. De meme afi + i f ja2 = afia2 . 2Im .. fi f j + af ja2 alors 2Im .. fi f j = 0. Ainsi fi f j = 0 et ( fi) forment une base orthonormee. . (iv) =Ë (v) Soit (ei) la base canonique, alors les fi = Aei sont les vecteurs colonnes de A. Comme (ei) est une base orthonormale, alors ( fi) lfest aussi. . (v) =Ë (i) Notons M = AA. . I. Notons (ei) la base canonique et ( fi) = (Aei) les vecteurs colonnes de A. Mei ej = AA.ei . ei ej = AA.ei ej . ei ej = Aei Aej . ƒÂi, j = fi f j . ƒÂi, j = ƒÂi, j . ƒÂi, j = 0. Fixons i, comme Mei ej = 0 (scalaire nul) pour tout vecteur ej de la base, alors Mei = 0 (vecteur nul). Maintenant comme Mei = 0 pour tout vecteur ei de la base, alors M = 0 (matrice nulle). Ainsi AA. = I donc A est unitaire. 3.3. Porte quantique Nous avons vu differentes portes quantiques, voici maintenant la definition generale : Definition. Une porte quantique est la transformation |ƒÕ. 7¨ A|ƒÕ. ou A est une matrice unitaire. |ƒÕ. A / A|ƒÕ. Si lfentree |ƒÕ. est un n-qubit, alors A une matrice de taille 2n (donc A ¸ U2n ), la sortie est un n-qubit. Comme la matrice A est unitaire alors en particulier la transformation est inversible. Cfest une difference majeure par rapport a une porte de lfinformatique classique (par exemple une porte AND nfest pas inversible). PORTES QUANTIQUES 115 3.4. Theoremes de realisation Meme si une porte quantique est donnee par une matrice unitaire A quelconque, cette porte quantique peut etre realisee de facon equivalente par un circuit compose de portes biens connues. Nous allons voir plusieurs resultats de realisations que nous enoncons sans demonstration. Theoreme 2. Toute porte quantique a n-qubits peut etre realisee de facon equivalente par un circuit ne comportant que des portes CNOT et des portes a 1-qubit. Ainsi lfetude de nfimporte quel circuit quantique se ramene a lfetude de deux types de portes et a leur composition. Le defaut de ce resultat, cfest que la realisation se fait a lfaide de portes parmi une infinite de possibilites. En effet, une porte a 1-qubit est definie par une matrice unitaire A ¸ M2(C), et il y a une infinite de telles matrices. Le resultat suivant construit des circuits avec seulement trois types de portes, la contrepartie cfest que lfon nfobtient pas exactement le circuit voulu, mais une approximation. Theoreme 3. Toute porte quantique a n-qubits peut etre approchee dfaussi pres que lfon veut par un circuit ne comportant que des portes H de Hadamard, des portes T (dite á porte ƒÎ8 â) et des portes CNOT. On rappelle qufune porte H de Hadamard est definie par la matrice : H = 1 p 2 1 1 1 .1 . La porte ƒÎ8 est definie par la matrice unitaire : T = 1 0 0 eiƒÎ4 qui tient son nom de son ecriture sous la forme : T = eiƒÎ8 e.iƒÎ8 0 0 eiƒÎ8 . Le theoreme de Solovay.Kitaev est une version amelioree du theoreme precedent et affirme de plus qufon peut realiser le circuit en utilisant assez peu de portes. 4. Theoreme de non-clonage quantique Un ordinateur classique est modelise par une machine de Turing et est capable de lire une serie de bits et de les dupliquer a un autre endroit. Nous allons voir que ce nfest pas le cas pour un ordinateur quantique. En fait on peut copier un qubit, mais en creant la copie on perd lforiginal. On parle ainsi de á non-clonage quantique â. 4.1. Non-clonage des 1-qubits Theoreme 4. Il nfexiste pas de porte quantique qui realise le clonage des 1-qubits, cfest-a-dire telle que pour tout 1-qubit |ƒÕ. on ait : |ƒÕ. A / |ƒÕ. |0. / |ƒÕ. Demonstration. Raisonnons par lfabsurde et supposons que le clonage quantique soit possible. Cela signifie qufil existe une porte quantique qui realise ce clonage, cfest-a-dire qufil existe une matrice A ¸ M4(C) unitaire PORTES QUANTIQUES 116 telle que : A|ƒÕ.0. = |ƒÕ.ƒÕ. pour tout 1-qubit |ƒÕ. . Comme cette egalite est vraie pour tous les 1-qubits, cfest egalement le cas : . pour |ƒÕ0. = |0., donc A|0.0. = |0.0., . pour |ƒÕ1. = |1., donc A|1.0. = |1.1., . et pour |ƒÕ2. = 1 p 2 (|0. + |1.). Nous allons detailler ce que cela implique pour |ƒÕ2.. . Dfune part comme |ƒÕ2. = 1 p 2 (|ƒÕ0. + |ƒÕ1.). A|ƒÕ2.0. = A € 1 p 2 (|0. + |1.). |0. . = 1 p 2A|0.0. + 1 p 2A|1.0. = 1 p 2 |0.0. + 1 p 2 |1.1. On retient que : A|ƒÕ2.0. = 1 p 2 (|0.0. + |1.1.) . (1) . Dfautre part par le clonage de |ƒÕ2. : A|ƒÕ2.0. = |ƒÕ2.ƒÕ2. = 12 (|0. + |1.)(|0. + |1.) = 1 2 (|0.0. + |0.1. + |1.0. + |1.1.) On a prouve : A|ƒÕ2.0. = 1 2 (|0.0. + |0.1. + |1.0. + |1.1.) . (2) Nous pouvons maintenant conclure a partir des equations (1) et (2) : 1 p 2 (|0.0. + |1.1.) = 12 (|0.0. + |0.1. + |1.0. + |1.1.) donc € 1 2 . 1 p 2 . |0.0. + 1 2 |0.1. + 12 |1.0. + . 12 . 1 p 2 . |1.1. = 0. (3) Souvenons-nous que (|0.0. , |0.1. , |1.0. , |1.1.) est une base de C4, donc si ƒ¿|0.0. + ƒÀ |0.1. + ƒÁ|1.0. + ƒÂ|1.1. = 0 alors ƒ¿ = 0,ƒÀ = 0,ƒÁ = 0,ƒÂ = 0. Dans notre cas cela implique que les coefficients de lfequation (3) sont tous nuls, et donc par exemple 12 = 0 ce qui fournit une contradiction. Conclusion : une telle matrice A qui realise le clonage ne peut exister. 4.2. Cas general Theoreme 5. Il nfexiste pas de porte quantique qui realise le clonage dfun n-qubit, cfest-a-dire telle que pour tout n-qubit |ƒÕ. on ait : A |ƒÕ. |ƒÕ. |0..n |ƒÕ. PORTES QUANTIQUES 117 La preuve pour le cas general des n-qubits est le meme calcul que pour le cas des 1-qubits. On note |e0., |e1.,. . .,|e2n.1. les vecteurs de la base canonique des n-qubits. On raisonne par lfabsurde en supposant qufil existe une matrice unitaire A telle que A ƒÕ.0.n = |ƒÕ.ƒÕ. quel que soit le n-qubit |ƒÕ. (ici |0..n = |0.0 . . . 0.). Ensuite on pose : . pour |ƒÕ0. = |e0., donc A e0.0.n = |e0.e0., . pour |ƒÕ1. = |e1., donc A e1.0.n = |e1.e1.. . Pour |ƒÕ2. = 1 p 2 (|e0. + |e1.), on obtient une contradiction en ecrivant dfune part A ƒÕ2.0.n = 1 p 2 .. A 0.0.n + A e1.0.n et dfautre part A ƒÕ2.0.n = |ƒÕ2.ƒÕ2. . Algorithme de Deutsch.Jozsa Chapitre 10 Video ¡ partie 10. Algorithme de DeutschJozsa Nous expliquons et prouvons lfalgorithme de Deutsch.Jozsa dans le cas general. Cfest notre premier algorithme quantique qui supplante les algorithmes classiques et cfest aussi lfoccasion dfintroduire plusieurs notions utiles pour la suite. 1. Algorithme 1.1. Probleme Le probleme a resoudre est la generalisation du probleme rencontre dans le chapitre introductif á Un premier algorithme quantique â. Terminologie. Soit une fonction f : .. Z/2Z n ¨ Z/2Z, que lfon peut aussi voir comme une fonction f : {0, 1}n ¨{0, 1}. Il y a 2(2n) fonctions differentes possibles mais nous nfallons considerer que deux types de fonctions. . f est constante si pour tout (x1, . . . , xn) on a f (x1, . . . , xn) = 0 ou bien si pour tout (x1, . . . , xn) on a f (x1, . . . , xn) = 1. Il existe donc deux fonctions constantes. . f est equilibree sfil y a autant de n-uplets (x1, . . . , xn) tels que f (x1, . . . , xn) = 0 que de n-uplets (x1, . . . , xn) tels que f (x1, . . . , xn) = 1, autrement dit Card (x1, . . . , xn) ¸ (Z/2Z)n | f (x1, . . . , xn) = 0 = Card (x1, . . . , xn) ¸ (Z/2Z)n | f (x1, . . . , xn) = 1 . Il y a en tout .. 2n 2n.1 = 2n! (2n.1!)2 telles fonctions. Pour n > 1 il existe beaucoup de fonctions qui ne sont ni constantes, ni equilibrees, par exemple une fonction qui prend une seule fois la valeur 1 et 0 ailleurs. Probleme. On nous donne une fonction f : .. Z/2Z n ¨Z/2Z en nous certifiant qufelle est soit constante, soit equilibree. Cfest a vous de determiner dans quelle categorie elle se situe : constante ou equilibree. 1.2. Solution classique Pour ce probleme, la complexite des algorithmes se mesure par le nombre dfevaluations f (x1, . . . , xn) effectuees. Avec un ordinateur classique, la complexite du meilleur algorithme est exponentielle, dfordre O(2n). Notons qufil y a en tout 2n = Card((Z/2Z)n) elements dans lfensemble de depart. Voici un algorithme classique dont la complexite est 2n.1 + 1. Algorithme. . On evalue f sur 2n.1 + 1 termes. . Si toutes ces valeurs sont egales alors f est constante, sinon elle est equilibree. ALGORITHME DE DEUTSCH.JOZSA 119 Plus precisement, aucun algorithme classique ne peut faire moins que 2n 2 evaluations. Bien sur pour certaines fonctions f on pourrait obtenir une reponse plus rapide (par exemple des que lfon obtient deux valeurs differentes, la fonction doit etre equilibree), mais dans le pire des cas il faut evaluer f sur plus de la moitie des elements pour pouvoir conclure. En effet, si par exemple f sfannule sur la moitie des elements, on ne peut pas deja savoir si elle est constante ou equilibree car les deux conclusions sont encore possibles. 1.3. Circuit quantique Voici le circuit qui fournit lfalgorithme quantique repondant au probleme. |0. H Of H / |0. H H / |0. H H / ... ... ... |0. H H / |1. H Les n premieres lignes du circuit sont initialisees par |0., suivi de la transformation de Hadamard. La derniere ligne est initialisee par |1., suivi dfune porte de Hadamard. Ensuite on applique lforacle associe a f . Enfin, on applique de nouveau une transformation de Hadamard sur les n premieres lignes, suivi dfune mesure uniquement sur les n premieres lignes. Le circuit nfest execute qufune seule fois, autrement dit lfalgorithme quantique est de complexite 1 car la fonction associee a lforacle Of nfest evaluee qufune seule fois. Lfalgorithme consiste simplement a executer le circuit. Algorithme. Si la mesure des n premiers qubits de sortie est 0.0 . . . 0 alors la fonction est constante, sinon la fonction est equilibree. Pour les exemples ou n = 1 ou n = 2, nous renvoyons au chapitre á Un premier algorithme quantique â. La complexite de lfalgorithme quantique est donc O(1). On a vu que lfalgorithme classique est de complexite exponentielle. En effet O(2n.1) = O(2n) et 2n = en ln 2. Lfalgorithme quantique est donc une amelioration exponentielle de lfalgorithme classique ! Bien sur le probleme resolu ici est artificiel et assez peu interessant mais nous avons maintenant la preuve que lfinformatique quantique peut aller plus vite que lfinformatique classique. On rappelle que lforacle associe a la fonction f agit ainsi : sur les n premieres lignes xi 7¨ xi , sur la derniere ligne y 7¨ y . f (x1, . . . , xn). x1 Of x1 / x2 x2 / ... ... / xn xn / y y.f (x1,...,xn) / ALGORITHME DE DEUTSCH.JOZSA 120 2. Notation entiere des qubits 2.1. Notation La notation |0.0 . . . 0., |0.0 . . . 1.,. . .,|1.1 . . . 1. pour les n-qubits de la base canonique nfest pas pratique pour les calculs generaux et les preuves. En particulier comment noter un n-qubit quelconque de cette base ? Nous allons introduire lfecriture dfun n-qubit de base par un seul entier : cfest tout simplement lfoperation inverse de lfecriture binaire. On fixe un entier n . 1. Soit 0 . k . 2n . 1. Notons k lfecriture binaire de lfentier k sur n bits. Lfecriture entiere k designe le n-qubit de la base canonique associe a lfecriture binaire de k. 0 = |0.0 . . . 0.0.0. 1 = |0.0 . . . 0.0.1. 2 = |0.0 . . . 0.1.0. 3 = |0.0 . . . 0.1.1. ... 2n . 2 = |1.1 . . . 1.1.0. 2n . 1 = |1.1 . . . 1.1.1. On peut ainsi ecrire facilement certains enonces. Par exemple une fonction f : (Z/2Z)n ¨Z/2Z est constante si f (k) = 0 pour tout k variant de 0 a 2n . 1 ou si f (k) = 1 pour tout k variant de 0 a 2n . 1. 2.2. Exemples Pour n = 1, il y a seulement deux qubits de base et on a 0 = |0. et 1 = |1.. Exemple. Pour n = 2. 0 = |0.0. 1 = |0.1. 2 = |1.0. 3 = |1.1. Exemple. Pour n = 3. 0 = |0.0.0. 1 = |0.0.1. 2 = |0.1.0. 3 = |0.1.1. 4 = |1.0.0. 5 = |1.0.1. 6 = |1.1.0. 7 = |1.1.1. ALGORITHME DE DEUTSCH.JOZSA 121 3. Transformation de Hadamard 3.1. Definition On rappelle que la porte de Hadamard est definie pour les 1-qubits par la formule : H |0. = 1 p 2 (|0. + |1.) et H |1. = 1 p 2 (|0. . |1.). H La transformation de Hadamard dfun n-qubit |ƒÕ. est lfapplication dfune porte de Hadamard sur chacun des 1-qubits le constituant. On note cette transformation H.n. Le circuit est simplement compose de n lignes, avec une porte de Hadamard par ligne (lfordre de ces portes nfa pas dfimportance). entree |ƒÕ. 8>>>>>>>< >>>>>>>: H / H / H / ... ... ... H / 9>>>>>>>= >>>>>>>; sortie H.n |ƒÕ. Exemple. Pour n = 2. 0 = |0.0. H.2 7..¨ 1 2 (|0 + 1. |0 + 1.) = 1 2 (|0.0. + |0.1. + |1.0. + |1.1.) = 1 2 ( 0 + 1 + 2 + 3 ) 1 = |0.1. H.2 7..¨ 1 2 (|0 + 1. |0 . 1.) = 1 2 (|0.0. . |0.1. + |1.0. . |1.1.) = 1 2 ( 0 . 1 + 2 . 3 ) 2 = |1.0. H.2 7..¨ 1 2 (|0 . 1. |0 + 1.) = 1 2 (|0.0. + |0.1. . |1.0. . |1.1.) = 1 2 ( 0 + 1 . 2 . 3 ) 3 = |1.1. H.2 7..¨ 1 2 (|0 . 1. |0 . 1.) = 1 2 (|0.0. . |0.1. . |1.0. + |1.1.) = 1 2 ( 0 . 1 . 2 + 3 ) 3.2. Formule de la transformation de Hadamard Quelle est la formule qui permet de calculer la transformation de Hadamard sur les qubits de base ? Exemple. Calculons H.n 0 pour n quelconque. Comme 0 = |0.0 . . . 0. alors H.n 0 = 1 p 2n |0 + 1. E |0 + 1. E E E |0 + 1.. En developpant ce produit, on obtient toutes les combinaisons possibles de 0 et de 1 : H.n 0 = 1 p 2n (|0 . . . 0.0. + |0 . . . 0.1. + |0 . . . 1.0. + E E E + |1 . . . 1.1.) Autrement dit : H.n 0 = 1 p 2n 2Xn.1 .=0 . ALGORITHME DE DEUTSCH.JOZSA 122 La formule generale est donnee par la proposition suivante. Proposition 1. Pour 0 . k . 2n . 1, on a : H.n k = 1 p 2n 2Xn.1 .=0 (.1)k.. . Notation. Pour lfecriture binaire k = k1.k2 . . . kn et lfecriture binaire . = .1..2 . . . .n (avec ki , .i ¸ {0,1}) alors k . . = k1.1 . k2.2 . E E E . kn.n ¸ {0, 1}. Cfest comme un produit scalaire modulo 2. Par exemple si k = |0.1.0.1.1. et . = |1.1.0.0.1. alors k . . = 0 E 1 . 1 E 1 . 0 E 0 . 1 E 0 . 1 E 1 = 0 . 1 . 0 . 0 . 1 = 0. Demonstration. H.n k est un produit de termes ayant la forme |0 + 1. ou |0 . 1.. En developpant ce produit on obtient une expression faisant intervenir tous les n-qubits de la base canonique, donc tous les . , avec . = 0, . . . , 2n . 1. On ne change le signe qufen presence dfun 1 (donc il faut .i = 1) et du signe á . â (donc ki = 1). Une preuve detaillee se fait par recurrence. 3.3. Exemple Exemple. Soit n = 3 et k = 5 = |1.0.1., alors un calcul direct donne : H.3 5 = H.3 |1.0.1. = 1 2 p 2 |(0 . 1).(0 + 1).(0 . 1). = 1 2 p 2 .. |0.0.0. . |0.0.1. + |0.1.0. . |0.1.1. . |1.0.0. + |1.0.1. . |1.1.0. + |1.1.1. On retrouve bien la formule annoncee car avec k = 5 = 1.0.1 on a : . pour . = 0 : . = 0.0.0, k . . = 0, donc terme +|0.0.0., . pour . = 1 : . = 0.0.1, k . . = 1, donc terme .|0.0.1., . pour . = 2 : . = 0.1.0, k . . = 0, donc terme +|0.1.0., . pour . = 3 : . = 0.1.1, k . . = 1, donc terme .|0.1.1., . pour . = 4 : . = 1.0.0, k . . = 1, donc terme .|1.0.0., . pour . = 5 : . = 1.0.1, k . . = 0, donc terme +|1.0.1., . pour . = 6 : . = 1.1.0, k . . = 1, donc terme .|1.1.0., . pour . = 7 : . = 1.1.1, k . . = 0, donc terme +|1.1.1.. ALGORITHME DE DEUTSCH.JOZSA 123 4. Preuve de lfalgorithme de Deutsch.Jozsa |0. H Of H / |0. H H / |0. H H / ... ... ... ... |0. H H / |1. H |ƒÕ0. |ƒÕ1. |ƒÕ2. |ƒÕ3. . Initialisation. |ƒÕ0. = |0 . . . 0. E |1. = 0 E |1. . On melange les deux ecritures : la notation entiere qui regroupe les n premiers qubits et la notation classique pour le dernier qubit. . Transformation de Hadamard. |ƒÕ1. = H.n+1 |ƒÕ0. = H.n 0 E H |1. = 1 p 2n 2Xn.1 .=0 . E 1 p 2 (|0. . |1.) . Oracle. |ƒÕ2. = Of |ƒÕ1. = 1 p 2n 2Xn.1 .=0 . E 1 p 2 .. 0 . f (.) . 1 . f (.) = 1 p 2n 2Xn.1 .=0 (.1)f (.) . E 1 p 2 (|0. . |1.) On a utilise : 0 . f (.) . 1 . f (.) = |0. . |1. si f (.) = 0 .(|0. . |1.) si f (.) = 1 = (.1)f (.) (|0. . |1.) . ALGORITHME DE DEUTSCH.JOZSA 124 . Transformation de Hadamard. |ƒÕ3. = H.n . 1 p 2n 2Xn.1 .=0 (.1)f (.) . . E 1 p 2 (|0. . |1.) = 1 p 2n 2Xn.1 .=0 (.1)f (.)H.n .. . E 1 p 2 (|0. . |1.) = 1 p 2n 2Xn.1 .=0 (.1)f (.) . 1 p 2n 2Xn.1 k=0 (.1)..k k . E 1 p 2 (|0. . |1.) = 1 2n 2Xn.1 k=0 k 2Xn.1 .=0 (.1)f (.)+..k E 1 p 2 (|0. . |1.) Quelle est la probabilite de mesurer 0.0. . .0 pour les n premiers qubits ? Il sfagit de trouver le coefficient ƒ¿ ¸ C devant le qubit |0.0 . . . 0. E 1 p 2 (|0. . |1.) (le dernier qubit ne sera pas mesure). Autrement dit il sfagit de trouver le coefficient correspondant a k = 0 : ƒ¿ = 1 2n 2Xn.1 .=0 (.1)f (.)+..0. Comme . . 0 = 0 alors : ƒ¿ = 1 2n 2Xn.1 .=0 (.1)f (.). . Si f est constante, par exemple f (.) = 0, pour tout ., alors : ƒ¿ = 1 2n 2Xn.1 .=0 (.1)0 = 1 2n 2Xn.1 .=0 1 = 1. Comme le qubit |ƒÕ3. est normalise, et que ƒ¿ = 1 alors les autres coefficients des termes de |ƒÕ3. sont tous nuls. Ainsi dans ce cas |ƒÕ3. = |0.0 . . . 0. E 1 p 2 (|0. . |1.) et la probabilite de mesurer 0.0 . . . 0 sur les n premiers qubits est 1. De meme si f etait constante egale a 1, alors on trouverait ƒ¿ = .1 et |ƒÕ3. = .|0.0 . . . 0. E 1 p 2 (|0. . |1.) et la probabilite de mesurer 0.0 . . . 0 sur les n premiers qubits est egalement 1. . Si f est equilibree, il y a autant de . avec f (.) = 0 que de . avec f (.) = 1, ainsi il y a autant de . avec (.1)f (.) = +1 que (.1)f (.) = .1. (On rappelle (.1)p = }1.) Ainsi la somme des (.1)f (.) est nulle et donc ƒ¿ = 0. La probabilite de mesurer 0.0 . . . 0 sur les n premiers qubits est donc 0. Conclusion : si la mesure sur les n premiers qubits est 0.0 . . . 0 alors la fonction f est constante, sinon cfest qufelle est equilibree. Algorithme de Grover Chapitre 11 Video ¡ partie 11. Algorithme de Grover Lfalgorithme de Grover est un algorithme de recherche dfun element dans une liste qui est plus efficace que les algorithmes classiques. Son principe est simple, meme si sa mise en oeuvre est un peu complexe. Lfalgorithme de Grover ne fournit pas un resultat sur a 100 %, mais une reponse qui a de grandes chances dfetre la bonne. 1. Recherche dans une liste 1.1. Idee de lfalgorithme Expliquons lfalgorithme de Grover avec des dessins. (a) Coefficients de depart (b) Un coefficient rendu negatif (c) Calcul de la moyenne (d) Symetrie par rapport a la moyenne Figure (a). Il sfagit de distinguer un rang parmi les autres, ici le rang du rectangle rouge. On considere que les hauteurs des rectangles representent les coefficients dfun qubit : ici il y a 8 coefficients pour lfexpression dfun 3-qubit comme somme des 8 etats de base. Une mesure de ce qubit ne donnerait aucune information, chacun des rangs sfobtenant avec la meme probabilite, car les hauteurs des rectangles sont egales. Figure (b). On rend le coefficient du rang qui nous interesse negatif. (Cela peut se faire sans connaitre le rang : je regarde la couleur du rectangle, sfil est rouge je change le signe). Une mesure de nouveau qubit ne donnerait toujours aucune information, car en valeur absolue les hauteurs des rectangles sont encore egales. Figure (c). On calcule la moyenne des coefficients ALGORITHME DE GROVER 126 Figure (d). On effectue une symetrie par rapport a la moyenne. Les rectangles bleus ont maintenant des hauteurs petites alors que le rectangle rouge a une grande hauteur. Que donne une mesure de ce nouveau qubit ? Il y a beaucoup plus de chances dfobtenir lfetat de base correspondant au rectangle rouge et donc dfobtenir le rang souhaite. Lfalgorithme de Grover est lfiteration de ce procede : a partir du dernier etat obtenu avant mesure, on recommence les etapes (b), (c) et (d). Le rectangle rouge devient de plus en plus grand et les rectangles bleus de plus en plus petits. Ainsi apres plusieurs iterations, une mesure donne avec une tres forte probabilite, le rang du rectangle rouge. 1.2. Recherche dans une liste ordonnee On dispose dfune liste et on nous donne un element. Il sfagit de trouver sfil est present dans la liste et de determiner son rang. Le probleme est donc : trouver i tel que liste[i] = mon-element. Supposons dfabord que les elements sont classes par ordre (par exemple les mots dfun dictionnaire par ordre alphabetique, ou bien les numeros de cartes dfetudiants classes du plus petit au plus grand). Alors un algorithme de recherche classique est la recherche par dichotomie (on coupe au milieu, on regarde si lfelement cherche est avant ou apres et on recommence). Cfest une methode tres efficace : si la liste comporte N elements alors la complexite est O(ln2(N)). La complexite est mesuree comme le nombre de comparaisons entre lfelement au rang i et lfelement recherche. Par exemple si N = 1024 = 210, alors il faut environ moins de 10 comparaisons pour trouver lfelement et si la liste contient un milliard de donnees, il faut moins de 30 comparaisons pour conclure ! 1.3. Recherche dans une liste non ordonnee Pour certaines listes, il nfest pas possible dfordonner des elements ou bien on ne souhaite pas le faire car ordonner une liste est assez long. Comment chercher un element dans une liste non ordonnee ? Il nfy a pas dfautre choix que de parcourir la liste ! On peut par exemple parcourir la liste en partant du premier element, ou bien en choisissant les elements au hasard. Dans les deux methodes, la complexite dans le pire des cas est N (si lfelement cherche est le dernier a etre teste). En moyenne, on trouvera lfelement cherche au bout de N2 tests, mais cela nfameliore pas lfordre de grandeur de la complexite qui est donc O(N) (car O(N) = O(N2 )). 1.4. Complexite de lfalgorithme de Grover Lfalgorithme de Grover qui sera etudie dans ce chapitre a une complexite dfordre O( p N), cfest donc un gros progres par rapport aux algorithmes classiques. Par exemple, dans une liste de N = 1024 personnes, il suffira dfenviron 30 tests ; pour une liste dfun milliard de donnees, la complexite est dfenviron 30 000. Cfest evidemment beaucoup plus que lfalgorithme de la dichotomie sur une liste ordonnee, mais beaucoup moins que la recherche sequentielle qui est de complexite N. 1.5. Algorithmes probabilistes Lfalgorithme de Grover est rapide mais ne renvoie malheureusement pas toujours le bon resultat ! Cfest un algorithme probabiliste. Lfalgorithme de Grover renvoie le bon resultat dans la plupart des cas (on verra que pour une liste de longueur N, lfalgorithme se trompe avec une probabilite inferieure a 4N ). Pourquoi un algorithme probabiliste, ne donnant donc pas toujours la reponse attendue, peut quand meme etre un bon algorithme ? Tout dfabord, pour certains problemes, ne pas avoir la bonne reponse nfest pas trop grave. Par exemple, si un algorithme vous fournit le plus court chemin dans 99 cas sur 100 et que vous faites quelques kilometres en plus de temps en temps, cela peut vous convenir. Dfautre part il est souvent ALGORITHME DE GROVER 127 facile de verifier si la reponse donnee est correcte, donc si la reponse obtenue ne vous convient pas, vous relancez lfalgorithme. Meme un algorithme qui ne donne la bonne reponse qufune fois sur deux peut etre utile ! Imaginez un algorithme qui donne tous les bons numeros du loto seulement une fois sur deux, est-ce que cela vous interesserait ? 1.6. Application au hachage Certaines securites informatiques sont basees sur des fonctions de hachage. Par exemple une fonction de hachage permet de verifier qufun fichier telecharge nfa pas ete compromis (checksum). Dfautres exemples sont les bitcoins qui utilisent une á preuve de travail â, de meme que certaines methodes de cryptographie (par exemple pour ne pas sauvegarder vos mots de passe en clair sur votre disque dur). Considerons lfexemple dfune fonction de hachage qui a un entier k code sur n bits (la cle) associe un entier h(k) (le hash). Jfutilise cette fonction ainsi : . je choisis une cle secrete par exemple k0 = 1.0.1.0.1 (avec ici n = 5), . je calcule h(k0), par exemple h(k0) = 12575 302, . h(k0) est mon mot de passe. Imaginons un pirate qui voudrait attaquer mon compte. Il nfa pas dfautre choix que de tester toutes les cles possibles 0.0.0.0.0, puis 0.0.0.0.1,. . . afin dfobtenir la bonne cle, donc le bon mot de passe. Il y a en tout N = 2n (ici n = 5) cles possibles a tester dans le pire des cas avec lfinformatique classique. Mais trouver cette cle revient a trouver le bon element parmi une liste de N = 2n elements, ce que fait lfalgorithme de Grover avec une complexite dfordre O( p N), cfest-a-dire O(2n/2), ce qui est beaucoup plus rapide que la solution classique. A la suite de la decouverte de Grover, il a ete recommande de doubler la longueur des cles de certains protocoles (par exemple passer de AES-128 a AES-256). En effet imaginons une cle de longueur n bits, un algorithme classique necessite de lfordre de N = 2n tests et lfalgorithme quantique seulement p N = 2n/2. Si la cle est doublee a une longueur 2n, alors lfalgorithme de Grover necessite maintenant p 22n = 2n tests et donc la niveau de securite initial est maintenu. 1.7. Image reciproque Elargissons la situation precedente a un probleme plus general. Soit f : E ¨ F une fonction. Etant donne x ¸ E, il est generalement facile de calculer son image y = f (x). Par contre le probleme inverse de trouver un antecedent est souvent delicat : etant donne y ¸ F, trouver x ¸ E tel que y = f (x). Parfois la seule solution est de tester tous les x possibles, et la encore lfalgorithme de Grover permet de le faire plus rapidement. Voici un exemple de fonction ou il est difficile de calculer un antecedent. Soit p un (grand) nombre premier et f : Z ¨ Z la fonction definie par f (x) = x2 (mod p). Bien sur, pour x donne, il est facile de calculer y = f (x). Par contre y etant fixe, il est difficile de trouver un antecedent, cfest-a-dire un x tel que x2 (mod p) = y. On doit alors se rabattre sur des techniques de force brute et tester x = 0, x = 1,. . ., x = p.1. 2. Principe et circuit 2.1. Probleme Nous modelisons la recherche dans une liste non ordonnee a lfaide dfune fonction mathematique. Soit N un entier fixe et soit k0 un entier avec 0 . k0 . N .1. Definissons alors la fonction f : {0, 1, . . . ,N .1}¨{0, 1} par f (k0) = 1 et f (k) = 0 pour tout k .= k0. Probleme. Etant donnee une telle fonction f , trouver la valeur k0 telle que f (k0) = 1. Remarques. ALGORITHME DE GROVER 128 . Il sfagit donc de trouver lfantecedent de 1 par f . . On peut identifier {0, 1, . . . ,N . 1} a Z/NZ et {0, 1} a Z/2Z et donc considerer f : Z/NZ¨Z/2Z. 2.2. Oracle On se place dans le cas ou N est une puissance de 2 : N = 2n. On rappelle que pour 0 . k . N . 1, alors k est lfecriture binaire de k sur n bits. Ainsi k , pour k = 0, . . . ,2n . 1, designe les n-qubits de la base canonique : 0 = |0.0 . . . 0., 1 = |0.0 . . . 1., . . ., 2n . 1 = |1.1 . . . 1.. Nous allons utiliser lforacle Of associe a la fonction f . Pour x ¸ Z/NZ et y ¸ Z/2Z, lforacle realise une fonction F(x, y) = (x, y . f (x)). On prefere ecrire lfentier x a lfaide de son ecriture binaire x = x1.x2 . . . xn, ce qui permet de recrire la fonction F sous la forme F(x, y) = (x1, . . . , xn, y . f (x1, . . . , xn)). On rappelle que y . yŒ est lfaddition dans Z/2Z (qui verifie 1 . 1 = 0). x1 Of x1 / x2 x2 / ... ... / xn xn / y y.f (x1,...,xn) / Utilisons notre oracle pour realiser le petit circuit suivant : k 8< : Of / / ... ... / |1. H / |s. Que se passe-t-il pour notre f particulier qui vaut 1 seulement en k0 ? Lfentree sur la derniere ligne avant lforacle est 1 p 2 (|0. . |1.) et la sortie est s = 1 p 2 (|0. . |1.) . f (k) = (.1)f (k) 1 p 2 (|0. . |1.) = N 1 p 2 (|0. . |1.) si k .= k0 . 1 p 2 (|0. . |1.) si k = k0 Ainsi lforacle permet de detecter si lfentier en entree est k0 ou pas. Malheureusement nous nfavons fait aucun progres car il faut de nouveau tester tous les k de 0 a N . 1 pour pouvoir conclure. Cfest la qufentre en jeu la magie de lfinformatique quantique et la superposition des etats : il est possible de tester toutes ces valeurs en meme temps ! 2.3. Circuit Voici le debut du circuit de lfalgorithme de Grover qui permet de comprendre lfessentiel de son fonctionnement (le circuit complet sera etudie plus tard). ALGORITHME DE GROVER 129 |0. H Of / |0. H / |0. H / ... ... |0. H / |1. H |ƒÕ0. |ƒÕ1. |ƒÕ2. . Initialisation. Le qubit en entree est le (n + 1)-qubit : |ƒÕ0. = |0 . . . 0. E |1. = 0 E |1. . . Transformation de Hadamard. On sfinteresse dfabord seulement aux n premieres lignes. Apres la transformation de Hadamard (une porte de Hadamard sur chacune des n premieres lignes) alors le n-qubit est 0 + 1 + E E E + k0 ÷ + E E E + 2n . 1 (a un facteur multiplicatif pres). Ainsi tous les qubits k se retrouvent simultanement en entree de lforacle ! Voici les calculs complets, en integrant tous les qubits : |ƒÕ1. = H.n+1 |ƒÕ0. = H.n 0 E H |1. = 1 p 2n 2Xn.1 k=0 k E 1 p 2 (|0. . |1.) . Oracle. Nous avons vu que lforacle fait apparaitre un signe á . â devant le terme correspond a k0. Ainsi la sortie de lforacle est 0 + 1 + E E E . k0 ÷ + E E E + 2n . 1 Noter le signe á . â devant k0 ÷ uniquement. En detail, sachant que (.1)f (k) = 1, sauf (.1)f (k0) = .1 : |ƒÕ2. = Of |ƒÕ1. = 1 p 2n 2Xn.1 k=0 (.1)f (k) k E 1 p 2 (|0. . |1.) = 1 p 2n 0 + 1 + E E E . k0 ÷ + E E E + 2n . 1 E 1 p 2 (|0. . |1.) . Bilan. En une seule evaluation de lforacle, on arrive a distinguer le terme de rang k0 des autres termes. Lfidee essentielle est ici. Cependant on nfa pas completement termine : il reste a determiner precisement ce rang, connaissant la somme. Ce sera le travail assez technique du reste de ce chapitre. ALGORITHME DE GROVER 130 2.4. Exemple Exemple. Prenons n = 3 et k0 = 5 qui caracterisent la fonction f : Z/8Z¨Z/2Z definie par f (k) = 0 pour tout k .= 5 et f (5) = 1. k 8>< >: H Of / H / H / |1. H / |ƒÕ0. |ƒÕ1. |ƒÕ2. Reprenons les calculs dans ce cas : . Initialisation. |ƒÕ0. = |0.0.0. E |1. = 0 E |1.. . Transformation de Hadamard. |ƒÕ1. = 14 |(0 + 1).(0 + 1).(0 + 1). |0 . 1. = 1 4 .. |0.0.0. + |0.0.1. + |0.1.0. + |0.1.1. + |1.0.0. + |1.0.1. + |1.1.0. + |1.1.1. |0 . 1. = 1 4 .. 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 |0 . 1. . Oracle. Comme f (5) = 1 alors nous avons vu que lforacle fait apparaitre un signe á . â devant le terme correspond a 5 = |1.0.1.. |ƒÕ2. = 14 .. |0.0.0. + |0.0.1. + |0.1.0. + |0.1.1. + |1.0.0. . |1.0.1. + |1.1.0. + |1.1.1. |0 . 1. = 1 4 .. 0 + 1 + 2 + 3 + 4 . 5 + 6 + 7 |0 . 1. . Bilan. On trouve bien une somme des qubits de base avec un signe á . â au rang k0 = 5 (on commence a compter au rang 0). 3. Transformations geometriques Le reste du chapitre est dedie a la detection du rang k0. Cfest une partie assez technique, mais on comprend mieux les calculs a lfaide dfune interpretation geometrique un peu plus sophistiquee que celle de lfintroduction de ce chapitre. 3.1. Symetrie de lforacle Que fait lforacle sur les n-qubits des n premieres lignes ? Lforacle change k0 ÷ en . k0 ÷ , et laisse inchange k pour k .= k0 : 8< : k0 ÷ Of 7.¨. k0 ÷ k Of 7.¨ k si k .= k0. On va isoler le qubit de base k0 ÷ dfun cote et regrouper tous les autres qubits de base, ainsi nfimporte quel ALGORITHME DE GROVER 131 n-qubit |ƒÓ. sfecrit : |ƒÓ. = ƒ¿ k0 ÷ + X k.=k0 ƒ¿k k Lfaction de lforacle Of donne : Of |ƒÓ. = .ƒ¿ k0 ÷ + X k.=k0 ƒ¿k k Geometriquement cette transformation est une symetrie par rapport a lfaxe forme des qubits de base autres que k0 ÷ que lfon regroupe schematiquement par lfaxe |reste. ci-dessous. Sur la figure, la transformation est representee comme une symetrie par rapport a une droite (mais en realite cfest une symetrie par rapport a un hyperplan de dimension 2n . 1). k0 ÷ |reste. Of |ƒÓ. |ƒÓ. 3.2. Symetrie S0 Considerons la transformation S0 definie sur les n-qubits de la base canonique par : ( 0 S0 7.¨ 0 k S0 7.¨. k si k .= 0 Cette fois cfest seulement le qubit de base 0 qui reste inchange. Par exemple : pour n = 2, on a S0 |0.0. = |0.0. alors que S0 |0.1. = .|0.1., S0 |0.1. = .|0.1., S0 |1.1. = .|1.1.. Comme dfhabitude on etend S0 par linearite a tous les n-qubits. Ainsi : S0 (ƒ¿|0.0. + ƒÀ |0.1. + ƒÁ|1.0. + ƒÂ|1.1.) = ƒ¿|0.0. . ƒÀ |0.1. . ƒÁ|1.0. . ƒÂ|1.1. . Geometriquement S0 est une symetrie par rapport a lfaxe 0 (attention les axes ne sont pas les memes que dans la figure precedente). 0 |reste. |ƒÓ. S0 |ƒÓ. Voici lfecriture algebrique de S0. ALGORITHME DE GROVER 132 Lemme 1. S0 = 2 0 0 . I I designe lfapplication identite. Ainsi cette formule signifie que pour un qubit |ƒÓ. on a : S0 |ƒÓ. = 2 0 0 ƒÓ . |ƒÓ. Lfecriture 0 0 ƒÓ est bien qubit car 0 ƒÓ est un scalaire (i.e. un nombre complexe). Demonstration. Il suffit de verifier que cette formule est vraie pour les |ƒÓ. parcourant les qubits de base. Pour |ƒÓ. = 0 , alors .. 2 0 0 . I 0 = 2 0 0 0 . 0 = 2 0 . 0 = 0 , car 0 0 = 1. Pour |ƒÓ. verifiant 0 ƒÓ = 0, alors .. 2 0 0 . I |ƒÓ. = 2 0 0 ƒÓ . |ƒÓ. = 2 0 E 0 . |ƒÓ. = .|ƒÓ. . Notons que la matrice de S0 est une matrice diagonale, avec +1 comme premier element et des .1 ailleurs. S0 = 0 BBBBB@ 1 .1 .1 ... .1 1 CCCCCA Il est clair que cette matrice est unitaire. 3.3. Transformation SƒÕ Nous allons generaliser la transformation S0. Fixons un n-qubit |ƒÕ. de norme 1. Nous definissons la transformation SƒÕ sur les n-qubits par la formule SƒÕ = 2 |ƒÕ. .ƒÕ| . I Autrement dit, pour nfimporte quel n-qubit |ƒÓ., on a : SƒÕ |ƒÓ. = 2 |ƒÕ. .ƒÕ|ƒÓ. . |ƒÓ. . Cette transformation verifie : ( |ƒÕ. S0 7.¨|ƒÕ. |ƒÓ. S0 7.¨.|ƒÓ. si |ƒÓ. est orthogonal a |ƒÕ.. Rappelons que á |ƒÓ. est orthogonal a |ƒÕ. â signifie á .ƒÕ|ƒÓ. = 0 â. Geometriquement SƒÕ est une symetrie par rapport a lfaxe dirige par |ƒÕ.. |ƒÕ. |ƒÓ. SƒÕ |ƒÓ. ALGORITHME DE GROVER 133 3.4. Transformation SƒÕH Notons |ƒÕH. le n-qubit forme par la somme de tous les qubits de la base canonique (normalise de facon a avoir une norme 1) : |ƒÕH. = 1 p 2n 2Xn.1 k=0 k . Ce qubit |ƒÕH. est aussi lfimage du qubit |0 . . . 0. par la transformation de Hadamard : |ƒÕH. = H.n 0 . Proposition 1. La transformation SƒÕH est definie par lfune des caracterisations equivalentes suivantes : (i) SƒÕH = 2 |ƒÕH. .ƒÕH| . I, cfest-a-dire SƒÕH |ƒÓ. = 2 |ƒÕH. .ƒÕH|ƒÓ. . |ƒÓ., pour tout qubit |ƒÓ.. (ii) 8< : |ƒÕH. SƒÕH 7..¨|ƒÕH. |ƒÓ. SƒÕH 7..¨.|ƒÓ. si |ƒÓ. est orthogonal a |ƒÕH. (iii) SƒÕH = H.n E S0 E H.n (iv) SƒÕH a pour matrice 2 2n U . I ou U = 0 BBBB@ 1 1 E E E 1 1 ... 1 ... ... ... 1 E E E 1 1 1 CCCCA ¸ M2n Nous prouverons cette proposition un peu plus loin. On retient que SƒÕH est une symetrie par rapport a lfaxe dirige par |ƒÕH.. |ƒÕH. |ƒÓ. SƒÕH |ƒÓ. 3.5. Transformation de Grover La transformation de Grover est lfapplication G = SƒÕH . Of . |ƒÓ. Of |ƒÓ. G |ƒÓ. = SƒÕH (Of |ƒÓ.) Of SƒÕH G Nous allons voir quelle est lfaction geometrique de G sur les qubits. Reprenons le qubit |ƒÕH. obtenu comme la somme de tous les qubits de base : |ƒÕH. = 1 p 2n 2Xn.1 k=0 k . ALGORITHME DE GROVER 134 Dans cette somme nous mettons a part le qubit correspondant a lfindice k0, qui est le rang que lfon doit determiner : |ƒÕH. = vt N . 1 N |ƒÔ. + 1 p N k0 ÷ ou N = 2n et |ƒÔ. = 1 p N . 1 X k.=k0 k . Nous recrivons maintenant ƒÕH a lfaide dfune ecriture trigonometrique : |ƒÕH. = cos .. ƒÆ 2 |ƒÔ. + sin .. ƒÆ 2 k0 ÷ ou ƒÆ 2 est lfangle entre |ƒÔ. et |ƒÕH.. |ƒÔ. k0 ÷ |ƒÕH. ƒÆ 2 cos .. ƒÆ 2 sin .. ƒÆ 2 Comme dans la pratique N = 2n est grand, alors lfangle ƒÆ 2 est petit. Pour plus de lisibilite le dessin ne reflete pas a quel point ƒÆ 2 est petit. Ainsi ƒÆ 2 est lfangle defini par : cos .. ƒÆ 2 = vt N . 1 N et sin .. ƒÆ 2 = 1 p N . Proposition 2. La transformation de Grover est une rotation dfangle ƒÆ (centree a lforigine). Autrement dit, pour tout qubit |ƒÓ., G |ƒÓ. est obtenu a partir de |ƒÓ., par une rotation dfangle ƒÆ (encore une fois lfangle ƒÆ est en realite beaucoup plus petit que sur le dessin ci-dessous). |ƒÔ. k0 ÷ |ƒÓ. G |ƒÓ. ƒÆ Demonstration. Un resultat geometrique dit que la composition de deux symetries axiales est une rotation, lfangle ƒÆ de cette rotation etant le double de lfangle entre les axes. ALGORITHME DE GROVER 135 axe 1 axe 2 ƒÆ 2 A AŒ AŒŒ O ƒÆ Ici G est la composition de deux symetries : . la symetrie Of dfaxe |ƒÔ., . la symetrie SƒÕH dfaxe |ƒÕH., . lfangle entre |ƒÔ. et |ƒÕH. est ƒÆ 2 . Ainsi G = SƒÕH . Of est la rotation dfangle ƒÆ (centree a lforigine). |ƒÔ. k0 ÷ |ƒÕH. ƒÆ 2 |ƒÓ. G |ƒÓ. ƒÆ 3.6. Idee de lfalgorithme Le but de lfalgorithme de Grover est de determiner le rang k0. Ce rang est reperable apres lfapplication de lforacle Of . En effet partons de |ƒÕH. = 1 p 2n 2Xn.1 k=0 k = vt N . 1 N |ƒÔ. + 1 p N k0 ÷ , alors Of |ƒÕH. = vt N . 1 N |ƒÔ. . 1 p N k0 ÷ . Mais attention ceci est une ecriture quantique qui nfest pas mesurable. Souvenez-vous que nous nfavons pas acces aux coefficients dfun qubit. Voici la seule certitude qufune mesure puisse nous donner : si je sais par avance qufun qubit |ƒÓ. est un des qubits de base |0 . . . 0.0., |0 . . . 0.1.,. . ., |1 . . . 1.1., alors la mesure de ce n-qubit permet dfidentifier ce qubit de base |ƒÓ.. Prenons lfexemple des 1-qubits : si mon qubit |ƒÓ. est |0. ou |1., alors une mesure permet dfidentifier si on avait |ƒÓ. = |0. ou bien |ƒÓ. = |1.. Noter que ceci ne fonctionnerait pas pour un etat superpose |ƒÓ. = ƒ¿|0. + ƒÀ |1.. De meme avec un 2-qubit |ƒÓ. parmi |0.0., |0.1., |1.0., |1.1. par une double mesure. La transformation de Grover va nous permettre de transformer le qubit |ƒÕH. (obtenu par transformation de Hadamard de |0 . . . 0.0.) en un qubit tres proche du qubit de base k0 ÷ . Il ne reste plus qufa effectuer une mesure pour obtenir (presque a coup sur) la valeur de k0. ALGORITHME DE GROVER 136 Idee de lfalgorithme de Grover. . La transformation de Hadamard envoie lfetat initial |0.0 . . . 0. sur |ƒÕH.. . On part du qubit |ƒÕH. qui est la superposition de tous les qubits de base. . Ce qubit forme un angle ƒÆ 2 avec lfaxe |ƒÔ.. (Lfangle ƒÆ 2 est petit car N = 2n est grand.) . La transformation de Grover est une rotation dfangle ƒÆ et conduit donc au qubit G |ƒÕH. qui forme un angle ƒÆ 2 + ƒÆ avec lfaxe |ƒÔ.. . On itere la transformation de Grover jusqufa obtenir un qubit G. |ƒÕH. qui forme un angle dfenviron ƒÎ2 avec lfaxe |ƒÔ.. (Ce nombre dfiterations . est environ ƒÎ 2ƒÆ .) . Le qubit G. |ƒÕH. obtenu est proche de k0 ÷ . . La mesure de ce qubit conduit tres probablement a k0 (avec une probabilite dferreur tres petite, dfordre 4N ). 3.7. Portes quantiques La transformation de Grover est la composition de lforacle Of et de la transformation SƒÕH . La transformation de lforacle est realisable par un circuit quantique (voir le chapitre á Portes quantiques â). Nous montrons ici comment realiser le circuit pour la transformation SƒÕH , en nous limitant au cas des 2-qubits. Porte Z. Tout dfabord rappelons lfaction de la porte Z et sa matrice : Z |0. 7¨ |0. |1. 7¨ .|1. Z = 1 0 0 .1 Porte CZ. La porte CZ (Controlled Z) fonctionne sur le meme principe qufune porte CNOT : si lfentree de la premiere ligne est |0., alors la seconde ligne est inchangee, par contre si lfentree de la premiere ligne est |1., alors on fait agir une porte Z sur la seconde ligne. . Z 8>>< >>: |0.0. 7¨ |0.0. |0.1. 7¨ |0.1. |1.0. 7¨ |1.0. |1.1. 7¨ .|1.1. CZ = 0 BB@ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 .1 1 CCA Circuit pour S0. Voici un circuit qui permet de realiser la transformation S0, dans le cas des 2-qubits. Noter bien que la partie droite du circuit est un porte CZ. Z . Z Z 8>>< >>: |0.0. 7¨ |0.0. |0.1. 7¨ .|0.1. |1.0. 7¨ .|1.0. |1.1. 7¨ .|1.1. S0 = 0 BB@ 1 0 0 0 0 .1 0 0 0 0 .1 0 0 0 0 .1 1 CCA Circuit pour SƒÕH . On sait par la proposition 1 que SƒÕH = H.n ES0 EH.n, il suffit juste dfappliquer la transformation de Hadamard avant et apres le circuit precedent. SƒÕH = H Z . H H Z Z H ALGORITHME DE GROVER 137 3.8. Preuve autour de la transformation SƒÕH Cette section peut etre passee lors dfune premiere lecture. Il sfagit de prouver la proposition 1 enoncee auparavant et que lfon rappelle ci-dessous. Proposition 3. La transformation SƒÕH est definie par lfune des caracterisations equivalentes suivantes : (i) SƒÕH = 2 |ƒÕH. .ƒÕH| . I, cfest-a-dire SƒÕH |ƒÓ. = 2 |ƒÕH. .ƒÕH|ƒÓ. . |ƒÓ., pour tout qubit |ƒÓ.. (ii) 8< : |ƒÕH. SƒÕH 7..¨|ƒÕH. |ƒÓ. SƒÕH 7..¨.|ƒÓ. si |ƒÓ. est orthogonal a |ƒÕH. (iii) SƒÕH = H.n E S0 E H.n (iv) SƒÕH a pour matrice 2 2n U . I ou U = 0 BBBB@ 1 1 E E E 1 1 ... 1 ... ... ... 1 E E E 1 1 1 CCCCA ¸ M2n Demonstration. Definissons SƒÕH par SƒÕH = 2 |ƒÕH. .ƒÕH| . I. On rappelle que |ƒÕH. est de norme 1. . Preuve que (i) .Ë (ii). On a SƒÕH |ƒÕH. = 2 |ƒÕH. .ƒÕH|ƒÕH. . |ƒÕH. = 2 |ƒÕH. . |ƒÕH. = |ƒÕH. et SƒÕH |ƒÓ. = 2 |ƒÕH. .ƒÕH|ƒÓ. . |ƒÓ. = 2 |ƒÕH. E 0 . |ƒÓ. = .|ƒÓ. pour tout |ƒÓ. orthogonal a |ƒÕH., cfest-a-dire .ƒÕH|ƒÓ. = 0. Reciproquement si on complete le vecteur |ƒÕH. en une base orthogonale, alors la relation (ii) definit une unique application lineaire, qui est donc SƒÕH . . Preuve que (ii) .Ë (iii). Notons T = H.n E S0 E H.n. On va montrer que T = SƒÕH en verifiant que T et SƒÕH verifient les memes relations que celles vues en (ii). On sait dfune part que |ƒÕH. = H.n 0 , mais H.n est unitaire alors (H.n).1 = (H.n). = H.n, dfou 0 = H.n |ƒÕH.. Ainsi : T |ƒÕH. = H.n E S0 E H.n |ƒÕH. = H.n E S0 0 = H.n 0 car S0 0 = 0 = |ƒÕH. Considerons maintenant un qubit |ƒÓ. orthogonal a |ƒÕH., alors .ƒÕH|ƒÓ. = 0 et comme H.n est unitaire alors il preserve le produit scalaire, donc on a aussi H.n |ƒÕH. H.n |ƒÓ. = 0, donc 0 et H.n |ƒÓ. sont orthogonaux. Ainsi T |ƒÓ. = H.n E S0 .. H.n |ƒÓ. = H.n .. .H.n |ƒÓ. car 0 et H.n |ƒÓ. sont orthogonaux, donc S0 .. H.n |ƒÓ. = .H.n |ƒÓ. = .H.n E H.n |ƒÓ. = .|ƒÓ. car H.n E H.n = id parce que H.n est unitaire Conclusion : T et SƒÕH verifient la meme relation vue en (ii). Les applications sont donc egales : T = SƒÕH . . Preuve que (i) .Ë (iv). Par construction lfetat |ƒÕH. est la superposition de tous les etats de la base canonique, donc il sfecrit sous forme de vecteur 1...1 a un facteur de normalisation pres. Plus ALGORITHME DE GROVER 138 precisement : |ƒÕH. = 1 p 2n 0 BBB@ 1 1... 1 1 CCCA donc .ƒÕH| = |ƒÕH.. = 1 p 2n .. 1 1 E E E 1 Ainsi : |ƒÕH. .ƒÕH| = 1 p 2n 0 BBB@ 1 1... 1 1 CCCA ~ 1 p 2n .. 1 1 E E E 1 = 1 2n 0 BBBB@ 1 1 E E E 1 1 ... 1 ... ... ... 1 E E E 1 1 1 CCCCA = 1 2n U Conclusion : SƒÕH = 2|ƒÕH. .ƒÕH| . I a pour matrice 2 2n U . I. (Reciproquement une matrice definit une unique application lineaire.) 4. Etapes de lfalgorithme de Grover 4.1. Circuit On note G la transformation de Grover, elle prend en entree un (n + 1)-qubit, et est formee par la porte Of de lforacle, suivie dfune porte associee a la transformation SƒÕH . On represente cette porte G avec 2 lignes seulement, la premiere ligne correspond a un n-qubit (ligne symbolisee avec á / â), la seconde a un 1-qubit. / G = / Of SƒÕH Voici le circuit de lfalgorithme de Grover. |0..n / H.n G G E E E G / |1. H E E E |ƒÕ0. |ƒÕ1. La porte G est iteree . fois avec . . ƒÎ4 p N ou N = 2n. La complexite de lfalgorithme est dfordre ., donc dfordre O( p N). La mesure finale est la mesure dfun n-qubit (et correspond donc a n mesures de 1-qubits). Le circuit renvoie donc un n-bit classique k avec 0 . k < 2n. Nous allons justifier que cet entier est tres probablement le rang k0 cherche. 4.2. Donnees Soit n . 1 et N = 2n. Supposons donne un entier k0 verifiant 0 . k0 < N. On considere la fonction f : Z/NZ¨Z/2Z, avec f (k0) = 1 et f (k) = 0 pour tout k .= k0. 4.3. Initialisation et transformation de Hadamard Le circuit quantique est initialise par le (n + 1)-qubit |ƒÕ0. = |0 . . . 0. E |1. = 0 E |1. . Ensuite on applique la transformation de Hadamard pour obtenir le qubit ALGORITHME DE GROVER 139 |ƒÕ1. = H.n+1 |ƒÕ0. = H.n 0 E H |1. = 1 p 2n 2Xn.1 k=0 k E 1 p 2 (|0. . |1.) = |ƒÕH. E 1 p 2 (|0. . |1.) Dans la suite on oublie le dernier qubit et on sfinteresse seulement au n-qubit forme par les n premieres lignes. Dans |ƒÕH. distinguons le qubit de base k0 ÷ : |ƒÕH. = 1 p 2n 2Xn.1 k=0 k = vt N . 1 N |ƒÔ. + 1 p N k0 ÷ que lfon recrit sous forme trigonometrique : |ƒÕH. = cos .. ƒÆ 2 |ƒÔ. + sin .. ƒÆ 2 k0 ÷ ou ƒÆ 2 est lfangle entre |ƒÔ. et |ƒÕH., egalement defini par la relation sin .. ƒÆ 2 = 1 p N . |ƒÔ. k0 ÷ |ƒÕH. ƒÆ 2 4.4. Iterations de la transformation de Grover La transformation de Grover G = SƒÕH . Of , est une rotation dfangle ƒÆ. Donc apres . iterations on obtient le n-qubit G. |ƒÕH. = cos(ƒÆ.) |ƒÔ. + sin(ƒÆ.) k0 ÷ avec ƒÆ. = ƒÆ 2 + .ƒÆ. On veut ƒÆ. . ƒÎ2 , cfest-a-dire ƒÆ 2 + .ƒÆ . ƒÎ2 . Ainsi . est defini comme lfentier le plus proche de ƒÎ 2ƒÆ . 1 2 . |ƒÔ. k0 ÷ |ƒÕH. ƒÆ 2 G |ƒÕH. G. |ƒÕH. ƒÆ Donnons une approximation du nombre . dfiterations necessaires. Pour cela nous considerons que N = 2n est grand, et donc ƒÆ est petit. Comme sin .. ƒÆ 2 = 1 p N alors ƒÆ 2 . 1 p N (car pour x proche de 0, sin(x) . x). On veut .ƒÆ . ƒÎ2 donc . . ƒÎ 2ƒÆ et ainsi ALGORITHME DE GROVER 140 . . ƒÎ 4 p N 4.5. Mesure Apres ces . iterations nous avons ƒÆ. . ƒÎ2 , donc G. |ƒÕH. = cos(ƒÆ.) |ƒÔ. + sin(ƒÆ.) k0 ÷ . k0 ÷ . La mesure de ce n-qubit conduit donc probablement au n-bit k0 et permet alors dfidentifier le rang k0. Les details des probabilites sont donnes ci-dessous. 5. Probabilites Nous avons construit un qubit G. |ƒÕH. qui est proche de k0 ÷ . Ce qubit a donc de grandes chances dfetre mesure en k0 et donc on retrouve le rang cherche k0, mais ce nfest pas une certitude. Avec quelle probabilite obtient-on le resultat correct ? Nous allons calculer cette probabilite dfobtenir le bon resultat. Proposition 4. Lfalgorithme de Grover renvoie le rang correct k0 avec une probabilite superieure a 1 . 4N . Ainsi la probabilite que lfalgorithme renvoie un mauvais resultat est inferieure a 4N . Prenons par exemple n = 10, alors N = 1 2n = 1024 et lfalgorithme fournit le resultat correct dans plus de 99,6% des cas. Demonstration. . Le qubit final obtenu par lfalgorithme de Grover est G. |ƒÕH. = cos(ƒÆ.) |ƒÔ. + sin(ƒÆ.) k0 ÷ . Donc, lors de la mesure, la probabilite dfobtenir la bonne reponse k0 est p = | sin(ƒÆ.)|2. . Nous savons que la transformation de Grover G est une rotation dfangle ƒÆ et nous avons itere cette transformation . fois de facon a construire un angle ƒÆ. = ƒÆ 2 +.ƒÆ le plus proche possible de lfangle ƒÎ2 . Ainsi lfangle ƒÆ. est dans un intervalle dfamplitude ƒÆ centre en ƒÎ2 : ƒÎ 2 . ƒÆ 2 < ƒÆ. . ƒÎ 2 + ƒÆ 2 . . Ainsi sin(ƒÆ.) . sin ..ƒÎ2 . ƒÆ 2 (voir la figure ci-dessous). x sin(x) 0 ƒÎ ƒÎ2 ƒÎ2 . ƒÆ 2 ƒÎ2 + ƒÆ 2 sin( ƒÎ2 . ƒÆ 2 ) 0 1 Donc : sin(ƒÆ.) . sin ..ƒÎ2 . ƒÆ 2 = cos .. ƒÆ 2 . 1 . 1 2 . ƒÆ 2 .2 . Pour la derniere inegalite on connait le developpement limite cos(x) . 1 . x2 2 (pour x proche de 0), mais on a en plus lfinegalite cos(x) . 1 . x2 2 (figure de gauche ci-dessous). ALGORITHME DE GROVER 141 x cos(x) 1 . 12 x2 0 ƒÎ2 .ƒÎ2 0 1 x x 12 x sin(x) 0 ƒÎ ƒÎ2 0 1 . Lfangle ƒÆ est defini avec la relation sin .. ƒÆ 2 = 1 p N . On sait que, pour x proche de 0, on a sin(x) . x, mais on a en plus lfinegalite sin(x) . x2 (figure de droite ci-dessus). Ainsi, comme sin .. ƒÆ 2 = 1 p N , alors 1 p N . ƒÆ 4 donc 4N . .. ƒÆ 2 2 et alors en reprenant les inegalites ci-dessus : sin(ƒÆ.) . 1 . 1 2 . ƒÆ 2 .2 . 1 . 2 N . Enfin on a (1 . x)2 = 1 . 2x + x2 . 1 . 2x quel que soit x, donc p = | sin(ƒÆ.)|2 . . 1 . 2 N .2 . 1 . 4 N . TR O I S I EME PA RT I E | 1 . 0 > | 1 . 0 > A L G O R I T HME D E S H O R 142 Arithmetique Chapitre 12 Video ¡ partie 12.1. Elements d'arithmetique Video ¡ partie 12.2. Cryptographie RSA La securite des communications sur internet est basee sur lfarithmetique et en particulier sur le systeme de cryptographie RSA qui repose sur la difficulte de factoriser de tres grands entiers avec un ordinateur classique. Nous presentons dans ce chapitre les notions essentielles dfarithmetique afin de comprendre plus tard lfalgorithme de Shor qui permet de factoriser rapidement un entier a lfaide dfun ordinateur quantique. 1. Division et pgcd 1.1. Divisibilite Definition. Soient a, b ¸ Z avec b non nul. On dit que b divise a sfil existe un entier k ¸ Z tel que a = kb . On note alors b|a. On dit aussi que a est divisible par b ou encore que b est un diviseur de a. Par exemple : . 3|12 (á 3 divise 12 â ou bien á 12 est divisible par 3 â). . Plus generalement les diviseurs positifs de 12 sont 1, 2, 3, 4, 6, 12. . Quel que soit b ¸ Z, non nul, on a b|0. 1.2. Division euclidienne La division euclidienne permet de generaliser la notion de divisibilite. Soient a ¸ Z et b ¸ N \ {0}. Il existe des entiers q, r ¸ Z, uniques, tels que a = bq + r et 0 . r < b . Lfentier q est le quotient et r est le reste. . Exemple : a = 101, b = 7 alors q = 14 et r = 3 car 101 = 7 ~ 14 + 3. . Le reste est nul si et seulement si b divise a. . On note aussi (de facon un peu abusive) r = a (mod b). . Avec Python on calcule le quotient par q = a//b (a noter la double barre de division) et le reste r = a % b. ARITHMETIQUE 144 1.3. Pgcd Soient a, b ¸ Z (non tous les deux nuls). Le pgcd de a et b est le plus grand entier qui divise a la fois a et b. Par exemple avec a = 42 et b = 24, les diviseurs positifs communs a a et b sont {1,2,3,4,6}, donc pgcd(42, 24) = 6. 1.4. Nombres premiers entre eux Les entiers a et b sont premiers entre eux si leur pgcd vaut 1. Par exemple a = 20 et b = 33 sont premiers entre eux, car le seul diviseur positif de ces deux entiers est 1. Autre exemple : deux entiers consecutifs sont toujours premiers entre eux. Preuve : si d > 0 divise a et a +1 alors d divise (a + 1) . a, donc d divise 1, donc d egal 1. 1.5. Theoreme de Bezout Theoreme 1 (Theoreme de Bezout). Soient a, b des entiers non nuls. Il existe des entiers u, v ¸ Z tels que au + bv = pgcd(a, b) On a meme une equivalence lorsque les entiers sont premiers entre eux : Corollaire 1. Soient a, b deux entiers non nuls. a et b sont premiers entre eux si et seulement si il existe u, v ¸ Z tels que au + bv = 1 Exemples : . a = 42 et b = 24. On a vu pgcd(42, 24) = 6. Avec u = .1 et v = 2, on obtient 42 ~ (.1) + 24 ~ 2 = 6. . a = 20 et b = 33. On a vu pgcd(20, 33) = 1. Avec u = 5 et v = .3, on obtient 20 ~ 5 + 33 ~ (.3) = 1. 1.6. Algorithme dfEuclide Lfalgorithme dfEuclide est une methode efficace pour calculer le pgcd et sa version etendue permet de trouver des coefficients u, v du theoreme de Bezout. Soient a, b ¸ N .. Considerons la division euclidienne a = bq + r, ou r est le reste. Alors pgcd(a, b) = pgcd(b, r) Pour en faire un algorithme on calcule des divisions euclidiennes successives. Le pgcd sera le dernier reste non nul car on sait que pgcd(a, 0) = a. Exemple. Calculons le pgcd d de a = 11 466 et b = 1656. . Division euclidienne de a par b : 11466 = 6 ~ 1656 + 1530, donc le reste est r1 = 1530. On utilise alors d = pgcd(a, b) = pgcd(b, r1), donc pgcd(11 466, 1656) = pgcd(1656, 1530). . Division euclidienne de b = 1656 par r1 = 1530 : 1656 = 1 ~ 1530 + 126, donc le reste est r2 = 126. Notre pgcd d vaut maintenant pgcd(1530, 126). . Division euclidienne de 1530 par 126 : 1530 = 12 ~ 126 + 18, donc le reste est r3 = 18 et d = pgcd(126, 18). . Division euclidienne de 128 par 18 : 126 = 7 ~ 18 + 0, donc le reste est nul. Or pgcd(18, 0) = 18. ARITHMETIQUE 145 . Le pgcd est le dernier reste non nul, ainsi pgcd(11 466, 1656) = 18. Lfalgorithme dfEuclide est lfun des plus anciens algorithmes mais il est cependant tres efficace ! Le nombre dfetapes dans lfalgorithme est assez faible : si a et b sfecrivent (en base 10) avec moins de n chiffres, alors il y a au plus 5n etapes dans lfalgorithme dfEuclide. Donc par exemple, avec des entiers a 100 chiffres, il y a au plus 500 etapes. 1.7. Lemme de Gauss Proposition 1 (Lemme de Gauss). Soient a, b, c ¸ Z (avec a non nul). Si a|bc et pgcd(a, b) = 1 alors a|c Exemple : si un entier a divise (a + 1)c alors a|c (cfest le lemme de Gauss, sachant qufon a toujours pgcd(a, a + 1) = 1). Attention aux hypotheses : 6 divise 4~9, mais 6 ne divise ni 4 ni 9. Cela ne contredit pas le lemme de Gauss car 6 nfest premier ni avec 4, ni avec 9. La preuve decoule du theoreme de Bezout : comme par hypothese pgcd(a, b) = 1, il existe u, v ¸ Z tels que au+ bv = 1. On multiplie cette egalite par c pour obtenir acu+ bcv = c. Mais a|acu et par hypothese a|bcv donc a divise acu + bcv = c. 2. Nombres premiers 2.1. Definition Definition. Un nombre premier p est un entier superieur ou egal a 2 dont les seuls diviseurs positifs sont 1 et p. Exemples. . 2, 3, 5, 7, 11, 13, . . . sont des nombres premiers. . Un theoreme dfEuclide nous dit qufil y a une infinite de nombres premiers. . Par definition, 1 nfest pas un nombre premier. 2.2. Decomposition en facteurs premiers Theoreme 2. Tout entier n . 2 se decompose en produit de facteurs premiers : n = pƒ¿1 1 ~ pƒ¿2 2 ~ E E E ~ pƒ¿r r ou les pi sont des nombres premiers, et les exposants ƒ¿i . 1 sont des entiers. De plus, cette decomposition est unique (a lfordre des facteurs pres). 2.3. Petit theoreme de Fermat Theoreme 3 (Petit theoreme de Fermat). Si p est un nombre premier ne divisant pas a alors ap.1 ß 1 (mod p) ARITHMETIQUE 146 Une variante : pour a un entier quelconque et p un nombre premier : ap ß a (mod p) Nous reviendrons sur les congruences dans la section suivante. 2.4. Algorithmes et nombres premiers Nous allons discuter de plusieurs algorithmes qui permettent de decider si un entier n donne est un nombre premier ou pas. Tester les diviseurs un par un. On teste si d divise n pour d = 2, d = 3, d = 4,. . . Cela se fait par un calcul de division euclidienne. Si on obtient un diviseur strictement inferieur a n, alors n nfest pas premier. Si on ne trouve pas de diviseur alors n est premier. Ameliorations possibles : on peut tester d = 2, et ensuite ne tester que des entiers d impairs ; on peut aussi limiter la recherche des diviseurs a ceux verifiant d . p n (critere de Napoleon). Crible dfEratosthene. On peut aussi dresser une longue liste de nombres premiers, au dela de lfentier n. Lfavantage est qufil suffit alors de verifier si lfentier n est dans la liste pour savoir sfil est premier. Mais le crible est une methode lente et ne permet pas dfobtenir de tres grands nombres premiers. Test probabiliste de Fermat. Le petit theoreme de Fermat nous dit que si p est un nombre premier et a est un entier avec 1 . a < p alors ap.1 ß 1 (mod p). Pour tester si un entier n est premier, on fixe un entier 1 < a < n, on calcule an.1 (mod n) (cfest tres facile grace a lfexponentiation rapide, voir plus loin). . Si an.1 .ß 1 (mod n) alors on est sur que n nfest pas un nombre premier. . Si an.1 ß 1 (mod n) alors on dit que n valide le test de Fermat pour lfentier a et qufil est probablement premier. Cependant il existe des exceptions : certains entiers valident le test de Fermat mais ne sont pas des nombres premiers. Par exemple parmi tous les entiers n . 1000000, tous ceux qui passent le test de Fermat a la fois pour a = 2, a = 3, a = 5 et a = 7 sont des nombres premiers (il y en a 78498) a lfexceptions de 19 entiers (le premier de la liste est n = 29 341 = 13 ~ 37 ~ 61). Le test de Fermat permet de produire des entiers tres grands qui sont probablement des nombres premiers : on choisit un entier impair n au hasard, on effectue un test de Fermat, si le test est concluant alors n est probablement un nombre premier, sinon on essaie lfentier n + 2. . . Algorithmes modernes. Une amelioration du test de Fermat est lfalgorithme de Miller-Rabin. Par ailleurs, il a ete recemment demontre par Agrawal.Kayal.Saxena que le test de primalite peut etre effectue en temps polynomial (algorithme AKS). Meme si dans la pratique lfalgorithme nfest pas tres utile, cfest une grande avancee theorique. Lfalgorithme est base sur le fait que si p est un nombre premier alors on a lfegalite polynomiale : (X + 1)p ß X p + 1 (mod p). 2.5. Algorithmes et factorisation Tester si un entier est premier ou donner sa factorisation sont au final deux problemes distincts. On a vu, grace au petit theoreme de Fermat, qufon peut decider qufun entier nfest pas premier sans lui avoir trouve de facteur. Le probleme de factoriser un entier n, ou au moins de trouver un facteur non trivial, est donc plus difficile. Tester les diviseurs un par un. Comme auparavant on peut tester les diviseurs un par un jusqufa p n, la complexite est en O( p n). On peut bien sur ne tester que les diviseurs premiers (ce qui est plus rapide) mais cela demande au prealable dfavoir une liste des premiers nombres premiers (ce qui est long). Cfest donc une methode efficace uniquement pour trouver les petits diviseurs. ARITHMETIQUE 147 Facteurs de Fermat. On peut essayer dfexprimer n comme difference de deux carres, on obtient alors une factorisation. En effet, si cfest le cas : n = a2 . b2 = (a . b)(a + b). Reciproquement tout entier impair non premier est la difference de deux carres. En effet, si n = cd alors n = .. c+d 2 2 . .. c.d 2 2 . Cela fournit un algorithme de recherche dfun facteur de n : prendre un entier a (generalement proche de p n), calculer si bŒ = n . a2 est un carre de la forme b2, si cfest le cas, on obtient une factorisation (a . b)(a + b), sinon on recommence avec a +1. Cfest une methode efficace si les facteurs premiers sont grands, donc cette methode est complementaire de la precedente. Algorithmes modernes. Aucun algorithme connu nfa de complexite polynomiale. Plus precisement, on ne connait pas dfalgorithme de factorisation ayant une complexite polynomiale, mais on ne sait pas non plus prouver qufun tel algorithme nfexiste pas. Le meilleur algorithme connu pour factoriser des grands entiers est lfalgorithme GNFS (pour General Number Field Sieve), sa complexite est environ O(n13 ) (cfest donc une complexite exponentielle par rapport a la taille de n qui est dfordre ln(n)). 3. Congruence modulo n 3.1. Modulo n Definition. Soit n . 1 un entier. On dit a ß b (mod n) sfil existe k ¸ Z tel que a = kn + b, autrement dit si b . a est divisible par n. On dira a est congru a b modulo n. Proposition 2. Si a ß b (mod n) et aŒ ß bŒ (mod n) alors : a + aŒ ß b + bŒ (mod n) et a E aŒ ß b E bŒ (mod n). De plus ak ß bk (mod n), quel que soit k ¸ N. Exemples. . 33 ß 3 (mod 15) car 33 = 2 ~ 15 + 3. . 1789 = 105~17+4 donc 1789 ß 4 (mod 17), mais aussi 1789 = 104~17+21 et 1789 ß 21 (mod 17). . Un entier a est pair si et seulement si a ß 0 (mod 2). . Par consequent si a est impair alors ak est impair. En effet a impair, implique a ß 1 (mod 2), donc ak ß 1k ß 1 (mod 2), donc ak est impair. 3.2. Inverse modulo n Definition. Soit n . 1 un entier. On dit que a est inversible modulo n, sfil existe b ¸ Z tel que a E b ß 1 (mod n). On dit alors que b est lfinverse de a modulo n. Exemples. . Avec n = 15, a = 2 est inversible modulo 15, car avec b = 8 on a E b = 2 ~ 8 = 16 ß 1 (mod 15). . Avec n = 15, a = 7 est inversible modulo 15, car avec b = 13 on a E b = 7 ~ 13 = 91 ß 1 (mod 15). . Avec n = 15, a = 3 nfest pas inversible. Proposition 3. a est inversible modulo n si et seulement si pgcd(a, n) = 1. ARITHMETIQUE 148 Demonstration. pgcd(a, n) = 1 .ËÎu, v ¸ Z au + nv = 1 (par le theoreme de Bezout) .ËÎu, v ¸ Z au = 1 . nv .ËÎu ¸ Z au ß 1 (mod n) .Ë a est inversible modulo n. La preuve justifie que lfon peut trouver lfinverse de a modulo n a lfaide des coefficients de Bezout u, v. Ces coefficients se calculent a lfaide de lfalgorithme dfEuclide etendu. 3.3. Groupes Pour etre un peu plus theorique, on definit : . .. Z/nZ,+ le groupe additif des entiers modulo n. Cfest un groupe commutatif (a + b ß b + a (mod n)), ayant n elements. Lfelement neutre pour lfaddition est 0, lfinverse dfun element a est .a. . .. (Z/nZ).,~ le groupe des inversibles modulo n. Cfest un groupe multiplicatif, commutatif (a~b ß b~a (mod n)). Son element neutre est 1, lfinverse dfun element a est son inverse modulo n, note b, tel que ab ß 1 (mod n). Le groupe (Z/nZ). possede .(n) elements (ou .(n) est defini juste apres). 3.4. Indicatrice dfEuler Definition. Soit n . 1. Lfindicatrice dfEuler .(n) est le nombre dfentiers a premiers avec n, tels que 1 . a . n. Une consequence immediate est que .(n) est le nombre dfelements inversibles modulo n : .(n) = Card(Z/nZ).. Exemples. . Soit n = 15. Les entiers a premiers avec 15 sont {1, 2, 4, 7, 8, 11, 13, 14}, donc .(n) = 8. . Si p est nombre premier alors .(p) = p . 1 car tout entier a, avec 1 . a < p, est premier avec p. La proposition suivante permet de calculer .(n) a partir de la decomposition de n en facteurs premiers. Proposition 4. . Si n = pq (avec p, q deux nombres premiers distincts) alors .(n) = (p . 1)(q . 1). . S n = pk (avec k . 1) alors .(n) = pk . pk.1. . Formule generale. Si n = pƒ¿1 1 E E E pƒ¿. . alors .(n) = n Y. i=1 . 1 . 1 pi . . Demonstration. . Si n = pq alors les entiers a qui ne sont pas premiers avec n sont les p,2p,3p, . . . , (q . 1)p et les q, 2q, . . . , (p . 1)q et pq. Il y a en a donc (q . 1) + (p . 1) + 1 = p + q . 1. Les autres sont premiers avec n et sont au nombre de pq . (p + q . 1) = (p . 1)(q . 1). . Si n = pk alors les entiers qui ne sont pas premiers avec n sont les multiples de p de la forme ƒ¿p avec 1 . ƒ¿ . pk.1. Il y en a donc pk.1. . Nous admettons la formule generale qui se prouve par recurrence a partir de la formule .(ab) = .(a) E .(b) lorsque a et b sont premiers entre eux. ARITHMETIQUE 149 3.5. Theoreme dfEuler Le theoreme dfEuler est une version generalisee du petit theoreme de Fermat. Theoreme 4 (Theoreme dfEuler). Si a et n sont premiers entre eux alors : a.(n) ß 1 (mod n) On pourrait deduire ce resultat du theoreme de Lagrange applique au groupe fini (Z/nZ). de cardinal .(n). Nous allons en donner une autre demonstration. Demonstration. Fixons n et fixons a premier avec n. Notons A = {a1, a2, . . . , a.(n) } lfensemble des entiers inferieurs a n et premiers avec n (notre entier a est lfun de ces elements et en fait A = (Z/nZ).). Considerons lfapplication f : A ¨ A, definie par f (ai) = a E ai (mod n). Comme a est inversible modulo n, alors f est bijective (sa bijection reciproque est f .1(ai) = b E ai (mod n) ou b est lfinverse de a modulo n). Ainsi AŒ = {a E a1, a E a2, . . . , a E a.(n) } contient les memes termes que notre ensemble A = {a1, . . . , a.(n) } (mais les elements sont permutes) : AŒ = A. Comme ces ensembles sont egaux, alors le produit des elements de AŒ est egal au produit des elements de A : .Y(n) i=1 (a E ai) ß .Y(n) i=1 ai (mod n) donc a.(n) .Y(n) i=1 ai ß .Y(n) i=1 ai (mod n), et comme les ai sont inversibles modulo n, alors a.(n) ß 1 (mod n). 3.6. Exponentiation Fixons n . 1 et a ¸ Z. Il sfagit de calculer ak (mod n), pour un entier k . 0. Exponentiation classique. Si on a besoin de connaitre tous les ak (mod n) pour k = 1, 2, 3, . . . alors on les calcule successivement en utilisant la relation ak+1 = ak E a. Exemple. Calcul des 2k (mod 25). 20 ß 1 (mod 25) 25 ß 2 ~ 16 ß 7 (mod 25) 21 ß 2 (mod 25) 26 ß 2 ~ 7 ß 14 (mod 25) 22 ß 2 ~ 2 ß 4 (mod 25) 27 ß 2 ~ 14 ß 28 ß 3 (mod 25) 23 ß 2 ~ 4 ß 8 (mod 25) 28 ß 2 ~ 3 ß 6 (mod 25) 24 ß 2 ~ 8 ß 16 (mod 25) E E E Noter que chaque calcul est une simple multiplication par a du resultat precedent et qufon reduit immediatement modulo n afin que les entiers en jeu restent de petite taille. Exponentiation rapide. Si on a besoin de connaitre un seul ak (mod n), alors on nfest pas oblige de calculer toutes les puissances precedentes, mais seulement celles dont lfexposant k est une puissance de 2. Exemple. On souhaite calculer 321 (mod 31). . On decompose lfexposant 21 en base 2 : 21 = 16 + 4 + 1. ARITHMETIQUE 150 . On calcule successivement 31, 32, 34, 38,. . . en utilisant que 32k = (3k)2. De plus tous les calculs se font modulo n = 31. 31 ß 3 (mod 31) 32 ß 9 (mod 31) 34 ß (32)2 ß 92 ß 81 ß 19 (mod 31) 38 ß (34)2 ß 192 ß 361 ß 20 (mod 31) 316 ß (38)2 ß 202 ß 400 ß 28 (mod 31) . On combine les resultats : 321 = 316+4+1 = 316 ~ 34 ~ 31 ß 28 ~ 19 ~ 3 ß 1596 ß 15 (mod 31). 4. Cryptographie RSA 4.1. Chiffrement a cle secrete Jusqufa recemment pour que Bob envoie un message a Alice, sans que personne ne puisse prendre connaissance du contenu, on utilisait un chiffrement a cle secrete. Une methode (tres basique) consiste par exemple a decaler chaque lettre dfun certain rang C. Par exemple si C = 3, Bob chiffre son message BAC en EDF. Alice peut facilement dechiffrer le message si elle connait la cle C. On represente ce protocole ainsi : Bob depose son message dans un coffre fort pour Alice, Alice et Bob etant les seuls a posseder la cle du coffre. ALICE BOB La grande difficulte est que Alice et Bob doivent dfabord se communiquer la cle. BOB ALICE Message M Message M Message chiffre X Cle C Chiffrement C Dechiffrement D 4.2. Chiffrement a cle publique Le chiffrement a cle publique est une petite revolution : nfimporte qui peut envoyer un message chiffre a Alice en utilisant la cle publique dfAlice, mais seule Alice peut dechiffrer le message a lfaide dfune cle secrete qufelle est la seule a connaitre. De facon imagee, si Bob veut envoyer un message a Alice, il depose son message dans la boite aux lettres dfAlice, seule Alice pourra ouvrir sa boite et consulter le message. Ici la cle publique est symbolisee par la ARITHMETIQUE 151 boite aux lettres, tout le monde peut y deposer un message, la cle qui ouvre la boite aux lettres est la cle privee dfAlice. ALICE BOB Si Bob veut envoyer un message secret a Alice, le processus se decompose ainsi : 1. Alice prepare une cle publique et une cle privee, 2. Bob utilise la cle publique dfAlice pour chiffrer son message, 3. Alice recoit le message chiffre et le dechiffre grace a sa cle privee. BOB ALICE Message M Message M Message chiffre X Cle publique Cle privee Chiffrement C Dechiffrement D Pour chiffrer un message, on commence par le transformer en un .ou plusieurs. nombres. Dans toute la suite le message que Bob envoie est un entier. 4.3. Principe du chiffrement RSA Voici en resume le protocole RSA. . On choisit deux nombres premiers p et q que lfon garde secrets et on pose n = p ~ q. Le principe etant que meme connaissant n il est tres difficile de retrouver p et q. . La cle secrete et la cle publique se determinent a lfaide de lfalgorithme dfEuclide et des coefficients de Bezout. . Les calculs de chiffrement se feront modulo n. . Le dechiffrement fonctionne grace au theoreme dfEuler. Et voici un schema qui presente le chiffrement et le dechiffrement : . n, e forment la cle publique dfAlice . d est la cle privee dfAlice, . m est le message secret que Bob souhaite transmettre a Alice, . x est le message chiffre que Bob calcule a partir de la cle publique dfAlice et qufil lui transmet, . seule Alice peut retrouver m par un calcul a partir de x et de sa cle privee. ARITHMETIQUE 152 Bob Alice n, e m ? - C - x ß me (mod n) d D - ? m ß xd (mod n) 4.4. Protocole du chiffrement RSA Choix de deux nombres premiers Alice effectue, une fois pour toutes, les operations suivantes (en secret) : . elle choisit deux nombres premiers distincts p et q (dans la pratique ce sont de tres grands nombres, jusqufa des centaines de chiffres), . elle calcule n = p ~ q, . elle calcule .(n) = (p . 1) ~ (q . 1). Vous noterez que le calcul de .(n) nfest possible que si la decomposition de n sous la forme p~q est connue. Dfou le caractere secret de .(n) meme si n est connu de tous. Choix dfun exposant et calcul de son inverse Alice continue : . elle choisit un exposant e tel que pgcd(e,.(n)) = 1, . elle calcule lfinverse d de e modulo .(n) : d ~ e ß 1 (mod .(n)). Ce calcul se fait par lfalgorithme dfEuclide etendu. Cle publique/cle privee La cle publique dfAlice est constituee des deux nombres : n et e Et comme son nom lfindique, Alice communique sa cle publique au monde entier. Alice garde pour elle sa cle privee : d Noter que le calcul de d necessite .(n), qufAlice est la seule a connaitre. Alice peut detruire p, q et .(n) qui ne sont plus utiles. Elle ne conserve secretement que sa cle privee. Message chiffre Le message est un entier m, tel que 0 . m < n. Bob recupere la cle publique dfAlice, n et e, avec laquelle il calcule : x ß me (mod n) Il transmet ce message x a Alice. ARITHMETIQUE 153 Dechiffrement du message Alice recoit le message x chiffre par Bob, elle le dechiffre a lfaide de sa cle privee d, par lfoperation : m ß xd (mod n) Nous allons prouver dans le lemme 1 que cette operation permet a Alice de retrouver le message original m de Bob. 4.5. Exemple Mise en place par Alice. . Alice choisit p = 5 et q = 11, elle calcule n = p ~ q = 55. . Elle calcule aussi .(n) = (p . 1)(q . 1) = 4 ~ 10 = 40. . Alice choisit par exemple lfentier e = 3 qui est bien premier avec .(n). . Alice calcule d, lfinverse de e modulo .(n), ici elle trouve d = 27 car 3 ~ 27 = 81 ß 1 (mod 40). . La cle publique dfAlice est (n, e) = (55, 3), sa cle privee est d = 27. Envoi du message de Bob a Alice. . Bob souhaite envoyer le message m = 41 a Alice. . Bob calcule x ß me (mod n) a lfaide de la cle publique dfAlice. Ici x ß me ß 413 ß 68 921 ß 6 (mod 55). . Bob transmet x = 6 a Alice. . Seule Alice peut dechiffrer le message a lfaide de sa cle secrete d, en effet le calcul de xd (mod n) redonne le message original m. Ici xd ß 627 ß 41 (mod 55). Ainsi Alice obtient bien le message m = 41. (Pour le calcul de 627 (mod 55) on utilise les techniques dfexponentiation vues precedemment). 4.6. Lemme de dechiffrement Le principe de dechiffrement repose sur le theoreme dfEuler. Lemme 1. Soit d lfinverse de e modulo .(n). Si x ß me (mod n) alors m ß xd (mod n). Ce lemme prouve bien que le message original m de Bob, chiffre a lfaide de la cle publique dfAlice (e, n) en le message x, peut-etre retrouve par Alice a lfaide de sa cle secrete d. Demonstration. . Que d soit lfinverse de e modulo .(n) signifie d E e ß 1 (mod .(n)). Autrement dit, il existe k ¸ Z tel que d E e = 1 + k E .(n). . On rappelle que, par le theoreme dfEuler, lorsque m et n sont premiers entre eux m.(n) ß 1 (mod n). . Supposons pgcd(m, n) = 1. Notons x ß me (mod n) et calculons xd : xd ß (me)d ß meEd ß m1+kE.(n) ß mE mkE.(n) ß mE (m.(n))k ß mE (1)k ß m (mod n). ARITHMETIQUE 154 . On admet que si m et n ne sont pas premiers entre eux, le resultat reste vrai (il faut adapter les arguments precedents). Note. Certains passages de ce chapitre sont extraits du chapitre á Arithmetique â du livre á Algebre â dfExo7. La section sur le chiffrement RSA est tiree du cours á Cryptographie â ecrit avec Francois Recher. Algorithme de Shor Chapitre 13 Video ¡ partie 13.1. Arithmetique pour l'algorithme de Shor Video ¡ partie 13.2. Debut de l'algorithme de Shor Video ¡ partie 13.3. Transformee de Fourier discrete (pour Shor) Video ¡ partie 13.4. Fin de l'algorithme de Shor Nous detaillons le circuit et les calculs qui permettent une factorisation rapide des entiers a lfaide dfun ordinateur quantique. 1. Arithmetique pour lfalgorithme de Shor 1.1. Objectif : factoriser N Soit N un entier. Nous aimerions decomposer N en produit de facteurs premiers : N = pƒ¿1 1 pƒ¿2 2 E E E pƒ¿s s . Pour cela il suffit de trouver un algorithme qui fournit un facteur d de N, avec 1 < d < N. Ensuite pour obtenir la factorisation complete, il suffit dfappliquer iterativement cet algorithme a d et a Nd . Par exemple dans le cas N = pq de la cryptographie RSA, il nfy a qufune seule etape. Au debut de lfalgorithme, on commence par choisir au hasard un entier a avec 1 < a < N. On calcule le pgcd de a et de N par lfalgorithme dfEuclide (cfest une etape tres rapide). . Si pgcd(a,N) .= 1 alors d = pgcd(a,N) est un facteur non-trivial de N et lfalgorithme est termine ! (Par exemple dans le cas N = pq, cette situation est rare, car il faudrait choisir a un multiple de p ou de q.) . Si pgcd(a,N) = 1, alors a ¸ (Z/NZ)., cfest-a-dire a est inversible modulo N. En particulier il existe un entier k > 0, tel que ak ß 1 (mod N). 1.2. Ordre Definition. On appelle ordre dfun entier a modulo N, le plus petit entier r strictement positif tel que ar ß 1 (mod N) : r = min k > 0 | ak ß 1 (mod N) . Le theoreme de Lagrange pour le groupe (Z/NZ). de cardinal .(N) donne une borne sur r. Proposition 1. Si .(N) est lfindicatrice dfEuler et a est un nombre premier avec N, alors a.(N) ß 1 (mod N) et lfordre de a modulo n divise .(N). Mais attention, ni lfordre r, ni lfindicatrice .(N) ne sont faciles a calculer. Par exemple dans le cas N = pq, alors .(N) = (p . 1)(q . 1) et on ne peut pas calculer .(N) sans connaitre les facteurs p et q (que lfon ne connait pas car cfest ce que lfon veut calculer). ALGORITHME DE SHOR 156 1.3. Periode Proposition 2. Lfordre r de lfentier a modulo N est la plus petite periode de la fonction k f 7.¨ ak (mod N). Demonstration. . Par definition de lfordre r, on sait ar ß 1 (mod N) et ak .ß 1 (mod N) pour 0 < k < r. . r est une periode : ak+.r = ak E a.r = ak E (ar ). ß ak E 1. ß ak (mod N), donc f (k + .r) = f (k). . r est la plus petite periode : par lfabsurde si s < r etait une periode plus petite, alors f (s) = f (0) donc as ß a0 ß 1 (mod N). Mais par definition, r est le plus petit entier tel que ar ß 1 (mod N), donc s . r et nous avons une contradiction. 1.4. Facteurs de N Nous allons faire plusieurs hypotheses au cours de ce chapitre. Nous discuterons plus tard de leur pertinence. Hypothese 1. Lfordre r de a modulo N est pair. Nous verrons dans le chapitre suivant á Complements dfarithmetique â que cfest le cas pour plus de la moitie des entiers a choisis au depart. Si r nfest pas pair, alors on arrete lfalgorithme et on choisit une nouvelle valeur de a. Si r est pair, a lfaide de lfidentite a2 . b2 = (a . b)(a + b) et sachant que ar . 1 ß 0 (mod N), on obtient alors (ar/2 . 1)(ar/2 + 1) ß 0 (mod N) Cette decomposition est la cle pour une factorisation de N. Hypothese 2. ar/2 + 1 nfest pas divisible par N. Encore une fois nous verrons dans le chapitre suivant que cfest la cas pour une majorite des entiers a choisis au depart. Proposition 3. Avec les hypotheses 1 et 2, les entiers d = pgcd(ar/2 . 1,N) et dŒ = pgcd(ar/2 + 1,N) sont des facteurs non triviaux de N. Lemme 1. Si ab ß 0 (mod N) avec a .ß 0 (mod N) et b .ß 0 (mod N) alors pgcd(a,N) et pgcd(b,N) sont des diviseurs non triviaux de N. Remarque. Lfanneau des entiers Z est integre, cela signifie qui si un produit ab est nul alors lfun des facteurs a ou b est nul. Ici ce nfest pas le cas, car si N nfest pas un nombre premier lfanneau Z/NZ nfest pas integre. Par exemple avec N = 6 on a 2 ~ 3 ß 0 (mod 6). Preuve du lemme. Supposons ab ß 0 (mod N), cfest-a-dire N divise ab. ALGORITHME DE SHOR 157 . Si on avait pgcd(a,N) = 1, comme N|ab, par le lemme de Gauss on a N|b, donc b ß 0 (mod N), ce qui donnerait une contradiction. . Bien sur d = pgcd(a,N) est plus petit que N, et dfautre part d .= N car sinon a ß 0 (mod N). Ainsi d = pgcd(a,N) est un diviseur de N avec 1 < d < N, de meme pour dŒ = pgcd(b,N). Preuve de la proposition. . Tout dfabord ar/2 . 1 .ß 0 (mod N), car sinon ar/2 ß 1 (mod N) ce qui contredirait que r est le plus petit entier tel que ar ß 1 (mod N). . Lfhypothese 2 dit exactement que ar/2 + 1 .ß 0 (mod N). . Par le lemme d = pgcd(ar/2 . 1,N) et dŒ = pgcd(ar/2 + 1,N) sont des facteurs non triviaux de N. 1.5. Exemple de N = 15 Prenons N = 15. . Si lfentier a est choisi parmi {3, 5, 6, 9, 10, 12}, alors a nfest pas premier avec N. Dans ce cas d = pgcd(a,N) donne un diviseur strict de N et cfest termine. Par exemple si a = 9, alors d = pgcd(9,15) = 3 est un facteur de N = 15. . Si lfentier a ¸ {2, 4, 7, 8, 11, 13, 14} alors pgcd(a,N) = 1. Il faut maintenant calculer lfordre de a. . Prenons lfexemple de a = 2. Alors lfordre de 2 modulo 15 est r = 4, car 24 = 16 ß 1 (mod 15). . ar/2 . 1 = 22 . 1 = 3 ainsi d = 3 = pgcd(3, 15) est un facteur de N. . ar/2 + 1 = 22 + 1 = 5 ainsi dŒ = 5 = pgcd(5, 15) est aussi un facteur de N. . Dans ce cas nous avons factorise 15 = 3 ~ 5. . Prenons lfexemple de a = 7. Alors lfordre de 7 modulo 15 est encore r = 4, car 74 = 2401 ß 1 (mod 15). . ar/2 . 1 = 72 . 1 = 48 ainsi d = pgcd(48, 15) = 3 est un facteur de N. . ar/2 + 1 = 72 + 1 = 50 ainsi dŒ = pgcd(50, 15) = 5 est aussi un facteur de N. . Dans ce cas nous avons factorise 15 = 3 ~ 5. Voici une table qui resume les differents cas pour N = 15 : a a premier avec N ? (et ordre) facteurs 2 oui r = 4 d = pgcd(24/2 . 1, 15) = 3 et dŒ = pgcd(24/2 + 1, 15) = 5 3 non d = pgcd(3, 15) = 3 4 oui r = 2 d = pgcd(42/2 . 1, 15) = 3 et dŒ = pgcd(42/2 + 1, 15) = 5 5 non d = pgcd(5, 15) = 5 6 non d = pgcd(6, 15) = 3 7 oui r = 4 d = pgcd(74/2 . 1, 15) = 3 et dŒ = pgcd(74/2 + 1, 15) = 5 8 oui r = 4 d = pgcd(84/2 . 1, 15) = 3 et dŒ = pgcd(84/2 + 1, 15) = 5 9 non d = pgcd(9, 15) = 3 10 non d = pgcd(10, 15) = 5 11 oui r = 2 d = pgcd(112/2 . 1, 15) = 5 et dŒ = pgcd(112/2 + 1, 15) = 3 12 non d = pgcd(12, 15) = 3 13 oui r = 4 d = pgcd(134/2 . 1, 15) = 3 et dŒ = pgcd(134/2 + 1, 15) = 5 14 oui r = 2 lfhypothese 2 nfest pas verifiee, echec 1.6. Exemple de N = 21 Fixons N = 21. . Les a ¸ {3,6,7,9,12,14,15,18} ne sont pas premiers avec N. Dans ce cas d = pgcd(a,N) donne un diviseur strict de N et cfest termine. ALGORITHME DE SHOR 158 . Les elements a de {8, 13} sont dfordre r = 2 ; ceux de {2, 10, 11, 19} sont dfordre r = 6. Dans ces deux situations on obtient les facteurs d et dŒ egaux a 3 et 7. . Les elements a = 4 et a = 16 sont dfordre r = 3 impair. Lfhypothese 1 nfest pas verifiee et lfalgorithme echoue. . Pour a = 5, a = 17 ou a = 20, lfentier N = 21 divise ar/2 + 1. Lfhypothese 2 nfest pas verifiee et lfalgorithme echoue. Exemple. Prenons a = 2. Son ordre est r = 6, car 26 = 64 ß 1 (mod 21), lfordre est pair ; d = pgcd(26/2 . 1, 21) = pgcd(7,21) = 7 et dŒ = pgcd(26/2 + 1, 21) = pgcd(9, 21) = 3 sont les facteurs de N = 21. Exercice. Faire un tableau qui detaille tous les cas pour N = 21 (comme ci-dessus pour N = 15). 1.7. Calcul de lfordre sur un ordinateur classique Comme mentionne precedemment, il nfy a pas de formule pour calculer directement r ou .(N) si on ne connait pas deja les facteurs de N. Ainsi un algorithme dfinformatique classique pour calculer lfordre dfun element a modulo N necessiterait de calculer successivement a1, a2, a3, . . . modulo N, jusqufa trouver lfordre r caracterise par ar ß 1 (mod N). Il y a donc au total environ O(N) calculs du type ak (mod N). Cfest la qufintervient la magie de lfinformatique quantique qui permet dfevaluer tous les ak en meme temps. 2. Debut de lfalgorithme de Shor Pour un entier a fixe, le but est de calculer tous les ak modulo N pour k variant de 0 a N .1 afin de trouver lfordre r pour lequel ar ß 1 (mod N). On rappelle que cet ordre r est aussi la plus petite periode de la fonction k 7¨ ak (mod N). 2.1. Ordre Fixons un entier a. Considerons la fonction f definie par f : Z .¨ Z/NZ k 7.¨ ak (mod N). Ainsi f (1) = a (mod N), f (2) = a2 (mod N), f (3) = a3 (mod N),. . . On rappelle qufa une fonction f : x 7¨ y on associe lforacle F : (x, y) 7¨ (x, y . f (x)). Donc lforacle associe a notre fonction f : k 7¨ ak (mod N) est F : (k, y) 7¨ (k, y . ak (mod N)), mais notre circuit sera toujours initialise avec y = 0, donc dans notre situation nous considererons F : (k, 0) 7¨ (k, ak (mod N)). Exemple. Pour N = 15 et a = 2 : (0, 0) F 7.¨ (0, 1) (1, 0) F 7.¨ (1, 2) (2, 0) F 7.¨ (2, 4) (3, 0) F 7.¨ (3, 8) (4, 0) F 7.¨ (4, 1) car 16 ß 1 (mod 15) (5, 0) F 7.¨ (5, 2) car 32 ß 2 (mod 15) (6, 0) F 7.¨ (6, 4) car 64 ß 4 (mod 15) ... ALGORITHME DE SHOR 159 Choisissons un entier n tel que 2n . N. (Ce sera suffisant pour le cas etudie dans ce chapitre, mais dans le cas general il faut en fait avoir 2n . N2, voir le chapitre á Complements dfarithmetique â.) On peut alors coder nfimporte quel entier plus petit que 2n a lfaide dfun n-bit : pour 0 . x < 2n, on note x = xn.1 . . . x1.x0 son ecriture binaire sur n bits. premier registre k 8< : second registre 0 8< : k0 Of k0 / ... ... / kn.1 kn.1 / 0 / ... ... / 0 / 9= ; k 9= ; ak (mod N) Le circuit de lforacle est compose de deux registres, en entree le premier registre recoit lfentier k, code sur n bits, donc a lfaide de n lignes quantiques, meme chose pour le second registre qui correspond a 0. Nous avons egalement deux registres en sortie, le premier renvoie k et le second ak (mod N). Lforacle a bien pour action (k, 0) 7¨ (k, ak (mod N)). En termes de qubits, si lfentree de lforacle est k . 0 alors la sortie k . ak (mod N) ÷ . 2.2. Debut du circuit premier registre 8>< >: second registre 8>< >: |0. H Of / |0. ... H ... ... / |0. ... H ... ... / |0. / |0. ... ... ... / |0. ... ... ... / 9>= >; PƒÕ 3 9>= >; mesure du second registre . Initialisation. Le circuit est initialise par des qubits tous egaux a |0.. |ƒÕ0. = |0 . . . 0. . |0 . . . 0. = |0..n . |0..n = 0 . 0 . . Transformation de Hadamard. On applique une transformation de Hadamard, mais seulement sur le premier registre (donc sur les n premieres lignes). |ƒÕ1. = H.n .. 0 . 0 = . 1 p 2n 2Xn.1 k=0 k . . 0 = |ƒÕH. . 0 . . Oracle. On a vu que lforacle envoie k . 0 sur k . ak , donc |ƒÕ2. = 1 p 2n 2Xn.1 k=0 k . ak . Remarque. Les calculs dans le second registre se font modulo N. On raccourcit lfecriture ak (mod N) ÷ en ak . ALGORITHME DE SHOR 160 Nous allons maintenant recrire |ƒÕ2. en utilisant le fait que la fonction k 7¨ ak (mod N) est periodique de periode r. Hypothese 3. Lfordre r divise 2n. Cfest une hypothese qui sert a simplifier la suite des calculs. Contrairement aux hypotheses 1 et 2, ce nfest pas une hypothese vraie en general. Quand cette hypothese est fausse les calculs qui suivent doivent etre adaptes et sont un petit peu plus compliques, mais le principe reste le meme (voir le chapitre suivant). Sous lfhypothese 3, pour 0 . k < 2n, ecrivons la division euclidienne de k par r : k = ƒ¿r + ƒÀ avec 0 . ƒ¿ < 2n r et 0 . ƒÀ < r. Ainsi le qubit k . ak sfecrit aussi ƒ¿r + ƒÀ ÷ . aƒÀ car on rappelle que modulo N : ak = aƒ¿r+ƒÀ = aƒ¿r E aƒÀ = (ar )ƒ¿ E aƒÀ ß 1ƒ¿ E aƒÀ ß aƒÀ (mod N). Ainsi : |ƒÕ2. = 1 p 2n Xr.1 ƒÀ=0 2nX/r.1 ƒ¿=0 ƒ¿r + ƒÀ ÷ . aƒ¿r+ƒÀ = 1 p 2n Xr.1 ƒÀ=0 2nX/r.1 ƒ¿=0 ƒ¿r + ƒÀ ÷ ! . aƒÀ . 2.3. Mesure du second registre Apres lforacle, on effectue une mesure du second registre, cfest-a-dire des n dernieres lignes du circuit. On obtient pour ce second registre la mesure dfun aƒÀ0 pour un certain entier 0 . ƒÀ0 < r. Apres cette mesure le qubit du premier registre est : PƒÕ 3 = p r p 2n 2nX/r.1 ƒ¿=0 ƒ¿r + ƒÀ0 ÷ . Le qubit complet en sortie de circuit est donc |ƒÕ3. = PƒÕ 3 . aƒÀ0 (en supposant ici que la mesure du second registre aƒÀ0 , fige le second registre en le n-qubit aƒÀ0 ). 2.4. Que donnerait la mesure du premier registre? Le qubit PƒÕ 3 est une somme de ƒ¿r + ƒÀ0 ÷ , ƒ¿ = 0, . . . , 2n r . 1. Si on mesurait ensuite le premier registre, cfest-a-dire le qubit PƒÕ 3 alors on obtiendrait lfun des etats ƒ¿r + ƒÀ0 ÷ pour un certain 0 . ƒ¿ < 2n/r, ou plus exactement, un n-bit ƒ¿r + ƒÀ0, cfest-a-dire lfun des entiers ƒ¿r + ƒÀ0 pour un certain 0 . ƒ¿ < 2n/r. En plus, ces entiers ƒ¿r + ƒÀ0 sont tous equiprobables. Voici schematiquement ce que donne la mesure du premier registre : parmi toutes les possibilites 0 a 2n . 1 , la mesure donne lfun des ƒ¿r +ƒÀ0 ou ƒÀ0 est un entier fixe (donne par la mesure du second registre) et r est la periode. premier registre probabilite ƒÀ0 ÷ r + ƒÀ0 ÷ . . . ƒ¿r + ƒÀ0 ÷ r ALGORITHME DE SHOR 161 Le but est de trouver r, mais on ne connait ni ƒ¿, ni ƒÀ0, donc connaitre lfun des ƒ¿r + ƒÀ0, ne permet pas de retrouver r. Par exemple, pour N = 15, ƒÀ0 = 1, la mesure donne lfun des entiers 1, 5, 9 ou 13. Lfecart entre ces entiers donne la periode cherchee r = 4, mais la connaissance dfun seul de ces entiers ne permet pas de retrouver r. Malheureusement on ne peut pas refaire lfexperience pour obtenir un autre entier de la liste, car lors de la nouvelle experience on nfobtiendra pas necessairement le meme ƒÀ0. Il va falloir completer le circuit pour obtenir r. Cela va nous demander pas mal dfefforts et tout le reste de ce chapitre. 2.5. Exemple de N = 15 Essayons de factoriser N = 15. On prend alors n = 4, car 24 = 16 . N. Le circuit est donc compose de deux registres de 4-bits (donc 8 lignes en tout). On fixe un entier a premier avec N. Pour un exemple concret on prendra a = 2. . Initialisation. |ƒÕ0. = |0.0.0.0. . |0.0.0.0. = 0 . 0 . . Transformation de Hadamard. |ƒÕ1. = H.4 0 . 0 = 1 4 .. 0 + 1 + 2 + E E E + 15 . 0 . . Oracle. |ƒÕ2. = 1 4 .. 0 E a0 + 1 E a1 + 2 E a2 + E E E + 15 E a15 Souvenons-nous que les termes des seconds facteurs sont calcules modulo N. Considerons le choix de a = 2, alors lfordre que lfon veut determiner est r = 4 : 20 ß 1 (mod 15) 21 ß 2 (mod 15) 22 ß 4 (mod 15) 23 ß 8 (mod 15) 24 ß 16 ß 1 (mod 15) 25 ß 32 ß 2 (mod 15) E E E Donc |ƒÕ2. = 1 4 € 0 1 + 1 2 + 2 4 + 3 8 + 4 1 + 5 2 + 6 4 + 7 8 + 8 1 + 9 2 + 10 4 + 11 8 + 12 1 + 13 2 + 14 4 + 15 8 . On peut regrouper les termes selon le second facteur : |ƒÕ2. =14 €0 + 4 + 8 + 12 . 1 + 14 € 1 + 5 + 9 + 13 . 2 + 14 € 2 + 6 + 10 + 14 . 4 + 14 € 3 + 7 + 11 + 15 . 8 . Mesure du second registre. Une mesure sur le second registre renvoie de facon equiprobable : 1 ou 2 ou 4 ou 8. Le qubit PƒÕ 3 du premier registre depend alors de cette mesure : . si la mesure du second registre est 1 alors PƒÕ 3 = 1 2 .. 0 + 4 + 8 + 12 , . si la mesure du second registre est 2 alors PƒÕ 3 = 1 2 .. 1 + 5 + 9 + 13 , ALGORITHME DE SHOR 162 . si la mesure du second registre est 4 alors PƒÕ 3 = 1 2 .. 2 + 6 + 10 + 14 , . si la mesure du second registre est 8 alors PƒÕ 3 = 1 2 .. 3 + 7 + 11 + 15 . . Mesure du premier registre. On effectue ensuite une mesure sur le premier registre. Par exemple, placons-nous dans le cas ou le second registre a donne la mesure 2, alors le qubit PƒÕ 3 = 12 .. 1 + 5 + 9 + 13 se mesure de facon equiprobable en : 1 ou 5 ou 9 ou 13. premier registre probabilite 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 La mesure donne donc un entier parmi 1,5,9,13, qui ont un ecart entre eux de r = 4 (la periode que lfon veut trouver), mais comme on nfobtient qufun seul de ces entiers cela ne permet pas de retrouver ce r. Autre exemple : si le second registre a donne la mesure 8, alors la mesure du premier registre donne lfun des entiers 3, 7, 11 ou bien 15, mais ne permet pas de retrouver r. 3. Transformee de Fourier discrete 3.1. Preambule sur les nombres complexes Rappelons quelques resultats sur lfecriture trigonometrique des nombres complexes : . tout nombre complexe z ¸ C sfecrit z = reiƒÆ ou r . 0 et ƒÆ ¸ R, . un nombre complexe de module 1 sfecrit z = eiƒÆ ou ƒÆ ¸ R, . e2iƒÎ = 1, . (eiƒÆ ). = e.iƒÆ ou z. designe le conjugue de z. Lemme 2 (Somme dfune suite geometrique). Soit z ¸ C. Soit n . 0. Alors 1 + z + z2 + E E E + zn.1 = n si z = 1, 1.zn 1.z sinon. Demonstration. Notons Sn = Pn.1 k=0 zk la somme a calculer. Si z = 1 alors Sn est la somme de n termes egaux a 1. Sinon en developpant (1 . z) E Sn = Sn . z E Sn = 1 . zn car presque tous les termes se telescopent. Le lemme suivant est le point-cle de la transformee de Fourier discrete que lfon etudiera plus loin. Lemme 3 (Lemme crucial). Soient n ¸ N . et j ¸ Z. 1 n Xn.1 k=0 e2iƒÎ k j n = 1 si jn est un entier, 0 sinon. Noter que si on pose ƒÖ = e 2iƒÎ n et z = ƒÖj = e 2iƒÎj n alors la somme a calculer est simplement ƒ°n = 1 n Pn.1 k=0 zk. ALGORITHME DE SHOR 163 Demonstration. Par la remarque precedente il sfagit de calculer la somme dfune suite geometrique (au facteur 1 n pres) : ƒ°n = 1 n Pn.1 k=0 zk. Si j/n est un entier alors z = e 2iƒÎj n = e2iƒÎ = 1 et par le premier cas du lemme 2, alors ƒ°n = 1. Sinon, z .= 1 et a lfaide du second cas du lemme 2 : ƒ°n = 1 n Xn.1 k=0 zk = 1 n E 1 . zn 1 . z . Mais zn = .. e 2iƒÎj n n = e2iƒÎj = 1 et ainsi ƒ°n = 0. Voici lfinterpretation geometrique de ce lemme. Notons de nouveau ƒÖ = e 2iƒÎ n , cfest une racine n-ieme de lfunite. Alors les ƒÖk forment les sommets dfun polygone regulier a n cotes. Le barycentre de ces points a pour coordonnees 1 n Pn.1 k=0ƒÖk = 0 par le lemme, cfest donc bien lforigine ! Dfun point de vue physique on parle dfinterference destructive. 0 ƒÖ0 = 1 i ƒÖ = e2iƒÎ/3 ƒÖ2 = e4iƒÎ/3 n = 3, ƒÖ = e 2iƒÎ 3 0 ƒÖ0 = 1 i ƒÖ = e2iƒÎ/5 ƒÖ2 = e4iƒÎ/5 ƒÖ3 = e6iƒÎ/5 ƒÖ4 = e8iƒÎ/5 n = 5, ƒÖ = e 2iƒÎ 5 3.2. Transformee de Fourier Fixons un entier n . 1. La transformee de Fourier discrete .F transforme un n-qubit de base en une somme de n-qubits de base selon la formule : .F k = 1 p 2n 2Xn.1 j=0 e2iƒÎ k j 2n j ÷ Si on note ƒÖ = e 2iƒÎ 2n alors la formule sfecrit aussi : .F k = 1 p 2n 2Xn.1 j=0 (ƒÖk)j j ÷ Ensuite .F est etendue par linearite a nfimporte quel n-qubit |ƒÕ.. Si |ƒÕ. = P2n.1 k=0 ƒ¿k k alors .F |ƒÕ. = 2Xn.1 k=0 ƒ¿k .F k . Commencons par des exemples avec de petites valeurs de n. Exemple. Fixons n = 1. Les deux 1-qubits de base sont |0. et |1.. On a alors 2n = 2 et ƒÖ = e 2iƒÎ 2 = eiƒÎ = .1. ALGORITHME DE SHOR 164 Pour k = 0, les coefficients seront (ƒÖ0)0 = 1 et (ƒÖ0)1 = 1, donc : .F |0. = 1 p 2 (|0. + |1.) . Pour k = 1, les coefficients seront (ƒÖ1)0 = 1 et (ƒÖ1)1 = .1, donc : .F |1. = 1 p 2 (|0. . |1.) . Resumons les coefficients par le tableau des valeurs (ƒÖk)j , avec ici ƒÖ = .1. j = 0 j = 1 k = 0 (ƒÖ0)0 (ƒÖ0)1 k = 1 (ƒÖ1)0 (ƒÖ1)1 j = 0 j = 1 k = 0 1 1 k = 1 1 .1 Pour un qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. alors .F |ƒÕ. = .F(ƒ¿|0. + ƒÀ |1.) = ƒ¿.F |0. + ƒÀ .F |1. = 1 p 2 ƒ¿(|0. + |1.) + 1 p 2 ƒÀ (|0. . |1.) = 1 p 2 (ƒ¿ + ƒÀ) |0. + 1 p 2 (ƒ¿ . ƒÀ) |1. Noter qufau final pour n = 1, .F est egale a la porte de Hadamard H. Exemple. Fixons n = 2. Les 2-qubits de base sont 0 = |0.0., 1 = |0.1., 2 = |1.0. et 3 = |1.1.. On a alors 2n = 4 et ƒÖ = e 2iƒÎ 4 = eiƒÎ2 = i. Les coefficients de .F k sont les (ƒÖk)j . . Pour k = 0, les coefficients sont tous 1, . Pour k = 1, les coefficients sont les ij , . Pour k = 2, les coefficients sont les (.1)j , . Pour k = 3, les coefficients sont les (.i)j . Voici le tableau des coefficients (ƒÖk)j avec ƒÖ = i. j = 0 j = 1 j = 2 j = 3 k = 0 (ƒÖ0)0 (ƒÖ0)1 (ƒÖ0)2 (ƒÖ0)3 k = 1 (ƒÖ1)0 (ƒÖ1)1 (ƒÖ1)2 (ƒÖ1)3 k = 2 (ƒÖ2)0 (ƒÖ2)1 (ƒÖ2)2 (ƒÖ2)3 k = 3 (ƒÖ3)0 (ƒÖ3)1 (ƒÖ3)2 (ƒÖ3)3 j = 0 j = 1 j = 2 j = 3 k = 0 1 1 1 1 k = 1 1 i .1 .i k = 2 1 .1 1 .1 k = 3 1 .i .1 i Ainsi : .F 0 = 1 2 .. 0 + 1 + 2 + 3 .F 1 = 1 2 .. 0 + i 1 . 2 . i 3 .F 2 = 1 2 .. 0 . 1 + 2 . 3 .F 3 = 1 2 .. 0 . i 1 . 2 + i 3 ALGORITHME DE SHOR 165 De facon generale pour n quelconque et ƒÖ = e 2iƒÎ 2n , alors voici comment sforganise le tableau des (ƒÖk)j . j = 0 j = 1 j = 2 j = 3 E E E k = 0 1 1 1 1 E E E k = 1 1 ƒÖ ƒÖ2 ƒÖ3 E E E k = 2 1 ƒÖ2 (ƒÖ2)2 (ƒÖ2)3 E E E k = 3 1 ƒÖ3 (ƒÖ3)2 (ƒÖ3)3 E E E k = 4 1 ƒÖ4 E E E E E E E E E E E E 3.3. La transformee de Fourier discrete est unitaire Proposition 4. La transformation de Fourier discrete est une application unitaire. Commencons par le verifier sur des exemples. . Pour n = 1, notons |ƒÕ0. = .F |0. = 1 p 2 (|0. + |1.) et |ƒÕ1. = .F |1. = 1 p 2 (|0. . |1.). Alors la base (|0. , |1.) est envoyee sur la base (|ƒÕ0. , |ƒÕ1.). Comme une base orthonormale est envoyee sur une base orthonormale, .F est une transformation unitaire. . Pour n = 2, notons de meme |ƒÕk. = .F k pour k = 0,1,2,3 que lfon a calcule auparavant. On verifie que les |ƒÕk. forment une base orthonormale. Par exemple, montrons que |ƒÕ1. et |ƒÕ2. sont orthogonaux. Tout dfabord .ƒÕ1| = |ƒÕ1.. = 1 2 .. 0 . i 1 . 2 + i 3 Donc : .ƒÕ1|ƒÕ2. = 1 4 .. 0 . i 1 . 2 + i 3 E .. 0 . 1 + 2 . 3 . On developpe tout, et on utilise que Ê p q ÷ = 0 si p .= q et Ê p p ÷ = 1 : .ƒÕ1|ƒÕ2. = 1 4 .. 0 0 + i 1 1 . 2 2 . i 3 3 = 1 4(1 + i . 1 . i) = 0. Demonstration. Nous allons montrer que la base canonique des k sfenvoie sur une base orthonormale |ƒÕk.. Ainsi .F envoie une base orthonormale sur une base orthonormale et est donc une transformation unitaire (voir le chapitre á Portes quantiques â). Notons |ƒÕk. = .F k , pour 0 . k . 2n . 1. .ƒÕk|ƒÕ. . = .. .F k . E .F . = 1 p 2n 2Xn.1 p=0 e.2iƒÎ kp 2n Ê p ! E 1 p 2n 2Xn.1 q=0 e2iƒÎ .q 2n q ÷ ! = 1 2n 2Xn.1 p=0 2Xn.1 q=0 e.2iƒÎ kp 2n e2iƒÎ .q 2n Ê p q ÷ = 1 2n 2Xn.1 p=0 e.2iƒÎ kp 2n +2iƒÎ .p 2n Ê p p ÷ car Ê p q ÷ = 0 si p .= q = 1 2n 2Xn.1 p=0 e2iƒÎ(..k)p 2n car Ê p p ÷ = 1 Si k = . alors e2iƒÎ(..k)p 2n = e0 = 1, et ainsi .ƒÕk|ƒÕk. = 1. Si k .= ., alors ..k 2n nfest pas un entier, et par le lemme crucial 3, .ƒÕk|ƒÕ. . = 0. Ainsi les |ƒÕk. forment une base orthonormee et .F est une transformation unitaire. ALGORITHME DE SHOR 166 3.4. Transformee de Fourier inverse Comme .F est unitaire alors .F est inversible et .F.1 = .F.. Ainsi la formule de .F.1 k est celle de .F k mais avec un signe moins dans lfexponentielle : .F.1 k = 1 p 2n 2Xn.1 j=0 e.2iƒÎ k j 2n j ÷ Si on note ƒÖ = e 2iƒÎ 2n , alors ƒÖ. = e .2iƒÎ 2n et ainsi .F.1 k = 1 p 2n 2Xn.1 j=0 (ƒÖ.k)j j ÷ . Exemple. Fixons n = 1, ƒÖ. = .1. .F.1 |0. = 1 p 2 (|0. + |1.) et .F.1 |1. = 1 p 2 (|0. . |1.) Dans ce cas .F.1 = .F. Exemple. Fixons n = 2, ƒÖ. = .i. .F.1 0 = 1 2 .. 0 + 1 + 2 + 3 .F.1 1 = 1 2 .. 0 . i 1 . 2 + i 3 .F.1 2 = 1 2 .. 0 . 1 + 2 . 3 .F.1 3 = 1 2 .. 0 + i 1 . 2 . i 3 Exercice. Verifier a la main que .F.1 .. .F 1 = 1 . 4. Fin de lfalgorithme de Shor 4.1. Fin du circuit Apres lforacle, nous en etions restes a une mesure du second registre, et nous avions vu que la mesure du premier registre ne permettait pas de conclure. Apres la mesure du second registre, nous allons faire agir sur le premier registre la transformee de Fourier discrete inverse .F.1. ALGORITHME DE SHOR 167 |0. H Of .F.1 / |0. ... H ... ... / |0. ... H ... ... / |0. / |0. ... ... ... / |0. ... ... ... / 4.2. Calculs On se souvient que la mesure du second registre a donne aƒÀ0 (on peut aussi considerer que lfetat quantique du second registre sfest effondre a aƒÀ0 ). Alors le qubit du premier registre est : PƒÕ 3 = p r p 2n 2nX/r.1 ƒ¿=0 ƒ¿r + ƒÀ0 ÷ . Calculons le qubit PƒÕ 4 obtenu apres lfaction de la transformee de Fourier inverse : PƒÕ 4 = .F.1 PƒÕ 3 = .F.1 p r p 2n 2nX/r.1 ƒ¿=0 ƒ¿r + ƒÀ0 ÷ ! = p r p 2n 2nX/r.1 ƒ¿=0 .F.1 ƒ¿r + ƒÀ0 ÷ = p r p 2n 2nX/r.1 ƒ¿=0 1 p 2n 2Xn.1 j=0 e.2iƒÎ(ƒ¿r+ƒÀ0) j 2n j ÷ = p r 2n 2Xn.1 j=0 2nX/r.1 ƒ¿=0 e.2iƒÎ ƒ¿j 2n/r ! e.2iƒÎ ƒÀ0 j 2n j ÷ Pour la derniere egalite nous avons interverti les deux sommes et utilise que r divise 2n. Calculons le coefficient qui intervient dans cette somme a lfaide du lemme crucial 3 : 1 2n/r 2nX/r.1 ƒ¿=0 e.2iƒÎ ƒ¿j 2n/r = 1 si j 2n/r est un entier, 0 sinon. Ainsi PƒÕ 4 = 1 p r X j=0,...,2n.1 avec j 2n/r entier e.2iƒÎ ƒÀ0 j 2n j ÷ = 1 p r Xr.1 .=0 e.2iƒÎƒÀ0 .r 2n. r . Pour la derniere egalite, nous avons juste change la notation des indices en posant j = 2n. r . Qufavons-nous gagne avec lfaction de la transformee de Fourier ? Tout dfabord la constante ƒÀ0 nfapparait que dans les coefficients des qubits et nfintervient plus apres mesure. Ensuite la periode r que lfon veut determiner est au denominateur dans lfexpression de lfentier 2n. r . ALGORITHME DE SHOR 168 4.3. Mesure du premier registre La mesure du premier registre donne un entier 2n. r , correspondant a lfun des etats 2n. r ÷ du qubit PƒÕ 4 . Nous obtenons donc un entier m = 2n. r et nous voulons en deduire la periode r. Lfentier n est connu, par contre . nfest pas connu (on sait 0 . . . r . 1). Commencons par diviser par 2n (valeur connue) pour obtenir le rationnel x = m 2n = . r . . Si x est entier alors on nfobtient aucune information sur r. Cfest le cas si . = 0, ou bien si r divise .. Dans ce cas notre methode echoue. Il faut recommencer lfexecution du circuit quantique. Noter que ce cas se produit assez rarement. . Si pgcd(., r) = 1 alors dfune part x = m 2n est connu et son ecriture sous la forme de fraction irreductible est . r . Donc en reduisant la fraction x = m 2n en une fraction irreductible, on obtient r (et .). Par exemple si x = 26 8 alors lfecriture irreductible est 13 4 donc r = 4 et . = 13. . Si pgcd(., r) .= 1, alors lfecriture irreductible de x = m 2n est .Œ rŒ . On a x = m 2n = .Œ rŒ = . r . Ainsi rŒ. = r.Œ, donc rŒ divise r.Œ, mais comme pgcd(rŒ, .Œ) = 1 alors par le lemme de Gauss rŒ divise r. Nous nfavons pas trouve la periode r mais un facteur rŒ de r. Cfest un progres ! On recommence notre algorithme avec le choix de arŒ au lieu de a. En effet, comme la fonction a 7¨ ak est de periode r, alors la fonction k 7¨ (arŒ )k est de periode r/rŒ. Nous sommes certains que ce processus se termine car r nfa qufun nombre fini de facteurs. 4.4. Exemple Voyons la fin de lfalgorithme sur lfexemple N = 15. . Si a ¸ {3, 5, 6, 9, 10, 12}, alors a nfest pas premier avec N et d = pgcd(a,N) > 1 est un diviseur strict de N et cfest termine. . Les entiers a ¸ {4, 11, 14} sont dfordre r = 2, mais par contre a = 14 ne verifie pas lfhypothese 2. Etudions les cas a = 4 et a = 11. La mesure finale du circuit fournit m = 2n. r , on calcule x = m 2n = . r avec 0 . . . r . 1, donc ici avec r = 2, x = . 2 avec . = 0 ou . = 1. On rappelle que lfon connait la valeur de x, mais qufil sfagit dfobtenir r et .. . Dans le cas . = 0 alors on a la connaissance de x = 0, mais on nfobtient aucune information sur r. Il faut recommencer lfalgorithme. . Dans le cas . = 1 alors on a la connaissance de x = 12 . Comme x = . r est une fraction irreductible, la connaissance de x permet de retrouver . = 1 et r = 2. Nous avons obtenu la periode r = 2. . Les entiers a ¸ {2, 7, 8, 13} sont dfordre r = 4. La mesure finale du circuit fournit m = 2n. r , on calcule x = m 2n = . r avec 0 . . . r . 1, donc ici avec r = 4, x = . 4 avec . ¸ {0, 1, 2, 3}. . Dans le cas . = 0, la connaissance de x = 0 ne permet pas de trouver r. Il faut recommencer lfalgorithme. . Dans le cas . = 1, on a x = 14 . Comme x = . r est une fraction irreductible, la connaissance de x permet de retrouver . = 1 et r = 4. Nous avons obtenu la periode r = 4. . Dans le cas . = 2 on a x = 12 . Nous obtenons la fraction irreductible x = .Œ rŒ avec .Œ = 1 et rŒ = 2. Lfentier rŒ = 2 nfest pas la periode (cfest facile a verifier) mais on sait que rŒ = 2 divise r. On avait choisi un entier a au debut de lfalgorithme, on recommence maintenant lfalgorithme avec le choix de a2 qui a pour periode r/2. En un nombre fini dfiterations de lfalgorithme on obtiendra r. . Dans le cas . = 3, la connaissance de x = 3 4 permet de retrouver . = 3 et r = 4. Nous verrons dans le chapitre suivant un exemple dans lequel lfordre r nfest pas une puissance de 2. Complements dfarithmetique Chapitre 14 Video ¡ partie 14.1. Fractions continues Video ¡ partie 14.2. Algorithme de Shor pour n'importe quel ordre Video ¡ partie 14.3. L'algorithme de Shor fonctionne au moins une fois sur deux Nous apportons des complements a lfalgorithme de Shor vu lors du chapitre precedent en etudiant chacune des hypotheses. Dans ce chapitre il nfy a pas dfinformatique quantique mais beaucoup de mathematiques ! Certaines parties sont assez techniques et dfun niveau un peu plus eleve que les chapitres precedents. 1. Fractions continues 1.1. Motivation Dans le chapitre precedent nous avons fait une hypothese simplificatrice : lfordre r divise 2n. Ce nfest pas vrai en general, mais lfalgorithme de Shor reste valide moyennant quelques adaptations. Reprenons la fin du circuit de lfalgorithme de Shor qui permet de calculer lfordre r dfun element. . Si r divise 2n alors la mesure du premier registre conduit a un nombre rationnel x = m 2n qui est aussi egal a . r . Ainsi x est un multiple de 1r et permet de retrouver r (ou au moins un facteur de r). . Si r ne divise pas 2n alors la mesure du premier registre conduit a un nombre rationnel x = m 2n qui est proche dfun multiple de 1r (mais nfest pas exactement un multiple). Comment retrouver r a partir de x ? Voici lfexemple que lfon etudiera en details dans la section suivante afin de factoriser N = 21 a lfaide du choix a = 2. Imaginons qufune mesure conduise a x = 427 512 . Comment retrouver lfordre r ? On pourrait aussi obtenir x = 426 512 ou bien x = 428 512 . On voit que x est proche de 45 . Mais est-ce que 5 est vraiment la periode ? 1.2. Fractions continues Une fraction continue est une fraction a0 + 1 a1 + 1 a2+ 1 EEE+ 1 an ou a0 . 0 et ai > 0 (pour i > 0). On note cette fraction par la liste [a0, a1, . . . , an]. On note pn qn lfecriture irreductible du rationnel [a0, a1, . . . , an]. Exemple. Lfecriture en fraction continue [5, 2, 1, 4] represente le nombre rationnel : x = 5 + 1 2 + 1 1+14 = 75 14 = 5.3571428 . . . COMPLEMENTS DfARITHMETIQUE 170 Prendre les sous-listes de la fraction continue permet dfobtenir des approximations de x de plus en plus precises : . Sous liste [5], alors p0 q0 = 5. . Sous liste [5, 2] alors p1 q1 = 11 2 = 5.5. . Sous liste [5, 2, 1] alors p2 q2 = 16 3 = 5.33 . . . . Liste complete [5, 2, 1, 4] alors p3 q3 = 75 14 = x. 1.3. Approximations par les fractions continues Les fractions continues prennent tout leur interet pour approcher des reels (ou des rationnels) par des fractions simples. Prenons lfexemple de ƒÎ. Comment approcher ƒÎ par une fraction avec un denominateur pas trop grand (disons avec moins de trois chiffres) ? Lfidee la plus simple est dfutiliser lfecriture decimale ƒÎ = 3.1415 . . . . 314 100 . Mais peut-on faire mieux ? Calculons pour commencer la fraction continue de x = 314 100 . Cela se fait par des divisions euclidiennes successives : 314 = 3 ~ 100 + 14 donc 314 100 = 3 + 14 100 = 3 + 1 100 14 , puis 100 = 7 ~ 14 + 2, donc 314 100 = 3 + 1 7 + 2 14 = 3 + 1 7 + 17 . Ainsi 314 100 . 3 + 1 7 = 22 7 Nous avons donc approche ƒÎ par 22 7 = 3.1428 . . . ce qui est aussi bien que 314 100 mais avec un denominateur beaucoup plus petit. Bien evidemment on peut pousser les calculs plus loin : ƒÎ . 314159 100000 . On calcule la fraction continue de ƒÎ (ou de 314 159 100 000 ) et on obtient [3, 7, 15, 1, . . .]. Cela fournit les approximations successives : . Sous liste [3, 7], alors p1 q1 = 22 7 = 3.1428 . . . . Sous liste [3, 7, 15], alors p2 q2 = 333 106 = 3.141509 . . . . Sous liste [3, 7, 15, 1], alors p3 q3 = 355 113 = 3.14159292 . . . Ainsi avec des fractions dont les denominateurs restent petits, on trouve de tres bonnes approximations de ƒÎ. En un sens les fractions continues donnent les meilleures approximations possibles dfun reel x par des rationnels. 1.4. Exemple Reprenons lfexemple de la factorisation de N = 21 a lfaide du choix a = 2. Supposons que le circuit de Shor nous donne la valeur x = 427 512 , comment obtenir lfordre r ? La mauvaise idee est dfutiliser lfecriture decimale pour dire x = 427 512 . 400 500 = 45 donc le denominateur naturel (qui donne lfordre r) serait 5. Ce nfest pas vrai. La bonne methode est de calculer le developpement en fraction continue de x : x = 427 512 = [0, 1, 5, 42, 2] = 0 + 1 1 + 1 5+ 1 42+ 12 Ce qui fournit les approximations successives : . Sous liste [0, 1] = 0 + 11 , alors p1 q1 = 11 = 1. . Sous liste [0, 1, 5] = 0 + 1 1+15 = 56 . COMPLEMENTS DfARITHMETIQUE 171 . Sous liste [0, 1, 5, 42] = 0 + 1 1+ 1 5+ 1 42 = 211 253 . . Sous liste [0, 1, 5, 42, 2] = 427 512 . Les denominateurs sont les candidats pour lfordre r, mais on sait que lfordre r cherche est inferieur a lfentier N = 21. Donc ici, la meilleure fraction ayant un denominateur inferieur a N est 56 , on trouve ainsi r = 6. Il est facile de verifier que lfordre de a = 2 modulo N = 21 est bien r = 6. Lors de la mesure on peut aussi obtenir des valeurs legerement differentes par exemple xŒ = 426 512 ou bien xŒŒ = 428 512 . Que se passe-t-il alors ? . Si xŒ = 426 512 = [0, 1, 4, 1, 20, 2], les fractions successives sont 11 , 45 , 56 , 104 125 , 213 256 . La meilleure fraction ayant un denominateur inferieur a N est 56 , on retrouve ainsi r = 6. . Si xŒŒ = 428 512 = [0, 1, 5, 10, 2], les fractions successives sont 1 1 , 5 6 , 51 61 , 107 128 . La meilleure fraction ayant un denominateur inferieur a N est encore 56 et on retrouve r = 6. Conclusion : la methode des fractions continues permet de retrouver lfordre r. 2. Algorithme de Shor pour nfimporte quel ordre pair 2.1. Fin du circuit . Cas du chapitre precedent. Si r divise 2n alors la mesure du premier registre conduit a la mesure dfun etat 2n. r et donne donc un entier m = 2n. r . On definit alors le rationnel x = m 2n qui est aussi egal a . r et qui permet de retrouver r (ou au moins un facteur de r). Noter que comme r divise 2n, m est un multiple de 2n r . Autrement dit, x est un multiple (avec un facteur entier) de 1r . . Cas considere maintenant. Si r ne divise pas 2n alors la mesure du premier registre conduit a un entier m. Cet entier m est proche de 2n. r (pour un certain entier .) mais la fraction 2n. r nfest plus un entier. Autrement dit on obtient un nombre rationnel x = m 2n qui est proche dfun multiple de 1r (mais nfest pas exactement un multiple). 2.2. Lfexemple N = 21 : debut Soit N lfentier a factoriser. Dans toute la suite on considerera lfexemple de N = 21. Dans le cas ou r divise 2n, il suffisait de choisir lfentier n tel que N . 2n. Dans le cas general on choisit n de sorte a avoir les inegalites N2 . 2n < 2N2. Pour N = 21, on a N2 = 441, donc avec n = 9 on a bien N2 . 2n = 512 < 2N2. Reprenons les calculs du circuit de Shor : . Initialisation. |ƒÕ0. = |0..n . |0..n . . Transformation de Hadamard. |ƒÕ1. = . 1 p 2n 2Xn.1 k=0 k . . 0 . . Oracle. |ƒÕ2. = 1 p 2n 2Xn.1 k=0 k . ak . 2.3. Lfexemple N = 21 : milieu Choisissons ensuite un entier a inversible modulo N. Prenons simplement a = 2 qui est bien premier avec N = 21. Nous devons retrouver lfordre de a modulo N qui est ici r = 6. Reordonnons les elements de |ƒÕ2. en regroupant les termes selon le second facteur qui est lfun des ak pour k variant de 0 a r . 1 = 5. COMPLEMENTS DfARITHMETIQUE 172 |ƒÕ2. = 1 p 512 € 0 + 6 + E E E + 504 + 510 . 1 1 p 512 € 1 + 7 + E E E + 505 + 511 . 2 1 p 512 € 2 + 8 + E E E + 506 . 4 1 p 512 € 3 + 9 + E E E + 507 . 8 1 p 512 € 4 + 10 + E E E + 508 . 16 1 p 512 € 5 + 11 + E E E + 509 . 11 Bien noter la difference avec le cas ou r etait une puissance de 2. Ici on nfobtient pas un tableau rectangulaire. Les deux premieres lignes contiennent une somme de 86 termes alors que les suivantes en ont seulement 85. On effectue ensuite une mesure du second registre et on obtient lfun des ak . Dans la suite on suppose par exemple qufon obtient 2 , alors le premier registre, une fois normalise, contient le qubit : PƒÕ 3 = 1 p 86 € 1 + 7 + 13 + E E E + 505 + 511 . . 2.4. Lfexemple N = 21 : fin La derniere etape est dfappliquer la transformee de Fourier inverse et dfeffectuer une mesure sur le premier registre. PƒÕ 4 = .F.1 PƒÕ 3 = .F.1 . 1 p 86 X85 ƒ¿=0 6ƒ¿ + 1 . = 1 p 86 X85 ƒ¿=0 1 p 512 X511 j=0 e.2iƒÎ(6ƒ¿+1) j 512 j ÷ = 1 p 512 X511 j=0 . 1 p 86 X85 ƒ¿=0 e.2iƒÎ 6ƒ¿j 512 . e.2iƒÎ j 512 j ÷ Cette fois la somme ƒ°( j) = 1 p 86 X85 ƒ¿=0 e.2iƒÎ 6ƒ¿j 512 est un nombre complexe qui peut prendre des valeurs autres que 0 et 1. La mesure du premier registre conduit a la valeur j avec la probabilite : pj = 1 512 |ƒ°( j)|2. Ces probabilites sont presque nulles sauf pour les valeurs de j proches des reels 2n. r (qui ne sont pas des entiers) avec . = 0, 1, . . . , r . 1. Nous avons ici 2n r = 512 6 = 85.33 . . . Les valeurs 2n. r pour . = 0, . . . , 5 sont les reels : 0 85.33 . . . 170.66 . . . 256 341.33 . . . 426.66 . . . COMPLEMENTS DfARITHMETIQUE 173 Donc ici les probabilites sont presque nulles, sauf autour de entiers : j = 0, j = 85, j = 171, j = 256, j = 341, j = 427. Voici le diagramme des probabilites pj , pour 0 . j < 512. Les 6 pics sont nettement visibles. Voici le tableau des valeurs autour du pic a j = 427. j pj 422 0.00062 . . . 423 0.00099 . . . 424 0.00186 . . . 425 0.00469 . . . 426 0.02888 . . . 427 0.11389. . . 428 0.00702 . . . 429 0.00226 . . . 430 0.00109 . . . 431 0.00063 . . . On note la probabilite elevee en j = 427, une probabilite plus faible en j = 426 (qui sfexplique car pour . = 5, 2n. r = 512~5 6 = 426.66 . . .), pour les valeurs plus eloignees les probabilites sont presque nulles. 2.5. Ordre On obtient lfordre r, ou lfun de ses facteurs, a partir du developpement en fractions continues comme explique precedemment. A part cela, les conclusions sont similaires aux cas du chapitre á Algorithme de Shor â : . Si la mesure donne un entier j proche de 0, alors on nfobtient aucune information sur lfordre r, il faut recommencer. . Si la mesure donne un entier j proche de 85 ou proche de 427, alors le developpement en fraction continue de j 512 donne lfordre r = 6. COMPLEMENTS DfARITHMETIQUE 174 . Si la mesure donne un entier proche j proche de 171 ou 341 alors on nfobtient pas r mais le facteur rŒ = 3; si la mesure donne un entier j proche de 256 alors on nfobtient pas r mais le facteur rŒŒ = 2. Dans ces cas on relance lfalgorithme pour obtenir la factorisation complete. 2.6. Conclusion Il nous reste a justifier que lfapproximation du pic conduit au bon resultat. Theoreme 1 (Hardy . Wright). Soit x ¸ R. Soit une fraction p q telle que : x . p q < 1 2q2 . Alors p q est obtenu comme lfune des fractions du developpement en fractions continues de x. Dans notre situation nous considerons lfentier m le plus proche de 2n. r . Donc m. 2n. r . 1 2 . En posant x = m 2n on obtient x . . r . 1 2n+1 . Par notre choix de n on a 2n . N2 > r2, donc x . . r . 1 2r2 . Par le theoreme, .r sfobtient comme lfune des fractions du developpement en fractions continues de x, comme on lfavait explique dans la premiere section. Le reste du chapitre est consacre a la theorie des groupes afin de justifier la pertinence des hypotheses 1 et 2 de lfalgorithme de Shor. 3. Ordre dfun element 3.1. Definition Soit (G,~) un groupe commutatif ayant pour element neutre e. Lfordre de x ¸ G, note ord(x), est le plus petit entier r > 0, tel que x r = e. Voici quelques proprietes de lfordre : . si k est un entier tel que xk = e alors ord(x) divise k ; . ord(xk) divise ord(x). Le theoreme de Lagrange pour un groupe fini G de cardinal n affirme que xn = e quel que soit x. Ainsi ord(x) divise n, quel que soit lfelement x. En particulier, tout element admet un ordre fini. 3.2. Plus grand ordre Proposition 1. Soit G un groupe fini et m le plus grand ordre parmi tous les x ¸ G, alors pour tout x ¸ G, ord(x) divise m. Une formulation equivalente est la suivante : soit . le plus petit entier tel que pour tout x ¸ G on ait x. = e, alors il existe x0 ¸ G tel que ord(x0) = .. Pour la preuve nous aurons besoin du resultat suivant : Lemme 1. Soient deux elements x et y dfordres m = ord(x) et n = ord( y) premiers entre eux, alors ord(x E y) = mn. Demonstration. Notons r = ord(x y). Il sfagit de montrer r = mn en prouvant que r|mn puis que mn|r. Tout dfabord (x y)mn = xmn E ymn = (xm)n E ( yn)m = e, donc r|mn. Reciproquement, on sait que (x y)r = e donc x r E y r = e, autrement dit z = x r = y.r . Dfune part zm = (x r )m = x rm = (xm)r = e, donc ord(z)|m, de meme zn = ( y r )n = e, donc ord(z)|n. Comme m et n sont premiers entre eux, alors ord(z) = 1, cfest-a-dire z = e. Ainsi x r = e, donc m = ord(x)|r et y r = e donc n = ord( y)|r, ainsi mn|r. COMPLEMENTS DfARITHMETIQUE 175 Preuve de la proposition. Soit m le plus grand ordre parmi les elements de G, il existe donc y dfordre m. Fixons x un element quelconque de G et notons n son ordre. Il sfagit de montrer que n|m. Par lfabsurde on suppose que n ne divise pas m. On va obtenir une contradiction en construisant un element z avec ord(z) > m. Par exemple si m et n sont premiers entre eux, alors z = x y est dfordre mn > m, ce qui donne la contradiction. Si m et n ne sont pas premiers entre eux, soit p un facteur premier commun a m et n tel que pe|n, pf |m avec e > f les plus grands possibles (un tel p existe car n ne divise pas m). Soient yŒ = y pf et xŒ = xn/pe . Alors yŒ a pour ordre mŒ = m/pf et xŒ a pour ordre nŒ = pe. Les entiers mŒ et nŒ sont premiers entre eux (car mŒ nfest pas divisible par p). Ainsi z = xŒ yŒ a pour ordre mŒnŒ = m pf pe = mpe.f > m. On obtient bien la contradiction cherchee. 4. Le groupe (Z/pZ). Dans toute la suite nous allons etudier en details le groupe (Z/nZ). qui est lfensemble des elements inversibles modulo n. Nous commencons par le cas dfun nombre premier p. Nous savons deja que Card(Z/pZ). = .(p) = p . 1 mais nous souhaitons aller plus loin en etudiant la structure de (Z/pZ).. 4.1. Isomorphisme Theoreme 2. Le groupe .. (Z/pZ).,~ est isomorphe au groupe .. Z/(p . 1)Z,+ . Pour la preuve nous aurons besoin du resultat suivant. Proposition 2. Un polynome P ¸ Z/pZ[X] de degre d possede au plus d racines, cfest-a-dire des elements x ¸ Z/pZ tels que P(x) ß 0 (mod p). Idee de la preuve de la proposition. Cfest un fait general : sur un corps k un polynome P ¸ k[X] de degre d a au plus d racines. En effet, a ¸ k est une racine si et seulement si X . a est un facteur de P(X). Si {a1, . . . , ak} est lfensemble des racines de P(X) alors (X . a1)(X . a2) E E E (X . ak) divise P(X) et donc en comparant les degres : deg P . k. Preuve du theoreme. Lfensemble (Z/pZ). = {1, 2, . . . , p.1} est en bijection avec Z/(p.1)Z = {0, 1 . . . , p.2}. Mais on veut plus : on veut que les structures de groupes, avec la loi á ~ â pour (Z/pZ). et á + â pour Z/(p .1)Z, soient preservees. Nous allons trouver un element a dfordre p .1 dans (Z/pZ). ce qui va nous permettre de construire lfisomorphisme : ƒÓ : Z/(p . 1)Z .¨ (Z/pZ). k 7.¨ ak (mod p). Cette application ƒÓ est bien definie car ƒÓ(k + .(p . 1)) = ak+.(p.1) = ak = ƒÓ(k) et est un morphisme car ƒÓ(k+kŒ) = ƒÓ(k)~ƒÓ(kŒ). De plus ƒÓ est bijective, car elle est surjective (puisque les {ak} sont p.1 elements distincts, ils forment lfensemble dfarrivee) et les ensembles de depart et dfarrivee ont le meme nombre dfelements. Pour montrer qufil existe un element dfordre p .1, remarquons dfabord que pour tout element x ¸ (Z/pZ). on a ord(x)|p . 1. En effet, par le petit theoreme de Fermat, x p.1 ß 1 (mod p). Soit m le plus grand des ordres des elements de (Z/pZ).. On vient de voir que m|p .1, donc m . p .1. Par la proposition 1, on sait que pour tout x ¸ (Z/pZ)., ord(x) divise m, cfest-a-dire xm ß 1 (mod p). Considerons le polynome defini par P(X) = X m . 1. Alors pour tout x ¸ (Z/pZ)., P(x) = xm . 1 ß 0 (mod p). Nous avons donc trouve p .1 racines au polynome P de degre m, donc p .1 . m. Conclusion : m = p .1, donc par definition de m il existe un element a dfordre p . 1. COMPLEMENTS DfARITHMETIQUE 176 Remarque : la preuve nfest pas constructive, pour trouver a dfordre p . 1 il nfy a pas dfautres moyens que de tester differentes valeurs de a et de calculer a chaque fois a, a2, a3, . . . 4.2. Elements dfordre pair Proposition 3. Dans (Z/pZ)., avec p . 3, la moitie au moins des elements sont dfordre pair. Demonstration. Notons ƒÕ : (Z/pZ). ¨Z/(p . 1)Z lfisomorphisme de groupes. Alors lfordre dfun element x de (Z/pZ). est egal a lfordre de lfelement ƒÕ(x) dans Z/(p . 1)Z. Lfordre dfun element y dans le groupe additif Z/(p . 1)Z est le plus petit entier r > 0 tel que r E y ß 0 (mod p . 1). Considerons les entiers impairs y = 2k + 1, k = 0,1, . . . , p.1 2 . Ces y ont des ordres pairs : en effet si r E (2k + 1) ß 0 (mod p . 1) alors r(2k + 1) = .(p . 1). Comme .(p . 1) est pair (car p est premier et superieur a 3) et que 2k + 1 est impair, r est necessairement pair. Ainsi la moitie au moins des elements de Z/(p . 1)Z sont dfordre pair. Par isomorphie, il en est de meme pour (Z/pZ).. 4.3. Racines carrees de 1 Le point-cle initial de lfalgorithme de Shor est la factorisation x2 .1 = (x .1)(x +1). Dans (Z/nZ). trouver un element tel que x2 . 1 = 0 peut permettre une factorisation de n a lfaide de (x . 1)(x + 1). Definition. On appelle racine carree de 1 modulo n tout element x de Z/nZ tel que x2 ß 1 (mod n) Une telle racine carree est en fait necessairement un element de (Z/nZ).. Attention ! Lfequation X2 . 1 = 0 est une equation polynomiale de degre 2. Elle peut avoir plus de deux solutions dans (Z/nZ). qui nfest pas toujours un corps, nous y reviendrons. Revenons au cas ou n = p est un nombre premier, pour lequel Z/pZ est un corps. Il y a dans ce cas effectivement deux solutions. Proposition 4. Il y a exactement deux racines carrees modulo p (ou p . 3 est un nombre premier) : +1 et .1. Encore une fois, ceci nfest valable que modulo un nombre premier. Apres lfapplication de lfisomorphisme ƒÕ : (Z/pZ). ¨Z/(p . 1)Z, les deux racines carrees sont ƒÕ(1) = 0 et ƒÕ(.1) = p.1 2 (en effet lfidentite (.1)2 ß 1 (mod p) devient 2 ~ p.1 2 ß 0 (mod p . 1)). Demonstration. Pour x = +1 on a bien sur x2 = 1. Lfecriture x = .1 est une autre facon dfecrire x = p . 1 (car x = p . 1 ß .1 (mod p)) et bien sur x2 = (.1)2 = 1. Pour justifier qufil nfy a pas dfautres racines : si x est une racine carree de 1 alors x2 . 1 ß 0 (mod p) donc (x . 1)(x + 1) ß 0 (mod p). Comme Z/pZ est un corps, un produit est nul si et seulement si un des facteur est nul, donc x . 1 ß 0 (mod p) ou x + 1 ß 0 (mod p), cfest-a-dire x = +1 ou x = .1 (modulo p). Un autre argument serait de dire que +1 et .1 sont racines du polynome P(X) = X2 . 1, et comme deg P(X) = 2, il nfy a pas dfautres solutions par la proposition 2. Cependant le point cle de lfalgorithme de Shor est un peu plus delicat, il sfagit de trouver un entier r pair tel que x r ß 1 (mod n), ce qui donne la factorisation (x r/2 . 1)(x r/2 + 1) ß 0 (mod n) et peut conduire a une factorisation de n a partir de la factorisation (x r/2 . 1)(x r/2 + 1). Il faut supposer que x r/2 + 1 .ß 0 (mod n) pour que la procedure fonctionne, voir lfhypothese 2 du chapitre á Algorithme de Shor â. Faisons le point : pour lfalgorithme de Shor, on cherche un entier pair r tel que x r/2 soit une racine carree de 1, en excluant le cas ou x r/2 ß 1 (mod n) (pour lequel lfordre serait r/2 et pas r) et x r/2 ß .1 (mod n) (qui ne permet pas toujours dfobtenir une factorisation). COMPLEMENTS DfARITHMETIQUE 177 Dans le cas dfun nombre premier : une telle racine carree nfexiste pas, car on a vu que les deux seules racines carrees de 1 sont +1 et .1 qui sont justement les deux cas a eviter. Ainsi : Proposition 5. Lorsque p est un nombre premier, lfhypothese 1 ou lfhypothese 2 de lfalgorithme de Shor nfest pas verifiee. Noter que ce resultat negatif nfa pas dfincidence pour lfalgorithme de Shor pour lequel il sfagit de factoriser un entier qui nfest pas premier. Nous avons deja explique pourquoi cette proposition est vraie, nous le justifions de nouveau de maniere plus condensee. Demonstration. Soit x ¸ (Z/pZ).. Supposons que lfhypothese 1 soit vraie, cfest-a-dire que lfordre r de x est pair. Comme x r . 1 ß 0 (mod p) alors (x r/2 . 1)(x r/2 + 1) ß 0 (mod p). Mais x r/2 . 1 .ß 0 (mod p) car sinon lfordre serait . r/2. Comme p est un nombre premier alors x r/2 . 1 .ß 0 est inversible. Si y designe son inverse, alors en multipliant par cet inverse on obtient y(x r/2 .1)(x r/2 +1) ß 0 (mod p), donc x r/2 + 1 ß 0 (mod p) et ainsi x r/2 ß .1 (mod p) ce qui empeche lfhypothese 2 dfetre valide. 5. Le groupe (Z/pƒ¿Z). Lfetape suivante est dfetudier le groupe des elements inversibles modulo une puissance dfun nombre premier. 5.1. Isomorphisme On sait deja que Card(Z/pƒ¿Z). = .(pƒ¿) = pƒ¿ . pƒ¿.1 = pƒ¿ € 1 . 1p . , mais nous allons aller plus loin en montrant que (Z/pƒ¿Z). est un groupe cyclique (pour p . 3), cfest-a-dire qufil peut etre engendre par un seul element. 5.2. Isomorphisme Theoreme 3. Si p . 3 est un nombre premier alors le groupe (Z/pƒ¿Z). est isomorphe au groupe Z/(p . 1)Z ~ Z/pƒ¿.1Z et cfest un groupe cyclique. Pour p = 2, (Z/2ƒ¿Z). est isomorphe au groupe Z/2Z ~ Z/2ƒ¿.2Z. Demonstration. Nous nous limitons a p . 3, situation de lfalgorithme de Shor. Nous allons construire dans (Z/pƒ¿Z). un element a dfordre p . 1 et un element b dfordre pƒ¿.1 ce qui conduira a lfisomorphisme : ƒÓ : Z/(p . 1)Z ~ Z/pƒ¿.1Z .¨ (Z/pƒ¿Z). (k, .) 7.¨ ak b. (mod pƒ¿). Tout dfabord soit aŒ un element dfordre p . 1 dans (Z/pZ). (un tel element existe par le theoreme 2), donc aŒp.1 ß 1 (mod p). Considerons aŒ comme element de (Z/pƒ¿Z)., et notons r = ord(aŒ) de sorte que aŒr ß 1 (mod pƒ¿). Ainsi aŒr . 1 est divisible par pƒ¿, donc a fortiori par p, donc aŒr ß 1 (mod p). Ainsi lfordre de aŒ dans (Z/pZ). divise r : cfest-a-dire p.1|r. Notons a = aŒ r p.1 . Cfest un element dfordre p.1 dans (Z/pƒ¿Z). : en effet ap.1 = aŒr ß 1 (mod pƒ¿) et par definition de lfordre r, il ne peut exister dfentier plus petit. Notons b = 1+p alors par le lemme ci-dessous bpƒ¿.1 = (1+p)pƒ¿.1 ß 1 (mod pƒ¿), donc en particulier, lfordre de b divise pƒ¿.1, mais toujours par ce lemme, pour k < ƒ¿ . 1, bpk.1 .ß 1 (mod pƒ¿). Ainsi ord(b) = pƒ¿.1. Nous avons donc trouve a avec ord(a) = p.1 et b avec ord(b) = pƒ¿.1. Ces deux ordres sont premiers entre eux (car p . 1 et p le sont) donc par le lemme 1, lfelement ab est dfordre (p . 1)pƒ¿.1. On a donc montre en plus que (Z/pƒ¿Z). est engendre par le seul element ab, cfest donc un groupe cyclique. Voici lfenonce du lemme utilise dans la preuve. COMPLEMENTS DfARITHMETIQUE 178 Lemme 2. Soient k . 0 et p . 3 un nombre premier, alors : (1 + p)pk ß 1 + pk+1 (mod pk+2). La preuve de ce lemme peut etre omise en premiere lecture. Elle se fait par recurrence sur k et reste assez technique. Cfest une version amelioree de lfexercice classique suivant : (x + y)p ß x p + y p (mod p). Les ingredients sont les memes dans la preuve qui nous concerne : il faut utiliser la formule du binome de Newton et utiliser que le coefficient ..pi est divisible par p, lorsque 0 < i < p. Nous aurons besoin pour la preuve de la variante suivante : si x ß y (mod pk) avec k . 1, alors x p ß y p (mod pk+1). Il suffit dfecrire x = y +ƒÉpk puis dfutiliser la formule du binome de Newton, x p = ( y +ƒÉpk)p = y p + E E E ou les termes de la somme omis sont tous divisibles par pk+1 (car de nouveau ..pi est divisible par p). Preuve du lemme. La demonstration se fait par recurrence. Pour k = 0, lfassertion est vraie : (1+ p)1 ß 1+ p (mod p2). Supposons lfassertion vraie au rang k . 0 et prouvons-la au rang k+1. Par hypothese de recurrence (1 + p)pk ß 1 + pk+1 (mod pk+2), donc par la variante rappelee ci-dessus : (1 + p)pk+1 = € (1 + p)pk.p ß .. 1 + pk+1p (mod pk+3). Developpons .. 1 + pk+1p selon la formule du binome de Newton : .. 1 + pk+1p = 1 + p E pk+1 + E E E Les termes omis dans les points de suspension sont tous divisibles par pk+3 donc .. 1 + pk+1p ß 1 + pk+2 (mod pk+3), ce qui conduit au resultat souhaite. 5.3. Elements dfordre pair Proposition 6. Dans (Z/pƒ¿Z)., avec p . 3, la moitie au moins des elements sont dfordre pair. Demonstration. Le preuve est similaire a celle de la proposition 3. Lfordre de (2k + 1, .) est pair dans Z/(p . 1)Z ~ Z/pƒ¿.1Z, quel que soit lfentier impair 2k + 1 et quel que soit .. Donc la moitie au moins des elements de Z/(p . 1)Z ~ Z/pƒ¿.1Z sont dfordre pair. Par lfisomorphisme du theoreme 3, il en est de meme pour (Z/pƒ¿Z).. 5.4. Racines carrees de 1 On rappelle qufune racine carree de 1 modulo pƒ¿ est un element x tel que x2 ß 1 (mod pƒ¿). Proposition 7. Il y a exactement deux racines carrees modulo pƒ¿ (ou p . 3 est un nombre premier) : +1 et .1. Attention cette fois Z/pƒ¿Z nfest pas un corps, il pourrait donc y avoir a priori plus de deux racines carrees de 1. Par lfisomorphisme, dans Z/(p . 1)Z ~ Z/pƒ¿.1Z ces deux racines carrees sont (1, 0) et ( p.1 2 , 0). Demonstration. Notons ƒÕ : (Z/pƒ¿Z). ¨Z/(p . 1)Z ~ Z/pƒ¿.1Z lfisomorphisme de groupes du theoreme 3. Si ƒÕ(x) = (a, b) alors ƒÕ(xk) = (ka, kb) et ƒÕ(1) = (0, 0) (lfelement neutre du groupe multiplicatif sfenvoie sur lfelement neutre du groupe additif). Donc x2 ß 1 (mod pƒ¿) equivaut a (2a,2b) ß (0,0), ou plus precisement 2a ß 0 (mod p.1) et 2b ß 0 (mod pƒ¿.1). Comme pgcd(2, p) = 1 alors 2 est inversible modulo pƒ¿.1 la seconde equation donne donc b ß 0 (mod pƒ¿.1). En revanche, comme p . 1 est pair, lfequation 2a ß 0 (mod p . 1) admet deux solutions a = 0 et a = p.1 2 . Bilan : nous avons obtenu deux solutions (0, 0) et ( p.1 2 , 0) qui par lfisomorphisme donnent les deux seules racines carrees 1 et .1. COMPLEMENTS DfARITHMETIQUE 179 Nous nfallons pas etudier lfequation x r/2+1 ß 0 (mod pƒ¿), dfune part le cas n = pƒ¿ est etudie specifiquement dans lfalgorithme de Shor, dfautre part on etudiera plus tard cette equation dans le cas plus general dfun n quelconque. 6. Le theoreme des restes chinois 6.1. Cas simple Theoreme 4. Soient p et q deux nombres premiers entre eux alors Z/pqZ est isomorphe a Z/pZ ~ Z/qZ. Par exemple Z/6Z est isomorphe a Z/2Z ~ Z/3Z. Attention ! Z/4Z nfest pas isomorphe a Z/2Z ~ Z/2Z. Demonstration. Notons ƒÓ : Z/pqZ¨Z/pZ ~ Z/qZ, lfapplication definie par ƒÓ(x) = (x, .x) ou x est la reduction de x modulo p, et .x est la reduction de x modulo q. Cette application ƒÓ est bien definie et cfest un morphisme de groupes. De plus elle est injective : si ƒÓ(x) = (0,0) alors x ß 0 (mod p) et x ß 0 (mod q), donc p divise x et q divise x ; ainsi p et q etant premiers entre eux, le produit pq divise x, donc x ß 0 (mod pq). Comme les ensembles de depart et dfarrivee ont le meme cardinal pq alors ƒÓ est bijective. Corollaire 1. Soient p et q deux nombres premiers entre eux. Soient a, b ¸ Z. Il existe x ¸ Z tel que : x ß a (mod p) x ß b (mod q) . 6.2. Version generale Theoreme 5. Soit pƒ¿1 1 ~ pƒ¿2 2 ~ E E E ~ pƒ¿. . la decomposition dfun entier n en produit de facteurs premiers. Alors Z/nZ est isomorphe au groupe Z/pƒ¿1Z ~ E E E ~ Z/pƒ¿.Z. La preuve est une recurrence a partir du cas pq. 7. Le groupe (Z/nZ). 7.1. Groupe produit Si A et B sont deux groupes, alors le groupe produit A~ B est defini par la loi (a, b) ~ (aŒ, bŒ) = (aaŒ, bbŒ) et lfelement neutre est (eA, eB) forme a partir des elements neutres de chaque groupe. En particulier (a, b)k = (ak, bk) et (a, b).1 = (a.1, b.1). Lfordre de (a, b) est le plus petit multiple commun des ordres de a et b : ord(a, b) = ppcm(ord(a), ord(b)). 7.2. Isomorphisme COMPLEMENTS DfARITHMETIQUE 180 Proposition 8. Soient p et q deux nombres premiers entre eux alors (Z/pqZ). est isomorphe a (Z/pZ). ~ (Z/qZ).. Demonstration. Cfest le theoreme des restes chinois (cas pq) avec le fait que x est premier avec pq si et seulement si x est premier avec p et avec q. La version generale est la suivante : Theoreme 6. Soit pƒ¿1 1 ~ pƒ¿2 2 ~ E E E ~ pƒ¿. . la decomposition dfun entier n en produit de facteurs premiers. Alors (Z/nZ). est isomorphe au groupe (Z/pƒ¿1Z). ~ E E E ~ (Z/pƒ¿.Z).. 7.3. Elements dfordre pair Proposition 9. Soit n = Q. i=1 pƒ¿i i la decomposition de n en produits de . facteurs, avec pi . 3. La proportion dfelements dfordre pair de (Z/nZ). est superieure a 1 . 1 2. . Demonstration. Par le theoreme des restes chinois pour les elements inversibles (theoreme 6), chaque element x ¸ (Z/nZ). est en correspondance avec un element (x1, . . . , x.) ou xi ¸ (Z/pƒ¿iZ).. Lfordre de x est le ppcm des ordres des xi , donc ord(x) est pair si et seulement si lfun au moins des ord(xi) est pair. Autrement dit ord(x) est impair si et seulement si tous les ord(xi) sont impairs. Par la proposition 6, pour chaque i, la proportion de xi dfordre impair est strictement inferieure a 12 , donc la proportion de .-uplets (x1, . . . , x.) dont tous les elements sont dfordre impair est strictement inferieure a ..12 .. Par complement la proportion dfelements dfordre pair dans (Z/nZ). est superieure a 1 . .. 1 2 .. 7.4. Racines carrees de 1 Proposition 10. Soit n = Q. i=1 pƒ¿i i la decomposition de n en produit de . facteurs, avec pi . 3. Il y a exactement 2. racines carrees de 1 modulo n. Demonstration. Par le theoreme des restes chinois pour les elements inversibles (theoreme 6), un element x ¸ (Z/nZ). est en correspondance avec un element (x1, . . . , x.) ou xi ¸ (Z/pƒ¿iZ).. Alors x verifie x2 ß 1 (mod n) si et seulement si x2 i ß 1 (mod pƒ¿i i ), pour tout i = 1, . . . , .. Par la proposition 7, il existe deux racines carrees pour chaque i : xi = +1 ou xi = .1, ce qui donne au total 2. solutions (x1, . . . , x.) = (}1,}1, . . . ,}1), donc 2. racines carrees dans (Z/nZ).. 8. Les hypotheses de lfalgorithme de Shor 8.1. Prealable de lfalgorithme de Shor Lfalgorithme de Shor a pour but de factoriser un entier n. Plus precisement on souhaite trouver un facteur k de n (autre que 1 et n). On pourra ensuite relancer lfalgorithme avec nk et avec k. Au prealable on exclut certaines situations : . n nfest pas un entier pair. Il est tres facile de tester si n est pair en verifiant si n ß 0 (mod 2). Si n est pair, alors il est divisible par 2 et cfest termine. . n nfest pas un nombre premier p. Il existe des tests performants pour savoir si un entier n est premier ou pas sans calculer sa factorisation (voir le chapitre á Arithmetique â). . n nfest pas une puissance pƒ¿ dfun nombre premier. Un test simple repose sur le fait que si n = pƒ¿ alors ƒ¿ = logp(n) . log2(n). Il suffit donc de tester si n1k est un entier pour un k parmi 2, 3, . . . jusqufa log2(n). COMPLEMENTS DfARITHMETIQUE 181 Dans la suite on considere donc un entier n impair, ayant au moins deux facteurs premiers distincts. On ecrit sa decomposition n = Q. i=1 pƒ¿i i en produit de . facteurs, avec pi . 3 premiers. 8.2. Lfalgorithme de Shor fonctionne au moins une fois sur deux Hypothese 1. Lfordre r de a modulo n est pair. Hypothese 2. ar/2 + 1 nfest pas divisible par n. Theoreme 7. Soit n = Q. i=1 pƒ¿i i la decomposition de n en produit de . facteurs, avec pi premier et pi . 3. Alors la probabilite qufun entier a ¸ (Z/nZ). verifie lfhypothese 1 et lfhypothese 2 est superieure a 1 . 1 2..1 . Remarques. . Le pire cas se produit lorsqufil y a seulement . = 2 facteurs premiers, comme dans le protocole RSA ou n = pq. Dans ce cas au moins 50% des a conviennent. . On peut enoncer un resultat combinatoire : le nombre dfelements a satisfaisant les hypotheses 1 et 2 est superieur a (1 . 1 2..1 ).(n) parmi tous les .(n) elements de (Z/nZ).. . La preuve nfest pas constructive, il nfexiste pas de moyen simple de calculer lfordre de a (cfest dfailleurs le but de lfalgorithme de Shor). 8.3. Preliminaires On connait deja la proportion dfelements a qui verifient lfhypothese 1. Par la proposition 9, la proportion dfelements dfordre pair est superieure a 1 . 1 2. . On rappelle que lfobjectif de lfalgorithme de Shor est de trouver la periode r dfun element a et si r est pair dfecrire lfegalite ar ß 1 (mod n) sous la forme dfune factorisation : (ar/2 . 1)(ar/2 + 1) ß 0 (mod n). Cela permet de trouver un facteur de n a condition que les termes de la factorisation ci-dessus soient non nuls. Nous allons etudier en details les racines carrees non-triviales de 1. Pourquoi ? . Tout dfabord, par definition de lfordre r, on ne peut pas avoir ar/2 ß 1 (mod n). Ainsi ar/2 . 1 .ß 0 (mod n) et le premier terme de la factorisation est non nul. . Supposons que lfhypothese 2 soit vraie, cfest-a-dire ar/2 + 1 nfest pas divisible par n. Alors ar/2 + 1 .ß 0 (mod n) et ainsi le second terme est non nul. Dans ce cas on a ar/2 .ß .1 (mod n). . Enfin, comme r est lfordre de a, alors (ar/2)2 ß +1 (mod n) et avec les hypotheses 1 et 2, ar/2 est une racine carree non-triviale de 1. Notons R lfensemble des racines carrees de 1 modulo n : R = x ¸ Z/nZ | x2 ß 1 (mod n) . On rappelle que : . Une racine carree est necessairement inversible (son inverse est elle-meme), donc R ¼ (Z/nZ).. . 1 et .1 sont les deux racines carrees evidentes. . Il y a exactement 2. racines carrees : CardR = 2., ou . est le nombre de facteurs premiers distincts de n. Et il y a donc 2. . 2 racines carrees non triviales. 8.4. Deux lemmes Lemme 3. Soit s . 1 et soit y ¸ (Z/nZ).. Lfequation xs ß ys (mod n), dfinconnue x, possede toujours le meme nombre de solutions quel que soit y. COMPLEMENTS DfARITHMETIQUE 182 Demonstration. Notons S = {a1, . . . , ad} lfensemble des solutions de xs ß 1 (mod n). Alors xs ß ys (mod n) .Ë . x y .s ß 1 (mod n) .Ë x y ¸ S .Ë x = ai y pour un i ¸ {1, . . . , d}. Les solutions de xs ß ys sont donc les d elements {a1 y, . . . , ad y}. Lemme 4. Sfil existe x0 ¸ (Z/nZ). tel que xs0 ß .1 (mod n) alors toute racine carree z dans R peut sfecrire sous la forme z = ys, pour un certain y ¸ (Z/nZ).. Demonstration. Le theoreme des restes chinois fournit un isomorphisme entre (Z/nZ). et (Z/pƒ¿1 1 Z). ~E E E~ (Z/pƒ¿. . Z).. De plus, la proposition 10 donne la correspondance entre une racine carree z ¸ R ¼ (Z/nZ). et un element (z1, . . . , z.) = (}1,}1, . . . ,}1) dans le produit des (Z/pƒ¿i i Z).. Le theoreme des restes chinois fait correspondre x0 a un element (x1, . . . , x.) et .1 a (.1, . . . ,.1). Lfhypothese xs0 ß .1 (mod n) se traduit donc en xs i ß .1 (mod pƒ¿i i ). Si zi = +1, alors on pose yi = +1, si zi = .1 alors on pose yi ß xi . Dans les deux cas on a ys i ß zi (mod pƒ¿i i ) et par isomorphisme lfelement ( y1, . . . , y.) du groupe produit correspond a y ¸ (Z/nZ). tel que ys = z. 8.5. Puissance qui est une racine carree On ne veut pas compter les racines carrees mais le nombre dfelements x tel que xs soit une racine carree. On rappelle que dans tous les cas on exclut la racine carree 1 (qui nfa pas le bon ordre). Mais par contre parmi les x tel que xs soit une racine carree on veut distinguer la racine carree .1 (qui est celle a eviter pour avoir lfhypothese 2). Lemme 5. Soit s . 1. Notons Ss = x ¸ (Z/nZ). | xs ¸ R\ {1} et SŒ s = x ¸ (Z/nZ). | xs ¸ R\ {1,.1} . Alors CardSŒ s CardSs . 1 . 1 2. . 1 . Demonstration. Dans le cas ou lfequation xs ß .1 (mod n) nfa pas de solution, les deux ensembles Ss et SŒ s sont egaux, donc CardSŒ s CardSs = 1 et lfassertion est vraie. Supposons qufil existe x0 tel que xs0 ß .1 (mod n). Soit z ¸ R, alors par le lemme 4, lfequation xs ß z (mod n) est equivalente a lfequation xs ß ys (mod n) (pour un certain y). Par le lemme 3, cette equation possede toujours le meme nombre d de solutions (quel que soit y et donc aussi quel que soit z ¸ R). Sachant que CardR = 2. alors CardSŒ s = d ~ Card(R\ {1,.1}) = d ~ (2. . 2). De meme CardSs = d ~ Card(R\ {1}) = d ~ (2. . 1). Donc CardSŒ s CardSs = 2..2 2..1 = 1 . 1 2..1 . COMPLEMENTS DfARITHMETIQUE 183 8.6. Cas favorables Nous terminons la preuve du theoreme 7. Preuve du theoreme 7. Nous avons deja estime dans la proposition 9, le nombre dfelements dfordre pair, que lfon note P(Z/nZ). : Card P(Z/nZ). Card(Z/nZ). . 1 . 1 2. = 2. . 1 2. . Nous allons maintenant determiner la proportion dfelements verifiant lfhypothese 2 parmi les elements dfordre pair. Pour tout ordre pair r, on note s = r2 . Ainsi si un element x est dfordre pair r, on a (xs)2 ß 1 (mod n), avec xs .ß 1 (mod n). Autrement dit xs ¸ R\{1}, cfest-a-dire x ¸ Ss. Ainsi lfensemble des elements dfordre pair P(Z/nZ). (cfest-a-dire satisfaisant lfhypothese 1) est lfunion des Ss (pour 1 . s . .(n) 2 ). De plus, lfordre etant unique, ces ensembles sont disjoints. Notons lfensemble des cas favorables F(Z/nZ)., cfest-a-dire les elements satisfaisant lfhypothese 1 et lfhypothese 2. F(Z/nZ). est simplement lfunion disjointe des SŒ s . Par le lemme 5, on a pour chaque s : CardSŒ s CardSs . 1 . 1 2. . 1 = 2. . 2 2. . 1 . Comme cette inegalite est vraie pour les ensembles indexes par s, on obtient egalement pour lfunion : Card F(Z/nZ). Card P(Z/nZ). . 2. . 2 2. . 1 . Conclusion : Card F(Z/nZ). Card(Z/nZ). = Card F(Z/nZ). Card P(Z/nZ). ~ Card P(Z/nZ). Card(Z/nZ). . 2. . 2 2. . 1 ~ 2. . 1 2. = 2. . 2 2. = 1 . 1 2..1 . Notes. Lfexplication du cas dans lequel lfordre nfest pas une puissance de 2 est basee sur lfarticle Shorfs algorithm for factoring large integers par C. Lavor, L.R.U. Manssur, R. Portugal. Il nfest pas facile de trouver une reference exacte et complete pour le comptage des cas favorables (theoreme 7). La preuve donnee ici est reprise de á Introduction a lfinformatique quantique â par Y. Leroyer et G. Senizergues a lfEnseirb-Matmeca. Transformee de Fourier discrete Chapitre 15 Video ¡ partie 15. Transformee de Fourier discrete (par des dessins) Nous revenons sur lfoutil principal de lfalgorithme de Shor : la transformee de Fourier. Nous expliquons comment elle est construite, comment la realiser par un circuit quantique et quelles sont ses autres applications. 1. Comprendre la transformee de Fourier La transformee de Fourier, cfest la magie de pouvoir recuperer chacune des couleurs qufon a melangees dans un pot de peinture ! 1.1. Les transformees de Fourier Voici un exemple : on prend trois fonctions sinusoidales f1, f2, f3 (figure du bas) que lfon additionne pour obtenir une fonction compliquee f (x) = f1(x) + f2(x) + f3(x) (figure du haut). Alors la transformee de Fourier permet de retrouver chacune des composantes f1, f2, f3 a partir de f . Le monde de Fourier est assez vaste, voici un petit lexique : . la transformee de Fourier concerne une fonction quelconque, elle se calcule a lfaide dfune integrale, . les series de Fourier sfappliquent a des fonctions periodiques (comme ci-dessus), TRANSFORMEE DE FOURIER DISCRETE 185 . la transformee de Fourier discrete sfapplique a une liste de nombres reels ou complexes, . la transformee de Fourier discrete quantique est une variante de la precedente et transforme un qubit en un autre qubit. 1.2. La transformee de Fourier discrete classique Nous allons expliquer le principe de la transformee de Fourier discrete (non quantique) et justifier comment elle permet de retrouver les periodes. Voici la definition de la transformee de Fourier discrete. Soit (x0, . . . , xn.1) une suite de n nombres (ils peuvent etre complexes mais pour nos exemples ce seront des reels). La transformee de Fourier discrete de (x0, . . . , xn.1) est la liste de nombres complexes (X0, . . . , Xn.1) ou chaque Xk est defini par : Xk = 1 p n Xn.1 j=0 x j e.2iƒÎ kE j n . Si on note ƒÖ = e 2iƒÎ n et ƒÖ. = e.2iƒÎ n , alors Xk = 1 p n .. x0(ƒÖ.)kE0 + x1(ƒÖ.)kE1 + E E E + xn.1(ƒÖ.)kE(n.1) . La formule nfest donc pas si difficile a comprendre. Mais pourquoi vouloir transformer une suite de nombres par une operation aussi compliquee ? 1.3. Construction de la transformee de Fourier discrete Lfidee de la construction de la transformee de Fourier est tres simple ! Nous avons des donnees x j (pour nous x j ¸ R). Nous representons traditionnellement x j sous la forme dfun point (ou lfordonnee du point est la valeur x j , les points etant places de gauche a droite). Mais on peut aussi utiliser une representation circulaire : chaque point est a une distance x j de lforigine, et les points sont repartis dans le sens des aiguilles dfune montre. Les donnees sont (x0, x1, x2, x3) = (1.5, 4, 2, 3). Figure de gauche : les donnees sont presentees sous la forme de points ( j, x j). Figure de droite les memes donnees sous forme dfecriture polaire : lfangle est proportionnel a j et le rayon est x j . TRANSFORMEE DE FOURIER DISCRETE 186 Le point cle de la representation circulaire est qufon peut repartir les donnees sur un angle plus ou moins grand. Notons 2ƒÎt lfangle total dfetalement, alors plus precisement lfangle entre deux donnees est 2ƒÎt n . Comment est calculee cette representation circulaire ? La donnee x j correspond au point du plan situe a distance x j de lforigine et faisant un angle .2ƒÎt n ~ j avec lfhorizontale : cfest donc le nombre complexe zj = x j e.2iƒÎ tn j . On voit apparaitre le terme de la definition de la transformee de Fourier. Voici differents etalements possibles, ils correspondent a differentes valeurs du parametre t. Pour t = 14 les donnees sont reparties sur un quart de cercle, pour t = 12 un demi-cercle, pour t = 1 le cercle entier et pour t > 1 les donnees sfenroulent plusieurs fois autour du cercle. Figure de dessus : les donnees sont sous la forme de points ( j, x j). Figures du dessous : les memes donnees sous forme circulaire avec t = 1 4 , t = 1 2 , t = 1 et t > 1. 1.4. Enroulements particuliers On remplace lfetude dfune fonction f : [a, b]¨R par lfetude de valeurs x j = f (aj) pour une subdivision (aj) de lfintervalle [a, b]. Pour avoir une meilleure precision, il suffit dfaugmenter le nombre n de points dans la subdivision. On relie les points de ces donnees pour approcher le graphe de f . TRANSFORMEE DE FOURIER DISCRETE 187 Fonction f (x) = 1 + cos(3x) sur lfintervalle [0, 2ƒÎ]. Les donnees sont les x j = f (aj) avec une subdivision de n = 15 points a gauche, n = 30 au centre, n = 100 a droite. On peut aussi relier les points du graphe circulaire. Geometriquement on a ainsi enroule le graphe de la fonction f , sur le cercle. Les memes donnees sur le graphe circulaire avec n = 15 points a gauche, n = 30 au centre, n = 100 a droite. Regardons maintenant les differents enroulements selon le parametre dfetalement t. Tout dfabord on exclut les t avec t < 1 car le graphe ne sfenroule pas totalement autour du cercle. Pour la plupart des parametres on obtient une jolie figure symetrique autour de lforigine, mais il y a des exceptions. Pour t = 3 on obtient une figure completement decalee a droite. Que se passe-t-il en t = 3 ? Le graphe de f est periodique et pour cette valeur de t la courbe enroulee vient se superposer a elle-meme lors des enroulements successifs. t = 0.25 t = 0.5 t = 0.75 t = 1 t = 1.25 t = 1.50 t = 2 t = 2.5 TRANSFORMEE DE FOURIER DISCRETE 188 t = 3 t = 4 t = 4.5 t = 5 Graphe de f (x) = 1 + cos(3x) sur lfintervalle [0, 2ƒÎ] enroule sur le cercle pour differentes valeurs de t. Pour t = 3 la figure nfest plus symetrique par rapport a lforigine. La petite croix orange designe le centre de gravite. Ce cas particulier t = 3 est le cas qui nous interesse ! Le parametre t = 3 correspond a la periode de notre fonction. En effet, la fonction f (x) = 1 + cos(3x) est 2ƒÎ 3 periodique et le parametre special est t = 3. Pour une fonction f (x) = 1 + cos(ƒ¿x), la periode est 2ƒÎ ƒ¿ et le parametre special est t = ƒ¿ (en fait t correspond a la frequence qui est lfinverse de la periode). 1.5. Centre de gravite Est-ce que cette technique permet dfobtenir les differentes periodes dfun signal obtenu par superposition (comme dans lfexemple du tout debut de ce chapitre) ? La reponse est oui ! Voyons comment reperer ces parametres particuliers qui correspondent a des periodes. Pour la plupart des parametres les figures obtenues sont symetriques par rapport a lforigine, donc le centre de gravite est proche de lforigine (en physique on parle dfinterference destructive). Par contre, pour certains parametres particuliers, le centre de gravite sfeloigne de lforigine. Nous obtenons donc un critere numerique simple. Le centre de gravite des points se calcule comme une moyenne des points : Xt = 1 p n Xn.1 j=0 x j e.2iƒÎ tE j n . Quelques remarques : . Sur les dessins precedents ce centre de gravite etait represente par une petite croix orange. . Nous preferons le choix du coefficient 1 p n (au lieu du coefficient 1 n du vrai centre de gravite). . Pour t = k la formule est exactement celle de la transformee de Fourier discrete des (x j). Comment evolue Xt en fonction de t et comment reperer les parametres particuliers ? Le nombre Xt est un nombre complexe, on se contente de regarder sa partie reelle Re(Xt ). La fonction t 7¨ Re(Xt ) mesure donc lfabscisse du centre de gravite. TRANSFORMEE DE FOURIER DISCRETE 189 Graphe de la fonction t 7¨ Re(Xt ) qui mesure lfabscisse du centre de gravite de lfenroulement de la fonction f (x) = 1 + cos(3x) sur lfintervalle [0, 2ƒÎ] pour differentes valeurs de t. Le pic a t = 3 marque la rupture de symetrie. Pour la plupart des valeurs de t, Re(Xt ) est proche de 0, les pics correspondent a la rupture de symetrie centrale et determinent les periodes des composantes de la fonction. 1.6. Autre exemple Soient f1(x) = 1 + cos(3x) et f2(x) = 12 (1 + cos(5x)) et leur somme f (x) = f1(x) + f2(x) definie sur lfintervalle [0, 2ƒÎ]. A partir de f , nous souhaitons retrouver les periodes 2ƒÎ 3 et 2ƒÎ 5 de ses deux composantes. Le graphe de la fonction f (x) = f1(x) + f2(x) sur [0, 2ƒÎ] avec f1(x) = 1 + cos(3x) et f2(x) = 1 2 (1 + cos(5x)). On enroule le graphe de f sur un cercle, selon differentes valeurs de t. t = 1 t = 2 t = 3 t = 4 TRANSFORMEE DE FOURIER DISCRETE 190 t = 5 t = 6 t = 7 Enroulement du graphe de f pour differentes valeurs de t. Noter le decalage du centre de gravite (la croix orange) en t = 3 et t = 5. Le centre de gravite se calcule selon la formule de la transformee de Fourier discrete, pour nos parametres t = 1, t = 2, . . . Xt = 1 p n Xn.1 j=0 x j e.2iƒÎ tE j n . ou x j = f € jn . Graphe de la fonction t 7¨ Re(Xt ) qui mesure lfabscisse du centre de gravite de lfenroulement de la fonction f (x) sur lfintervalle [0, 2ƒÎ] pour differentes valeurs de t. On remarque des pics en t = 3 et t = 5. 1.7. Lfinverse de la transformee de Fourier discrete On a donc vu lfinteret de la transformee de Fourier : elle permet de retrouver les caracteristiques dfune fonction (ou dfune serie de donnees). Mais de plus cette transformation ne perd pas dfinformation. Dfun point de vue mathematique la transformation est bijective. On peut retrouver les (xk) connaissant les (X j) par une formule similaire (seul le signe de lfexponentielle change) : xk = 1 p n Xn.1 j=0 X j e+2iƒÎ kE j n . Conclusion : la transformee de Fourier discrete transforme une liste de n nombres en une autre liste de n nombres. Cette transformation est bijective et permet en particulier de determiner la periode dfun signal periodique. TRANSFORMEE DE FOURIER DISCRETE 191 1.8. La transformee de Fourier discrete quantique La transformee de Fourier discrete quantique est par definition cette variante de la transformee de Fourier discrete : .F k = 1 p 2n 2Xn.1 j=0 e2iƒÎ kE j 2n j ÷ Les differences sont les suivantes : . Par convention on choisit un signe á + â pour lfexposant de la transformee quantique (comme pour la transformee de Fourier discrete inverse classique). . Les donnees sont remplacees par les qubits de bases 0 , 1 ,. . . . En consequence le nombre total de donnees est une puissance de 2. Pour les n-qubits, il y a 2n qubits de base 0 ,. . ., 2n . 1 . . La fonction .F sfetend par linearite a nfimporte quel n-qubit. Si |ƒÕ. = ƒ¿0 0 + ƒ¿1 1 + E E E alors .F |ƒÕ. = ƒ¿0 .F 0 + ƒ¿1 .F 1 + E E E 2. Ecritures de la transformee de Fourier 2.1. Definition de la transformee de Fourier On rappelle la definition de la transformee de Fourier discrete quantique pour un n-qubit de base k : .F k = 1 p 2n 2Xn.1 j=0 e2iƒÎ kE j 2n j ÷ . (1) Dans toute la suite du chapitre la notion de á transformee de Fourier â designe la transformee de Fourier discrete quantique. On renvoie au chapitre á Algorithme de Shor â pour les details et les premieres proprietes. 2.2. Factorisation de la transformee de Fourier Voici le resultat fondamental de ce chapitre qui permettra de realiser le circuit quantique de la transformee de Fourier. Theoreme 1. .F k = 1 p 2n Yn .=1 |0. + e2iƒÎ k 2. |1. Notation : on note le produit sous la forme Qn .=1 afin de ne pas effrayer le lecteur, alors qufen toute rigueur il sfagit dfun produit tensoriel : .F k = 1 p 2n On .=1 |0. + e2iƒÎ k 2. |1. . De facon developpee la factorisation sfecrit : .F k = 1 p 2n € |0. + e2iƒÎk2 |1. . . |0. + e2iƒÎ k 22 |1. . E E E . € |0. + e2iƒÎ k 2n |1. . . Exemple. . Pour n = 1 le produit est reduit a un seul element, .F k = 1 p 2 € |0. + e2iƒÎk2 |1. . . Ainsi pour k = 0, .F 0 = 1 p 2 (|0. + |1.) et pour k = 1, eiƒÎ = .1 donc .F 1 = 1 p 2 (|0. . |1.). On retrouve bien que pour n = 1, la transformee de Fourier correspond a la porte de Hadamard H. TRANSFORMEE DE FOURIER DISCRETE 192 . Pour n = 2, on ecrit pour . = 1, e2iƒÎk2 = (.1)k et pour . = 2, e2iƒÎ k 22 = ik, la factorisation sfecrit donc .F k = 1 2 .. |0. + (.1)k |1. .. |0. + ik |1. . . Pour n = 3, notons ƒÖ = e 2iƒÎ 23 = e iƒÎ 4 , la factorisation sfecrit : .F k = 1 p 8 .. |0. + (.1)k |1. .. |0. + ik |1. .. |0. +ƒÖk |1. . Mais comme ƒÖ2 = i et ƒÖ4 = .1, on peut aussi lfecrire : .F k = 1 p 8 € |0. +ƒÖ22Ek |1. . .. |0. +ƒÖ2Ek |1. .. |0. +ƒÖk |1. . La preuve du theoreme repose sur lfecriture binaire des entiers. Prenons j un entier (avec 0 . j < 2n) et ecrivons sa decomposition suivant les puissances de 2 : j = Xn.1 .=0 j.2. = jn.1 E 2n.1 + E E E + j2 E 22 + j1 E 2 + j0 avec j. = 0 ou j. = 1, pour . = 0, . . . , n.1 et notons comme dfhabitude j = jn.1 . . . j2. j1. j0 lfecriture binaire de j. Par definition : j ÷ = | jn.1 . . . j2. j1. j0. = | jn.1. E E E | j2. E | j1. E | j0. . Demonstration. Nous partons du produit Yn .=1 |0. + e2iƒÎ k 2. |1. (2) que nous allons developper. Nous allons montrer que le coefficient devant le terme j ÷ est le meme que celui de la definition (1) de la transformee de Fourier. Recrivons le produit (2) sous une forme plus explicite : |0. + e2iƒÎ k 21 |1. ~ |0. + e2iƒÎ k 22 |1. ~ |0. + e2iƒÎ k 23 |1. ~ E E E (3) Lorsque lfon developpe cette expression, on obtient des termes qui resultent du choix pour chaque ligne de (3) dfun des deux elements |0. ou e2iƒÎ k 2. |1.. Par exemple, si on choisit |0. a chaque ligne de (3), alors on obtient le terme |0. E |0. E E E |0. = |0.0 . . . 0. = 0 avec comme coefficient 1, exactement comme le coefficient 0 de lfexpression (1). Revenons au cas general. Pour la premiere ligne de (3), soit on choisit le facteur |0. et alors on va obtenir un terme qui commence par |0. : j ÷ = |0 . . .., soit on choisit le facteur e2iƒÎ k 21 |1. et on va obtenir un terme qui commence par |1. : j ÷ = |1 . . ... On peut regrouper ces deux cas en une seule formule : notons jn.1 un bit (qui vaut 0 ou 1) alors le facteur de la premiere ligne sfecrit e2iƒÎ kE jn.1 21 | jn.1.. En effet si jn.1 = 0 alors ce facteur vaut e2iƒÎE0 |0., cfest donc |0., et si jn.1 = 1 cfest e2iƒÎkE1 21 |1.. Ce facteur va produire un terme qui commence par le bit jn.1 : j ÷ = | jn.1 . . ... Ainsi le choix du facteur de la premiere ligne correspond au premier bit de j (celui le plus a gauche). Plus generalement, le facteur de la ligne . de (3) sfecrit e2iƒÎ kE jn.. 2. | jn.. .. En effet, si jn.. = 0 alors cfest |0. et si jn.. = 1 alors cfest bien e2iƒÎ k 2. |1.. Ce facteur va produire un terme avec le bit jn.. : j ÷ = |. . . jn.. . . ... TRANSFORMEE DE FOURIER DISCRETE 193 Ainsi le terme qui correspond au qubit j ÷ dans le developpement de (3) est le produit des facteurs e2iƒÎ kE jn.. 2. | jn.. . pour chacune des lignes. Calculons ce terme : Yn .=1 . e2iƒÎ kE jn.. 2. | jn.. . . = . Yn .=1 e2iƒÎ kE jn.. 2. . | jn.1 . . . j2. j1. j0. = e2iƒÎkE Pn .=1 jn.. 2. j ÷ = e2iƒÎ k 2n E Pn .=1 jn..2n.. j ÷ = e2iƒÎ k 2n E Pn.1 .Œ=0 j.Œ2. Œ j ÷ = e2iƒÎ k 2n E j j ÷ Ainsi le coefficient de j ÷ du developpement de la formule (2) est e2iƒÎ k 2n E j qui est exactement celui du coefficient de j ÷ dans la definition de la transformee de Fourier (1). Ceci etant vrai quel que soit le qubit j ÷ , on a donc bien : .F k = 1 p 2n 2Xn.1 j=0 e2iƒÎ kE j 2n j ÷ = 1 p 2n Yn .=1 |0. + e2iƒÎ k 2. |1. . 2.3. Variante Commencons par introduire lfecriture binaire pour un nombre 0 . x < 1. 0.. j1. j2 . . . jn = j1 2 + j2 22 + E E E + jn 2n = Xn .=1 j. 2. . La notation est 0.. j1. j2 . . . jn : les points separent les bits, le double point symbolise la virgule car en ecriture decimale le nombre sfecrit 0.abc . . . Par exemple x = 0.625 (en ecriture decimale) sfecrit en ecriture binaire x = 0..1.0.1 car 0.625 = 12 + 04 + 18 . Nous reformulons le theoreme 1 de factorisation en jouant sur le passage de lfecriture binaire de lfentier k a lfecriture binaire dfun nombre a virgule. Corollaire 1. Si k = |kn.1 . . . k1.k0. .F k = 1 p 2n Yn .=1 .. |0. + e2iƒÎ0..k..1...k0 |1. . Autrement dit .F k = 1 p 2n .. |0. + e2iƒÎ0..k0 |1. . .. |0. + e2iƒÎ0..k1.k0 |1. . E E E . .. |0. + e2iƒÎ0..kn.1...k1.k0 |1. . Demonstration. Notons tout dfabord que pour nfimporte quel entier p, e2iƒÎp = 1. TRANSFORMEE DE FOURIER DISCRETE 194 Alors k 2. = kn.12n.1 + E E E + k222 + k12 + k0 2. = kn.12n.1.. + E E E + k | {z }. partie entiere + k..1 2 + E E E + k0 2. | {z } partie decimale = p + 0..k..1 . . . k0 Ainsi e2iƒÎ k 2. = e2iƒÎ(p+0..k..1...k0) = e2iƒÎ0..k..1...k0 . Par exemple : . pour . = 1, e2iƒÎk2 = e2iƒÎ0..k0 ; . pour . = 2, e2iƒÎk4 = e2iƒÎ0..k1.k0 ; . et pour . = n, e2iƒÎ k 2n = e2iƒÎ0..kn.1...k1.k0 . Le theoreme 1 donne alors la formule voulue. 3. Circuit de la transformation Fourier Nous allons construire un circuit quantique qui realise la transformee de Fourier. 3.1. Porte Rk Soit Rk ¸ M2(C) la matrice unitaire suivante : Rk = . 1 0 0 e 2iƒÎ 2k . . Notons aussi Rk la porte quantique correspondante : Rk . Pour n = 0, e 2iƒÎ 1 = 1 donc R0 = I : la transformation est lfidentite. . Pour n = 1, e 2iƒÎ 2 = .1 donc la transformation est R1 = Z (|0. 7¨ |0., |1. 7¨ .|1.). . Pour n = 2, e 2iƒÎ 4 = i, la porte R2 est aussi appelee porte S (|0. 7¨ |0., |1. 7¨ i |1.). . Pour n = 3, e 2iƒÎ 8 = e iƒÎ 4 , la porte R3 est aussi appelee porte T (|0. 7¨ |0., |1. 7¨ e iƒÎ 4 |1.). R0 = I = 1 0 0 1 R1 = Z = 1 0 0 .1 R2 = S = 1 0 0 i R3 = T = 1 0 0 e iƒÎ 4 3.2. Controle des portes Chaque porte R va etre á controlee â par un autre qubit qui determinera si on applique ou non la porte R. . R Si le premier qubit est |0., on ne change pas le second qubit, si le premier qubit est |1., on applique la porte R au second qubit restant. |0. . / |0. |ƒÕ. R / |ƒÕ. |1. . / |1. |ƒÕ. R / R|ƒÕ. TRANSFORMEE DE FOURIER DISCRETE 195 3.3. Circuit |k0. . . . H / |0. + e2iƒÎ0..k0 |1. |k1. . . H R2 / |0. + e2iƒÎ0..k1.k0 |1. ... ... |kn.2. . H R2 R3 E E E Rn.1 / |0. + e2iƒÎ0..kn.2...k1.k0 |1. |kn.1. H R2 R3 E E E Rn / |0. + e2iƒÎ0..kn.1...k1.k0 |1. Justifions que ce circuit convient en regardant les exemples avec peu de lignes. Cas n = 1. Le circuit est simplement reduit a une seule ligne contenant la seule porte H : |k0. H / |ƒÕ0. Donc |ƒÕ0. = H |k0.. Ainsi |ƒÕ0. = |0. + |1. si k0 = 0, et |ƒÕ0. = |0. . |1. si k0 = 1 (aux coefficients p 2 pres). On resume cela en une seule formule pour les deux cas : |ƒÕ0. = |0. + (.1)k0 |1. = |0. + e2iƒÎ k0 2 |1. = |0. + e2iƒÎ0..k0 |1. , car on rappelle que e2iƒÎ0..k0 = e2iƒÎ k0 2 = eiƒÎk0 = (.1)k0 qui vaut +1 si k0 = 0 et .1 si k0 = 1. Cas n = 2. |k0. . H / |ƒÕ0. |k1. H R2 / |ƒÕ1. Il est clair que |ƒÕ0. est le meme qubit que dans le cas n = 1 ci-dessus. Calculons le qubit |ƒÕ1.. Si |k0. = |0. alors la seconde ligne est juste une porte H car la porte R2 nfest pas activee. Donc si k0 = 0, on a comme ci-dessus pour le cas n = 1 : |ƒÕ1. = H |k1. = |0. + e2iƒÎ k1 2 |1. (4) Par contre si k0 = 1 la porte R2 est activee et la seconde ligne devient : |k1. H R2 / |ƒÕ1. Ainsi : |ƒÕ1. = R2 (H |k1.) = R2 |0. + e2iƒÎ k1 2 |1. = R2 |0. + e2iƒÎ k1 2 R2 |1. = |0. + e2iƒÎ k1 2 E e2iƒÎ14 |1. (5) On peut regrouper les cas k0 = 0 et k0 = 1 des equations (4) et (5) en une seule equation : |ƒÕ1. = |0. + e2iƒÎ k1 2 E e2iƒÎ k0 4 |1. (6) ou lfon a utilise que e2iƒÎ k0 4 vaut 1 si k0 = 0 et e2iƒÎ14 si k0 = 1. Mais comme e2iƒÎ k1 2 E e2iƒÎ k0 4 = e2iƒÎ0..k1.k0 , on obtient bien : |ƒÕ1. = |0. + e2iƒÎ0..k1.k0 |1. . Cas n = 3. TRANSFORMEE DE FOURIER DISCRETE 196 |k0. . . H / |ƒÕ0. |k1. . H R2 / |ƒÕ1. |k2. H R2 R3 / |ƒÕ2. Les calculs sfeffectuent sur le meme principe : |ƒÕ0. et |ƒÕ1. sont les memes que precedemment et |ƒÕ2. = |0. + e2iƒÎ k2 2 E e2iƒÎ k1 4 E e2iƒÎ k0 8 |1. = |0. + e2iƒÎ0..k2.k1.k0 |1. . Le calcul pour un n quelconque se fait par recurrence et prouve que le circuit calcule la transformee de Fourier. 3.4. Porte SWAP Il faut faire une petite modification au circuit de la transformee de Fourier qui, en effet, ne respecte pas notre convention habituelle sur lfordre dfecriture des qubits. Dans notre circuit le qubit en entree est |k0. . |k1. . E E E . |kn.1.. Mais si lfecriture binaire de k est kn.1 . . . k1.k0 alors k = |kn.1. . E E E |k1. . |k0.. Pour obtenir lfecriture voulue il suffit de renverser les qubits. Cela se fait avec une porte SWAP que lfon a vue lors du chapitre á Portes quantiques â. Ainsi le circuit complet pour lfexemple de n = 3 devient : |k2. SWAP . . H / |ƒÕ0. |k1. . H R2 / |ƒÕ1. |k0. H R2 R3 / |ƒÕ2. En incluant une porte SWAP, nous avons construit un circuit qui realise la transformee de Fourier : k / .F / .F k / 4. Estimation de phase La derniere application de la transformee de Fourier que nous allons voir est á lfestimation de phase â, cfest le nom physique utilise pour parler de la determination dfune valeur propre dfune matrice unitaire. Cette section ne revient pas sur les details et les motivations concernant les valeurs propres : on renvoie pour cela a un cours dfalgebre sur la reduction des endomorphismes. 4.1. Valeur propre Definition. Soit A ¸ Mn(C) une matrice. Le scalaire ƒÉ ¸ C est une valeur propre associee au vecteur propre X, si X nfest pas le vecteur nul et : AX = ƒÉX Les valeurs propres et les vecteurs propres jouent un role fondamental dans lfetude des matrices. Rappelons juste ici qufune matrice unitaire (cfest-a-dire verifiant A.A= I) est diagonalisable, cfest-a-dire equivalente a TRANSFORMEE DE FOURIER DISCRETE 197 une matrice diagonale : 0 BBBB@ ƒÉ1 0 E E E 0 0 ƒÉ2 ... ... ... ... ... 0 0 E E E 0 ƒÉn 1 CCCCA ou justement les elements ƒÉi sont les valeurs propres de A. Mettons en avant deux proprietes des valeurs propres. Lemme 1. Soit A une matrice. Si ƒÉ est une valeur propre associee au vecteur propre X alors AnX = ƒÉnX. Autrement dit ƒÉn est une valeur propre de An. Demonstration. La preuve se fait par recurrence en se calquant sur le modele suivant ou n = 2 : A2X = A(AX) = A(ƒÉX) = ƒÉ(AX) = ƒÉ(ƒÉX) = ƒÉ2X. Voici le second resultat qui concerne uniquement les matrices unitaires. Lemme 2. Soit A ¸ Mn(C) une matrice unitaire. Si ƒÉ est une valeur propre alors |ƒÉ| = 1. Ainsi on peut ecrire ƒÉ = e2iƒÎƒÆ et la valeur propre est determine par sa á phase â ƒÆ (la phase etant le nom donne par les physiciens a lfargument). Pour comprendre la preuve, rappelons quelques proprietes (voir le chapitre á Portes quantiques â) : . A unitaire signifie A.A= I. . Le produit scalaire est anti-lineaire a gauche et lineaire a droite, donc pour ƒÉ ¸ C : .ƒÉu|v. = ƒÉ. .u|v. et .u|ƒÉv. = ƒÉ.u|v. et permet de calculer la norme : aua2 = .u|u.. . Une matrice unitaire preserve le produit scalaire : .Au|Av. = .u|v.. Demonstration. Soit ƒÉ une valeur propre associee au vecteur propre X. .AX|AX. = .X|X. =Ë .ƒÉX|ƒÉX. = .X|X. =Ë ƒÉ. .X|ƒÉX. = .X|X. =Ë ƒÉ.ƒÉ.X|X. = .X|X. =Ë |ƒÉ|2 E aXa2 = aXa2 =Ë |ƒÉ|2 = 1 =Ë |ƒÉ| = 1 On a utilise les proprietes rappelees precedemment ainsi que le fait qufun vecteur propre est non nul (donc aXa .= 0). 4.2. Probleme de lfestimation de la phase Dfun point de vue mathematique le probleme est le suivant. On nous donne une matrice M ¸ MN (C) unitaire et un vecteur propre X0. Il sfagit de calculer la valeur propre ƒÉ0 = e2iƒÎƒÆ0 associee a ce vecteur propre. Dans notre situation informatique, on a N = 2n et A ¸ M2n(C) est une matrice unitaire. Le vecteur propre est ecrit sous la forme dfun n-qubit |ƒÕ0.. Le but reste toujours de determiner la valeur propre ƒÉ0 en calculant ƒÆ0. TRANSFORMEE DE FOURIER DISCRETE 198 4.3. Porte cA Nous generalisons la porte CNOT, qui est une porte cX, cfest-a-dire une porte X conditionnelle. Soit A un matrice unitaire de M2n(C), a laquelle on associe une porte egalement notee A. / A / La barre oblique á / â devant et apres la porte A signifie que plusieurs lignes quantiques sont representees en une seule. Ici lfentree et la sortie sont des n-qubits. La porte cA (pour controlled A) est une porte ayant en entree un 1-qubit supplementaire, qui determine si on applique ou non la porte A. . / A / Si le premier qubit est |0., on ne change pas le n-qubit restant, si le premier qubit est |1., on applique la porte A au n-qubit restant. |0. . / |0. |ƒÕ. / A / / |ƒÕ. |1. . / |1. |ƒÕ. / A / / A|ƒÕ. 4.4. Porte cA et valeurs propres Calculons lfaction de la porte cA lorsque le n-qubit est le vecteur propre |ƒÕ0. associe a la valeur propre ƒÉ0 = e2iƒÎƒÆ0 . . Si lfentree est |0. . |ƒÕ0. alors la sortie est |0. . |ƒÕ0.. . Si lfentree est |1. . |ƒÕ0. alors la sortie est : |1. . A|ƒÕ0. = |1. . ƒÉ0 |ƒÕ0. = e2iƒÎƒÆ0 |1. . |ƒÕ0. . |0. . / |0. |ƒÕ0. / A / / |ƒÕ0. |1. . / |1. |ƒÕ0. / A / / A|ƒÕ0. = ƒÉ0 |ƒÕ0. Si le 1-qubit de la premiere ligne est ƒ¿|0. + ƒÀ |1. alors calculons le (n + 1)-qubit de sortie : ƒ¿|0. + ƒÀ |1. cA 7....¨ ƒ¿|0. . |ƒÕ0. + ƒÀ |1. . A|ƒÕ0. = ƒ¿|0. . |ƒÕ0. + ƒÀƒÉ0 |1. . |ƒÕ0. = ƒ¿|0. . |ƒÕ0. + e2iƒÎƒÆ0ƒÀ |1. . |ƒÕ0. Ainsi le qubit de sortie sfecrit : .. ƒ¿|0. + e2iƒÎƒÆ0ƒÀ |1. . |ƒÕ0. Remarquons qufapres la factorisation par |ƒÕ0. le premier qubit de sortie est ecrit ƒ¿|0.+ e2iƒÎƒÆ0ƒÀ |1.. Cela peut sembler contradictoire avec le fait que la porte cA laisse inchange le premier qubit qui devrait donc etre ƒ¿|0. + ƒÀ |1., mais ici on inclut le coefficient provenant de la valeur propre ; mathematiquement on a simplement utilise la bilinearite u . (ƒÉv) = (ƒÉu) . v. TRANSFORMEE DE FOURIER DISCRETE 199 4.5. Bloc pour lfestimation de phase La brique de base du circuit va etre ce bloc : 1 p 2 (|0. + |1.) . |ƒÕ0. / A2. / La phase ƒÆ0 est un reel qui verifie 0 . ƒÆ0 < 1. Supposons qufil admette lfecriture binaire : ƒÆ0 = 0.. j1. j2 . . . jn = j1 2 + j2 22 + E E E + jn 2n . Lemme 3. Le qubit de sortie du bloc precedent est : 1 p 2 .. |0. + e2iƒÎ0.. j.+1... jn |1. . |ƒÕ0. . Demonstration. Par le lemme 1 la valeur propre de la matrice A2. associee au vecteur propre |ƒÕ0. est ƒÉ2. 0 = e2iƒÎ2.ƒÆ0 . Or 2.ƒÆ0 = 2. . j1 2 + j2 22 + E E E + jn 2n . = j12..1 + E E E + j | {z }. partie entiere + j.+1 2 + E E E + jn 2n.. | {z } partie decimale = k + 0.. j.+1 . . . jn Mais pour tout entier k, e2iƒÎk = 1 donc ƒÉ2. 0 = e2iƒÎ2.ƒÆ0 = e2iƒÎ0.. j.+1... jn . Maintenant, la porte cA2. appliquee a |0..|ƒÕ0. a pour sortie |0..|ƒÕ0. et appliquee a |1..|ƒÕ0. elle a pour sortie ƒÉ2. 0 |1..|ƒÕ0.. Donc pour lfentree du bloc 1 p 2 (|0.+|1.).|ƒÕ0. la sortie est 1 p 2 .. |0. + e2iƒÎ0.. j.+1... jn |1. . |ƒÕ0.. 4.6. Circuit dfestimation de phase premier registre 8>>>>>>>>>< >>>>>>>>>: second registre ˜ |0. H E E E . / |0. + e2iƒÎ0.. jn |1. ... ... E E E ... / |0. H . E E E / |0. + e2iƒÎ0.. j3... jn |1. |0. H . E E E / |0. + e2iƒÎ0.. j2... jn |1. |0. H . E E E / |0. + e2iƒÎ0.. j1... jn |1. |ƒÕ0. / A20 A21 A22 E E E A2n.1 / |ƒÕ0. Le qubit de sortie de ce circuit est presente sous la forme factorisee par le vecteur propre |ƒÕ0. (voir le lemme 3). Les coefficients 1 p 2 sont omis. TRANSFORMEE DE FOURIER DISCRETE 200 Proposition 1. Le qubit de sortie du circuit dfestimation de phase est |ƒÓ. . |ƒÕ0. ou : |ƒÓ. = 1 p 2n .. |0. + e2iƒÎ0.. jn |1. . .. |0. + e2iƒÎ0.. jn.1 jn |1. . E E E . .. |0. + e2iƒÎ0.. j1... jn |1. . Ainsi le premier registre de sortie est egal a .F | j1. j2 . . . jn.. Donc en composant le circuit a lfaide du circuit inverse de .F (cfest-a-dire le circuit de .F.1), on obtient le qubit | j1. j2 . . . jn., donc les á decimales â j1, j2, . . . , jn de lfecriture binaire de ƒÆ0. Demonstration. Une porte de Hadamard H transforme lfentree |0. des premieres lignes en 1 p 2 (|0. + |1.). Ainsi le circuit est compose de blocs de type cA2. comme etudies precedemment. Chacune de ces portes transforme le qubit 1 p 2 (|0. + |1.) . |ƒÕ0. en 1 p 2 .. |0. + e2iƒÎ0.. j.+1... jn |1. . |ƒÕ0.. Ce qui conduit au resultat. Par le circuit de la section 3 qui realise la transformee de Fourier, on verifie immediatement que la sortie P du premier registre est .F | j1. j2 . . . jn.. Ainsi | j1. j2 . . . jn. = .F.1(P). Nous savons realiser un circuit quantique pour .F. Comment realiser un circuit pour .F.1 ? Tout simplement en reprenant le circuit de .F et en le lisant de droite a gauche (au lieu de la lecture habituelle de gauche a droite). Cette operation est possible car toutes les portes quantiques sont inversibles : donc obtenir la porte A.1, cfest lire lfaction dune porte A de droite a gauche. Nous obtenons donc lfetat quantique de base | j1. j2 . . . jn. dont la mesure donne les bits j1, j2, . . . , jn qui permettent ainsi de retrouver la phase ƒÆ0 = j1 2 + j2 4 + E E E et donc la valeur propre ƒÉ0. QUAT R I EME PA RT I E | 1 . 1 > | 1 . 1 > V I V R E DA N S U N MO N D E Q UA N T I Q U E 201 Cryptographie quantique Chapitre 16 Video ¡ partie 16. Cryptographie quantique Nous etudions le protocole BB84 qui permet le partage dfun secret commun entre deux personnes grace a la physique quantique. 1. Le chiffrement parfait existe Commencons par comprendre qufun secret commun entre deux personnes permet une communication parfaitement sure. Cfest dfailleurs ce protocole qui etait utilise par le á telephone rouge â reliant les USA et lfURSS pendant la guerre froide. 1.1. Masque jetable ALICE BOB Masque jetable Chiffrement Dechiffrement . Alice veut envoyer un message a Bob. Ce message est compose de 0 et de 1 (par exemple pour un nombre, on utiliserait son ecriture binaire : 14 serait code 1.1.1.0 ; pour une lettre on utiliserait le code ASCII : á A â serait code 1.0.0.0.0.0.1). Exemple : le message est x = 1.0.1.1.0.1.1. . Alice et Bob sfetaient au prealable partage un á masque jetable â, qui est une suite secrete et aleatoire de 0 et de 1. Exemple : le masque est m = 0.0.1.0.1.1.1. x y y x chiffrement y = x . m Alice transmission dechiffrement x = y . m Bob . Alice envoie le message chiffre y obtenu par addition bit a bit (sans retenue) y = x . m (cfest un á ou exclusif â bit a bit). 1.0.0.1.1.0.0 0.0.1.0.1.1.1 1.0.1.1.0.1.1 . CRYPTOGRAPHIE QUANTIQUE 203 Exemple : y = x . m = 1.0.0.1.1.0.0. . Bob dechiffre le message en ajoutant de nouveau le masque m a y : il obtient x. En effet y . m = x . m. m = x (car 0 . 0 = 0 et 1 . 1 = 0). Exemple : y . m = 1.0.1.1.0.1.1 = x. 1.0.0.1.1.0.0 0.0.1.0.1.1.1 1.0.1.1.0.1.1 . Voici les conditions que doit respecter le masque jetable m : . il doit etre un choix aleatoire, . il doit rester secret, . il doit etre de la meme longueur que le message, . il ne doit servir qufune seule fois. 1.2. Avantages et inconvenients Avantages. Ce chiffrement est parfaitement sur : un espion qui intercepterait le message chiffre y sans connaitre le masque jetable m ne serait pas capable ici de decrypter le message. En effet, un 0 du message y peut correspondre aussi bien a 0 ou 1 du message original, de meme pour un 1. m = 0 m = 1 x = 0 0 1 x = 1 1 0 Un espion nfa pas de meilleure methode que de deviner au hasard si le message original contenait 0 ou 1. Si le message est de longueur n alors la probabilite qufil decrypte le message complet est 1 2n (ce qui revient a tirer au hasard un message parmi les 2n messages possibles). Inconvenients. Tout dfabord il faut respecter scrupuleusement les consignes pour lfutilisation du masque jetable (choix aleatoire, usage unique,. . .). Une difficulte reside dans le fait qufil faut que le masque reste un secret uniquement connu dfAlice et Bob : la methode la plus simple est qufAlice et Bob puissent se rencontrer physiquement pour determiner ensemble le masque jetable. Pour le á telephone rouge â, les masques jetables etaient des listes de nombres transmis regulierement via une valise diplomatique. Cet echange de masque est un probleme pratique majeur puisqufil necessite une rencontre entre Alice et Bob. Cfest pourquoi dfautres protocoles cryptographiques sont utilises, comme par exemple RSA, pour permettre des communications chiffrees sans aucune rencontre physique, mais ils ne sont pas parfaitement surs. 2. BB84 : un secret commun Nous presentons maintenant le protocole BB84 (du a Bennett et Brassard en 1984) qui nfest pas vraiment un protocole cryptographique mais qui permet la creation dfun secret commun sous la forme dfune suite de 0 et de 1. Cette suite peut ensuite, par exemple, etre utilisee comme masque jetable pour un chiffrement parfait. Ce secret commun peut se construire a distance et on peut etre sur avec une forte probabilite que personne nfa intercepte le secret. CRYPTOGRAPHIE QUANTIQUE 204 2.1. Deux bases Alice souhaite envoyer a Bob une information 0 ou 1. Pour realiser cela, elle va lui envoyer un qubit. Elle a le choix de deux codages differents. Premiere base dfenvoi á . â. Dans cette base deux qubits sont possibles : |ª. et |¨.. . |ª. = |0. represente lfinformation 0, . |¨. = |1. represente lfinformation 1. Seconde base dfenvoi á . â. Dans cette base deux qubits sont possibles : |.. et |... . |.. = 1 p 2 (|0. + |1.) represente lfinformation 0, . |.. = 1 p 2 (|0. . |1.) represente lfinformation 1. Dfun point de vue physique ces qubits correspondent a des polarisations de photons : la polarisation a 90. pour la base á . â et la polarisation a 45. pour la base á . â. Selon le choix de base et selon lfinformation 0/1, Alice envoie un des quatre qubits |ª., |¨., |.., |... On retrouve aussi ces deux memes bases lors de la reception qui correspond a une mesure. Premiere base de mesure á . â. Voici lfinformation que Bob obtient lorsqufil mesure le qubit recu dans la base á . â. qubit |ª. |¨. |.. |.. information 0 1 0 ou 1 (50% chaque) 0 ou 1 (50% chaque) Seconde base de mesure á . â. Voici lfinformation que Bob obtient lorsqufil mesure le qubit recu dans la base á . â. qubit |ª. |¨. |.. |.. information 0 ou 1 (50% chaque) 0 ou 1 (50% chaque) 0 1 Conclusion. Si Bob effectue la mesure dans la meme base que celle dfenvoi alors il obtient exactement lfinformation 0 ou 1 envoyee par Alice. Par contre sfil mesure dans lfautre base que celle dfenvoi, il obtient alors un bit 0 ou 1 aleatoire qui nfa rien a voir avec lfinformation envoyee par Alice. Circuits quantiques Base á . â. Pour lfenvoi il nfy a rien a faire, le qubit est |0. ou |1.. Pour la reception, il sfagit juste dfune mesure classique : / On retrouve bien que, par exemple, |.. = 1 p 2 (|0.+|1.) se mesure en 0 ou 1 avec chacun une probabilite 12 . Base á.â. Pour lfenvoi, lfinformation 0 est codee par H |0. = |.. et lfinformation 1 est codee par H |1. = |... Donc une porte H de Hadamard suffit. H / Pour la reception, le circuit est compose dfune porte H suivi dfune mesure : H / Par exemple si le qubit recu est |.. = 1 p 2 (|0. . |1.), alors la porte de Hadamard lfenvoie sur |1. qui se mesure en 1. (On pourrait aussi utiliser que H . H |ƒÕ. = |ƒÕ..) CRYPTOGRAPHIE QUANTIQUE 205 2.2. Protocole Voici le protocole de partage dfun secret commun. 1. Alice . envoi. . Alice choisit des bits 0 ou 1 au hasard. . Par chaque bit, elle choisit au hasard une base dfenvoi . ou .. . Pour chaque bit, elle a donc quatre situations et elle envoie le qubit correspondant : bit/base (0,.) (1,.) (0,.) (1,.) qubit |ª. |¨. |.. |.. 2. Bob . reception. . Bob recoit une liste de qubits. . Pour chaque qubit il choisit au hasard une base de mesure . ou .. . Bob mesure chaque qubit recu parmi |ª., |¨., |.., |.. dans la base choisie . ou .. 3. Alice & Bob . mise en commun. . Alice et Bob etablissent la liste de leurs bases identiques (les deux ont choisi . ou les deux ont choisi .). Cette discussion peut etre publique. . Alice et Bob ne conservent que les rangs ou les choix de base sont identiques. Les autres sont oublies. . Alice ne conserve que les bits correspondant a ces rangs. . Pour chacun de ces rangs, Bob mesure dans la base (commune) et obtient le meme bit qufAlice. 2.3. Exemple Voici un exemple. A vous de terminer de completer ce tableau. Alice bit 1 0 0 1 1 1 0 1 0 Alice base . . . . . . . . . Qubit |¨. |.. |ª. |.. |.. Bob base . . . . . . . . . Base commune? oui non oui oui non Bit commun 1 0 1 Le message commun est 1.0.1 . . . 2.4. Surete Pour lfinstant Alice et Bob partagent un message commun. Mais celui-ci est-il secret ? Il faut sfassurer que le message nfa pas ete intercepte ou modifie en cours de transmission. Alice Bob Eve interception La securite repose sur le theoreme de non clonage quantique (voir le chapitre á Portes quantiques â). Eve ne peut pas lire un qubit puis le renvoyer a Bob. En effet, toute mesure modifie irremediablement le qubit. Expliquons sur un exemple : Alice envoie lfinformation 0 dans la base ., cfest-a-dire qufelle transmet le qubit |... Eve doit choisir une base pour sa lecture (car elle ne connait pas la base dfenvoi dfAlice). . Si elle choisit la base ., alors la mesure de |.. donne toujours 0, son interception est reussie ; CRYPTOGRAPHIE QUANTIQUE 206 . si elle choisit la base ., alors la mesure de |.. donne 0 (avec probabilite 12 , interception reussie) ou 1 (avec probabilite 12 , interception ratee). Eve ne sait pas si elle a choisi la bonne base. Si elle a choisi la bonne base alors elle pourrait renvoyer le bon qubit a Bob. Mais si elle a choisi la mauvaise base elle va renvoyer |ª. ou |¨. a Bob. Lorsque Bob va verifier avec Alice qufil a la bonne base, alors la lecture de |ª. ou |¨. dans la base . va donner 0 ou 1, et le bit sera faux dans la moitie des cas. Bilan : Eve obtient la bonne information 0/1 dans les 34 des cas (mais sans savoir quand cfest bon ou mauvais). Mais surtout si Eve intervient lors de la transmission, alors Bob obtient un mauvais bit dfinformation avec une probabilite 14 (parmi les bits du message commun). Voici donc la fin du protocole. 4. Alice & Bob . verification de la securite. . Alice et Bob se communiquent publiquement un echantillon de n bits du message commun (par exemple les n premiers bits). . Si les echantillons ne sont pas exactement les memes alors un espion est intervenu, lfensemble du message est compromis et il faut tout recommencer. . Si les echantillons sont exactement identiques, alors la transmission est consideree comme sure (dfautant plus sure que n est grand). Le reste du message constitue alors le secret commun. 0.1.0.1.0.0.1.0 0.1.1.1.0.1.1.0.0.1.0.0.0.0.1.0 echantillon secret commun Detaillons les calculs de la securite de la transmission. . Si aucun espion intervient, alors les echantillons dfAlice et Bob sont toujours identiques (probabilite 1, quelle que soit la taille n de lfechantillon). . Si un espion intervient entre Alice et Bob alors, pour chaque bit, la probabilite qufil parvienne correctement a Bob est de 34 .. . Donc les echantillons de n bits dfAlice et Bob sont completement identiques avec probabilite 34 n. Si n est assez grand, alors cette probabilite est presque nulle. Ce qui signifie qufon detecte presque surement la presence dfun espion. . Voici des exemples : . n = 10 : .. 3 4 10 = 0.0563, donc dans environ 95% des cas lfespion est repere, . n = 20 : .. 34 20 = 0.003 . . . donc dans 99.7% des cas lfespion est repere, . n = 100 : .. 34 100 . 3 E 10.13 donc lfespion est repere sauf 1 fois sur 1 000 000 000 000. Bilan. . Alice et Bob partagent un secret commun, . ils sont raisonnablement certains de ne pas avoir ete espionnes, . ce secret commun peut servir de masque jetable pour une communication chiffree. 3. Alice et Bob divorcent : qui garde le chien? Alice et Bob ne se font plus confiance, et ils doivent decider par telephone qui garde le chien. Lfun pourrait tirer a pile ou face et annoncer le resultat a lfautre mais chacun pense que lfautre peut tricher. Comment faire ? Nous allons voir la simulation dfun tirage a pile ou face a distance dans le monde quantique. Voici le protocole explique simplement : Alice et Bob tirent chacun de leur cote une piece a pile ou face. Sfils obtiennent tous les deux á pile â ou tous les deux á face â cfest Bob qui gagne, sinon cfest Alice. Le point crucial est de se debrouiller pour qufaucun des deux ne puisse mentir en annoncant son resultat. CRYPTOGRAPHIE QUANTIQUE 207 3.1. Protocole 1. Alice choisit une base dfenvoi . ou .. . Alice decide au hasard dfune base dfenvoi . ou . (cfest son tirage a pile ou face). . Elle envoie une serie aleatoire de bits, par exemple 0.0.1.0.1.1. . Elle envoie les qubits correspondant dans la base qufelle a choisie. Par exemple : . si elle a choisi la base . : |ª., |ª., |¨., |ª., |¨., |¨., . si elle a choisi la base . : |.., |.., |.., |.., |.., |... 2. Bob choisit une base de mesure . ou .. . Bod decide au hasard dfune base de mesure . ou . (cfest son tirage a pile ou face). . Il effectue la mesure des qubit recus dans la base qufil a choisie. . Il obtient une suite de mesures 0 ou 1. 3. Bob annonce la base qufil a choisie pour la mesure. 4. Alice devoile la base qufelle avait choisie pour lfenvoi ainsi que les bits transmis. 5. Gagnant : si les deux bases coincident Bob a gagne, sinon cfest Alice. 6. Verification : Bob verifie qufAlice nfa pas menti. Bob a annonce son choix avant Alice il doit donc verifier qufAlice nfa pas triche, pour cela il compare sa mesure avec les bits dfAlice : . sfil a trouve la bonne base, alors sa mesure est exactement la meme que les bits dfAlice, . sfil nfa pas trouve la bonne base, alors il doit avoir en moyenne la moitie des bits corrects et la moitie des bits faux. Il sait donc sfil a trouve la bonne base ou pas. Plus de details sur la verification sont donnes ci-dessous. 3.2. Verifications Tout dfabord Bob ne peut pas tricher, dfune part les mesures qufil effectue ne permettent pas de deduire quelle base dfenvoi Alice avait choisie et dfautre part Bob annonce en premier sa base a Alice. Voyons comment Bob verifie le resultat annonce par Alice. Imaginons qufAlice ait choisi la base . et les bits 0.0.1.0.1.1 elle transmet donc les qubits |ª., |ª., |¨., |ª., |¨., |¨.. Si Bob a choisi de mesurer les qubits dans la meme base . alors il va obtenir apres mesure la meme suite de bits 0.0.1.0.1.1. Donc dans le cas ou il gagne les bits dfAlice et de Bob sont identiques. Si Bob a choisi lfautre base, ici ., alors la mesure de |ª., |¨., conduit a 0 ou 1 aleatoirement. Il va donc, en moyenne, avoir la moitie de bits faux et lfautre moitie corrects. La probabilite que les n bits de Bob coincident exactement avec les n bits dfAlice est 1 2n et est donc tres faible (si n est assez grand). Bilan : Bob sait sfil a choisi la meme base qufAlice juste en comparant les bits mesures avec les bits annonces par Alice. Par contre, Alice pourrait essayer de tricher : si Bob choisit la base ., elle pourrait mentir pour faire perdre Bob et dire á Jfavais choisi la base . â ou inversement. Mais dans ce cas, elle va etre demasquee car elle a deja envoye les qubits qui ont deja ete mesures pars Bob et ne peut donc plus rien modifier. Or, comme on lfa deja vu, la mesure des qubits |ª., |ª., |¨., |ª., |¨., |¨. dans la base . a tres peu de chance de donner exactement 0.0.1.0.1.1. La cryptographie quantique nfen est encore qufa ces debuts, cfest tout un domaine a decouvrir ! Code correcteur Chapitre 17 Video ¡ partie 17. Code correcteur Lors de la transmission dfun qubit il peut y avoir des erreurs. Les codes correcteurs permettent de detecter et corriger ces erreurs. 1. Un code correcteur classique Lorsqufon transmet un message electronique, le message recu peut etre different du message envoye a cause dferreurs (erreurs de lecture/ecriture, interferences,. . .). Cela peut etre sans consequence, par exemple tout le monde comprend la phrase á UN PETLT PAS PQUR LfHOMNE â malgre les fautes de frappe, mais pour envoyer un code dfidentification du style á 562951413 â une erreur sur un seul chiffre compromet le message. On distingue deux taches : detecter sfil y a eu une erreur (si cfest le cas on pourrait envoyer a nouveau le message), mais on peut aussi utiliser des techniques qui permettent de corriger directement certaines erreurs. 1.1. Repetition Lfidee la plus simple pour securiser la transmission est de repeter chaque partie du message. Dans toute cette section on considere que le message est compose de 0 et de 1 : . chaque á 0 â est remplace avant transmission par á 000 â, . chaque á 1 â est remplace par á 111 â. Sfil y a une erreur lors de la transmission, le decodage se fait selon le principe de la majorite : . 000, 001, 010, 100 sont decodes en á 0 â, . 111, 110, 101, 011 sont decodes en á 1 â. Prenons lfexemple du message á 1.0.1 â : . repetition de chaque bit : á 111.000.111 â, . le message est transmis mais des erreurs surviennent, . le message recu est á 101.001.111 â, . selon la regle de la majorite, le message decode est bien le message original á 1.0.1 â. Bien evidemment, sfil y a trop dferreurs, par exemple á 000 â est altere en á 101 â, alors le message decode est errone. CODE CORRECTEUR 209 1.2. Efficacite Nous allons comparer les erreurs suivant le codage utilise. Considerons un message de n bits, chaque bit transmis pouvant etre altere avec une probabilite p. Proposition 1. . Sans utiliser de codage, le message transmis est entierement correct avec probabilite (1 . p)n. . En utilisant le codage de repetition triple, le message decode est entierement correct avec probabilite (1.p3)n ou p3 = p2(3 . 2p). Les tableaux suivants presentent les probabilites qufun message de longueur n soit transmis parfaitement correctement, selon differentes valeurs de p, avec ou sans repetition. Cas p = 0.1 (10% des bits sont alteres) n sans repetition avec repetition 10 35% 75% 100 0% 5% 1000 0% 0% Cas p = 0.01 (1% des bits sont alteres) n sans repetition avec repetition 10 90% 99.7% 100 36% 97% 1000 0% 75% Cas p = 0.001 (1 bit sur mille est altere) n sans repetition avec repetition 10 99% 99.99% 100 90% 99.97% 1000 37% 99.7% Conclusion : pour un message long, il est indispensable de mettre un place un systeme permettant de detecter puis de corriger les erreurs. Demonstration de la proposition 1. . Sans utiliser de codage, un bit est transmis correctement avec probabilite 1 . p, pour que le message recu soit identique au message initial, il faut que les n bits soient transmis sans etre alteres, ce qui arrive avec probabilite (1 . p)n. . Pour le codage de repetition triple, prenons lfexemple de la transmission du bit á 0 â. Le message recu est : . á 000 â avec probabilite (1 . p)3 (trois bits corrects), . á 001 â, á 010 â, á 100 â, chacun avec probabilite p(1 . p)2 (un bit faux, deux bits corrects), . á 110 â, á 101 â, á 011 â, chacun avec probabilite p2(1 . p) (deux bits faux, un bit correct), . á 111 â avec probabilite p3 (trois bits faux). Pour les deux premiers cas, la regle de la majorite conduit au bon decodage á 0 â. Pour les deux derniers cas, le decodage donne á 1 â et le bit est mal decode. La probabilite dferreur (deux derniers cas) est donc : p3 = 3p2(1 . p) + p3 = p2(3 . 2p). Chaque bit est donc transmis de facon correcte avec une probabilite 1 . p3 ; les n bits dfune suite sont tous transmis correctement avec probabilite (1 . p3)n. Exercice. Faire les calculs de la proposition 1 dans le cas dfune repetition de longueur 5 : 0 7¨ 00000 et 1 7¨ 11111. CODE CORRECTEUR 210 2. Correction dferreurs en informatique quantique 2.1. Obstacles Les ordinateurs quantiques sont encore balbutiants et commettent beaucoup dferreurs. Les codes correcteurs sont donc importants mais se confrontent a des problemes specifiques a lfinformatique quantique : . on ne peut pas mesurer un qubit sans le perturber irremediablement (effondrement du paquet dfonde), . on ne peut pas cloner un qubit (voir le theoreme de non-clonage quantique du chapitre á Portes quantiques â), . enfin un qubit ƒ¿|0. + ƒÀ |1. peut prendre une infinite de valeurs (ƒ¿,ƒÀ etant des nombres complexes quelconques) a la difference du cas classique dans lequel lfinformation est codee par seulement deux valeurs 0 et 1. Et pourtant, malgre toutes ces difficultes, il est possible de corriger des erreurs ! Dans toute la suite, on suppose que lfon souhaite transmettre un message forme par un qubit |ƒÕ0. = ƒ¿|0. + ƒÀ |1.. On commence par expliquer deux idees importantes pour la suite. 2.2. Augmentation dfun qubit Nous avons vu que le fait de repeter un bit permet de corriger certaines erreurs. Comment faire pour nos qubits ? Nous allons generaliser une porte FANOUT (voir le chapitre á Portes quantiques â) a lfaide de deux portes CNOT. Le circuit suivant transforme le 1-qubit |ƒÕ0. = ƒ¿|0. + ƒÀ |1. en le 3-qubit |ƒÕ. = ƒ¿|0.0.0. + ƒÀ |1.1.1.. |ƒÕ0. = ƒ¿|0. + ƒÀ |1. . . / |0. / |0. / 9>>= >>; |ƒÕ. = ƒ¿|0.0.0. + ƒÀ |1.1.1. . Pour le circuit ci-dessus si |ƒÕ0. = |0. alors |ƒÕ. = |0.0.0. et si |ƒÕ0. = |1. alors |ƒÕ. = |1.1.1.. Par linearite, cela donne le resultat |ƒÕ. attendu pour |ƒÕ0. = ƒ¿|0. + ƒÀ |1.. . Noter qufici nous nfavons pas duplique les coefficients. Le theoreme de non-clonage quantique montre qufaucun circuit ne permettrait de realiser le 3-qubit (ƒ¿|0. + ƒÀ |1.)(ƒ¿|0. + ƒÀ |1.)(ƒ¿|0. + ƒÀ |1.). . Noter aussi que si on considere le circuit inverse (de la droite vers la gauche) alors on effectue la transformation inverse : on passe de |ƒÕ. = ƒ¿|0.0.0. + ƒÀ |1.1.1. a (ƒ¿|0. + ƒÀ |1.) |0. |0.. Ainsi apres une mesure des deux derniers qubits, on obtiendrait sur la premiere ligne notre qubit |ƒÕ0. = ƒ¿|0. + ƒÀ |1.. 2.3. Decider si deux qubits de base sont egaux (sans les mesurer) On considere ici un message compose de 1-qubits de base de la forme |0. ou |1.. On souhaite verifier sans aucune mesure si deux qubits de base sont egaux. Pour cela on utilise un circuit a trois lignes quantiques : les deux premieres sont les entrees a comparer, la troisieme ligne est une ligne auxiliaire dont la sortie va repondre a la question á Les deux qubits de base sont-ils egaux ? â |ƒÓ. . / |ƒÓ. |ƒÕ. . / |ƒÕ. |0. / |ƒÔ. CODE CORRECTEUR 211 Verifier que : . Si |ƒÓ. = |0. et |ƒÕ. = |0. alors |ƒÔ. = |0.. . Si |ƒÓ. = |1. et |ƒÕ. = |1. alors |ƒÔ. = |0.. . Si |ƒÓ. = |0. et |ƒÕ. = |1. alors |ƒÔ. = |1.. . Si |ƒÓ. = |1. et |ƒÕ. = |0. alors |ƒÔ. = |1.. Noter que sur les deux premieres lignes les qubits |ƒÓ. et |ƒÕ. restent inchanges. La sortie |ƒÔ. vaut |0. si et seulement si |ƒÓ. et |ƒÕ. sont les memes qubits de base. La sortie |ƒÔ. vaut |1. si et seulement si |ƒÓ. et |ƒÕ. sont des qubits de base differents. Remarque : ce circuit permet de tester lfegalite de deux qubits de base, mais ne permet pas de comparer deux 1-qubits quelconques. 3. Code correcteur pour le flip dfun qubit 3.1. Un circuit qui corrige les erreurs? On souhaite transmettre le qubit |ƒÕ0. = ƒ¿|0. + ƒÀ |1.. On commence par augmenter le qubit en |ƒÕ. = ƒ¿|0.0.0. + ƒÀ |1.1.1. (on suppose que cette operation se fait sans erreur). Lors de la transmission de ce 3-qubit il peut y avoir des erreurs. Commencons par le cas ou lferreur est un á flip â dfun des qubits. Par exemple ƒ¿|0.0.0. + ƒÀ |1.1.1. est mal transmis en ƒ¿|0.0.1. + ƒÀ |1.1.0.. Noter qufun flip correspond a une porte X sur lfun des trois qubits, porte qui change |0. en |1. et reciproquement. X Comment detecter et corriger cette erreur ? 3.2. Circuit Voici un circuit qui permet la transmission correct dfun qubit |ƒÕ0., meme si lors de la transmission une erreur de type X se produit. |ƒÕ0. . . Erreur Xi . . / |ƒÕ0. |0. . / |0. . / . Xi designe lfaction dfune porte X sur lfune des lignes i ¸ {1, 2, 3}. . Ou que soit cette erreur, la premiere ligne du circuit renvoie toujours le qubit original |ƒÕ0.. . Le circuit est compose de 4 portes CNOT et termine par une porte de Toffoli. . On rappelle qufune porte de Toffoli, est lfaction dfune porte X (sur la ligne du á . â) a condition que les qubits des deux autres lignes soient tous les deux |1.. 3.3. Calculs Effectuons les calculs qui justifient que le qubit de sortie est bien le qubit original malgre lferreur. . Cas erreur X1 (flip sur la premiere ligne). . Cas |ƒÕ0. = |0.. Le 3-qubit avant lferreur est |0.0.0.. Alors le 3-qubit recu est |1.0.0., les deux portes CNOT le transforment en |1.1.1. et la porte de Toffoli renvoie |0.1.1.. Le premier qubit est bien |0.. . Cas |ƒÕ0. = |1.. Le 3-qubit avant lferreur est |1.1.1., mais le qubit recu est |0.1.1., les deux portes CNOT ne le changent pas, et la porte de Toffoli renvoie |1.1.1.. Le premier qubit est bien |1.. CODE CORRECTEUR 212 . Cas |ƒÕ0. = ƒ¿|0. + ƒÀ |1.. Par linearite, les calculs precedents donnent comme sortie ƒ¿|0.1.1. + ƒÀ |1.1.1. = (ƒ¿|0. + ƒÀ |1.) |1.1.. Si on ne retient que le premier qubit on obtient ƒ¿|0. + ƒÀ |1. qui est bien notre qubit initial |ƒÕ0.. . Cas erreur X2 (flip sur la deuxieme ligne). . Cas |ƒÕ0. = |0.. Avant lferreur le 3-qubit est |0.0.0., apres erreur cfest |0.1.0., les deux portes CNOT et la porte de Toffoli ne changent rien. On obtient |0.1.0.. . Cas |ƒÕ0. = |1.. Avant lferreur le 3-qubit est |1.1.1., apres erreur cfest |1.0.1., les deux portes CNOT donnent |1.1.0., la porte de Toffoli ne change rien. On obtient |1.1.0.. . Cas |ƒÕ0. = ƒ¿|0. + ƒÀ |1.. Par linearite, la sortie vaut ƒ¿|0.1.0. + ƒÀ |1.1.0. = (ƒ¿|0. + ƒÀ |1.) |1.0.. Le premier qubit est encore ƒ¿|0. + ƒÀ |1. qui est bien le qubit initial |ƒÕ0.. . Cas erreur X3 (flip sur la troisieme ligne). Les calculs sont similaires. |ƒÕ0. = ƒ¿|0.+ƒÀ |1. donne apres erreur ƒ¿|0.0.1.+ƒÀ |1.1.0., et la fin du circuit renvoie ƒ¿|0.0.1. + ƒÀ |1.0.1. = (ƒ¿|0. + ƒÀ |1.) |0.1.. Le premier qubit est de nouveau |ƒÕ0.. 4. Code correcteur pour lfinversion de phase dfun qubit 4.1. Circuit Le flip nfest pas la seule erreur possible. Une autre erreur est lfinversion de phase qui est le changement de ƒ¿|0. + ƒÀ |1. en ƒ¿|0. . ƒÀ |1.. Le changement de phase correspond a une porte Z. Z On souhaite transmettre le qubit |ƒÕ0. = ƒ¿|0. + ƒÀ |1.. On commence par augmenter le qubit en |ƒÕ. = ƒ¿|0.0.0. + ƒÀ |1.1.1.. Ensuite, lors de la transmission, on suppose que se produit un changement de phase sur lfun des trois qubits. On se ramene a la situation precedente en notant qufune porte X est equivalente a une porte HZH, ou H est une porte de Hadamard : X = H Z H Voici le circuit qui detecte et corrige cette erreur. |ƒÕ0. . . H Erreur Zi H . . / |ƒÕ0. |0. H H . / |0. H H . / Zi designe lfaction dfune porte Z sur lfune des lignes i ¸ {1, 2, 3}. 4.2. Calculs Nous nfavons pas a faire les calculs puisque ce sont les memes que pour le flip. En effet, on a rappele que HZH = X, donc lfensemble des portes de Hadamard et lferreur Zi correspondent a une erreur Xi . Une autre facon de voir les calculs est dfutiliser la notation |+. et |... |+. = H |0. = 1 p 2 (|0. + |1.) |.. = H |1. = 1 p 2 (|0. . |1.) On a aussi reciproquement H |+. = |0. et H |.. = |1.. CODE CORRECTEUR 213 Un changement de phase Z envoie ƒ¿|0. + ƒÀ |1. sur ƒ¿|0. . ƒÀ |1., et peut etre simplement defini par : |+. Z 7....¨|.. |.. Z 7....¨|+. Cfest donc une sorte de flip dans une autre base. Si au depart |ƒÕ0. = |0. alors, apres augmentation, on a |ƒÕ. = |0.0.0.. Puis a lfaide des portes de Hadamard le 3-qubit avant erreur est |+. |+. |+., que lfon note |+. + .+.. Lferreur Zi change lfun des signes, par exemple on obtient |.. + .+., les nouvelles portes de Hadamard le transforment en |1.0.0. (qui correspond bien a un flip classique de |ƒÕ.), qui est corrige par la fin du circuit en |0.1.1. et ainsi le premier qubit est bien |0.. 5. Detection dfun flip Les circuits precedents font tres bien leur travail : ils detectent et corrigent les erreurs. Mais ils ne sont pas tres pedagogiques car les deux taches sont effectuees en meme temps. Nous allons modifier legerement ces circuits afin qufils detectent les erreurs et on expliquera ensuite comment les corriger. 5.1. Un circuit qui detecte les flips Voici un circuit qui detecte un flip. |ƒÕ. .ƒÕ |ƒÕ0. . . Erreur Xi . . / |0. . / |0. . / |0. / |0. / |ƒÓ. Ce circuit se decompose en deux registres : Premier registre. Les trois premieres lignes correspondent au qubit augmente |000. ou |111., lors de la transmission survient une erreur qui est ici un flip sur une des trois lignes. Second registre. Les deux dernieres lignes servent a detecter lferreur. On parle de á lignes auxiliaires â. 5.2. Sortie Notons .ƒÕ le 3-qubit du premier registre apres transmission (juste apres lferreur eventuelle). Notons |ƒÓ. le 2-qubit obtenu en sortie du second registre (a la fin du circuit). . Pas dferreur. Si |ƒÕ0. = |0. et si .ƒÕ = |0.0.0. alors |ƒÓ. = |0.0.. Il nfy a pas dferreur donc rien a corriger. De meme, si |ƒÕ0. = |1. et .ƒÕ = |1.1.1. alors de nouveau |ƒÓ. = |0.0.. Il nfy a toujours pas dferreur donc rien a corriger. Par linearite, si |ƒÕ0. = ƒ¿|0. + ƒÀ |1. alors le 5-qubit final est (ƒ¿|0.0.0. + ƒÀ |1.1.1.) |0.0.. . Flip du premier qubit. Si .ƒÕ = |1.0.0. (alors qufon voulait transmettre |0.0.0.) alors |ƒÓ. = |1.1.. Il y a une erreur et cette erreur est sur la premiere ligne. On corrige lferreur en rajoutant une porte X sur la premiere ligne. Ainsi apres correction on obtient bien un premier registre qui vaut |0.0.0.. De meme si .ƒÕ = |0.1.1. (alors qufon voulait transmettre |1.1.1.) alors de nouveau |ƒÓ. = |1.1.. Et on rajoute une porte X sur la premiere ligne. CODE CORRECTEUR 214 Ainsi un qubit |ƒÕ. = ƒ¿|0.0.0.+ƒÀ |1.1.1. qui serait mal transmis en .ƒÕ = ƒ¿|1.0.0.+ƒÀ |0.1.1., donnerait |ƒÓ. = |1.1. et serait bien corrige en |ƒÕ.. . Flip du deuxieme qubit. Si .ƒÕ = ƒ¿|0.1.0. + ƒÀ |1.0.1. (au lieu de ƒ¿|0.0.0. + ƒÀ |1.1.1.) alors |ƒÓ. = |1.0. et on rajoute une porte X sur la deuxieme ligne. . Flip du troisieme qubit. Si .ƒÕ = ƒ¿|0.0.1.+ƒÀ |1.1.0. alors |ƒÓ. = |0.1.. On corrige lferreur en rajoutant une porte X sur la troisieme. Noter qufon nfa jamais effectue de mesure sur le premier registre. Bilan : . si |ƒÓ. = |0.0. pas dferreur, . si |ƒÓ. = |1.1. erreur de flip sur la premiere ligne, . si |ƒÓ. = |1.0. erreur de flip sur la deuxieme ligne, . si |ƒÓ. = |0.1. erreur de flip sur la troisieme ligne. Une fois qufon sait sur quelle ligne est lferreur par mesure de |ƒ³., il est facile de la corriger en ajoutant une porte X en fin de circuit sur la ligne correspondante. 5.3. Erreur par deformation On souhaite envoyer lfinformation |0., augmentee en |0.0.0.. On suppose que lferreur est dfun type nouveau, le qubit est legerement deforme. Prenons lfexemple dfune erreur qui, en sortie du premier registre, fournit : .ƒÕ = p 1 . ƒÃ2 |0.0.0. + ƒÃ |0.0.1. , ou ƒÃ > 0 est un petit reel. Le circuit suivant detecte ce type dferreur. Cfest le meme que le circuit precedent avec en plus la mesure du second registre. |ƒÕ0. . . Erreur E . . / |0. . / |0. . / |0. / |0. / 9>>>>>>>>>>= >>>>>>>>>>; |ƒ³. On a vu que juste avant la mesure, si .ƒÕ = |0.0.0. alors le 5-qubit de sortie est |ƒ³. = |0.0.0. |0.0. ; et si .ƒÕ = |0.0.1. alors le 5-qubit de sortie est |ƒ³. = |0.0.1. |0.1.. Donc pour le qubit .ƒÕ = p 1 . ƒÃ2 |0.0.0. + ƒÃ |0.0.1., la sortie est (avant mesure) : |ƒ³. = p 1 . ƒÃ2 |0.0.0. |0.0. + ƒÃ |0.0.1. |0.1. . Que se passe-t-il lorsque lfon mesure le second registre ? Deux mesures seulement sont possibles 0.0 ou bien 0.1. . Si on obtient la mesure 0.0, alors on sait qufil nfy a rien a corriger. Effectivement, dans ce cas le premier registre sfest effondre en |ƒµ. = |0.0.0., il nfy a pas dferreur. . Si on obtient la mesure 0.1, alors on sait qufil y a une erreur qufil faut corriger en ajoutant un flip sur la troisieme ligne. Effectivement dans ce cas le premier registre sfest effondre en |ƒµ. = |0.0.1.. Apres correction on obtient |0.0.0.. CODE CORRECTEUR 215 Dans tous les cas on obtient, apres correction eventuelle, le 3-qubit |0.0.0.. Il sfest passe un phenomene appele discretisation de lferreur par la mesure : meme si lferreur pouvait prendre une infinite de formes (car il y a une infinite de ƒÃ possibles), apres mesure on se ramene a seulement deux possibilites. Proposition 2. Le circuit precedent detecte nfimporte quelle erreur du type E = aI + bX. I designe lfidentite et X un flip. Une erreur E = aI + bX transforme un qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. en E |ƒÕ. = (aI + bX) |ƒÕ. = a |ƒÕ. + bX |ƒÕ. . Si lors de la transmission, sur une seule des trois premieres lignes, un qubit subit une telle erreur, alors la sortie du second permet de savoir comment corriger cette erreur. La preuve est la generalisation des calculs faits pour lfexemple avec les á ƒÃ â. Demonstration. On note |ƒÕ0. = ƒ¿|0.+ƒÀ |1. et |ƒÕ. = ƒ¿|0.0.0.+ƒÀ |1.1.1.. Si E = I, alors il nfy pas dferreur le qubit de sortie avant mesure est |ƒ³0. = |ƒÕ. |0.0.. Si E = X, alors on a deja vu que selon la ligne de lferreur, le qubit de sortie avant mesure est lfun des .ƒÕ 1 |1.1., .ƒÕ 2 |1.0., .ƒÕ 3 |0.1.. Si lferreur est aI + bX alors, par linearite le qubit de sortie avant mesure est par exemple |ƒ³. = a |ƒÕ. |0.0. + b .ƒÕ 1 |1.1. (ou lfune des deux autres situations). Lors de la mesure du second registre : . Si on obtient 0.0, alors on sait qufil nfy a rien a corriger. Effectivement dans ce cas le premier registre sfest effondre en |ƒÕ., il nfy a pas dferreur. . Si on obtient 1.1, alors on sait qufil y a une erreur qufil faut corriger en ajoutant un flip sur la premiere ligne. Effectivement dans ce cas le premier registre sfest effondre en .ƒÕ 1 = ƒ¿|1.0.0. + ƒÀ |0.1.1.. Apres correction on obtient |ƒÕ. = ƒ¿|0.0.0. + ƒÀ |1.1.1.. . De meme pour les deux autres situations. Exercice. Realiser un circuit qui detecte une inversion de phase et expliquer ensuite comment corriger lfeventuelle erreur. Montrer que votre circuit detecte nfimporte quelle erreur aI + bZ sur une ligne. 6. Code correcteur de Shor 6.1. Circuit Nous terminons avec un circuit compose de 9 lignes. Ce circuit detecte et corrige une erreur de transmission qui se produirait sur une seule des 9 lignes. Cette erreur peut etre un flip X, une inversion de phase Z, mais plus generalement nfimporte quelle erreur sur un 1-qubit (mais toujours sur une seule ligne). CODE CORRECTEUR 216 |ƒÕ0. . . H . . Erreur E . . H . . / |ƒÕ0. |0. . / |0. . / |0. H . . . . H . / |0. . / |0. . / |0. H . . . . H . / |0. . / |0. . / 6.2. Calculs Proposition 3. Le circuit precedent detecte et corrige nfimporte quelle erreur du type E = aI + bX + cY + dZ qui arriverait sur une seule de ses lignes. Avant de justifier ce resultat, il faut passer un peu de temps a comprendre que ce circuit est construit en regroupant le circuit qui corrige un flip et celui qui corrige une inversion de phase. Ensuite le mieux est de le programmer pour verifier qufil fonctionne ! Donnons maintenant des explications theoriques. Nous modelisons une erreur E comme la transformation lineaire dfun qubit en un autre qubit. Autrement dit une erreur est definie par une matrice 2 ~ 2, notee E. Rappelons la definition des matrices de Pauli auxquelles on ajoute lfidentite : I = 1 0 0 1 X = 0 1 1 0 Y = 0 .i i 0 Z = 1 0 0 .1 Ces quatre matrices sont lineairement independantes et forment donc une base de lfespace vectoriel de dimension 4, M2(C). Ainsi nfimporte quelle E ¸ M2(C) se decompose : E = aI + bX + cY + dZ ou a, b, c, d ¸ C. Par linearite du circuit, on se ramene aux quatre cas E = I, E = X, E = Y , E = Z. La structure du circuit, qui regroupe la correction de flip et dfinversion de phase, fait qufil corrige les erreurs X et Z (et aussi I). Il ne reste plus qufa traiter le cas de E = Y . Mais nous avons lfegalite : Y = iX Z. Ceci est une egalite de matrices, qui se traduit en une equivalence de portes : Y = Z X ~ i Ainsi une erreur Y est la combinaison dfun flip et dfune inversion de phase et sera bien corrigee par notre circuit. Notes. Ce cours nfest qufun apercu dfun vaste domaine. La presentation adoptee ici est basee sur un cours en ligne du CERN Introduction to quantum computing par Elias F. Combarro. Une etude plus approfondie est faite dans le livre de Nielsen et Chuang Quantum computation and quantum information. Avantage quantique Chapitre 18 Video ¡ partie 18. Avantage quantique Quand est-ce qufun ordinateur quantique sera plus performant qufun ordinateur classique ? 1. Lfavantage quantique 1.1. Une definition? Lfavantage quantique cfest deux choses : un ordinateur quantique et un probleme a resoudre. Cet ordinateur quantique sait resoudre ce probleme alors qufaucun ordinateur classique ne peut le faire en temps raisonnable. . La notion dfavantage quantique est un peu floue : par exemple, est-ce que le probleme a resoudre doit etre utile ou pas ? Ce que signifie resoudre un probleme est clair : lfordinateur quantique renvoie la bonne reponse en un temps raisonnable (disons en quelques heures ou quelques jours), mais il nfest pas clair de prouver qufaucun algorithme ne peut resoudre ce meme probleme sur un ordinateur classique (peut-etre qufun bon algorithme nfa pas encore ete trouve). . Certaines compagnies affirment avoir deja depasse le cap. Le consensus etant que cet avantage sera atteint durant la decennie 2020. . Le terme á avantage quantique â est maintenant prefere a á suprematie quantique â. Outre lfaspect moins vindicatif du terme á avantage â, a moyenne echeance, il est probable que les ordinateurs classiques et les ordinateurs quantiques cohabiteront ; on peut en effet imaginer que les ordinateurs classiques delegueront certaines taches complexes aux ordinateurs quantiques. Dfautres definitions sont a inventer pour mesurer lfefficacite dfun ordinateur quantique et comparer les technologies mises en oeuvre en tenant compte du nombre de qubits, des connexions entre ces qubits, du nombre de portes implementees, du taux dferreurs. . . 1.2. Factorisation La factorisation des grands entiers est une bonne illustration. Rappelons qufetant donne un entier il sfagit de lui trouver deux facteurs tels que n = p ~ q. Tout dfabord cfest un probleme utile, car la securite de nombreuses communications repose sur ce probleme. Ordinateurs classiques. Les meilleurs algorithmes actuels sur des ordinateurs classiques permettent de factoriser des entiers jusqufa 250 chiffres (800 bits) (voir le chapitre á Arithmetique â). Les calculs se font sur des centaines dfordinateurs en parallele et prennent plusieurs semaines. La complexite de ces algorithmes de factorisation augmente de maniere exponentielle avec le nombre de bits. La recommandation minimale pour la longueur dfune cle RSA sure est actuellement de 2048 bits (600 chiffres). Une telle factorisation est hors de portee de tous les ordinateurs et algorithmes actuels pour encore plusieurs annees. AVANTAGE QUANTIQUE 218 Ordinateurs quantiques. Lfalgorithme de Shor demontre theoriquement lfavantage des ordinateurs quantiques car il permet de factoriser rapidement des grands entiers. En 2020 les ordinateurs quantiques possedent jusqufa 50 qubits et savent factoriser des entiers a 5 chiffres (14 bits). Pour factoriser un entier de 2048 bits en quelques heures, il faudrait une machine quantique a 20 millions de qubits, ce qui ne sera pas atteint avant une ou deux decennies ! 2. Simulation dfun ordinateur quantique Les ordinateurs quantiques sont fondamentalement differents des ordinateurs classiques, cependant certains circuits quantiques simples peuvent etre realises de facon efficace sur un ordinateur classique. Theoreme 1 (Gottesman . Knill). Nfimporte quel circuit quantique, compose uniquement de portes de Hadamard H, de portes CNOT, de portes de Pauli X, Y , Z et de portes de phase S, initialise avec des etats |0. et termine par des mesures, peut etre simule efficacement par un ordinateur classique. . á Efficacement â signifie en temps polynomial par rapport a la donnee du circuit. . La porte S, appele á porte phase â ou á porte ƒÎ4 â, est definie par la matrice : S = 1 0 0 i . . En fait les portes de Pauli X, Y , Z peuvent etre generees uniquement avec des portes H et S (cfest un bon exercice). . Cependant les portes contenues dans lfenonce ne permettent pas de generer toutes les portes quantiques : cet ensemble de portes nfest donc pas universel. Par exemple la porte de Toffoli, la porte p CNOT ou la porte ƒÎ8 ne peuvent pas etre generees a partir des portes du theoreme. . Lfordinateur classique doit etre capable de simuler le hasard. Par exemple la mesure du qubit 1 p 2 (|0.+|1.) donne 0 ou 1 avec probabilite 12 ce qui revient a jouer a pile ou face. Voici des exemples de circuits que nous avons rencontres et qui peuvent etre simules efficacement sur un ordinateur classique : . la communication par codage super-dense (voir le chapitre á Decouverte de lfinformatique quantique â), . la teleportation quantique (voir le chapitre á Teleportation quantique â), . les codes correcteurs dferreur (voir la section á Detection dfun flip â du chapitre á Code correcteur â). 3. Arbre de calculs La simulation dfun ordinateur quantique par un ordinateur classique se confronte non seulement a des problemes de temps de calculs mais aussi a des problemes de memoire. En effet, des que lfon depasse 50 qubits, il y a 250 etats de base, soit plus de 1015 etats a stocker. Nous allons voir une modelisation du calcul des etats dfun circuit sous la forme dfun arbre. En parcourant lfarbre branche par branche, on teste toutes les possibilites sans utiliser trop de memoire a chaque fois. La methode nfapporte pas un gain de temps, qui reste exponentiel en fonction du nombre n de qubits, mais la taille de la memoire utilisee est lineaire en n. Nous expliquons cette modelisation par des exemples. Nous partons dfun circuit, avec un etat initial. Il sfagit dfobtenir tous les etats possibles que lfon pourrait obtenir apres mesure. La brique fondamentale a comprendre est lfarbre pour une porte H de Hadamard. AVANTAGE QUANTIQUE 219 Exemple. Soit le circuit quantique initialise par |0. suivi dfune simple porte de Hadamard (sans mesure sur la figure de gauche, avec mesure a droite) : |0. H 1 p / 2 (|0. + |1.) |0. H 0 ou 1 / La sortie est 1 p 2 (|0. + |1.). Si on termine par une mesure alors la sortie est 0 ou 1. Voici lfarbre de calculs. 0 1 0 Lfarbre de calculs represente tout simplement les deux possibilites. Lorsque lfon passe une porte H les feuilles de lfarbre 0 et 1 representent la superposition des etats |0. et |1.. Autrement dit les feuilles representent toutes les mesures possibles. On a simplifie lfecriture en omettant les coefficients 1 p 2 . Voici un exemple avec deux lignes quantiques. Exemple. |0. H . / |1. / La sortie est le qubit |ƒÕ. = 1 p 2 (|0.1. + |1.0.). Une mesure donnerait donc 0.1 ou bien 1.0, ce que lfon retrouve aux feuilles de notre arbre. 01 11 10 01 01 H CNOT Noter qufau passage de la porte CNOT lfarbre ne se ramifie pas (chaque branche se poursuit en une seule branche). Continuons avec un exemple pour comprendre le fonctionnement : a chaque porte H correspond une bifurcation en deux branches. Lfinteret de cet arbre est que les calculs dfune branche sont mis en commun tant qufil nfy a pas de bifurcation. Exemple. AVANTAGE QUANTIQUE 220 |0. H . X / |1. H / 01 11 10 11 01 10 00 01 01 .01 .11 00 10 H CNOT H X Le qubit de sortie est |ƒÕ. = 12 (|0.0. + |0.1. + |1.0. . |1.1.) Exemple. Terminons avec un circuit contenant une porte de Toffoli. |0. H . / |1. H . / |1. H / Pour simplifier lfarbre ci-dessous, on omet les signes et les coefficients devant les qubits. 011 111 111 110 111 110 101 101 101 100 011 011 011 011 010 001 001 001 000 H H Toffoli H Notes. La reference pour les arbres de calculs est Andrew Shi, Recursive path-summing simulation of quantum computation (2017). Notes et bibliographie Retrouvez ce cours en videos : Chaine á Quantum â sur Youtube Vous pouvez construire facilement des circuits quantiques en ligne : Quirk : Quantum Circuit Simulator Vous pouvez aussi installer Qiskit pour Python : Quiskit Le livre de reference est Quantum computation and quantum information (Cambridge university press, 2010) de Mickael Nielsen et Isaac Chuang. Cet ouvrage est a la fois abordable et complet. La premiere partie de ce cours est inspiree dfune serie de videos de Mickael Nielsen : á Quantum computing for the determined â Un des rares cours en francais est á Introduction a lfinformatique quantique â par Y. Leroyer et G. Senizergues a lfEnseirb-Matmeca disponible ici. Le chapitre á Algorithme de Shor â est base sur lfarticle Shorfs algorithm for factoring large integers par C. Lavor, L.R.U. Manssur, R. Portugal (2003), disponible sur arXiv. Remerciements Je remercie Michel Bodin, Stephanie Bodin, Francois Recher et Jean-Michel Torres pour leurs relectures. Vous pouvez recuperer lfintegralite des codes Python ainsi que tous les fichiers sources sur la page GitHub dfExo7 : á GitHub : Quantum â. Exo7 Ce livre est diffuse sous la licence Creative Commons . BY-NC-SA . 4.0 FR. Sur le site Exo7 vous pouvez telecharger gratuitement le livre en couleur. Index algorithme dfEuclide, 144 algorithme de Deutsch.Jozsa, 96, 118 algorithme de Grover, 125 algorithme de Shor, 171, 180, 218 algorithme probabiliste, 126 avantage quantique, 217 base orthonormale, 113 binaire, 66 bit, 66 bra, 49, 60, 113 chat de Schrodinger, 80 chiffrement BB84, 203 parfait, 202 RSA, 150, 217 circuit quantique, 7, 21, 218 codage super-dense, 16, 31 code correcteur, 208 complexite, 72 congruence, 147 constante de Planck, 75 cryptographie, 202 division euclidienne, 143 dualite onde/corpuscule, 76 equation de Schrodinger, 81 etat de Bell, 11 etat quantique, 2 exponentiation rapide, 149 factorisation dfun entier, 217 fonction dfonde, 80 fraction continue, 169 grand O, 71 groupe ordre, 174 produit, 179 racine carree, 176 theoreme des restes chinois, 179 Z/nZ, 148 hachage, 127 indicatrice dfEuler, 148 intrication quantique, 11, 18, 55, 83 ket, 3, 49, 60, 112 lemme de Gauss, 145 matrice adjointe, 59, 112 carree, 56 determinant, 58 identite, 58 inverse, 58 produit, 57 speciale unitaire, 64 transposee, 59 unitaire, 61, 113 mesure, 5 modulo, 147 nombre complexe, 33 argument, 37 conjugue, 35 exponentielle, 38 formule de Moivre, 38 module, 34 partie imaginaire, 34 partie reelle, 34 nombre premier, 145 norme, 48, 50 oracle, 97, 107, 128 pgcd, 144 porte, 6, 114 CCNOT, 106 CNOT, 10, 13, 104, 218 controlee, 136, 194, 198 de Hadamard, 6 de Pauli, 8, 45, 218 de Toffoli, 15, 106 FANOUT, 105, 210 H, 6 logique, 67 NOT, 6 phase, 218 ƒÎ4 , 218 ƒÎ8 , 115 p CNOT, 8 Rk, 194 S, 194, 218 SWAP, 104, 196 T, 115, 194 universelle, 69, 107 X, 6, 8, 45, 211, 218 Y, 8, 45, 216, 218 Z, 8, 45, 136, 212, 218 principe dfincertitude dfHeisenberg, 75 produit scalaire, 49, 60, 112 produit tensoriel, 53 qiskit, 21 qubit calculs, 12, 36 definition, 3, 35 2-qubit, 9, 36 equivalence, 39 etats de Bell, 91 mesure, 83 mesure partielle, 89, 93 norme, 13, 36 notation entiere, 120 n-qubit, 14 produit, 54 qiskit, 24, 26 realisation, 82 sphere de Bloch, 42, 52 superposition, 3, 9, 82 suprematie quantique, 217 teleportation quantique, 85 theoreme dfEuler, 149 theoreme de Bezout, 144 (petit) theoreme de Fermat, 145 theoreme de Gottesman.Knill, 218 theoreme de non-clonage quantique, 115 transformation de Grover, 133 transformation de Hadamard, 121 transformee de Fourier, 184 valeur propre, 196 vecteur dual, 48 vecteur propre, 196 Version 1.01 . Avril 2024