土法炼钢兴趣小组的算法知识备份

【密码学百科】量子密钥分发:BB84 协议、设备无关 QKD 与量子网络

目录

在前面关于后量子密码(post-quantum cryptography, PQC)的系列文章中,我们讨论了如何利用新的数学困难问题来构建能抵抗量子计算机攻击的密码方案。然而,密码学界在应对量子威胁时其实存在两条截然不同的技术路线。第一条路线是 PQC,它仍然基于计算复杂性假设,只不过选择了被认为量子计算机也难以攻破的数学问题。第二条路线则完全跳出了计算复杂性的框架——它直接利用量子力学的基本定律来保障通信安全,其安全性不依赖于任何计算困难性假设,而是建立在物理学原理之上。这第二条路线就是量子密钥分发(quantum key distribution, QKD)。

QKD 的核心目标非常明确:让通信双方(传统上称为 Alice 和 Bob)通过量子信道和经典信道的协同使用,协商出一串只有他们双方知道的随机密钥。这一密钥协商过程具有信息论安全性(information-theoretic security),即即使窃听者(传统上称为 Eve)拥有无限的计算能力——包括未来任何可能出现的量子计算机——也无法获取关于密钥的任何有意义的信息。一旦密钥协商完成,Alice 和 Bob 就可以使用一次性密码本(one-time pad, OTP)对消息进行加密,从而实现端到端的信息论安全通信。

本文是密码学百科系列的第 60 篇。我们将从 QKD 的物理学基础出发,系统地讲解 BB84 协议、E91 协议、实际系统中的安全性挑战、测量设备无关 QKD(measurement-device-independent QKD, MDI-QKD)、设备无关 QKD(device-independent QKD, DI-QKD)、量子网络架构,以及以墨子号(Micius)卫星为代表的远距离 QKD 实验进展。最后,我们将客观地讨论 QKD 的局限性以及它与 PQC 之间的互补关系。

一、QKD 的基本原理

QKD 的安全性根植于量子力学的几条基本定律,这些定律是经过无数实验验证的物理事实,而非数学假设。理解这些原理是理解所有 QKD 协议的基础。

第一条关键原理是量子不可克隆定理(quantum no-cloning theorem)。该定理由 Wootters 和 Zurek 于 1982 年证明,它指出不存在一个通用的量子操作能够完美复制一个未知的量子态。具体来说,如果给定一个处于未知状态 |ψ⟩ 的量子比特,不可能制造出它的一个完美副本,同时保持原始量子比特的状态不变。这一结论直接源于量子力学的线性性(unitarity),其证明简洁而优美:假设存在一个克隆操作 U,使得 U|ψ⟩|0⟩ = |ψ⟩|ψ⟩ 对任意 |ψ⟩ 成立,那么对两个不同的非正交态 |ψ⟩ 和 |φ⟩ 分别应用此操作并取内积,会得到 ⟨ψ|φ⟩ = (⟨ψ|φ⟩)²,这要求 ⟨ψ|φ⟩ 只能为 0 或 1,即两个态必须正交或相同,与”任意态”的假设矛盾。不可克隆定理对 QKD 的意义是根本性的:窃听者 Eve 不能在不扰动量子态的情况下截获并复制 Alice 发送给 Bob 的量子信号。任何窃听尝试都会不可避免地在量子态上留下痕迹。

第二条关键原理与海森堡不确定性原理(Heisenberg uncertainty principle)密切相关,更准确地说是测量扰动原理。在量子力学中,对一个量子系统的测量通常会不可逆地改变该系统的状态。特别是,如果 Alice 用某个基(basis)制备了一个量子态,而 Eve 用一个不同的、与之不相容的基去测量它,那么 Eve 的测量会不可避免地扰动该量子态,使得 Bob 接收到的信息与 Alice 发送的信息之间出现差异。这种差异会以误码(error)的形式体现出来,而 Alice 和 Bob 可以通过比对部分数据来检测这些误码。如果误码率超过了正常信道噪声所能解释的水平,他们就知道有人在窃听。

第三条关键原理来自量子纠缠(quantum entanglement)和贝尔不等式(Bell inequality)。当两个量子比特处于纠缠态时,对其中一个量子比特的测量结果会与对另一个量子比特的测量结果呈现出经典物理学无法解释的强关联。贝尔不等式给出了任何经典局域隐变量理论所能达到的关联强度的上界,而量子纠缠可以违反这一上界。在基于纠缠的 QKD 协议(如 E91)中,贝尔不等式的违反被用作信道安全性的判据:如果 Alice 和 Bob 观测到的关联强度违反了贝尔不等式,则可以确信他们的量子态没有被第三方完全掌控。

窃听检测的基本思路可以这样概括:Alice 通过量子信道向 Bob 发送编码了随机信息的量子态;如果 Eve 试图在中途测量这些量子态以获取信息,量子力学的基本定律保证了她的测量会引入可检测的扰动;Alice 和 Bob 随后通过经典信道(该信道可以被窃听但不能被篡改——这是 QKD 对经典信道的基本假设,通常称为经认证的经典信道)比对部分数据来估算信道中的误码率;如果误码率低于安全阈值,他们就可以通过后处理步骤从剩余数据中提取出安全的密钥。

