新四季網

一種基於餘數系統的SM2白盒數字籤名實現方法與流程

2023-06-06 14:27:56 1


本發明涉及信息安全技術領域,特別是涉及一種基於餘數系統的SM2白盒數字籤名實現方法。



背景技術:

現有軟體加密算法,密鑰均是直接出現在計算平臺的內存之中,攻擊者可通過惡意軟體等實現密鑰的竊取,不能應對已有的白盒攻擊手段;現有的硬體加密算法,能較好的保證密鑰計算的安全性,但相對使用成本較高,通用性較差,對於部分安全性要求相對較低的應用場景無法使用;同時還有部分研究機構提出了基於雲加端部分密鑰和密鑰分散存儲策略的軟體加密算法,但云加端的策略無法抵抗本地私鑰的洩露,還存儲雲端與終端的鑑權問題,密鑰分散存儲策略在進行密鑰運算時必須合成密鑰,內存中同樣存在密鑰完整明文。



技術實現要素:

為解決上述問題,本發明提供了一種基於餘數系統的SM2白盒數字籤名實現方法,所述方法適用的系統包括客戶端和伺服器,所述系統的系統模數為n,輔助模數為mr所選取橢圓曲線的基點為G,籤名消息為M其特徵在於,包括如下步驟:

步驟一:客戶端選取公鑰d、私鑰P。選定一個餘數系統,素數基為β=(p1,p2,...,pt),基β的動態範圍滿足ω=p1p2p3…pt≥2768。

步驟二:客戶端生成第一私鑰查找表、第二私鑰查找表。具體方法為:

步驟2.1:隨機選取兩個非線性密鑰置換表,分別記為Sbox1、Sbox2,並通過伺服器的公鑰將自己的客戶端ID和Sbox1發送給伺服器進行保存。

步驟2.2:使用餘數系統將公鑰P轉化為Pi,其中i=1,…,t,r,並生成第一私鑰查找表Table1,i(i=1,...,t,r),生成方法為:隨機遍歷產生兩個隨機數N1和N2,其中N2,N1∈[1,n-1],通過餘數系統將其分別轉化為N1i和N2i,計算ui=sbox2(N1,i×sbox1-1(sbox1(N2,i))modpi),將遍歷產生的所有ui作為表Table1,i(i=1,...,t,r)的元素。

步驟2.3:使用私鑰d和餘數系統生成第二私鑰查找表Table2,i(i=1,...,t,r),生成方法為:隨機遍歷產生兩個隨機數L1和L2,其中L2,L1∈[1,n-1],通過餘數系統將其分別轉化為L1i和L2i,同時將私鑰d轉換為di,計算si=di×(sbox2-1(L1i)-L2i×di)mod pi,將遍歷產生的所有si作為表Table2,i(i=1,...,t,r)的元素;

步驟三:客戶端進行籤名,具體方法為:

步驟3.1:客戶端計算M』=M||ZA;其中,M為籤名消息,ZA為客戶端的身份標識。

步驟3.2:客戶端用雜湊函數計算消息摘要e=Hv(M』)。

步驟3.3:客戶端產生第一隨機數k1∈[1,n-1];

步驟3.4:客戶端計算橢圓曲線點Q1=[k1]*G,並將e和Q1發送給伺服器;其中,

步驟3.5:伺服器產生第二隨機數k2∈[1,n-1];

步驟3.6:伺服器計算橢圓曲線點(x1,y1)=[k2]*Q1;

步驟3.7:伺服器計算第一部分籤名r=(x1+e)mod n,將第二隨機數k2基於基{β|pr}用餘數系統表示為k2=(k2,1,...,k2,t|k2,r),通過Sbox1進行混淆,然後將r和Sbox1(k2)=[sbox1(k2,1),sbox1(k2,2),...,sbox1(k2,t)|sbox1(k2,r)]發送給客戶端。

