唐鵬毅,李國春,余 剛,鐘 軍,張英華,薛 路,趙子巖, 閆龍川,陳智雨,盧昌斌,羅 斌,高 松,劉建宏,
(1.科大國盾量子技術股份有限公司,合肥 230088; 2.國網電力信息通信有限公司,北京 100761;3.北京國盾量子信息技術有限公司,北京 100193)
量子保密通信是基于量子密鑰分發(Quantum Key Distribution,QKD)的安全通信技術,其以量子力學原理和信息論為基礎,能夠從理論上嚴格證明安全性。目前,量子通信產業化主要分為2種實現方案:一種是嚴格按照一次一密綁定量子設備的點對點安全通信,該方案主要針對軍用方面;另一種是不需要通信方綁定量子設備的量子密鑰池方案,該方案解決密鑰使用者對量子設備的依賴問題,結構上支持向云量子安全遷移,是如今商用系統普遍采用的方式。隨著量子通信京滬干線的建成,量子安全通信已從模擬實驗進入工程化實現階段[1]。在頻繁受擾動的復雜信道(如架空光纜、海底光纜)[2-3]中,如何保證量子通信的穩定運行,是目前量子通信工程領域的研究重點。
近年來,烏克蘭電網大規模停電等重大安全事件頻發,顯示電力工控網等國家信息基礎設施面臨著持續的安全威脅,亟待提升其安全等級。電力系統工控網絡的安全通信主要基于IPSec VPN實現。虛擬專用網絡(Virtual Private Network,VPN)通過數據包目標地址的轉換和對數據包的加密,在公網上建立專用通道并進行加密通信,是目前廣泛應用的一種安全通信方式。另一方面,通信和網絡攻擊持續升級,更嚴峻的情況是隨著量子信息技術的發展,人類即將進入量子計算和量子安全時代。通用量子計算機加上量子算法,能夠顯著加快對經典密碼學算法的攻擊效率。以公鑰體系為例,采用Shor算法可以將大數分解和離散對數問題的算法復雜度從指數級降為多項式級[4],這會對如今通用的DH(Diffie-Hellman)與ECDH(Elliptic Curve Diffie-Hellman)密鑰交換算法的安全性造成嚴重威脅。以對稱密碼體系為例,Grover算法能將搜索復雜度從O(N)降為O(N1/2),等效于密碼長度減半??梢钥闯?依賴于上述密碼學技術的常規VPN體系在量子安全時代將不可避免地面臨嚴峻威脅,為此,需要提前融合量子密碼技術以對抗未來的攻擊。
QS-KMS結構如圖1所示。相比傳統系統,QS-KMS擴展了3種特有的密鑰模塊:QKD產生對稱密鑰,量子隨機數發生器(Quantum Random Number Generator,QRNG)產生量子隨機數,使用格密碼等算法的后量子密碼技術(Post-Quantum Cryptography,PQC)對經典密碼學實現的密碼增強模塊[5]。QS-KMS主要支持3類應用:對稱密鑰的提取,云安全存儲,安全簽名。系統安全等級分為2級:量子安全(物理級)及后量子安全(算法級)。擁有QKD設備的客戶端可以實現量子安全性。擁有Ukey的客戶端,可以通過定期從QS-KMS服務域內站點充注QRNG產生的量子隨機數與QKD組建的城際網絡建立安全連接,以實現后量子安全。在不具備QKD和Ukey或者量子網絡受到攻擊出現異常的情況下,仍可以通過PQC密碼增強方案,例如密鑰交換、簽名,實現合理水平的安全性增強。

