量子密钥分发系统防死时间攻击方案研究

2023-02-14 07:54唐世彪李志郑伟军张万生高松李亚麟程节蒋连军
量子电子学报 2023年1期
关键词:单光子接收端密钥

唐世彪, 李志, 郑伟军, 张万生, 高松, 李亚麟, 程节, 蒋连军

(1 科大国盾量子技术股份有限公司, 安徽 合肥 230088;2 浙江华电器材检测研究院有限公司, 杭州 浙江 310000;3 国网浙江省电力有限公司嘉兴供电公司, 浙江 嘉兴 314000;4 浙江国盾量子电力科技有限公司, 浙江 杭州 310007)

0 引 言

近年来量子计算技术快速发展[1,2],给以数学问题复杂性为基础的公钥密码体制带来了严重威胁。作为对抗量子计算威胁的技术路线之一,量子密钥分发(QKD)技术的研究也展现出理论与实用化快速并驱发展的特点[3−5]。

QKD 通过传输量子态光脉冲信号完成通信双方的对称密钥协商生成,其安全性由量子力学基本原理保证。然而工程实现中因技术限制或者实现漏洞,会产生一些可能被攻击者利用的潜在安全威胁[6,7]。例如工程上难以实现理想的单光子源,对于原始形式的BB84 量子密钥分发协议,窃听者可以采取光子数分束攻击的方式窃取部分密钥信息。针对这种攻击方式,通过在激光器发射的信号光中随机掺杂一些不同强度的诱骗光来监测信道和窃听者对光脉冲的影响,诱骗态BB84 协议[8]可以使用半导体激光器制备的弱相干态光作为光源,实现与理想单光子源密钥生成速率接近的实用化QKD 系统,目前该协议已经发展成应用最广、得到严格安全证明的QKD 协议。

为进一步提升QKD 技术的实用性和安全性,挖掘QKD 系统中可能存在的安全漏洞并研究相应的防御策略是该领域的一个重要研究方向[9]。基于诱骗态BB84 协议的偏振编码QKD 系统一般由发送端、量子态光脉冲传输信道、接收端和数据后处理系统组成,其中接收端负责接收和测量量子态光脉冲,探测器模块是完成单光子信号转换成电信号的关键模块。如果探测器模块中有多个单光子探测器且存在死时间特性,死时间效应将会导致BB84 协议过程中筛选密钥生成速率受到限制[10],因此Burenkov 等[11]通过数值模拟和分析计算提出了更安全的密钥筛选方案。此外,攻击者还可以利用死时间效应实现对多通道探测器中指定通道的致盲以控制接收端生成特定的筛选密钥,从而破坏QKD 系统的密钥安全性,该攻击称为死时间攻击[12]。

本文针对探测器模块中多通道探测器可能产生的死时间攻击漏洞,设计实现了一种基于时间测量技术的防御方案,确保多通道探测器能够同步进入与退出死时间状态,且通过修改固件的形式即可完成升级,避免硬件调整,从而助力实用化QKD 产品的推广与应用。

1 方案原理描述

1.1 死时间攻击原理

基于诱骗态BB84 协议的典型偏振编码QKD 系统的一种典型接收端解码探测模块结构如图1 所示。发送端制备包含四种偏振态|H〉、|V〉、|+〉、|−〉的光脉冲信号,经光纤信道传输到达接收端后,通过解码探测模块中的分束器完成随机基矢选择,再经过偏振控制器和偏振分束器到达H、V、P、N 四通道单光子探测器。

图1 一种典型接收端解码探测模块结构图Fig.1 Structure diagram of a typical receiver decoding and detection module

根据BB84 协议,当发送端和接收端使用偏振控制器完成两端偏振态探测链路的校准后,到达接收端的|H〉偏振态的光脉冲信号经过分束器和偏振分束器到达H、V、P、N 四通道单光子探测器的概率将分别接近50%、0%、25%、25%,其他三种偏振态同理。

用于实现单光子探测的探测器类型很多,实用化QKD 系统多采用单光子雪崩光电二极管(APD)实现单光子探测。为成功探测接收到极微弱的单光子信号,APD 必须工作在盖革模式下以获得足够高的增益。在盖革模式下,当探测到一个光子入射后,APD 内会产生雪崩电流并自发持续下去,长时间处于雪崩状态将影响APD 的使用寿命和稳定性,因此在触发一次雪崩后,需要通过主动或被动方式将APD 的反向偏压降低到雪崩电压之下,以退出盖革模式、淬灭雪崩电流。此外,APD 雪崩过程中产生的载流子由于倍增层中的缺陷和杂质而导致延迟释放,造成少量额外雪崩信号即后脉冲效应,从而导致错误计数并降低QKD 系统安全密钥生成速率。为此,在每次成功探测到光脉冲后,需要将APD 反向偏压降低到雪崩电压以下并持续一段时间,强制APD 退出盖革模式而进入线性模式,此时单光子入射将无法触发有效探测信号,这段时间称为死时间,一般为几十纳秒到几十微秒。

