張小青,石元兵,張舒黎,王良成,黃 錦,黃 妙
(1.中電科網絡安全科技股份有限公司,四川 成都 610095;2.可信云計算與大數據四川省重點實驗室,四川 成都 610095)
量子計算機的發展給現代密碼學帶來了極大的威脅和挑戰,尤其是Shor 和Grover 等量子算法的提出。其中,Shor 算法可以通過量子計算機解決目前經典計算機計算困難的因式分解和離散對數問題,這些問題是現在廣泛使用的密碼算法如RSA、ECC、Diffie-Hellman、SM2 等算法的安全性依賴。Grover 算法可用于提取對稱密碼算法的密鑰和尋找哈希函數碰撞,并利用量子計算機將搜索固定長度的密鑰的操作次數減半。因此,現有主流使用的公鑰密碼算法完全不具備抗量子攻擊能力,需設計提出新的公鑰密碼算法。對于對稱或哈希密碼算法而言,可通過將安全參數提高至2 倍及以上來具備抗量子攻擊能力。
密碼學界把能夠抵抗量子計算攻擊的密碼算法統稱為后量子密碼(Post-Quantum Cryptography,PQC),也稱為抗量子密碼(Quantum-Resistant Cryptography,QRC)。目前后量子密碼研究主要圍繞密鑰交換和數字簽名,涉及的主流技術路線包括基于哈希、基于格、基于編碼、基于多變量、基于同源等,其中,基于哈希的算法構造是最容易理解的技術路線之一,主要用于構造新一代的抗量子數字簽名方案,也稱為基于哈希的數字簽名(Hash-Based Signature,HBS)。表1 列舉了不同技術路線的后量子密碼簽名方案代表及其安全性依賴[1],這些方案都有各自的優缺點,在實際應用中如何選擇還要取決于應用程序的具體要求和約束。

表1 不同技術路線的后量子簽名方案
本文重點識別總結了HBS 方案的特點。首先,針對HBS 的設計思想和方案演變進行了概述,并對目前的后量子簽名方案進行了對比分析;其次,利用國產SM3 算法替代2023 年8 月24 日美國國家標準與技術研究院(National Institute of Standards and Technology,NIST)發布的FIPS 205 草案對應的SPHINCS+方案底層所使用的哈希函數,并給出了相應的實驗結果和分析結論,進一步支撐我國關于無狀態HBS 方案的標準化;最后,對基于哈希簽名方案在后量子密碼遷移場景下的應用進行了調研和總結,給出了基于HBS 方案的特點的應用建議。
數字簽名在現代密碼學的研究歷史中處于對稱加密、線上密鑰協商及公鑰加密之后。對于數字簽名方案的構造,學術界大概經歷了10 年(1976—1986)左右的時間才總結出構造方案可能存在的研究路線[2]。第1 類是1976 年Diffie 和Hellman 在New Directions in Cryptogtaphy中定義的單向陷門函數,他們首次提出了基于單向陷門函數構造通用數字簽名方案的思想,但并沒給出單向陷門函數的具體構造方法,在后續的研究發展中,通用構造所需的函數從單向陷門函數逐漸減弱到了單向函數;第2 類是1978 年之后開始基于特定的單向陷門函數構造的具體方案,如RSA、ElGamal、DSA 等方案;第3 類是1986 年提出的Fiat-Shamir 轉換方法,該方法實現了數字簽名方案通用改造的可能,這里的通用改造指的是從一種密碼技術到另一種密碼技術的構造,如FIPS 204 草案對應的Dilithium 算法和2019 年中國密碼算法競賽獲獎的Aigis-sign 算法均是該設計思想的體現。
HBS 的構造依據屬于第1 類路線中的單向函數構造思想,該類方案的安全性不依賴具體的數學困難問題,而是完全依賴于單向函數的安全性,也就是哈希函數的安全性。此外,在密碼學上對哈希函數的研究已經非常成熟和完備,由此也保證了基于哈希構造的簽名算法是后量子密碼理論安全性最強的技術路線之一。并且不同的HBS 方案可以理解為所構造的數字簽名算法的框架不同,可以保持算法框架不變,通過實例化不同的哈希算法及參數來抵抗量子計算攻擊和實現不同的安全級別,目前可供使用哈希的算法包括SHA256/512、SHAKE、SM3 等。
基于哈希的簽名方案的研究歷史很長,最早的研究工作可以追溯到1976 年Lamport-Diffie(LD)提出的一次性簽名方案LD-OTS。截至目前,HBS方案的演進[3]可以大致劃分為有狀態的一次性簽名方案(One-time Signature,OTS)、少次簽名方案(Few-time Signature,FTS)、多次簽名方案(Many-time Signature,MTS)、分層簽名(Hierarchical Signature,HS)的多次簽名方案,以及無狀態的不限次分層簽名方案。如圖1 所示為HBS 方案的演進框架。

