Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Algorithme de Shor — Wikipédia
Algorithme de Shor — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Les informations figurant dans cet article ou cette section doivent être reliées aux sources mentionnées dans les sections « Bibliographie », « Sources » ou « Liens externes » (février 2014).

Vous pouvez améliorer la vérifiabilité en associant ces informations à des références à l'aide d'appels de notes.

En arithmétique modulaire et en informatique quantique, l’algorithme de Shor est un algorithme quantique conçu par Peter Shor en 1994, qui factorise un entier naturel N en temps O ( ( log ⁡ N ) 3 ) {\displaystyle ((\log N)^{3})} {\displaystyle ((\log N)^{3})} et en espace O ( log ⁡ N ) {\displaystyle O(\log N)} {\displaystyle O(\log N)}.

Beaucoup de cryptosystèmes à clé publique, tels que le RSA, deviendraient vulnérables si l'algorithme de Shor était un jour implémenté dans un calculateur quantique pratique. Un message chiffré avec RSA peut être déchiffré par factorisation de sa clé publique N, qui est le produit de deux nombres premiers. En l'état actuel des connaissances, il n'existe pas d'algorithme classique capable de faire cela en temps O ( ( log ⁡ N ) k ) {\displaystyle O((\log N)^{k})} {\displaystyle O((\log N)^{k})} pour n'importe quel k. Les algorithmes classiques connus deviennent donc rapidement impraticables quand N augmente, à la différence de l'algorithme de Shor qui peut casser le RSA en temps polynomial. Il a été aussi étendu pour attaquer beaucoup d'autres cryptosystèmes à clé publique. Cet algorithme a suscité le développement récent de la cryptographie post-quantique, non-vulnérable à l'algorithme de Shor ou ses variantes.

Comme la plupart des algorithmes pour calculateur quantique, l'algorithme de Shor est probabiliste : il donne la réponse correcte avec une haute probabilité et la probabilité d'échec peut être diminuée en répétant l'algorithme.

L'algorithme de Shor fut utilisé en 2001 par un groupe d'IBM, qui factorisa 15 en 3 et 5, en utilisant un calculateur quantique de 7 qubits. Vingt cinq ans plus tard le record du plus grand entier factorisé en pratique par l'algorithme de Shor n'a pas été grandement amélioré et stagne toujours de l'ordre de 32[1].

Procédure

[modifier | modifier le code]

Soit N un entier naturel donné. L’algorithme de Shor vise à chercher un entier p compris entre 2 et N {\displaystyle {\sqrt {N}}} {\displaystyle {\sqrt {N}}} qui divise N.

Il consiste en deux éléments[2]:

  1. Une réduction du problème de factorisation en un problème de recherche d'ordre, qui peut être effectuée sur un ordinateur classique.
  2. Un algorithme quantique pour résoudre le problème de recherche d'ordre.

Partie classique

[modifier | modifier le code]
  1. Prendre un nombre pseudo-aléatoire a < N
  2. Calculer PGCD(a, N). Ceci peut être effectué par l'utilisation de l'algorithme d'Euclide[2];
    1. Si PGCD(a, N) ≠ 1, alors c'est un facteur non trivial de N, ce qui donne une solution au problème.
    2. Sinon, utiliser le sous-programme de recherche de période (ci-dessous) pour trouver r, la période de la fonction f : x ↦ a x   mod   N {\displaystyle f:x\mapsto a^{x}\ {\mbox{mod}}\ N} {\displaystyle f:x\mapsto a^{x}\ {\mbox{mod}}\ N}, c’est-à-dire le plus petit entier r pour lequel f ( x + r ) = f ( x ) {\displaystyle f(x+r)=f(x)} {\displaystyle f(x+r)=f(x)}.
  3. Si r est impair, retourner à l'étape 1.
  4. Si a r/2 ≡ −1 (mod N), retourner à l'étape 1.
  5. Les facteurs de N sont PGCD(ar/2 ± 1, N), ce qui résout le problème.

Partie quantique : sous-programme de recherche de période

