摘 要

量子計算技術對傳統密碼算法安全性的威脅非常大。在量子計算模型下,公鑰密碼將被破解,對稱密碼和雜湊密碼的安全性將減半。研究和應用抵抗量子計算攻擊的密碼技術日趨緊迫,美國國家標準與技術研究所(National Institute of Standards and Technology,NIST)于 2022 年 7 月遴選出 4 種擬標準化的候選算法。隨著算法標準化進程接近尾聲,后量子密碼遷移活動被提上日程。就該領域展開系統性研究,歸納總結主流的后量子密碼遷移問題、方案、技術和方法等,并以政務云平臺系統進行后量子密碼遷移為例進行闡述,為后續的密碼應用遷移提供參考。

密碼技術是信息安全的核心技術,也是網絡空間安全的基石,而密碼技術的安全性依賴于密碼算法的安全性。隨著計算機運算性能的提升及密碼分析技術的進步,特別是量子計算技術的發展,密碼算法的安全性受到了嚴重的挑戰。

量子計算(Quantum computing)是利用量子態的性質(如疊加原理和量子糾纏)來執行計算的一種新型技術。其中,量子計算機的發展非常迅速,預計 5~15 年后,會對密碼算法將造成嚴重威脅的實用量子計算機將被制造出來。由于量子計算機帶來了運算算力的提升,量子算法(如 Shor 算法和Grover 算法)能降低破解傳統密碼算法的計算難度,使得破解傳統的公鑰密碼算法(如 SM2、SM9 等)成為可能,特別是基于大數因子分解問題和離散對數問題的密碼算法易被破解,此外,破解對稱密碼算法和雜湊密碼算法的時間消耗會大約降為原來所需的一半。

為了應對量子計算技術的威脅,后量子密碼應運而生。后量子密碼是在經典計算機上運行的、能抵抗量子計算攻擊及經典計算攻擊的密碼算法和密碼協議。目前,人們討論最廣泛的是公鑰密碼算法。

美國主導了后量子公鑰密碼算法標準化的進程 。美國國家標準與技術研究所(National Institute of Standards and Technology,NIST)在 2016年面向全球啟動了征集后量子公鑰密碼算法的活動,得到了世界密碼學界的廣泛響應,共征集到 69份算法方案。歷時 6 年多,經過了 3 輪的評估,于2022 年 7 月確定了 4 種擬標準化的后量子密碼算法,分別為密鑰封裝機制 Crystals-Kyber、數字簽名算法Crystals-Dilithium、Falcon 和 Sphincs+,同時確定了位翻轉密鑰封裝(Bit Flipping Key Encapsulation,BIKE)、Classic McEliece 和漢明準循環(Hamming Quasi-Cyclic,HQC)這 3 種密鑰封裝機制進入第 4輪評估。NIST 計劃于 2023 年發布后量子公鑰密碼算法標準草案以征求公眾意見,并于 2024 年頒布正式標準。

為了有效解決傳統密碼算法面臨的量子計算 攻 擊 的 安 全 威 脅, 同 時 考 慮“ 先 收 集, 后 破解 ”(Store-Now-Decrypt-Later,SNDL)潛 在攻擊的長時性及全套密碼算法(包括公鑰密碼算法、 對 稱 密 碼 算 法 和 雜 湊 密 碼 算 法) 替 換 的 時間( 數 十 年), 使 用 傳 統 密 碼 技 術 的 信 息 技 術(Information Technology,IT)和操作技術(Operation Technology,OT)系統需要盡快切換使用后量子密碼技術,這項工作被稱為后量子密碼遷移 。

受到量子計算安全威脅的 IT 和 OT 系統主要包括:

(1)系統的安全性依賴于量子不安全的密碼算法;

(2)系統的安全性依賴于以量子不安全的密碼算法構建的密碼協議;

(3)系統的安全性同時依賴于上述兩者。一般地,目前廣泛使用的密碼算法大多數是量子不安全的,僅有少量的算法如 AES-256、SHA-512 等可被認為是量子安全的。后量子密碼遷移不僅僅是替換密碼算法,它還包括將密碼協議、密碼方案、密碼組件、密碼基礎設施等更新為量子安全的密碼技術,甚至還包括密碼系統的靈活更新機制的能力構建及密碼應用信息系統的迭代更新等。

