BB84 (Charles Bennett & Gilles Brassard - 1984): premier protocole de cryptographie quantique

Mise à jour août 2026

Imaginons qu'Alice souhaite transmettre une clé secrète à Bob sans qu'une tierce personne (Eve) puisse l'intercepter. Cette clé servira ensuite à chiffrer des messages par des méthodes classiques de cryptographie.
Le problème est le suivant : comment Alice peut-elle transmettre cette clé sans qu'une personne malveillante puisse l'intercepter discrètement ?

La cryptographie quantique propose une solution fondée sur les lois de la mécanique quantique. Le protocole BB84, proposé en 1984 par Charles Bennet et Gilles Brassard, permet à Alice et Bob de détecter toute tentative d'espionnage lors de l'échange de la clé.

Polarisation des photons

Dans le protocole BB84, l'information est transportée par des photons, les particules élémentaires de la lumière. Un photon possède une propriété appelée polarisation qui décrit l'orientation selon laquelle son champ électrique oscille lors de sa propagation. Un photon peut être polarisé Verticalement (↕︎) ou Horizontalement (↔︎).
Ces deux orientations constituent la base rectiligne, notée (+).

Il est également possible de considérer des orientations inclinées de 45° et de -45°. Ces deux nouvelles directions constituent la base diagonale, notée (x).

L'idée fondamentale du protocole BB84 consiste à encoder les bits 0 et 1 à l'aide de ces différentes polarisations. Alice choisit aléatoirement une base de codage pour chaque photon envoyé, tandis que Bob doit deviner la bonne base de mesure sans la connaître à l'avance.

Cette propriété est au coeur de la sécurité du protocole : une mesure effectuée dans une base différente de celle utilisée pour préparer le photon modifie son état quantique et introduit des erreurs détectables par Alice et Bob.

Tableau BB84
Base Bit Polarisation Etat quantique
+ 0 $ \updownarrow $ $|0\rangle$
+ 1 $\leftrightarrow $ $|1\rangle$
× 0 $\nearrow $ $|+\rangle$
× 1 $\searrow $ $|-\rangle$
Les deux bases du protocole BB84
Figure 1 : Représentation des bases rectiligne (+) et diagonale (×) utilisées dans BB84.

Les deux bases de codage

Les polarisations utilisées dans BB84 peuvent être décrites mathématiquement à l'aide des états quantiques d'un qubit. La base rectiligne correspond aux états fondamentaux $ |0\rangle $ et $ |1\rangle $, tandis que la base diagonale est constituée de superpositions de ces états.

Description mathématique des bases

Base rectiligne (+)

$$ |0\rangle = \begin{pmatrix}1 \\0 \end{pmatrix} $$ et $$ |1\rangle = \begin{pmatrix}0 \\1 \end{pmatrix} $$

Ces deux vecteurs forment une base orthonormée de l'espace des qubits ($ \langle 0|1\rangle = 0 $) et représentent les états fondamentaux utilisés pour coder les bits classiques 0 et 1.

Base diagonale (×)

Contrairement à la base rectiligne, les états de la base diagonale ne correspondent pas à des états fondamentaux. Ils sont obtenus en combinant les états $ |0\rangle $ et $ |1\rangle $ dans les proportions égales. On parle alors de superposition quantique.

$$ |+\rangle = \frac{ \ |0\rangle + |1\rangle}{\sqrt{2}} $$

$$ |-\rangle = \frac{ \ |0\rangle - |1\rangle}{\sqrt{2}} $$

La porte Hadamard transforme la base rectiligne en base diagonale :

$$ H|0\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1\end{pmatrix} \begin{pmatrix}1 \\0\end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix}1 \\1\end{pmatrix} = \frac{1}{\sqrt{2}} \left[ \begin{pmatrix}1 \\0\end{pmatrix}+\begin{pmatrix}0 \\1\end{pmatrix}\right] =\frac{\ |0\rangle + |1\rangle}{\sqrt{2}} = |+\rangle $$


$$ H|1\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1\end{pmatrix} \begin{pmatrix}0 \\1\end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix}1 \\-1\end{pmatrix} = \frac{1}{\sqrt{2}} \left[ \begin{pmatrix}1 \\0\end{pmatrix}-\begin{pmatrix}0 \\1\end{pmatrix}\right] =\frac{\ |0\rangle - |1\rangle}{\sqrt{2}} = |-\rangle $$



Simulation d'un échange BB84

Afin d'illustrer le fonctionnement du protocole BB84, nous alons réaliser une simulation simplifiée en Python.
Alice commence par générer une séquence de bits représentant la clé qu'elle souhaite transmettre. Pour chaque bit, elle choisit aléatoirement une base de codage parmi les bases rectiligne (+) et diagonale (×).

Après la transmission, Alice et Bob comparent publiquement leurs bases de codage. Les positions pour lesquelles les bases coïncident sont conservées, tandis que les autres sont supprimées. Les bits restant constituent alors la clé partagée.



import random
random.seed(42)

# Clé d'Alice
alice_bits = [1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0]

# Choix de la base au hasard
alice_bases = [random.choice(["+", "x"]) for _ in alice_bits]
for bit, base in zip(alice_bits, alice_bases):
    print(bit, base)

# simulation Bob
bob_bases = [random.choice(["+", "x"]) for _ in alice_bits]
print(bob_bases)

