1. Julia schickt ein Photon an Romeo. Dazu wählt sie für jedes Photon zufällig eine von vier Polarisations-Einstellung aus: 0 Grad, 45 Grad, 90 Grad und 135 Grad. Ein Photon nach dem anderen wandert Richtung Romeo.
2. Romeo wählt für jedes Photon an seinem Messgeräte eine von zwei möglichen Einstellungen: senkrecht oder schräg. Er schreibt die Einstellung auf und ob das Photon durchgekommen ist oder nicht.
3. Nach beendeter Messung veröffentlichet Romeo, wann er sein Messgerät wie eingestellt hatte. Er schweigt aber darüber, welches Messergebnis jeweils herauskam. Julia sieht sich die Liste an und nennt alle Messungen, bei denen Romeos Messgerät gleich oder entgegengesetzt zu Julias Photon eingestellt waren.
4. Beide verfügen jetzt über denselben Schlüssel, wenn das Photon zwischenzeitlich nicht gestört wurde - beispielsweise durch eine Messung eines Lauschers. Dieser kennt die Messeinstellung von Romeo nicht. Daher muss er irgendeine zufällig nehmen und eine Messung vornehmen. Wenn diese nicht der von Romeo entspricht und es eine gültige Messung war, wird der Code von Julia und Romeo nicht übereinstimmen. Um herauszufinden, ob gelauscht wurde, müssen beiden einen Teil Ihres Schlüssel miteinander vergleichen. Wenn Fehler aufgetreten sind, wurde wahrscheinlich gelauscht und es muss ein neuer Schlüssel erzeugt werden.