QuantumCrypto : Une application web pour explorer l’univers de la cryptographie quantique
Auteurs: José Ossorio, étudiant à la maîtrise en informatique à l’Université Victoria et stagiaire printemps 2024 à l’AlgoLab et Jean Frédéric Laprade, développeur en informatique quantique à l’IQ
Les sciences quantiques se développent à un rythme grandissant et on n’est peut-être plus très loin du moment où des technologies quantiques viendront bousculer les façons de faire actuelles dans divers domaines d’activités. À ce moment, les connaissances en quantique ne devront plus être réservées à un petit groupe d’experts, mais plutôt se diffuser dans la société afin de pouvoir compter sur une masse critique de travailleurs qui possèdent une certaine littéracie quantique. Il est donc nécessaire de commencer à mettre en place des initiatives qui vont permettre de démocratiser l’accès aux sciences quantiques. Il s’agit cependant d’un défi de taille étant donné que la quantique fait souvent appel à des notions de mathématiques et de physique avancées.
Il est donc nécessaire de trouver des domaines d’application qui soient accessibles au plus grand nombre, et un de ces domaines est la cryptographie quantique. La cryptographie de manière globale concerne l’ensemble des techniques de chiffrement qui assurent l’échange d’information de façon sécurisée. La cryptographie quantique, quant à elle, exploite les propriétés fondamentales de la mécanique quantique pour mettre en place cet échange d’information sécurisé.
Il n’en demeure pas moins que les ressources disponibles au grand public pour se familiariser avec la cryptographie quantique sont limitées. C’est là que l’application web QuantumCrypto intervient, en permettant à quiconque de s’initier aux concepts fondamentaux de la cryptographie quantique grâce à une mise en pratique ludique.
Figure 1 : La page d’accueil de QuantumCrypto montrant les protocoles disponibles (seulement BB84 actuellement).
Expérimenter un vrai protocole
QuantumCrypto se veut une plateforme pour explorer divers protocoles de cryptographie quantique à la manière d’un jeu. Un seul protocole est présentement disponible : le protocole de distribution quantique de clés BB84, proposé en 1984 par Charles Bennet d’IBM et Gilles Brassard de l’Université de Montréal. Pour expliquer ce protocole, QuantumCrypto propose un jeu impliquant deux personnes, Alice et Bob, qui souhaitent communiquer en toute sécurité en chiffrant leur message.
La prémisse derrière le protocole BB84 est que tout message échangé entre Alice et Bob peut être intercepté et lu. Ainsi, Alice et Bob ont besoin d’une clé de chiffrement (une série de 0 et de 1) qui leur permettra de chiffrer et déchiffrer leur message. Mais l’enjeu est de distribuer la clé : comment faire en sorte qu’ils possèdent tous deux la même clé et que cette clé ait été générée de façon aléatoire sans, bien sûr, qu’elle soit interceptée par un acteur malveillant?
Le protocole BB84 propose une solution à ce problème. Pour ce faire, Alice doit d’abord générer une chaine de bits au hasard. Elle tire alors une pièce de monnaie à deux reprises pour chaque bit, en prenant soin de noter si elle obtient pile (P) ou face (F) à chaque coup. Il y a 4 combinaisons possibles (PP, PF, FP et FF), et elle utilise cette information aléatoire pour encoder de l’information dans la polarisation d’un photon, une particule de lumière obéissant aux règles de la mécanique quantique. La première pièce tirée sert à identifier l’information transmise : Alice transmettra à Bob le bit 0 si c’est pile, et le bit 1 si c’est face. La seconde pièce sert à choisir la base qui sera utilisée pour transmettre cette information. Si la seconde pièce est pile, Alice utilise la base dite « + » qui encode l’information en utilisant les axes de polarisation horizontal et vertical. À l’inverse, si la seconde pièce est face, Alice utilise plutôt la base « ´ » qui correspond aux axes de polarisation diagonaux comme le montre la Figure 2.
Figure 2 : Polarisation du photon en fonction du résultat de 2 pièces de monnaie tirées au hasard.
De son côté, Bob tire aussi une pièce afin de déterminer au hasard s’il fera la mesure du photon envoyé par Alice dans la base « + » ou la base « ´ ». Si jamais la base de mesure de Bob ne correspond pas à la base d’encodage d’Alice, la polarisation du photon est alors en superposition et le résultat obtenu par Bob sera aléatoire. Si, par contre, les bases sont les mêmes, Bob mesurera l’information qui avait été encodée par Alice! Cet échange de photons entre Alice et Bob est répété un grand nombre de fois afin de constituer une chaîne de bits.
Une fois cette étape complétée, Alice et Bob révèleront les bases (mais pas les bits!) qui ont été utilisées et conserveront seulement les bits pour lesquels les bases correspondent. S’il n’y avait pas d’entité malveillante interceptant les photons, ils ont obtenu une clé qui leur permettra d’échanger un message de façon sécuritaire. Si toutefois les photons avaient été interceptés, la mesure effectuée lors de cette interception aurait immanquablement modifié l’état du photon, une conséquence de la mécanique quantique. Autrement dit, l’interception aurait fait en sorte que la clé de Bob serait différente de celle d’Alice. Afin de s’assurer qu’il n’y a pas eu d’interception, Alice et Bob n’ont qu’à sacrifier quelques bits de la clé obtenue en se les révélant : s’ils ont exactement les mêmes bits, c’est qu’il n’y a pas eu d’interception. Le reste de la clé est alors connue seulement d’Alice et Bob et est prête à être servir au chiffrement de leurs échanges.
La plateforme QuantumCryto, avec son implémentation du protocole BB84, permet à des joueurs d’expérimenter ce protocole et ainsi d’en apprendre davantage sur la mécanique quantique!
Figure 3 : Exemple de ce qui s’affiche à l’écran d’un utilisateur jouant à BB84 dans le rôle d’Alice.
Les prochaines étapes
La plateforme QuantumCrypto a été développée avec l’idée d’accueillir d’autres protocoles de cryptographie quantique sous forme d’expériences interactives pour l’apprentissage. Ainsi, de nouveaux protocoles seront ajoutés au cours de la prochaine année. Et puisque le code source de l’application est disponible sur la page GitHub de l’AlgoLab, les contributions externes au développement de nouveaux protocoles ainsi que les suggestions d’améliorations de produit sont les bienvenues ! Maintenant, il ne reste plus qu’à vous rendre à l’adresse https://www.cryptoquantique.app/ pour échanger des messages sécurisés grâce à une clé de chiffrement obtenue par le protocole de distribution quantique de clés BB84!