# Filtrage des bases
shared_key = []
for bit, a, b in zip(alice_bits, alice_bases, bob_bases):
    if a == b:
        shared_key.append(bit)

print("Clé partagée :", shared_key)

Tableau de résultats
Position Bit Alice Base Alice Base Bob
1 1 + +
2 0 + +
3 1 × +
4 1 + +
5 0 + ×
6 1 + +
7 1 + ×
8 0 + ×
9 0 × +
10 1 + +
11 1 + ×
12 0 + ×
Echange BB84 Alice Bob
Figure 2 : Principe général de l'échange BB84 entre Alice et Bob.

Résultat obtenu

Clé d'Alice :
[1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0]

Base d'Alice :
['+', '+', '×', '+', '+', '+', '+', '+', '×', '+', '+', '+']

Base de Bob :
['+', '+', '+', '+', '×', '+', '×', '×', '+', '+', '×', '×']

Clé partagée :
[1, 0, 1, 1, 1]

Dans cette première simulation, nous avons simplement comparé les bases choisies par Alice et Bob. Cependant, nous n'avons pas encore expliqué pourquoi un choix de base incorrect conduit à une erreur potentielle lors de la mesure. Cette propriété provient directement des lois de la mécanique quantique et constitue le fondement de la sécurité du protocole BB84.

Pourquoi une mauvaise base introduit-elle des erreurs ?

Alice et Bob choisissent chacun une base de codage parmi la base rectiligne (+) et la base (×). Mais pourquoi une erreur apparaît-elle lorsque Bob choisit une base différente de celle utilisée par Alice ?

Un état quantique ne peut être mesuré arbitrairement sans conséquence : le choix de la base de base de mesure influence le résultat obtenu.

Prenons l'exemple où Alice prépare un photon dans l'état diagonal :

$$ |+\rangle = \frac{ \ |0\rangle + |1\rangle}{\sqrt{2}} $$

Si Bob mesure ce photon dans la même base diagonale, il retrouve toujours l'état envoyé. En revanche, s'il effectue sa mesure dans la base rectiligne, le résultat n'est plus déterministe. Il obtient :

$$ P(0) = \frac{1}{2} \quad et \quad P(1) = \frac{1}{2} $$

L'état $|+\rangle$ n'appartient pas à la base rectiligne. Il est une combinaison des états $|0\rangle$ et $|1\rangle$ avec la même amplitude. Lorsque Bob choisit la base rectiligne pour effectuer sa mesure, la mécanique quantique l'oblige à projeter l'état du photon sur l'un des deux états de cette base.

Comme les deux amplitudes sont identiques, les probabilités d'obtenir les résultats 0 ou 1 sont égales :

$$ P(0)=\left|\frac1{\sqrt2}\right|^2=\frac12 \quad et \quad P(1)=\left|\frac1{\sqrt2}\right|^2=\frac12 $$

Le résultat de la mesure est donc totalement aléatoire. Une fois la mesure effectuée, le photon n'est plus dans l'état $|+\rangle$ : il est définitivement projeté dans l'état $|0\rangle$ ou dans l'état $|1\rangle$. Cette modification est irréversible.


Que se passe t'il si Eve tente d'intercepte le photon ?

Supposons maintenant qu'une personne malveillante, appelée Eve, intercepte les photons envoyés par Alice avant qu'ils n'arrivent chez Bob. Son objectif est de découvrir la clé secrète sans être détectée.

Comme Bob, Eve ignore les bases choisies par Alice. elle doit donc sélectionner aléatoirement la base rectiligne (+) ou la base diagonale (×) pour mesurer chaque photon.

Si Eve choisit la bonne base, elle obtient le bit correct et peut renvoyer un photon identique à Bob. En revanche, si elle choisit une base différente, la mesure projette le photon dans un nouvel état quantique, comme nous l'avons vu précédemment. L'information initiale est alors perdue et le photon transmis à Bob est modifié.

Prenons un exemple :

Alice prépare Eve mesure Eve obtient Etat renvoyé par Bob
$ |+\rangle $ Base + 0 (50%) $|0\rangle$
$ |+\rangle $ Base + 1 (50%) $|1\rangle$

Dans cet exemple, Alice prépare le photon dans l'état :

$$ |+\rangle=\frac{|0\rangle+|1\rangle}{\sqrt{2}} $$

Eve choisit la mauvaise base de mesure. Elle obtient alors aléatoirement 0 ou 1 avec une probabilité de 50 %, puis renvoie à Bob un photon correspondant au résultat de sa mesure, c'est-à-dire l'état ∣0⟩ ou ∣1⟩. Le photon reçu par Bob n'est donc plus nécessairement celui préparé par Alice. Lorsque Bob effectue sa mesure dans la base correcte, il peut obtenir un résultat différent de celui attendu. Des erreurs apparaissent alors dans la clé partagée.

Après la transmission, Alice et Bob comparent publiquement une partie de leurs bits. Si le taux d'erreur observé est supérieur à celui attendu, ils concluent qu'une interception a probablement eu lieu et rejettent immédiatement la clé.

La sécurité du protocole BB84 ne repose donc pas sur la difficulté du calcul, mais sur les lois fondamentales de la mécanique quantique. Toute tentative d'observation perturbe le système et laisse une signature détectable..

Suite à venir

Retour au menu quantum