圖1 QS-KMS結構示意圖
經典的IPSec采用IKE協議實現認證和密鑰交換[6]。為保障VPN在量子計算下的安全性,通常對IKE協議進行改造,使用QKD量子密鑰替換原有基于公鑰體系的認證和密鑰交換,從而完成認證與會話密鑰協商環節[7-9]。
區別于上述將VPN與QKD設備綁定的方案,本文方案采用QS-KMS實現量子設備與VPN等密鑰應用者的解耦合,使應用者可以更靈活地面向業務優化結構和接口。QS-KMS與VPN功能的結合過程如圖2所示。量子密鑰層QKD設備在兩地實時地分發對稱密鑰,KM服務器獲取并保存QKD產生的對稱密鑰,多個KM服務器協同工作組成QS-KMS,提供量子密鑰或后量子增強密鑰供應用層VPN功能模塊申請使用。應用層VPN通過通用層間接口(量子密鑰交互模塊)向KMS層申請、獲取對稱密鑰,并基于量子安全密鑰進行認證與加解密通信。QRNG模塊向QS-KMS提供量子隨機數,作為QS-KMS的認證密鑰通過Ukey傳遞給VPN,實現VPN與QS-KMS之間的安全通信。QS-KMS中分別保存QKD產生的待提取的會話密鑰、需長期保存的QRNG產生的認證密鑰,以及密鑰使用者(VPN等)在申請密鑰時要求KMS長期保存的會話密鑰。綜上,QS-KMS繼承傳統KMS功能,應用方式和接口協議完全兼容KMS,其創新點是擴展集成了量子密鑰層的多種密鑰生成方式,包括不同量子編碼協議(偏振、相位、時間相位、MDI等)或不同廠商QKD設備,集成量子隨機數或抗量子密碼增強方案產生的密鑰,隨密鑰塊增加標簽字段標注密鑰來源方式,可以供經典層根據不同的安全等級有選擇地申請使用。

圖2 基于量子密鑰的VPN系統結構
本文方案將整個量子密鑰分發網絡抽象封裝到QS-KMS底層,經典VPN網絡與量子密鑰的結合主要是IKE協議與KMS的結合,分為認證和密鑰交換2個部分。VPN等經典層應用可以在附近的密鑰管理服務器注冊認證后接入量子網,通過密鑰管理服務完成與其他在量子網注冊的應用之間的密鑰交換。
在KMS上注冊認證時,VPN之間建立安全信道的認證均通過對稱密鑰實現。
KMS與VPN服務器之間可以通過設備信息與預置認證密鑰(IDA,KA)進行認證。VPN服務器選擇所屬域密鑰管理服務站點接入,認證密鑰通常采用UKey傳遞(IDA,KA)的方式定期更換。其中,(IDA,KA)是VPN_A連入量子網a節點的身份證明及安全獲取量子密鑰的保證,通過(IDA,KA),VPN_A可以申請量子網內其他節點與a節點之間的對稱密鑰。
VPN服務器之間的認證(替換IKE協議安全信道的建立階段)均采用預置對稱密鑰作為初始認證密鑰,當認證密鑰耗盡需要更換時,密鑰管理模塊KM會使用QKD產生的量子密鑰更新認證密鑰。VPN服務器會向密鑰交換模塊請求從KM獲取新的認證密鑰,該過程同第3.2節密鑰交換過程。
受訓人員使用VR手套與場景交互,手套與按鈕、油門手柄發生碰撞,觸發交互對象的操作動畫。VR手套與上述物體交互時,操作對象的動畫播放與VR手套的操作不一致;例如使用VR手套撥動油門手柄時,手柄穿透VR手套且未及時播放動作動畫。
VPN之間、KM之間的認證過程相同,均采用雙向認證方案,只有擁有認證密鑰的雙方才能正確地進行加解密,并通過挑戰應答的方式判斷對方的身份。
將IPSec VPN中的D-H密鑰交換替換為從KMS申請量子密鑰[10],如圖3所示。在VPN的密鑰交換模塊中增添一個環形緩沖區,將經典VPN密鑰交換改為共同協商從緩沖區提取密鑰片段。作為量子密鑰分發網的節點,KMS內設置了密鑰池來緩存2個KM服務器之間的對稱密鑰,QKD設備向密鑰池中補充密鑰。當VPN環形緩沖區內密鑰消耗量超過預定義的一次密鑰提取申請的密鑰量時,VPN便會向KM服務器發起密鑰提取請求,并用提取的密鑰覆蓋已使用的密鑰。

