量子密钥分发(QKD)与量子通信安全

系统讲解量子密钥分发(QKD):BB84 与 E91 协议、偏振编码与基矢比对、诱骗态与探测器侧信道攻击、MDI-QKD 与设备无关方案、纠错与隐私放大后处理、可信中继与卫星组网现状,辨析 QKD 与后量子密码的定位差异,并给出可落地的部署检查清单与迁移策略。

引言

对称加密本身是安全的——只要密钥足够长、只用一次、且只有收发双方知道。问题从来不在算法,而在密钥怎么送到对方手里。经典方案依赖计算困难性(RSA、Diffie-Hellman),一旦攻击者拥有足够的算力,或者今天先截获密文、等未来量子计算机成熟再解密(Harvest-Now-Decrypt-Later),安全性就被时间击穿。想先了解这套经典体系的边界,可以先看 经典密码学基础 。

量子密钥分发(Quantum Key Distribution, QKD)换了一条路:安全性不再依赖数学难题,而是依赖物理定律。窃听者任何测量都会扰动量子态,从而暴露自己。本文从 BB84 的动机讲起,逐步覆盖协议族、实际系统的侧信道攻防、后处理流程,以及组网工程现状与定位争议。

阅读前提:了解量子比特的叠加与测量即可,纠缠与贝尔态的物理基础会在第 3 节一并交代。

1. 为什么经典密钥分发不够用

1.1 计算安全 vs 信息论安全

香农证明了**一次性密码本(One-Time Pad, OTP)**在密钥真随机、密钥长度等于明文、且只使用一次的条件下具有信息论安全——无论攻击者算力多大都无法破解。但 OTP 要求双方预先共享等长的随机密钥,把问题从「加密」平移到了「分发」。

经典分发方案的软肋在于:

方案依赖假设失效条件
RSA 密钥传输大整数分解困难Shor 算法 + 足够大的量子计算机
ECDH 密钥协商椭圆曲线离散对数困难同上
预共享密钥人工分发物理渠道可信不可扩展、不可审计
量子密钥分发量子力学定律实现层的侧信道、认证缺失

1.2 量子力学给出的三条保障

  • 不可克隆定理(No-Cloning Theorem):未知量子态无法被完美复制,窃听者不能先抄一份再放行。
  • 测量扰动:对非正交基下的量子态进行测量,必然以一定概率改变其状态。
  • 海森堡不确定性原理:共轭基(如偏振的水平/垂直与对角)无法同时精确获知。

这三条合起来,把「窃听是否被发现」变成可量化的问题:任何获取信息的尝试都会引入可统计的误码率上升。

1.4 威胁时间线:为什么现在就要动

「量子计算机还没造出来」不是拖延的理由。攻击者的时间线是这样的:

2020s  攻击者批量抓取并存储加密流量(Harvest-Now)
2030s+ 足够强的量子计算机出现,Shor 算法破解当时的密钥协商记录

也就是说,今天被录下的密文,会在未来被解开。凡是需要长期保密的场景(医疗、政务、军工、知识产权),迁移窗口就是现在。这正是 QKD 与后量子密码共同的时间压力来源。

1.3 与「量子加密」的区分

需要澄清一个常见混淆:QKD 只负责分发密钥,不负责加密数据本身。分发完成后,双方仍用 AES、OTP 等经典算法加密通信内容。因此 QKD 的威胁模型是「密钥分发链路被窃听」,而不是「算法被破解」。把 QKD 当成加密算法是工程上最常见的误解。

2. BB84 协议:偏振编码与基矢比对

BB84(Bennett-Brassard 1984)是最早也是部署最广的 QKD 协议,理解它就理解了整个家族的核心思想。

2.1 编码

Alice 随机选择基矢与比特值,把每个比特编码到单个光子的偏振上:

  • 直角基(Z 基,+):0 → 0°(水平),1 → 90°(垂直)
  • 对角基(X 基,×):0 → 45°,1 → 135°

同一基内的两个态正交,可被完美区分;不同基之间的态夹角 45°,投影后无法确定原值。

2.2 流程

1. Alice 发送 N 个随机偏振的光子
2. Bob 对每个光子随机选 Z 或 X 基测量,记录结果
3. 双方通过经典信道公布各自使用的基(不公布比特值)
4. 保留基一致的位置 → 筛后密钥(sifted key),约为 N/2
5. 抽样公布部分比特,估算量子比特误码率 QBER
6. 若 QBER 超过阈值(BB84 约 11%),判定存在窃听,丢弃
7. 对剩余比特做纠错 + 隐私放大 → 最终安全密钥

2.3 为什么窃听必然暴露