圖1 HBS 方案演進關系
OTS 方案是構成HBS 方案的基本組成部分,該類方案的思想是一對密鑰只能簽名一次,不能重復使用,其中,簽名密鑰即私鑰均勻隨機生成,簽名公鑰由私鑰和哈希函數派生而成,如圖1 中的LDOTS、W-OTS(Winternitz-OTS)及其變體W-OTS+方案。若簽名密鑰對重復使用,則存在攻擊者能從不同消息的兩個有效簽名成功偽造出第3 條未簽名過的消息及其有效簽名的安全性問題。這也導致OTS 方案中的密鑰及簽名的大小會隨著明文消息的增加呈線性增長,從而導致簽名和驗證的時間開銷也很大。因此,后續研究者們的優化方向就是尋找同一個密鑰對簽名多條不同消息的方法,這也是FTS 和MTS 的最初設計思想。
FTS 方案可利用同一個密鑰對對多條消息簽名,但是簽名的安全性會隨著簽名的消息數量的增加而降低。如圖1 中的哈希獲取隨機子集(Hash to Obtain Random Subset,HORS)、隨機子集森林(Forest of Random Subsets,FORS)等方案。本質上OTS 和FTS 方案的簽名驗證都是基于公鑰的完整性驗證,因此后續的設計優化思路就是尋找能大規模驗證公鑰且簽名安全性不會隨消息數量增加而降低的設計方法。
MTS 方案就是從OTS 和FTS 方案的不足出發,提出的一種新設計思想,基于Merkle 樹結合OTS簽名方案來構造多次簽名方案,如典型的默克爾簽名方案(Merkle Signature Scheme,MSS),該類方案的一對密鑰對可簽名很多條消息,但是簽名消息的數量是固定的。后續基于MSS 方案研究者們構造了現已標準化的一些經典方案,如圖1 中的LMS 和擴展的默克爾簽名方案(eXtended Merkle Signature Scheme,XMSS)。該類方法雖然在某種程度上解決了OTS 和FTS 方案的不足,但也引入了額外的機制來保證數字簽名算法的正確性。
首先是密鑰狀態管理的方法,主要涉及簽名私鑰的同步,需要標記使用過的簽名私鑰,不允許再用于其他消息的簽名,如果用戶在實際應用中,沒有做好密鑰狀態的管理,那攻擊者很容易利用這點偽造出有效簽名。因此,密鑰的狀態管理在該類方案的安全性中起著至關重要的作用,但同時也限制了該類方案的實用性,并且與現有標準化的密碼接口不兼容。其次是樹節點之間的身份驗證路徑,基于Merkle 樹構造的MTS 方案在簽名生成和驗證時還構建和驗證了身份驗證路徑(也稱為認證路徑),主要包括自上而下和自下而上兩種方法。其中,自下而上的認證方法用于樹內部,即樹的根節點是由底層葉節點計算而得,MSS 方案的樹構造就是基于該認證方法的一個實例。如果MSS 方案中的樹高很大,則計算MSS 簽名公鑰的時間復雜度會比較高,因為需要把Merkle 樹的所有節點都計算出來,才能計算出根公鑰及樹的根節點。對Merkle 樹的公鑰生成時間進行進一步優化,提出了分層簽名方案(Hierarchical Signatures Scheme,HSS)的思想,如圖1 中LMS 方案引入分層設計思想后的HSS 方案和XMSS 引入分層設計思想后的XMSS^MT(eXtended Merkle Signature Scheme^Multi-Tree)方案,本質上是將大量不同的Merkle 樹或L-樹按照自上而下的方法進行連接。該方法用于樹與樹之間,利用較高子樹的葉節點對低一層的子樹的根進行簽名,從而將兩棵樹進行連接起來,形成樹鏈。對于基于Merkle 樹構造的HBS 方案,在進行簽名驗證時,一方面驗證相應OTS 簽名及單棵樹認證路徑的正確性;另一方面還需根據簽名中的樹與樹之間的認證路徑重建從相關的一次性公鑰到樹根的路徑,計算出根公鑰,然后與發布的簽名公鑰進行比對,若一致則驗證成功,否則驗證失敗。
在后續研究中,學術界基于類似HSS、XMSS^MT方案,結合自下而上和自上而下的方法構建的廣義哈希樹均稱為超樹(HyperTree,HT)。這樣設計的好處是可以減少簽名公鑰的生成時間,允許在簽名大小和計算時間之間通過樹的層數進行權衡。在RFC 8554 中,對于樹高為25 的LMS 方案的密鑰生成時間長達1.5 h,而對于兩層樹,樹高為20/15 的HSS 方案的密鑰生成時間才3 min。因此,該設計在實際應用中根據需求進行參數調整的靈活性得到了極大增強,這一特點也是傳統的數字簽名方案所不具備的。
基于MTS 的方案中提到的密鑰狀態管理,是限制HBS 廣泛應用的一個主要因素。因此,設計無狀態的HBS 方案是近些年來研究者們關注的熱點問題。無狀態的HBS 方案與密碼學上數字簽名算法的定義保持一致,且已標準化的密碼接口可以完全兼容,消除了簽名生成過程中維護更新簽名密鑰的操作。無狀態HBS 方案的代表是SPHINCS 和SPHINCS+,以及其他的變體方案,這些方案均使用了超樹結構。在設計中,這些方案一方面使用了更大規模的超樹結構來避免密鑰的重復使用(與不限數量的有狀態HBS 方案如XMSS^MT 的設計思想類似);另一方面通過隨機或偽隨機方式選擇密鑰來進行消息簽名,而不是通過密鑰狀態管理的順序選擇密鑰。雖然這一設計可以使HBS 方案具有前向安全性,但這也造成了無狀態HBS 方案的簽名生成成本較高,另外,無狀態HBS 方案的簽名尺寸比有狀態HBS 方案也要大得多。文獻[4]對比了密鑰容量為260的LMS、XMSS^MT、SPHINCS 方案的簽名大小,其中,有狀態的LMS 方案的大小為5 KB,XMSS^MT 的大小為15 KB 或28 KB,SPHINCS的大小能達到41 KB。
從技術發展來看,HBS 方案的密碼設計及分析較其他技術路線的密碼理論相對成熟。從標準化來看,密碼學界、工業界和各標準化組織也都在積極推動后量子密碼算法的標準化工作,并且制定了系列標準。迄今為止,國際上已標準化的基于哈希的簽名算法的標準有2018 年因特網工程任務組(Internet Engineering Task Force,IETF)發布的RFC 8391-XMSS[5]、2019 年IETF 發布的RFC 8554-LMS[6]、2023 年NIST 發布的FIPS205 中 的SPHINCS+[7]。國內目前還未形成后量子密碼算法的相關標準,但基于SM3 的帶狀態數字簽名算法相關標準已形成初步草案,主要是采用國產商密哈希算法SM3 的兩個數字簽名算法LMS-SM3 和HSSSM3,可用于指導抗量子攻擊密碼產品的設計、開發和檢測。隨著國際上無狀態HBS 方案的標準化,相信國內無狀態HBS 方案標準化的進程也會加快。
1.2.1 XMSS
基于哈希的擴展默克爾簽名方案是第一個可證明的前向安全和實用的簽名方案,具有最小的安全要求:偽隨機性和哈希函數的抗碰撞性[5]。XMSS于2018 年通過RFC 8391 進行標準化,該標準的方案主要由XMSS 和XMSS^MT 組成,詳細的框架組成如圖2 所示。其中,WOTS+是構成XMSS 方案的一次性簽名組件,通過隨機樹哈希、L-樹、樹哈希算法實現對WOTS+的密鑰管理,采用自下而上的方法構成XMSS 的認證樹,可以對有限次數的消息進行簽名;XMSS^MT 是XMSS 方案的超樹變體,通過使用自上而下的方法在XMSS 子樹間構建內部認證路徑,形成XMSS 樹與樹的連接,從而實現對無限數量的消息進行簽名。需要注意的是,該標準方案是有狀態的HBS 方案(stateful-HBS,S-HBS),需要對生成的密鑰進行狀態管理,保證使用時不會出現密鑰的重復使用。詳細的方案細節及流程可參考文獻[5]。

