« Les calculs quantiques dans la cryptologie » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
 
(120 versions intermédiaires par le même utilisateur non affichées)
Ligne 17 : Ligne 17 :
Nos ordinateurs classiques sont basés sur des transistors qui travaillent sur des données binaires (0 ou 1) qu'on appelle bit. L'ordinateur quantique, lui, est une machine basée sur les lois de la mécanique quantiques, c'est à dire le comportement des particules au niveau subatomique.
Nos ordinateurs classiques sont basés sur des transistors qui travaillent sur des données binaires (0 ou 1) qu'on appelle bit. L'ordinateur quantique, lui, est une machine basée sur les lois de la mécanique quantiques, c'est à dire le comportement des particules au niveau subatomique.


Ainsi, la représentation des données pour l’ordinateur quantique est appelé le Qubit. Le Qubit est composé de deux états (niveaux d'énergie) de bases : l'état fondamentale ∣0〉et l'état excité ∣1〉(prononcés Ket 0 et Ket 1). Ces deux états sont représenter sur l'atome par le déplacement d'un electron du spin 0 au spin 1 causé par un rayonnement (cf schéma ci-dessous).
Ainsi, la représentation des données pour l’ordinateur quantique est appelé le Qubit. Le Qubit est composé de deux états (niveaux d'énergies) de base : l'état fondamentale ∣0〉et l'état excité ∣1〉(prononcés Ket 0 et Ket 1). Ces deux états sont représentés sur l'atome par le déplacement d'un electron du spin 0 au spin 1 causé par un rayonnement (cf schéma ci-dessous).


[[Fichier:Atome.jpg|700px|center]]
[[Fichier:atomesQuantiques.PNG|center]]


=== Etat de superposition ===
=== Etat de superposition ===


En plus des deux états de bases, le qubit dispose d'un troisième état appelé superposition. Cet état est caractérisé par : '''les deux états de bases simultanément (en même temps).''' <br>
En plus des deux états de bases, le qubit dispose d'un troisième état appelé superposition. Cet état est caractérisé par : '''les deux états de base simultanément (en même temps).''' <br>
Ainsi nous pouvons représenter cet état par l'équation suivante : <math>|\psi> = \alpha|0> + \beta|1></math> <math>\alpha et \beta</math> représentent la probabilité respective d'être dans l'état |0> ou dans l'état |1>. De plus <math>\sqrt{|\alpha²|+|\beta²|} = 1</math>
Ainsi nous pouvons représenter cet état par l'équation suivante : <math>|\Psi> = \alpha|0> + \beta|1></math> avec <math>\sqrt{|\alpha|^2+|\beta|^2} = 1</math>.<br><math>\alpha</math> et <math>\beta</math> sont des nombres complexes représentant la probabilité respective d'être dans l'état |0> ou dans l'état |1>.<br>
[[Fichier:SuperpositionQuantique.png|center]]<br>
'''Exemple :'''<br>
Nous savons que un registre de n Qubit peut représenter les nombres de 0 à n²-1 simultanément. Donc pour un registre de 3 Qubits nous auront 8 états possibles par Qubit.<br> Une superposition également pondérée de tout les états possibles serait donc désignée par l'équation : <math>|\Psi> = \frac{1}{\sqrt{8}}|000> + \frac{1}{\sqrt{8}}|001> + ... + \frac{1}{\sqrt{8}}|111> </math>.

=== Intrication quantique ===

L'Intrication quantique est un phénomène quantique dans lequel deux particules (ou groupe de particules) forment un système lié et présentent des états quantiques dépendant l'un de l'autre et cela quelque soit la distance qui les sépare. En d'autres termes, si l'un des atomes est affecté alors l'atome lié avec lui sera lui aussi affecté.
[[Fichier:intricationQuantique.PNG|center]]

== Chiffrement RSA ==
=== Rappel algorithme ===
L'algorithme de Shor étant très efficace pour déchiffrer l'algorithme RSA, nous allons tout d'abord faire un rappel sur le chiffrement RSA :
[[Fichier:schemaRSA.PNG|center]]
Par rapport au schéma ci-dessus nous avons :
* le module de chiffrement <math>n</math> qui est le produit de deux nombres premiers <math>p</math> et <math>q</math>.
* <math>ab\equiv1(mod(p-1)(q-1)</math>.
* <math>n</math> et <math>b</math> sont la partie publique de la clé.
* <math>p</math>,<math>q</math> et <math>a</math> sont la partie privée de la clé.
=== Attaques RSA ===
Plusieurs attaques pour RSA existent mais ne fonctionnent qu'avec des conditions particulières ou prennent trop de temps :
* L'attaque de Wiener qui nécessite d'avoir <math>a<\frac{n^\frac{1}{4}}{3}</math> et <math>q<p<2q</math>
* L'attaque de Hastad qui ne fonctionne qu'avec l'exposant b petit
* L'attaque par chronométrage (timing attacks)
* L'algorithme de Pollard
* L’algorithme de Dixon
Un autre type d'attaque serait l'attaque par "force brute". Déchiffrer RSA de cette manière nécessite la factorisation du nombre <math>n</math> avec le produit initial des nombres <math>p</math> et <math>q</math>. Or, avec les algorithmes classiques le temps que prend cette factorisation croit de façon exponentielle avec la longueur de la clé.

=== Puissance des calculateurs quantiques ===
Pour factoriser un nombre N de 300 chiffres, le meilleur algorithme effectue environ <math>10^{26}</math> opérations. Or, un ordinateur classique a ses performances de l'ordre de 100 teraflops (<math>10^{14}</math> opérations). Il faudra donc environ <math>10^{12}</math> pour factoriser le nombre N ce qui correspond à 30 000 ans !.
Or, avec l'algorithme de Shor et un calculateur quantique, il suffira de 10 secondes pour factoriser ce nombre.

== L'algorithme de Shor ==
L'algorithme de Shor, nommé en l'honneur de son créateur Peter Shor, montre en principe qu'un ordinateur quantique est capable de factoriser de très grands nombres entiers en temps polynomiale : <math>O((log(N))^3)</math> et avec un espace faible : <math>O(log(N))</math>.<br>
Cet algorithme dépend de 3 points :<br>
* l'arithmétique modulaire
* le parallélisme quantique
* la transformée de Fourier quantique
=== Périodicité dans l'algorithme ===
Pour l'algorithme de Shor nous aurons besoin d'utiliser la fonction <math>F(a) = x^a mod(n)</math> qui est une fonction périodique.
'''Exemple'''<br>
Prenons n = 15 et x = 7. Avec la fonction ci-dessus nous obtenons :<br>
<math>7^0 mod(15) = 1</math><br>
<math>7^1 mod(15) = 7</math><br>
<math>7^2 mod(15) = 4</math><br>
<math>7^3 mod(15) = 13</math><br>
<math>7^4 mod(15) = 1</math><br>

=== Les différentes étapes de l'algorithme de Shor ===
Rappelons que cet algorithme est utilisé pour factoriser un grand entier N. Nous choisirons n = 15 à titre d'exemple.
==== Analyse ====
1. Prendre un entier <math>q = 2^L</math> tel que <math>N^2 < q < 2N^2</math><br>
2. Prendre un entier aléatoire <math> x < N </math> tel que <math>PGCD(x,N) = 1</math><br>
3. Création de deux registres quantiques (intriqués)<br>
* Input register : qubits représentant q-1<br>
* Output register : qubit représentant N-1<br>
4. Chargement du registre d'entrée avec une superposition de pondération égale de tous les entiers de 0 à q-1<br>
5. Chargement du registre de sortie avec des zéros.<br>
A ce moment, l'état général du système est : <math>\frac{1}{\sqrt{q}}\sum_{a=0}^{q-1} |In,Out></math><br>
'''''Remarque: La virgule indique ici que les registres sont intriqués.'''''

==== Arithmétique modulaire ====
6. Appliquez la transformation <math>F(a) = x^a mod(n)</math> à chaque nombre du registre d'entrée et enregistrer le résultat de chaque calculs dans le registre de sortie.
[[Fichier:registresQuantiques.PNG|center]]
'''''Remarque: Nous utilisons ici des nombres décimaux uniquement pour des raisons de simplicité'''''

==== Réduction en superposition ====
7. Nous pouvons à présent prendre une mesure sur le registre de sortie. Cela réduira la superposition pour ne représenter qu'un des résultats de la transformation. Appelons cette valeur c.<br>
Ainsi, notre registre de sortie se réduira pour représenter l'un des éléments suivants : |1>, |4>, |7> ou|13>. Nous choisirons par exemple |1>.

==== Intrication quantique ====
Puisque les deux registres sont intriqués, la mesure du registre de sortie aura pour effet de réduire partiellement le registre d'entrée en une superposition égale à chaque état compris entre 0 et q-1 ayant donné Out (la valeur du registre de sortie réduit).
Ainsi comme le registre est réduit à |1> le registre d'entrée sera lui réduit partiellement à : <math>\frac{1}{\sqrt{64}} |0> + \frac{1}{\sqrt{64}} |4> + \frac{1}{\sqrt{64}}|8> + \frac{1}{\sqrt{64}}|12> + ...</math><br>
La probabilité dans ce cas est de 64 étant donné que le registre est en superposition égale (0,4,8,12,..,252).

==== Transformée de Fourier Quantique ====
8. Nous appliquons maintenant la transformation de Fourier Quantique sur le registre d'entrée partiellement réduit. La transformée de Fourier a pour effet de prendre un état ∣a〉 et de le transformer en un état donné par : <math>|In> = \frac{1}{\sqrt{q}}\sum_{k=0}^{q-1} |Out>*e^{2\pi i\frac{aOut}{q}}</math><br>
Donc, l'état final du registre d'entrée après la transformation de Fourier Quantique est : <math>\frac{1}{\sqrt{64}}\sum_{a\in A}|In>,|1></math><br>
'''''Remarque : A est l'ensemble de toutes les valeurs où 7a mod 15 a donné ∣1〉. Dans notre cas, A = {0, 4, 8,…, 252}'''''<br><br>
Ainsi on aura comme résultat final (avec la valeur du registre d'entrée |In> détaillée au dessus) : <math>\frac{1}{\sqrt{64}}\sum_{a\in A}(\frac{1}{\sqrt{q}}\sum_{k=0}^{q-1} |Out>*e^{2\pi i\frac{aOut}{q}}),|1></math><br><br>
La transformée de Fourier Quantique atteindra essentiellement les amplitudes de probabilité avec des multiples de q/4 (256/4 = 64 pour notre cas) ce qui donnera comme possibilités : ∣0〉, ∣64〉, ∣128〉, ∣192〉, …<br>
Nous n’avons donc plus une superposition égale d’états, les amplitudes de probabilité des états ci-dessus sont maintenant supérieures à celles des autres états de notre registre. Nous mesurons le registre et celui-ci s’effondrera avec une probabilité élevée à l’un de ces multiples de 64, appelons cette valeur '''p'''.<br>
Avec notre connaissance de q et p, il existe des méthodes de calcul de la période (une méthode est l’expansion en fraction continue du rapport entre q et p.)<br><br>

==== Résultat ====
9. Les facteurs de N peuvent être déterminés en prenant le plus grand commun diviseur de N en ce qui concerne :<br>
[[Fichier:equationQuantique.PNG]]<br>
Maintenant le calcul suivant peut être fait par un ordinateur classique et on aura donc :<br>[[Fichier:resultatQuantique.PNG|center]]

== Conclusion ==
Vous avez pu voir qu'avec ces nouveaux algorithmes sur les machines quantiques il sera très facile de déchiffrer tous les les chiffrement qui sont pour l'instant "indéchiffrable" sur des machines classiques comme pour le chiffrement RSA.<br>
Néanmoins, les ordinateurs quantiques sont encore en phase de développement et disposent de plusieurs inconvénients :
* Les états de la mécanique quantique sont toujours imprévisibles, ce qui rend difficile la récupération des données.
* Les ordinateurs quantiques ne sont pas universellement rapides, mais plus rapides pour les types spéciaux de nombreux calculs.
* Ils nécessitent une isolation totale par rapport à l'environnement classique et difficile à atteindre par des états quantiques spéciaux.

Dernière version du 25 novembre 2018 à 18:59

Auteurs : Estopinan Raphaël et Rafik Abdellatif

La cryptologie est un art très ancien né dans l'antiquité mais c'est que depuis les années 1970 et l'arrivée du numérique que des recherches ont été effectuées pour pouvoir protéger les donner et ainsi chiffrer ces dernières. Ainsi plusieurs algorithmes ont été conçus et sont pour la plupart suffisamment performants pour que un "hacker" ne puisse récupérer les données circulant sur les réseaux. Cependant, nous verrons que, avec l'arrivée des ordinateurs quantiques et leur puissance de calcul incomparable avec les ordinateurs classiques, la plupart de ces algorithmes sont devenus inefficaces. Nous verrons ainsi dans ce cours comment la méthode de chiffrement RSA peut être facilement déjouée avec les algorithmes créés pour les ordinateurs quantiques et en particulier l'algorithme de Shor.

Le calcul quantique, son histoire ...

C'est en 1982 que le physicien et chercheur Richard Feynman a eu l'idée de créer des machines basées sur les lois de la mécanique quantique en remplaçant celles de la physique classique.

En 1985, David Deutsch reprenant les recherches de M. Feynman développa une machine quantique de Turing qui exposa toute la puissance de calcul des machines quantiques et expliqua que les portes quantiques pourraient fonctionner de la même manière que les portes logiques binaires des ordinateurs classiques.

Enfin, c'est en 2009 que l'Université de Yale créa le premier processeur quantique qui comportaient deux qubits composés chacun d'un milliard d’atomes d’aluminium.

Représentation des données : Qubit

Etats de base :

Nos ordinateurs classiques sont basés sur des transistors qui travaillent sur des données binaires (0 ou 1) qu'on appelle bit. L'ordinateur quantique, lui, est une machine basée sur les lois de la mécanique quantiques, c'est à dire le comportement des particules au niveau subatomique.

Ainsi, la représentation des données pour l’ordinateur quantique est appelé le Qubit. Le Qubit est composé de deux états (niveaux d'énergies) de base : l'état fondamentale ∣0〉et l'état excité ∣1〉(prononcés Ket 0 et Ket 1). Ces deux états sont représentés sur l'atome par le déplacement d'un electron du spin 0 au spin 1 causé par un rayonnement (cf schéma ci-dessous).

AtomesQuantiques.PNG

Etat de superposition

En plus des deux états de bases, le qubit dispose d'un troisième état appelé superposition. Cet état est caractérisé par : les deux états de base simultanément (en même temps).
Ainsi nous pouvons représenter cet état par l'équation suivante : avec .
et sont des nombres complexes représentant la probabilité respective d'être dans l'état |0> ou dans l'état |1>.

SuperpositionQuantique.png


Exemple :
Nous savons que un registre de n Qubit peut représenter les nombres de 0 à n²-1 simultanément. Donc pour un registre de 3 Qubits nous auront 8 états possibles par Qubit.
Une superposition également pondérée de tout les états possibles serait donc désignée par l'équation : .

Intrication quantique

L'Intrication quantique est un phénomène quantique dans lequel deux particules (ou groupe de particules) forment un système lié et présentent des états quantiques dépendant l'un de l'autre et cela quelque soit la distance qui les sépare. En d'autres termes, si l'un des atomes est affecté alors l'atome lié avec lui sera lui aussi affecté.

IntricationQuantique.PNG

Chiffrement RSA

Rappel algorithme

L'algorithme de Shor étant très efficace pour déchiffrer l'algorithme RSA, nous allons tout d'abord faire un rappel sur le chiffrement RSA :

SchemaRSA.PNG

Par rapport au schéma ci-dessus nous avons :

  • le module de chiffrement qui est le produit de deux nombres premiers et .
  • .
  • et sont la partie publique de la clé.
  • , et sont la partie privée de la clé.

Attaques RSA

Plusieurs attaques pour RSA existent mais ne fonctionnent qu'avec des conditions particulières ou prennent trop de temps :

  • L'attaque de Wiener qui nécessite d'avoir et
  • L'attaque de Hastad qui ne fonctionne qu'avec l'exposant b petit
  • L'attaque par chronométrage (timing attacks)
  • L'algorithme de Pollard
  • L’algorithme de Dixon

Un autre type d'attaque serait l'attaque par "force brute". Déchiffrer RSA de cette manière nécessite la factorisation du nombre avec le produit initial des nombres et . Or, avec les algorithmes classiques le temps que prend cette factorisation croit de façon exponentielle avec la longueur de la clé.

Puissance des calculateurs quantiques

Pour factoriser un nombre N de 300 chiffres, le meilleur algorithme effectue environ opérations. Or, un ordinateur classique a ses performances de l'ordre de 100 teraflops ( opérations). Il faudra donc environ pour factoriser le nombre N ce qui correspond à 30 000 ans !. Or, avec l'algorithme de Shor et un calculateur quantique, il suffira de 10 secondes pour factoriser ce nombre.

L'algorithme de Shor

L'algorithme de Shor, nommé en l'honneur de son créateur Peter Shor, montre en principe qu'un ordinateur quantique est capable de factoriser de très grands nombres entiers en temps polynomiale : et avec un espace faible : .
Cet algorithme dépend de 3 points :

  • l'arithmétique modulaire
  • le parallélisme quantique
  • la transformée de Fourier quantique

Périodicité dans l'algorithme

Pour l'algorithme de Shor nous aurons besoin d'utiliser la fonction qui est une fonction périodique. Exemple
Prenons n = 15 et x = 7. Avec la fonction ci-dessus nous obtenons :





Les différentes étapes de l'algorithme de Shor

Rappelons que cet algorithme est utilisé pour factoriser un grand entier N. Nous choisirons n = 15 à titre d'exemple.

Analyse

1. Prendre un entier tel que
2. Prendre un entier aléatoire tel que
3. Création de deux registres quantiques (intriqués)

  • Input register : qubits représentant q-1
  • Output register : qubit représentant N-1

4. Chargement du registre d'entrée avec une superposition de pondération égale de tous les entiers de 0 à q-1
5. Chargement du registre de sortie avec des zéros.
A ce moment, l'état général du système est :
Remarque: La virgule indique ici que les registres sont intriqués.

Arithmétique modulaire

6. Appliquez la transformation à chaque nombre du registre d'entrée et enregistrer le résultat de chaque calculs dans le registre de sortie.

RegistresQuantiques.PNG

Remarque: Nous utilisons ici des nombres décimaux uniquement pour des raisons de simplicité

Réduction en superposition

7. Nous pouvons à présent prendre une mesure sur le registre de sortie. Cela réduira la superposition pour ne représenter qu'un des résultats de la transformation. Appelons cette valeur c.
Ainsi, notre registre de sortie se réduira pour représenter l'un des éléments suivants : |1>, |4>, |7> ou|13>. Nous choisirons par exemple |1>.

Intrication quantique

Puisque les deux registres sont intriqués, la mesure du registre de sortie aura pour effet de réduire partiellement le registre d'entrée en une superposition égale à chaque état compris entre 0 et q-1 ayant donné Out (la valeur du registre de sortie réduit). Ainsi comme le registre est réduit à |1> le registre d'entrée sera lui réduit partiellement à :
La probabilité dans ce cas est de 64 étant donné que le registre est en superposition égale (0,4,8,12,..,252).

Transformée de Fourier Quantique

8. Nous appliquons maintenant la transformation de Fourier Quantique sur le registre d'entrée partiellement réduit. La transformée de Fourier a pour effet de prendre un état ∣a〉 et de le transformer en un état donné par :
Donc, l'état final du registre d'entrée après la transformation de Fourier Quantique est :
Remarque : A est l'ensemble de toutes les valeurs où 7a mod 15 a donné ∣1〉. Dans notre cas, A = {0, 4, 8,…, 252}

Ainsi on aura comme résultat final (avec la valeur du registre d'entrée |In> détaillée au dessus) :

La transformée de Fourier Quantique atteindra essentiellement les amplitudes de probabilité avec des multiples de q/4 (256/4 = 64 pour notre cas) ce qui donnera comme possibilités : ∣0〉, ∣64〉, ∣128〉, ∣192〉, …
Nous n’avons donc plus une superposition égale d’états, les amplitudes de probabilité des états ci-dessus sont maintenant supérieures à celles des autres états de notre registre. Nous mesurons le registre et celui-ci s’effondrera avec une probabilité élevée à l’un de ces multiples de 64, appelons cette valeur p.
Avec notre connaissance de q et p, il existe des méthodes de calcul de la période (une méthode est l’expansion en fraction continue du rapport entre q et p.)

Résultat

9. Les facteurs de N peuvent être déterminés en prenant le plus grand commun diviseur de N en ce qui concerne :
EquationQuantique.PNG

Maintenant le calcul suivant peut être fait par un ordinateur classique et on aura donc :

ResultatQuantique.PNG

Conclusion

Vous avez pu voir qu'avec ces nouveaux algorithmes sur les machines quantiques il sera très facile de déchiffrer tous les les chiffrement qui sont pour l'instant "indéchiffrable" sur des machines classiques comme pour le chiffrement RSA.
Néanmoins, les ordinateurs quantiques sont encore en phase de développement et disposent de plusieurs inconvénients :

  • Les états de la mécanique quantique sont toujours imprévisibles, ce qui rend difficile la récupération des données.
  • Les ordinateurs quantiques ne sont pas universellement rapides, mais plus rapides pour les types spéciaux de nombreux calculs.
  • Ils nécessitent une isolation totale par rapport à l'environnement classique et difficile à atteindre par des états quantiques spéciaux.