2. QKD协议安全模型与威胁分析

量子密钥分发(QKD)的安全性并非来自“量子”二字本身,而是来自一套可被形式化描述的安全模型。理解这套模型,是开展安全测试的前提:只有先明确协议在什么假设下安全、攻击者被允许做什么,才能设计出有意义的测试用例,判断一个实际系统是否偏离了理论安全边界。

一、三类协议的安全假设

BB84是最早的QKD协议,其安全性建立在三条核心假设之上:量子力学不可克隆定理保证未知量子态无法被完美复制;测量塌缩使得窃听者Eve的任何测量都会以一定概率扰动量子态;经典信道需具备认证性,防止中间人篡改基比对与纠错信息。BB84的理想模型假设单光子源,但实际器件难以产生严格单光子,多光子脉冲会被光子数分离(PNS)攻击利用。

诱骗态协议正是为修补这一假设缺口而提出。发送方随机切换信号态与诱骗态,二者仅在光强上不同,Eve无法区分。通过比较不同强度脉冲的增益与误码率,通信双方可估计单光子脉冲的贡献,从而在存在多光子脉冲的情况下仍能给出安全密钥率下界。其安全假设从“理想单光子源”放宽为“可统计表征的弱相干光源”。

测量设备无关(MDI)QKD则进一步移除对测量端探测器的信任假设。双方将量子态发送到不可信的第三方进行贝尔态测量,任何针对探测器的攻击都被归入信道损耗,安全分析不再依赖探测器特性。代价是需要干涉稳定、成对到达,且密钥率随距离下降更快。

QKD协议安全假设与攻击面对应关系 BB84 安全假设 • 不可克隆定理 • 测量塌缩扰动 • 经典信道认证 • 理想单光子源 主要攻击面 PNS、探测器致盲、特洛伊木马 诱骗态 安全假设 • 弱相干光源可统计表征 • 信号/诱骗态不可区分 • 增益与误码可观测 • 单光子贡献可下界估计 主要攻击面 光源侧信道、强度波动、基选择偏差 MDI-QKD 安全假设 • 测量端不可信 • 贝尔态测量正确性 • 干涉稳定与成对到达 • 经典后处理认证 主要攻击面 源端侧信道、同步攻击、波长依赖 威胁建模方法:资产 → 攻击面 → 攻击路径 → 影响评估 资产:量子态、基信息、密钥、认证凭据、探测器、光源 攻击面:物理层、光学层、电子层、协议层、实现层 物理攻击 探测器致盲/温度 光纤弯曲/切割 光学攻击 PNS/特洛伊木马 波长/偏振操控 协议攻击 基比对篡改 同步/时序攻击 实现攻击 侧信道/固件 随机数缺陷

二、攻击面分类

从工程测试角度,QKD系统的攻击面可分为四层。物理层包括光纤链路、连接器、机箱与供电,攻击者可能实施光纤弯曲窃听、切割重接或温度操控。光学层涉及光源、调制器、探测器,典型威胁是PNS、探测器致盲、特洛伊木马光注入。协议层关注基比对、纠错、隐私放大与认证流程,攻击者可能篡改经典交互消息或利用同步漏洞。实现层则涵盖随机数发生器、固件、密钥存储与接口,侧信道与实现缺陷往往在此暴露。

威胁建模的通用方法是:先识别资产(量子态、基信息、最终密钥、认证凭据),再枚举攻击面,然后构造攻击路径,最后评估影响与可行性。对QKD而言,特别需要关注“假设违背”类威胁——即协议安全证明所依赖的某个前提在实际系统中不成立。例如,若随机数发生器存在偏置,基选择就不再均匀,Eve可据此优化攻击策略。

三、威胁建模的实操方法

实际开展威胁建模时,可按以下流程推进。第一步,绘制系统数据流图,标注量子信道与经典信道的所有接口、器件和软件模块。第二步,对每个接口列出“谁可以接触、能施加什么操作、需要什么能力”。第三步,将攻击路径与协议安全假设逐条对照,标记哪些假设可能被绕过。第四步,为每条路径分配风险等级,通常用“可行性×影响”二维矩阵排序。

以诱骗态QKD为例,一个具体的建模片段如下:假设攻击者具备光纤接入能力,可实施光子数分离。测试时需验证系统是否真正随机切换诱骗态强度,以及强度值是否被正确记录。可构造的检查项包括:统计信号态与诱骗态的实际光强分布,确认二者在时域上不可区分;检查增益与误码率随强度的变化是否符合理论预期;验证在人为注入多光子脉冲时,安全密钥率估计是否仍能给出保守下界。

测试要点:威胁建模的产出不是一份“攻击列表”,而是一组可执行的验证条件。每条威胁应转化为至少一个可观测指标或可复现的测试步骤,否则无法在工程中落地。

四、从模型到测试用例

将威胁模型转化为测试用例时,建议采用“假设—违背—观测”三段式。以BB84的经典信道认证假设为例:假设是“Eve无法篡改基比对消息”;违背方式是“中间人替换基比对结果”;观测指标是“双方筛选后密钥的误码率是否异常升高,或认证标签校验是否失败”。测试时可在受控环境中注入篡改,观察系统是否触发告警或中止密钥生成。

对于MDI-QKD,重点验证测量端不可信假设下的鲁棒性。可模拟不可信第三方执行错误贝尔态测量或选择性丢弃,观察双方能否通过参数估计检测异常。若系统在测量端被操控时仍输出密钥且未告警,则说明安全监控存在缺口。

最后需要强调,QKD安全模型是分层的:协议层安全证明、器件层假设、实现层约束三者缺一不可。安全测试工程的核心任务,就是逐层验证这些假设在实际系统中是否成立,并将偏离量化为可判断的指标。只有把威胁建模与可观测参数绑定,测试才具有工程意义。