圖2 XMSS 方案
1.2.2 LMS
LMS 方案[6]由Leighton 和Micali 在1995 年改編,遵循了Lamport、Diffie、Winternitz 和Merkle 在 該領域的開創性工作,制定了一次性簽名方案和通用的數字簽名方案,于2019 年通過RFC 8554 進行標準化,該標準的方案主要由LMS 和HSS 方案組成,詳細的框架結構如圖3 所示。其中,LM-OTS是LMS 方案的一次性簽名組件,結合高度為h的Merkle 樹構造的MSS 方案形成LMS 方案,可以簽名2h個消息,該方案中的公鑰認證路徑與XMSS 方案采用的均是自下而上的方法。HSS 方案是在LMS方案的基礎上采用自下而上的方法構建的分層簽名系統,能夠有效地擴展到更大數量的簽名。HSS 方案同樣也需要密鑰狀態管理機制保證密鑰不會重復使用。詳細的方案細節及流程可參考文獻[6]。

圖3 LMS 方案
1.2.3 SPHINCS+
SPHINCS+方案也稱為無狀態哈希數字簽名算法(Stateless Hash-based Digital Signature Algorithm,SLH-DSA),被NIST 選為后量子加密標準化過程的一部分[7],于2023 年8 月24 日發布標準草案,該標準的方案主要由SLH-DSA 組成,使用WOTS+、FORS、XMMS 作為組件來構建,詳細的框架結構如圖4 所示。值得注意的是,該標準方案取消了密鑰狀態的管理,保持了與傳統數字簽名算法的一致性,詳細的方案細節及流程可參考文獻[7]。