若 Eve 采用截获-重发(Intercept-Resend):她随机选基测量再按结果重发。当她的基与 Alice 不一致时(概率 1/2),Bob 收到的态已被投影到错误基上,Bob 的测量结果有 50% 概率翻转。综合下来,Eve 引入的 QBER 约 25%,远高于 11% 阈值,必然被发现。

用代码描述这个统计过程:

import numpy as np

def intercept_resend(bits, bases, n):
    # Alice 编码(省略物理实现,仅统计)
    eve_bases = np.random.randint(0, 2, n)
    bob_bases = np.random.randint(0, 2, n)
    bob_bits = np.zeros(n, dtype=int)
    for i in range(n):
        # Eve 只在基一致时能读到正确比特,否则结果随机
        eve_bit = bits[i] if eve_bases[i] == bases[i] else np.random.randint(0, 2)
        # Bob 相对 Eve 的重发态再次测量
        bob_bits[i] = eve_bit if bob_bases[i] == eve_bases[i] else np.random.randint(0, 2)
    sift = bases == bob_bases
    qber = np.mean(bits[sift] != bob_bits[sift])
    return qber

q = intercept_resend(np.random.randint(0, 2, 100000),
                     np.random.randint(0, 2, 100000), 100000)
print(f"QBER = {q:.3f}")   # 期望约 0.25

2.4 阈值的来历

11% 的阈值来自信息论分析:当 QBER 低于该值时,Eve 掌握的信息量可以被隐私放大压缩掉;超过则无法证明安全性。协议的安全性证明(如 Mayers、Shor-Preskill)把 QKD 归约到量子纠缠提纯,是密码学史上最漂亮的结果之一。纠缠资源本身的物理基础可参考 /quantum-entanglement-bell-state/。

2.5 BB84 的常见变体

协议核心改动动机
B92只用两组非正交态简化编码,成码率减半
SARG04改变公开宣告内容提升对 PNS 攻击的容忍度
六态协议三个基、六个态提高对基相关攻击的鲁棒性
差分相移(DPS)相位差编码无需单光子源,适合高速系统

这些变体并不改变安全性证明的骨架,只是在光源、编码维度与工程复杂度之间做取舍。

3. E91 与纠缠型 QKD

E91(Ekert 1991)用纠缠源替代单光子源:源同时向 Alice 和 Bob 发送纠缠对,双方各自测量后检查**贝尔不等式(Bell Inequality)**是否被违反。

  • 若测得 CHSH 参数 S > 2,说明存在真实的量子关联,且未被经典窃听者完全接管。
  • 安全性直接绑定到「设备行为本身违反贝尔不等式」,理论上更接近设备无关(Device-Independent, DI)。

CHSH 参数定义为:

S = E(a0,b0) - E(a0,b1) + E(a1,b0) + E(a1,b1)
经典上限:|S| <= 2
量子上限(Tsirelson 界):|S| <= 2√2 ≈ 2.828

CHSH 测量的简化实现:

import numpy as np

def chsh_from_counts(counts_ab):
    # counts_ab[(a,b)] = (n_same, n_diff)
    def E(a, b):
        same, diff = counts_ab[(a, b)]
        return (same - diff) / (same + diff)
    return E(0, 0) - E(0, 1) + E(1, 0) + E(1, 1)

# 理想最大纠缠态在最优角度下 |S| -> 2*sqrt(2)
print(chsh_from_counts({(0, 0): (8540, 1460),
                        (0, 1): (5000, 5000),
                        (1, 0): (5000, 5000),
                        (1, 1): (8540, 1460)}))

实际难点:纠缠分发损耗大、探测效率低,需要关闭探测效率漏洞与定域性漏洞,目前只能在短距离演示。工程上更常见的折中是 MDI-QKD(见第 4 节)。三者的对比:

协议资源对设备的信任现状
BB84单光子/弱相干光信任探测器商用成熟
E91纠缠对较低(可做 DI)实验室演示
MDI-QKD弱相干光 + 贝尔测量不信任测量设备城际演示

4. 实际系统的侧信道与对策

真实设备不是理想模型,攻击者会绕过物理定律去攻击实现。这一节是 QKD 从论文走向产品的关键战场。

4.1 光子数分离攻击与诱骗态

弱相干光源(WCS)偶尔会发出多光子脉冲。攻击者用光子数分离(Photon Number Splitting, PNS):保留一个光子自己测量,把其余光子无损透传给 Bob,从而在不扰动的情况下获取信息。

对策是诱骗态(Decoy State):Alice 随机以不同强度(如信号态 μ=0.5、诱骗态 ν=0.1、真空态 0)发送脉冲,通过统计不同强度下的响应率估算单光子贡献:

Y1 ≈ (μ / (μν - ν²)) * (Y_ν * e^ν - Y_μ * e^μ * (ν²/μ²) - ...)
Q1 ≈ Q_μ * (ν/μ) * (Y1 / Y_μ) * e^(-ν)

