# Protocole BB84

En cryptographie, le protocole BB84 est le premier mécanisme d'échange de clé quantique à avoir été formalisé, et en fait le premier protocole de cryptographie quantique. Il a été proposé en 1984 par Charles Bennett et Gilles Brassard. Le protocole BB84 a inspiré de nombreuses variantes, qui s'appuient sur les mêmes principes fondamentaux : E90, E91, B92, SSP99, SARG04. S'il est différent du protocole d'Artur Ekert, les deux constructions sont en fait compatibles et il existe des variantes de BB84 utilisant le principe d'intrication, notamment pour résister à certaines des attaques connues.

## Principe
### Polarisation et mesure

Le protocole BB84 s'appuie sur la notion de polarisation linéaire d'un photon : un photon peut être émis avec une polarisation selon un axe donné. Un filtre polarisant laisse passer le photon avec une probabilité $\cos ^{2}(\theta )$, où $\theta$ mesure l'écart angulaire entre l'axe de polarisation du photon et l'axe principal du filtre. Ainsi, un filtre exactement aligné avec l'axe de polarisation du photon est transparent, alors qu'un filtre formant un angle droit avec cet axe est opaque ; si l'angle est de 45° la probabilité que le photon passe le filtre est de 50 %. Si cela se produit, l'effondrement du paquet d'ondes garantit que le photon est désormais aligné avec l'axe du filtre, indépendamment de sa polarisation précédente.
On définit alors deux bases, notées $+$ et $\times$, cette dernière correspondant à une rotation de la première par 45°. Mathématiquement, on peut fixer :${\begin{aligned}+&=\left\{{\vec {e}}_{0}^{+}=(1,0),{\vec {e}}_{1}^{+}=(0,1)\right\}\\\times &=\left\{{\vec {e}}_{0}^{\times }=\left({\frac {1}{\sqrt {2}}},{\frac {1}{\sqrt {2}}}\right),{\vec {e}}_{1}^{\times }=\left(-{\frac {1}{\sqrt {2}}},{\frac {1}{\sqrt {2}}}\right)\right\}\\\end{aligned}}$Supposons un photon émis selon $e_{0}^{+}$, et un filtre aligné selon $f\in \{e_{0}^{+},e_{1}^{+},e_{0}^{\times },e_{1}^{\times }\}$, alors la probabilité de mesurer le photon est : ${\begin{cases}1&(f=e_{0}^{+})\\0&(f=e_{1}^{+})\\{\frac {1}{2}}&(f=e_{0}^{\times },e_{1}^{\times })\end{cases}}$et après la mesure le photon (s'il n'a pas été absorbé) est polarisé selon $f$.

### Déroulement du protocole

Le protocole BB84 se déroule en plusieurs étapes, et permet à deux participants Alice et Bob d'établir une clé cryptographique commune. On suppose un canal de communication établi, sur lequel il est possible d'émettre des photons de polarisation choisie, les référentiels d'Alice et de Bob ayant été étalonnés préalablement.
En première étape, Alice choisit une suite aléatoire de bits ; pour chaque bit $b\in \{0,1\}$, elle choisit aléatoirement une base $t\in \{+,\times \}$ et émet un photon polarisé selon $e_{b}^{t}$. De son côté, Bob choisit une base de réception aléatoire $r\in \{+,\times \}$ pour chaque photon, et aligne son filtre sur $e_{1}^{r}$. L'illustration suivante donne à voir cette première étape en action :
       Bit d'Alice ($b$) 0 1 1 0 1 0 0 1 Base d'Alice ($t$) $+$ $+$ $\times$ $+$ $\times$ $\times$ $\times$ $+$ Polarisation du photon ($e_{b}^{t}$) $\to$ $\uparrow$ $\nwarrow$ $\to$ $\nwarrow$ $\nearrow$ $\nearrow$ $\uparrow$ Base de Bob ($r$) $+$ $\times$ $\times$ $\times$ $+$ $\times$ $+$ $+$ Photon reçu par Bob $\to$ $\nwarrow$ ou $\nearrow$ $\nwarrow$ $\nwarrow$ ou $\nearrow$ $\uparrow$ ou $\to$ $\nearrow$ $\uparrow$ ou $\to$ $\uparrow$
En deuxième étape, Bob transmet à Alice la liste des bases utilisées lors de la réception. Alice répond en indiquant quelles sont les bases que Bob a correctement choisi, et seuls les photons correspondants sont conservés. Dans l'exemple ci-dessus, cela correspond à la séquence $\to$, $\nwarrow$, $\nearrow$, $\uparrow$, c'est-à-dire aux bits 0, 1, 0, 1. Cette séquence est appelée la clé « réconciliée » ou « trouée ».
       Bit d'Alice ($b$) 0 jeté 1 jeté jeté 0 jeté 1 Base d'Alice ($t$) $+$ $\times$ $\times$ $+$ Polarisation du photon ($e_{b}^{t}$) $\to$ $\nwarrow$ $\nearrow$ $\uparrow$ Base de Bob ($r$) $+$ $\times$ $\times$ $+$ Photon reçu par Bob $\to$ jeté $\nwarrow$ jeté jeté $\nearrow$ jeté $\uparrow$