目前傳統的(量子不安全)密碼技術已經廣泛應用和部署,進行后量子密碼遷移的工作量很大。當然,人們希望在遷移時對現有系統的改動量越少越好,但這個需求實現起來并不容易。后量子密碼技術相比于傳統密碼技術,其公鑰密碼算法在密鑰尺寸和密文尺寸等方面要大幾倍到幾十倍,另外一些后量子公鑰密碼算法速度非常慢,且非常耗費運算資源。因此,人們正努力在各種密碼應用系統中嘗試使用后量子密碼算法,特別是在通信協議和公鑰基礎設施(Public Key Infrastructure,PKI)系統中,并探索相關問題的解決方法和思路,期望在不久的將來可以平穩過渡到后量子密碼 。

本文第 1 節介紹后量子密碼遷移的一些重要問題及相關解決思路,第 2 節介紹后量子密碼遷移可能用到的一些有價值的技術,第 3 節介紹政務云平臺系統的后量子密碼遷移,第 4 節對我國后量子密碼遷移提出建議,最后進行歸納總結。

1

遷移問題及解決思路

后量子密碼遷移面臨許多技術、標準化及工程應用方面的問題,下面就這些問題做簡單探討,并提供一些解決思路。

1.1 技術困難

傳統密碼算法與后量子密碼算法,特別是公鑰密碼算法,在算法參數尺寸、運算效率、算法機制等方面存在較大差異,不能簡單地直接將傳統密碼算法替換成后量子密碼算法。傳統公鑰密碼算法,如 SM2,提供加解密、簽名驗簽、密鑰協商等功能;公、私鑰長度為 64 字節和 32 字節,加密數據長度為任意字節,密文長度較明文數據長度增加 96 字節;簽名原文數據長度任意,經過雜湊后進行簽名,簽名結果長度為 64 字節;可與 Diffie-Hellman 算法結合進行密鑰協商。但單種后量子密碼算法不能提供全面的運算功能,可將它們可分為兩類:一類為密鑰封裝算法,如 Kyber768,提供加解密、密鑰封裝等功能,公、私鑰長度為 1 184 字節和 2 400 字節,密鑰封裝功能原文數據長度為 32 字節,封裝密文長度為 1 088 字節,不可與 Diffie-Hellman 算法結合作密鑰協商;另一類是簽名算法,如 Dilithium3,僅提供簽名驗簽功能,公、私鑰長度為 1 952 字節和 4 000 字節,簽名長度為 3 293 字節。在運算速度上,部分后量子公鑰密碼算法較 SM2 算法更快,如 Kyber768 使 用 高 級 向 量 擴 展(Advanced Vector Extensions,AVX) 并 行 指 令 優 化 后 較 SM2 快 10倍左右,另一些后量子公鑰密碼算法較 SM2 慢很多,如 Sphincs+ 的簽名速度是 SM2 的約千分之一。表 1 列出了部分對比結果,其中,* 表示使用 CPUAVX2 加 速, 在 I5 1135G7 2 核 CPU 上 測 試;LAC是我國學者提出的密鑰封裝算法。

另外,后量子公鑰密碼算法種類特別多,目前沒有一種算法能像 SM2 算法這樣通用,因此,在不同的應用場景下,需要選用不同的后量子公鑰密碼算法,而算法的選擇和互通性會給遷移帶來不小的挑戰。

解決的方法和思路可以從兩方面考慮:一是加大算法理論和實現的研究,增大算法及相關技術的儲備,為遷移提供更多更優的候選算法;二是結合具體的應用場景,挖掘創新型應用模式,加強密碼靈活性研究,避免密碼算法和密碼技術在系統中固化,為后續新密碼算法、密碼算法參數和密碼技術的切換更新提供能力保障。

表 1 SM2 算法與后量子密鑰封裝機制的對比

1.2 標準化推廣