二、BB84 协议

BB84 协议是最早也是最经典的 QKD 协议,由 Charles Bennett 和 Gilles Brassard 于 1984 年提出。它使用单光子(single photon)的偏振态来编码信息,采用两组互不相容的测量基——直线基(rectilinear basis,通常记为 + 基)和对角基(diagonal basis,通常记为 × 基)。在 + 基中,|0⟩ 编码比特 0,|1⟩ 编码比特 1;在 × 基中,|+⟩ = (|0⟩ + |1⟩)/√2 编码比特 0,|−⟩ = (|0⟩ − |1⟩)/√2 编码比特 1。

BB84 协议的执行过程分为以下几个阶段。

量子传输阶段(quantum transmission):Alice 对每一个要发送的比特,随机选择 + 基或 × 基中的一个,然后将该比特编码为对应基下的量子态,通过量子信道(例如光纤或自由空间光通信链路)发送给 Bob。Bob 接收到每个量子态后,也随机选择 + 基或 × 基中的一个进行测量。如果 Bob 选择的测量基恰好与 Alice 选择的制备基相同,则 Bob 的测量结果将确定性地与 Alice 的原始比特一致;如果两人选择的基不同,则 Bob 的测量结果是完全随机的,与 Alice 的比特没有关联。

基矢比对阶段(basis reconciliation,也称筛选阶段 sifting):量子传输完成后,Alice 和 Bob 通过经典信道公开宣布各自对每个量子态所使用的基(但不公开具体的测量结果或比特值)。他们丢弃所有基不匹配的数据,只保留基匹配的部分。由于每人独立等概率地选择两个基中的一个,基匹配的概率约为 50%,因此筛选后的数据量大约是原始数据量的一半。筛选后的数据在没有窃听的情况下应当完全一致——这就是初始密钥(sifted key)。

误码估计阶段(error estimation):Alice 和 Bob 从初始密钥中随机抽取一部分比特,通过经典信道公开比对。这些公开的比特不再用于最终密钥,但它们被用来估算量子比特误码率(quantum bit error rate, QBER)。在没有窃听者且量子信道完美的理想情况下,QBER 应该为零。在实际系统中,信道噪声和设备缺陷会引入少量误码,典型值在 1% 到几个百分点之间。关键在于:如果 Eve 在量子传输阶段进行了截获-测量-重发(intercept-resend)攻击,她有 50% 的概率选择了错误的测量基,而在这种情况下她重新发送的量子态会以 50% 的概率导致 Bob 的测量结果出错。综合起来,Eve 的截获-测量-重发攻击会引入约 25% 的 QBER。因此,如果 Alice 和 Bob 观测到的 QBER 显著高于正常水平,他们就可以判定存在窃听,并中止协议。

信息协调阶段(information reconciliation):即使没有窃听,实际信道噪声也会导致 Alice 和 Bob 的初始密钥之间存在少量差异。在此阶段,他们使用经典的纠错协议(例如 Cascade 协议或基于低密度奇偶校验码 LDPC 的方案)来纠正这些差异,使得双方持有完全相同的比特串。信息协调过程需要通过经典信道交换校验信息,这些信息对于窃听者也是可见的。

隐私放大阶段(privacy amplification):经过信息协调后,Alice 和 Bob 持有相同的比特串,但 Eve 可能通过窃听量子信道和经典信道的信息协调过程获得了关于该比特串的部分信息。隐私放大的目的是将这个较长的、Eve 可能持有部分信息的比特串压缩为一个较短的、Eve 几乎没有任何信息的最终密钥。这通常通过使用通用哈希函数(universal hash function)来实现。隐私放大后得到的密钥的长度取决于 Eve 可能获得的信息量的上界估计——QBER 越高,Eve 可能获得的信息越多,最终密钥就越短。当 QBER 超过约 11%(对于 BB84 协议的理论阈值)时,无法再提取出任何安全密钥。

BB84 协议的安全性在理论上已经被严格证明。2000 年,Shor 和 Preskill 给出了一个基于量子纠错码和纠缠蒸馏的优雅安全性证明,将 BB84 的安全性归结为量子力学的基本原理。此后,多位研究者进一步完善了安全性证明,考虑了有限密钥长度效应和各种实际设备缺陷。

以下 Python 代码模拟了 BB84 协议的核心流程,包括基的随机选择、筛选、以及窃听者引入误码的检测:

"""BB84 协议模拟:演示量子密钥分发与窃听检测"""

import random