[modifier | modifier le code]
  1. Commencer avec des registres d'entrée et de sortie de chacun log2N qubits, et les initialiser à :
    1 N ∑ x | x ⟩ | 0 ⟩ {\displaystyle {\frac {1}{\sqrt {N}}}\sum _{x}\left|x\right\rangle \left|0\right\rangle } {\displaystyle {\frac {1}{\sqrt {N}}}\sum _{x}\left|x\right\rangle \left|0\right\rangle }
    où x va de 0 à N – 1.
  2. Construire f(x) comme une fonction quantique et l'appliquer à l'état précédent, pour obtenir
    1 N ∑ x | x ⟩ | f ( x ) ⟩ {\displaystyle {\frac {1}{\sqrt {N}}}\sum _{x}\left|x\right\rangle \left|f(x)\right\rangle } {\displaystyle {\frac {1}{\sqrt {N}}}\sum _{x}\left|x\right\rangle \left|f(x)\right\rangle }
  3. Appliquer la transformée de Fourier quantique au registre d'entrée. La transformée de Fourier quantique sur N points est définie par :
    U Q F T | x ⟩ = 1 N ∑ y e 2 π i x y / N | y ⟩ {\displaystyle U_{QFT}\left|x\right\rangle ={\frac {1}{\sqrt {N}}}\sum _{y}e^{2\pi ixy/N}\left|y\right\rangle } {\displaystyle U_{QFT}\left|x\right\rangle ={\frac {1}{\sqrt {N}}}\sum _{y}e^{2\pi ixy/N}\left|y\right\rangle }
    Ce qui donne l'état suivant :
    1 N ∑ x ∑ y e 2 π i x y / N | y ⟩ | f ( x ) ⟩ {\displaystyle {\frac {1}{N}}\sum _{x}\sum _{y}e^{2\pi ixy/N}\left|y\right\rangle \left|f(x)\right\rangle } {\displaystyle {\frac {1}{N}}\sum _{x}\sum _{y}e^{2\pi ixy/N}\left|y\right\rangle \left|f(x)\right\rangle }
  4. Effectuer une mesure. On obtient ainsi une certaine valeur y dans le registre d'entrée et f ( x 0 ) {\displaystyle f(x_{0})} {\displaystyle f(x_{0})} dans le registre de sortie. Comme f est périodique, la probabilité de mesurer un certain y est donnée par
    | 1 N ∑ x : f ( x ) = f ( x 0 ) e 2 π i x y / N | 2 = | 1 N ∑ b e 2 π i ( x 0 + r b ) y / N | 2 {\displaystyle \left|{\frac {1}{N}}\sum _{x:\,f(x)=f(x_{0})}e^{2\pi ixy/N}\right|^{2}=\left|{\frac {1}{N}}\sum _{b}e^{2\pi i(x_{0}+rb)y/N}\right|^{2}} {\displaystyle \left|{\frac {1}{N}}\sum _{x:\,f(x)=f(x_{0})}e^{2\pi ixy/N}\right|^{2}=\left|{\frac {1}{N}}\sum _{b}e^{2\pi i(x_{0}+rb)y/N}\right|^{2}}
    Le calcul montre que cette probabilité est plus haute quand y × r / N {\displaystyle y\times r/N} {\displaystyle y\times r/N} est proche d'un entier.
  5. Mettre y/N sous forme irréductible, et extraire le dénominateur r′, qui est un candidat pour r.
  6. Vérifier si f(x) = f(x + r′). Si c'est le cas, c'est terminé.
  7. Autrement, obtenir plus de candidats pour r en utilisant des valeurs proches de y, ou multiples de r′. Si un autre candidat marche, c'est terminé.
  8. Sinon, retourner à l'étape 1 du sous-programme.

Explication de l'algorithme

[modifier | modifier le code]

L'algorithme est composé de deux parties. La première partie transforme le problème de factorisation en un problème de recherche de période d'une fonction et peut être programmé de façon classique[2]. La seconde partie trouve la période en utilisant la transformée de Fourier quantique et est responsable de l'accélération par rapport aux meilleurs algorithmes de factorisation classiques[2].

Obtenir des facteurs à partir de la période

[modifier | modifier le code]

Les entiers inférieurs à N et premiers avec N forment un groupe fini muni de la multiplication modulo N, qui est typiquement noté (Z/NZ)×. La fin de l'étape 3 permet de déterminer un entier a dans ce groupe. Comme le groupe est fini, a possède (d'après le théorème d'Euler) un ordre fini r, défini comme plus petit entier positif tel que

