La cryptographie quantique

BB84 (du nom de ses inventeurs en 1984) est historiquement le premier protocole de QKD proposé.

Ce protocole utilise uniquement la polarisation de la lumière, et met en place un mécanisme général qui resservira beaucoup.

Usage de deux bases de polarisation

Vous vous rappelez ce montage (sinon révisez la polarisation) :

Séparateur de polarisation

En choisissant correctement l'axe polarisation du cube séparateur par rapport à la polarisation du photon incident, alors on arrive à les trier.

Le choix de l'axe de polarisation est ce qu'on appelle une base de mesure.

Dans le protocole BB84, on va utiliser 2 bases (et donc deux instruments de mesures) :

  1. l'une sera H/V : angle nul 0° ou 180°,
  2. l'autre diagonale : 45° ou 135°.

Si Alice envoie un photon H et que Bob a choisi la base de lecture H/V, alors Bob détectera un "H" aux erreurs de transmission près, mais mettons ça de côté pour l'instant.

Si le photon est H (ou V) et que la base choisie par Bob est diagonale, alors Bob lira 45° la moitié du temps et 135° l'autre moitié, au hasard, tout ça parce que la rotation est pile-poil de travers.

Autrement dit, si on veut que Bob lise correctement le photon par Alice, Il faudra qu'Alice le prévienne du choix de la base de lecture, sinon ça va très mal marcher.

Système polarisation
Eh bien le protocole BB84 va justement faire exprès de ne pas révéler l'orientation de polarisation utilisée : H/V ou diagonale ?
Tout ça pour enquiquiner Eve si elle est à l'écoute.
T'es gentil, mais Bob non plus ne pourra pas lire la valeur.
C'est là que le protocole devient utile.

Le protocole BB84

  • Alice va choisir une polarisation parmi 4 {0° 180° 45° ou 135°} au hasard, toute seule dans son coin.
  • Bob va choisir au hasard s'il mesure une polarisation H/V ou diagonale, à chaque réception de photon. Évidemment que Bob aimerait bien faire deux mesures, mais il n'a qu'un seul photon !

Du coup, une fois sur deux en moyenne, les deux larrons auront choisi la même base et auront des résultats cohérents, et lorsqu'ils ne seront pas alignés, le résultat sera "au hasard" et souvent faux.

Ni Alice, ni Bob ne connaissent la sélection faite par l'autre au moment de l'envoi et donc aucun ne savent quels sont les "bons photons".

Tout ça pour enquiquiner Eve qui pourrait écouter au milieu, et du coup ne pourra deviner quelle est la base utilisée, on va voir ça.

Décomposition du protocole BB84

Alice envoie des photons polarisés parmi 4 possibilités (2 choix par base), au hasard, et note soigneusement ce qu'elle a envoyé :

Protocole BB84 basique

À réception d'un photon, Bob choisit au hasard une base de mesure :

Protocole BB84 basique

Bob note tout aussi soigneusement le résultat de la mesure. Pas de bol, la première mesure n'est pas bonne car Bob n'a pas choisi la bonne base, mais il ne le sait pas encore :

Protocole BB84 basique

Alice continue d'envoyer des photons, et Bob mesure, parfois c'est bon, parfois pas, mais Bob ne le sait pas encore :

Protocole BB84 basique

Pour savoir quels sont les bonnes mesures, Bob envoie un SMS à Alice :

Pour la première mesure, j'ai utilisé la base H/V
Protocole BB84 basique
Pas de bol, ce n'est pas la bonne base, on peut jeter ce photon.
Protocole BB84 basique
Pour le second photon, j'ai utilisé la base diagonale
Ah! Celui-là, on peut le garder, c'est la bonne base.
Protocole BB84 basique

On notera que la valeur du bit mesuré n'est jamais révélée au public encore heureux, qui sait juste que la mesure est bonne.

Protocole BB84 basique

À la fin, Alice et Bob partagent une séquence de bits aléatoires commune : c'est leur secret, ils en dériveront une clé de chiffrement ou ce qu'ils veulent, c'est un autre problème non quantique.

Et le quantique là-dedans ?

😐 Je ne vois pas grand-chose de quantique dans tout ça !
C'est vrai, ce n'est que du classique.
Mais prenons la place d'Eve.
Si je suis Eve, j'ai juste à mesurer la valeur et à la renvoyer à Bob.
😣 Attend! Ah! Je ne connais pas la base de mesure !
Je n'ai qu'à prendre quelques photons une première fois et essayer avec la base H/V
Puis je recommence avec la base diagonale, et le tour est joué : je connais toutes les configurations.
Comme à la fin ils disent quelle base est la bonne...
Sauf si on a affaire à un unique photon !