圖4 SPHINCS+方案
1.3.1 方案橫縱對比
為了加深對HBS 方案的理解,本節針對不同技術路線的后量子簽名方案從算法參數和性能進行橫向對比。在Intel i5,2.4G 的2 核CPU,4G 內存,64bits Linux 的測試環境下對經過AVX2 指令集加速后的后量子數字簽名算法進行橫向測試對比,測試結果見表2,其中,SPHINCS+指SPHINCS+-128f的參數尺寸。同時,對已標準化的HBS 方案在參數規模、簽名尺寸方面進行縱向對比。以此發現并總結HBS 方案及其之間的優缺點,進一步提升HBS方案應用的精準性。

表2 后量子數字簽名方案參數對比
在RFC 8391、RFC 8554、FIPS 205 的標準中,不同HBS 方案私鑰均采用了偽隨機種子的方式生成,因此可通過時空權衡技術的時間換取空間,來減小私鑰的尺寸;而對于公鑰而言,均對應為超樹(樹)的根節點,一般為32 字節或64 字節。鑒于各HBS 方案的算法參數差異性較大,尤其是在w及h參數上的選擇范圍,因此,本節沒有對這些標準方案進行性能對比。各方案在相關參數下的性能表現參見文獻[5]、文獻[6]和文獻[7],僅對不同HBS 方案的簽名尺寸做了對比分析,詳情如表3 所示。其中,“—”代表該算法不涉及對應的參數尺寸,表3 僅列出了差異性的可對比參數,其他更多算法參數及含義詳見標準[5-7]。