死时间攻击[12]就是利用单光子探测器的死时间效应,攻击者在真实光脉冲信号前向光纤信道注入一个固定偏振的强脉冲光,引发H、V、P、N 四个探测器中除了目标探测器以外的其他三通道都以很高的概率触发探测并处于死时间而被致盲,仅剩余目标探测器处于正常响应模式。攻击者可据此控制接收端探测器的响应,如果此时接收端有探测事件产生,则攻击者能以很高的准确性判断接收端的探测结果,由于每个探测器映射的密钥数据是固定的,因此攻击者便能成功窃取密钥数据,相关实验验证该攻击能够成功窃取98.83%的密钥信息[13]。

1.2 防死时间攻击方案原理

针对死时间攻击的原理,死时间攻击防御需要达到如下目标:保证多通道探测器只要一个通道有探测响应,所有通道探测器同时进入死时间状态,并且同时从死时间状态中恢复。

根据防御原理,设计如下探测器死时间控制策略:将死时间划分为硬件死时间和软件死时间,硬件死时间长度固定,由设备硬件电路属性决定,软件死时间长度则根据探测事件进行动态调整。首先软件上设置死时间基础值,当四通道探测器中任意一通道触发探测事件后,开启死时间计时,在死时间基础值内所有探测器的探测事件均记为无效数据。若在死时间结束前有任意一通道触发新的探测事件,死时间长度自动增加一个叠加值。只有当各通道探测器在死时间范围内均无响应时,才同时退出死时间状态,各通道探测器触发新的探测事件才会被当成有效数据。

该方案的时序关系如图2 所示。定义Td0:死时间叠加值,即探测器的硬件死时间长度,该叠加值时长由探测器内部探测信号放大、甄别、整形等处理过程时间决定;定义Td1:死时间基础值,即软件首次设置的死时间长度值,该基础值时长不低于Td0,主要考虑为降低后脉冲而强制APD 退出盖革模式的持续时间。如果在Td1 时间结束前未产生新的探测事件,则本次死时间结束,四通道探测器数据均设为有效,开始进入下一个探测周期;定义Td1′:实际执行的死时间长度,从某通道探测器发生探测事件开启死时间到死时间结束,由于四通道探测器的探测事件时刻变化,因此该数据需要动态调整;定义T2:假设在Td1′快结束前,H、V、P、N 任意通道又发生新增探测事件,则T2 表示该新增探测事件到当前Td1′末尾的间隔时长。

图2 防死时间攻击方案示意图Fig.2 Schematic diagram of anti-dead time attack

由于Td0 的存在,如果Td1′长度固定,死时间仍然存在不同步结束的风险:当Td1′快结束时,如果某通道探测器(如H 通道)又发生探测事件,当Td1′结束而H 通道新的Td0 还没结束,则此时V、P、N 通道可以开始探测,但H 通道还不能探测,从而导致四通道探测器的死时间结束不同步。为此,设计如下Td1′时长动态调整方案,根据T2 的长短决定Td1′是否延长:(1)H、V、P、N 四通道探测器任意一通道触发探测事件,死时间状态正式启动,设定Td1′=Td1,Td1 时间内四通道探测器的探测事件均无效化;(2)如果T2≥Td0,该次事件Td0 结束时总时长仍未超出当前Td1′时间范围,则当前Td1′时长结束时死时间正常结束,Td1′=Td1,四通道探测器的探测事件恢复有效;(3)如果T2

按照以上防御策略,攻击者注入固定偏振态的强脉冲光后,任一通道探测器响应都会触发四通道探测器同步进入死时间,通过该机制,攻击者的目标探测器即使有响应事件也会被视为无效数据丢弃,不会用于生成密钥数据,从而阻止攻击者获取密钥信息。

1.3 防死时间攻击方案实现

QKD 系统中收发两端通过传输100 kHz 强度较高的同步光脉冲进行时间同步,相邻同步光脉冲间等间距分布着单光子水平的信号光脉冲,信号光和同步光的时序关系在收发两端及信道传输过程中保持稳定。接收端通过探测同步光脉冲来确定时间坐标,再根据探测到的信号光脉冲的时间来确定该信号光脉冲的唯一编号,收发两端据此能够将每个信号光脉冲一一对应,以保证后续密钥数据处理同步并生成对称密钥。同步光脉冲和信号光脉冲的时序关系如图3 所示。