a r ≡ 1   mod   N {\displaystyle a^{r}\equiv 1\ {\mbox{mod}}\ N} {\displaystyle a^{r}\equiv 1\ {\mbox{mod}}\ N}

Par conséquent, N | (a r – 1). Supposons qu’il soit possible de déterminer r, et que celui-ci est pair. Alors

a r − 1 = ( a r / 2 − 1 ) ( a r / 2 + 1 ) ≡ 0   mod   N {\displaystyle a^{r}-1=(a^{r/2}-1)(a^{r/2}+1)\equiv 0\ {\mbox{mod}}\ N} {\displaystyle a^{r}-1=(a^{r/2}-1)(a^{r/2}+1)\equiv 0\ {\mbox{mod}}\ N}, d’où N   | ( a r / 2 − 1 ) ( a r / 2 + 1 ) {\displaystyle N\ |(a^{r/2}-1)(a^{r/2}+1)} {\displaystyle N\ |(a^{r/2}-1)(a^{r/2}+1)}

r est le plus petit entier positif tel que N divise (a r – 1), donc N ne peut pas diviser (a r / 2 – 1). Si N ne divise pas non plus (a r / 2 + 1), alors N doit avoir un facteur commun non-trivial avec chacun des (a r / 2 – 1) et (a r / 2 + 1).

Preuve : notons (a r / 2 – 1) et (a r / 2 + 1) par u et v respectivement. N | uv, donc kN = uv pour un certain entier k. Supposons que PGCD(u, N) = 1 ; alors mu + nN = 1 pour certains entiers m et n (identité de Bézout). En multipliant de part et d’autre par v, l’on trouve que mkN + nvN = v, donc N | v. Par contradiction, PGCD(u, N) ≠ 1. Par un argument similaire, PGCD(v, N) ≠ 1.

Ceci fournit une factorisation de N. Si N est le produit de deux nombres premiers, elle est la seule factorisation possible.

Trouver la période

[modifier | modifier le code]

L'algorithme de recherche de période de Shor est fortement relié à la capacité d'un calculateur quantique à être dans de nombreux états simultanément. Les physiciens appellent ce comportement une « superposition » d'états. Pour calculer la période d'une fonction f, nous évaluons la fonction en tous ses points simultanément.

Pourtant, la physique quantique ne nous permet pas d'accéder à toute l'information directement. Une mesure fournira seulement une parmi toutes les valeurs possibles en détruisant toutes les autres. Par conséquent nous avons à transformer avec précaution la superposition en un autre état qui retournera la réponse correcte avec une haute probabilité. Ceci est accompli par la transformée de Fourier quantique.

Shor eut ainsi à résoudre trois problèmes : Tous ont été résolus « rapidement », c'est-à-dire avec un nombre de portes quantiques polynomial en log ⁡ N {\displaystyle \log N} {\displaystyle \log N}.

  1. Créer une superposition d'états. Ceci peut être fait en appliquant des portes d'Hadamard à tous les qubits dans le registre d'entrée. Une autre approche serait d'utiliser la transformée de Fourier quantique (voir ci-dessous).
  2. Implémenter la fonction f comme une transformation quantique. Pour accomplir cela, Shor utilisa l'élévation au carré pour sa transformation d'exponentiation modulaire.
  3. Exécuter une transformation de Fourier quantique. En utilisant les portes NON contrôlées et les portes qubit à rotation unique, Shor conçut un circuit pour la transformée de Fourier quantique qui utilise juste O ( ( log ⁡ N ) 2 ) {\displaystyle O((\log N)^{2})} {\displaystyle O((\log N)^{2})} portes.

Après toutes ces transformations, une mesure fournit une approximation de la période r. Pour simplifier, assurons nous qu'il existe un y tel que yr/N soit un entier. Alors la probabilité de mesurer y est 1. Pour voir cela, notons qu'alors e 2 π i b y r / N = 1 {\displaystyle e^{2\pi ibyr/N}=1\,} {\displaystyle e^{2\pi ibyr/N}=1\,} pour tous les entiers b. Par conséquent, la somme qui nous donne la probabilité de mesurer y sera de N/r comme b prend globalement N/r valeurs et ainsi, la probabilité est 1/r. Il existe r y tels que yr/N soit un entier donc les probabilités totalisent 1.

Note : une autre manière d'expliquer l'algorithme de Shor est de noter que c'est juste l'algorithme d'estimation de phase quantique déguisé.

