https://audentia-gestion.fr/QUANTIQUE/PDF/Livre-quantum-Un-peu-de-mathematiques-pour-l-informatique-quantique.pdf

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 Lf 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 lfinformatique quantique Les ordinateurs quantiques sont parmi nous ! Enfin presque. . . Dans ce livre vous decouvrirez lfinformatique quantique et apprendrez a programmer sur un vrai ordinateur quantique. Meme sfils 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 lfune 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 lfinformation quantique : soit lfinformation 0, notee |0., soit lfinformation 1, notee |1., soit dfune certaine maniere les deux en meme temps ! Un qubit correspond a lfetat dfune particule qui peut osciller entre un etat au repos et un etat excite. Cfest la qufinterviennent les mathematiques ! La physique quantique est difficile a comprendre et les ordinateurs quantiques sont compliques a realiser mais heureusement les mathematiques necessaires pour sfinitier a lfinformatique quantique sont simples. Par exemple un qubit sfexprime en fait par lfexpression mathematique : ƒ¿|0. + ƒÀ |1. . Cfest cette combinaison des deux etats |0. et |1. qufon 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 cfest encore plus ardu de maitriser une particule qui realise un qubit. Les mathematiques sont le langage ideal pour exprimer la physique et lfinformatique quantique. Nous expliquons ici les notions (superposition, intrication, non-clonage quantique,. . .) comme des concepts mathematiques en se permettant de sfaffranchir de lfunivers physique delicat qui se cache derriere. Ce livre offre une introduction douce a lfinformatique quantique et aux mathematiques afin dfetre en mesure de presenter lfalgorithme 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. Lfalgorithme de Shor montre que sur un ordinateur quantique (plus gros que ceux qui existent actuellement) ce probleme deviendrait simple a resoudre. Pour demarrer lfetude de lfinformatique quantique avec ce livre, vous nfavez pas besoin de connaitre la physique quantique, vous nfavez pas non plus besoin de competences avancees en programmation (un peu de Python). Les mathematiques de ce cours sont dfun niveau premiere annee dfetudes superieures, avec des incursions vers la deuxieme annee. Toutes les notions de bases sont introduites, en particulier les nombres complexes jouent un role important (dfailleurs les nombre ƒ¿ et ƒÀ ci-dessus sont des nombres complexes) ainsi que les vecteurs et les matrices. Lfinformatique quantique est un monde deconcertant mais bien reel. A vous de le decouvrir ! Le cours est aussi disponible en videos : Youtube : á Quantum â. Lfintegralite des codes Python ainsi que tous les fichiers sources sont sur la page GitHub dfExo7 : á GitHub : quantum-exo7 â. Sommaire I Premiers pas quantiques 1 1 Decouverte de lfinformatique 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 dfarithmetique 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 lfinformatique 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 dfun ordinateur classique avec les notions de bits, de portes logiques et de complexite dfun algorithme. Physique quantique Lfobjectif est de comprendre les notions de base de la physique quantique. Teleportation quantique La teleportation quantique permet de transmettre un qubit dfun point A a un point B. Un premier algorithme quantique Nous commencons par etudier une version simple de lfalgorithme de Deutsch.Jozsa afin de nous familiariser avec les objets, les techniques et les types dfalgorithmes que nous decouvrirons dans la seconde partie du livre. Portes quantiques Nous approfondissons nos connaissances theoriques des portes quantiques en etudiant ce qufelles peuvent realiser (ou pas !). Algorithme de Deutsch.Jozsa Nous expliquons et prouvons lfalgorithme de Deutsch.Jozsa dans le cas general. Cfest notre premier algorithme quantique qui supplante les algorithmes classiques et cfest aussi lfoccasion dfintroduire plusieurs notions utiles pour la suite. Algorithme de Grover Lfalgorithme de Grover est un algorithme de recherche dfun 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. Lfalgorithme de Grover ne fournit pas un resultat sur a 100 %, mais une reponse qui a de grandes chances dfetre la bonne. Arithmetique La securite des communications sur internet est basee sur lfarithmetique 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 dfarithmetique afin de comprendre plus tard lfalgorithme de Shor qui permet de factoriser rapidement un entier a lfaide dfun ordinateur quantique. Algorithme de Shor Nous detaillons le circuit et les calculs qui permettent une factorisation rapide des entiers a lfaide dfun ordinateur quantique. Complements dfarithmetique Nous apportons des complements a lfalgorithme de Shor en etudiant chacune des hypotheses. Transformee de Fourier discrete Nous revenons sur lfoutil principal de lfalgorithme 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 dfun secret commun entre deux personnes grace a la physique quantique. Code correcteur Lors de la transmission dfun qubit il peut y avoir des erreurs. Les codes correcteurs permettent de detecter et corriger ces erreurs. Avantage quantique Quand est-ce qufun ordinateur quantique sera plus performant qufun 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 lfinformatique 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 lfinformatique 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 lfunite dfinformation 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 LfINFORMATIQUE QUANTIQUE 3 Ce qui est nouveau et fondamental est que lfon 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, cfest 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 LfINFORMATIQUE QUANTIQUE 4 Remarque. . Si on souhaitait definir |ƒÕ. uniquement avec des nombres reels, alors on pourrait ecrire ƒ¿ = ƒ¿1 + iƒ¿2, ƒÀ = ƒÀ1 + iƒÀ2 et dire qufun etat quantique est defini par 4 nombres reels ƒ¿1, ƒ¿2, ƒÀ1, ƒÀ2. Cependant ce nfest pas le bon etat dfesprit pour la suite. . Attention |0. nfest 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, cfest-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 nfest 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 lfon considere que les coefficients ƒ¿ et ƒÀ sont des nombres reels, ce qui nfest pas le cas en general. La á sphere de Bloch â fournira une representation plus fidele, voir le chapitre á Nombres complexes â. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 5 1.3. Mesure et probabilites Un des aspects fondamentaux mais troublants de la physique quantique est que lfon ne peut pas mesurer les coefficients ƒ¿ et ƒÀ de lfetat quantique |ƒÕ. = ƒ¿|0. + ƒÀ |1.. Partons dfun etat quantique de norme 1 : |ƒÕ. = ƒ¿|0. + ƒÀ |1. avec |ƒ¿|2 + |ƒÀ|2 = 1. La mesure de lfetat quantique |ƒÕ. va renvoyer lfun des bits classiques 0 ou 1 : . 0 avec une probabilite |ƒ¿|2 . 1 avec une probabilite |ƒÀ|2 Noter que, comme nous sommes partis dfun etat de norme 1, nous avons bien la somme des probabilites |ƒ¿|2 + |ƒÀ|2 qui vaut 1. Exemple. Considerons lfetat 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 lfexperience á je prepare lfetat initial |ƒÕ., puis je le mesure â, alors pour environ 66 cas sur 100 jfobtiendrai pour mesure 0 et pour environ 33 cas sur 100 jfobtiendrai 1. La mesure dfun etat quantique |ƒÕ. le perturbe de facon irremediable. Cfest un phenomene physique appele á reduction du paquet dfonde â. Si la mesure a donne le bit 0, alors lfetat |ƒÕ. est devenu |0., si la mesure a donne le bit 1 alors |ƒÕ. est devenu |1.. Autrement dit, une fois qufil est mesure, un qubit ne sert plus a grand chose ! Remarque. Bien evidemment la mesure de |0. donne 0 avec une probabilite 1 (lfevenement est presque sur). De meme la mesure de |1. donne 1 avec une probabilite 1. Dans ce cours nous faisons le choix qufune mesure renvoie un bit classique 0 ou 1. Une autre convention serait de decider qufune mesure renvoie un des etats de base |0. ou |1.. Bilan. On retient qufa partir dfun 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 LfINFORMATIQUE QUANTIQUE 6 2. Porte avec une entree Un ordinateur quantique produit des qubits et leur applique des transformations, qui dans un circuit sfappellent des á portes â. Nous commencons par transformer un seul qubit. 2.1. Porte X La porte X sfappelle 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 dfun etat quantique : |ƒÕ. = ƒ¿|0. + ƒÀ |1. X 7....¨ƒÀ |0. + ƒ¿|1. . Par exemple lfetat |ƒÕ. = 2 |0. + (1 . i) |1. est transforme par la porte X en lfetat X(|ƒÕ.) = (1 . i) |0. + 2 |1.. En termes de vecteurs cette transformation sfecrit :  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 nfest 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 lfetat |ƒÕ. = i |0. + (2 + i) |1. est transforme en H(|ƒÕ.) = 2+2i p 2 |0. . 2 p 2 |1.. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 7 En termes de vecteurs cette transformation sfecrit 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 Cfest un element fondamental dfun circuit quantique. Cfest le seul moment ou lfon peut obtenir une information sur un etat quantique |ƒÕ., mais cfest aussi la fin du qubit, car la mesure ne renvoie que 0 ou 1 et perturbe irremediablement lfetat quantique. 2.4. Exemples de circuit Un circuit est compose dfune succession de portes. Il se lit de gauche a droite. Exemple. Voici un circuit compose dfune porte X (cfest-a-dire une porte NON) suivie dfune porte mesure symbolisee par un petit cadran. X / . Si lfentree est |0., alors X(|0.) = |1., la sortie mesuree vaut donc 1 (avec une probabilite 1) : |0. X / 1 . Par contre si lfentree est |1., alors X(|1.) = |0. et la sortie mesuree vaut 0 : |1. X / 0 DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 8 . Si lfentree est lfetat |ƒÕ. = ƒ¿|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 dfune porte H de Hadamard, suivi dfune mesure : H / . Si lfentree 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 lfentree 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 lfentree 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 dfune 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. cfest-a-dire M = 1 2  1 + i 1 . i 1 . i 1 + i  DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 9 1. Pour lfentree |0., que donne une mesure apres la porte p NOT ? Meme question avec |1.. |0. p NOT / ? |1. p NOT / ? 2. Pour lfentree |ƒÕ. = 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 sfagit 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 dfutiliser les matrices. 3. Les 2-qubits Nous allons maintenant reunir deux qubits pour obtenir un 2-qubit. Cfest la version quantique de lfunion 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 dfun 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 lfinformatique 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 sfagit de nouveaux vecteurs dfune 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 LfINFORMATIQUE 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. Cfest 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 dfune 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 lfaide 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 LfINFORMATIQUE 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. Lfetat de Bell A lfaide de la porte CNOT nous allons obtenir un des etats les plus importants pour deux qubits : lfetat 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 qufon le connait. Permettons-nous un petit ecart : . Un qubit, cfest un peu comme une piece de monnaie lancee en lfair. Tant que la piece tourne dans lfair, á pile â et á face â ont les memes chances de se produire. Ce nfest que lorsque la piece est retombee que lfon peut lire le resultat (cfest la partie á mesure â) et ensuite le resultat est definitivement fige a á pile â ou bien a á face â. . Un 2-qubit, cfest-a-dire la reunion de deux qubits, cfest comme deux pieces de monnaie en train dfetre lancees en lfair en meme temps. Les quatre resultats á pile/pile â, á pile/face â, á face/pile â ou encore á face/face â sont possibles. . Lfetat de Bell, cfest comme deux pieces liees entre elles lancees en lfair. Le resultat ne peut etre que á pile/pile â ou bien á face/face â. Ce phenomene sfappelle á lfintrication quantique â. PILE PILE Obtention de lfetat de Bell. Considerons le circuit suivant, compose dfune porte de Hadamard, suivie dfune porte CNOT : H . Alors, a partir de lfentree |0.0., lfetat de Bell ƒ³+ est obtenu en sortie. |0. . |0. H . / / 1 p 2 |0. . |0. + 1 p 2 |1. . |1. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 12 Reprenons le calcul en details (en adoptant la notation verticale) a partir de lfentree |0.0. = |0. . |0. Tout dfabord 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 dfabord 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 lfetat de Bell ƒ³+ . Exercice. Reprenons le meme circuit : H . 1. Quelle est la sortie produite pour lfentree |1.0. ? 2. Trouver ou inserer une porte X dans le circuit, de sorte que lfentree |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. Lfaddition 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 lfaide 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 LfINFORMATIQUE QUANTIQUE 13 On a utilise lfidentite i2 = .1 et fait attention que la multiplication des á ket â nfest 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 dfun 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 nfest 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 cfest 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 lfaffirmation est vraie pour les quatre etats de base |0.0., |0.1., |1.0., |1.1.. La porte CNOT. Revisitons la porte CNOT dfune maniere un peu plus abstraite. La transformation associee a cette porte sfecrit aussi : |x. y. CNOT 7.......¨|x. y . x. cfest-a-dire : |x. . / |x. | y. / |x . y. ou x et y ont pour valeurs 0 ou 1 et ou á . â represente lfaddition 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 LfINFORMATIQUE QUANTIQUE 14 4. Plus de qubits 4.1. Circuit quantique Dfune facon generale, le regroupement de plusieurs qubits conduit a un á n-qubit â. Voici le schema de principe dfun 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. Cfest toute la puissance de lfinformatique 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 lfinformatique classique ne sfoccupe que dfun seul n-bit a la fois. Par exemple, lfecriture dfun 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 dfun 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 LfINFORMATIQUE 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 lfetat des deux premiers qubits est |1. alors la porte echange |0. et |1. pour le troisieme qubit, sinon elle conserve le troisieme qubit. Cfest 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 LfINFORMATIQUE QUANTIQUE 16 5. Communication par codage super-dense Le codage super-dense est un protocole quantique permettant a deux personnes dfechanger de lfinformation. 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 dfinformation est transmis pour chaque qubit envoye. Ne pourraiton pas mieux faire ? Interception. De plus cette technique nfest pas sure, si lfespionne Eve intercepte le qubit transmis, alors elle peut mesurer le qubit sans changer son etat. Elle recupere lfinformation et Bob ne sfapercoit 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 dfetat en |0. ou en |1.. DECOUVERTE DE LfINFORMATIQUE 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 lfetat de Bell, 2. codage de lfinformation par Alice, 3. decodage par Bob. 1. Preparation Etat de Bell |ƒ³+. Charlie 2. Codage de lfinformation Alice 3. Decodage et mesure Bob qubit qubit qubit 5.3. Preparation de lfetat de Bell Le protocole commence par un travail de preparation externe : une troisieme personne, Charlie, prepare lfetat de Bell. Cfest tres facile : partant de lfetat quantique |0.0., lfaction dfune porte H suivi dfune porte CNOT conduit a lfetat 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 lfexpose et distinguer ce qui est a destination dfAlice et ce qui est a destination de Bob, on note lfetat de Bell sous la forme : ƒ³+ = 1 p 2 |0A.0B. + 1 p 2 |1A.1B. . Ensuite Charlie envoie : DECOUVERTE DE LfINFORMATIQUE 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, cfest-a-dire lies entre eux, meme une fois separes. Si on mesure |ƒÕA. et que lfon 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 sfexplique par le fait que ces deux qubits sont issus de lfetat de Bell, qui lors de sa mesure ne peut conduire qufa 0.0 ou 1.1. Lfintrication 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 dfAlice 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 lfinformation qufelle souhaite transmettre : . Si elle veut transmettre lfinformation á Noir/0.0 â elle applique lfidentite 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 dfinformations pour retrouver le message dfAlice. Dans la pratique, il applique une porte CNOT suivi dfune porte H (cfest lfoperation inverse de la preparation de Charlie). Puis Bob mesure les deux qubits. Nous allons verifier que la mesure redonne exactement lfinformation que voulait transmettre Alice : 0.0, 0.1, 1.0, 1.1 (pour Noir, Rouge, Bleu, Blanc). DECOUVERTE DE LfINFORMATIQUE 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 dfAlice 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 nfoublions 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 dfAlice. Cas de á Rouge/0.1 â. Alice applique la porte X au premier qubit de lfetat de Bell, elle transforme son qubit 1 p 2 (|0A.+|1A.) en 1 p 2 (|1A.+|0A.). Mais pour lfetat 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 dfune 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 dfAlice. Cas de á Bleu/1.0 â. Alice applique la porte Z au premier qubit de lfetat de Bell, Bob recoit donc |ƒÕ. = 1 p 2 (|0A.0B. . |1A.1B.). Bob applique une porte CNOT, suivie dfune 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 dfAlice. Cas de á Blanc/1.1 â. A partir de lfetat 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 dfune 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 dfAlice. DECOUVERTE DE LfINFORMATIQUE QUANTIQUE 20 5.6. Bilan Alice transmet une information composee de deux bits a Bob, mais elle ne lui a envoye qufun seul qubit (meme si Bob recoit globalement deux qubits). De plus cfest un protocole de transmission securise. En effet, si Eve intercepte le qubit qufAlice 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 lfinformation 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 lfeau 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 sfagit de programmer le circuit suivant. |0. H / On part donc de lfetat initial |0., on applique une porte de Hadamard, lfetat 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 lfecrit 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 lfinstant on nfutilise pas un veritable ordinateur quantique, mais on transforme notre machine en un simulateur avec lfoption 'QasmSimulator'. Partie B. Construction du circuit On commence par declarer lfarchitecture du circuit : circuit = q.QuantumCircuit(1, 1) Lfinstruction 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 lfentree nfa pas ete precisee, cfest, comme mentionne sur lfaffichage 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 nfest pas accessible). Une seule valeur ne permet pas de conclure sur la nature du circuit, cfest 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 dfaleatoire 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 dfun 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 sfaffiche 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 lfentree par un qubit |ƒÕ. quelconque (et non plus |0.). . Nous utiliserons un á faux â ordinateur quantique afin dfobtenir les etats quantiques. En effet un á vrai â circuit quantique nfest pas pratique pour lfapprentissage car il ne permet dfobtenir 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. Cfest 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 lfentree 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 lfaide 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 dfentree |ƒÕ. = p 3 2 |0. + 1 . i 2 p 2 |1. qui est un qubit de norme 1. Calculer la sortie a lfaide 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 lfon ajoute une porte, par exemple circuit.h(i). Lfajout 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 dfabord 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 Lfaffichage 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 dfecriture des nombres binaires dans laquelle les bits sont ecrits de droite a gauche. Ecriture dfun 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 lfon 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 sfinscrire et patienter dans une file dfattente pour lancer son programme. Voici les etapes prealables. . Se creer un compte sur le site quantum-computing.ibm.com. . Recuperer son code dfacces (token) qui est un un long mot de passe du genre 'ce5a6210bb21...'. Ce code nfest necessaire que pour la premiere connexion. 4.2. Programme Voici un circuit. |0. H . / |0. / Et voici le programme qui sfexecute 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 dfacces (une seule fois), a choisir un ordinateur quantique en acces (ici 'ibmq_kyoto'). Partie B. Construction du circuit. Comme dfhabitude ! Partie C. Execution. Presque comme dfhabitude sauf qufil faut etre un peu plus patient pour disposer de lfacces 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 lfetat 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 lfon nfobtient 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 dfune mesure (comme le lancer dfune piece de monnaie). Avec un grand nombre de lancers, cet ecart diminue. . une cause dferreur physique : un ordinateur quantique nfest pas parfait, il peut y avoir des erreurs. 5. Codage super-dense 5.1. Circuit Il sfagit 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 lfinformatique 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 sfutilise en choisissant le message qufAlice 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 lfetat 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 lfon notera a + ib. . Exemple avec a = 2 et b = 3 : z = 2 + 3i. . Le nombre complexe i verifie lfequation : 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 lforigine (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 lfensemble des nombres complexes de module 1 par le cercle de rayon 1 centre a lforigine. 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 lfaxe 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. Lf 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. Lfaddition de deux qubits se fait coefficient par coefficient, il sfagit donc dfadditionner 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 lfaide 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 dfun 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 dfun 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 lfecriture 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). Lfargument nfest pas unique : si ƒÆ est un argument alors ƒÆ + 2kƒÎ (k ¸ Z) aussi. Pour rendre lfargument unique, on peut imposer la condition ƒÆ ¸] . ƒÎ,ƒÎ] (ou encore ƒÆ ¸ [0, 2ƒÎ[). Si on impose ƒÆ ¸] . ƒÎ,ƒÎ] alors pour un nombre complexe z non nul, lfecriture z = r cosƒÆ + ir sinƒÆ est unique. On dira que arg(z) est á defini modulo 2ƒÎ â et lfecriture ƒÆ ß ƒÆŒ (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 dfargument ƒÆ = 3ƒÎ 4 est zŒ = r cosƒÆ + ir sinƒÆ = . 3 p 2 2 + 3 p 2 2 i = 3 p 2 2 (.1 + i). Lfecriture module-argument facilite le calcul des multiplications. Les modules se multiplient, les arguments sfadditionnent. 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 sfecrit : 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 sfeffectuent avec les lois habituelles pour les puissances. Par exemple : .. eiƒÆ n = einƒÆ Il sfagit en fait de la formule de Moivre qui sfecrit 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 sfecrit 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 lfaide de la notation exponentielle, un qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. peut aussi sfecrire : |ƒÕ. = 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.. Lfecriture algebrique est adaptee a un calcul de somme tandis que la notation exponentielle rend le calcul dfune 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 dfun qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. ne permet pas dfacceder 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 lfun a lfautre 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 sfil 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 lfun a lfautre en multipliant par k = 1/ p 2. . On a aussi i |0. + (1 . i) |1. ß .|0. + (1 + i) |1. On passe de lfun a lfautre 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 lfun a lfautre 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 dfune 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 lfequivalence ne changent pas le calcul de probabilite pour la mesure. . Lfequivalence des qubits evite en particulier de parler de normalisation. Proposition 2. Un qubit |ƒÕ. = ƒ¿|0.+ ƒÀ |1. non nul (cfest-a-dire (ƒ¿,ƒÀ) .= (0,0)) est equivalent a un qubit de norme 1 de la forme : |ƒÕ. ß cos .. ƒÆ 2  |0. + sin .. ƒÆ 2  eiƒÓ |1. De plus lfecriture est unique lorsque lfon 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 dfune part ƒÆ = 2ƒÎ 3 pour lequel cos .. ƒÆ 2  = 12 et sin .. ƒÆ 2  = p 3 2 et dfautre part ƒÓ = .ƒÎ4 pour lequel eiƒÓ = 1.i p 2 . . Il nfest en general pas possible dfexpliciter 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 qufil 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 nfa pas dfexpression 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 sfecrit : ƒÕŒ = 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 dfobtenir x = ƒÆ 2 (ƒÆ ¸ [0,ƒÎ]), et dfecrire 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. Lfunicite decoule de la construction. On peut aussi la prouver de la facon suivante. Si on suppose qufil 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. Lfetat de base |0. correspond au pole Nord de coordonnees (x, y, z) = (0,0,1) avec pour colatitude ƒÆ = 0 (et nfimporte quelle valeur comme longitude ƒÓ). NOMBRES COMPLEXES 43 x y z |0. x y z |1. Lfetat de base |1. correspond au pole Sud de coordonnees (x, y, z) = (0, 0,.1) avec pour colatitude ƒÆ = ƒÎ (ou 180.) (et nfimporte 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, cfest-a-dire 0 . ƒÆ < ƒÎ2 , alors la probabilite de mesurer 0 est plus forte. Par contre, si le qubit est plus proche du pole Sud, cfest-a-dire ƒÎ2 < ƒÆ . ƒÎ, alors la probabilite de mesurer 1 est plus forte. Un qubit sur lfequateur se mesure en 0 ou 1 avec la meme probabilite. ƒÆ probabilite de mesure 0 p = cos2( ƒÆ 2 ) 0 ƒÎ ƒÎ2 0 12 1 Exemple. Lfetat |ƒÕ+ . = 1 p 2 .. |0. + |1.  a pour parametres ƒÆ = ƒÎ2 (ou 90.) et ƒÓ = 0. Lfetat |ƒÕ.. = 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 lfequateur, donc se mesurent en 0 ou 1 avec une probabilite 12 . Remarque. On rappelle que lfecriture dfun qubit sous la forme cos .. ƒÆ 2  |0.+ sin .. ƒÆ 2  eiƒÓ |1. ne sfobtient qufa equivalence pres. Aussi la representation sur la sphere de Bloch nfest que partielle et ne permet pas une representation complete dfun 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 lfexpression des etats quantiques situes sur lfequateur. 4. A quelle transformation geometrique correspond la transformation dfun qubit |ƒÕ. = cos .. ƒÆ 2  |0. + sin .. ƒÆ 2  eiƒÓ |1. en ƒÕŒ = cos ..ƒÎ2 . ƒÆ 2  |0. + sin ..ƒÎ2 . ƒÆ 2  eiƒÓ |1. ? NOMBRES COMPLEXES 45 5. Trouver lfexpression de la symetrie centrale de centre lforigine. Exprimez dfabord la transformation (ƒÆ,ƒÓ) 7¨ (ƒÆŒ,ƒÓŒ) puis lfaction |ƒÕ. 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 lfon regarde leur action sur la sphere de Bloch. Porte X. La porte X echange les coefficients dfun 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 lfespace) dfaxe (Ox) et dfangle ƒÎ (un demi-tour donc). |0. |1. x y z Portes Y et Z. Rappelons lfaction 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 dfaxe (Oy) et dfangle ƒÎ. Les coordonnees (ƒÆ,ƒÓ) sont transformees en (ƒÎ . ƒÆ,ƒÎ .ƒÓ). La porte Z correspond a la rotation dfaxe (Oz) et dfangle ƒÎ. 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) dfun vecteur est : a.ua = q x2 1 + x2 2 1.2. Vecteurs a coefficients complexes Nous generalisons la notion precedente : le nombre n de coefficients nfest 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 sfecrit : u = 0 BBB@ x1 x2 ... xn 1 CCCA avec x1, x2, . . . , xn ¸ K. Noter qufa partir de maintenant on nfutilise plus la notation avec une fleche au-dessus du nom du vecteur. Lfaddition 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 lfinstant 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 dfun 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 dfun 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 nfest 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 (cfest-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 aua, est definie par : aua = vut Xn i=1 |xi |2 Autrement dit : aua2 = |x1|2 + |x2|2 + E E E + |xn|2. Cfest 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 lfaide du produit scalaire hermitien : aua = A .u|u.. On retient aussi : aua2 = .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 lfangle entre les deux vecteurs. En effet, on a la formule : .u|v. = aua E ava E cos(ƒÆ) ou ƒÆ est lfangle 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 dforthogonalite 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 dfetre 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, lfun sfobtient de lfautre par la symetrie centrale centree a lforigine. Noter que cfest 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 lfenonce dfune inegalite importante. Theoreme 1 (Inegalite de Cauchy-Schwarz). |.u|v.| . aua E ava 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 lfexpression (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. Cfest la technique vue dans le chapitre á Decouverte de lfinformatique quantique â. Cfest 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 lfinteret de la notation |E. qui permet dfecrire 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 sfil existe deux 1-qubits |ƒÕ1. et |ƒÕ2. tels que : |ƒÓ. = |ƒÕ1. E |ƒÕ2. . . Sfil nfexiste aucun |ƒÕ1. et |ƒÕ2. tels que |ƒÓ. = |ƒÕ1. E |ƒÕ2., alors le qubit |ƒÓ. est dit intrique. Exemple. Le 2-qubit |ƒÓ. suivant nfest 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. Lfetat de Bell ƒ³+ est intrique : ƒ³+ = 1 p 2 |0.0. + 1 p 2 |1.1. Preuve. Supposons par lfabsurde 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. Dfune part, on aurait : ƒ³+ = |ƒÕ1. E |ƒÕ2. = ƒ¿ƒ¿Œ |0.0. + ƒ¿ƒÀŒ |0.1. + ƒÀƒ¿Œ |1.0. + ƒÀƒÀŒ |1.1. . VECTEURS ET MATRICES 56 Mais dfautre 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 qufil ne peut exister de tels |ƒÕ1. et |ƒÕ2., cfest-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 nfa qufune 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 nfa qufune 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 dfautres 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, cfest lfelement neutre pour lfaddition. 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 dfabord la ligne de la matrice A situee a gauche du coefficient que lfon veut calculer (ligne numero i representee par des ~ dans A) et aussi la colonne de la matrice B situee au-dessus du coefficient que lfon 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 lfon ajoute au produit du deuxieme coefficient de la ligne par le deuxieme coefficient de la colonne (ai2 ~ b2j), que lfon 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 dfabord 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 sfappelle 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. Cfest lfelement neutre pour la multiplication. En dfautres termes : Proposition 3. Si A est une matrice n ~ p, alors In E A= A et AE Ip = A. 4.4. Matrice inverse, determinant Definition (Matrice inverse). Soit A une matrice carree de taille n ~ n. Sfil 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 lfinverse de A et on la note A.1. Considerons le cas dfune 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 sfappelle 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 nfexpliquons pas ici comment calculer le determinant en general. 5. Matrice adjointe Une matrice adjointe est la version complexe dfune 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 sfobtient 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 : lfadjoint dfun 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 lfadjointe de lfadjointe est la matrice elle-meme. Cfest deja le cas pour la transposition et aussi la conjugaison complexe. On va prouver la seconde assertion (AB). = B.A.. Notez bien lfinversion de lfordre, que lfon rencontre deja pour les inverses (AB).1 = B.1A.1. On rappelle aussi que lfordre dfun 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 dfautre 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 = .ƒÓ|ƒÕ. . Cfest le produit dfun vecteur ligne par un vecteur colonne qui donne une matrice de taille 1 ~ 1, qufon 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 sfecrit A|ƒÓ. = |ƒÕ., la matrice A est dfun type particulier : cfest 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 lfensemble 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 lfon a bien A.A= I. De plus pour ces exemples on a A. = A. La propriete fondamentale des matrices unitaires est qufelles 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 lfangle entre deux vecteurs est preserve par lfaction dfune 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 lfaide 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, cfest-a-dire satisfont les conditions : aua = 1, ava = 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< : aua2 = |a|2 + |c|2 = 1 ava2 = |b|2 + |d|2 = 1 .u|v. = a.b + c.d = 0 On nfutilise pas lfegalite ab. + cd. = 0 qui est en fait (a.b + c.d). = 0. Reciproquement, si on a les egalites aua = 1, ava = 1 et .u|v. = 0, alors les coefficients de A.A sont les coefficients de lfidentite. 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 dfune porte quantique. U3(ƒÆ,ƒÓ,ƒÉ) Proposition 9. Lfensemble 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 aAua = aua. 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 aAua = aua. u Au A O Demonstration. . Sens Ë. aAua2 = .Au|Au. = .u|A.Au. = .u|u. = aua2. . Sens .. Notons la matrice A sous la forme de ses vecteurs colonnes A= .. u v  et supposons qufelle 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 aua = 1. . De meme A .. 01  = v, donc ava = 1. VECTEURS ET MATRICES 64 . Dfune part A .. 11  = u + v, donc au + va = p 2. Ainsi : au + va2 = 2 =Ë .u + v|u + v. = 2 =Ë .u|u + v. + .v|u + v. = 2 =Ë .u|u. + .u|v. + .v|u. + .v|v. = 2 =Ë aua2 + .u|v. + (.u|v.). + ava2 = 2 mais aua2 = 1 et ava2 = 1 =Ë 2Re .. .u|v.  = 0 sachant que z + z. = 2Re(z) . Dfautre part A .. 1i  = u + iv, donc au + iva = p 2. Ainsi : au + iva2 = 2 =Ë .u + iv|u + iv. = 2 =Ë .u|u + iv. + .iv|u + iv. = 2 =Ë .u|u. + i .u|v. . i .v|u. + .v|v. = 2 =Ë aua2 + i .u|v. . i(.u|v.). + ava2 = 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 aua = 1, ava = 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 (cfest-a-dire A.A= I) et de determinant 1 : det(A) = 1. On note SUn lfensemble des matrices speciales unitaires de taille n ~ n. Exemple. Les matrices de Pauli (voir lfexemple 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. Lfensemble 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 lfensemble des matrices de SU2. Proposition 12. Une matrice speciale unitaire de taille 2 ~ 2, sfecrit sous la forme A=  ƒ¿ .ƒÀ. ƒÀ ƒ¿.  avec ƒ¿,ƒÀ ¸ C tels que |ƒ¿|2 + |ƒÀ|2 = 1. Demonstration. Tout dfabord comme A ¸ SU2 alors en particulier A ¸ U2. Dfapres la proposition 8, A sfecrit sous la forme de ses vecteurs colonnes : A= .. u v  aua = 1 ava = 1 .u|v. = 0. VECTEURS ET MATRICES 65 Notons u =  ƒ¿ ƒÀ  . Comme aua = 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 sfecrit : 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 nfimporte 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 aua = ava. Il existe une matrice A ¸ SU2 telle que Au = v. Une telle matrice A nfest pas unique. Application. Si |ƒÓ. et |ƒÕ. sont de norme 1, alors il existe A ¸ SU2 telle que |ƒÕ. = A|ƒÓ.. Demonstration. Sans perte de generalite on suppose aua = ava = 1. Etape 1. Il existe B ¸ SU2 telle que B .. 10  = u. En effet, si on note u = .. ƒ¿ ƒÀ  avec ƒ¿,ƒÀ ¸ C. Alors posons : B =  ƒ¿ .ƒÀ. ƒÀ ƒ¿.  Comme aua2 = |ƒ¿|2 + |ƒÀ|2 = 1, cfest 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 â dfExo7. 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 dfun ordinateur classique avec les notions de bits, de portes logiques et de complexite dfun algorithme. 1. Bits classiques 1.1. 0 ou 1 Un bit est une valeur 0 ou 1 et correspond a lfinformation minimale pour lfinformatique classique. Cette valeur peut etre codee par une information physique (allume/eteint, 0 volts/5 volts, lforientation magnetique dfun element. . .). 1.2. Ecriture binaire Avec plusieurs bits on peut transmettre plus dfinformation. Voyons le cas dfun entier qui peut etre represente en ecriture binaire. Par exemple, 1.0.1.1.0.0.1 (prononcer les chiffres un par un) est lfecriture binaire de lfentier 89. Comment faire ce calcul ? Cfest 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 lfecriture 1.0.1.1.0.0.1 represente lfentier : 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 lfecriture en base 2 de lfentier : 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 nfy 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 lfentier 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 dfordinateur 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 lfaide du logarithme neperien ln(x) : log2(x) = ln(x) ln(2) . Ainsi pour enumerer N objets, il faut au moins n = log2(N) bits dfinformation. Dans la pratique on arrondit a lfentier superieur : n = .log2(N). ou .x. correspond a lfarrondi 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. Dfun point de vue mathematique, cfest donc une fonction f : {0,1}n ¨{0,1}, ou n . 1. Dfun 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 lfaction 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 â cfest le á ou â dans á fromage ou dessert â, cfest lfun ou lfautre mais pas les deux. XOR 0 0 0 XOR 0 1 1 XOR 1 0 1 XOR 1 1 0 On resume lfaction 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 dfentrees dfun 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 qufun 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), cfest-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 : nfimporte quelle fonction logique f : {0, 1}n ¨{0, 1} peut-etre realisee par un circuit ne comportant que des portes NAND. Nous nfallons 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 lfunique entree aux deux bornes de la borne NAND. INFORMATIQUE CLASSIQUE 70 NAND Equivalent porte NOT Maintenant que lfon 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 dfaiguillage 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 dfun algorithme Un algorithme cfest un peu comme une recette de cuisine : cfest une suite dfinstructions qui permettent de resoudre un probleme. Mais pour un meme probleme il peut exister plusieurs solutions. Il peut y avoir des algorithmes rapides, dfautres qui utilisent peu de memoire, dfautres qui sont efficaces mais qui ne donnent la bonne reponse qufavec 90% de certitude. Voici un exemple de probleme : decider si un entier n donne est un nombre premier. . Une premiere methode consiste a tester sfil admet un diviseur k, pour k variant de 2 jusqufa n . 1. Si cfest le cas n nfest pas un nombre premier, sinon cfest bien un nombre premier. . On peut aller beaucoup plus vite en testant seulement les diviseurs k compris entre 2 et p n. . On pourrait dfabord etablir le debut de la liste de tous les nombres premiers par le crible dfEratosthene, 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 nfest pas un nombre premier â. En reiterant lfalgorithme on peut obtenir une quasi-certitude. Nous comparerons les algorithmes en nous limitant ici a la á vitesse â des algorithmes. La vitesse que lfon chronometrerait en secondes nfest pas une mesure objective car elle depend trop du materiel et de lfimplementation. Nous allons etudier la vitesse theorique qui sfappelle la á complexite â. Cela demande dfintroduire 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 sfagit 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 . nfest pas bornee. (un) nfest pas un grand O de (vn). Par contre dans lfautre sens, on a bien vn = O(un). . un = O(n) signifie qufil 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 lfordre des O : on a ln(n) = O(n), n = O(n2), n2 = O(n3), n3 = O(en). . On pourrait intercaler dfautres 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 dfun algorithme On mesure lfefficacite dfun algorithme a lfaide de la complexite. Nous definissons de maniere informelle la complexite : la complexite dfun algorithme est le nombre dfoperations elementaires executees. . Ce que lfon 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 dfun 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 dfoperations elementaires : ici les multiplications de petits nombres (entiers a 1 ou 2 chiffres). Algorithme Ordre de la complexite Multiplication dfecole 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 dfordre de grandeur de la complexite pour differentes valeurs de n. Algorithme n = 10 n = 100 n = 1000 Multiplication dfecole 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 lfentier n est grand, plus un bon algorithme prend lfavantage. On termine par des exemples de problemes et dfalgorithmes correspondant a differentes classes de complexite. Complexite Probleme et algorithme O(1) acces a un element dfune 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 dfun 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 dfune liste de taille n par mergesort O(n2) tri dfune 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 dfalgorithmes 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 nfaboutiront 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 Lfobjectif est de comprendre les notions de base de la physique quantique. 1. Particule 1.1. Bestiaire Commencons par un tour dfhorizon 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 lfatome 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 qufun electron peut etre a nfimporte quelle position autour du noyau, mais pas partout avec la meme probabilite. noyau electron Modele (desuet) de couches dfelectrons Modele quantique . Le photon est la particule fondamentale de la lumiere (et des ondes electromagnetiques). Il nfa ni masse ni charge. 1.2. Quantification Des experiences montrent que le changement dfetat des electrons dans un atome correspond a des niveaux dfenergie bien determines. On le concoit bien avec le modele dans lequel les electrons gravitent sur des couches : pour qufun electron passe a une couche superieure, il faut lui fournir un certain niveau dfenergie. PHYSIQUE QUANTIQUE 75 saut ƒ¢E = nhƒË Changement de couche La formule qui calcule lfenergie 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 lfenergie recue (ou emise) ne peut prendre que des valeurs discretes, cfest-a-dire que lfon peut indexer par lfentier n qui vaut 1, 2, 3. . . et non par des valeurs continues (comme on lfaurait avec un parametre reel t . 0). La formule de Bohr-Einstein lie lfenergie a la frequence : E = hƒË On rencontre aussi souvent la constante de Planck reduite : .h = h 2ƒÎ 1.3. Principe dfincertitude dfHeisenberg Le principe dfincertitude dfHeisenberg sfenonce mathematiquement ainsi : ƒÐx EƒÐv . h 4ƒÎm ou : . ƒÐx est lfecart-type dfune serie de mesures de la position x = (x, y, z) dfune particule. Cet ecart-type est obtenu en repetant plusieurs fois lfexperience suivante : on prepare la particule, toujours avec le meme etat initial, puis on mesure sa position. . ƒÐv est lfecart-type de la mesure de la vitesse de la particule v = (vx , vy , vz). Lfinterpretation de la formule est la suivante : si on connait avec une grande precision la position dfune 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 lfon connaisse tres precisement la position dfune particule, alors lorsque lfon 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 dfincertitude, ƒÐv . h 4ƒÎmƒÐx doit etre tres grand. Cfest-a-dire que les differentes mesures de la vitesse conduisent a des grands ecarts. Lfincertitude est dfautant 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 lfetude 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. Cfest 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 dfun point materiel est bien connue, meme si on a vu, avec le principe dfincertitude dfHeisenberg, 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 dfune propriete physique par propagation. Par exemple, une onde sonore est la variation de la pression : un mouvement initial fait que des molecules dfair 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 lfonde se deplace. Une vague est un autre exemple dfonde, les molecules dfeau font varier la hauteur. Pourtant les molecules dfeau ne se deplacent pas en suivant les vagues. Dfailleurs 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 kmE 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 dfune 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 lfeau et qufon 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 dfinterference a lfaide de lfexperience de Young a deux fentes, mais commencons par un cas plus simple. Experience a une fente. Une onde est emise dfun 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 lfonde se diffracte (elle perd sa direction dforigine) et vient eclairer un ecran recepteur. Que voit-on sur cet ecran ? Lfonde frappe lfecran 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 nfest pas important pour nous. Ci-dessous le resultat dfune experience a une fente a lfaide dfune lumiere laser. Source Onde Paroi avec une fente Ecran recepteur Diffraction Experience a deux fentes. On reprend lfexperience mais cette fois avec deux fentes. PHYSIQUE QUANTIQUE 78 Source Ecran recepteur Paroi a deux fentes Lfonde passe simultanement par les deux trous et se diffracte. Un point de lfecran est donc atteint depuis deux sources differentes. Que voit-on sur lfecran ? On note des franges minces et nettes qui sont des franges dfinterference. Comment expliquer cela ? Placons-nous en un point P de lfecran. Ce point capte lfonde 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 lfonde recue depuis F1 et lfonde recue depuis F2. Selon la position du point P, les ondes peuvent sfamplifier ce qui conduit aux franges claires les plus atteintes. Cfest ce qufil 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 sfannuler ce qui correspond aux franges sombres (rien nfest capte). Cfest le cas au point de la configuration ci-dessous. En ce nouveau point P une sinusoide presente une crete alors que lfautre 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 sfajoutent 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 sfannulent pour donner f (t) = f1(t)+f2(t) = 0. Que se passe-t-il si on realise lfexperience a deux fentes avec un corpuscule (par exemple en envoyant une multitude de petites billes) au lieu dfune 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 lfecran ? Lfecran est uniformement atteint. Il nfy a pas de phenomene dfinterference puisque une bille ne passe que par un seul trou. Experience quantique a deux fentes. Voici lfexperience 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 lfon obtient a lfecran au fur et a mesure des lancers (ici des electrons). Nombre dfelectrons captes (a) 11 ; (b) 200, (c) 6000, (d) 40 000, (e) 140 000. On observe des franges dfinterference alors qufon a envoye les particules une par une ! Ces particules sont bien des corpuscules puisque qufon les envoie une par une et on peut meme les compter. Mais les franges dfinterference 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 : cfest la á dualite onde/corpuscule â. Mesure. Si on reprend lfexperience 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 lfetat quantique et la particule perd ses caracteristiques quantiques. Le fait de rajouter une mesure entraine que ce nfest pas du tout la meme experience qufauparavant. Le chat de Schrodinger. Dans le monde dans lequel nous vivons les objets sont á gros â et leur appliquer des proprietes quantiques nfa pas trop de sens. Cfest pourtant ce que lfon fait avec lfexperience de pensee du chat de Schrodinger. Dans une boite recouverte dfun 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 dfune heure, cfest-a-dire qufau bout dfune heure, il y a une chance sur deux qufelle se soit desintegree. Question : au bout dfune heure le chat est-il mort ou vivant ? Ou bien moitie-mort et moitie-vivant ? En fait, tant que le voile noir nfest pas leve le chat nfest 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 lfetat du chat certain. Cfest assez perturbant ! On retient que la mecanique quantique est une theorie qui sfapplique aux particules de petite taille, et souvent sur de courtes periodes. 3. Fonction dfonde et equation de Schrodinger 3.1. Fonction dfonde Fonction dfonde. Le mouvement dfune 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 nfest plus valide en physique quantique. En physique quantique on associe a une particule une fonction dfonde ƒµ : ƒµ(x, y, z, t) : R 4 .¨C. Cette fonction depend du point de lfespace (x, y, z) et du temps t ; elle est a valeurs complexes et nfa pas dfinterpretation physique. Probabilite. Par contre la fonction dfonde permet de determiner la probabilite de la particule dfetre 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 lfon ne connait pas la position de la particule. Ce nfest pas un defaut ou un manque de precision mais la base de la mecanique quantique. La notion de position nfa pas de sens avant la mesure. On pourrait dire que la particule est á partout â, et que cfest la mesure qui determine une position (x, y, z). Enfin, meme si la particule peut etre mesuree a nfimporte quelle position, certaines positions sont cependant plus probables que dfautres. Voici un exemple de repartition des mesures dfune position x (on se limite a la mesure de la seule coordonnee x) obtenue en repetant lfexperience : je prepare la particule, puis je mesure la position x. On note que certaines positions sont plus frequentes que dfautres. x nombre dfevenements Mathematiquement les resultats sfinterpretent avec la densite de probabilite P(x) = |ƒµ(x)|2 qui decrit la repartition probable. Lfaire 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 dfune particule classique est le principe fondamental de la mecanique : X .F = m.a. La somme des forces est egale a la masse multipliee par lfacceleration. Lfacceleration 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 nfobtient 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 nfest pas toujours possible), on trouve la position x. Qufen est-il pour la mecanique quantique ? On a vu que le comportement dfune particule est regi par sa fonction dfonde ƒµ(x, y, z, t). La loi quantique fondamentale qui regit le comportement dfune particule libre est donnee par lfequation 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 dfonde, . Ý ƒµ Ý t est la derivee de la fonction dfonde par rapport au temps (on parle de derivee partielle par rapport a t), . ƒ¢ƒµ est le Laplacien de ƒµ, cfest la somme des derivees partielles secondes en x, y et z : ƒ¢ƒµ = Ý 2ƒµ Ý x2 + Ý 2ƒµ Ý y2 + Ý 2ƒµ Ý z2 . Lfequation 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 lfequation 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 dfonde, solutions de lfequation 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, cfest plus complique. Si on note P1 = |ƒµ1|2 et P2 = |ƒµ2|2 les densites de probabilite associees aux deux fonctions dfonde 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 nfest 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 dfinterference entre les deux fonctions dfondes. 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 lfordinateur 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 dfelectrons pieges. Les electrons possedent un mouvement cinetique interne. On dit qufun electron á tourne sur lui-meme â. Le moment cinetique peut prendre une infinite de valeurs. Mais lorsque lfon mesure ce moment cinetique on nfobtient 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 dfun qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. avec |ƒ¿|2 + |ƒÀ|2 = 1. PHYSIQUE QUANTIQUE 83 . Ions pieges. Les ions dfatomes 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 dfenergie, ils sont egalement manipules par des lasers. . Les supra-conducteurs sur silicium. Lfobjet quantique est dans ce cas un courant obtenu dans une jonction Josephson constituee par des oxydes dfaluminium sur des puces de silicium. Lfetat 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 dfonde. Avant la mesure, la fonction dfonde dfune particule peut conduire a plusieurs mesures possibles (si on repete lfexperience 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 dfonde est changee definitivement, on parle de la á reduction du paquet dfonde â, et ne conduit plus qufa un seul resultat : si on effectue une seconde mesure immediatement apres, on obtient le meme resultat. La theorie de la decoherence quantique tente dfexpliquer le passage du monde quantique a la physique classique. Un etat quantique ne reste á coherent â que sfil nfest 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 dfetat 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 dfavoir 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 sfil nfa pas ouvert son enveloppe. Les deux cartes sont liees : on parle dfintrication. La mesure de lfun fait disparaitre les probabilites pour les deux cartes. Alice Bob Un des principes de la theorie de la relativite est qufaucune particule, aucun signal, aucune information ne peut voyager plus vite que la lumiere. Ce principe est-il viole ici ? Des qufAlice decouvre que son enveloppe contient la carte rouge, elle a automatiquement la certitude que Bob a en sa possession la carte bleue. Ce nfest 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 qufAlice lui telephone et lui dise qufelle a eu la carte rouge, ainsi Bob saura qufil a la carte bleue. Mais aucun principe nfest viole car la vitesse de transmission telephonique dfune 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 lfon fait cogner lfune contre lfautre au point O. Lfune part vers Alice et lfautre 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 lfun de lfautre 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 lfexperience en lumiere laser a une et deux fentes, Jordgette, CC BY-SA 3.0, . pour les photos de lfinterference 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 dfun point A a un point B. 1. Teleportation 1.1. Principe Alice possede un qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1. et souhaite le transmettre a Bob. Cfest possible grace a la teleportation quantique ! Cfest un protocole simple ayant des similarites avec le codage super-dense (voir le chapitre á Decouverte de lfinformatique quantique â). Plus en details : . Alice possede un 1-qubit |ƒÕ. = ƒ¿|0. + ƒÀ |1.. . On a prepare un 2-qubit a lfetat 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 â, cfest-a-dire qufil est reconstitue par Bob. Ce nfest physiquement pas la particule originale mais une copie ; seuls deux bits classiques sont envoyes dfAlice a Bob. . Contrairement au codage super-dense dans lequel Bob obtient a la fin un message dfAlice limite a quatre possibilites, avec la teleportation quantique Bob obtient dfAlice 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 nfest pas un á copier-coller â. En effet, Alice effectue une mesure sur |ƒÕ. et nfa donc plus ce qubit en sa possession en fin de protocole. . La teleportation quantique nfest pas immediate (et ne depasse pas la vitesse de la lumiere) car il faut qufAlice transmette a Bob une information classique (deux bits classiques). . Le point-cle est lfintrication des deux qubits de lfetat 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 dfune porte I X Z XZ |ƒÕ. |0. |0. 1. Alice a un qubit |ƒÕ. 2. Preparation de lfetat 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 lfetat de Bell. Lfetat de Bell ƒ³+ peut etre prepare par une tierce personne. Nous avons deja vu comment preparer cet etat (voir le chapitre á Decouverte de lfinformatique quantique â) et nous y reviendrons. A partir de lfetat |0.0. on applique le circuit suivant, compose dfune porte de Hadamard, suivie dfune 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 dfAlice. 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 dfune 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, dfune part le troisieme qubit de |ƒÓ., que lfon 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 lfidentite 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 dfune 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 dfAlice a teleporter est un 1-qubit |ƒÕ. = ƒ¿|0.+ƒÀ |1. avec ƒ¿,ƒÀ ¸ C et |ƒ¿|2+|ƒÀ|2 = 1. . Lfetat de Bell est ƒ³+ = 1 p 2 (|0.0. + |1.1.). Cfest un 2-qubit (voir plus loin pour plus de details). . Lfetat total compose de |ƒÕ. et ƒ³+ est le 3-qubit |ƒÓ. = |ƒÕ. . ƒ³+ que lfon 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 lfetat du second qubit en fonction de lfetat 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 lfetat 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 dfun 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 dfun 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. qufil faut normaliser en tant que 1-qubit, cfest-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 dfun 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., cfest 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., cfest 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 dfun 3-qubit Le principe est le meme si on effectue la mesure partielle des deux premiers qubits dfun 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 nfest 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 lfetat de Bell ƒ³+ a lfaide dfune porte de Hadamard H suivie dfune 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 nfimporte quel 2-qubit |ƒÕ. de norme 1 sfecrit 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 nfimporte quel 2-qubit |ƒÕ. de norme 1 sfecrit de facon unique : |ƒÕ. = ƒ¿Œ ƒ³+ + ƒÀŒ ƒµ+ + ƒÁŒ ƒ³. + ƒÂŒ ƒµ. avec |ƒ¿Œ|2 + |ƒÀŒ|2 + |ƒÁŒ|2 + |ƒÂŒ|2 = 1. Comment passer dfune base a une autre ? Si |ƒÕ. = ƒ¿Œ ƒ³+ + ƒÀŒ ƒµ+ + ƒÁŒ ƒ³. + ƒÂŒ ƒµ. , alors on substitue TELEPORTATION QUANTIQUE 92 ƒ³+ , ƒµ+ ,. . . a lfaide de lfegalite ƒ³+ = 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 lfautre 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 dfune base a une autre est celle des circuits : Base canonique H . / / Base de Bell Cfest-a-dire, le circuit ci-dessus envoie |0.0. sur ƒ³+ , |0.1. sfenvoie sur ƒµ+ , |1.0. sfenvoie sur ƒ³. , |1.1. sfenvoie sur ƒµ. . Pour le circuit ci-dessous, cfest exactement lfinverse : ƒ³+ sfenvoie 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 dfun 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 cfest |ƒÕ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 lfaide 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 qufelle est basee sur la mesure partielle de lfetat |ƒÕ. . ƒ³+ dans la base de Bell. On rappelle : . le qubit a teleporter est |ƒÕ. = ƒ¿|0. + ƒÀ |1., . lfetat 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 nfa qufa 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 lfinformatique 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, lfordinateur 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 lfinformatique classique ne vont pas miraculeusement etre plus rapides grace a lfinformatique quantique. Nous allons voir dans cette partie des problemes que lfinformatique quantique resout beaucoup mieux que les algorithmes classiques. Le but final est de comprendre lfalgorithme quantique de Shor qui permet la factorisation rapide des entiers. Nous commencons par etudier une version simple de lfalgorithme de Deutsch.Jozsa afin de nous familiariser avec les objets, les techniques et les types dfalgorithmes que nous decouvrirons dans cette seconde partie du livre. 1. Objectifs 1.1. Motivation Lfalgorithme de Deutsch.Jozsa nfest pas tres utile ! Il permet de decider si une fonction est constante ou equilibree. Cependant cet algorithme est tres interessant car il prouve que lfinformatique quantique permet de faire des calculs plus rapidement qufavec un ordinateur classique. Lfalgorithme complet (avec n variables) sera etudie plus loin dans le chapitre á Algorithme de Deutsch. Jozsa â. Dans ce chapitre dfintroduction, on se contente de presenter lfalgorithme pour les fonctions les plus simples : celles ayant une, puis deux variables. 1.2. Fonction a etudier On commence par le cas des fonctions dfune seule variable. Lfensemble de depart et dfarrivee est {0,1}. Considerons une telle fonction : f : {0, 1} .¨{0, 1} Il y a en fait 4 fonctions possibles que lfon 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 dfevaluations 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 dfune fonction de n variables alors la complexite classique est dfordre 2n alors que lfalgorithme quantique reste de complexite 1. Lfamelioration est donc exponentielle ! 2. Circuit quantique 2.1. Circuit Lfalgorithme quantique est fourni par le circuit quantique ci-dessous qui repond au probleme a lfaide dfune 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. Lforacle nous donne lfaction 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 lforacle. Premiere ligne. En entree lforacle recoit le bit x et en sortie il renvoie cette meme valeur x. UN PREMIER ALGORITHME QUANTIQUE 98 Seconde ligne. En entree lforacle 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. Lfaddition á . â est lfaddition 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, lforacle 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. Lforacle 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, cfest 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 lfevolution 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 lfecriture 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 lforacle. |ƒÕ2. ß 0.(0 . f (0)) . 0.(1 . f (0)) + 1.(0 . f (1)) . 1.(1 . f (1)) En effet, lforacle envoie x sur x pour la premiere ligne et y sur y . f (x) pour la seconde. Attention á . â est lfaddition binaire et doit etre effectuee en priorite. Il ne faut pas la confondre avec lfaddition de qubits, notee á + â : x.( y . f (x)) nfa 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 dfobtenir +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 lforacle 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 lfon 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 lforacle associe a f nfa ete appele qufune seule fois. 2.4. Realisation des oracles Cfest a celui qui utilise lfalgorithme de fournir lforacle, sorte de boite noire, utilisee par lfalgorithme. Voyons quel circuit quantique permet de realiser lforacle Of pour chacune des quatre possibilites de la fonction f . Notons au prealable que x sfenvoie sur x, donc pour la premiere ligne quantique il nfy a rien a faire. Fonction constante egale a 0 f0  0 7¨ 0 1 7¨ 0 Comme y . f (x) = y . 0 = y alors lforacle envoie y sur y. Il nfy 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 lforacle envoie y sur NOT( y), que lfon 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, cfest donc y si x = 0 et NOT( y) si x = 1. Cfest exactement lfaction dfune 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 sfinteresse qufa 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 dfetre 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 nfest 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 lfalgorithme 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, cfest 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 lfune des deux categories ci-dessus. Le circuit quantique nfeffectue qufune seule evaluation de f (plus precisement qufun seul appel au circuit de lforacle) 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 dfevaluer 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 dfune premiere lecture, dfune part ils sont similaires a ceux pour une variable (mais un peu plus compliques) et dfautre part les calculs seront faits dans le cas general dfune 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 lfecriture 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 lforacle 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 qufil nfy a pas dfautres 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. nfa 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 qufelles 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 lfaction sur la seconde ligne est en fait y . x ou á . â est lfaddition binaire (et ne doit pas etre confondue avec lfaddition 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 lfa dit, cette porte echange deux qubits : |ƒÓ. / |ƒÕ. |ƒÕ. / |ƒÓ. PORTES QUANTIQUES 105 Exercice. Calculer lfimage 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 qufune 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 lfordre de 3 qubits, cfest-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 lfordre de n qubits, cfest-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 dfaugmenter 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 dfentree. Ceci nfest pas vrai : / |ƒÓ. |ƒÓ. / |ƒÓ. Dfailleurs, une telle porte ne peut pas exister ! Ce sera prouve par le theoreme de non-clonage quantique en fin de chapitre. Exercice. Montrer qufune porte FANOUT peut etre realisee a partir dfune 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 (cfest-a-dire NOT) au troisieme qubit. . . Voici lfaction dfune 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 qufune porte Toffoli permet de realiser une porte CNOT. Il suffit dfimposer 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 lfaide dfun ordinateur (voir le chapitre á Utiliser un ordinateur quantique (avec Qiskit) â). On rappelle qufune 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 dfuniversalite Theoreme 1. La porte de Toffoli est universelle : nfimporte 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 lfajout de lignes auxiliaires. Preuve. . On sait que nfimporte 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 lfequivalent dfune porte NAND a lfaide dfune porte de Toffoli en lfinitialisant avec un 1 sur la troisieme ligne. Lfentree 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 lfensemble des entiers modulo n. On peut representer ce groupe par lfensemble {0, 1, . . . , n . 1}, avec la convention que n ß 0, n + 1 ß 1,. . . La loi de ce groupe est lfaddition. On a deja rencontre le groupe Z/2Z (cas n = 2) qui est lfensemble {0,1} muni de lfaddition 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. Lforacle dfune fonction f est un circuit quantique dont on explicite seulement lfentree et la sortie (qui depend de f ). Cfest une sorte de boite noire, car nous nfavons pas besoin de connaitre les details du circuit qui realise un oracle. Cas f : Z/2Z¨Z/2Z. Cfest 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 lfentree de lforacle 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) ; cfest donc y si f (x) = 0 et NON( y) si f (x) = 1. Ainsi lforacle 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 lfinstant nous generalisons lforacle au cas dfautres fonctions. Cas f : Z/nZ¨Z/2Z. Cette situation correspondra a lfalgorithme de Grover. On fixe n . 2 et on considere une fonction quelconque f : Z/nZ¨Z/2Z que lfon peut aussi voir comme une fonction f : {0, 1, . . . , n . 1}¨{0, 1}. La transformation de lforacle, 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 lfalgorithme de Deutsch.Jozsa. On fixe k . 1 et on considere une fonction quelconque f : .. Z/2Z k ¨Z/2Z que lfon peut aussi voir comme une fonction f : {0, 1}k ¨{0, 1}. La transformation de lforacle, 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 dfaction de lforacle : 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 lforacle au cas dfune fonction f : E ¨ EŒ pour lequel lforacle 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. Lforacle est bijectif Quel peut etre lfinteret dfun oracle ? Plus precisement quel est lfavantage de la fonction F par rapport a f ? Considerons une fonction f : E ¨Z/2Z quelconque. En particulier elle nfest pas supposee bijective, par contre la fonction F associee a lforacle va lfetre. 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)). Lfapplication F est bijective. PORTES QUANTIQUES 110 2.3. Transformation quantique Considerons le cas dfune fonction f : (Z/2Z)k ¨ Z/2Z. Lforacle 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) sfetend 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 sfetend 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 lfensemble 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 lfexemple 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 lforacle Nous allons calculer la matrice de lforacle, cfest-a-dire la matrice de lfapplication .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 lfimage 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 lfapplication 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. Cfest donc la negation : f (x) = NOT(x) = 1 . x. Decrivons lforacle de f . x Of x / y y.f (x) / Lfapplication 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 lforacle 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 lforacle 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 lfimage par lforacle de chacun des vecteurs de la base des 3-qubits : |0.0.0., |0.0.1.,. . .,|1.1.1.. 2. En deduire que lforacle associe a ce f est equivalent a une porte de Toffoli, en verifiant que le resultat est le meme que lfaction de la porte de Toffoli sur les 3-qubits de base. 3. Verifier que lfapplication F (ou .F) est bijective alors que f ne lfest pas. 4. Calculer la matrice de lforacle (et retrouver la matrice de la porte de Toffoli). 3. Matrices unitaires Nous reprenons lfetude 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 : aua2 = .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 lfadjoint : si |ƒÓ. = 0 B@ x1 ... xn 1 CA alors .ƒÓ| = |ƒÓ.. = .. x. 1 E E E x. n  . . Ainsi lfecriture .E|E. designe de facon coherente a la fois le produit scalaire hermitien et la multiplication matricielle dfun 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 . Dfautre 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 lfensemble des matrices unitaires. Si A est une matrice unitaire alors on a A.1 = A. et AA. = I. Proposition 2. Lfensemble 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 aeia = 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 : aAua = aua 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) aAua2 = .Au|Au. = .u|u. = aua2 . (iii) =Ë (iv) Notons fi = Aei . Alors afia = aeia = 1. Soit i .= j, comme aei + eja2 = 2 alors afi + f ja2 = aA(ei + ej)a2 = aei + eja2 = 2. Or afi + f ja2 = fi + f j fi + f j = . fi | fi. + fi f j + f j fi + f j f j = afia2 + fi f j + fi f j . + af ja2 = afia2 + 2Re .. fi f j  + af ja2 Comme afi + f ja2 = 2, afia2 = 1 et af ja2 = 1 alors 2Re .. fi f j  = 0. De meme afi + i f ja2 = afia2 . 2Im .. fi f j  + af ja2 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) lfest 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 lfentree |ƒÕ. 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. Cfest une difference majeure par rapport a une porte de lfinformatique classique (par exemple une porte AND nfest 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 lfetude de nfimporte quel circuit quantique se ramene a lfetude de deux types de portes et a leur composition. Le defaut de ce resultat, cfest que la realisation se fait a lfaide 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 cfest que lfon nfobtient pas exactement le circuit voulu, mais une approximation. Theoreme 3. Toute porte quantique a n-qubits peut etre approchee dfaussi pres que lfon veut par un circuit ne comportant que des portes H de Hadamard, des portes T (dite á porte ƒÎ8 â) et des portes CNOT. On rappelle qufune 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 qufon 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 nfest pas le cas pour un ordinateur quantique. En fait on peut copier un qubit, mais en creant la copie on perd lforiginal. On parle ainsi de á non-clonage quantique â. 4.1. Non-clonage des 1-qubits Theoreme 4. Il nfexiste pas de porte quantique qui realise le clonage des 1-qubits, cfest-a-dire telle que pour tout 1-qubit |ƒÕ. on ait : |ƒÕ. A / |ƒÕ. |0. / |ƒÕ. Demonstration. Raisonnons par lfabsurde et supposons que le clonage quantique soit possible. Cela signifie qufil existe une porte quantique qui realise ce clonage, cfest-a-dire qufil 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, cfest 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.. . Dfune 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) . Dfautre 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 lfequation (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 nfexiste pas de porte quantique qui realise le clonage dfun n-qubit, cfest-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 lfabsurde en supposant qufil 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 dfune part A ƒÕ2.0.n = 1 p 2 .. A 0.0.n + A e1.0.n  et dfautre part A ƒÕ2.0.n = |ƒÕ2.ƒÕ2. . Algorithme de Deutsch.Jozsa Chapitre 10 Video ¡ partie 10. Algorithme de DeutschJozsa Nous expliquons et prouvons lfalgorithme de Deutsch.Jozsa dans le cas general. Cfest notre premier algorithme quantique qui supplante les algorithmes classiques et cfest aussi lfoccasion dfintroduire 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 lfon peut aussi voir comme une fonction f : {0, 1}n ¨{0, 1}. Il y a 2(2n) fonctions differentes possibles mais nous nfallons 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 sfil 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 qufelle est soit constante, soit equilibree. Cfest 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 dfevaluations f (x1, . . . , xn) effectuees. Avec un ordinateur classique, la complexite du meilleur algorithme est exponentielle, dfordre O(2n). Notons qufil y a en tout 2n = Card((Z/2Z)n) elements dans lfensemble 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 lfon 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 sfannule 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 lfalgorithme 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 dfune porte de Hadamard. Ensuite on applique lforacle associe a f . Enfin, on applique de nouveau une transformation de Hadamard sur les n premieres lignes, suivi dfune mesure uniquement sur les n premieres lignes. Le circuit nfest execute qufune seule fois, autrement dit lfalgorithme quantique est de complexite 1 car la fonction associee a lforacle Of nfest evaluee qufune seule fois. Lfalgorithme 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 lfalgorithme quantique est donc O(1). On a vu que lfalgorithme classique est de complexite exponentielle. En effet O(2n.1) = O(2n) et 2n = en ln 2. Lfalgorithme quantique est donc une amelioration exponentielle de lfalgorithme classique ! Bien sur le probleme resolu ici est artificiel et assez peu interessant mais nous avons maintenant la preuve que lfinformatique quantique peut aller plus vite que lfinformatique classique. On rappelle que lforacle 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 nfest pas pratique pour les calculs generaux et les preuves. En particulier comment noter un n-qubit quelconque de cette base ? Nous allons introduire lfecriture dfun n-qubit de base par un seul entier : cfest tout simplement lfoperation inverse de lfecriture binaire. On fixe un entier n . 1. Soit 0 . k . 2n . 1. Notons k lfecriture binaire de lfentier k sur n bits. Lfecriture entiere k designe le n-qubit de la base canonique associe a lfecriture 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 dfun n-qubit |ƒÕ. est lfapplication dfune 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 (lfordre de ces portes nfa pas dfimportance). 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 lfecriture binaire k = k1.k2 . . . kn et lfecriture binaire . = .1..2 . . . .n (avec ki , .i ¸ {0,1}) alors k . . = k1.1 . k2.2 . E E E . kn.n ¸ {0, 1}. Cfest 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 qufen presence dfun 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 lfalgorithme 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 sfagit 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 sfagit 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 cfest qufelle est equilibree. Algorithme de Grover Chapitre 11 Video ¡ partie 11. Algorithme de Grover Lfalgorithme de Grover est un algorithme de recherche dfun 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. Lfalgorithme de Grover ne fournit pas un resultat sur a 100 %, mais une reponse qui a de grandes chances dfetre la bonne. 1. Recherche dans une liste 1.1. Idee de lfalgorithme Expliquons lfalgorithme 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 sfagit de distinguer un rang parmi les autres, ici le rang du rectangle rouge. On considere que les hauteurs des rectangles representent les coefficients dfun qubit : ici il y a 8 coefficients pour lfexpression dfun 3-qubit comme somme des 8 etats de base. Une mesure de ce qubit ne donnerait aucune information, chacun des rangs sfobtenant 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, sfil 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 dfobtenir lfetat de base correspondant au rectangle rouge et donc dfobtenir le rang souhaite. Lfalgorithme de Grover est lfiteration 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 dfune liste et on nous donne un element. Il sfagit de trouver sfil est present dans la liste et de determiner son rang. Le probleme est donc : trouver i tel que liste[i] = mon-element. Supposons dfabord que les elements sont classes par ordre (par exemple les mots dfun dictionnaire par ordre alphabetique, ou bien les numeros de cartes dfetudiants 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 lfelement cherche est avant ou apres et on recommence). Cfest 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 lfelement au rang i et lfelement recherche. Par exemple si N = 1024 = 210, alors il faut environ moins de 10 comparaisons pour trouver lfelement 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 nfest pas possible dfordonner 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 nfy a pas dfautre 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 lfelement cherche est le dernier a etre teste). En moyenne, on trouvera lfelement cherche au bout de N2 tests, mais cela nfameliore pas lfordre de grandeur de la complexite qui est donc O(N) (car O(N) = O(N2 )). 1.4. Complexite de lfalgorithme de Grover Lfalgorithme de Grover qui sera etudie dans ce chapitre a une complexite dfordre O( p N), cfest donc un gros progres par rapport aux algorithmes classiques. Par exemple, dans une liste de N = 1024 personnes, il suffira dfenviron 30 tests ; pour une liste dfun milliard de donnees, la complexite est dfenviron 30 000. Cfest evidemment beaucoup plus que lfalgorithme de la dichotomie sur une liste ordonnee, mais beaucoup moins que la recherche sequentielle qui est de complexite N. 1.5. Algorithmes probabilistes Lfalgorithme de Grover est rapide mais ne renvoie malheureusement pas toujours le bon resultat ! Cfest un algorithme probabiliste. Lfalgorithme de Grover renvoie le bon resultat dans la plupart des cas (on verra que pour une liste de longueur N, lfalgorithme 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 dfabord, pour certains problemes, ne pas avoir la bonne reponse nfest 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. Dfautre 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 lfalgorithme. Meme un algorithme qui ne donne la bonne reponse qufune 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 qufun fichier telecharge nfa pas ete compromis (checksum). Dfautres 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 lfexemple dfune fonction de hachage qui a un entier k code sur n bits (la cle) associe un entier h(k) (le hash). Jfutilise 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 nfa pas dfautre choix que de tester toutes les cles possibles 0.0.0.0.0, puis 0.0.0.0.1,. . . afin dfobtenir 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 lfinformatique classique. Mais trouver cette cle revient a trouver le bon element parmi une liste de N = 2n elements, ce que fait lfalgorithme de Grover avec une complexite dfordre O( p N), cfest-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 lfordre de N = 2n tests et lfalgorithme quantique seulement p N = 2n/2. Si la cle est doublee a une longueur 2n, alors lfalgorithme 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 lfalgorithme 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, cfest-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 lfaide dfune 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 sfagit donc de trouver lfantecedent 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 lfecriture 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 lforacle Of associe a la fonction f . Pour x ¸ Z/NZ et y ¸ Z/2Z, lforacle realise une fonction F(x, y) = (x, y . f (x)). On prefere ecrire lfentier x a lfaide 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 lfaddition 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 ? Lfentree sur la derniere ligne avant lforacle 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 lforacle permet de detecter si lfentier en entree est k0 ou pas. Malheureusement nous nfavons fait aucun progres car il faut de nouveau tester tous les k de 0 a N . 1 pour pouvoir conclure. Cfest la qufentre en jeu la magie de lfinformatique 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 lfalgorithme de Grover qui permet de comprendre lfessentiel 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 sfinteresse dfabord 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 lforacle ! 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 lforacle fait apparaitre un signe á . â devant le terme correspond a k0. Ainsi la sortie de lforacle 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 lforacle, on arrive a distinguer le terme de rang k0 des autres termes. Lfidee essentielle est ici. Cependant on nfa 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 lforacle 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. Cfest une partie assez technique, mais on comprend mieux les calculs a lfaide dfune interpretation geometrique un peu plus sophistiquee que celle de lfintroduction de ce chapitre. 3.1. Symetrie de lforacle Que fait lforacle sur les n-qubits des n premieres lignes ? Lforacle 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 ÷ dfun cote et regrouper tous les autres qubits de base, ainsi nfimporte quel ALGORITHME DE GROVER 131 n-qubit |ƒÓ. sfecrit : |ƒÓ. = ƒ¿ k0 ÷ + X k.=k0 ƒ¿k k Lfaction de lforacle Of donne : Of |ƒÓ. = .ƒ¿ k0 ÷ + X k.=k0 ƒ¿k k Geometriquement cette transformation est une symetrie par rapport a lfaxe forme des qubits de base autres que k0 ÷ que lfon regroupe schematiquement par lfaxe |reste. ci-dessous. Sur la figure, la transformation est representee comme une symetrie par rapport a une droite (mais en realite cfest 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 cfest 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 dfhabitude 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 lfaxe 0 (attention les axes ne sont pas les memes que dans la figure precedente). 0 |reste. |ƒÓ. S0 |ƒÓ. Voici lfecriture algebrique de S0. ALGORITHME DE GROVER 132 Lemme 1. S0 = 2 0 0 . I I designe lfapplication identite. Ainsi cette formule signifie que pour un qubit |ƒÓ. on a : S0 |ƒÓ. = 2 0 0 ƒÓ . |ƒÓ. Lfecriture 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 nfimporte 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 lfaxe 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 lfimage du qubit |0 . . . 0. par la transformation de Hadamard : |ƒÕH. = H.n 0 . Proposition 1. La transformation SƒÕH est definie par lfune des caracterisations equivalentes suivantes : (i) SƒÕH = 2 |ƒÕH. .ƒÕH| . I, cfest-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 lfaxe dirige par |ƒÕH.. |ƒÕH. |ƒÓ. SƒÕH |ƒÓ. 3.5. Transformation de Grover La transformation de Grover est lfapplication G = SƒÕH . Of . |ƒÓ. Of |ƒÓ. G |ƒÓ. = SƒÕH (Of |ƒÓ.) Of SƒÕH G Nous allons voir quelle est lfaction 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 lfindice k0, qui est le rang que lfon 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 lfaide dfune ecriture trigonometrique : |ƒÕH. = cos .. ƒÆ 2  |ƒÔ. + sin .. ƒÆ 2  k0 ÷ ou ƒÆ 2 est lfangle entre |ƒÔ. et |ƒÕH.. |ƒÔ. k0 ÷ |ƒÕH. ƒÆ 2 cos .. ƒÆ 2  sin .. ƒÆ 2  Comme dans la pratique N = 2n est grand, alors lfangle ƒÆ 2 est petit. Pour plus de lisibilite le dessin ne reflete pas a quel point ƒÆ 2 est petit. Ainsi ƒÆ 2 est lfangle defini par : cos .. ƒÆ 2  = vt N . 1 N et sin .. ƒÆ 2  = 1 p N . Proposition 2. La transformation de Grover est une rotation dfangle ƒÆ (centree a lforigine). Autrement dit, pour tout qubit |ƒÓ., G |ƒÓ. est obtenu a partir de |ƒÓ., par une rotation dfangle ƒÆ (encore une fois lfangle ƒÆ 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, lfangle ƒÆ de cette rotation etant le double de lfangle 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 dfaxe |ƒÔ., . la symetrie SƒÕH dfaxe |ƒÕH., . lfangle entre |ƒÔ. et |ƒÕH. est ƒÆ 2 . Ainsi G = SƒÕH . Of est la rotation dfangle ƒÆ (centree a lforigine). |ƒÔ. k0 ÷ |ƒÕH. ƒÆ 2 |ƒÓ. G |ƒÓ. ƒÆ 3.6. Idee de lfalgorithme Le but de lfalgorithme de Grover est de determiner le rang k0. Ce rang est reperable apres lfapplication de lforacle 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 nfest pas mesurable. Souvenez-vous que nous nfavons pas acces aux coefficients dfun qubit. Voici la seule certitude qufune mesure puisse nous donner : si je sais par avance qufun qubit |ƒÓ. est un des qubits de base |0 . . . 0.0., |0 . . . 0.1.,. . ., |1 . . . 1.1., alors la mesure de ce n-qubit permet dfidentifier ce qubit de base |ƒÓ.. Prenons lfexemple des 1-qubits : si mon qubit |ƒÓ. est |0. ou |1., alors une mesure permet dfidentifier 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 qufa effectuer une mesure pour obtenir (presque a coup sur) la valeur de k0. ALGORITHME DE GROVER 136 Idee de lfalgorithme de Grover. . La transformation de Hadamard envoie lfetat 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 lfaxe |ƒÔ.. (Lfangle ƒÆ 2 est petit car N = 2n est grand.) . La transformation de Grover est une rotation dfangle ƒÆ et conduit donc au qubit G |ƒÕH. qui forme un angle ƒÆ 2 + ƒÆ avec lfaxe |ƒÔ.. . On itere la transformation de Grover jusqufa obtenir un qubit G. |ƒÕH. qui forme un angle dfenviron ƒÎ2 avec lfaxe |ƒÔ.. (Ce nombre dfiterations . 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 dferreur tres petite, dfordre 4N ). 3.7. Portes quantiques La transformation de Grover est la composition de lforacle Of et de la transformation SƒÕH . La transformation de lforacle 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 dfabord rappelons lfaction 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 qufune porte CNOT : si lfentree de la premiere ligne est |0., alors la seconde ligne est inchangee, par contre si lfentree 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 dfappliquer 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 dfune premiere lecture. Il sfagit de prouver la proposition 1 enoncee auparavant et que lfon rappelle ci-dessous. Proposition 3. La transformation SƒÕH est definie par lfune des caracterisations equivalentes suivantes : (i) SƒÕH = 2 |ƒÕH. .ƒÕH| . I, cfest-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., cfest-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 dfune part que |ƒÕH. = H.n 0 , mais H.n est unitaire alors (H.n).1 = (H.n). = H.n, dfou 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 lfetat |ƒÕH. est la superposition de tous les etats de la base canonique, donc il sfecrit 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 lfalgorithme 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 lforacle, suivie dfune 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 lfalgorithme 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 lfalgorithme est dfordre ., donc dfordre O( p N). La mesure finale est la mesure dfun 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 sfinteresse 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 lfon recrit sous forme trigonometrique : |ƒÕH. = cos .. ƒÆ 2  |ƒÔ. + sin .. ƒÆ 2  k0 ÷ ou ƒÆ 2 est lfangle 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 dfangle ƒÆ. Donc apres . iterations on obtient le n-qubit G. |ƒÕH. = cos(ƒÆ.) |ƒÔ. + sin(ƒÆ.) k0 ÷ avec ƒÆ. = ƒÆ 2 + .ƒÆ. On veut ƒÆ. . ƒÎ2 , cfest-a-dire ƒÆ 2 + .ƒÆ . ƒÎ2 . Ainsi . est defini comme lfentier le plus proche de ƒÎ 2ƒÆ . 1 2 . |ƒÔ. k0 ÷ |ƒÕH. ƒÆ 2 G |ƒÕH. G. |ƒÕH. ƒÆ Donnons une approximation du nombre . dfiterations 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 dfidentifier 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 dfetre mesure en k0 et donc on retrouve le rang cherche k0, mais ce nfest pas une certitude. Avec quelle probabilite obtient-on le resultat correct ? Nous allons calculer cette probabilite dfobtenir le bon resultat. Proposition 4. Lfalgorithme de Grover renvoie le rang correct k0 avec une probabilite superieure a 1 . 4N . Ainsi la probabilite que lfalgorithme renvoie un mauvais resultat est inferieure a 4N . Prenons par exemple n = 10, alors N = 1 2n = 1024 et lfalgorithme fournit le resultat correct dans plus de 99,6% des cas. Demonstration. . Le qubit final obtenu par lfalgorithme de Grover est G. |ƒÕH. = cos(ƒÆ.) |ƒÔ. + sin(ƒÆ.) k0 ÷ . Donc, lors de la mesure, la probabilite dfobtenir la bonne reponse k0 est p = | sin(ƒÆ.)|2. . Nous savons que la transformation de Grover G est une rotation dfangle ƒÆ et nous avons itere cette transformation . fois de facon a construire un angle ƒÆ. = ƒÆ 2 +.ƒÆ le plus proche possible de lfangle ƒÎ2 . Ainsi lfangle ƒÆ. est dans un intervalle dfamplitude ƒÆ 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 lfinegalite 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 . Lfangle ƒÆ 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 lfinegalite 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 lfarithmetique 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 dfarithmetique afin de comprendre plus tard lfalgorithme de Shor qui permet de factoriser rapidement un entier a lfaide dfun ordinateur quantique. 1. Division et pgcd 1.1. Divisibilite Definition. Soient a, b ¸ Z avec b non nul. On dit que b divise a sfil 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 . Lfentier 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 dfEuclide Lfalgorithme dfEuclide 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. Lfalgorithme dfEuclide est lfun des plus anciens algorithmes mais il est cependant tres efficace ! Le nombre dfetapes dans lfalgorithme est assez faible : si a et b sfecrivent (en base 10) avec moins de n chiffres, alors il y a au plus 5n etapes dans lfalgorithme dfEuclide. 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 (cfest le lemme de Gauss, sachant qufon 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 nfest 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 dfEuclide nous dit qufil y a une infinite de nombres premiers. . Par definition, 1 nfest 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 lfordre 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 nfest 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 dfEratosthene. On peut aussi dresser une longue liste de nombres premiers, au dela de lfentier n. Lfavantage est qufil suffit alors de verifier si lfentier n est dans la liste pour savoir sfil est premier. Mais le crible est une methode lente et ne permet pas dfobtenir 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) (cfest tres facile grace a lfexponentiation rapide, voir plus loin). . Si an.1 .ß 1 (mod n) alors on est sur que n nfest pas un nombre premier. . Si an.1 ß 1 (mod n) alors on dit que n valide le test de Fermat pour lfentier a et qufil 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 lfexceptions 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 lfentier n + 2. . . Algorithmes modernes. Une amelioration du test de Fermat est lfalgorithme 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 lfalgorithme nfest pas tres utile, cfest une grande avancee theorique. Lfalgorithme est base sur le fait que si p est un nombre premier alors on a lfegalite 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, qufon peut decider qufun entier nfest 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 jusqufa 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 dfavoir une liste des premiers nombres premiers (ce qui est long). Cfest donc une methode efficace uniquement pour trouver les petits diviseurs. ARITHMETIQUE 147 Facteurs de Fermat. On peut essayer dfexprimer n comme difference de deux carres, on obtient alors une factorisation. En effet, si cfest 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 dfun 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 cfest le cas, on obtient une factorisation (a . b)(a + b), sinon on recommence avec a +1. Cfest une methode efficace si les facteurs premiers sont grands, donc cette methode est complementaire de la precedente. Algorithmes modernes. Aucun algorithme connu nfa de complexite polynomiale. Plus precisement, on ne connait pas dfalgorithme de factorisation ayant une complexite polynomiale, mais on ne sait pas non plus prouver qufun tel algorithme nfexiste pas. Le meilleur algorithme connu pour factoriser des grands entiers est lfalgorithme GNFS (pour General Number Field Sieve), sa complexite est environ O(n13 ) (cfest donc une complexite exponentielle par rapport a la taille de n qui est dfordre ln(n)). 3. Congruence modulo n 3.1. Modulo n Definition. Soit n . 1 un entier. On dit a ß b (mod n) sfil 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, sfil existe b ¸ Z tel que a E b ß 1 (mod n). On dit alors que b est lfinverse 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 nfest 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 lfon peut trouver lfinverse de a modulo n a lfaide des coefficients de Bezout u, v. Ces coefficients se calculent a lfaide de lfalgorithme dfEuclide etendu. 3.3. Groupes Pour etre un peu plus theorique, on definit : . .. Z/nZ,+  le groupe additif des entiers modulo n. Cfest un groupe commutatif (a + b ß b + a (mod n)), ayant n elements. Lfelement neutre pour lfaddition est 0, lfinverse dfun element a est .a. . .. (Z/nZ).,~  le groupe des inversibles modulo n. Cfest un groupe multiplicatif, commutatif (a~b ß b~a (mod n)). Son element neutre est 1, lfinverse dfun 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 dfEuler Definition. Soit n . 1. Lfindicatrice dfEuler .(n) est le nombre dfentiers a premiers avec n, tels que 1 . a . n. Une consequence immediate est que .(n) est le nombre dfelements 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 dfEuler Le theoreme dfEuler est une version generalisee du petit theoreme de Fermat. Theoreme 4 (Theoreme dfEuler). 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) } lfensemble des entiers inferieurs a n et premiers avec n (notre entier a est lfun de ces elements et en fait A = (Z/nZ).). Considerons lfapplication 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 lfinverse 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 sfagit 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 qufon 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 nfest pas oblige de calculer toutes les puissances precedentes, mais seulement celles dont lfexposant k est une puissance de 2. Exemple. On souhaite calculer 321 (mod 31). . On decompose lfexposant 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 Jusqufa 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 dfun 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 dfabord 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 : nfimporte qui peut envoyer un message chiffre a Alice en utilisant la cle publique dfAlice, mais seule Alice peut dechiffrer le message a lfaide dfune cle secrete qufelle 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 dfAlice, 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 dfAlice. 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 dfAlice 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 lfon 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 lfaide de lfalgorithme dfEuclide et des coefficients de Bezout. . Les calculs de chiffrement se feront modulo n. . Le dechiffrement fonctionne grace au theoreme dfEuler. Et voici un schema qui presente le chiffrement et le dechiffrement : . n, e forment la cle publique dfAlice . d est la cle privee dfAlice, . 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 dfAlice et qufil 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, jusqufa des centaines de chiffres), . elle calcule n = p ~ q, . elle calcule .(n) = (p . 1) ~ (q . 1). Vous noterez que le calcul de .(n) nfest possible que si la decomposition de n sous la forme p~q est connue. Dfou le caractere secret de .(n) meme si n est connu de tous. Choix dfun exposant et calcul de son inverse Alice continue : . elle choisit un exposant e tel que pgcd(e,.(n)) = 1, . elle calcule lfinverse d de e modulo .(n) : d ~ e ß 1 (mod .(n)). Ce calcul se fait par lfalgorithme dfEuclide etendu. Cle publique/cle privee La cle publique dfAlice est constituee des deux nombres : n et e Et comme son nom lfindique, Alice communique sa cle publique au monde entier. Alice garde pour elle sa cle privee : d Noter que le calcul de d necessite .(n), qufAlice 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 dfAlice, 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 lfaide de sa cle privee d, par lfoperation : 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 lfentier e = 3 qui est bien premier avec .(n). . Alice calcule d, lfinverse de e modulo .(n), ici elle trouve d = 27 car 3 ~ 27 = 81 ß 1 (mod 40). . La cle publique dfAlice 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 lfaide de la cle publique dfAlice. Ici x ß me ß 413 ß 68 921 ß 6 (mod 55). . Bob transmet x = 6 a Alice. . Seule Alice peut dechiffrer le message a lfaide 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 dfexponentiation vues precedemment). 4.6. Lemme de dechiffrement Le principe de dechiffrement repose sur le theoreme dfEuler. Lemme 1. Soit d lfinverse 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 lfaide de la cle publique dfAlice (e, n) en le message x, peut-etre retrouve par Alice a lfaide de sa cle secrete d. Demonstration. . Que d soit lfinverse 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 dfEuler, 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 ß meEd ß m1+kE.(n) ß mE mkE.(n) ß mE (m.(n))k ß mE (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 â dfExo7. 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 lfaide dfun ordinateur quantique. 1. Arithmetique pour lfalgorithme 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 dfappliquer iterativement cet algorithme a d et a Nd . Par exemple dans le cas N = pq de la cryptographie RSA, il nfy a qufune seule etape. Au debut de lfalgorithme, on commence par choisir au hasard un entier a avec 1 < a < N. On calcule le pgcd de a et de N par lfalgorithme dfEuclide (cfest une etape tres rapide). . Si pgcd(a,N) .= 1 alors d = pgcd(a,N) est un facteur non-trivial de N et lfalgorithme 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)., cfest-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 dfun 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 lfindicatrice dfEuler et a est un nombre premier avec N, alors a.(N) ß 1 (mod N) et lfordre de a modulo n divise .(N). Mais attention, ni lfordre r, ni lfindicatrice .(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 lfon ne connait pas car cfest ce que lfon veut calculer). ALGORITHME DE SHOR 156 1.3. Periode Proposition 2. Lfordre r de lfentier a modulo N est la plus petite periode de la fonction k f 7.¨ ak (mod N). Demonstration. . Par definition de lfordre 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 lfabsurde 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. Lfordre r de a modulo N est pair. Nous verrons dans le chapitre suivant á Complements dfarithmetique â que cfest le cas pour plus de la moitie des entiers a choisis au depart. Si r nfest pas pair, alors on arrete lfalgorithme et on choisit une nouvelle valeur de a. Si r est pair, a lfaide de lfidentite 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 nfest pas divisible par N. Encore une fois nous verrons dans le chapitre suivant que cfest 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. Lfanneau des entiers Z est integre, cela signifie qui si un produit ab est nul alors lfun des facteurs a ou b est nul. Ici ce nfest pas le cas, car si N nfest pas un nombre premier lfanneau Z/NZ nfest pas integre. Par exemple avec N = 6 on a 2 ~ 3 ß 0 (mod 6). Preuve du lemme. Supposons ab ß 0 (mod N), cfest-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 dfautre 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 dfabord 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). . Lfhypothese 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 lfentier a est choisi parmi {3, 5, 6, 9, 10, 12}, alors a nfest pas premier avec N. Dans ce cas d = pgcd(a,N) donne un diviseur strict de N et cfest termine. Par exemple si a = 9, alors d = pgcd(9,15) = 3 est un facteur de N = 15. . Si lfentier a ¸ {2, 4, 7, 8, 11, 13, 14} alors pgcd(a,N) = 1. Il faut maintenant calculer lfordre de a. . Prenons lfexemple de a = 2. Alors lfordre 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 lfexemple de a = 7. Alors lfordre 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 lfhypothese 2 nfest 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 cfest termine. ALGORITHME DE SHOR 158 . Les elements a de {8, 13} sont dfordre r = 2 ; ceux de {2, 10, 11, 19} sont dfordre 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 dfordre r = 3 impair. Lfhypothese 1 nfest pas verifiee et lfalgorithme echoue. . Pour a = 5, a = 17 ou a = 20, lfentier N = 21 divise ar/2 + 1. Lfhypothese 2 nfest pas verifiee et lfalgorithme echoue. Exemple. Prenons a = 2. Son ordre est r = 6, car 26 = 64 ß 1 (mod 21), lfordre 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 lfordre sur un ordinateur classique Comme mentionne precedemment, il nfy a pas de formule pour calculer directement r ou .(N) si on ne connait pas deja les facteurs de N. Ainsi un algorithme dfinformatique classique pour calculer lfordre dfun element a modulo N necessiterait de calculer successivement a1, a2, a3, . . . modulo N, jusqufa trouver lfordre r caracterise par ar ß 1 (mod N). Il y a donc au total environ O(N) calculs du type ak (mod N). Cfest la qufintervient la magie de lfinformatique quantique qui permet dfevaluer tous les ak en meme temps. 2. Debut de lfalgorithme 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 lfordre 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 qufa une fonction f : x 7¨ y on associe lforacle F : (x, y) 7¨ (x, y . f (x)). Donc lforacle 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 dfarithmetique â.) On peut alors coder nfimporte quel entier plus petit que 2n a lfaide dfun 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 lforacle est compose de deux registres, en entree le premier registre recoit lfentier k, code sur n bits, donc a lfaide 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). Lforacle a bien pour action (k, 0) 7¨ (k, ak (mod N)). En termes de qubits, si lfentree de lforacle 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 lforacle 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 lfecriture 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. Lfordre r divise 2n. Cfest une hypothese qui sert a simplifier la suite des calculs. Contrairement aux hypotheses 1 et 2, ce nfest 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 lfhypothese 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 sfecrit 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 lforacle, on effectue une mesure du second registre, cfest-a-dire des n dernieres lignes du circuit. On obtient pour ce second registre la mesure dfun 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, cfest-a-dire le qubit PƒÕ 3 alors on obtiendrait lfun des etats ƒ¿r + ƒÀ0 ÷ pour un certain 0 . ƒ¿ < 2n/r, ou plus exactement, un n-bit ƒ¿r + ƒÀ0, cfest-a-dire lfun 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 lfun 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 lfun des ƒ¿r + ƒÀ0, ne permet pas de retrouver r. Par exemple, pour N = 15, ƒÀ0 = 1, la mesure donne lfun des entiers 1, 5, 9 ou 13. Lfecart entre ces entiers donne la periode cherchee r = 4, mais la connaissance dfun seul de ces entiers ne permet pas de retrouver r. Malheureusement on ne peut pas refaire lfexperience pour obtenir un autre entier de la liste, car lors de la nouvelle experience on nfobtiendra pas necessairement le meme ƒÀ0. Il va falloir completer le circuit pour obtenir r. Cela va nous demander pas mal dfefforts 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 lfordre que lfon 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 lfon veut trouver), mais comme on nfobtient qufun 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 lfun 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 lfecriture trigonometrique des nombres complexes : . tout nombre complexe z ¸ C sfecrit z = reiƒÆ ou r . 0 et ƒÆ ¸ R, . un nombre complexe de module 1 sfecrit z = eiƒÆ ou ƒÆ ¸ R, . e2iƒÎ = 1, . (eiƒÆ ). = e.iƒÆ ou z. designe le conjugue de z. Lemme 2 (Somme dfune 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 lfon 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 sfagit de calculer la somme dfune 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 lfaide 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 lfinterpretation geometrique de ce lemme. Notons de nouveau ƒÖ = e 2iƒÎ n , cfest une racine n-ieme de lfunite. Alors les ƒÖk forment les sommets dfun polygone regulier a n cotes. Le barycentre de ces points a pour coordonnees 1 n Pn.1 k=0ƒÖk = 0 par le lemme, cfest donc bien lforigine ! Dfun point de vue physique on parle dfinterference 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 sfecrit aussi : .F k = 1 p 2n 2Xn.1 j=0 (ƒÖk)j j ÷ Ensuite .F est etendue par linearite a nfimporte 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 qufau 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 sforganise 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 lfon a calcule auparavant. On verifie que les |ƒÕk. forment une base orthonormale. Par exemple, montrons que |ƒÕ1. et |ƒÕ2. sont orthogonaux. Tout dfabord .ƒÕ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 sfenvoie 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 nfest 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 lfexponentielle : .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 lfalgorithme de Shor 4.1. Fin du circuit Apres lforacle, 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 lfetat quantique du second registre sfest 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 lfaction 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 lfaide 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 . Qufavons-nous gagne avec lfaction de la transformee de Fourier ? Tout dfabord la constante ƒÀ0 nfapparait que dans les coefficients des qubits et nfintervient plus apres mesure. Ensuite la periode r que lfon veut determiner est au denominateur dans lfexpression de lfentier 2n. r . ALGORITHME DE SHOR 168 4.3. Mesure du premier registre La mesure du premier registre donne un entier 2n. r , correspondant a lfun des etats 2n. r ÷ du qubit PƒÕ 4 . Nous obtenons donc un entier m = 2n. r et nous voulons en deduire la periode r. Lfentier n est connu, par contre . nfest 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 nfobtient aucune information sur r. Cfest le cas si . = 0, ou bien si r divise .. Dans ce cas notre methode echoue. Il faut recommencer lfexecution du circuit quantique. Noter que ce cas se produit assez rarement. . Si pgcd(., r) = 1 alors dfune 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 lfecriture irreductible est 13 4 donc r = 4 et . = 13. . Si pgcd(., r) .= 1, alors lfecriture 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 nfavons pas trouve la periode r mais un facteur rŒ de r. Cfest 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 nfa qufun nombre fini de facteurs. 4.4. Exemple Voyons la fin de lfalgorithme sur lfexemple N = 15. . Si a ¸ {3, 5, 6, 9, 10, 12}, alors a nfest pas premier avec N et d = pgcd(a,N) > 1 est un diviseur strict de N et cfest termine. . Les entiers a ¸ {4, 11, 14} sont dfordre r = 2, mais par contre a = 14 ne verifie pas lfhypothese 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 lfon connait la valeur de x, mais qufil sfagit dfobtenir r et .. . Dans le cas . = 0 alors on a la connaissance de x = 0, mais on nfobtient aucune information sur r. Il faut recommencer lfalgorithme. . 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 dfordre 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 lfalgorithme. . 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. Lfentier rŒ = 2 nfest pas la periode (cfest facile a verifier) mais on sait que rŒ = 2 divise r. On avait choisi un entier a au debut de lfalgorithme, on recommence maintenant lfalgorithme avec le choix de a2 qui a pour periode r/2. En un nombre fini dfiterations de lfalgorithme 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 lfordre r nfest pas une puissance de 2. Complements dfarithmetique 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 lfalgorithme de Shor vu lors du chapitre precedent en etudiant chacune des hypotheses. Dans ce chapitre il nfy a pas dfinformatique quantique mais beaucoup de mathematiques ! Certaines parties sont assez techniques et dfun 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 : lfordre r divise 2n. Ce nfest pas vrai en general, mais lfalgorithme de Shor reste valide moyennant quelques adaptations. Reprenons la fin du circuit de lfalgorithme de Shor qui permet de calculer lfordre r dfun 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 dfun multiple de 1r (mais nfest pas exactement un multiple). Comment retrouver r a partir de x ? Voici lfexemple que lfon etudiera en details dans la section suivante afin de factoriser N = 21 a lfaide du choix a = 2. Imaginons qufune mesure conduise a x = 427 512 . Comment retrouver lfordre 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 EEE+ 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 lfecriture irreductible du rationnel [a0, a1, . . . , an]. Exemple. Lfecriture en fraction continue [5, 2, 1, 4] represente le nombre rationnel : x = 5 + 1 2 + 1 1+14 = 75 14 = 5.3571428 . . . COMPLEMENTS DfARITHMETIQUE 170 Prendre les sous-listes de la fraction continue permet dfobtenir 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 lfexemple de ƒÎ. Comment approcher ƒÎ par une fraction avec un denominateur pas trop grand (disons avec moins de trois chiffres) ? Lfidee la plus simple est dfutiliser lfecriture 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 dfun reel x par des rationnels. 1.4. Exemple Reprenons lfexemple de la factorisation de N = 21 a lfaide du choix a = 2. Supposons que le circuit de Shor nous donne la valeur x = 427 512 , comment obtenir lfordre r ? La mauvaise idee est dfutiliser lfecriture decimale pour dire x = 427 512 . 400 500 = 45 donc le denominateur naturel (qui donne lfordre r) serait 5. Ce nfest 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 DfARITHMETIQUE 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 lfordre r, mais on sait que lfordre r cherche est inferieur a lfentier 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 lfordre 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 lfordre r. 2. Algorithme de Shor pour nfimporte 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 dfun 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 nfest plus un entier. Autrement dit on obtient un nombre rationnel x = m 2n qui est proche dfun multiple de 1r (mais nfest pas exactement un multiple). 2.2. Lfexemple N = 21 : debut Soit N lfentier a factoriser. Dans toute la suite on considerera lfexemple de N = 21. Dans le cas ou r divise 2n, il suffisait de choisir lfentier 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. Lfexemple 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 lfordre de a modulo N qui est ici r = 6. Reordonnons les elements de |ƒÕ2. en regroupant les termes selon le second facteur qui est lfun des ak pour k variant de 0 a r . 1 = 5. COMPLEMENTS DfARITHMETIQUE 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 nfobtient 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 lfun des ak . Dans la suite on suppose par exemple qufon 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. Lfexemple N = 21 : fin La derniere etape est dfappliquer la transformee de Fourier inverse et dfeffectuer 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 DfARITHMETIQUE 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 sfexplique 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 lfordre r, ou lfun 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 nfobtient aucune information sur lfordre 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 lfordre r = 6. COMPLEMENTS DfARITHMETIQUE 174 . Si la mesure donne un entier proche j proche de 171 ou 341 alors on nfobtient pas r mais le facteur rŒ = 3; si la mesure donne un entier j proche de 256 alors on nfobtient pas r mais le facteur rŒŒ = 2. Dans ces cas on relance lfalgorithme pour obtenir la factorisation complete. 2.6. Conclusion Il nous reste a justifier que lfapproximation 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 lfune des fractions du developpement en fractions continues de x. Dans notre situation nous considerons lfentier 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 sfobtient comme lfune des fractions du developpement en fractions continues de x, comme on lfavait 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 lfalgorithme de Shor. 3. Ordre dfun element 3.1. Definition Soit (G,~) un groupe commutatif ayant pour element neutre e. Lfordre de x ¸ G, note ord(x), est le plus petit entier r > 0, tel que x r = e. Voici quelques proprietes de lfordre : . 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 lfelement 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 dfordres m = ord(x) et n = ord( y) premiers entre eux, alors ord(x E y) = mn. Demonstration. Notons r = ord(x y). Il sfagit de montrer r = mn en prouvant que r|mn puis que mn|r. Tout dfabord (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 . Dfune 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, cfest-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 DfARITHMETIQUE 175 Preuve de la proposition. Soit m le plus grand ordre parmi les elements de G, il existe donc y dfordre m. Fixons x un element quelconque de G et notons n son ordre. Il sfagit de montrer que n|m. Par lfabsurde 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 dfordre 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Œ nfest 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 lfensemble des elements inversibles modulo n. Nous commencons par le cas dfun 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, cfest-a-dire des elements x ¸ Z/pZ tels que P(x) ß 0 (mod p). Idee de la preuve de la proposition. Cfest 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 lfensemble 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. Lfensemble (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 dfordre p .1 dans (Z/pZ). ce qui va nous permettre de construire lfisomorphisme : ƒÓ : 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 lfensemble dfarrivee) et les ensembles de depart et dfarrivee ont le meme nombre dfelements. Pour montrer qufil existe un element dfordre p .1, remarquons dfabord 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, cfest-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 dfordre p . 1. COMPLEMENTS DfARITHMETIQUE 176 Remarque : la preuve nfest pas constructive, pour trouver a dfordre p . 1 il nfy a pas dfautres moyens que de tester differentes valeurs de a et de calculer a chaque fois a, a2, a3, . . . 4.2. Elements dfordre pair Proposition 3. Dans (Z/pZ)., avec p . 3, la moitie au moins des elements sont dfordre pair. Demonstration. Notons ƒÕ : (Z/pZ). ¨Z/(p . 1)Z lfisomorphisme de groupes. Alors lfordre dfun element x de (Z/pZ). est egal a lfordre de lfelement ƒÕ(x) dans Z/(p . 1)Z. Lfordre dfun 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 dfordre pair. Par isomorphie, il en est de meme pour (Z/pZ).. 4.3. Racines carrees de 1 Le point-cle initial de lfalgorithme 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 lfaide 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 ! Lfequation X2 . 1 = 0 est une equation polynomiale de degre 2. Elle peut avoir plus de deux solutions dans (Z/nZ). qui nfest 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 nfest valable que modulo un nombre premier. Apres lfapplication de lfisomorphisme ƒÕ : (Z/pZ). ¨Z/(p . 1)Z, les deux racines carrees sont ƒÕ(1) = 0 et ƒÕ(.1) = p.1 2 (en effet lfidentite (.1)2 ß 1 (mod p) devient 2 ~ p.1 2 ß 0 (mod p . 1)). Demonstration. Pour x = +1 on a bien sur x2 = 1. Lfecriture x = .1 est une autre facon dfecrire x = p . 1 (car x = p . 1 ß .1 (mod p)) et bien sur x2 = (.1)2 = 1. Pour justifier qufil nfy a pas dfautres 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), cfest-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 nfy a pas dfautres solutions par la proposition 2. Cependant le point cle de lfalgorithme de Shor est un peu plus delicat, il sfagit 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 lfhypothese 2 du chapitre á Algorithme de Shor â. Faisons le point : pour lfalgorithme 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 lfordre serait r/2 et pas r) et x r/2 ß .1 (mod n) (qui ne permet pas toujours dfobtenir une factorisation). COMPLEMENTS DfARITHMETIQUE 177 Dans le cas dfun nombre premier : une telle racine carree nfexiste 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, lfhypothese 1 ou lfhypothese 2 de lfalgorithme de Shor nfest pas verifiee. Noter que ce resultat negatif nfa pas dfincidence pour lfalgorithme de Shor pour lequel il sfagit de factoriser un entier qui nfest 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 lfhypothese 1 soit vraie, cfest-a-dire que lfordre 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 lfordre 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 lfhypothese 2 dfetre valide. 5. Le groupe (Z/pƒ¿Z). Lfetape suivante est dfetudier le groupe des elements inversibles modulo une puissance dfun 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), cfest-a-dire qufil 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 cfest 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 lfalgorithme de Shor. Nous allons construire dans (Z/pƒ¿Z). un element a dfordre p . 1 et un element b dfordre pƒ¿.1 ce qui conduira a lfisomorphisme : ƒÓ : Z/(p . 1)Z ~ Z/pƒ¿.1Z .¨ (Z/pƒ¿Z). (k, .) 7.¨ ak b. (mod pƒ¿). Tout dfabord soit aŒ un element dfordre 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 lfordre de aŒ dans (Z/pZ). divise r : cfest-a-dire p.1|r. Notons a = aŒ r p.1 . Cfest un element dfordre p.1 dans (Z/pƒ¿Z). : en effet ap.1 = aŒr ß 1 (mod pƒ¿) et par definition de lfordre r, il ne peut exister dfentier plus petit. Notons b = 1+p alors par le lemme ci-dessous bpƒ¿.1 = (1+p)pƒ¿.1 ß 1 (mod pƒ¿), donc en particulier, lfordre 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, lfelement ab est dfordre (p . 1)pƒ¿.1. On a donc montre en plus que (Z/pƒ¿Z). est engendre par le seul element ab, cfest donc un groupe cyclique. Voici lfenonce du lemme utilise dans la preuve. COMPLEMENTS DfARITHMETIQUE 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. Cfest une version amelioree de lfexercice 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 dfecrire x = y +ƒÉpk puis dfutiliser 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, lfassertion est vraie : (1+ p)1 ß 1+ p (mod p2). Supposons lfassertion 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 dfordre pair Proposition 6. Dans (Z/pƒ¿Z)., avec p . 3, la moitie au moins des elements sont dfordre pair. Demonstration. Le preuve est similaire a celle de la proposition 3. Lfordre de (2k + 1, .) est pair dans Z/(p . 1)Z ~ Z/pƒ¿.1Z, quel que soit lfentier impair 2k + 1 et quel que soit .. Donc la moitie au moins des elements de Z/(p . 1)Z ~ Z/pƒ¿.1Z sont dfordre pair. Par lfisomorphisme du theoreme 3, il en est de meme pour (Z/pƒ¿Z).. 5.4. Racines carrees de 1 On rappelle qufune 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 nfest pas un corps, il pourrait donc y avoir a priori plus de deux racines carrees de 1. Par lfisomorphisme, 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 lfisomorphisme de groupes du theoreme 3. Si ƒÕ(x) = (a, b) alors ƒÕ(xk) = (ka, kb) et ƒÕ(1) = (0, 0) (lfelement neutre du groupe multiplicatif sfenvoie sur lfelement 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, lfequation 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 lfisomorphisme donnent les deux seules racines carrees 1 et .1. COMPLEMENTS DfARITHMETIQUE 179 Nous nfallons pas etudier lfequation x r/2+1 ß 0 (mod pƒ¿), dfune part le cas n = pƒ¿ est etudie specifiquement dans lfalgorithme de Shor, dfautre part on etudiera plus tard cette equation dans le cas plus general dfun 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 nfest pas isomorphe a Z/2Z ~ Z/2Z. Demonstration. Notons ƒÓ : Z/pqZ¨Z/pZ ~ Z/qZ, lfapplication 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 cfest 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 dfarrivee 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 dfun 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 lfelement 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). Lfordre 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 DfARITHMETIQUE 180 Proposition 8. Soient p et q deux nombres premiers entre eux alors (Z/pqZ). est isomorphe a (Z/pZ). ~ (Z/qZ).. Demonstration. Cfest 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 dfun 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 dfordre pair Proposition 9. Soit n = Q. i=1 pƒ¿i i la decomposition de n en produits de . facteurs, avec pi . 3. La proportion dfelements dfordre 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).. Lfordre de x est le ppcm des ordres des xi , donc ord(x) est pair si et seulement si lfun 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 dfordre impair est strictement inferieure a 12 , donc la proportion de .-uplets (x1, . . . , x.) dont tous les elements sont dfordre impair est strictement inferieure a ..12 .. Par complement la proportion dfelements dfordre 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 lfalgorithme de Shor 8.1. Prealable de lfalgorithme de Shor Lfalgorithme 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 lfalgorithme avec nk et avec k. Au prealable on exclut certaines situations : . n nfest 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 cfest termine. . n nfest 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 nfest pas une puissance pƒ¿ dfun 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, . . . jusqufa log2(n). COMPLEMENTS DfARITHMETIQUE 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. Lfalgorithme de Shor fonctionne au moins une fois sur deux Hypothese 1. Lfordre r de a modulo n est pair. Hypothese 2. ar/2 + 1 nfest 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 qufun entier a ¸ (Z/nZ). verifie lfhypothese 1 et lfhypothese 2 est superieure a 1 . 1 2..1 . Remarques. . Le pire cas se produit lorsqufil 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 dfelements 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 nfest pas constructive, il nfexiste pas de moyen simple de calculer lfordre de a (cfest dfailleurs le but de lfalgorithme de Shor). 8.3. Preliminaires On connait deja la proportion dfelements a qui verifient lfhypothese 1. Par la proposition 9, la proportion dfelements dfordre pair est superieure a 1 . 1 2. . On rappelle que lfobjectif de lfalgorithme de Shor est de trouver la periode r dfun element a et si r est pair dfecrire lfegalite ar ß 1 (mod n) sous la forme dfune 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 dfabord, par definition de lfordre 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 lfhypothese 2 soit vraie, cfest-a-dire ar/2 + 1 nfest 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 lfordre 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 lfensemble 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).. Lfequation xs ß ys (mod n), dfinconnue x, possede toujours le meme nombre de solutions quel que soit y. COMPLEMENTS DfARITHMETIQUE 182 Demonstration. Notons S = {a1, . . . , ad} lfensemble 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. Sfil existe x0 ¸ (Z/nZ). tel que xs0 ß .1 (mod n) alors toute racine carree z dans R peut sfecrire 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). Lfhypothese 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 lfelement ( 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 dfelements x tel que xs soit une racine carree. On rappelle que dans tous les cas on exclut la racine carree 1 (qui nfa 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 lfhypothese 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 lfequation xs ß .1 (mod n) nfa pas de solution, les deux ensembles Ss et SŒ s sont egaux, donc CardSŒ s CardSs = 1 et lfassertion est vraie. Supposons qufil existe x0 tel que xs0 ß .1 (mod n). Soit z ¸ R, alors par le lemme 4, lfequation xs ß z (mod n) est equivalente a lfequation 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 DfARITHMETIQUE 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 dfelements dfordre pair, que lfon note P(Z/nZ). : Card P(Z/nZ). Card(Z/nZ). . 1 . 1 2. = 2. . 1 2. . Nous allons maintenant determiner la proportion dfelements verifiant lfhypothese 2 parmi les elements dfordre pair. Pour tout ordre pair r, on note s = r2 . Ainsi si un element x est dfordre pair r, on a (xs)2 ß 1 (mod n), avec xs .ß 1 (mod n). Autrement dit xs ¸ R\{1}, cfest-a-dire x ¸ Ss. Ainsi lfensemble des elements dfordre pair P(Z/nZ). (cfest-a-dire satisfaisant lfhypothese 1) est lfunion des Ss (pour 1 . s . .(n) 2 ). De plus, lfordre etant unique, ces ensembles sont disjoints. Notons lfensemble des cas favorables F(Z/nZ)., cfest-a-dire les elements satisfaisant lfhypothese 1 et lfhypothese 2. F(Z/nZ). est simplement lfunion 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 lfunion : 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. Lfexplication du cas dans lequel lfordre nfest pas une puissance de 2 est basee sur lfarticle Shorfs algorithm for factoring large integers par C. Lavor, L.R.U. Manssur, R. Portugal. Il nfest 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 lfinformatique quantique â par Y. Leroyer et G. Senizergues a lfEnseirb-Matmeca. Transformee de Fourier discrete Chapitre 15 Video ¡ partie 15. Transformee de Fourier discrete (par des dessins) Nous revenons sur lfoutil principal de lfalgorithme 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, cfest la magie de pouvoir recuperer chacune des couleurs qufon 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 lfon 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 lfaide dfune integrale, . les series de Fourier sfappliquent a des fonctions periodiques (comme ci-dessus), TRANSFORMEE DE FOURIER DISCRETE 185 . la transformee de Fourier discrete sfapplique 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ƒÎ kE j n . Si on note ƒÖ = e 2iƒÎ n et ƒÖ. = e.2iƒÎ n , alors Xk = 1 p n .. x0(ƒÖ.)kE0 + x1(ƒÖ.)kE1 + E E E + xn.1(ƒÖ.)kE(n.1)  . La formule nfest 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 Lfidee 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 dfun point (ou lfordonnee 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 lforigine, et les points sont repartis dans le sens des aiguilles dfune 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 dfecriture polaire : lfangle est proportionnel a j et le rayon est x j . TRANSFORMEE DE FOURIER DISCRETE 186 Le point cle de la representation circulaire est qufon peut repartir les donnees sur un angle plus ou moins grand. Notons 2ƒÎt lfangle total dfetalement, alors plus precisement lfangle 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 lforigine et faisant un angle .2ƒÎt n ~ j avec lfhorizontale : cfest 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 sfenroulent 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 lfetude dfune fonction f : [a, b]¨R par lfetude de valeurs x j = f (aj) pour une subdivision (aj) de lfintervalle [a, b]. Pour avoir une meilleure precision, il suffit dfaugmenter 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 lfintervalle [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 dfetalement t. Tout dfabord on exclut les t avec t < 1 car le graphe ne sfenroule pas totalement autour du cercle. Pour la plupart des parametres on obtient une jolie figure symetrique autour de lforigine, 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 lfintervalle [0, 2ƒÎ] enroule sur le cercle pour differentes valeurs de t. Pour t = 3 la figure nfest plus symetrique par rapport a lforigine. 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 lfinverse de la periode). 1.5. Centre de gravite Est-ce que cette technique permet dfobtenir les differentes periodes dfun signal obtenu par superposition (comme dans lfexemple 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 lforigine, donc le centre de gravite est proche de lforigine (en physique on parle dfinterference destructive). Par contre, pour certains parametres particuliers, le centre de gravite sfeloigne de lforigine. 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ƒÎ tE 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 lfabscisse du centre de gravite. TRANSFORMEE DE FOURIER DISCRETE 189 Graphe de la fonction t 7¨ Re(Xt ) qui mesure lfabscisse du centre de gravite de lfenroulement de la fonction f (x) = 1 + cos(3x) sur lfintervalle [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 lfintervalle [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ƒÎ tE j n . ou x j = f € jn . Graphe de la fonction t 7¨ Re(Xt ) qui mesure lfabscisse du centre de gravite de lfenroulement de la fonction f (x) sur lfintervalle [0, 2ƒÎ] pour differentes valeurs de t. On remarque des pics en t = 3 et t = 5. 1.7. Lfinverse de la transformee de Fourier discrete On a donc vu lfinteret de la transformee de Fourier : elle permet de retrouver les caracteristiques dfune fonction (ou dfune serie de donnees). Mais de plus cette transformation ne perd pas dfinformation. Dfun 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 lfexponentielle change) : xk = 1 p n Xn.1 j=0 X j e+2iƒÎ kE 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 dfun 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ƒÎ kE j 2n j ÷ Les differences sont les suivantes : . Par convention on choisit un signe á + â pour lfexposant 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 sfetend par linearite a nfimporte 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ƒÎ kE 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 qufen toute rigueur il sfagit dfun produit tensoriel : .F k = 1 p 2n On .=1  |0. + e2iƒÎ k 2. |1.  . De facon developpee la factorisation sfecrit : .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 sfecrit donc .F k = 1 2 .. |0. + (.1)k |1.  .. |0. + ik |1.  . . Pour n = 3, notons ƒÖ = e 2iƒÎ 23 = e iƒÎ 4 , la factorisation sfecrit : .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 lfecrire : .F k = 1 p 8 € |0. +ƒÖ22Ek |1. . .. |0. +ƒÖ2Ek |1.  .. |0. +ƒÖk |1.  . La preuve du theoreme repose sur lfecriture 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 dfhabitude j = jn.1 . . . j2. j1. j0 lfecriture 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 lfon developpe cette expression, on obtient des termes qui resultent du choix pour chaque ligne de (3) dfun 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 lfexpression (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 sfecrit e2iƒÎ kE jn.1 21 | jn.1.. En effet si jn.1 = 0 alors ce facteur vaut e2iƒÎE0 |0., cfest donc |0., et si jn.1 = 1 cfest e2iƒÎkE1 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) sfecrit e2iƒÎ kE jn.. 2. | jn.. .. En effet, si jn.. = 0 alors cfest |0. et si jn.. = 1 alors cfest 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ƒÎ kE jn.. 2. | jn.. . pour chacune des lignes. Calculons ce terme : Yn .=1 . e2iƒÎ kE jn.. 2. | jn.. . . = . Yn .=1 e2iƒÎ kE jn.. 2. . | jn.1 . . . j2. j1. j0. = e2iƒÎkE 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ƒÎ kE j 2n j ÷ = 1 p 2n Yn .=1  |0. + e2iƒÎ k 2. |1.  . 2.3. Variante Commencons par introduire lfecriture 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 sfecrit 0.abc . . . Par exemple x = 0.625 (en ecriture decimale) sfecrit 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 lfecriture binaire de lfentier k a lfecriture binaire dfun 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 dfabord que pour nfimporte 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 lfidentite. . 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 nfest 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 lfon 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 sfeffectuent 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 lfordre dfecriture des qubits. Dans notre circuit le qubit en entree est |k0. . |k1. . E E E . |kn.1.. Mais si lfecriture binaire de k est kn.1 . . . k1.k0 alors k = |kn.1. . E E E |k1. . |k0.. Pour obtenir lfecriture voulue il suffit de renverser les qubits. Cela se fait avec une porte SWAP que lfon a vue lors du chapitre á Portes quantiques â. Ainsi le circuit complet pour lfexemple 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 á lfestimation de phase â, cfest le nom physique utilise pour parler de la determination dfune valeur propre dfune matrice unitaire. Cette section ne revient pas sur les details et les motivations concernant les valeurs propres : on renvoie pour cela a un cours dfalgebre 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 nfest pas le vecteur nul et : AX = ƒÉX Les valeurs propres et les vecteurs propres jouent un role fondamental dans lfetude des matrices. Rappelons juste ici qufune matrice unitaire (cfest-a-dire verifiant A.A= I) est diagonalisable, cfest-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 lfargument). 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 : aua2 = .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 aXa2 = aXa2 =Ë |ƒÉ|2 = 1 =Ë |ƒÉ| = 1 On a utilise les proprietes rappelees precedemment ainsi que le fait qufun vecteur propre est non nul (donc aXa .= 0). 4.2. Probleme de lfestimation de la phase Dfun point de vue mathematique le probleme est le suivant. On nous donne une matrice M ¸ MN (C) unitaire et un vecteur propre X0. Il sfagit 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 dfun 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, cfest-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 lfentree 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 lfaction de la porte cA lorsque le n-qubit est le vecteur propre |ƒÕ0. associe a la valeur propre ƒÉ0 = e2iƒÎƒÆ0 . . Si lfentree est |0. . |ƒÕ0. alors la sortie est |0. . |ƒÕ0.. . Si lfentree 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 sfecrit : .. ƒ¿|0. + e2iƒÎƒÆ0ƒÀ |1.  . |ƒÕ0. Remarquons qufapres 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 lfestimation 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 qufil admette lfecriture 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 lfentree 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 dfestimation 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 dfestimation 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 lfaide du circuit inverse de .F (cfest-a-dire le circuit de .F.1), on obtient le qubit | j1. j2 . . . jn., donc les á decimales â j1, j2, . . . , jn de lfecriture binaire de ƒÆ0. Demonstration. Une porte de Hadamard H transforme lfentree |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, cfest lire lfaction dune porte A de droite a gauche. Nous obtenons donc lfetat 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 dfun secret commun entre deux personnes grace a la physique quantique. 1. Le chiffrement parfait existe Commencons par comprendre qufun secret commun entre deux personnes permet une communication parfaitement sure. Cfest dfailleurs ce protocole qui etait utilise par le á telephone rouge â reliant les USA et lfURSS 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 sfetaient 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 (cfest 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 qufune 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 nfa 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 qufil decrypte le message complet est 1 2n (ce qui revient a tirer au hasard un message parmi les 2n messages possibles). Inconvenients. Tout dfabord il faut respecter scrupuleusement les consignes pour lfutilisation du masque jetable (choix aleatoire, usage unique,. . .). Une difficulte reside dans le fait qufil faut que le masque reste un secret uniquement connu dfAlice et Bob : la methode la plus simple est qufAlice 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 puisqufil necessite une rencontre entre Alice et Bob. Cfest pourquoi dfautres 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 nfest pas vraiment un protocole cryptographique mais qui permet la creation dfun secret commun sous la forme dfune 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 nfa 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 dfenvoi á . â. Dans cette base deux qubits sont possibles : |ª. et |¨.. . |ª. = |0. represente lfinformation 0, . |¨. = |1. represente lfinformation 1. Seconde base dfenvoi á . â. Dans cette base deux qubits sont possibles : |.. et |... . |.. = 1 p 2 (|0. + |1.) represente lfinformation 0, . |.. = 1 p 2 (|0. . |1.) represente lfinformation 1. Dfun 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 lfinformation 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 lfinformation que Bob obtient lorsqufil 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 lfinformation que Bob obtient lorsqufil 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 dfenvoi alors il obtient exactement lfinformation 0 ou 1 envoyee par Alice. Par contre sfil mesure dans lfautre base que celle dfenvoi, il obtient alors un bit 0 ou 1 aleatoire qui nfa rien a voir avec lfinformation envoyee par Alice. Circuits quantiques Base á . â. Pour lfenvoi il nfy a rien a faire, le qubit est |0. ou |1.. Pour la reception, il sfagit juste dfune 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 lfenvoi, lfinformation 0 est codee par H |0. = |.. et lfinformation 1 est codee par H |1. = |... Donc une porte H de Hadamard suffit. H / Pour la reception, le circuit est compose dfune porte H suivi dfune mesure : H / Par exemple si le qubit recu est |.. = 1 p 2 (|0. . |1.), alors la porte de Hadamard lfenvoie 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 dfun secret commun. 1. Alice . envoi. . Alice choisit des bits 0 ou 1 au hasard. . Par chaque bit, elle choisit au hasard une base dfenvoi . 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 qufAlice. 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 lfinstant Alice et Bob partagent un message commun. Mais celui-ci est-il secret ? Il faut sfassurer que le message nfa 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 lfinformation 0 dans la base ., cfest-a-dire qufelle transmet le qubit |... Eve doit choisir une base pour sa lecture (car elle ne connait pas la base dfenvoi dfAlice). . 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 qufil 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 cfest bon ou mauvais). Mais surtout si Eve intervient lors de la transmission, alors Bob obtient un mauvais bit dfinformation 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, lfensemble du message est compromis et il faut tout recommencer. . Si les echantillons sont exactement identiques, alors la transmission est consideree comme sure (dfautant 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 dfAlice et Bob sont toujours identiques (probabilite 1, quelle que soit la taille n de lfechantillon). . Si un espion intervient entre Alice et Bob alors, pour chaque bit, la probabilite qufil parvienne correctement a Bob est de 34 .. . Donc les echantillons de n bits dfAlice et Bob sont completement identiques avec probabilite 34 n. Si n est assez grand, alors cette probabilite est presque nulle. Ce qui signifie qufon detecte presque surement la presence dfun espion. . Voici des exemples : . n = 10 : .. 3 4 10 = 0.0563, donc dans environ 95% des cas lfespion est repere, . n = 20 : .. 34 20 = 0.003 . . . donc dans 99.7% des cas lfespion est repere, . n = 100 : .. 34 100 . 3 E 10.13 donc lfespion 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. Lfun pourrait tirer a pile ou face et annoncer le resultat a lfautre mais chacun pense que lfautre peut tricher. Comment faire ? Nous allons voir la simulation dfun 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. Sfils obtiennent tous les deux á pile â ou tous les deux á face â cfest Bob qui gagne, sinon cfest Alice. Le point crucial est de se debrouiller pour qufaucun des deux ne puisse mentir en annoncant son resultat. CRYPTOGRAPHIE QUANTIQUE 207 3.1. Protocole 1. Alice choisit une base dfenvoi . ou .. . Alice decide au hasard dfune base dfenvoi . ou . (cfest 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 qufelle 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 dfune base de mesure . ou . (cfest son tirage a pile ou face). . Il effectue la mesure des qubit recus dans la base qufil a choisie. . Il obtient une suite de mesures 0 ou 1. 3. Bob annonce la base qufil a choisie pour la mesure. 4. Alice devoile la base qufelle avait choisie pour lfenvoi ainsi que les bits transmis. 5. Gagnant : si les deux bases coincident Bob a gagne, sinon cfest Alice. 6. Verification : Bob verifie qufAlice nfa pas menti. Bob a annonce son choix avant Alice il doit donc verifier qufAlice nfa pas triche, pour cela il compare sa mesure avec les bits dfAlice : . sfil a trouve la bonne base, alors sa mesure est exactement la meme que les bits dfAlice, . sfil nfa 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 sfil a trouve la bonne base ou pas. Plus de details sur la verification sont donnes ci-dessous. 3.2. Verifications Tout dfabord Bob ne peut pas tricher, dfune part les mesures qufil effectue ne permettent pas de deduire quelle base dfenvoi Alice avait choisie et dfautre part Bob annonce en premier sa base a Alice. Voyons comment Bob verifie le resultat annonce par Alice. Imaginons qufAlice 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 dfAlice et de Bob sont identiques. Si Bob a choisi lfautre base, ici ., alors la mesure de |ª., |¨., conduit a 0 ou 1 aleatoirement. Il va donc, en moyenne, avoir la moitie de bits faux et lfautre moitie corrects. La probabilite que les n bits de Bob coincident exactement avec les n bits dfAlice est 1 2n et est donc tres faible (si n est assez grand). Bilan : Bob sait sfil a choisi la meme base qufAlice 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 á Jfavais 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 lfa 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 nfen est encore qufa ces debuts, cfest tout un domaine a decouvrir ! Code correcteur Chapitre 17 Video ¡ partie 17. Code correcteur Lors de la transmission dfun qubit il peut y avoir des erreurs. Les codes correcteurs permettent de detecter et corriger ces erreurs. 1. Un code correcteur classique Lorsqufon transmet un message electronique, le message recu peut etre different du message envoye a cause dferreurs (erreurs de lecture/ecriture, interferences,. . .). Cela peut etre sans consequence, par exemple tout le monde comprend la phrase á UN PETLT PAS PQUR LfHOMNE â malgre les fautes de frappe, mais pour envoyer un code dfidentification du style á 562951413 â une erreur sur un seul chiffre compromet le message. On distingue deux taches : detecter sfil y a eu une erreur (si cfest 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 Lfidee 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 â. Sfil 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 lfexemple 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, sfil y a trop dferreurs, 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 qufun 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 lfexemple 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 dferreur (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 dfune suite sont tous transmis correctement avec probabilite (1 . p3)n. Exercice. Faire les calculs de la proposition 1 dans le cas dfune repetition de longueur 5 : 0 7¨ 00000 et 1 7¨ 11111. CODE CORRECTEUR 210 2. Correction dferreurs en informatique quantique 2.1. Obstacles Les ordinateurs quantiques sont encore balbutiants et commettent beaucoup dferreurs. Les codes correcteurs sont donc importants mais se confrontent a des problemes specifiques a lfinformatique quantique : . on ne peut pas mesurer un qubit sans le perturber irremediablement (effondrement du paquet dfonde), . 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 lfinformation 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 lfon souhaite transmettre un message forme par un qubit |ƒÕ0. = ƒ¿|0. + ƒÀ |1.. On commence par expliquer deux idees importantes pour la suite. 2.2. Augmentation dfun 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 lfaide 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 qufici nous nfavons pas duplique les coefficients. Le theoreme de non-clonage quantique montre qufaucun 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 lfegalite de deux qubits de base, mais ne permet pas de comparer deux 1-qubits quelconques. 3. Code correcteur pour le flip dfun 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 lferreur est un á flip â dfun des qubits. Par exemple ƒ¿|0.0.0. + ƒÀ |1.1.1. est mal transmis en ƒ¿|0.0.1. + ƒÀ |1.1.0.. Noter qufun flip correspond a une porte X sur lfun 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 dfun qubit |ƒÕ0., meme si lors de la transmission une erreur de type X se produit. |ƒÕ0. . . Erreur Xi . . / |ƒÕ0. |0. . / |0. . / . Xi designe lfaction dfune porte X sur lfune 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 qufune porte de Toffoli, est lfaction dfune 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 lferreur. . Cas erreur X1 (flip sur la premiere ligne). . Cas |ƒÕ0. = |0.. Le 3-qubit avant lferreur 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 lferreur 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 lferreur le 3-qubit est |0.0.0., apres erreur cfest |0.1.0., les deux portes CNOT et la porte de Toffoli ne changent rien. On obtient |0.1.0.. . Cas |ƒÕ0. = |1.. Avant lferreur le 3-qubit est |1.1.1., apres erreur cfest |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 lfinversion de phase dfun qubit 4.1. Circuit Le flip nfest pas la seule erreur possible. Une autre erreur est lfinversion 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 lfun des trois qubits. On se ramene a la situation precedente en notant qufune 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 lfaction dfune porte Z sur lfune des lignes i ¸ {1, 2, 3}. 4.2. Calculs Nous nfavons pas a faire les calculs puisque ce sont les memes que pour le flip. En effet, on a rappele que HZH = X, donc lfensemble des portes de Hadamard et lferreur Zi correspondent a une erreur Xi . Une autre facon de voir les calculs est dfutiliser 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....¨|+. Cfest donc une sorte de flip dans une autre base. Si au depart |ƒÕ0. = |0. alors, apres augmentation, on a |ƒÕ. = |0.0.0.. Puis a lfaide des portes de Hadamard le 3-qubit avant erreur est |+. |+. |+., que lfon note |+. + .+.. Lferreur Zi change lfun 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 dfun 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 qufils 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 lferreur. On parle de á lignes auxiliaires â. 5.2. Sortie Notons .ƒÕ le 3-qubit du premier registre apres transmission (juste apres lferreur eventuelle). Notons |ƒÓ. le 2-qubit obtenu en sortie du second registre (a la fin du circuit). . Pas dferreur. Si |ƒÕ0. = |0. et si .ƒÕ = |0.0.0. alors |ƒÓ. = |0.0.. Il nfy a pas dferreur donc rien a corriger. De meme, si |ƒÕ0. = |1. et .ƒÕ = |1.1.1. alors de nouveau |ƒÓ. = |0.0.. Il nfy a toujours pas dferreur 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 qufon voulait transmettre |0.0.0.) alors |ƒÓ. = |1.1.. Il y a une erreur et cette erreur est sur la premiere ligne. On corrige lferreur 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 qufon 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 lferreur en rajoutant une porte X sur la troisieme. Noter qufon nfa jamais effectue de mesure sur le premier registre. Bilan : . si |ƒÓ. = |0.0. pas dferreur, . 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 qufon sait sur quelle ligne est lferreur 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 lfinformation |0., augmentee en |0.0.0.. On suppose que lferreur est dfun type nouveau, le qubit est legerement deforme. Prenons lfexemple dfune 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 dferreur. Cfest 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 lfon 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 qufil nfy a rien a corriger. Effectivement, dans ce cas le premier registre sfest effondre en |ƒµ. = |0.0.0., il nfy a pas dferreur. . Si on obtient la mesure 0.1, alors on sait qufil y a une erreur qufil faut corriger en ajoutant un flip sur la troisieme ligne. Effectivement dans ce cas le premier registre sfest 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 sfest passe un phenomene appele discretisation de lferreur par la mesure : meme si lferreur 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 nfimporte quelle erreur du type E = aI + bX. I designe lfidentite 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 lfexemple avec les á ƒÃ â. Demonstration. On note |ƒÕ0. = ƒ¿|0.+ƒÀ |1. et |ƒÕ. = ƒ¿|0.0.0.+ƒÀ |1.1.1.. Si E = I, alors il nfy pas dferreur le qubit de sortie avant mesure est |ƒ³0. = |ƒÕ. |0.0.. Si E = X, alors on a deja vu que selon la ligne de lferreur, le qubit de sortie avant mesure est lfun des .ƒÕ 1 |1.1., .ƒÕ 2 |1.0., .ƒÕ 3 |0.1.. Si lferreur est aI + bX alors, par linearite le qubit de sortie avant mesure est par exemple |ƒ³. = a |ƒÕ. |0.0. + b .ƒÕ 1 |1.1. (ou lfune des deux autres situations). Lors de la mesure du second registre : . Si on obtient 0.0, alors on sait qufil nfy a rien a corriger. Effectivement dans ce cas le premier registre sfest effondre en |ƒÕ., il nfy a pas dferreur. . Si on obtient 1.1, alors on sait qufil y a une erreur qufil faut corriger en ajoutant un flip sur la premiere ligne. Effectivement dans ce cas le premier registre sfest 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 lfeventuelle erreur. Montrer que votre circuit detecte nfimporte 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 nfimporte 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 nfimporte 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 qufil fonctionne ! Donnons maintenant des explications theoriques. Nous modelisons une erreur E comme la transformation lineaire dfun 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 lfidentite : 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 lfespace vectoriel de dimension 4, M2(C). Ainsi nfimporte 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 dfinversion de phase, fait qufil corrige les erreurs X et Z (et aussi I). Il ne reste plus qufa traiter le cas de E = Y . Mais nous avons lfegalite : 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 dfun flip et dfune inversion de phase et sera bien corrigee par notre circuit. Notes. Ce cours nfest qufun apercu dfun 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 qufun ordinateur quantique sera plus performant qufun ordinateur classique ? 1. Lfavantage quantique 1.1. Une definition? Lfavantage quantique cfest deux choses : un ordinateur quantique et un probleme a resoudre. Cet ordinateur quantique sait resoudre ce probleme alors qufaucun ordinateur classique ne peut le faire en temps raisonnable. . La notion dfavantage 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 : lfordinateur quantique renvoie la bonne reponse en un temps raisonnable (disons en quelques heures ou quelques jours), mais il nfest pas clair de prouver qufaucun algorithme ne peut resoudre ce meme probleme sur un ordinateur classique (peut-etre qufun bon algorithme nfa 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 lfaspect 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. Dfautres definitions sont a inventer pour mesurer lfefficacite dfun 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 dferreurs. . . 1.2. Factorisation La factorisation des grands entiers est une bonne illustration. Rappelons qufetant donne un entier il sfagit de lui trouver deux facteurs tels que n = p ~ q. Tout dfabord cfest 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 jusqufa 250 chiffres (800 bits) (voir le chapitre á Arithmetique â). Les calculs se font sur des centaines dfordinateurs 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 dfune 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. Lfalgorithme de Shor demontre theoriquement lfavantage des ordinateurs quantiques car il permet de factoriser rapidement des grands entiers. En 2020 les ordinateurs quantiques possedent jusqufa 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 dfun 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). Nfimporte 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 (cfest un bon exercice). . Cependant les portes contenues dans lfenonce ne permettent pas de generer toutes les portes quantiques : cet ensemble de portes nfest 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. . Lfordinateur 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 lfinformatique quantique â), . la teleportation quantique (voir le chapitre á Teleportation quantique â), . les codes correcteurs dferreur (voir la section á Detection dfun flip â du chapitre á Code correcteur â). 3. Arbre de calculs La simulation dfun 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 lfon 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 dfun circuit sous la forme dfun arbre. En parcourant lfarbre branche par branche, on teste toutes les possibilites sans utiliser trop de memoire a chaque fois. La methode nfapporte 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 dfun circuit, avec un etat initial. Il sfagit dfobtenir tous les etats possibles que lfon pourrait obtenir apres mesure. La brique fondamentale a comprendre est lfarbre pour une porte H de Hadamard. AVANTAGE QUANTIQUE 219 Exemple. Soit le circuit quantique initialise par |0. suivi dfune 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 lfarbre de calculs. 0 1 0 Lfarbre de calculs represente tout simplement les deux possibilites. Lorsque lfon passe une porte H les feuilles de lfarbre 0 et 1 representent la superposition des etats |0. et |1.. Autrement dit les feuilles representent toutes les mesures possibles. On a simplifie lfecriture 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 lfon retrouve aux feuilles de notre arbre. 01 11 10 01 01 H CNOT Noter qufau passage de la porte CNOT lfarbre 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. Lfinteret de cet arbre est que les calculs dfune branche sont mis en commun tant qufil nfy 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 lfarbre 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 dfune serie de videos de Mickael Nielsen : á Quantum computing for the determined â Un des rares cours en francais est á Introduction a lfinformatique quantique â par Y. Leroyer et G. Senizergues a lfEnseirb-Matmeca disponible ici. Le chapitre á Algorithme de Shor â est base sur lfarticle Shorfs 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 lfintegralite des codes Python ainsi que tous les fichiers sources sur la page GitHub dfExo7 : á 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 dfEuclide, 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 dfun entier, 217 fonction dfonde, 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 dfEuler, 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 dfincertitude dfHeisenberg, 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 dfEuler, 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