圖3 量子密鑰交換
當VPN雙方相互認證成功并且均獲得KMS認證后,即可請求KM服務器為它們推送密鑰KA,B[11]。請求與推送過程如下(在以下協議設計中,KM服務器密鑰池包含由后量子算法增強經典密碼算法、量子密鑰分發算法產生的對稱密鑰):
1)VPN_B->VPN_A:IDA‖IDB‖Ag。VPN服務器B向VPN服務器A提出補充密鑰請求,協商補充密鑰的生成算法Ag(選擇量子密鑰分發算法),并發送給服務器A。
2)VPN_A->KM_A:IDA‖IDB‖L‖Ag。VPN服務器A向KM_A提出需要和VPN服務器B協商密鑰,則向KM_A發送雙方VPN服務器的ID、需要的密鑰長度L、密鑰生成算法Ag。
3)KM_A->KM_B:E(KKM,L‖IDA‖IDB‖Ag‖R‖Check)。KM_A生成密鑰塊標識R,然后將IDA、IDB、密鑰長度L、生成算法Ag、密鑰標識R通過兩地KM之間的主密鑰加密發送給KM_B。KM_B根據KM_A所指定的長度L、生成算法Ag鎖定對應的密碼片段,驗證校驗值是否為Check,并將該片段標記為IDA‖IDB‖R,然后將校驗結果反饋給KM_A。
4)KM_A->VPN_A:E(KA,KA,B‖R)。收到校驗正常的反饋后,KM_A使用VPN_A與KM_A之間的認證密鑰KA加密的密鑰KA,B和密鑰塊標識R,發送給VPN服務器A。
5)VPN_A->VPN_B:E(KCAB,R)。VPN服務器A解密得到密鑰,并將密鑰塊標識R加密發送給VPN_B。
6)VPN_B->KM_B:E(KB,IDA‖IDB‖R)。VPN_B將IDA‖IDB‖R加密發送給KM_B,申請提取對應的密鑰。
7)KM_B->VPN_B:E(KB,KA,B)。KM_B將VPN_B與KM_B之間的認證密鑰KB加密的密鑰KA,B推送給VPN_B。
由于電網等工控網絡中往往需要對網絡傳遞的指令或者數據進行備份與審核,在VPN服務器中保存明文指令或會話密鑰均需要提升服務器安全級別。在QS-KMS中可以使用云安全模塊的安全存儲功能解決這一問題:使用KMS的VPN服務器可以在向QS-KMS申請會話密鑰時,注明該段密鑰需要KMS備份。因此,VPN服務器可以將密文和密鑰片段的標識符轉發給審核機構,審核機構從KMS中獲取對應密鑰后解密并進行數據審核。審核機構同樣需要Ukey獲取量子隨機數與KMS認證,并加密傳輸的審核密鑰。
外界環境干擾或攻擊會對量子網絡造成影響,導致量子密鑰分發成碼率產生波動,最終使其無法穩定地輸出量子密鑰。一般采用密鑰池(密鑰緩存)的方法來解決該問題。但實際中多數為長距離架空光纜的電力通信網絡,受環境影響劇烈,惡劣天氣等因素會導致其日均成碼率存在較大波動,普通的密鑰池策略難以為其提供穩定的密鑰輸出條件。因此,為保證電網應用中VPN的長期穩定工作,本文在KMS中加入動態密鑰管理策略,以解決惡劣天氣等因素造成的部分鏈路量子密鑰不足問題,在此基礎上,設計一種集成后量子密碼保密增強方案,作為QKD中斷后的應急備用措施。
KMS中每個KM服務器代表一個區域性的密鑰供給站點,可以接入多個QKD設備,分別為不同的密鑰池補充密鑰。一對QKD設備與兩地KM中的一對密鑰池對應,KM可以根據當前密鑰需求量對密鑰生成鏈路進行調節[12-13]。如圖4所示,A、B、C處3個KM下掛QKD組成兩兩相連的密鑰分發網。如果AB之間的密鑰不足,而AC、BC之間的密鑰池內密鑰充足,則KM會通過AC、BC之間的密鑰中繼向AB之間的密鑰池補充對稱密鑰:KM_A直接將密鑰池AC的部分密鑰轉移到密鑰池AB并通知KM_C,KM_C將該部分密鑰通過從密鑰池BC中取出的密鑰一次一密加密發送給KM_B[14],KM_B從密鑰池BC中取出對應密鑰并解密,然后將解密結果存入密鑰池AB。

