[論文閱讀] 算法 | 抗量子+緊湊!SM3-OTS:基于國產哈希算法的一次簽名新方案

抗量子+緊湊!SM3-OTS:基于國產哈希算法的一次簽名新方案

論文信息

信息類別具體內容
論文原標題SM3-OTS: 基于國密算法SM3的緊湊型后量子一次簽名方案
主要作者楊亞濤、殷方銳、陳亮宇、潘登
研究機構1. 北京電子科技學院 電子與通信工程系(北京 100070)
2. 西安電子科技大學 通信工程學院(陜西 西安 710071)
通信作者楊亞濤,E-mail: yy2008@163.com
發表期刊軟件學報(ISSN 1000-9825, CODEN RUXUEW)
DOI10.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+的“大體積”痛點。

創新點

這篇論文的核心亮點,簡單說就是“用對方法,解決了老問題”,具體有三個關鍵創新:

  1. 雙信息維度索引哈希鏈,從根源縮短簽名長度
    傳統OTS方案(比如WOTS+)只用消息摘要的“單一格式”(比如二進制)索引哈希鏈,需要更多哈希鏈或更長節點才能覆蓋安全需求。SM3-OTS則“一魚兩吃”:把32字節的消息摘要拆成兩種格式——二進制(m_bin)和十六進制(m_hex),分別對應前32條、后16條哈希鏈的節點索引。這樣既保證了安全覆蓋,又減少了冗余,最終簽名長度從WOTS+的2144字節壓縮到1536字節,縮短了29%。

  2. 深度結合國密SM3,兼顧合規與抗量子
    很多后量子方案依賴國外哈希函數,而SM3-OTS全程用國密算法SM3:私鑰生成、公鑰推導、簽名計算、驗證都基于SM3。這不僅符合國內“自主可控”的合規要求,還利用了SM3的抗量子特性——哈希函數的“單向性”“無碰撞性”在量子環境下僅受Grover算法輕微影響(安全級別從128位降至85位,可通過擴展輸出彌補),比基于數論的密碼抗量子能力更穩定。

  3. 算法流程優化,效率與緊湊性雙贏
    傳統方案為了縮短簽名,常犧牲效率(比如增加復雜計算),但SM3-OTS在緊湊的同時還提升了效率:密鑰生成時,48個私鑰塊僅需各做255次SM3哈希就得公鑰;簽名/驗證時,通過“索引直接定位哈希鏈節點”減少無效計算。實驗顯示,它比WOTS+的密鑰生成快27.2%、簽名快18.7%、驗證快25.3%——相當于“包裝變小了,快遞速度還變快了”。

研究方法和思路、實驗方法

(一)核心研究思路