def bb84_simulation(n_bits: int = 256, eve_present: bool = False) -> dict:
    """
    模拟 BB84 协议的完整流程。

    参数:
        n_bits: Alice 发送的量子比特数量
        eve_present: 是否存在窃听者 Eve

    返回:
        包含协议各阶段统计信息的字典
    """
    # 0 表示 + 基(直线基),1 表示 × 基(对角基)
    alice_bits = [random.randint(0, 1) for _ in range(n_bits)]
    alice_bases = [random.randint(0, 1) for _ in range(n_bits)]

    # Eve 的截获-测量-重发攻击
    if eve_present:
        eve_bases = [random.randint(0, 1) for _ in range(n_bits)]
        # Eve 用自己选择的基测量,得到测量结果
        eve_results = []
        for i in range(n_bits):
            if eve_bases[i] == alice_bases[i]:
                # Eve 选对了基,得到正确比特
                eve_results.append(alice_bits[i])
            else:
                # Eve 选错了基,得到随机结果
                eve_results.append(random.randint(0, 1))
        # Eve 用自己测量的结果重新制备量子态发送给 Bob
        # 此时 Bob 接收到的态是由 Eve 的测量结果和 Eve 的基决定的
        intercepted_bits = eve_results
        intercepted_bases = eve_bases
    else:
        intercepted_bits = alice_bits
        intercepted_bases = alice_bases

    # Bob 随机选择测量基并测量
    bob_bases = [random.randint(0, 1) for _ in range(n_bits)]
    bob_results = []
    for i in range(n_bits):
        if bob_bases[i] == intercepted_bases[i]:
            # Bob 的基与(Eve 重发的或 Alice 原始的)制备基匹配
            bob_results.append(intercepted_bits[i])
        else:
            # 基不匹配,结果随机
            bob_results.append(random.randint(0, 1))

    # 基矢比对(筛选):保留 Alice 和 Bob 基相同的位
    sifted_alice = []
    sifted_bob = []
    for i in range(n_bits):
        if alice_bases[i] == bob_bases[i]:
            sifted_alice.append(alice_bits[i])
            sifted_bob.append(bob_results[i])

    sifted_length = len(sifted_alice)

    # 误码估计:使用一半的筛选后比特进行比对
    sample_size = sifted_length // 2
    sample_indices = random.sample(range(sifted_length), sample_size)
    sample_indices_set = set(sample_indices)

    errors = sum(
        1 for i in sample_indices if sifted_alice[i] != sifted_bob[i]
    )
    qber = errors / sample_size if sample_size > 0 else 0.0

    # 剩余比特作为最终密钥(实际系统还需信息协调和隐私放大)
    final_key_alice = [
        sifted_alice[i] for i in range(sifted_length)
        if i not in sample_indices_set
    ]
    final_key_bob = [
        sifted_bob[i] for i in range(sifted_length)
        if i not in sample_indices_set
    ]

    key_match = final_key_alice == final_key_bob
    # BB84 理论安全阈值约为 11%
    eavesdropping_detected = qber > 0.11

    return {
        "n_bits": n_bits,
        "eve_present": eve_present,
        "sifted_length": sifted_length,
        "sample_size": sample_size,
        "errors_in_sample": errors,
        "qber": qber,
        "final_key_length": len(final_key_alice),
        "keys_match": key_match,
        "eavesdropping_detected": eavesdropping_detected,
    }


def main():
    random.seed(42)

    print("=" * 60)
    print("场景一:无窃听者")
    print("=" * 60)
    result = bb84_simulation(n_bits=1000, eve_present=False)
    print(f"  发送量子比特数: {result['n_bits']}")
    print(f"  筛选后比特数:   {result['sifted_length']}")
    print(f"  误码估计样本数: {result['sample_size']}")
    print(f"  样本中误码数:   {result['errors_in_sample']}")
    print(f"  QBER:           {result['qber']:.4f}")
    print(f"  最终密钥长度:   {result['final_key_length']}")
    print(f"  双方密钥一致:   {result['keys_match']}")
    print(f"  检测到窃听:     {result['eavesdropping_detected']}")

    print()
    print("=" * 60)
    print("场景二:Eve 执行截获-测量-重发攻击")
    print("=" * 60)
    result = bb84_simulation(n_bits=1000, eve_present=True)
    print(f"  发送量子比特数: {result['n_bits']}")
    print(f"  筛选后比特数:   {result['sifted_length']}")
    print(f"  误码估计样本数: {result['sample_size']}")
    print(f"  样本中误码数:   {result['errors_in_sample']}")
    print(f"  QBER:           {result['qber']:.4f}")
    print(f"  最终密钥长度:   {result['final_key_length']}")
    print(f"  双方密钥一致:   {result['keys_match']}")
    print(f"  检测到窃听:     {result['eavesdropping_detected']}")


if __name__ == "__main__":
    main()

运行上述代码可以清楚地看到:在没有窃听者的情况下,QBER 为零,Alice 和 Bob 的密钥完全一致;而当 Eve 执行截获-测量-重发攻击时,QBER 约为 25%,远超 11% 的安全阈值,窃听行为被成功检测。

三、E91 协议

E91 协议由 Artur Ekert 于 1991 年提出,它从完全不同的角度实现了 QKD——基于量子纠缠(entanglement)而非单光子的制备与测量。E91 协议的核心洞察在于将贝尔不等式的违反作为信道安全性的直接判据,从而在概念上将 QKD 的安全性与量子力学最深刻的非经典特征联系在一起。

在 E91 协议中,一个纠缠光子对源(entangled photon pair source)持续产生处于贝尔态 |Φ⁺⟩ = (|00⟩ + |11⟩)/√2 的光子对,并将每对中的一个光子发送给 Alice,另一个发送给 Bob。该光子对源可以由 Alice 控制、由 Bob 控制,甚至可以由不受信任的第三方控制——协议的安全性不依赖于光子源的可信性。