图3 同步光与信号光时序关系图Fig.3 Timing diagram of synchronous pulse and signal pulse

为实现以上防死时间攻击策略,在QKD 系统接收端用TDC 时间测量单元测量各通道探测事件的触发时间,现场可编程门阵列(FPGA)根据时间测量结果实现死时间Td1′计时与长度动态调整,对于Td1′时间内的探测事件统一丢弃,硬件框图如图4 所示。

图4 防死时间攻击方案硬件框图Fig.4 Hardware block diagram of anti-dead time attack scheme

本方案中,接收端光学解码模块将100 kHz 低频同步光脉冲和信号光脉冲进行解码分束,经同步光探测单元和信号光探测单元后,分别输入时间测量单元和数据处理FPGA。时间测量单元采用德国ACAM公司的TDC 芯片(型号为TDC-GPX),其采用“起停型”时间测量方式,芯片设计有一个起始信号(Start)和多个停止信号(Stop)。同步光探测信号作为TDC 芯片的Start 信号接入,信号光探测信号作为TDC 芯片的Stop 信号接入,TDC 芯片将Start 和Stop 之间的时间间隔转化成数字信号,测量出每个同步光周期内各信号光的探测事件发生时间,并通过内置FIFO 接口输出。FPGA 实现TDC 芯片的控制与时间测量数据读取,同时对同步光信号脉冲进行计数得到连续的时间坐标,再结合由TDC 输出的信号光探测事件的时间测量结果,得到每个被探测到的信号光脉冲的具体到达时间。同时,按照图2 所示方案,在FPGA内部构建一个动态调整的死时间滑动窗口(时间长度为Td1′),并将窗口内的探测事件抛弃,不流入下一级密钥数据处理过程,即可实现上述防死时间攻击效果。

2 方案验证与讨论

2.1 实验平台验证

以一对偏振编码QKD 系统作为方案验证平台,将收发设备之间的光脉冲传输信道用短光纤连接,以增加接收端信号光脉冲探测计数,从而更快地观测到H、V、P、N 四通道探测器中不少于一通道被触发的探测事件,以此模拟被窃听者攻击的情况。

在本实验平台中,FPGA 先将每个信号光脉冲的TDC 时间测量值按照图3 中同步光和信号光的时序关系转换为由“同步光脉冲序号+信号光脉冲序号”组成的唯一编码,以便QKD 系统收发两端能够识别每个信号光脉冲,该编码每秒为一个周期,100 kHz 同步光脉冲序号范围是0∼99999,信号光脉冲序号范围是0∼12499。基于该实验平台特性,设置死时间基础值(Base value)为250(200 ns),死时间叠加值(Adding value)设置为22(17.6 ns)。

利用调试工具Signal Tap II 抓取FPGA 内部死时间设置数据处理过程,如图5 所示。HVPN channel number 表示不同通道的探测器(0 表示H 通道、1 表示V 通道、2 表示P 通道、3 表示N 通道),FPGA 读取编码为“同步光序号81110+信号光序号353”的探测事件(V 通道)后,开启死时间计时,并将死时间窗口启动点(start−point)设置为353,由图2 可见该死时间窗口的结束点为:启动点353+基础值250=603。

图5 FPGA 内部死时间设置数据处理过程Fig.5 Data process of dead time setting in FPGA

FPGA 随后继续读取了信号光序号为423(P通道)、457(N通道)、507(N通道)、843(H 通道)、1165(P 通道)的探测事件,由图2 可见423、457、507 均早于死时间结束点603,因此作为无效数据被丢弃,在数据有效标识(data−valid−identification)处这3 组数据均被打上无效数据标签“0x1”。由于507 距离结束点603 间隔为96,远大于叠加值22,由图2 可知无需延长死时间,死时间窗口在603 处自动结束。因此,之后的843 数据被当成有效数据(数据有效标识被设为“0x0”),且其后的1165 数据由于不在843 触发的新的死时间窗口(843∼1093)内,也被作为有效数据保留下来。

综上,FPGA 内部的死时间设置数据处理过程实现了同步多通道探测器同时进入和同时退出死时间的设计目标,验证通过。

2.2 死时间长度的影响

QKD 系统最核心的一项指标是安全密钥生成速率,其与信号光脉冲发射频率、光纤信道衰减、探测器有效探测计数/后脉冲概率/暗计数等多个因素有关[14]。其中探测器死时间大小对有效探测计数、后脉冲概率均有影响,死时间越长则有效探测计数越低(即丢弃探测事件更多),会降低安全密钥生成速率,但其同时会使探测器后脉冲概率降低,进而使得数据处理过程中错误率降低,最终提高密钥生成速率。因此需要合理选择死时间长度,平衡其对两者的影响,从而使安全密钥生成速率最大化。