迄今為止,后量子公鑰密碼算法中只有擴展默克簽名(eXtended Merkle Signature Scheme,XMSS)和基于 Leighton-Micali 哈希的簽名(Leighton-Micali Hash-Based Signatures,LMS)這兩種基于雜湊的密碼算法在 RFC 體系中完成標準化,但這兩種算法的應用非常受限,只能用于簽名總次數特別少的場景中,如設備升級。量子安全的對稱密碼算法 AES-256 和雜湊密碼算法 SHA2-512、SHA3-512 已經標準化,但這些都是國際算法,我國的后量子公鑰密碼算法、對稱密碼算法和雜湊密碼算法沒有一個完成標準化,不能為應用提供支撐。但可喜的是,我國量子安全的密碼算法標準化的工作正加快推進,如基于 SM3 算法的后量子公鑰密碼算法、量子安全的 ZUC-256 對稱密碼算法等已經提上標準化日程。

解決我國后量子密碼算法缺失問題的方法和思路分為兩個方面:一是加快推進后量子密碼算法簇的標準化工作,特別是前期的技術研究鋪墊,同時可借鑒和引用國際上后量子領域內的技術標準;二是大力鼓勵國內學術團體及產業單位等進行廣泛的后量子密碼算法和技術的實驗性應用,為密碼算法和技術的標準化提供建議和參考。

1.3 傳統密碼技術摸底

IT 和 OT 系統已廣泛使用傳統密碼技術來保障其安全,從底層的硬件芯片、板卡、操作系統到上層的應用、服務都可以看到傳統密碼技術的身影。然而在不同的信息系統密碼應用場景下,傳統密碼技術的應用模式卻是千差萬別,如有的使用了標準的算法、協議和流程,有的則進行了定制化更新和修改;有的使用公鑰密碼算法來進行身份鑒別,有的則使用對稱密碼算法來進行;有的使用 SM3 雜湊算法來保證完整性,有的則使用 SM3-HMAC 算法來保證完整性,等等。不光密碼算法使用模式變化多端,密鑰的使用也變幻莫測。密鑰安全是密碼算法安全的基礎,密鑰安全的需求是保證其全生命周期的安全,有的系統使用內建的密鑰管理機制,更多的系統則使用復雜的密鑰管理系統。在后量子密碼遷移前,需要對 IT 和 OT 系統使用到的密碼技術進行摸底和評估,找到遷移的密碼資產、遷移系統的具體位置等,并進行工作量評估,方便進行遷移計劃制定和實施。

傳統密碼技術摸底可使用調查訪問的方式,或結合使用自動化的密碼檢測工具。調查訪問通常采用填寫調查問卷表的形式進行,而自動化的密碼檢測工具則需借助一些智能化的工具和技術,靜態和動態地跟蹤監測密碼技術的使用。調查訪問在某些場景下實施起來有一定難度,且效率和準確性難以保證,而結合自動化的檢測工具則可達到更理想的效果。然而,目前缺乏相應的密碼檢測工具套件,需要加大這方面的研發力度。

1.4 舊系統改造

基于傳統密碼技術建設的且正在運行并發揮密碼應用功能的 IT 和 OT 系統稱為舊系統。舊系統是后量子密碼遷移的主要對象,需要對其中的密碼技術進行替換升級改造,但程序復雜且耗時,而且情況各異,需要具體情況具體分析。某些舊系統保護的數據資產,其保密時限不長,如兩三年,或其數據資產價值不高,其價值還沒有后量子密碼遷移花費的成本高,則可以不進行后量子密碼的遷移。

某些舊系統進行后量子密碼遷移的總體代價太高,超過了用戶可接受的范圍,也沒必要進行。某些系統比較龐大,在進行系統安全性評估后,可以只進行部分后量子密碼遷移,其他部分采用另外的方式(如物理網絡隔離等)來保證其安全。總之,在遷移前,需要對舊系統進行專業的系統安全性評估,根據評估結論采用不同的遷移策略,同時應盡量減少后量子密碼對 IT 和 OT 系統的侵入。

如果舊系統必須進行后量子密碼遷移,需要考慮密碼靈活性的設計和實現。舊系統通常缺乏這方面考慮,此時密碼技術的替換升級變為整個系統的替換升級,如銀行領域中的發卡系統,由于原有系統跟密碼技術深度融合,當使用國密技術來替換舊的國際密碼技術時,只能進行整個系統的升級和重建。

1.5 新建系統