En troisième étape, Alice et Bob se mettent d'accord sur un sous-ensemble de la clé réconciliée qu'ils vont révéler publiquement. Ils comparent alors s'ils ont obtenu les mêmes bits dans ce sous-ensemble : si oui, ils utilisent le reste de la clé pour dériver une clé cryptographique. S'il y a un désaccord, cela peut signifier un problème de transmission ou une tentative d'écoute le long du canal. En effet, le théorème de non clonage garantit qu'en cas d'écoute, l'espion force le photon sur une base (qui n'est pas forcément celle d'Alice). Ainsi, si l'espion devine correctement la base d'Alice avec une probabilité de 50 %, alors 25 % des bits de la clé de réconciliation seront en désaccord. De manière générale, en sacrifiant $n$ bits de la clé de réconciliation, Alice et Bob peuvent détecter un éventuel espion sur le canal avec une probabilité $1-\left(3/4\right)^{n}$.
Ainsi, en construisant une longue clé de réconciliation, on peut atteindre un niveau de sécurité suffisant en sacrifiant assez de bits$^,$.

## Sécurité
### Propriétés de sécurité

La sécurité du protocole BB84 repose sur le théorème de non clonage, qui n'est pas une hypothèse calculatoire, mais physique. Sous cette hypothèse, et en supposant un équipement parfait, le protocole BB84 est sûr au sens de la théorie de l'information, c'est-à-dire qu'il garantit la sécurité même contre un adversaire disposant de capacités de calcul infinies. Cependant, comme tout protocole d'échange de clé, il est possible de monter une attaque de l'homme du milieu contre ce protocole si la communication n'est pas authentifiée. Il est donc nécessaire en pratique de complémenter le protocole BB84 d'un protocole d'authentification, classique ou quantique.

### Attaque PNS et manipulations de canal

En réalité, l'équipement n'est pas parfait. Une conséquence est l'existence d'attaques sur le protocole en dépit d'une garantie théorique de sécurité.
Une de ces attaques repose sur la difficulté de produire des photons uniques : les équipements réels peuvent émettre plusieurs photons au lieu d'un seul, qu'un adversaire peut prélever du canal. Ce prélèvement est indétectable, et permet à l'adversaire de cloner des photons, violant ainsi l'hypothèse de sécurité : cette attaque est baptisée PNS (pour l'anglais photon number splitting). De nombreuses variantes de BB84 ont été imaginées pour contourner cette vulnérabilité, et il est possible en théorie d'établir une clé sûre en dépit de l'attaque.
Dans le protocole BB84, environ 50 % des photons transmis sont jetés lors de la réconciliation si le canal est sans erreurs. Si le taux d'erreur sur le canal est trop élevé, au-delà de 11%, il n'est plus possible d'établir une clé. Le taux de transmission des fibres n'étant pas 100 %, et la transparence des éléments optiques n'étant pas parfaite, il est en pratique nécessaire d'augmenter l'intensité du faisceau en transmettant davantage de photons, ce qui expose les systèmes réels à l'attaque PNS même quand le nombre de photons produit est contrôlé très précisément.
D'autres attaques sont connues, reposant sur l'existence de canaux auxiliaires loin des appareils de mesure, sur la manipulation de phase, sur les décalages temporels, ou sur l'insertion de faux états, et certaines ont été montrées contre des implémentations commerciales.

### Amplification

Une autre conséquence de l'imperfection des instruments est la présence de mesures incorrectes, même en l'absence d'espion sur le canal. Le protocole ne peut donc pas fonctionner si un désaccord se produit lors de la phase de réconciliation. Plutôt que d'accepter une session dans laquelle des erreurs sont détectées (qui peuvent être dues au bruit, à un espion, ou aux deux), il existe des techniques, dites « d'amplification » qui permettent de faire fonctionner le protocole en dépit d'erreurs mais sans avantager l'adversaire. Un exemple est l'utilisation d'un code correcteur pour décider les bits à transmettre. Il est également possible, lors de la phase de réconciliation, de ne pas transmettre les bits de la clé mais une fonction (par exemple le ou exclusif) qui ne renseigne pas l'adversaire sur la valeur ou la validité d'un bit donné.

## Implémentation

Le protocole BB84 est aujourd'hui utilisé pour la plupart des implémentations de distribution quantique de clés. En 2007, le NIST annonçait une réalisation sur une fibre optique de 148,7 km. Le protocole BB84 est supporté sur plusieurs réseaux, notamment : DARPA QKD, SECOCQ QKD, Tokyo QKD.
Une implémentation schématique à base de photons est illustrée ci-dessous. La source de l'émetteur produit un signal polarisé, et des cellules de Pockels sont utilisées pour commander la polarisation du signal émis. Ces cellules, commandées électriquement, permettent ainsi de produire les différents états de polarisation souhaités. Une fibre optique peut alors être utilisée pour transporter les photons. Du côté du destinataire, une cellule de Pockels peut effectuer une rotation de 45° de l'angle de polarisation, et un prisme biréfringent sépare le faisceau en deux signaux, qui sont capturés par des détecteurs à polarisation orthogonale.