論文的整體思路很清晰:“發現痛點→針對性設計方案→驗證安全性→測試性能”,具體路徑是:

  1. 痛點:SPHINCS+的WOTS+簽名過長,缺乏國產方案;
  2. 方向:基于SM3設計緊湊型OTS,用雙信息索引優化哈希鏈;
  3. 驗證:從理論證明方案安全(歸約到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+

(二)領域貢獻(實實在在的價值)

  1. 解決“簽名過長”痛點,拓展后量子簽名的應用場景
    以前WOTS+簽名太長,物聯網傳感器、智能卡等資源受限設備用不了;SM3-OTS的1536字節簽名能輕松適配這些設備,讓后量子密碼從“實驗室”走進“實際產品”。

  2. 填補國產緊湊型后量子簽名的空白
    之前國內多是“用SM3替換國外方案的哈希函數”,而SM3-OTS是從算法設計層面深度結合SM3,首次實現“國產算法+緊湊結構+后量子安全”的結合,為國內行業提供了自主可控的選擇。

  3. 提供“效率+安全”平衡的參考方案
    很多方案要么追求緊湊犧牲效率,要么追求效率犧牲緊湊;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方案“大體積”的應用瓶頸,又填補了國產緊湊型后量子簽名的空白,為物聯網、嵌入式設備等資源受限場景提供了“安全、緊湊、高效、合規”的后量子簽名選擇。未來通過二叉哈希樹擴展為無狀態方案后,其應用范圍還將進一步擴大。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96272.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96272.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96272.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言-指針用法概述

目錄 1.指針基礎概念 2. 指針與數組 3. 指針作為函數參數 4. 動態內存分配 5. 指針的高級用法 6. 常見錯誤與注意事項 7. 指針數組 vs. 數組指針 8.總結與建議 本文主要作為指針用法的復習,會對指針的大致用法進行舉例和概述。 1.指針基礎概念 ?什…

Java調用Whisper和Vosk語音識別(ASR)模型,實現高效實時語音識別(附源碼)

簡介 語音識別(Automatic Speech Recognition, ASR)是將人類的語音信號自動轉換為對應文字的技術,它使計算機能夠“聽懂”人說的話,是人機語音交互的核心技術,廣泛應用于智能助手、語音輸入、客服系統等場景。 現在我…

第3周 機器學習課堂記錄

1.學習問題的分類有監督的學習分類回歸無監督學習聚類密度估計:確定輸入空間中的數據的分布可視化:把高位空間中的數據投影到二維或三維空間強化學習不給定最優輸出的示例,而是通過試錯發現最優輸出2.泛化versus過度擬合背景引入:…

消息隊列(MQ)高級特性深度剖析:詳解RabbitMQ與Kafka

一、引言:為什么需要關注高級特性? 在現代分布式系統架構中,消息隊列(Message Queue)已成為不可或缺的核心組件。初級使用消息隊列可能只需幾行代碼就能實現基本功能,但要真正發揮其在大規模生產環境中的威…

【GPT入門】第65課 vllm指定其他卡運行的方法,解決單卡CUDA不足的問題

【GPT入門】第65課 vllm指定其他卡運行的方法,解決單卡CUDA不足的問題1.原理說明:2.實踐1.原理 要將 vllm 部署在第二張 GPU 卡上(設備編號為 1),只需在命令前添加 CUDA_VISIBLE_DE…

Spring Boot Actuator自定義指標與監控實踐指南

Spring Boot Actuator自定義指標與監控實踐指南 本篇文章以生產環境實戰經驗為主線,結合某電商系統的業務場景,講解如何在Spring Boot Actuator中添加并暴露自定義指標,并使用Prometheus和Grafana進行完整的監控與告警配置。 一、業務場景描述…

Vue報錯<template v-for=“option in cardOptions“ :key=“option.value“>

在Vue項目中遇到報錯&#xff0c;原因是模板中使用了<template>標簽內的v-for指令&#xff0c;而當前Vue版本不支持此用法。解決方案是移除<template>標簽&#xff0c;直接在<el-option>上使用v-for。同時優化計算屬性cardOptions&#xff0c;使其能夠兼容歷…

人工智能學習:Transformer結構中的規范化層(層歸一化)

Transformer結構中的規范化層(層歸一化) 一、規范化層(層歸一化)介紹 概念 層歸一化(Layer Normalization) 是一種用于提高深度神經網絡訓練穩定性和加速收斂的技術,廣泛應用于現代深度學習模型中,尤其是在Transformer等序列建模網絡中。它通過對每一層的輸出進行歸一化…

盼之代售 最新版 decode__1174

聲明 本文章中所有內容僅供學習交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包內容、敏感網址、數據接口等均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無關&#xff01; 逆向分析 部分python代碼 cp1 execj…

Transformer系列 | Pytorch復現Transformer

&#x1f368; 本文為&#x1f517;365天深度學習訓練營中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 一、Transformer和Seq2Seq 在之前的博客中我們學習了Seq2Seq(深度學習系列 | Seq2Seq端到端翻譯模型)&#xff0c;知曉了Attention為RNN帶來的優點。那么有沒有…

【MySQL】常用SQL語句

介紹常用的DDL語句、DML語句基本語法分號結尾使用空格和縮進不區分大小寫--或#注釋單行內容 /*注釋多行內容*/DDL數據定義語句&#xff1a;定義數據庫、表、字段一、操作庫-- 創建庫create database db1;-- 創建庫是否存在&#xff0c;不存在則創建create database if not exi…

云手機就是虛擬機嗎?

云手機并非等同于虛擬機&#xff0c;盡管二者存在一定相似性&#xff0c;但有著諸多區別&#xff0c;以下從多個方面來分析&#xff1a;云手機是一種基于云計算技術&#xff0c;將云端服務器虛擬化為手機設備&#xff0c;用戶能通過網絡遠程操控的虛擬手機服務&#xff0c;它從…

準確--Nginx 1.28.0 安裝與配置流程

Nginx 1.28.0 安裝與配置流程 1. 下載與解壓 cd ~ wget http://nginx.org/download/nginx-1.28.0.tar.gz tar -zxvf nginx-1.28.0.tar.gz cd nginx-1.28.02. 配置編譯參數 ./configure \--prefix/home/ynnewweb/nginx \--with-http_ssl_module \--with-http_gzip_static_module…

無標記點動捕新范式:Xsens系統助力人形機器人實現毫米級動作復刻

Xsen搭載Manus數據手套在機器人操作與機器學習中的應用當前&#xff0c;人形機器人正加速向工業裝配、家庭陪護、倉儲物流等場景滲透&#xff0c;而 “如何讓機器人的動作既符合人類運動規律&#xff0c;又能實現高精度執行” 成為制約其落地的核心瓶頸。Xsens 高精度全身動捕系…

mysql57超管root忘記密碼怎么辦

目錄 背景 1.首先停止數據庫 2.使用免密模式啟動 3.修改密碼 3.1刷新權限配置 3.2修改密碼 4.殺掉mysql 5.重新正常啟動mysql 6.查看mysql狀態 7.驗證 7.1首先服務器本地驗證 7.2遠程驗證 背景 數據庫密碼忘記了,急的抓耳撓腮,怎么也想不起來,于是就開始重置吧 1.…

RESTful API:@RequestParam與@PathVariable實戰對比

RequestParam vs PathVariable 在刪除和查找操作中的使用差異 在項目實戰中&#xff0c;選擇使用 RequestParam 還是 PathVariable 來接收ID參數&#xff0c;通常基于以下幾個考慮因素&#xff1a; 1. RESTful API 設計原則 查找操作使用 PathVariable GetMapping("/depts…

劇本殺小程序系統開發:開啟沉浸式社交娛樂新紀元

在當今數字化浪潮席卷的時代&#xff0c;社交娛樂方式正經歷著前所未有的變革。劇本殺&#xff0c;這一融合了角色扮演、推理懸疑與社交互動的線下娛樂項目&#xff0c;近年來迅速風靡全國&#xff0c;成為年輕人熱衷的社交新寵。而隨著移動互聯網的蓬勃發展&#xff0c;劇本殺…

中線安防保護器,也叫終端電氣綜合治理保護設備為現代生活筑起安全防線

中線安防保護器&#xff08;Neutral Line Protection Device&#xff0c;簡稱NLPD&#xff09;是一種專門用于監測和保護電力系統中性線的安全裝置。中線安防保護器的基本原理為:通過電流檢測環節采集系統中性線上過電流信息&#xff0c; 經控制器快速計算并提取各次諧波電流的…

Spring Cloud Alibaba快速入門02-Nacos配置中心(下)

文章目錄前言配置中心 - 數據隔離示例1.先創建命名空間2.創建配置3.克隆配置4.動態切換環境5.yml多文檔模式spring.profiles.activedevspring.profiles.activetest總結前言 上一章簡單了解了Nacos配置中心的基本用法&#xff0c;這一章將開始Nacos配置中心的實戰案例。 配置中…

基于結構光相移法的三維重建

基于結構光相移法的三維重建程序 1. 介紹 結構光相移法是一種常用的三維重建技術&#xff0c;通過投射條紋圖案并捕捉其變形來計算物體的三維形狀。相移法通過多次投射不同相位的條紋圖案&#xff0c;利用相位信息來提取物體表面的深度信息。 2. MATLAB實現 2.1 生成條紋圖案 首…