Alice 和 Bob 各自从预定义的一组测量基中随机选择一个基来测量自己收到的光子。在 Ekert 的原始提案中,Alice 从三个测量方向中选择(0 度、π/8、π/4),Bob 也从三个测量方向中选择(0 度、π/8、−π/8)。当 Alice 和 Bob 选择了相同的测量方向时(都选择 0 度或都选择 π/8),量子纠缠保证他们的测量结果完全相关——这些相关的比特被用作密钥材料。当他们选择了不同的测量方向时,这些数据不被用作密钥,而是被用来评估 CHSH 不等式(Clauser-Horne-Shimony-Holt inequality,贝尔不等式的一种实验友好形式)的 S 值。

CHSH 不等式规定,任何满足局域实在论(local realism)的物理理论所能给出的 S 值不超过 2。而量子力学预测,对于最大纠缠态,S 值可以达到 2√2 ≈ 2.83,这就是所谓的 Tsirelson 界(Tsirelson bound)。如果 Alice 和 Bob 从实验数据中计算出的 S 值接近 2√2,则说明他们共享的量子态确实是高质量的纠缠态,且没有被窃听者显著扰动。相反,如果 Eve 试图对纠缠光子进行测量或克隆操作,她的干预会破坏纠缠的质量,导致 S 值下降。当 S 值降低到 2 以下,即不再违反 CHSH 不等式时,Alice 和 Bob 就知道信道已经不安全,应当中止协议。

E91 协议在概念上的优雅之处在于它将安全性检验与量子力学最基本的非经典预测——贝尔不等式的违反——直接关联。这一思路后来被发展为设备无关 QKD 的核心框架。不过在实际实现中,由于纠缠光子对的产生和探测效率仍然有限,E91 协议的实际部署面临着比 BB84 更大的技术挑战。Bennett、Brassard 和 Mermin 在 1992 年提出的 BBM92 协议可以看作是 E91 的简化版本,它仍然使用纠缠光子对,但只使用两个测量基(与 BB84 相同),并省略了贝尔不等式检验环节,从而在实现上更加简洁。

四、实际 QKD 系统的安全性

从理论协议到实际系统,QKD 面临着一系列严峻的安全性挑战。理论安全性证明通常基于理想化的假设——完美的单光子源、完美的探测器、无噪声的量子信道——而现实中的设备总是存在各种缺陷。攻击者正是利用理论模型与实际设备之间的差距来发动所谓的侧信道攻击(side-channel attack)。

光子数分裂攻击(photon number splitting attack, PNS attack)是最经典的实际攻击之一。理想的 BB84 协议要求 Alice 发送精确的单光子脉冲,但实际系统中最常用的光源是衰减激光器(attenuated laser),它产生的是弱相干态(weak coherent state),其光子数服从泊松分布。这意味着每个脉冲中有一定概率包含两个或更多光子。Eve 可以利用这一点执行 PNS 攻击:当她检测到一个多光子脉冲时,她提取其中一个光子保留下来,将剩余的光子无扰动地转发给 Bob;待基信息公开后,她用正确的基测量保留的光子,从而获得对应的密钥比特,而不引入任何额外误码。对于长距离传输(信道衰减大)的情况,PNS 攻击尤其危险,因为 Eve 可以选择性地只阻断单光子脉冲(将其归因于信道损耗),而完整转发多光子脉冲,从而在不引起怀疑的情况下获取大量密钥信息。

诱骗态协议(decoy state protocol)是应对 PNS 攻击的关键技术,由 Hwang 于 2003 年提出,后经 Lo、Ma 和 Chen 等人进一步完善。其基本思想是:Alice 在发送信号脉冲的同时,随机插入一些强度不同的”诱骗”脉冲(例如真空态和弱诱骗态)。由于不同强度的脉冲具有不同的光子数统计分布,而 Eve 在量子传输阶段无法区分信号脉冲和诱骗脉冲(它们的量子态在单光子子空间上是相同的),因此 Eve 对不同类型脉冲的攻击行为会在统计上留下可检测的痕迹。Alice 和 Bob 在基矢比对后,分别统计信号脉冲和各种诱骗脉冲的探测率和误码率,通过比较可以精确估算出单光子脉冲的贡献和安全性。诱骗态协议使得 BB84 协议即使使用不完美的弱相干光源也能达到接近理想单光子源的安全密钥生成率,这对实际部署具有里程碑式的意义。

除 PNS 攻击外,探测器侧信道攻击是另一类严重的安全威胁。其中最著名的是致盲攻击(blinding attack):Eve 向 Bob 的单光子探测器发射强激光脉冲,使探测器从单光子灵敏的盖革模式(Geiger mode)转变为线性探测模式;在这种模式下,Eve 可以通过控制发送给 Bob 的光脉冲来完全决定 Bob 的探测结果,从而在不引入任何误码的情况下获取全部密钥信息。这类攻击已经在多个实际 QKD 系统上被实验演示成功,引发了学界对实际 QKD 安全性的广泛关注。其他已知的侧信道攻击还包括时间信息泄露攻击(利用探测器的时间响应差异)、后脉冲攻击(利用雪崩光电二极管的余辉效应)、特洛伊木马攻击(Eve 向 Alice 或 Bob 的设备发送探测光来获取内部状态信息)等。

