Distribution quantique de clés
Pour ce module Qiskit en classe, les étudiants doivent disposer d'un environnement Python fonctionnel avec les packages suivants installés :
qiskitv2.1.0 ou plus récentqiskit-ibm-runtimev0.40.1 ou plus récentqiskit-aerv0.17.0 ou plus récentqiskit.visualizationnumpypylatexenc
Pour configurer et installer les packages ci-dessus, consulte le guide Installer Qiskit. Pour exécuter des jobs sur de vrais ordinateurs quantiques, les étudiants devront créer un compte IBM Quantum® en suivant les étapes du guide Configurer ton compte IBM Cloud.
Ce module a été testé et a utilisé 5 secondes de temps QPU. Il s'agit d'une estimation uniquement. Ton utilisation réelle peut varier.
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-aer qiskit-ibm-runtime
# Uncomment and modify this line as needed to install dependencies
#!pip install 'qiskit>=2.1.0' 'qiskit-ibm-runtime>=0.40.1' 'qiskit-aer>=0.17.0' 'numpy' 'pylatexenc'
Regarde la présentation du module par Dr. Katie McCormick ci-dessous, ou clique ici pour la visionner sur YouTube.
Introduction et motivation
Il existe une infinité de façons de chiffrer et de déchiffrer des informations, et littéralement des milliers de méthodes ont été bien étudiées. Ici, nous nous limiterons à une méthode de chiffrement très ancienne et très simple, appelée « substitution simple », afin de nous concentrer sur la partie quantique de ce protocole. La partie quantique pourrait être adaptée à de nombreux autres protocoles avec relativement peu de modifications.
Substitution simple
Un chiffrement par substitution simple est un chiffrement dans lequel une lettre ou un chiffre est remplacé par un autre, de telle sorte qu'il existe une correspondance 1:1 entre les lettres et les chiffres d'un message et les lettres et les chiffres utilisés dans la séquence chiffrée. Un exemple populaire de ce type de chiffrement est le puzzle cryptoquote ou cryptogramme, dans lequel une citation ou une phrase est chiffrée par substitution simple, et le joueur doit la déchiffrer. Ces puzzles sont faciles à résoudre s'ils sont suffisamment longs. Considère l'exemple suivant :
R WVXRWVW GSZG R'W YVGGVI NZPV GSRH KIVGGB OLMT. GSZG DZB, KVLKOV DROO SZEV ZM VZHRVI GRNV HLOERMT RG. R SLKV R NZWV RG HRNKOV VMLFTS.
Les personnes qui résolvent ces puzzles à la main utilisent principalement des astuces liées à leur familiarité avec la structure de la langue du message original. Par exemple, en anglais, les seuls mots d'une lettre comme le « R » chiffré sont « a » et « I ». Les lettres doubles chiffrées dans, par exemple, « KIVGGB » ne peuvent prendre que certaines valeurs. Il y a des choses plus subtiles qui donnent des indices, comme le fait que le mot le plus courant correspondant au motif « GSZG » est « that ». Les personnes qui utilisent du code pour résoudre ces puzzles disposent de bien plus d'options, notamment en parcourant les possibilités jusqu'à ce qu'un mot anglais soit trouvé, et en mettant à jour tout en conservant ce mot. Une méthode simple mais puissante consiste à utiliser la fréquence des lettres, surtout lorsque le message est suffisamment long pour constituer un échantillon représentatif de l'anglais.
Question de vérification
Essaie de déchiffrer ce message si tu le souhaites, bien que ce ne soit pas nécessaire pour le reste du module. Clique sur le triangle ci-dessous pour voir le message.
Réponse :
I decided that I'd better make this pretty long. That way, people will have an easier time solving it. I hope I made it simple enough.
L'exemple ci-dessus est associé à une « clé », une correspondance entre les lettres chiffrées et les lettres déchiffrées. Dans ce cas, la clé est :
- A (non utilisé, appelons-le Z)
- B->Y
- C (non utilisé, appelons-le X)
- D->W
- E->V
- F->U
- ...
Et ainsi de suite. Pour le dire avec euphémisme, ce n'est pas une bonne clé. Les clés dans lesquelles les lettres chiffrées et déchiffrées sont simplement des versions décalées de l'alphabet (comme A->B et B->C) sont appelées chiffrements « César ».
Note que ces chiffrements sont très difficiles à casser s'ils sont courts. En fait, s'ils sont très courts, ils sont indéterminés. Considère :
URYYP
Il existe de nombreux déchiffrements possibles, avec des clés différentes : HELLO, PETTY, HAPPY, JIGGY, STOOL. Peux-tu en trouver d'autres ?
Mais si tu envoies de nombreux messages comme celui-ci, le chiffrement finira par être cassé. Tu ne devrais donc pas utiliser la même « clé » trop souvent. En fait, le mieux est d'utiliser une certaine substitution une seule fois. Pas dans un seul message, mais uniquement pour un seul caractère ! Par là, nous entendons que tu auras un schéma de chiffrement ou une clé pour chaque caractère utilisé dans le message, dans l'ordre. Si tu veux envoyer un message à un ami en utilisant ce schéma, toi et ton ami auriez besoin d'un bloc-notes (dans le bon vieux temps) sur lequel cette clé en perpétuel changement est écrite. Tu ne l'utiliseras qu'une seule fois. C'est ce qu'on appelle un « bloc-notes à usage unique ».
Le bloc-notes à usage unique
Voyons comment cela fonctionne avec un exemple. On pourrait le faire entièrement avec des lettres, mais il est courant de les convertir en chiffres, par exemple en assignant A=0, B=1, C=2… Supposons que nous soyons des amis impliqués dans des activités clandestines et que nous ayons partagé un bloc-notes. Idéalement, nous en partagerions plusieurs, mais celui d'aujourd'hui est :
EDGRPOJNCUWQZVMK…
Ou, en convertissant en chiffres par position dans l'alphabet :
4,3,6,17,15, 14, 9, 13, 2, 20, 22, 16, 25, 21, 12, 10…
Supposons que je veuille te partager le message :
"I love quantum!"
Ou, de façon équivalente :
8, 11, 14, 21, 4, 16, 20, 0, 13, 19, 20, 12
Nous ne voulons pas envoyer le code ci-dessus ; c'est une substitution simple, qui n'est pas du tout sécurisée. Nous voulons le combiner avec notre clé d'une certaine façon. Une méthode courante est l'addition modulo 26. Nous ajoutons la valeur du message à la valeur de la clé, mod 26, jusqu'à atteindre la fin du message. Nous enverrions donc :
8+4 (mod 26) = 12, 11+3 (mod 26) = 14, 14+6 (mod 26) = 20, 21+17 (mod 26) = 12…
= 12, 14, 20, 12, 19, 4, 3, 13, 15, 13, 16, 2
Note que si quelqu'un intercepte ceci et ne possède PAS la clé, le déchiffrer est totalement désespéré ! Même les deux « u » de « quantum » ne sont pas encodés avec le même chiffre ! Le premier est un 3, et le second est un 16… dans le même mot !
Donc, je t'envoie ceci, et tu as la même clé que moi. Tu annules l'addition modulo 26 que tu sais que j'ai effectuée :
12, 14, 20, 12, 19, 4, 3, 13, 15, 13, 16, 2
=(4+x1) (mod 26), (3+x2) (mod 26), (6+x3) (mod 26), (17+x4) (mod 26),…
De sorte que le message x1, x2, x3, x4… doit être :
8, 11, 14, 21…
Enfin, en convertissant ceci en texte, on obtient :
"I love quantum".
C'est un bloc-notes à usage unique.
Note que si la clé est plus courte que le message, nous commençons à répéter notre encodage. Ce serait encore un problème de déchiffrement difficile à résoudre, mais pas impossible si c'est répété suffisamment de fois. Tu as donc besoin d'une clé (ou d'un « bloc-notes ») longue.
Dans de nombreux contextes, les étudiants seront déjà familiers avec ce chiffrement, de sorte que cette activité peut être ignorée. Mais c'est une révision relativement rapide et simple.
Étape 1 : Trouve un partenaire, et partagez une séquence de 4 lettres à utiliser comme clé. Toute séquence de 4 lettres appropriée pour la classe fera l'affaire.
Étape 2 : Choisis un mot secret de 4 lettres que tu veux envoyer à ton partenaire (les deux partenaires font cela afin de s'envoyer des mots secrets différents).
Étape 3 : Convertis la clé/le bloc-notes de 4 lettres et chacun des mots secrets de 4 lettres en chiffres en utilisant A = 1, B = 2, et ainsi de suite.
Étape 4 : Combine ton mot de 4 lettres avec le bloc-notes à usage unique en utilisant l'addition modulo 26.
Étape 5 : Donne à ton partenaire la séquence de chiffres encodant ton mot secret, et ton partenaire te donnera la sienne.
Étape 6 : Décode les mots de l'autre en utilisant la soustraction modulo 26.
Étape 7 : Vérifie. Est-ce que ça a marché ?
Suite
Échange des mots chiffrés avec un autre groupe qui n'a pas accès à ton bloc-notes à usage unique. Peux-tu le déchiffrer ? Explique pourquoi ou pourquoi pas ?
Avec un peu de chance, l'activité ci-dessus montre clairement qu'un bloc-notes à usage unique est une forme de chiffrement incassable, sous réserve de quelques hypothèses, comme :
- La clé est de la même longueur que le message envoyé, ou plus longue
- La clé est véritablement aléatoire
- La clé n'est utilisée qu'une seule fois, puis détruite
C'est donc formidable. Nous avons un chiffrement incassable… à moins que quelqu'un n'obtienne notre clé. Si quelqu'un obtient notre clé, tout est déchiffré. Cette différence entre un chiffrement incassable et l'exposition de tous nos secrets rend le partage d'une clé sécurisée extrêmement important. L'objectif de la distribution quantique de clés est d'exploiter les contraintes que la nature a imposées à l'information quantique pour sécuriser une clé partagée/un bloc-notes à usage unique.
Utiliser des états quantiques comme clé
Supposons que nous travaillions avec des qubits (en soulignant que les qubits ont deux états propres). On pourrait utiliser des systèmes quantiques avec un plus grand nombre d'états quantiques, mais les ordinateurs quantiques à la pointe de la technologie chez IBM® utilisent des qubits. Il n'y a aucun problème à encoder nos A, B, C en séquences de 0 et de 1. Il nous suffit donc de partager une clé de 0 et de 1 et d'effectuer une addition modulo 2 sur chaque bit stockant une lettre.
Vérifie ta compréhension
Lis la question ci-dessous, réfléchis à ta réponse, puis clique sur le triangle pour révéler la solution.
Si on ne s'intéresse qu'aux lettres anglaises, de combien de bits avons-nous besoin ?
Réponse :
Nos amis, Alice et Bob, souhaitent partager une clé quantique de telle manière que personne d'autre ne puisse l'intercepter (du moins pas sans qu'ils le sachent). Ils ont besoin d'un moyen de s'envoyer des états quantiques. Le faire avec une haute fidélité et sans bruit ni erreurs n'est PAS trivial. Mais il existe deux approches que nous devrions être capables de comprendre à ce stade :
- Un câble à fibre optique te permet d'envoyer de la lumière… qui est très quantique. Des photons uniques peuvent être détectés avec une haute fidélité sur de nombreux kilomètres de câble à fibre optique. Ce n'est pas un canal quantique parfait et sans erreur, mais il pourrait être très bon.
- On pourrait utiliser la téléportation quantique, comme décrit dans un module précédent. C'est-à-dire qu'Alice et Bob pourraient partager des qubits intriqués et un état pourrait être envoyé d'Alice à Bob en utilisant le protocole de téléportation.
Pour ce module, nous ne voulons pas t'obliger à disposer de configurations optiques à haute fidélité pour partager des photons, nous utiliserons donc la deuxième méthode pour partager des états quantiques. Mais cela ne veut pas dire que c'est la plus réaliste pour le partage de clés quantiques sur de longues distances.
Nous allons maintenant explorer un protocole décrit pour la première fois par Charles Bennett et Gilles Brassard en 1984 pour partager des états mesurés dans différentes bases entre Alice et Bob. Nous utiliserons un régime de mesure astucieux pour construire une clé destinée à un chiffrement ultérieur. En d'autres termes, nous distribuons une clé quantique entre deux parties souhaitant communiquer, d'où le terme « distribution quantique de clés » (QKD, de l'anglais Quantum Key Distribution).
QKD étape 1 : les bits aléatoires et les bases aléatoires d'Alice
Alice commence par générer une séquence aléatoire de 0 et de 1. Elle choisit ensuite aléatoirement une base dans laquelle préparer un état quantique, en se basant sur chaque bit aléatoire, en utilisant le tableau ci-dessous (un tableau que Bob possède également) :
| Base | bit = 0 | bit = 1 |
|---|---|---|
| Z | ||
| X |
Par exemple, supposons qu'Alice ait généré aléatoirement un 0 et qu'elle ait sélectionné aléatoirement la base X. Elle préparerait alors un état quantique . On peut certainement exploiter l'aléatoire quantique pour générer un ensemble aléatoire de 0 et de 1, et un choix de base aléatoire. Pour l'instant, supposons simplement qu'un ensemble aléatoire a été généré, comme suit :
| Bits d'Alice | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | ... |
|---|---|---|---|---|---|---|---|---|---|---|
| Bases d'Alice | X | X | Z | Z | Z | X | Z | Z | X | ... |
| États d'Alice | ... |
Cet ensemble de bits aléatoires, de bases et d'états résultants continuerait dans une longue séquence, pour donner une clé de longueur suffisante.
QKD étape 2 : les bases aléatoires de Bob
Bob fait également un choix aléatoire de bases. Cependant, alors qu'Alice utilisait le choix de base pour préparer son état, Bob effectuera réellement des mesures dans ces bases. Si Bob effectue une mesure dans la même base que celle dans laquelle Alice a préparé l'état, alors on peut prédire le résultat de la mesure de Bob. Lorsque Bob choisit par hasard une base différente de celle qu'Alice a utilisée pour la préparation, on ne peut pas connaître le résultat de la mesure de Bob.
| Bits d'Alice | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | ... |
|---|---|---|---|---|---|---|---|---|---|---|
| Bases d'Alice | X | X | Z | Z | Z | X | Z | Z | X | ... |
| États d'Alice | ... | |||||||||
| Bases de Bob | X | Z | X | Z | X | X | Z | X | X | ... |
| États de Bob (a priori) | ? | ? | ? | ? | ... | |||||
| États de Bob (mesurés) | ... | |||||||||
| Dans le tableau ci-dessous, considère la première colonne. Alice a préparé l'état qui est un état propre de X. Puisque Bob a également choisi aléatoirement de mesurer dans la base X, il n'y a qu'un seul résultat possible pour l'état mesuré de Bob : Dans la deuxième colonne, cependant, ils ont choisi des bases différentes. L'état envoyé par Alice est Celui-ci a 50 % de chances d'être mesuré par Bob dans l'état , et 50 % de chances d'être mesuré dans Donc la ligne montrant ce que nous savons, a priori, des mesures de Bob ne peut pas être remplie pour la colonne 2. Mais Bob effectuera une mesure et obtiendra un état propre de (dans cette colonne) Z. Dans la dernière ligne, nous indiquons ce que ces mesures ont donné. |
QKD étape 3 : discussion publique des bases
Alice et Bob peuvent maintenant se communiquer la base qu'ils ont choisie dans chaque cas. Pour toutes les colonnes dans lesquelles ils ont choisi la même base, ils savent chacun avec certitude quel état l'autre avait. Bob peut convertir l'état et la base en un 0 ou un 1 selon la convention partagée par les deux parties. Nous pouvons réécrire le tableau ci-dessus pour ne montrer que les instances où les bases d'Alice et de Bob correspondent :
| Bits d'Alice | 0 | 0 | 1 | 0 | 0 | ... |
|---|---|---|---|---|---|---|
| Bases d'Alice | X | Z | X | Z | X | ... |
| États d'Alice | ... | |||||
| Bases de Bob | X | Z | X | Z | X | X |
| États de Bob (a priori) | ... | |||||
| États de Bob (mesurés) | ... | |||||
| Bits de Bob | 0 | 0 | 1 | 0 | 0 | ... |
Alice a réussi à transmettre la chaîne de bits 00100… à Bob. Si les amis s'étaient mis d'accord au préalable pour utiliser des chaînes de 5 bits comme nombres dans leur bloc-notes à usage unique, ces cinq premiers bits leur donneraient le nombre
QKD étape 4 : vérification et envoi du secret
Avant qu'Alice et Bob n'aillent plus loin, ils devraient choisir un sous-ensemble de leurs bits classiques à comparer. Puisqu'ils n'ont conservé que les mesures de qubits qui ont été préparés et mesurés dans la même base, toutes les valeurs mesurées devraient concorder. Si un très faible pourcentage ne concordait pas, cela pourrait être attribué au bruit quantique ou à des erreurs. Mais si beaucoup ne concordent pas, quelque chose s'est mal passé !
Ici, nous ne traiterons pas de la fraction de la clé qui devrait être utilisée pour la vérification. Pour l'instant, nous supposerons que cette vérification se passe bien ; nous reviendrons sur ce point dans la section ci-dessous sur l'espionnage.
Les amis enverraient ensuite un message chiffré l'un à l'autre via des canaux classiques. Ils utiliseraient ensuite les nombres de leur bloc-notes à usage unique pour chiffrer/déchiffrer des messages secrets, sans jamais transmettre le bloc-notes à usage unique d'un endroit à un autre. Pour la prochaine section sur l'espionnage, garde à l'esprit que tout ce partage de la clé se produit avant la révélation du secret chiffré via des canaux classiques.
Alice et Bob ont communiqué leur choix de base via des canaux classiques, cela ne pourrait-il pas être intercepté ? Oui ! Mais connaître la base qu'ils ont utilisée pour la mesure ne te dit pas quel bit ils ont envoyé ou obtenu. C'est seulement possible si tu connais également les bits de départ d'Alice. Mais dans ce cas, tu serais dans l'ordinateur d'Alice, où les secrets sont stockés, et la communication secrète des secrets devient sans objet. Donc l'interception de la communication classique ne brise pas le chiffrement. Mais qu'en est-il de l'interception d'informations dans le canal quantique ?
Résistance de la QKD à l'espionnage
Alice et Bob ont une amie, Ève, connue pour espionner. Ève souhaite intercepter la clé quantique d'Alice et de Bob, afin de pouvoir l'utiliser pour déchiffrer les messages échangés entre les deux. Cela devrait nécessairement se produire entre la préparation des états par Alice et la mesure des états par Bob, puisque la mesure fait s'effondrer l'état quantique. En particulier, cela signifie que l'espionnage devrait avoir lieu avant qu'il y ait eu un quelconque partage ou comparaison de bases.
Ève doit deviner quelle base a été utilisée pour encoder chaque bit. Encore une fois, si elle n'est pas capable d'accéder à l'ordinateur d'Alice, elle n'a aucune base sur laquelle fonder cette supposition, et elle sera aléatoire. Supposons que le départ d'Alice soit le même qu'avant, et supposons également que le choix aléatoire de base de mesure de Bob soit le même qu'avant. Voyons ce qu'Ève obtient si elle effectue des mesures sur le canal quantique. Comme avant, si Ève choisit la même base qu'Alice, nous savons ce qu'elle obtiendra. Sinon, elle pourrait obtenir l'un ou l'autre des deux résultats, chacun avec une probabilité de 50 %.
| Bits d'Alice | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | ... |
|---|---|---|---|---|---|---|---|---|---|---|
| Bases d'Alice | X | X | Z | Z | Z | X | Z | Z | X | ... |
| États d'Alice | ... | |||||||||
| Bases supposées d'Ève | Z | X | X | Z | X | Z | Z | X | X | ... |
| États d'Ève (a priori) | ? | ? | ? | ? | ? | ... | ||||
| États d'Ève (mesurés) | ... | |||||||||
| Bases de Bob | X | Z | X | Z | X | X | Z | X | X | ... |
Maintenant, comme Ève ne sait pas si elle a correspondu ou non à la base d'Alice, elle ne sait pas quoi transmettre à Bob pour correspondre aux états originaux d'Alice. Lorsqu'Ève mesure, par exemple, tout ce qu'elle sait avec certitude, c'est qu'Alice n'a pas préparé l'état pour ce qubit. Mais Alice aurait pu préparer ou Tous pourraient être compatibles avec la mesure d'Ève. Donc Ève doit faire un choix. Elle pourrait transmettre exactement l'état qu'elle a mesuré, ou elle pourrait essayer de deviner les cas dans lesquels sa mesure n'était pas l'état propre envoyé par Alice. Nous inclurons un mélange dans notre tableau :
| Bits d'Alice | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | ... |
|---|---|---|---|---|---|---|---|---|---|---|
| Bases d'Alice | X | X | Z | Z | Z | X | Z | Z | X | ... |
| États d'Alice | ... | |||||||||
| Bases supposées d'Ève | Z | X | X | Z | X | Z | Z | X | X | ... |
| États d'Ève (a priori) | ? | ? | ? | ? | ? | ... | ||||
| États d'Ève (mesurés) | ... | |||||||||
| États d'Ève (transmis) | ... | |||||||||
| Bases de Bob | X | Z | X | Z | X | X | Z | X | X | ... |
| États de Bob (a priori) | ? | ? | ... | |||||||
| États de Bob (mesurés) | ... | |||||||||
| Bits de Bob | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | ... |
À ce stade, il est raisonnable de se demander : « Pourquoi Ève ne fait-elle pas simplement une copie de l'état quantique d'Alice, en garde une pour la mesurer, et transmet l'autre à Bob ? » La réponse est le théorème de « non-clonage ». Informellement, il stipule qu'il n'existe pas d'opération unitaire (quantique mécanique) qui puisse faire une seconde copie d'un état quantique arbitraire, tout en préservant la première copie. La preuve est relativement simple, et est laissée comme exercice guidé. Mais pour l'instant, comprends que le fait pour Ève de faire des copies de l'état quantique est interdit par les lois fondamentales de la nature, et c'est un des principaux atouts de la QKD. Comme avant, Alice et Bob se téléphoneront et compareront leurs bases. Ils réduiront ce tableau aux cas où les deux amis ont sélectionné les mêmes bases :
| Bits d'Alice | 0 | 0 | 1 | 0 | 0 | ... |
|---|---|---|---|---|---|---|
| Bases d'Alice | X | Z | X | Z | X | ... |
| États d'Alice |