表3 LMS、XMSS、SLH-DSA 方案參數對比
1.3.2 方案總結說明
基于對HBS 方案的理論研究及1.3.1 節的橫縱對比,可以發現HBS 方案的一些優缺點。
HBS 方案的優點如下文所述。
(1)具有最低安全性要求。HBS 方案的安全性僅依賴底層哈希函數的安全,而足夠長的哈希函數不受量子計算機的威脅,因此,由哈希函數構造的HBS 可抵抗量子計算攻擊。
(2)靈活性。HBS 方案可理解為一個簽名算法的框架,與具體哈希算法無關。一方面,方案實現時可通過滿足安全要求的哈希算法進行實例化;另一方面,方案應用時可根據應用程序的環境和資源選擇不同的哈希函數以滿足所需的性能需求。更值得注意的是,HBS 中使用的某哈希函數出現安全漏洞后,可直接在方案底層替換其他安全的哈希函數即可,這可以保證HBS 方案的生命周期很長。
(3)參數自適應。HBS 在簽名速度和密鑰尺寸之間可通過調整方案參數如Winternitz 參數w的大小進行權衡,對于有狀態的HBS 的密鑰容量可通過調整樹高h和層數d進行權衡。
(4)前向安全性。通過偽隨機生成器(PseudoRandom Number Generator,PRNG)實現前向安全性,即私鑰泄露前所生成的所有簽名仍安全有效。
HBS 方案的缺點如下文所述。
(1)簽名體積較大。從表2 中可以看出,雖然SPHINCS+方案的公私鑰尺寸較其他路線的簽名方案小,但是簽名的尺寸分別是Dilithium2 和Aigis-sign 方案的7 倍和6 倍左右。
(2)有狀態的HBS 方案存在密鑰狀態管理機制,需要更新簽名后的私鑰狀態,保證同一狀態的私鑰不可重用,否則簽名方案存在攻擊者偽造出有效簽名的安全問題。雖然無狀態的HBS 方案解決了該問題,但也增加了簽名尺寸增加的代價,如表3中,在使用相同安全級別的SHA256 算法實例化各不同的HBS 方案時,有狀態的HBS 方案中簽名尺寸最大的才為14 824 字節,而無狀態的HBS 方案的簽名尺寸可長達29 792 字節和49 856 字節,這一大小的簽名尺寸在多數場景下均不實用。
(3)性能較慢。從表2 中可以看出,SPHINCS+方案的性能表現與基于格的Dilithium2和Aigis-sign 方案差很多。其中,SPHINCS+在密鑰生成方面的性能表現是Dilithium2 和Aigis-sig的1/37 左右;在簽名生成方面的性能表現分別是Dilithium2 和Aigis-sig 的1/377 和1/630 左右;在簽名驗證方面的性能表現分別是Dilithium2 和Aigissig 的1/100 和1/125 左右。
我國在密碼算法的標準化及使用上一直堅持自主創新的原則,包括在后量子密碼算法方面也是如此。2019 年中國密碼管理局、中國密碼學會聯合舉辦后量子密碼算法競賽來推進國產后量子密碼算法的發展。在國內的后量子密碼遷移中,也應盡量堅持這一原則,因此國產哈希算法SM3 實例化國際標準化的HBS 方案的可行性驗證是非常重要的。
在文獻[8]中,作者使用哈希算法SM3 替代RFC 8391、RFC 8554 和NIST SP 800-208 中的LMS、HSS、XMSS 和XMSS^MT 數字簽名方案所使用的哈希函數,并給出了初步的實驗結果,這表明了SM3實例化國際標準化的HBS 方案是完全可行的。本節使用SM3 替代FIPS 205 標準的SLH-DSA 方案的哈希函數,并將其命名為SLH-DSA-SM3。通過在文獻[7]中指明的開源代碼中添加SM3 算法來初步實現SLH-DSA-SM3,在一臺服務器(Intel(R) Xeon(R)Gold 5218(16cores,2.3 GHz))上進行了初步的性能測試,具體測試結果如表3 所示。在SLH-DSA 的源碼中共實現了基于SHA2、HARAKE 及SHAKE三種哈希算法的實例化方案,并給出了SHA2 和SHAKE 的通用和采用AVX2 指令集加速的實現版本。基于官方提供的SLH-DSA 的算法參數,本次實驗采用n=32,h=68,d=17,b=9,k=35,w=16 的算法參數,將SLH-DSA-SHA256(SPHINCS+-256f)與SLH-DSA-SM3 進行通用實現的對比,詳情見表4。其中,表4 的性能數據為算法迭代100 次后的平均值,算法各參數的代表含義請參考文獻[7]。