步驟3.8:客戶端將第一隨機數K1和r基於基{β|pr}用餘數系統表示為k1=(k1,1,k1,2,...,k1,t|k1,r)和r=(r1,r2,...,rt|rr);

步驟3.9:客戶端使用第一私鑰查找表Table1,i(i=1,...,t,r)計算中間值ui=sbox2(k1,i×sbox1-1(sbox1(k2,i))modpi)。

步驟4.0:客戶端使用第二私鑰查找表Table2,i(i=1,...,t,r)計算si=di×(sbox2-1(ui)-ri×dA,i)mod pi,其中私鑰dA隱藏在第二私鑰查找表Table2,i中。

步驟4.1:客戶端利用中國剩餘定理恢復出s。

步驟4.3:客戶端計算s′=s mod n,s′即為第二部分籤名值。

步驟五:輸出消息M和籤名。

進一步的,各個隨機數是利用隨機數發生器產生。

本發明的有益效果為:

(1)客戶端在進行籤名運算過程中,內存等硬體設備中不會出現私鑰的完整明文,確保密碼算法運行的白盒攻擊安全。

(2)實現本方法僅需要207.5MB的內層大小,存儲空間要求較小。

(3)本實現方法和原SM2算法的籤名效率基本一致,實用性較高。

(4)通過使用白盒軟體實現可降低商用密碼算法的使用成本,擴大商用密碼算法的使用範圍。

(5)使用白盒軟體算法在確保加解密安全的同時,通用性較強,對運行平臺硬體沒有任何特殊需求。

附圖說明

圖1為客戶端進行籤名的流程示意圖。

具體實施方式

本發明的設計構思為:針對於不可信環境中密鑰運行不安全,惡意攻擊者可通過白盒攻擊手段獲取系統密鑰的問題展開研究,通過使用餘數系統實現大數的拆分,從而降低密鑰表的大小;通過使用置亂混淆確保中間結果對攻擊者不可見;通過使用雲端的隨機因子確保終端密鑰運算關係的未知性,實現了終端籤名運算過程中的籤名私鑰安全,同時可使用標準的SM2驗籤算法進行驗證。

本發明基於國家商用密碼算法SM2數字籤名算法進行構建,SM2數字籤名算法請參加國家商用密碼管理局發布的管理標準,同時本發明還使用了一個典型的數學工具——餘數系統,詳細介紹如下:

餘數系統的定義可以描述為:現假設存在一個餘數系統,它是由一組互為質數的餘數基β=(m1,m2,...,mk}來確定的,M=m1m2…mk為這組基的動態範圍。對於任意整數x≤M,可以在β這組基下唯一表示為(x1,x2,...,xk),其中xi為x對mi的求模結果,記為對餘數系統而言,只有當整數x在動態範圍之內才存在唯一的表示。

假設整數x、y在基β下分別表示為x=(x1,x2,...,xk)和y=(y1,y2,...,yk),則:

其中「ο″為+、-、×運算。

對於x的餘數系統表示(x1,x2,...,xk),由中國剩餘定理:

其中α<k,Mi=M/mi,為Mi在模mi下的逆。α可通過選擇一個合適的輔助模數mr來恢復,其中mr≥k+1且gcd(M,mr)=1。設xr為x對mr的求模結果,即:

則:

因為α<k<mr,所以對於任意整數x,可在擴展基下表示為(x1,x2,...,xk|xr),稱為擴展RNS表示。

本發明所述方法適用的系統包括客戶端和伺服器。客戶端也就是執行數字籤名算法的用戶,其運行環境是不可信的,伺服器是協同籤名方,其屬於密鑰管理中心的一個部件,它主要為客戶端提供一個隨機因子。