圖4 KM中的密鑰池對應關系
KM接收到提取密鑰請求時查詢當前剩余的密鑰量,若KM密鑰池中的剩余密鑰不足40%,KM則向其他節點提出通過密鑰中繼補充密鑰的請求,根據各節點給出的密鑰量反饋選擇一條或多條密鑰池密鑰量均超過70%的鏈路,然后通過密鑰中繼補充密鑰。
對于一般VPN服務器之間的數據量而言,量子密鑰分發的效率難以滿足一次一密要求,因此,當VPN與量子密鑰結合時,仍沿用VPN原有的加解密和更換密鑰的策略。當因特殊原因導致KM密鑰池中的密鑰消耗過快,KM無法通過量子網絡的調節補充充足的密鑰時,會通知VPN量子密鑰不足,并切換到使用后量子密碼增強密鑰進行加密通信的模式。
QS-KMS使用liboqs庫[5]實現多種效率高于經典ECDH算法的后量子密碼算法。在密碼增強方案中,默認采用Newhope算法[15]產生的密鑰與ECDH算法生成的密鑰進行異或運算,結果作為后量子安全密鑰供VPN提取使用。
將本文QS-KMS與VPN結合的方案應用于電力通信中的抗干擾量子通信系統實驗。量子層設備為40 MHz快速偏振反饋方案QKD,實驗環境選擇的鏈路為合肥市肥東變電站至肥西變電站之間共68 km的架空光纜,測試周期為16 d,實驗時以電網中QKD設備在強環境干擾下的真實成碼率支撐QS-KMS和VPN傳輸業務。經過優化與測試,該段鏈路偏振編碼QKD每小時平均成碼率的波動范圍為1.1 Kb/s~3.8 Kb/s,每日平均成碼率大于2 Kb/s[16]。隨后,對1 GHz高速時間相位編碼的QKD進行測試,選擇的鏈路為上海市北電力與災備中心的架空光纜,全程75 km,其中,架空部分長55.5 km,測試周期為28 d。測試結果為:1 h成碼率波動范圍在1.82 Kb/s~5.63 Kb/s,總平均成碼率為4.238 Kb/s。在上述實地測試案例中,QKD性能為Kb/s量級,以128 bit密鑰長度為例,每分鐘更新10次作為目標,對應于每分鐘1 000次以上的更新速度,量子密鑰能夠支撐100個VPN實例同時運行。
在嵌入式模塊LS1043上測試PQC算法模塊的運行效率。其中,經典的ECDH算法密鑰產生速率為75 Kb/s,Newhope算法密鑰產生的速率為184 Kb/s,后者能夠實現對經典算法的密鑰增強,增強后整體密鑰產生速率為75 Kb/s,單片卡足以滿足中等規模網絡的VPN應用需求,且可以根據需要對多卡進行并行擴容。
基于QS-KMS的統一后臺服務能夠為VPN提供靈活、可重配的密鑰來源與更新速率,面向電網實際業務進行應用實驗,針對不同業務安全性需求,按照業務安全等級配置相應的VPN密鑰使用策略,然后將量子密碼和量子通信技術有效地融入到電力通信網絡中,從而提升網絡管理和信息傳輸的安全等級[17-18]。
本文通過QS-KMS與IKE協議的融合,在量子密鑰管理中擴展加入密鑰動態調節和后量子密碼算法,實現了持續穩定運行的量子安全VPN。將該量子安全VPN的實現方案及實驗設備在區域電網實地場景中進行測試,結果表明,該方案能夠滿足電網控制通信的需求。今后將針對電網、工控網、大數據中心等實際運營環境,進一步完善QS-KMS系統結構,設計并集成量子安全簽名和后量子安全簽名等諸多方案,以建立工控網絡中完善穩定的量子安全通信體系。
備注作者唐鵬毅與劉建宏對本文成果作出同等貢獻。