相比舊系統改造,新建 IT 和 OT 系統面臨的限制條件就少得多,但新建系統仍然需要根據自身實際情況采用合適的后量子密碼技術。在考察選用后量子密碼技術時,通常需要專業的密碼技術咨詢,特別是對后量子密碼技術比較陌生的系統承建方。

總體而言,新建系統首先應考慮后量子密碼標準組織推薦的密碼算法和密碼技術;其次根據自身實際情況和專家的意見,選用合適的密碼算法、協議和方案等;最后要考慮密碼的靈活性設計,為將來的密碼技術替換升級預留足夠的空間。

遷移技術

后量子密碼遷移使用的技術是一個種類繁多的大家族,目前仍在不斷完善和補充,比較流行的技術包括算法混合使用、算法替換使用和靈活性設計等。

2.1 算法混合

密碼算法混合使用主要針對公鑰密碼算法,它是指將傳統公鑰密碼算法與后量子公鑰密碼算法混合使用,如將 SM2 算法和 Dilithium2 混合使用進行雙重認證,使密碼系統的安全強度不低于傳統公鑰密碼算法,且具備抵抗量子計算攻擊的能力。使用算法混合的另一個好處是它遵循了當前的密碼產品規范和檢測標準,可以獲得當前的密碼產品認證。

密碼算法混合使用主要包括混合密鑰協商和雙重簽名兩種方式。

(1)混合密鑰協商。傳統公鑰密碼算法仍然使用 Diffie-Hellman 進行密鑰協商,同時加入后量子公鑰密碼算法的密鑰封裝功能,得到兩部分協商出的密鑰中間值,再將中間值作異或等處理得到最終的會話協商密鑰。

(2)雙重簽名。如圖 1 所示,使用傳統公鑰密碼算法對消息進行簽名后,再使用后量子公鑰密碼算法對消息等(可包括傳統密碼簽名結果)簽名,輸出兩次簽名結果的組合,或者調換簽名順序,先進行后量子公鑰密碼算法簽名,再進行傳統公鑰密碼算法簽名,驗證時只有兩段簽名結果都驗證成功,才認為驗證成功。

圖 1 雙重簽名混合簽名原理

2.2 算法替換

算法替換是指將一種算法或算法使用模式變成另一種算法或算法使用模式,如將對稱密碼算法的電碼本(Electronic Codebook,ECB)運算模式換成密文分組鏈接(Cipher Block Chaining,CBC)運算模式。在網絡通信協議中,身份鑒別是必不可少的功能,一般的身份鑒別是通過公鑰密碼算法的簽名驗簽功能來實現,但是后量子密碼算法簽名結果特別長(最大到幾兆字節),采用后量子密鑰封裝功能來代替簽名完成身份鑒別也是可行的,且密鑰封裝密文的長度少得多,只有 2 000 字節左右。

2.3 靈活性設計

密碼靈活性(或敏捷性)設計是指在對 IT 和OT 系統不做修改或做極少修改的情況下完成對密碼算法、密碼參數、密碼技術等的切換升級,即系統設計時需要考慮密碼技術的更新換代,使系統具備靈活的自我密碼更新能力。

靈活性是軟件開發領域的一個主要目標,而后量子密碼遷移將靈活性與密碼技術進行結合,帶來了新的密碼技術框架和結構。密碼靈活性設計包括幾個層次:在密碼技術標準上,除算法外的標準應考慮支持不同的密碼算法和密碼協議,為新的密碼技術預留兼容空間;在工程實現上,可采用合適的密碼抽象層和依賴倒置的設計思想,以最大限度地減少由后續密碼技術變化引起的再次遷移的工作量。

遷移應用場景研究

對獨立的 IT 和 OT 系統來說,后量子密碼遷移需要保證系統內部子系統間交互功能正常有序,并按照設定好的次序,對子系統進行逐一升級改造,最后整合驗證即可。然而,對于通信交互的多個系統來說,則需要考慮系統間通信的兼容性及遷移工程進度的協調一致,這要求在總體上進行統一規劃和部署,過程控制更加嚴格。下面以政務云平臺系統為例進行遷移規劃及方案的說明。圖 2 是政務云密碼應用的典型架構,政務云平臺系統提供密碼服務、管理服務及態勢感知服務等功能,從上到下分為密碼應用層、密碼服務層、密碼支撐層、網絡層和密碼設施層 5 層。圖中,字體加粗處模塊需要進行后量子密碼遷移,箭頭表示數據傳輸通道。