Si Alice tente d'écouter la ligne :

  • Elle devra donc mettre un détecteur. Sauf que la lecture du photon va dézinguer sa fonction d'onde, autrement dit, elle ne pourra pas faire 2 mesures sur le même photon. La physique quantique lui interdit !
  • Elle ne pourra pas non plus cloner le photon ET le lire, ce n'est pas possible, le théorème de non-clonage de la physique quantique lui interdit !
  • La voilà donc réduite à faire un choix. Comme personne ne connait le choix de Bob avant que le photon n'arrive chez lui, elle ne sait pas lequel choisir : H/V ou diagonal ? Cruel dilemme. Elle tente donc sa chance, et elle aura une chance sur 2 de se ramasser. Comme Bob du reste.
  • C'est bien joli d'écouter aux portes, mais il faudrait penser à ne pas se faire détecter alors Eve renvoie un photon, le même que celui qu'elle aura lu ou un autre peu importe.
Protocole BB84 basique: détection Eve

Sacrifier des bits

Du coup, pour détecter si Eve est en ligne, Alice et Bob vont sacrifier une partie des bits échangés, en les communiquant en clair pour vérifier les résultats.

Protocole BB84 basique: détection Eve

Sur l'exemple construit, Eve n'a vraiment pas de bol : au second photon, elle s'est vautrée, et en plus Bob n'a pas rectifié le tir -cela aurait pu arriver, une chance sur 2.

red alert

Et Eve se fait débusquer. On peut facilement calculer qu'Eve a 12.5% de chance d'être détectée (il y a 8 cas).

Il faut donc sacrifier une partie suffisante des bits retenus pour avoir une probabilité élevée de détecter la présence d'Eve.

Déjà qu'on balance la moitié des bits transmis, il faut en plus en sacrifier, il faudra en envoyer un bon petit paquet pour avoir une série de bits d'une longueur suffisante pour pouvoir construire une clé de chiffrement secrète... on doit pouvoir mieux faire, et c'est effectivement le cas pour d'autres protocoles.

Pourquoi sacrifier des bits ?
Un hash code de l'ensemble permettrait de tout vérifier d'un coup !
Sauf que ce hash code pourrait aussi avoir été manipulé...
Bon, d'accord. Rester méfiant, toujours.

Il est crucial qu'Eve ne puisse pas :

  • Connaitre la base de mesure choisie par Alice et encore moins l'angle de polarisation du photon, bien sûr
  • Connaitre la base de mesure de Bob.

On mettra dans un coffre-fort le générateur aléatoire d'Alice pour choisir le photon envoyé.

Et on mettra aussi dans un coffre-fort le système de lecture de Bob, et/ou on s'arrangera avec les temps de propagation pour que Bob fasse le choix de la base uniquement lorsque le photon est arrivé chez lui, ce sera plus sûr.

Une fois la mesure réalisée, le choix de la base de mesure peut être rendu public, car c'est fini.

Rien n'est parfait

Tout ceci est bien beau.
😑 Mais il doit bien exister des erreurs de transmission ?
Rien n'est parfait, tu as raison, il y aura des erreurs.
Et une erreur de transmission, c'est pareil à une attaque d'Eve ?
Effectivement.
Il faudra caractériser les erreurs de la ligne en l'absence d'Eve, et ajuster la proportion de bits sacrifiés en fonction.

Le monde réel n'est pas aussi précis :

  • Il faut bien aligner ses bases de mesure
  • On sera limité par la longueur de la fibre : décohérence, biréfringence de la fibre, rotation de la polarisation par la fibre
  • La polarisation n'est pas forcément le meilleur mode pour transmettre une info sur une fibre
  • Les sources de photon unique émettent parfois deux photons là où en voudrait qu'un : BB84 est sujet aux attaques dites PNS Photon Number Splitting.
  • ...

On diminuera les chances de succès d'Eve, à l'aide d'un nombre suffisamment grand de bits de contrôle.

Exemples de réalisation

Un exemple de réalisation, où on voit qu'Alice a ajouté du matériel pour vérifier le fonctionnement :

Protocole BB84 basique: exemple
BS : beam splitter lame semi-réfléchissante
PBS : BS polarisé, pour sélectionner H ou V
EOM: le truc qui oriente la polarisation
Souvent, ces schémas sont difficiles à lire pour le commun des mortels, et là, il est facile !
😮 Oukilé le sélecteur au hasard côté Bob ?
Eh bien c'est facile, c'est le BS qui a une chance sur deux de détourner le photon.
Simple et efficace.
Et comment Bob il sait quelle base est choisie ?
Bêtement parce qu'un seul des quatre détecteurs réagit...
Protocole BB84 basique: exemple
Un autre exemple où on voit bien le générateur de nombres aléatoires côté Alice.
Ce n'est pas bien fréquent que ce soit si clair dans les articles scientifiques.

Protocole six-states BB84

C'est le même protocole que BB84, mais en utilisant 3 bases au lieu de deux, donc 6 états possibles au départ. L'avantage principal est qu'Eve produira encore plus d'erreurs, forcément.

Je ne le détaille pas, il n'y a rien de spécial là-dedans, c'est juste un raffinement. Et il en existe certainement d'autres.

Voilà, Alice et Bob ont en commun une suite de bits aléatoires qui est totalement secrète.

Ensuite, ce sont des traitements classiques.