应对这些侧信道攻击的策略大致有三类。第一类是”打补丁”式的,即针对每种已知攻击设计相应的对策(例如对致盲攻击可以增加探测器监控电路),但这种方法无法防御尚未发现的攻击。第二类是测量设备无关 QKD(MDI-QKD),它从协议层面消除了所有探测器侧的漏洞。第三类是设备无关 QKD(DI-QKD),它更进一步,连发送端设备的详细特性也不需要信任。

五、MDI-QKD

测量设备无关 QKD(measurement-device-independent QKD, MDI-QKD)由 Lo、Curty 和 Qi 于 2012 年提出,是解决探测器侧信道攻击问题的一个巧妙方案。MDI-QKD 的核心思想是完全翻转了通常的”Alice 发送、Bob 接收”的范式——在 MDI-QKD 中,Alice 和 Bob 都是发送方,而测量由一个可能完全不受信任的第三方(通常称为 Charlie 或中继节点)来执行。

具体来说,Alice 和 Bob 各自独立地随机选择比特和基,将编码后的量子态(弱相干脉冲)同时发送给位于他们之间的 Charlie。Charlie 对接收到的两个光子执行贝尔态测量(Bell state measurement, BSM),并通过经典信道公开宣布测量结果——即他检测到了哪种贝尔态(或者没有检测到,即双光子符合事件未发生)。Alice 和 Bob 根据 Charlie 公布的贝尔态测量结果以及各自的编码信息来协商密钥。

MDI-QKD 的安全性关键在于:Charlie 的角色仅仅是执行测量并公布结果,他不需要被信任。即使 Charlie 完全被 Eve 控制——Eve 可以任意操纵 Charlie 的测量设备或伪造测量结果——协议的安全性也不受影响。这是因为 Charlie 的测量结果只用于帮助 Alice 和 Bob 确定哪些数据应被保留(成功的贝尔态投影事件),而密钥信息完全由 Alice 和 Bob 各自的编码选择决定。如果 Charlie(Eve)试图作弊,最坏的结果只是降低了有效的密钥生成率(因为他可以故意不报告成功事件),但无法获得关于密钥的任何信息。

从技术角度看,MDI-QKD 的实现面临的主要挑战是贝尔态测量的效率。使用线性光学元件,贝尔态测量的成功概率上限为 50%(因为四种贝尔态中只有两种可以用线性光学区分)。此外,来自 Alice 和 Bob 的两个光子必须在 Charlie 处实现精确的时间和空间重叠(Hong-Ou-Mandel 干涉),这对光源的波长稳定性、脉冲时序同步和光纤长度匹配都提出了很高的要求。尽管如此,MDI-QKD 已经在多个实验室和现场试验中成功演示,传输距离不断刷新纪录。2023 年,基于双场 QKD(twin-field QKD, TF-QKD)——一种与 MDI-QKD 思想一脉相承的协议变体——的实验已经实现了超过 800 公里光纤的密钥分发,突破了传统 QKD 方案在没有量子中继的情况下的距离极限。

MDI-QKD 彻底解决了探测器侧信道攻击问题,但它仍然假设 Alice 和 Bob 的光源设备是可信的。如果光源也存在侧信道(例如 Alice 的激光器可能通过后向反射泄露编码信息),MDI-QKD 也无法防御。这一局限引出了更强大的安全框架——设备无关 QKD。

六、设备无关 QKD

设备无关 QKD(device-independent QKD, DI-QKD)代表了 QKD 安全性的最高理想。在 DI-QKD 框架中,Alice 和 Bob 的设备被视为完全不受信任的”黑盒”——它们可能是由不可信的制造商提供的,甚至可能是由 Eve 自己制造并植入了后门的。DI-QKD 的安全性仅仅依赖于一个可观测的统计量——贝尔不等式的违反程度——而不依赖于设备内部工作原理的任何细节。

DI-QKD 的安全性论证基于以下深刻的物理洞察:贝尔不等式的违反是量子纠缠存在的”设备无关”见证。如果 Alice 和 Bob 在各自的黑盒上观测到了足够强的贝尔不等式违反(S 值足够接近 Tsirelson 界 2√2),那么无论这些黑盒的内部构造如何,都可以从信息论的角度证明 Eve 关于最终密钥的信息量是有上界的。这一论证的核心工具是所谓的熵不确定性关系(entropic uncertainty relation)在设备无关场景下的推广。直觉上,贝尔不等式的强烈违反意味着 Alice 和 Bob 的测量结果具有强烈的非经典关联,而这种关联在量子力学的框架下只能来源于真正的量子纠缠——不可能被任何经典策略或预共享信息所模拟。而如果 Eve 对纠缠态的信息量很少,那么她对 Alice 和 Bob 的测量结果的信息量也受到严格的限制。

然而,DI-QKD 的实际实现面临着极其严峻的技术挑战。首先,贝尔测试必须是无漏洞的(loophole-free)。经典贝尔实验中存在两个主要漏洞:探测效率漏洞(detection efficiency loophole,如果探测效率太低,可以构造局域隐变量模型来模拟量子关联)和局域性漏洞(locality loophole,如果 Alice 和 Bob 的测量事件之间存在因果联系的可能,则无法排除经典通信的解释)。对于 DI-QKD 而言,探测效率漏洞是更大的障碍:理论分析表明,要从贝尔不等式违反中提取安全密钥,总体探测效率(包括光子传输效率和探测器效率)必须超过约 82.8% 的阈值(对于 CHSH 不等式)。而在实际的光纤 QKD 系统中,光子在长距离传输中的损耗使得端到端效率远低于这一要求——例如 100 公里标准光纤的传输效率仅约 1%。

