?

量子密鑰分發系統防死時間攻擊方案研究

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]?;谡T騙態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的智能家居密鑰管理機制的實現
中科大實現綜合性能國際最優的單光子源
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合