« Les calculs quantiques dans la cryptologie » : différence entre les versions
Ligne 84 : | Ligne 84 : | ||
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> |
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.''''' |
'''''Remarque: La virgule indique ici que les registres sont intriqués.''''' |
||
# jb |
Version du 25 novembre 2018 à 10:57
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'é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).
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).
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>.
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é.
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 :
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
- Prendre un entier tel que
- Prendre un entier aléatoire tel que
- Création de deux registres quantiques (intriqués)
- Input register : qubits représentant q-1
- Output register : qubit représentant N-1
- Chargement du registre d'entrée avec une superposition de pondération égale de tous les entiers de 0 à q-1
- 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.
- jb