圖 2 政務云密碼應用典型架構

3.1 基礎設施

如圖 2 所示,在進行后量子密碼遷移時,需要在密碼支撐層和密碼設施層配備具有后量子密碼功能的設施資源,才能對上層提供后量子密碼服務,這些設施資源稱為后量子密碼遷移的基礎設施。

遷移基礎設施包括硬件設施、軟件設施及軟硬結合的支撐系統等。在政務云密碼服務平臺系統中,硬件設施包括提供后量子密碼功能的云服務器密碼機、SSL VPN、IPSec VPN、安全網關等;軟件設施包括后量子密碼算法軟庫、協議軟庫等;軟硬結合的支撐系統包括后量子證書系統、密鑰管理系統、數據加解密服務系統、電子文件驗證系統等。

因為國內的后量子密碼算法標準仍未頒布,在進行遷移時,可以先使用 NIST 推薦的后量子密碼算法。

國內后量子密碼相關的硬件設施非常匱乏,主要是因為硬件設備需要經過國家主管部門的檢測認證才可上市銷售,而國內不具備鑒定測評后量子密碼功能的條件,因此,硬件設施只能采用定制化的方式來獲取。在要求不高的情況下,可以使用軟件設施來代替。

后量子密碼軟件設施發展非常快,目前已有liboqs、libpqcrypto、PQClean 等開源軟件算法庫,它們集成實現了主流的后量子公鑰密碼算法。但是這些開源軟件庫發布的時間較短,使用面不廣,而且可能存在安全性、穩定性等方面的問題,作為遷移實驗使用沒有問題,但如果作為產品部件應用在密碼應用系統中是不合適的,這需要借助專業的密碼產品提供商的幫助。

軟硬結合的支撐系統則面臨硬件設施匱乏和軟件設施安全性、穩定性較低等問題,需要解決的困難更多。

3.2 整體規劃

后量子密碼遷移的整體規劃是對遷移活動的工作步驟、進度安排、資源投入等進行通盤的考慮和布局。對政務云平臺系統進行后量子密碼遷移的主要工作是密碼服務層、密碼支撐層和密碼設施層的遷移,需要保證對密碼應用層的改造盡量少。下層的密碼設施層需要增加后量子密碼技術功能,完成密碼設施的替換更新即可,但它是密碼服務層和密碼支撐層功能的依賴項,需要優先進行,完成后再對密碼支撐層和密碼服務層作替換遷移,最后再根據應用層對密碼服務層的調用依賴情況進行遷移。

同時,密碼管理服務和態勢感知服務的部分功能也會進行后量子密碼遷移。

另外,對該密碼服務平臺的遷移需要預估整體的工作量,制定遷移項目預算,安排合適的人力、物力資源等,并指定項目負責人,制定初步的進度安排等。

3.3 系統調研

后量子密碼遷移項目實施的第一步是對密碼應用系統進行調研,確定哪些數據作為重要資產需要得到后量子密碼的保護,系統中使用了哪些傳統的密碼算法和技術,身份認證關系怎么構建,系統中的密鑰如何保護和使用等。

在政務云平臺系統中,調研可以按照調用層次關系,從上到下逐層調查用到的密碼技術及功能服務交互的接口。密碼服務層及以下的密碼支撐層和密碼設施層主要由云密碼服務平臺提供,參考平臺相關技術文檔就可以完成,但密碼應用層的調研比較復雜,一方面因為業務應用較多,另一方面業務應用調用云密碼服務平臺的方式可能存在較大差異。另外,調研時還需關注業務系統的非功能需求和限制條件,因為后量子密碼技術可能對業務系統造成影響,如使得密碼參數尺寸變大。

3.4 方案制定及論證

根據系統調研報告制定初步的遷移方案,確定遷移優先級及步驟,再通過分析論證,得到可行實用的遷移方案。

政務云平臺系統的后量子密碼遷移方案中應包括如下內容:

(1)確定下層的密碼服務平臺需要全部遷移到后量子密碼技術上來,同時保留以前的所有密碼服務功能及交互接口,而上層業務系統分階段進行遷移,先遷移對數據保護或身份鑒別等安全功能要求高、價值高的系統。

