BB84 量子密钥分发协议:量子密码学的开山之作
概述
在经典密码学中,密钥分发的安全性依赖于计算复杂性假设——RSA 的安全性基于大整数分解的困难性,ECC 的安全性基于椭圆曲线离散对数难题。然而,这些假设都可能被未来更强力的算法或计算设备打破。
BB84 协议从根本上颠覆了这一范式。它不依赖任何计算复杂性假设,而是基于量子力学的基本原理——不确定性原理和不可克隆定理——来实现信息论安全的密钥分发。这意味着即使攻击者拥有无限的计算能力,也无法在不被发现的情况下窃取密钥。
1984 年,IBM 的 Charles Bennett 和蒙特利尔大学的 Gilles Brassard 提出了这一革命性协议,开创了量子密码学的先河。30 多年后,量子密钥分发(QKD)已从实验室走向实用化,成为后量子时代安全通信的重要补充手段。
量子力学基础
偏振态与测量基
BB84 协议使用光子的偏振态来编码信息。理解 BB84 的关键在于掌握两个核心概念:测量基和叠加态。
两个互补的测量基:
| 测量基 | 名称 | 偏振方向 |
|---|---|---|
| 基 +(+ basis) | 线性基 | 垂直(↑)、水平(→) |
| 基 ×(× basis) | 对角基 | 左上(↖)、右上(↗) |
┌─────────────────────────────────────────────────────┐
│ BB84 协议的四个偏振态 │
├───────────────┬───────────────┬──────────────────────┤
│ 偏振态 │ 编码 │ 测量基 │
├───────────────┼───────────────┼──────────────────────┤
│ 垂直 ↑ │ 0 │ 基 +(垂直/水平) │
│ 水平 → │ 1 │ 基 +(垂直/水平) │
│ 左上 ↖ │ 0 │ 基 ×(左上/右上) │
│ 右上 ↗ │ 1 │ 基 ×(左上/右上) │
└───────────────┴───────────────┴──────────────────────┘关键特性:同一个偏振态在错误的测量基下测量会得到随机结果。例如,垂直偏振的光子用对角基测量时,有 50% 概率得到左上,50% 概率得到右上。
不可克隆定理
量子不可克隆定理(No-Cloning Theorem)是 BB84 安全性的核心保障。该定理表明:
不可能创建一个完全相同的副本,使得复制品与被复制的原始量子态完全一致。用数学语言表述:不存在一个幺正算子 U,使得对所有量子态 |ψ⟩ 都有 U(|ψ⟩|0⟩) = |ψ⟩|ψ⟩。
这意味着 Eve(窃听者)无法在不干扰原始量子态的情况下复制传输中的光子。任何窃听行为都会留下可检测的痕迹。
海森堡不确定性原理
不确定性原理指出:无法同时精确测量一对共轭物理量。在 BB84 中,这体现为:
选择测量基 + 就无法得知测量基 × 的信息,反之亦然。这正是 BB84 协议安全性的物理基础。
协议流程详解
BB84 协议分为五个主要阶段:量子传输、基比对、数据筛选、误差估计、隐私放大。
第一阶段:量子传输
Alice 和 Bob 通过量子信道(通常是光纤或自由空间)进行通信。
Alice 的操作:
- 随机生成一个密钥比特序列:$k = k_1 k_2 ... k_n$
- 对每个比特,随机选择一个测量基:
- 将光子发送给 Bob
┌────────────────────────────────────────────────────────────┐
│ Alice 发送过程 │
├────────────────────────────────────────────────────────────┤
│ 密钥比特: 1 0 1 1 0 1 0 │
│ 随机选择基: + × + × × + × │
│ 发送光子: → ↖ 1 ↗ ↖ → ↗ │
└────────────────────────────────────────────────────────────┘Bob 的操作:
- 对每个接收到的光子,随机选择一个测量基进行测量
- 记录测量结果和使用的基
┌────────────────────────────────────────────────────────────┐
│ Bob 接收过程 │
├────────────────────────────────────────────────────────────┤
│ 接收光子: → ↖ 1 ↗ ↖ → ↗ │
│ 随机选基: × × + + × × × │
│ 测量结果: ? ↖ 1 ? ↖ ? ? │
└────────────────────────────────────────────────────────────┘注意:当 Bob 使用错误的测量基时(如第 1、4、6、7 个),测量结果是随机的。
第二阶段:基比对
Alice 和 Bob 通过经典信道公开比较他们使用的测量基(不透露具体比特值)。
比对规则:
- 如果 Alice 和 Bob 使用了相同的测量基,则保留该比特作为原始密钥
- 如果使用了不同的测量基,则丢弃该比特
┌────────────────────────────────────────────────────────────┐
│ 基比对过程 │
├───────────┬───────┬───────┬───────┬───────┬───────┬───────┤
│ 位置 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │
├───────────┼───────┼───────┼───────┼───────┼───────┼───────┤
│ Alice 基 │ + │ × │ + │ × │ × │ + │
├───────────┼───────┼───────┼───────┼───────┼───────┼───────┤
│ Bob 基 │ × │ × │ + │ + │ × │ × │
├───────────┼───────┼───────┼───────┼───────┼───────┼───────┤
│ 是否相同 │ 否 │ 是 │ 是 │ 否 │ 是 │ 否 │
├───────────┼───────┼───────┼───────┼───────┼───────┼───────┤
│ 操作 │ 丢弃 │保留 │保留 │ 丢弃 │保留 │ 丢弃 │
└───────────┴───────┴───────┴───────┴───────┴───────┴───────┘sifted key(筛选后的密钥):Alice 和 Bob 各自保留了位置 2、3、5 的比特,形成 sifted key。
效率分析:由于双方随机选择测量基,理论上约有 50% 的比特会被保留。如果 Alice 发送了 n 个光子,最终 sifted key 的长度约为 n/2。
第三阶段:误差估计
为了检测是否存在窃听者,Alice 和 Bob 公开比较一部分筛选后的比特。
操作流程:
- Alice 和 Bob 从 sifted key 中随机选取一部分比特
- 公开比较这些比特的值
- 计算错误率(误码率,Quantum Bit Error Rate, QBER)
$$ QBER = \frac{N_{error}}{N_{total}} \times 100\% $$
其中 $N_{error}$ 是错误比特的数量,$N_{total}$ 是比较的总比特数。
判断标准:
| QBER 范围 | 含义 | 处理方式 |
|---|---|---|
| < 11% | 正常噪声水平 | 继续协议 |
| 11% - 25% | 可能存在窃听 | 警告,但不终止 |
| > 25% | 极可能存在窃听 | 终止协议,重新初始化 |
第四阶段:隐私放大
如果误差率低于阈值,Alice 和 Bob 需要进一步处理密钥,消除 Eve 可能获得的任何信息。
隐私放大原理:
通过一个公开的哈希函数 $f$,将较长的 sifted key 压缩为较短的最终密钥:
$$ k_{final} = f(k_{sifted}) $$
关键特性:
- Eve 对原始密钥的信息量越少,最终密钥的保密性越高
- 即使 Eve 知道部分原始密钥比特,通过隐私放大,她对最终密钥的信息量可以降到任意小
如果 Eve 对 sifted key 的信息量为 $I_E$,经过隐私放大后,她对最终密钥的信息量可以降至:
$$ I_E' \approx 2^{-l} \cdot I_E $$
其中 $l$ 是压缩比。
完整流程图
┌─────────────────────────────────────────────────────────────────────┐
│ BB84 协议完整流程 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ Alice Eve Bob │
│ │ │ │
│ │ 1. 生成随机密钥 │ │
│ │ 2. 随机选择测量基 │ │
│ │ 3. 编码为量子态发送 ───────────►│ │
│ │ │────── 截获并测量 ──────────► │
│ │ │◄───── 重发伪造光子 ────────── │
│ │ │ │
│ │ 4. 随机选择测量基 │ │
│ │ 5. 测量接收光子 ◄──────────────────────────────────────────────│
│ │ │
│ │ 6. 公开比较测量基(经典信道) │
│ │◄──────────────────────────────────────────────────────────────►│
│ │ │
│ │ 7. 筛选相同基的比特,形成 sifted key │
│ │ │
│ │ 8. 公开比较部分比特,计算 QBER │
│ │◄──────────────────────────────────────────────────────────────►│
│ │ │
│ │ 9. 若 QBER < 阈值:执行隐私放大 │
│ │ 10. 若 QBER > 阈值:终止协议 │
│ │ │
│ │ 11. 最终密钥协商完成 ✓ │
│ │
└─────────────────────────────────────────────────────────────────────┘安全性证明
拦截-测量攻击
Eve 最直接的窃听策略是拦截-测量攻击(Intercept-Resend Attack):
- 截获 Alice 发送的光子
- 随机选择一个基进行测量
- 根据测量结果,制备一个相同状态的光子发送给 Bob
| 场景 | Alice 基 | Eve 基 | Bob 基 | 结果 |
|---|---|---|---|---|
| 1 | + | + | + | Eve 正确获知比特,无错误 |
| 2 | + | × | + | Eve 测量随机,向 Bob 发送随机态,引入错误 |
| 3 | + | + | × | Eve 正确获知比特,Bob 测量随机 |
| 4 | + | × | × | Eve 测量随机,Bob 测量随机 |
- Eve 选对基的概率:50%
- 当 Eve 选错基时,Bob 也选对基的概率:25%
- 此时 Bob 得到错误结果的概率:50%
$$ QBER_{Eve} = 0.5 \times 0.25 \times 0.5 + 0.5 \times 0.25 \times 0.5 = 0.125 = 12.5\% $$
更精确的计算显示,拦截-测量攻击会引入 25% 的 QBER。
纠缠攻击
更高级的攻击策略是利用纠缠态。Eve 可以制备一个辅助粒子,与 Alice 发送的光子发生纠缠,然后通过测量辅助粒子获取信息。
BBM92 协议(Bennett-Brassard-Mermin,1992)是 BB84 的纠缠版本,使用 EPR 对而非单个光子。该协议的安全性可以通过 CHSH 不等式验证。
安全性证明要点:
- 信息-扰动权衡:Eve 获取的信息越多,对量子态的扰动越大
- 量子错误校正:Alice 和 Bob 可以使用经典错误校正协议(如 Cascade 或 Winnow)消除部分错误
- privacy amplification:通过哈希函数压缩密钥,使 Eve 的信息量指数级下降
$$ I(A:B) > I(A:E) $$
其中 $I(A:B)$ 是 Alice 和 Bob 之间的互信息,$I(A:E)$ 是 Alice 和 Eve 之间的互信息。只要这个条件满足,就可以通过隐私放大获得安全密钥。
无条件安全性证明
1996 年,Shor 和 Preskill 给出了 BB84 协议的严格安全性证明。他们证明了:
BB84 协议的安全性可以归约到量子纠错码的安全性,而量子纠错码的安全性是信息论级别的。这意味着即使 Eve 拥有无限的计算能力和量子计算能力,只要量子力学原理成立,BB84 协议就能保证密钥的安全性。
现实挑战与实现
技术挑战
尽管 BB84 在理论上完美,但实际实现面临诸多挑战:
1. 单光子源问题
理想情况下,BB84 需要完美的单光子源。但实际使用的往往是弱相干脉冲(attenuated laser pulses),其光子数服从泊松分布:
$$ P(n) = \frac{\mu^n e^{-\mu}}{n!} $$
其中 $\mu$ 是平均光子数。当 $\mu \ll 1$ 时,多光子脉冲的概率不为零。
光子数分束攻击(PNS Attack):
- Eve 可以截获多光子脉冲中的一个光子,将另一个发送给 Bob
- 这样 Eve 获得了完整信息,而 Bob 不受影响
- 解决:使用诱骗态协议(Decoy State Protocol),Alice 随机发送不同强度的脉冲
实际探测器存在以下问题:
- 暗计数:没有光子时 detector 也触发
- 效率不一致:不同偏振态的探测效率不同
- 死时间:探测器触发后需要恢复时间
3. 信道损耗
光纤中的信号衰减限制了传输距离:
- 标准光纤损耗约 0.2 dB/km(1550 nm 波长)
- 100 km 传输后,信号强度降至初始的 1%
- 目前商用 QKD 系统的最长距离约为 100-200 km
环境光、探测器暗计数等都会引入噪声,抬高 QBER。
解决方案
| 问题 | 解决方案 |
|---|---|
| 多光子脉冲 | 诱骗态协议(Decoy State) |
| 探测器攻击 | 随机调整探测器参数、监测探测效率 |
| 信道损耗 | 可信中继、量子中继器(研发中) |
| 背景噪声 | 时间门控、空间滤波、波长滤波 |
实际系统
商用系统:
- ID Quantique(瑞士):Commercial QKD systems
- Toshiba(日本):SciQnet 系统
- 中国:京沪干线(2017 年开通,全长 2000+ km)
- 卫星 QKD:中国墨子号卫星(2016 年发射)
- 城域 QKD 网络:北京、上海、合肥等城市已部署
BB84 与其他协议对比
| 特性 | BB84 | B92 | E91 |
|---|---|---|---|
| 提出年份 | 1984 | 1992 | 1991 |
| 量子态数量 | 4 个 | 2 个 | EPR 对 |
| 测量基数量 | 2 个 | 1 个 | 2 个 |
| 安全性证明 | 严格 | 较弱 | 基于 CHSH |
| 实现难度 | 中等 | 简单 | 复杂 |
| 抗噪声能力 | 强 | 弱 | 中等 |
E91 协议:使用纠缠态,可以通过 CHSH 不等式验证安全性,但实现更复杂。
国密视角:QKD 与国密算法
国密体系中的 QKD
中国在量子通信技术方面处于世界领先地位:
- 京沪干线:2017 年开通,全长 2000+ km,连接北京、上海等地
- 墨子号卫星:2016 年发射,实现了星地 QKD
- 广域量子通信网络:正在建设中
QKD 与国密的关系
互补而非替代:
- QKD 解决的是密钥分发问题
- 国密算法(SM2/SM3/SM4)解决的是加密、签名、哈希问题
- QKD 分发的密钥可以与国密算法配合使用
- QKD 生成的一次性密钥流可用于 XOR 加密
- QKD 分发的密钥可用于 SM4 加密
- QKD 分发的密钥可用于 SM2 密钥协商的补充
总结
BB84 协议是量子密码学的开山之作,它首次展示了量子力学如何被用于实现信息论安全的通信。尽管实际实现面临诸多技术挑战,但随着量子技术的进步,QKD 正逐步走向实用化。
核心要点回顾:
- 基本原理:BB84 利用量子态的不可克隆性和测量的扰动感知的特性,确保窃听行为必然被发现
- 协议流程:量子传输 → 基比对 → 数据筛选 → 误差估计 → 隐私放大
- 安全性:基于量子力学基本原理,而非计算复杂性假设,具有信息论级别的安全性
- 现实挑战:单光子源、探测器不完美、信道损耗等问题需要通过诱骗态协议等技术解决
- 应用场景:高安全要求的金融、政府、军事通信领域
相关实践
参考来源
- Bennett, C. H., & Brassard, G. (1984). Quantum cryptography: Public key distribution and coin tossing. In Proceedings of IEEE International Conference on Computers, Systems and Signal Processing (pp. 175-179).
- Shor, P. W., & Preskill, J. (2000). Simple proof of security of the quantum key distribution protocol BB84. Physical Review Letters, 85(2), 441.
- Gisin, N., Ribordy, G., Tittel, W., & Zbinden, H. (2002). Quantum cryptography. Reviews of Modern Physics, 74(1), 145.
- 中国量子科学卫星"墨子号"实验团队. (2017). 千公里级量子纠缠分发. Science, 356(6341), 1140-1144.