表4 SLH-DSA-SHA256 和SLH-DSA-SM3 性能測試對比
從表4 的性能測試數據可以看出,SM3 和SHA256 分別對應的實例化的SLH-DSA 方案中,在算法參數相同的情況下,公私鑰及簽名的尺寸、算法在經典計算和量子計算下的安全強度均一致;SM3 較SHA256 算法而言,密鑰生成和簽名生成的TPS 一致,簽名驗證少50 TPS,這一數據符合SM3和SHA256 算法在SLH-DSA 方案中表現出的性能差距,這也表明了在無狀態的SLH-DSA 方案中使用SM3 是可行的,可以推進我國無狀態的HBS 方案標準化的進程,并支撐基于SM3 的HBS 方案在國內后量子密碼遷移場景中的應用。
作為RSA 算法的替換,ECC 大約經歷了20 年才得到廣泛使用,而SHA3 算法從2007 年的密碼算法競賽開始,到2012 年宣布獲勝,再到2023 年都沒有得到廣泛應用。這些歷史經驗表明,一項基礎密碼算法從提出到被行業廣泛應用,大約至少需要20 年的時間,而后量子密碼算法比傳統的密碼算法通常更為復雜,因此為了保證在量子時代到來之前的信息安全,業界的眾多專家表示后量子密碼遷移需立刻開始。這里的后量子密碼遷移表示將現有密碼安全體系分階段平穩過渡到后量子密碼安全標準體系所需的一系列過程、程序和技術。因此,解決HBS 方案的技術限制和識別其適用場景是后量子密碼遷移中的重要工作之一。
從技術的應用和實踐來看,目前針對后量子密碼的應用研究還不是很多,尤其是對于HBS 方案,大多數的研究和分析文章都集中在方案的技術層面,如提供HBS 方案的技術全景視圖、方案細節等內容,將方案與實際應用領域聯系結合的探索關聯還較少。本節針對業界在HBS 方案已有的應用研究工作進行了簡要的梳理和分析。
有狀態的HBS 方案涉及密鑰狀態同步和密鑰克隆兩大問題,而這些在實際應用中很難保證,且目前針對密鑰狀態管理和克隆問題的研究及可參考的實例化方法也相對較少。目前了解到的關于密鑰狀態管理方法的首先是McGrew 等人[4]提出的可以在分層簽名方案中實現的狀態保留方法和防止私鑰狀態意外復制的混合方案。其中,狀態保留方法主要是通過對需要存儲的密鑰引入易失性和非易失性層來最大限度地減少同步延遲和同步失敗的機會。該方法中私鑰和根公鑰存儲在非易失性層的內存中,其余層的密鑰存儲在易失性層的內存中,兩層之間的私鑰不斷地進行同步操作來更新私鑰的狀態。鑒于該方法沒有解決密鑰克隆的問題,作者又提出了一種混合方案,根層由無狀態的HBS 方案組成,其他層使用有狀態的HBS 方案。其次是ETSI在2021 年發布的關于有狀態認證機制的狀態管理技術報告,該報告針對有狀態的HBS 方案的密鑰狀態對象的特征、狀態索引的重用及部署HBS 的體系結構和操作進行了討論和指導,詳細內容可參考文獻[9]。
2020 年NIST[10]發布了關于有狀態哈希簽名方案LMS 和XMSS 的建議,同時明確表示了有狀態HBS 方案的應用不適合一般用途,而是適用于具有如下需求的應用場景:(1)需要能抗量子攻擊的數字簽名方案;(2)數字簽名方案可使用周期長;(3)一旦部署實現后,切換到其他不同的數字簽名方案的難度和成本太大。
2020 年Suhail 等人[11]和2021 年Kumar 等人[12]針對量子時代下的HBS 方案應用于物聯網設備安全中的重要性、集成時需考慮的各種因素及面臨的技術、非技術和社會的挑戰進行了分析,并對物聯網下集成后量子密碼技術的未來研究方向分別提出了相應的建議和展望。
2022 年,美國國家安全局NSA 發布了國家商用安全算法套件Commercial National Security Algorithm Suite 2.0(CNSA2.0)[13],內容涵蓋對稱加密、公鑰加密和相關軟件與固件的算法及應用的調整,目的是全面應對量子計算對保護國家安全的密碼算法帶來的威脅。其中明確了針對軟件固件更新使用的特定算法NIST SP 800-208 中的LMS 和XMSS,以及給出了立即開始過渡,到2025 年支持且優先使用,再到2030 完全使用的部署與實施計劃。該文件是第一份將HBS 算法應用特定化的官方文件,對于HBS 方案的應用推廣發揮了重大作用。
無狀態的HBS 方案不存在密鑰狀態管理問題,接口與傳統數字簽名的應用程序編程接口(Application Programming Interface,API)完全兼容,因此它的應用與普通的數字簽名方案無多大差異,只是無狀態HBS 方案的簽名尺寸較大,現實場景中的應用還要結合應用程序的資源要求來選擇具體的后量子數字簽名方案。
綜上所述,可以提出HBS 在實際應用中的一些分析和建議。HBS 方案分為有狀態和無狀態兩大類。將兩類方案進行對比可以發現[11],有狀態HBS方案的優勢在于具有更短的簽名尺寸、更快的簽名生成時間,不足在于需要密鑰狀態管理方法來解決密鑰狀態的同步及密鑰復制的問題,適用于性能受限的環境;而無狀態的HBS 方案的優勢在于無密鑰狀態管理問題,不足在于簽名尺寸較大,簽名生成時間較慢,適用于資源受限的環境。
基于HBS 方案整體表現出的特點和數字簽名本身可提供的安全屬性,如真實性、完整性、抗抵賴性,識別出對性能和資源有靈活性調整需求的場景,本文提出了關于HBS 方案的應用框架,為后量子遷移過程中HBS 方案的應用提供參考。如圖5所示,軟件和固件升級場景中的軟件和固件升級的頻率不會過快,且次數也不會過多,可以自適應參數選擇合適的HBS 方案。物聯網下的安全保護體系中對輕量級有特殊需求,可以對HBS 方案中的底層哈希算法進行輕量化的設計及實現來支撐類似的場景需求。還有基于數字簽名技術的電子簽章應用,來確保用戶行為的不可否認性,此場景下還需深入地識別性能和資源的需求范圍,來選擇合適的HBS 方案。