Complexité

[modifier | modifier le code]
Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Pour un nombre entier N ayant n {\displaystyle n} {\displaystyle n} bits la complexité temporelle de l'algorithme de Shor est O ( n 3 ) {\displaystyle O(n^{3})} {\displaystyle O(n^{3})}, c'est-à-dire O ( ( l o g ( N ) ) 3 ) {\displaystyle O((log(N))^{3})} {\displaystyle O((log(N))^{3})}[réf. nécessaire]. Pour la partie classique de l'algorithme, l'essentiel de la complexité vient de l'utilisation de l'algorithme d'Euclide en O ( n 2 ) {\displaystyle O(n^{2})} {\displaystyle O(n^{2})} qui est répété tant que l'on ne trouve pas de nombre dont l'ordre convient[réf. nécessaire].

Mise en œuvre concrète

[modifier | modifier le code]

Pour être applicable en pratique sur des nombres entiers trop grands pour être factorisés par des ordinateurs classiques, l'algorithme de Shor nécessite de l'ordre d'un millier de portes logiques quantiques complexes, et soit un nombre élevé de qbits de redondance soit des qbits ayant un taux d'erreur bien plus faible que ceux obtenus par les physiciens[2]. De ce fait en 2001 le plus grand nombre factorisé par cette méthode était 15[3]. En 2022 le plus grand nombre effectivement factorisé par un l'algorithme de Shor exécuté sur un ordinateur quantique est toujours un nombre à deux chiffres[2],[4]. Le développement technologique des ordinateurs quantiques efficaces, dont les spécialistes ignorent même s'il est possible, est ainsi bien plus lent que celui de la cryptographie post-quantique qu'il a provoqué[2].

Notes et références

[modifier | modifier le code]
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Shor's algorithm » (voir la liste des auteurs).
  1. ↑ Des chercheurs de l’Arizona State University annoncent avoir cassé une clef cryptographique de 5 bits
  2. ↑ a b c d e f et g Julien Bobroff, Bienvenue dans la nouvelle révolution quantique : Ordinateurs, cryptographie, Internet, spatial : pourquoi le XXe siècle sera quantique, Flammarion, coll. « Champs sciences », 2025 (1re éd. 2022), 337 p. (ISBN 978-2-0804-6945-8), chap. 9 (« Un espion quantique »).
  3. ↑ (en) Michael Ross, « IBM's Test-Tube Quantum Computer Makes History », sur Web Archive ibm.com, 19 décembre 2001 (consulté le 8 août 2022).
  4. ↑ « Un algorithme quantique à l’épreuve de l’expérience », sur pourlascience.fr

Annexes

[modifier | modifier le code]

Bibliographie

[modifier | modifier le code]
  • (en) Peter W. Shor, Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. « quant-ph/9508027 », texte en accès libre, sur arXiv.
  • (en) Michael A. Nielsen et Isaac L. Chuang, Quantum Computation and Quantum Information, Cambridge University Press, 2000
    Un livre généraliste sur le calcul quantique
  • (en) David Zierler et Ryan Dahn, « Peter Shor on the genesis of Shor’s algorithm », Physics Today,‎ 7 mars 2025 (DOI 10.1063/pt.ifad.hcakdoi= Accès libre).

Articles connexes

[modifier | modifier le code]
  • Information quantique
  • Algorithme de Grover
  • Algorithme de Deutsch-Jozsa

Liens externes

[modifier | modifier le code]
  • Une explication de l'algorithme de Shor, sans calculs, sur le blog de Scott Aaronson
  • Exemple de programme calculant l'algorithme de Shor en Python (avec des performances plus limitées que sur ordinateur quantique)
  • icône décorative Arithmétique et théorie des nombres
  • icône décorative Portail de l'informatique théorique
  • icône décorative Portail des sciences quantiques
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Algorithme_de_Shor&oldid=230636605 ».
Catégories :
  • Théorie de l'information quantique
  • Informatique quantique
  • Algorithme de factorisation des entiers
Catégories cachées :
  • Article avec source à lier
  • Article avec une section vide ou incomplète
  • Article à référence nécessaire
  • Portail:Arithmétique et théorie des nombres/Articles liés
  • Portail:Sciences/Articles liés
  • Portail:Mathématiques/Articles liés
  • Portail:Informatique théorique/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Sciences quantiques/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id