其中 Y1 是单光子响应率、Q1 是单光子增益。当检测到实际单光子产额远低于理论值时,说明存在 PNS。这是商用 QKD 的标配。

4.2 探测器侧信道

探测器是攻击者的重点目标:

攻击原理防御
致盲攻击(Blinding)强光使 APD 进入线性模式探测器加光限幅、监控光强
时间偏移攻击利用探测器效率的时间依赖随机化探测时隙
死时间攻击触发死时间以改变响应监控计数率异常
特洛伊木马攻击向 Alice 回射光探测其光源光隔离器、监控反向光

4.3 MDI-QKD:把探测器交给敌人

**测量设备无关 QKD(Measurement-Device-Independent QKD)**把测量环节交给一个不可信的第三方(Eve 也行)。Alice 和 Bob 各自发送编码后的态到中间节点做贝尔态测量,安全性不再依赖探测器的可信度,从而免疫所有探测器侧信道攻击。

Alice ──编码态──> [中间节点:贝尔态测量] <──编码态── Bob
                        │
                    公布测量结果
                        │
        双方用结果做后选择 → 建立关联密钥

代价是成码率下降、需要双方脉冲的相位锁定,且对光源的相位漂移极其敏感。

5. 后处理:纠错与隐私放大

筛后密钥还不是最终密钥,还需两步经典后处理,这两步的泄露量直接决定最终成码率。

5.1 信息协调(纠错)

双方密钥存在少量不一致比特,需要在泄露尽量少信息的前提下纠正。常用算法:

  • Cascade:多轮二分查找定位错误,实现简单,交互轮数多,泄露约 1.2×H(e)。
  • LDPC 码:高吞吐、低泄露,现代高速 QKD 系统首选,可用 GPU/FPGA 加速。
  • Polar 码:接近香农极限,适合超长码块。
# 简化版 LDPC 信息协调的吞吐估算
def throughput(qber, gbps=1.0, fec_efficiency=1.15):
    import math
    h = lambda x: -x*math.log2(x) - (1-x)*math.log2(1-x) if 0 < x < 1 else 0
    # 泄露 = 效率 * 二元熵
    leak = fec_efficiency * h(qber)
    return gbps * max(0.0, 1 - leak)

for e in (0.01, 0.03, 0.05, 0.08):
    print(f"QBER={e:.2f} 有效成码率≈{throughput(e):.3f} Gbps")

5.2 隐私放大

Eve 可能掌握部分信息(来自 QBER 估算),用**通用哈希函数(Universal Hashing)**把长密钥压缩成更短但 Eve 信息量可忽略的密钥:

L_final = L_sifted * (1 - H(e) - leak_EC - Δ)

其中 H(e) 是二元熵、leak_EC 是纠错泄露、Δ 是安全参数裕量。常用实现是 Toeplitz 矩阵乘法或乘法哈希,可硬件加速到 Gbps 级。这一步使用的随机数必须是密码学安全的真随机或高质量伪随机,否则压缩比再合理也会被预测。

5.3 认证信道不可省

经典信道必须认证(防中间人),而认证需要密钥——这看起来是循环依赖。实际做法是用一次性的预共享密钥(后续由 QKD 补货)或后量子签名做初始认证。忽略这一点是 QKD 部署中最危险的设计缺陷。

6. 组网工程:从点对点到量子网络

6.1 距离瓶颈

光纤损耗约 0.2 dB/km,单光子信号在百公里量级就衰减到不可用,且**量子中继器(Quantum Repeater)**尚未实用。当前工程折中:

  • 可信中继(Trusted Node):在中间节点解密再加密转发。京沪干线(2000+ km)即采用此方案,安全性依赖节点的物理安全。
  • 卫星 QKD:自由空间损耗小,墨子号实现千公里级星地密钥分发与洲际密钥。
  • 量子中继与纠缠交换:研究前沿,需要量子存储与纠缠提纯,是真正的长期方向。
成码率随距离的粗略衰减(无中继):
R(d) ≈ R0 * 10^(-α·d/10)     α ≈ 0.2 dB/km
d=50km  → 10^(-1)      = 0.1
d=100km → 10^(-2)      = 0.01
d=200km → 10^(-4)      = 0.0001

6.2 网络分层

现代量子网络通常分为三层:

应用层    密钥管理、密钥消费 API(KMS)
链路层    QKD 设备、密钥池、路由与中继
物理层    光纤/自由空间信道、光源、探测器

密钥池(Key Pool)是关键设计:QKD 成码率远低于数据加密的密钥消耗速率,必须按需预生成并缓存,密钥按「一次一密或一次一密钥」策略消耗,并保证密钥不被复用。网络架构与密钥管理的更多工程细节见 /quantum-communication-networks/。