假定所述系統的系統模數為n,輔助模數為mr,所選取橢圓曲線的基點為G,籤名消息為M,ZA為客戶端的身份標識,Hv為使用的摘要函數(可實用商用密碼標準SM3算法)。本方法共包含4個部分:(1)參數選取及密鑰生成;(2)私鑰表的生成;(3)籤名計算;(4)驗籤計算。其中(1)和(4)均參考國家商用SM2數字籤名算法標準執行。

本發明的具體步驟描述如下:

步驟一:客戶端選取公鑰d、私鑰P。選定一個餘數系統,素數基為β=(p1,p2,...,pt),基β的動態範圍滿足ω=p1p2p3…pt≥2768。

步驟二:客戶端生成第一私鑰查找表、第二私鑰查找表。具體方法為:

步驟2.1:隨機選取兩個非線性密鑰置換表(與對稱密碼算法中使用的S盒是一致的),分別記為Sbox1、Sbox2,並通過伺服器的公鑰將自己的客戶端ID和Sbox1發送給伺服器進行保存。

步驟2.2:使用餘數系統將公鑰P轉化為Pi,其中i=1,…,t,r,並生成第一私鑰查找表Table1,i(i=1,...,t,r),生成方法為:隨機遍歷產生兩個隨機數N1和N2,其中N2,N1∈[1,n-1],通過餘數系統將其分別轉化為N1i和N2i,計算ui=sbox2(N1,i×sbox1-1(sbox1(N2,i))modpi),將遍歷產生的所有ui作為表Table1,i(i=1,...,t,r)的元素。

步驟2.3:使用私鑰d和餘數系統生成第二私鑰查找表Table2,i(i=1,...,t,r),生成方法為:隨機遍歷產生兩個隨機數L1和L2,其中L2,L1∈[1,n-1],通過餘數系統將其分別轉化為L1i和L2i,同時將私鑰d轉換為di,計算si=di×(sbox2-1(L1i)-L2i×di)mod pi,將遍歷產生的所有si作為表Table2,i(i=1,...,t,r)的元素;

步驟三:客戶端進行籤名,具體方法為:

步驟3.1:客戶端計算M』=M||ZA;其中,M為籤名消息,ZA為客戶端的身份標識。

步驟3.2:客戶端用雜湊函數計算消息摘要e=Hv(M』)。

步驟3.3:客戶端用隨機數發生器產生第一隨機數k1∈[1,n-1];

步驟3.4:客戶端計算橢圓曲線點Q1=[k1]*G,並將e和Q1發送給伺服器;其中,

步驟3.5:伺服器用隨機數發生器產生第二隨機數k2∈[1,n-1];

步驟3.6:伺服器計算橢圓曲線點(x1,y1)=[k2]*Q1;

步驟3.7:伺服器計算第一部分籤名r=(x1+e)mod n,將第二隨機數k2基於基{β|pr}用餘數系統表示為k2=(k2,1,...,k2,t|k2,r),通過Sbox1進行混淆,然後將r和Sbox1(k2)=[sbox1(k2,1),sbox1(k2,2),...,sbox1(k2,t)|sbox1(k2,r)]發送給客戶端。

步驟3.8:客戶端將第一隨機數k1和r基於基{β|pr}用餘數系統表示為k1=(k1,1,k1,2,...,k1,t|k1,r)和r=(r1,r2,...,rt|rr);

步驟3.9:客戶端使用第一私鑰查找表Table1,i(i=1,...,t,r)計算中間值ui=sbox2(k1,i×sbox1-1(sbox1(k2,i))modpi)。

步驟4.0:客戶端使用第二私鑰查找表Table2,i(i=1,...,t,r)計算si=di×(sbox2-1(ui)-ri×dA,i)mod pi,其中私鑰dA隱藏在第二私鑰查找表Table2,i中。

步驟4.1:客戶端利用中國剩餘定理恢復出s。

步驟4.3:客戶端計算s′=s mod n,s′即為第二部分籤名值。

步驟五:輸出消息M和籤名。

進一步的,各個隨機數是利用隨機數發生器產生。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