圖5 HBS 方案應用
在后量子的數字簽名方案應用中,還需注意的一點是,我國在密碼算法的標準化及使用上一直堅持自主創新的原則,結合HBS 方案與具體哈希函數無關的特性,且在使用SM3 實例化LMS、XMSS和SPHINCS+的驗證均可行的實驗結論下,國內的后量子密碼遷移場景中,建議優先使用SM3 實例化的HBS 方案。
除此之外,為了更好地應對量子時代下的信息安全,關于HBS 方案的研究實踐,與其他相關密碼協議、數字證書等密碼技術的融合創新,在行業領域中的參數定制化應用還需要持續深入地探索。在這個過程中,一方面考慮提出解決限制HBS 應用的更多方法。如從應用層角度解決有狀態的HBS方案的密鑰狀態管理,并考慮與現有的密碼接口的兼容。另一方面,考慮后量子遷移強調的加密敏捷性,在使用HBS 方案的應用系統中提出多樣化的算法升級方式和路徑。
本文首先介紹了HBS 方案的演變發展,分析對比了目前國際上已標準化的HBS 方案,由此總結了HBS 方案較其他技術路線的優勢,以及針對無狀態和有狀態方案的優缺點。其次,給出了國產SM3 算法實例化SLH-DSA 方案的實驗結果,進一步表明SM3 算法實例化HBS 方案的可行性,以推進我國無狀態的基于哈希簽名方案標準化的進程;最后,對HBS 方案的應用研究進行了總結和分析,給出了有狀態和無狀態適用的場景需求,為HBS 方案在國內的后量子密碼遷移提出了一些建議。未來將會持續探索后量子密碼遷移中HBS 方案的技術應用、場景應用和行業應用,在探索實踐中不僅要積累經驗和能力,還要進行技術融合創新、產品設計創新、應用集成創新,為國內的后量子密碼遷移貢獻更多力量。