6.3 部署形态对比

形态距离密钥率量级典型场景
点对点光纤 QKD< 100 kmkbps ~ Mbps数据中心互联
可信中继骨干网1000+ kmkbps城际政务/金融
卫星 QKD1000+ kmkbps(过境窗口)跨洲密钥、移动平台
量子中继理论无上限待突破未来全球量子互联网

6.4 与经典基础设施的集成

QKD 设备不能是孤岛,必须接入现有的密钥管理体系。业界常见的接口与标准:

  • ETSI GS QKD 014:定义 QKD 设备向上层提供密钥的 REST 接口(/enc_keys、/dec_keys)。
  • KMIP / PKCS#11 桥接:把 QKD 密钥池暴露为密钥管理服务器的一类密钥源,供 TLS 库或数据库透明加密调用。
  • 混合密钥:把 QKD 密钥与 PQC 派生密钥做异或或 KDF 混合,任一路被攻破都不影响整体安全。
# 典型 ETSI 014 取密钥调用
curl -s -X POST https://kms.local/api/v1/keys/enc_keys \
  -H 'Content-Type: application/json' \
  -d '{"number": 1, "size": 256}'

集成层做得好不好,往往比 QKD 设备本身的性能更能决定项目能否落地。

6.5 成本与运维现实

  • 设备成本:点对点 QKD 设备单价仍在数十万人民币量级,且需要成对部署。
  • 光纤专线:QKD 不能复用普通波分信道(噪声会淹没单光子),通常需要暗光纤或专用波长。
  • 运维:光源与探测器需要定期标定,QBER 会随温度、振动漂移,需自动化监控与告警。
  • 人员:密钥策略、合规审计、故障排查都需要专职人员,人力成本常被低估。

因此 QKD 的现实落点集中在「高价值、固定链路、合规驱动」的场景,而非通用互联网加密。

7. QKD 与后量子密码:不是二选一

两者常被拿来对立,实际上解决的层次不同:

维度QKD后量子密码(PQC)
安全基础物理定律数学难题(格、编码、哈希)
需要专用硬件是否,纯软件升级
可认证性需要预共享认证密钥基于公钥,天然可认证
成熟度点对点可用,组网受限NIST 已标准化并开始部署
主要风险侧信道、可信节点算法被未来数学突破

实践建议是分层防御:长期数据用 PQC 算法做密钥封装(如 ML-KEM),高价值链路叠加 QKD 提供物理层保障,两者互补而非替代。量子计算对现有密码体系的完整威胁分析与 PQC 迁移路线见 /quantum-post-quantum-cryptography/。

8. 落地检查清单

  • 明确威胁模型:是防未来量子计算机,还是防当下物理窃听?后者才是 QKD 的强项。
  • 认证信道必须先建立:QKD 本身不提供认证,需要预共享密钥或 PQC 签名做身份绑定。
  • 监控 QBER 与计数率:异常抖动往往是攻击或设备漂移的信号。
  • 诱骗态 + MDI 是商用系统的最低门槛,纯 BB84 直连方案不要用于生产。
  • 密钥池容量要覆盖峰值加密速率,且严格禁止密钥复用。
  • 密钥生命周期管理要与合规要求对齐:销毁、审计、轮换策略都要写入运维流程。

9. 常见误区

  • 「QKD 就是量子加密」:QKD 只分发密钥,数据仍由经典算法加密。
  • 「QKD 能防一切」:它防的是密钥分发被窃听,不防端点被入侵、不防实现缺陷。
  • 「有 QKD 就不需要 PQC」:认证环节仍需公钥体系,PQC 是必需拼图。
  • 「QBER 为 0 说明安全」:QBER 过低也可能是设备异常或攻击者刻意压低扰动,需结合计数率与统计检验判断。
  • 「量子中继马上能用」:量子存储的相干时间与纠缠分发速率距离实用仍有数量级差距。

小结

QKD 把密钥分发的安全性从「算力假设」搬到了「物理定律」,BB84 用基矢比对把窃听转化为可测量的误码率,诱骗态与 MDI 把攻击面从协议推到实现层,纠错与隐私放大把原始比特炼成安全密钥。它不解决认证问题,也尚未突破量子中继的距离瓶颈,因此现实定位是「高价值链路 + PQC 兜底」的分层防御,而不是取代经典密码学。理解了这层定位,才能在工程中做出正确的取舍。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「quantum」更多文章

  1. 开放量子系统与退相干建模:密度矩阵、Kraus 与 Lindblad 方程
  2. 量子基准测试与性能指标:保真度、量子体积与 CLOPS
  3. 量子编译器与电路转译:从逻辑线路到硬件脉冲