(2)確定遷移需要用到的新資源和新技術等,在原有系統架構中進行補充。因為后量子密碼數據加密和認證功能運算速度變慢,所以需要根據業務量負載需求情況考慮是否增加云服務器密碼機等資源。

(3)定義各交互層后量子密碼技術的交互接口,下層完成后量子密碼技術的具體功能,上層完成調用,同時考慮密碼靈活性,如采用依賴倒置的面向對象設計思想。另外,還需考慮兼容性需求等,因為應用系統遷移是分階段完成的,需要保證未遷移的業務系統仍能正常工作。

(4)按照各層依賴關系,制定遷移順序和步驟,從下到上逐層進行,并制定測試驗證計劃,保證各層能獨立地驗證各層后量子密碼相關功能。

(5)預估遷移風險,制定風險應對措施等。

3.5 實施及驗證

遵照后量子密碼遷移方案實施遷移,在正式的遷移實施之前,可能還需要做一些實驗性的遷移演練。實施時進行遷移工作包拆分,指定責任人,進行進度控制、成本控制等,同時對遷移方案不明確的地方進行細化完善。

遷移實施過程中和完成后都需要測試驗證,政務云平臺系統按邏輯層進行分步遷移,需要驗證每層的獨立密碼功能,同時驗證各層整合在一起后的密碼功能和業務功能是否正常。測試驗證完成后可在小范圍試運行,試運行一定時間(如 1 年)后,再根據系統實際運行情況,決定是否正式運行并進行政務云平臺系統中其他業務系統的后量子密碼遷移。

國內遷移建議

4.1 積累技術和經驗

在算法理論分析方面,國內的后量子密碼算法已有一定的積累,其中基于格理論技術路線的居多,但廣度和深度仍需加強,其他的技術路線研究較少,成果也不多,需要進行更多的研究并積累經驗,特別是為設計和標準化我國的后量子密碼算法作準備。在工程應用方面,可以借用 NIST 推薦的后量子密碼算法進行工程應用實驗,建立實驗原型和框架,并適時地開展局部的應用試點,加強應用方面的積累,為我國后量子密碼產業化提供案例和指導。

4.2 算法標準化

國內后量子密碼算法標準化總體進展緩慢,需要國家密碼主管部門統籌規劃,加快推進標準化進程,并適時推出標準化的國產后量子密碼算法。

4.3 提前規劃和布局

我國的后量子密碼遷移需要提前進行規劃和布局,雖然國內重要行業的商密改造正在進行,但在早期完成改造的金融領域已經運行了五六年時間,但在面對量子計算威脅,特別是在量子計算技術以摩爾定律高速發展的背景下,傳統密碼技術的安全性隨時都可能崩塌,因此做好準備、未雨綢繆非常有必要。實際上,后量子密碼遷移已經非常緊迫,因為它是一個長期且花費巨大的工程,隨著科技的進步,未來實用的量子計算機的出現時間可能早于預期,且不一定被公開,所以需要盡早進行布局,做到有備無患。

4.4 協同合作

后量子密碼是較新的技術,涉及面廣且復雜,短期內不容易取得突破性進展,但后量子密碼遷移時間緊迫,因此需要集中我國密碼學界中的產、學、研、管等力量,協同合作,共同推進國內后量子密碼技術的發展。

結 語

量子計算技術帶來了對傳統密碼技術的安全威脅,也促進了密碼技術的革新,后量子密碼是革新路上的一個典型代表,它是一類新型的密碼技術,與以往的所有密碼技術有相似點,也有不同之處。這是科學技術進步的必然選擇,即使大規模使用的量子計算機不出現,密碼技術的自我修復、自我完善的機制也將不斷進行,后量子密碼只是碰巧在這個時間階段出現在人們面前。

后量子密碼帶來了新的密碼算法和密碼應用模式,在進行后量子密碼遷移過程中,必然會出現更多的遷移創新方法和思路,同時,遷移實踐將會進一步推動后量子密碼技術的發展。

面對后量子密碼遷移中的問題和困惑,需要結合現實應用場景,不斷嘗試,小心驗證,通過應用實踐來積累后量子密碼遷移的經驗,為將來更快、更好地遷移打下基礎。