# 解释 BB84 协议

## 背景

这周密码学课程，来自 BUPT 的高飞老师讲了一下 qkd 里的 BB84 协议，老师讲得很好，我也想记录一下这个协议的流程和方法。我不是这方面的专业人士，如果有什么问题请指出。

## 背景知识

QKD（Quantum Key Distribution）目的是让通信双方获得同一个密钥，它需要同时需要量子信道和经典信道。其中经典信道被认为是可信的，它可以被监听，但不能被中间人攻击。

在 BB84（Charles H. Bennett and Gilles Brassard (1984)）协议中，传输的是一个光子，它具有如下的特性：

可以用两个基去测量光子：➕️和✖️️，然后光子有四个偏振角度，分别是 ⬆️️ ⬇️️ ↘️️ ↗️️。定义一个二进制位和偏振角度的对应关系如下：

| 位       | 0   | 1   | 0   | 1   |
| -------- | --- | --- | --- | --- |
| 基       | ➕️  | ➕️  | ✖️️  | ✖️️  |
| 偏振角度 | ⬆️️  | ⬇️️  | ↗️️  | ↘️️  |

对于一个未知光子，可以用两种基进行测量，测量的结果：

| 偏振角度 | ⬆️️  | ⬇️️  | ↗️️  | ↘️️  |
| -------- | --- | --- | --- | --- |
| 用➕️测量 | 0   | 1   | 0/1 | 0/1 |
| 用✖️️测量 | 0/1 | 0/1 | 0   | 1   |

这里的 `0/1` 表示有 50% 概率测得 0，有 50% 概率测得 1。

## 协议流程

假如 Alice 要和 Bob 进行 BB84 协议。那么，Alice 首先随机生成一段二进制序列，并随机生成一个基的序列，以 Wikipedia 上的例子为例：

| Alice's random bit               | 0   | 1    | 1   | 0    | 1    | 0   | 0    | 1   |
| -------------------------------- | --- | ---- | --- | ---- | ---- | --- | ---- | --- |
| Alice's random sending basis     | ➕️  | ➕️   | ✖️️  | ➕️   | ✖️️   | ✖️️  | ✖️️   | ➕️  |
| Photon polarization Alice sends  | ⬆️️  | ➡️️   | ↘️️  | ⬆️️   | ↘️️   | ↗️️  | ↗️️   | ➡️️  |
| Bob 生成随机的基                 | ➕️  | ✖️️   | ✖️️  | ✖️️   | ➕️   | ✖️️  | ➕️   | ➕️  |
| Photon polarization Bob measures | ⬆️️  | ↗️️   | ↘️️  | ↗️️   | ➡️️   | ↗️️  | ➡️️   | ➡️️  |
| Bob 认为的二进制信息             | 0   | 0    | 1   | 0    | 1    | 0   | 1    | 1   |
| 通过经典信道交换信息             |     |      |     |      |      |     |      |     |
| Shared secret key                | 0   | 丢弃 | 1   | 丢弃 | 丢弃 | 0   | 丢弃 | 1   |

第一步，Alice 生成随机的二进制和随机的基，按照前面谈到过的对应关系，生成带有偏振角度的光子发给 Bob。

第二步，由于 Bob 只收到光子，不知道 Alice 选取的基底信息，而且只能用一个基测量一次，所以 Bob 随机从两种基选择一个来测量，得到了一串二进制。这些二进制里，如果 Alice 和 Bob 选取了同一个基，那么这一位的数据一定是对的；如果选取了不同的基，那么这一位有一半的可能是对的。总的来说，期望有四分之一的位是不正确的。

第三步，Alice 和 Bob 在 **可信** 的经典信道中把双方的基底进行对比，把基底相等的部分对应的二进制位提取出来，作为最终使用的密钥。

第四步，Alice 和 Bob 在最终使用的密钥中抽取若干位，然后对比，如果这些位都一致，则这个密码是有效的。如果错误率太高，那么很大概率是被攻击了。

## 安全性

协议的安全性，主要是靠量子的特性：未知量子态不可克隆、对未知量子态的测量可能会改变量子态。

假如在量子信道中间有一个 Eve 想要做坏事，它如果在中间观测了一下光子，它就会影响光子的量子态，导致 Bob 的密钥和 Alice 密钥会不一致，从而在协议的第四步被发现。并且，因为 Eve 并不知道 Alice 所使用的基底（假设 Eve 只能控制量子信道、不能控制经典信道），所以得到的二进制数据也有四分之一是不正确的。即使 Eve 尝试截获并且重发光子给 Bob，Bob 得到的密钥仍然有很高的错误率。通过这个错误率，就可以判断是否被攻击了。

另外，它的安全性还依赖以下几个方面：

1. Eve 不能控制 Alice 和 Bob 的量子密码设备
1. Alice 和 Bob 的随机数生成器需要足够安全
1. 经典信道是可信的

## 引用

[Quantum key distribution - Wikipedia](<https://en.wikipedia.org/wiki/Quantum_key_distribution#BB84_protocol:_Charles_H._Bennett_and_Gilles_Brassard_(1984)>)