2022 年,三个独立的实验团队几乎同时实现了里程碑式的突破:在实验室环境下成功演示了 DI-QKD 密钥生成。这些实验使用了被困离子(trapped ion)或氮空位中心(nitrogen-vacancy center)等物质量子比特来关闭探测效率漏洞(因为物质量子比特的测量效率可以接近 100%),并通过量子态到光子的转换实现远距离纠缠分发。不过,这些演示的距离仅限于数百米到几公里,密钥生成率极低(每秒不到一个比特),距离实际应用仍有很长的路要走。

DI-QKD 目前仍然主要停留在原理验证阶段。从实验演示到实用化部署,需要在量子态产生与测量的效率、系统稳定性、以及密钥生成率等方面取得数量级的提升。但它在理论上代表了 QKD 安全性的终极形态,也持续推动着量子信息实验技术的前沿发展。

七、QKD 网络架构

单链路的点对点 QKD 系统只能服务于两个用户之间的密钥协商。要将 QKD 扩展为能够服务于大量用户的网络基础设施,需要解决网络架构和远距离传输两大核心问题。

最直接的网络化方案是可信中继(trusted node)架构。在这种方案中,长距离的量子信道被分割为多段较短的链路,每段链路的两端各有一个 QKD 节点。相邻节点之间运行 QKD 协议生成密钥,然后通过逐段的密钥”异或”(XOR)接力来实现远距离密钥分发。例如,如果 Alice 与中继节点 R 共享密钥 k₁,R 与 Bob 共享密钥 k₂,那么 R 可以将 k₁ ⊕ k₂ 发送给 Bob(或 Alice),从而让 Alice 和 Bob 共享密钥 k₁(Bob 计算 (k₁ ⊕ k₂) ⊕ k₂ = k₁)。这种方案的致命弱点在于:每个中继节点都必须被完全信任,因为密钥在中继节点处是以明文形式存在的。任何一个中继节点的安全妥协都会导致整条链路上的密钥泄露。尽管存在这一根本性的信任假设,可信中继架构由于技术门槛相对较低,已经在多个实际 QKD 网络中得到部署,包括中国的京沪干线(Beijing-Shanghai backbone,全长约 2000 公里,包含 32 个可信中继节点)和欧洲的多个城域 QKD 网络。

从长远来看,消除对中继节点信任依赖的技术路线是量子中继器(quantum repeater)。量子中继器的核心思想是利用纠缠交换(entanglement swapping)和纠缠纯化(entanglement purification/distillation)来实现远距离的高质量纠缠分发,而无需在中间节点处将量子信息转化为经典信息。

纠缠交换的原理如下:假设 Alice 与中继节点 R 共享一对纠缠光子 (A, R₁),同时 R 与 Bob 共享另一对纠缠光子 (R₂, B)。R 对自己持有的两个光子 R₁ 和 R₂ 执行贝尔态测量,并将测量结果告知 Alice 和 Bob。测量完成后,Alice 的光子 A 和 Bob 的光子 B 就会进入纠缠态——尽管它们从未直接交互过。通过级联纠缠交换,可以在任意远距离的两端建立纠缠。

然而,由于每一段链路中的光子损耗和操作噪声,经过多次纠缠交换后的纠缠态质量会严重退化。纠缠纯化技术通过消耗多对低质量纠缠态来蒸馏出少量高质量纠缠态。纠缠纯化需要将纠缠态保存在量子存储器(quantum memory)中,等待多轮蒸馏操作的完成。量子存储器是量子中继器的关键使能技术,它需要在足够长的时间内(通常是毫秒到秒量级,取决于链路长度和通信轮次)保持量子态的相干性。目前,量子存储器的保真度和存储时间虽然在持续改进,但距离支持实用化量子中继器仍有很大差距。

量子中继器的研究通常被分为三代。第一代量子中继器基于纠缠纯化和量子存储,需要双向经典通信来协调各段链路的操作,密钥率受限于经典通信延迟。第二代量子中继器利用量子纠错码来替代纠缠纯化,可以在单向通信中完成纠错,提高了密钥生成效率。第三代量子中继器则将量子纠错应用于整个传输过程,实现全量子的中继操作,但对硬件要求最高。截至目前,实验上仅实现了第一代量子中继器的部分关键技术演示,距离完整的实用化量子中继器仍需多年甚至十余年的技术攻关。

八、量子卫星与远距离 QKD

光纤传输面临一个基本物理限制:光子在光纤中的指数衰减使得直接传输的距离上限约为几百公里(取决于光纤损耗系数和探测器灵敏度)。在没有量子中继器的情况下,突破这一距离限制的另一条路径是利用卫星作为中继平台——因为光子在自由空间(真空或高层大气)中的损耗远小于在光纤中的损耗。

