BB84 量子密钥分发协议:量子密码学的开山之作

协议详解 · 2026-08-25

概述

在经典密码学中,密钥分发的安全性依赖于计算复杂性假设——RSA 的安全性基于大整数分解的困难性,ECC 的安全性基于椭圆曲线离散对数难题。然而,这些假设都可能被未来更强力的算法或计算设备打破。

BB84 协议从根本上颠覆了这一范式。它不依赖任何计算复杂性假设,而是基于量子力学的基本原理——不确定性原理和不可克隆定理——来实现信息论安全的密钥分发。这意味着即使攻击者拥有无限的计算能力,也无法在不被发现的情况下窃取密钥。

1984 年,IBM 的 Charles Bennett 和蒙特利尔大学的 Gilles Brassard 提出了这一革命性协议,开创了量子密码学的先河。30 多年后,量子密钥分发(QKD)已从实验室走向实用化,成为后量子时代安全通信的重要补充手段。

量子力学基础

偏振态与测量基

BB84 协议使用光子的偏振态来编码信息。理解 BB84 的关键在于掌握两个核心概念:测量基和叠加态。

两个互补的测量基:

测量基名称偏振方向
基 +(+ basis)线性基垂直(↑)、水平(→)
基 ×(× basis)对角基左上(↖)、右上(↗)
四个偏振态及其编码:

CODE
┌─────────────────────────────────────────────────────┐
│              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$
  • 对每个比特,随机选择一个测量基:
- 如果 $k_i = 0$,发送 ↑ 或 ↖ - 如果 $k_i = 1$,发送 → 或 ↗
  • 将光子发送给 Bob
CODE
┌────────────────────────────────────────────────────────────┐
│                    Alice 发送过程                          │
├────────────────────────────────────────────────────────────┤
│  密钥比特:   1     0     1     1     0     1     0          │
│  随机选择基:  +     ×     +     ×     ×     +     ×         │
│  发送光子:   →     ↖     1     ↗     ↖     →     ↗         │
└────────────────────────────────────────────────────────────┘

Bob 的操作:

  • 对每个接收到的光子,随机选择一个测量基进行测量
  • 记录测量结果和使用的基
CODE
┌────────────────────────────────────────────────────────────┐
│                   Bob 接收过程                              │
├────────────────────────────────────────────────────────────┤
│  接收光子:   →     ↖     1     ↗     ↖     →     ↗         │
│  随机选基:   ×     ×     +     +     ×     ×     ×         │
│  测量结果:   ?     ↖    1     ?     ↖     ?     ?          │
└────────────────────────────────────────────────────────────┘

注意:当 Bob 使用错误的测量基时(如第 1、4、6、7 个),测量结果是随机的。

第二阶段:基比对

Alice 和 Bob 通过经典信道公开比较他们使用的测量基(不透露具体比特值)。

比对规则:

  • 如果 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 的计算:

$$ QBER = \frac{N_{error}}{N_{total}} \times 100\% $$

其中 $N_{error}$ 是错误比特的数量,$N_{total}$ 是比较的总比特数。

判断标准:

QBER 范围含义处理方式
< 11%正常噪声水平继续协议
11% - 25%可能存在窃听警告,但不终止
> 25%极可能存在窃听终止协议,重新初始化
为什么是 25%?当 Eve 使用错误的基测量时,她会引入 25% 的错误率(50% 概率选错基 × 50% 概率给出错误结果)。如果 QBER 超过这个阈值,说明有窃听者。

第四阶段:隐私放大

如果误差率低于阈值,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$ 是压缩比。

完整流程图

安全性证明

拦截-测量攻击

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%
因此,Eve 引入的 QBER 为:

$$ 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 随机发送不同强度的脉冲
2. 探测器不完美

实际探测器存在以下问题:

  • 暗计数:没有光子时 detector 也触发
  • 效率不一致:不同偏振态的探测效率不同
  • 死时间:探测器触发后需要恢复时间
这些问题可能导致探测器伪影攻击(Detector Blinding Attack)。

3. 信道损耗

光纤中的信号衰减限制了传输距离:

  • 标准光纤损耗约 0.2 dB/km(1550 nm 波长)
  • 100 km 传输后,信号强度降至初始的 1%
  • 目前商用 QKD 系统的最长距离约为 100-200 km
4. 背景噪声

环境光、探测器暗计数等都会引入噪声,抬高 QBER。

解决方案

问题解决方案
多光子脉冲诱骗态协议(Decoy State)
探测器攻击随机调整探测器参数、监测探测效率
信道损耗可信中继、量子中继器(研发中)
背景噪声时间门控、空间滤波、波长滤波

实际系统

商用系统:

  • ID Quantique(瑞士):Commercial QKD systems
  • Toshiba(日本):SciQnet 系统
  • 中国:京沪干线(2017 年开通,全长 2000+ km)
实验系统:
  • 卫星 QKD:中国墨子号卫星(2016 年发射)
  • 城域 QKD 网络:北京、上海、合肥等城市已部署

BB84 与其他协议对比

特性BB84B92E91
提出年份198419921991
量子态数量4 个2 个EPR 对
测量基数量2 个1 个2 个
安全性证明严格较弱基于 CHSH
实现难度中等简单复杂
抗噪声能力强弱中等
B92 协议:仅使用 2 个非正交态,简化了实现,但对噪声更敏感。

E91 协议:使用纠缠态,可以通过 CHSH 不等式验证安全性,但实现更复杂。

国密视角:QKD 与国密算法

国密体系中的 QKD

中国在量子通信技术方面处于世界领先地位:

  • 京沪干线:2017 年开通,全长 2000+ km,连接北京、上海等地
  • 墨子号卫星:2016 年发射,实现了星地 QKD
  • 广域量子通信网络:正在建设中

QKD 与国密的关系

互补而非替代:

  • QKD 解决的是密钥分发问题
  • 国密算法(SM2/SM3/SM4)解决的是加密、签名、哈希问题
  • QKD 分发的密钥可以与国密算法配合使用
应用场景:
  • QKD 生成的一次性密钥流可用于 XOR 加密
  • QKD 分发的密钥可用于 SM4 加密
  • QKD 分发的密钥可用于 SM2 密钥协商的补充
注意: QKD 本身不是国密算法,它是一种物理层安全方案。国密合规的重点仍然是 SM2/SM3/SM4 等算法的正确实现和使用。

总结

BB84 协议是量子密码学的开山之作,它首次展示了量子力学如何被用于实现信息论安全的通信。尽管实际实现面临诸多技术挑战,但随着量子技术的进步,QKD 正逐步走向实用化。

核心要点回顾:

  • 基本原理:BB84 利用量子态的不可克隆性和测量的扰动感知的特性,确保窃听行为必然被发现
  • 协议流程:量子传输 → 基比对 → 数据筛选 → 误差估计 → 隐私放大
  • 安全性:基于量子力学基本原理,而非计算复杂性假设,具有信息论级别的安全性
  • 现实挑战:单光子源、探测器不完美、信道损耗等问题需要通过诱骗态协议等技术解决
  • 应用场景:高安全要求的金融、政府、军事通信领域
随着量子技术的不断发展,BB84 及其改进协议将成为后量子时代信息安全的重要保障。理解 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.