1. 课程导入与仿真目标

BB84是量子密钥分发(QKD)领域最早、也最常被用作教学与工程验证基准的协议。它由Bennett与Brassard于1984年提出,核心思想并不复杂:用单光子的两种共轭基(直角基与对角基)编码随机比特,通过公开信道协商基矢、丢弃不匹配部分,再用抽样比对估计误码率,最终经过纠错与隐私放大得到安全密钥。但“原理简单”不等于“实现简单”。真正把BB84跑通,需要同时处理量子态制备、信道传输、探测响应、经典后处理、窃听建模与安全性评估等多个环节,任何一个环节的假设偏差都会让最终密钥率失真。

本课程的目标不是复述协议公式,而是构建一个端到端可运行、可观测、可调参的BB84完整仿真。因此,在动手写第一行代码之前,必须先明确三件事:BB84在整个QKD技术体系中的位置、本次仿真的边界在哪里、以及最终要交付什么。这三件事决定了后续29节的内容组织方式,也决定了你调试仿真时该看哪些量、该信哪些结论。

BB84在量子密钥分发中的定位

QKD解决的是“如何让通信双方共享一段理论上可证明安全的随机密钥”,它不负责加密数据本身,而是为一次一密或对称加密提供密钥源。在QKD家族中,BB84属于离散变量、制备-测量型、单向协议:发送方Alice随机选择比特与基矢制备量子态,接收方Bob随机选择基矢测量,双方通过经典信道公开比对基矢。与之并列的还有E91(基于纠缠与贝尔不等式)、B92(两态简化版)、诱骗态BB84(抗光子数分离攻击的工程版本)等。理解这一定位很关键:本仿真以理想单光子BB84为骨架,再逐步叠加诱骗态、有限密钥长度、探测器暗计数等工程因素,而不是一上来就做全功能商用QKD系统。

BB84完整仿真的分层结构与交付边界 量子层(物理过程) Alice 态制备 量子信道 Bob 基矢测量 窃听者 Eve(可选注入) 经典层(公开信道后处理) 基矢比对 抽样误码估计 纠错协商 隐私放大 评估层(结果与安全判定) QBER 与密钥率曲线 安全阈值判定 日志、指标与可复现实验记录 交付物 ① 可运行仿真代码包 ② 参数配置表 ③ 密钥率-QBER 结果图 ④ 实验日志与复现说明 ⑤ 安全性判定报告

完整仿真的边界:哪些必须做,哪些先不做

“完整仿真”容易被误解为“复刻一台真实QKD设备”。本课程的边界定义是:覆盖BB84从态制备到最终密钥输出的全部逻辑环节,并对每个环节给出可调参数与可观测输出,但物理模型采用教学级近似。具体来说,量子态用理想二维希尔伯特空间表示,信道用比特翻转概率与相位错误概率建模,探测器用暗计数率与探测效率建模,暂不引入脉冲形状、时序抖动、偏振漂移的连续演化等器件级细节。这样做的理由是:这些细节对理解协议逻辑帮助有限,却会显著抬高仿真复杂度,容易让学习者陷入数值细节而看不到协议主干。

需要明确排除的还有真实硬件接口、FPGA实时后处理、以及商用QKD的认证与合规流程。这些属于工程部署范畴,本课程只在必要处提及其对参数的影响,不展开实现。相反,以下内容必须完整实现:随机比特与基矢生成、四种偏振态的编码映射、信道噪声与窃听注入、Bob测量与基矢比对、误码抽样估计、纠错协商的简化模型、隐私放大的压缩计算,以及最终密钥率公式的数值验证。

学习路径与工具链概览

课程按“原理→单环节实现→端到端串联→工程因素→结果分析”推进。前段建立协议与量子态的对应关系,中段逐个实现量子层与经典层模块,后段引入诱骗态、有限密钥效应与窃听策略对比,最后做结果解读与安全性判定。工具链以Python为主:用NumPy做随机数与向量化运算,用Matplotlib出图,用pandas整理实验记录;不依赖量子计算框架,因为BB84的态空间维度极低,手写映射比调用框架更透明、更利于教学。

建议的环境约定如下,后续各节的示例参数均在此约定下给出,属于教学示例而非实测结果:

python >= 3.10
numpy >= 1.24
matplotlib >= 3.7
pandas >= 2.0

# 示例运行参数(教学假设值)
N_QUBIT   = 100000      # 发送量子比特总数
P_DARK    = 1e-5        # 探测器暗计数率
ETA_DET   = 0.1         # 探测效率
E_CHANNEL = 0.02        # 信道固有误码率

在这组假设下,若不做窃听,基矢比对后约保留一半比特,抽样估计的QBER应接近信道固有误码率量级;一旦注入截获-重发窃听,QBER会明显抬升。这个“参数—中间量—结果”的对应关系,就是后续调试仿真时最直接的判断依据:先看基矢比对后的筛后密钥长度是否符合期望比例,再看QBER是否落在合理区间,最后看隐私放大后的密钥率是否为正。三者任一异常,都能反向定位到具体模块。

建议在开始编码前先手算一遍理想情况:N=100000时,基矢匹配概率约1/2,筛后约50000比特;若QBER估计为2%,则纠错与隐私放大后密钥率应显著低于筛后长度。把这个手算值作为仿真第一轮的对拍基准,能快速发现随机数或映射逻辑的错误。