2016 年 8 月,中国发射了世界上第一颗量子科学实验卫星”墨子号”(Micius),这是量子通信领域的标志性事件。墨子号卫星搭载了纠缠光子对源和量子密钥分发终端,在距地面约 500 公里的太阳同步轨道上运行。在随后的一系列实验中,墨子号团队实现了多项世界首次:

第一,星地量子密钥分发。墨子号与地面站之间成功完成了 BB84 协议的密钥分发,最远距离达到约 1200 公里(卫星到地面站的斜距)。卫星向地面站发送编码量子态的单光子脉冲,地面站使用大口径望远镜接收和测量。由于卫星轨道的大部分路径处于真空或极稀薄大气中,光子仅在穿过低层大气时遭受散射和湍流扰动,总体损耗远小于等距光纤传输。实验实现的密钥生成率约为每秒数千比特到数万比特。

第二,千公里级纠缠分发。墨子号上的纠缠光子对源产生纠缠光子对,分别发送到两个相距约 1200 公里的地面站。实验结果证实,即使经过如此远距离的传输,光子对仍然保持着高质量的纠缠——CHSH 不等式的违反程度远超经典极限。这一实验为基于纠缠的远距离 QKD 和未来的量子网络奠定了实验基础。

第三,洲际量子密钥分发。2017 年,利用墨子号卫星作为可信中继,中国和奥地利之间首次实现了洲际量子密钥分发——卫星分别与位于兴隆和格拉茨(Graz)的地面站建立 QKD 链路,然后通过卫星上的密钥接力,实现了北京与维也纳之间的安全视频通话演示。需要指出的是,在这一方案中,卫星扮演了可信中继的角色——密钥在卫星上是以明文形式存在的——因此其安全性依赖于卫星平台本身的物理安全。

墨子号的成功推动了量子卫星通信的国际竞赛。欧洲、日本、新加坡等多个国家和地区相继启动了自己的量子卫星计划。中国也在规划下一代量子通信卫星网络,目标是建立覆盖全球的量子安全通信基础设施。未来的方向包括:高轨卫星以延长可用通信时间窗口、白天量子密钥分发以突破当前仅限夜间工作的限制(因为白天背景光子噪声很大)、以及卫星间量子链路以实现更灵活的网络拓扑。

从更长远的角度来看,量子卫星与地面光纤量子网络的融合是构建全球量子互联网(quantum internet)的关键路径。在这一愿景中,城域范围内通过光纤 QKD 网络实现高速密钥分发,城市之间通过光纤骨干网(配合可信中继或未来的量子中继器)连接,洲际之间则通过量子卫星链路桥接。最终目标是形成一个多层次、多介质融合的全球量子通信网络,为各类安全通信需求提供信息论安全的密钥服务。

九、QKD 的局限与争议

尽管 QKD 在理论上提供了无条件安全性这一令人瞩目的承诺,它在实际应用中的价值和前景在密码学界和信息安全界一直存在激烈的争议。客观地审视 QKD 的局限性是全面理解这一技术的必要环节。

首先是距离限制。如前所述,光纤 QKD 的直接传输距离受限于光子损耗,即使使用最先进的 TF-QKD 协议,当前的记录也只有约 800 多公里。超过这一距离要么需要可信中继(牺牲安全性假设),要么需要量子中继器(尚不实用),要么需要量子卫星(受限于天气、通信窗口和卫星可信性)。相比之下,基于 PQC 的密钥协商可以在现有互联网基础设施上工作,不受距离限制。

其次是密钥生成率和成本。当前的 QKD 系统典型密钥生成率在每秒千比特到兆比特量级,远低于经典密钥交换协议的速度。QKD 系统需要专用的量子信道(独占光纤或自由空间链路)、昂贵的单光子探测器和精密的光学设备,部署和维护成本远高于软件升级即可实现的 PQC 方案。

第三,QKD 仅解决密钥分发问题,不能替代完整的公钥基础设施(PKI)。QKD 不提供数字签名、身份认证等公钥密码学的核心功能。事实上,QKD 协议本身就需要一个经认证的经典信道——这意味着通信双方需要预先共享某种认证密钥或使用经典的认证机制(如 PQC 签名方案)来保护经典信道免受中间人攻击。这形成了一个有趣的依赖关系:QKD 的安全运行反而需要经典密码学(或预共享密钥)的支持。

第四,安全性证明与实际设备之间的差距。正如前面讨论的,侧信道攻击是实际 QKD 系统面临的严重威胁。虽然 MDI-QKD 和 DI-QKD 在理论上分别解决了探测器侧和全设备侧的安全性问题,但它们在实用化程度上仍远不及标准 BB84 系统。有批评者指出,QKD 将安全性的信任从数学假设转移到了物理设备和实现的正确性上——而验证一个复杂物理系统的正确性并不比验证一个数学假设简单。

正是基于这些考虑,一些重要的国家安全机构对 QKD 持审慎态度。英国国家网络安全中心(NCSC)在其公开指南中明确不推荐将 QKD 用于政府或关键基础设施的安全通信,理由包括:QKD 仅提供密钥协商功能而非完整的安全解决方案、对硬件有特殊要求导致难以大规模部署、以及实际安全性难以独立验证。美国国家安全局(NSA)也发表了类似的立场,认为 PQC 是应对量子威胁的更实际和更全面的解决方案。法国国家网络安全局(ANSSI)的立场则更为平衡,认为 QKD 在特定场景下具有价值,但不应被视为 PQC 的替代品。