基于以上实验平台,继续测量探测器模块在100、200、500 ns 死时间下的后脉冲概率,结果如表1所示,死时间越长后脉冲概率越低,符合预期。

表1 不同死时间长度下的后脉冲概率Table 1 Post pulse probabilities at different dead-time length

修改FPGA 内部死时间基础值参数为100、200、500 ns,统计QKD 系统在光纤信道链路衰减0、3、6、9、12、15、18、21、24 dB 下探测事件计数、有效探测计数、安全密钥生成速率的差异,结果汇总如图6 所示。如图6(a),由于死时间基础值只作用在FPGA 数据处理环节,探测事件计数三条曲线基本重合,且光纤信道衰减越小计数越高,符合预期;如图6(b),对于有效探测计数曲线,相同光纤信道衰减下死时间越长丢弃数据越多,导致有效计数越低,符合预期;另外当链路衰减过小(3 dB 以下)时,探测事件计数过多,相邻探测事件之间更加密集,将使得数据处理FPGA 内部因防死时间攻击策略丢弃的探测事件更多,导致三种死时间长度下3 dB 衰减以下有效计数都明显降低,符合预期;如图6(c),对于安全成码率曲线,500 ns 死时间丢弃的探测事件过多,导致参与生成密钥的有效探测事件过少,因此其整体密钥生成速率低于100 ns 和200 ns 的情况,符合预期,另外100 ns 和200 ns 曲线基本重合,结合表1 进行分析,可见200 ns 死时间下虽然有效探测计数稍低[见图6(b)],但其后脉冲概率更低,所带来的正面影响抵消了有效计数降低带来的负面影响,也符合预期。

图6 死时间长度对计数和成码率的影响。(a)单通道探测事件计数;(b)经过FPGA 内部死时间数据处理后剩余有效探测计数;(c)安全密钥生成速率Fig.6 Effects of dead time length on counting and key rate. (a)Counting of single channel detection;(b)Remaining valid counting after FPGA data processing;(c)Security key rate

在另一款低速QKD 系统中进行同样的实验,测得该系统中探测器模块在1µs 和2µs 死时间下后脉冲概率分别为0.56%和0.46%,统计该QKD 系统在光纤信道链路衰减0、3、6、9、12、15 dB 下探测事件计数、有效探测计数、安全密钥生成速率的差异,结果汇总如图7 所示。

由图7(b)可见,该低速QKD 系统在相同光纤信道衰减下死时间越长丢弃数据越多,有效计数越低,与图6 结论一致;由于低速QKD 系统中即使在0 dB 衰减下探测器仍未趋于饱和,因此未出现图6(b)中3 dB 以下有效计数降低的现象。另外,从图7(c)安全成码率曲线看,各衰减下1µs 死时间时成码率高于2µs,结合1µs 和2µs 下该系统中探测器后脉冲差距不明显的情况,说明在这两个死时间长度下有效探测计数的差异是导致成码率差异的主要因素,在该低速QKD 系统中1µs 死时间长度更为合适。

图7 低速QKD 系统中死时间长度的影响。(a)单通道探测事件计数;(b)经过FPGA 内部死时间数据处理后剩余有效探测计数;(c)安全密钥生成速率Fig.7 Effects of dead time length in low speed QKD system. (a)Counting of single channel detection;(b)Remaining valid counting after FPGA data processing;(c)Security key rate

综上所述,死时间长度对有效探测计数和后脉冲概率均有影响,针对不同QKD 系统需进行单独测试验证,优化死时间长度参数设置,以便QKD 系统达到最优性能。

3 结 论

结合QKD 系统组成详细介绍了死时间攻击原理及其危害,提出一种能够有效防范死时间攻击的基于时间测量的动态死时间设置方案,实验结果表明该防御方案有效,能够实现防御死时间攻击的目标。该方案可使用设备的TDC 资源,通过重构数据处理FPGA 固件关闭死时间攻击的安全漏洞,避免了硬件调整,具有极大的便利性。还讨论了死时间长度对QKD 系统成码率的影响,并针对不同QKD 系统在不同衰减下进行测试验证,优化死时间长度参数,从而使QKD 系统达到最优性能。

猜你喜欢
单光子接收端密钥
基于扰动观察法的光通信接收端优化策略
顶管接收端脱壳及混凝土浇筑关键技术
一种设置在密闭结构中的无线电能传输系统
基于多接收线圈的无线电能传输系统优化研究
密码系统中密钥的状态与保护*
“完美的单光子源”为量子精密测量奠定基础
IQ-单光子发射计算机断层扫描门控静息心肌灌注图像不同重建参数对测定左心室功能的影响
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
中科大实现综合性能国际最优的单光子源