3. BB84协议流程拆解
BB84协议常被概括为“Alice发量子态、Bob测量、比对基矢、协商密钥”,但真正实现一个可运行的仿真时,必须把这条链路拆成五个职责清晰的阶段:制备、测量、筛选、纠错、保密放大。同时要明确一个关键前提——整个协议横跨两条性质完全不同的信道:量子信道只承载单光子量子态,经典信道承载基矢比对、校验信息与最终密钥确认。二者在安全性上的角色不可互换:量子信道负责产生关联,经典信道负责把关联“提炼”成密钥,但经典信道必须假设可被窃听(只保证可认证,不保证保密)。
下面按五阶段逐一拆解,并给出一个可复现的仿真参数示例。示例中取密钥长度 N=16 比特、量子比特误码率设定为 QBER≈3%(合理假设值,用于演示流程,非实测数据)。
阶段一:制备(Alice,量子信道发送端)
Alice 对每个比特独立做两件事:随机选一个基矢(Z 基记作 0,对应 |0⟩/|1⟩;X 基记作 1,对应 |+⟩/|−⟩),再随机选一个比特值,按基矢编码成四种量子态之一。仿真中通常用两个随机数组 basisA[i] 与 bitA[i] 表示,编码规则为:Z 基下比特 0→|0⟩、1→|1⟩;X 基下比特 0→|+⟩、1→|−⟩。这一步的输出是长度为 N 的量子态序列,经量子信道逐个发送给 Bob。
阶段二:测量(Bob,量子信道接收端)
Bob 对每个到达的量子态独立随机选择测量基 basisB[i],他无法知道 Alice 用了哪个基。若基矢一致,测量结果确定等于 Alice 的比特;若基矢不一致,结果在 Z/X 两组共轭基下完全随机,只有 50% 概率与 Alice 相同。仿真中可对“基一致”位置直接复制比特,对“基不一致”位置用随机数生成测量值,从而模拟理想信道;若要模拟噪声,则再以概率 QBER 翻转结果。
阶段三:筛选(经典信道,公开比对基矢)
Bob 通过经典信道公开自己的基矢序列 basisB,Alice 比对后公开哪些位置基矢一致(只公开“一致/不一致”,绝不公开比特值)。双方保留基矢一致的位置,得到筛选密钥(sifted key)。在 N=16、双方基矢独立均匀随机的期望下,约有一半位置被保留,示例中可得到约 8 位筛选密钥。筛选后双方还需抽样一部分比特公开比对,估算 QBER,用于判断是否遭窃听——这是筛选阶段附带的“安全体检”。
阶段四:纠错(经典信道,双向协商)
筛选密钥在理想情况下应完全一致,但信道噪声或窃听会导致少量分歧。纠错阶段双方通过经典信道交换校验信息(如奇偶校验位、级联纠错的分块校验),定位并修正分歧比特。仿真中常用简化做法:Alice 把筛选密钥按块分组,公开每块的奇偶校验值,Bob 比对自身分块奇偶值,不一致则定位并翻转。纠错会泄露部分信息,因此必须记录泄露比特数,供保密放大阶段扣除。
阶段五:保密放大(经典信道,压缩提纯)
纠错后双方密钥一致,但窃听者可能已掌握部分信息。保密放大用公开的压缩函数(如 Toeplitz 矩阵哈希)把 n 位密钥压缩为 m 位更短的最终密钥,使窃听者信息量降到可忽略。压缩量由 QBER 与纠错泄露量决定,示例中若筛选密钥 8 位、纠错泄露 2 位、安全余量取 2 位,则最终密钥约 4 位。最终双方各自计算哈希并比对摘要,确认密钥一致后即可用于一次性密码本等场景。
双信道角色划分:为什么不能混用
把两条信道放在一起看,职责边界非常清楚。量子信道的任务是建立关联:Alice 的量子态与 Bob 的测量结果之间形成统计相关性,这种相关性是密钥的“原材料”。它的安全性来自量子力学——未知量子态不可克隆、测量会扰动状态,窃听者 Eve 若截获并重发,必然引入额外误码。经典信道的任务是提炼与验证:基矢比对、纠错校验、哈希压缩、最终一致性确认都在这里完成。经典信道不要求保密,但要求可认证(确认对方真是 Bob/Alice),否则中间人可冒充。仿真实现时,两条信道应作为两个独立模块:量子信道模块输出测量结果,经典信道模块只传递公开信息,且所有公开信息都要计入“泄露账本”。
仿真实现要点与结果判读
实现五阶段时,建议用统一的数据结构贯穿全程:每个位置维护 basisA、bitA、basisB、bitB 四个字段,筛选阶段生成保留索引列表,纠错阶段在保留索引上操作,保密放大阶段对最终比特串做哈希。判读结果时看三个量:筛选密钥长度(应约为 N/2)、抽样 QBER(应低于安全阈值)、最终密钥长度(应大于 0 且明显短于筛选密钥)。若 QBER 超阈值或最终密钥长度为 0,说明本轮不安全,应中止并重新运行。示例中的 16→8→4 位只是教学演示,实际系统 N 通常取 10⁴ 以上量级,才能保证最终密钥有实用长度。