那么,QKD 的真正价值在哪里?一个成熟且务实的观点是:QKD 与 PQC 不是竞争关系,而是互补关系。PQC 的安全性基于计算复杂性假设——尽管这些假设经过了广泛的密码分析,但原则上它们可能在未来被新的数学或算法突破所推翻(正如 Shor 算法推翻了大整数分解和离散对数的困难性假设)。QKD 则提供了不依赖于任何计算假设的信息论安全性。在对安全性要求极高、且具备部署量子通信基础设施的条件的场景中——例如政府机构之间的绝密通信、金融机构之间的高价值数据传输、以及数据中心之间的骨干链路加密——QKD 可以与 PQC 结合使用,形成”纵深防御”(defense in depth)的多层安全架构。在这种架构中,即使 PQC 方案在未来某一天被攻破,QKD 层仍然提供安全保障;即使 QKD 设备存在未知的侧信道漏洞,PQC 层也提供了后备保护。

从更宏大的视角来看,QKD 及其背后的量子通信技术并不仅仅是一种密钥分发手段——它是正在构建中的量子信息网络的核心组成部分。未来的量子互联网不仅能传输量子密钥,还能传输量子态本身,支持分布式量子计算、量子传感器网络、盲量子计算(blind quantum computation)等全新的应用范式。从这个意义上说,QKD 的研究和部署不仅是为了解决当下的密钥分发问题,更是为了推动整个量子信息技术生态系统的成熟。密码学从业者应当以开放而审慎的态度看待 QKD——理解其独特的安全性优势,正视其当前的实际局限,并关注其与后量子密码学以及更广泛的量子信息技术之间的协同发展。

十、QKD、PQC 与混合方案能力边界对照

为帮助读者在不同安全需求场景下做出技术选型判断,下表从多个维度对比 QKD、后量子密码(PQC)和混合方案的能力边界。

维度 QKD(量子密钥分发) PQC(后量子密码) 混合方案(QKD + PQC 或 经典 + PQC)
安全性基础 量子力学基本原理(信息论安全) 数学困难问题(格、编码、哈希等计算假设) 双重保障——物理定律 + 数学假设
距离限制 严重——点对点约 100-300 km(光纤);需可信中继或量子中继延伸距离 无限制——纯软件实现,可在任意网络拓扑上运行 取决于是否包含 QKD 组件;纯 PQC 混合无距离限制
基础设施成本 极高——需专用光纤/自由空间链路、单光子探测器、低温设备 极低——软件升级即可,复用现有网络基础设施 中到高——取决于是否部署 QKD 硬件
标准化成熟度 ETSI QKD 标准族;ITU-T Y.3800 系列;尚无全球统一的互操作标准 NIST FIPS 203/204/205 已发布(2024);IETF 正推进 TLS/X.509 集成 混合 TLS 草案进展中(IETF draft-ietf-tls-hybrid-design);实践先于标准
抗量子计算能力 信息论安全——对任何计算能力的攻击者均安全(理论上) 基于当前最优量子算法的困难假设——未来可能被新算法突破 最强——任一层被攻破时另一层仍提供保护
功能完备性 仅密钥分发——不提供签名、认证、密钥封装等功能;自身需要经典认证信道 完备——支持加密、签名、密钥交换、密钥封装等全部公钥密码功能 完备——继承 PQC 的功能完备性
吞吐量 低——典型 kbps 至 Mbps 量级密钥生成率 高——与经典密码方案相当,可达 Gbps 量级 受 QKD 组件瓶颈限制(若包含 QKD)
适用场景 政府/军事绝密通信、数据中心骨干链路、金融核心网络 通用场景——互联网通信、移动设备、IoT、云服务 最高安全需求场景——需要纵深防御的关键基础设施

笔者认为,QKD 与 PQC 之争的深层本质,是对”我们更信任物理学还是数学”这一根本问题的不同回答。PQC 的安全性建立在数学困难问题之上——我们相信某些问题(如 LWE)即使对量子计算机也是困难的,但这终究是一个计算复杂性假设,原则上可以被未来的算法突破推翻(正如 Shor 算法推翻了大整数分解的困难性)。QKD 的安全性则建立在量子力学的基本定律之上——不可克隆定理和海森堡不确定性原理——如果这些物理定律是正确的,那么 QKD 的安全性就是绝对的。但这里有一个微妙的逻辑陷阱:QKD 的”信息论安全”是针对理想化设备模型的证明,而真实设备总是存在偏离理想模型的可能。从工程实践来看,我们实际上是在”信任数学假设不会被算法突破”和”信任物理设备忠实地实现了理论模型”之间做选择——两者都不是绝对可靠的。这正是混合方案的价值所在:它不要求我们在物理与数学之间做出非此即彼的选择,而是让两层防御互为后备,将安全性建立在”物理定律和数学假设同时失效”这一极不可能的事件之上。


密码学百科系列 · 第 60 篇

← 上一篇:哈希基签名 | 系列目录 | 下一篇:不可区分混淆


By .