抗量子+緊湊!SM3-OTS:基于國產哈希算法的一次簽名新方案
論文信息
信息類別 | 具體內容 |
---|---|
論文原標題 | SM3-OTS: 基于國密算法SM3的緊湊型后量子一次簽名方案 |
主要作者 | 楊亞濤、殷方銳、陳亮宇、潘登 |
研究機構 | 1. 北京電子科技學院 電子與通信工程系(北京 100070) 2. 西安電子科技大學 通信工程學院(陜西 西安 710071) |
通信作者 | 楊亞濤,E-mail: yy2008@163.com |
發表期刊 | 軟件學報(ISSN 1000-9825, CODEN RUXUEW) |
DOI | 10.13328/j.cnki.jos.007392 |
APA引文格式 | 楊亞濤, 殷方銳, 陳亮宇, 潘登. (2024). SM3-OTS: 基于國密算法SM3的緊湊型后量子一次簽名方案. 軟件學報. https://www.jos.org.cn/1000-9825/7392.htm |
一段話總結
面對量子計算對傳統密碼的威脅,后量子簽名方案SPHINCS+因核心組件WOTS+簽名值過長限制應用,研究團隊設計了基于國密算法SM3的緊湊型一次簽名方案SM3-OTS:通過消息摘要的二進制信息索引前32條哈希鏈、十六進制信息索引后16條哈希鏈,大幅縮短密鑰與簽名長度;相較于WOTS+、Balanced WOTS+、WOTS+C,簽名值分別縮短29%、27%、26%,密鑰生成、簽名生成、驗證時間較WOTS+分別減少27.2%、18.7%、25.3%,同時依托SM3具備抗量子能力,適用于存儲/帶寬受限場景(如物聯網)。
四、思維導圖
研究背景
咱們先從“為什么要做這個研究”說起——畢竟任何技術方案,都是為了解決實際問題而生的。
首先,量子計算是傳統密碼的“天敵”。以前我們常用的密碼(比如銀行轉賬用的RSA、手機支付用的ECC),都依賴“大整數分解”“離散對數”這些數學難題——就像用一把復雜的鎖把數據鎖起來,傳統計算機要解開得花幾百年。但1994年Shor算法出現后,量子計算機能“秒解”這些難題;1996年Grover算法更狠,能把對稱密碼的破解時間砍半。這就好比,量子計算機手里有一把“萬能鑰匙”,傳統密碼的鎖很快就不管用了。
為了應對這個危機,后量子密碼(PQC) 應運而生——目標是設計“量子計算機也解不開”的密碼。2022年NIST(美國國家標準與技術研究院)選出了4種首批標準化PQC方案,其中SPHINCS+ 很特別:它是唯一基于“哈希函數”的方案(其他3種基于格理論)。哈希函數就像“單向榨汁機”——把水果(輸入)榨成汁(哈希值)容易,但想從汁還原出水果幾乎不可能,這種特性讓SPHINCS+的簽名/驗證速度快、安全性可靠,很適合物聯網、嵌入式設備。
但問題來了:SPHINCS+的核心組件WOTS+(一次簽名方案)有個大缺點——簽名值太長。比如安全參數n=32時,WOTS+的簽名要2144字節(差不多2KB)。這對手機、傳感器這些“小身板”設備很不友好:想象一下,一個物聯網傳感器只有幾KB存儲,存一個簽名就占了一半空間;或者偏遠地區的設備靠窄帶寬傳輸,一個2KB的簽名要傳半天——就像快遞包裝比里面的物品還大,小快遞柜根本放不下,運輸也費時間。
除此之外,國內場景還關注**“國產自主可控”**:很多現有方案用的是國外哈希函數(比如SHA-256),而國密算法SM3是我國自主設計的,安全性經過驗證,更符合國內合規要求。但當時還沒有基于SM3的“緊湊后量子簽名方案”——這就是論文要填補的空白:用SM3做一個“又小又快、抗量子、國產化”的一次簽名方案,解決WOTS+的“大體積”痛點。
創新點
這篇論文的核心亮點,簡單說就是“用對方法,解決了老問題”,具體有三個關鍵創新:
-
雙信息維度索引哈希鏈,從根源縮短簽名長度
傳統OTS方案(比如WOTS+)只用消息摘要的“單一格式”(比如二進制)索引哈希鏈,需要更多哈希鏈或更長節點才能覆蓋安全需求。SM3-OTS則“一魚兩吃”:把32字節的消息摘要拆成兩種格式——二進制(m_bin)和十六進制(m_hex),分別對應前32條、后16條哈希鏈的節點索引。這樣既保證了安全覆蓋,又減少了冗余,最終簽名長度從WOTS+的2144字節壓縮到1536字節,縮短了29%。 -
深度結合國密SM3,兼顧合規與抗量子
很多后量子方案依賴國外哈希函數,而SM3-OTS全程用國密算法SM3:私鑰生成、公鑰推導、簽名計算、驗證都基于SM3。這不僅符合國內“自主可控”的合規要求,還利用了SM3的抗量子特性——哈希函數的“單向性”“無碰撞性”在量子環境下僅受Grover算法輕微影響(安全級別從128位降至85位,可通過擴展輸出彌補),比基于數論的密碼抗量子能力更穩定。 -
算法流程優化,效率與緊湊性雙贏
傳統方案為了縮短簽名,常犧牲效率(比如增加復雜計算),但SM3-OTS在緊湊的同時還提升了效率:密鑰生成時,48個私鑰塊僅需各做255次SM3哈希就得公鑰;簽名/驗證時,通過“索引直接定位哈希鏈節點”減少無效計算。實驗顯示,它比WOTS+的密鑰生成快27.2%、簽名快18.7%、驗證快25.3%——相當于“包裝變小了,快遞速度還變快了”。
研究方法和思路、實驗方法
(一)核心研究思路
論文的整體思路很清晰:“發現痛點→針對性設計方案→驗證安全性→測試性能”,具體路徑是:
- 痛點:SPHINCS+的WOTS+簽名過長,缺乏國產方案;
- 方向:基于SM3設計緊湊型OTS,用雙信息索引優化哈希鏈;
- 驗證:從理論證明方案安全(歸約到SM3特性),從實驗驗證性能(對比主流方案)。
(二)SM3-OTS方案的具體實現步驟
1. 密鑰生成算法(KeyGen):“造鑰匙”的過程
目標:生成一對“私鑰(自己用)+公鑰(別人驗證用)”
步驟:
① 確定安全參數:默認n=256bits(行業常用安全級別);
② 生成私鑰塊:用偽隨機數生成函數(PRNF),以“秘密種子(Seed)”為基礎,生成48個32字節的私鑰塊(sk?~sk??),私鑰sk就是這48個塊的集合(1536Bytes);
③ 生成公鑰塊:對每個私鑰塊sk?,用SM3哈希255次(記為H2??(sk?)),得到48個32字節的公鑰塊(pk?~pk??),公鑰pk就是這48個塊的集合(1536Bytes);
④ 形成哈希鏈:每個sk?到pk?的過程就是一條“哈希鏈”(共48條),鏈上有256個節點(首節點=sk?,尾節點=pk?)。
2. 簽名生成算法(Sign):“簽名字”的過程
目標:給明文消息M生成唯一簽名σ
步驟:
① 算消息摘要:用SM3對M哈希,得到32字節的摘要m=H(M);
② 處理摘要格式:
- 二進制格式(m_bin):把m轉成二進制,每8位分成一組,共32組,每組轉成0-255的十進制數(作為前32條哈希鏈的“節點索引”);
- 十六進制格式(m_hex):把m轉成十六進制(含0-F共16個字符),統計每個字符在64位十六進制串中的位置和,再對255取模(作為后16條哈希鏈的“節點索引”);
③ 生成簽名塊:對每條哈希鏈,根據索引找到對應的節點——比如前32條的第1條索引是10,就取sk?哈希10次的結果(H1?(sk?))作為簽名塊σ?;
④ 組合簽名:48個簽名塊(σ?~σ??)組合成最終簽名σ(1536Bytes)。
3. 簽名驗證算法(Verify):“驗真假”的過程
目標:確認簽名σ是不是“真的”(沒被篡改)
步驟:
① 重復簽名生成的①-②:對收到的M重新算摘要m,再得到m_bin和m_hex的索引;
② 推導驗證公鑰:對每個簽名塊σ?,用SM3哈希“255-索引值”次(比如σ?索引是10,就哈希255-10=245次,記為H2??(σ?)),得到驗證公鑰塊pk’?;
③ 對比驗證:把48個pk’?組合成驗證公鑰pk’,如果pk’和原公鑰pk完全一致,說明簽名有效(輸出true),否則無效(輸出false)。
(三)實驗方法:怎么證明方案“好用”
1. 實驗環境(保證結果可信)
- 硬件:AMD Ryzen 7840S CPU(3.3 GHz)、4GB RAM(模擬嵌入式/物聯網設備的中等配置);
- 軟件:Ubuntu 22.04 LTS操作系統(Linux環境,常見服務器/設備系統)。
2. 對比對象(選行業主流方案)
- WOTS+(SPHINCS+核心組件);
- Balanced WOTS+(SPHINCS-α優化方案);
- WOTS+C(SPHINCS+C優化方案);
- LMOTS(經典哈希基OTS方案)。
3. 測試指標(關鍵性能維度)
- 尺寸指標:私鑰長度、公鑰長度、簽名值長度(單位:Bytes);
- 效率指標:密鑰生成時間、簽名生成時間、簽名驗證時間(單位:ms)。
主要成果和貢獻
(一)核心成果總結(用表格更清晰)
成果類別 | 具體內容 |
---|---|
方案設計 | 完成SM3-OTS方案的完整設計,包含密鑰生成、簽名生成、驗證3個核心算法 |
尺寸優化成果 | 安全參數n=32時,私鑰/公鑰/簽名均為1536Bytes,較WOTS+(2144Bytes)縮短29%,較Balanced WOTS+(2112Bytes)縮短27%,較WOTS+C(2080Bytes)縮短26% |
效率優化成果 | 較WOTS+:密鑰生成時間減少27.2%,簽名生成時間減少18.7%,簽名驗證時間減少25.3% |
安全性成果 | 理論證明:方案安全歸約到SM3的抗第一原像、抗第二原像、抗碰撞性;抗量子性:僅受Grover算法影響,可通過擴展SM3輸出彌補 |
兼容性成果 | 基于國密SM3算法,符合國內密碼合規要求,可直接替換SPHINCS+中的WOTS+ |
(二)領域貢獻(實實在在的價值)
-
解決“簽名過長”痛點,拓展后量子簽名的應用場景
以前WOTS+簽名太長,物聯網傳感器、智能卡等資源受限設備用不了;SM3-OTS的1536字節簽名能輕松適配這些設備,讓后量子密碼從“實驗室”走進“實際產品”。 -
填補國產緊湊型后量子簽名的空白
之前國內多是“用SM3替換國外方案的哈希函數”,而SM3-OTS是從算法設計層面深度結合SM3,首次實現“國產算法+緊湊結構+后量子安全”的結合,為國內行業提供了自主可控的選擇。 -
提供“效率+安全”平衡的參考方案
很多方案要么追求緊湊犧牲效率,要么追求效率犧牲緊湊;SM3-OTS證明了“兩者可以兼得”,為后續哈希基后量子簽名的優化提供了思路(比如雙信息索引的設計)。
(三)開源代碼/數據集說明
論文中未提及開源代碼或公開數據集,推測目前處于理論驗證與實驗階段,后續可能在相關學術平臺(如GitHub、IEEE Xplore)發布。
關鍵問題
1. 問:SM3-OTS是怎么解決傳統OTS方案(比如WOTS+)簽名過長的問題?
答:核心是“雙信息維度索引哈希鏈”:傳統方案只用消息摘要的單一格式(如二進制)索引哈希鏈,需要更多鏈或更長節點;SM3-OTS把32字節摘要拆成二進制(m_bin)和十六進制(m_hex),分別索引前32條、后16條哈希鏈,既覆蓋安全需求,又減少冗余——比如WOTS+需要更多哈希鏈節點才能保證安全,而SM3-OTS通過“精準索引”直接定位節點,最終簽名從2144Bytes縮到1536Bytes,縮短29%。
2. 問:SM3-OTS的抗量子能力從哪里來?和傳統密碼(如RSA)比有什么優勢?
答:抗量子能力來自國密算法SM3的特性:哈希函數的“單向性”(從哈希值反推輸入難)和“無碰撞性”(找兩個不同輸入得相同哈希值難),在量子環境下僅受Grover算法影響(安全級別從128位降至85位,可通過擴展SM3輸出彌補);而RSA依賴大整數分解,會被Shor算法“秒破”。優勢在于:SM3-OTS的抗量子能力更穩定,不會被量子算法完全破解。
3. 問:SM3-OTS的“國密屬性”有什么實際意義?國內企業為什么要關注?
答:國密屬性的核心意義是“自主可控+合規”:① 避免依賴國外算法的“卡脖子”風險(比如國外算法升級或限制使用);② 符合國內《網絡安全法》《密碼法》對“關鍵信息基礎設施用國產密碼”的要求。國內企業(尤其是金融、政務、物聯網領域)用SM3-OTS,既能滿足后量子安全需求,又不用為合規額外改造,降低成本。
4. 問:SM3-OTS是“一次簽名方案”,這意味著什么?怎么擴展到“多次簽名”場景?
答:“一次簽名”是指一對私鑰/公鑰只能給一條消息簽名(重復用會被偽造);論文提到未來可通過“二叉哈希樹(Merkle Tree)”擴展:把多個SM3-OTS的公鑰作為哈希樹的“葉子節點”,樹的“根節點”作為總公鑰——用戶每次簽名用一個葉子節點的SM3-OTS密鑰,就能實現“多次簽名”,同時保持無狀態(不用記錄已簽名次數)。
5. 問:和SPHINCS+的其他優化方案(如Balanced WOTS+、WOTS+C)比,SM3-OTS的核心優勢是什么?
答:核心優勢是“綜合性能最優”:① 簽名更短:比Balanced WOTS+短27%、比WOTS+C短26%;② 效率更高:密鑰生成、簽名、驗證時間均優于這兩種方案;③ 國密兼容:后兩者基于國外哈希函數,SM3-OTS基于SM3,更適合國內場景。簡單說,SM3-OTS在“短、快、合規”三個維度上都做到了更好。
總結
論文針對后量子簽名方案SPHINCS+中WOTS+簽名過長的痛點,設計了基于國密算法SM3的緊湊型一次簽名方案SM3-OTS。該方案通過消息摘要的二進制與十六進制信息雙維度索引哈希鏈,有效縮短了密鑰與簽名長度(較WOTS+縮短29%);同時依托SM3的抗量子特性,從理論上證明了方案的安全性(歸約到SM3的單向性與抗碰撞性);實驗驗證顯示,方案在密鑰生成、簽名生成、驗證效率上均優于主流OTS方案(較WOTS+效率提升18.7%-27.2%)。
SM3-OTS的價值在于:既解決了傳統OTS方案“大體積”的應用瓶頸,又填補了國產緊湊型后量子簽名的空白,為物聯網、嵌入式設備等資源受限場景提供了“安全、緊湊、高效、合規”的后量子簽名選擇。未來通過二叉哈希樹擴展為無狀態方案后,其應用范圍還將進一步擴大。