[發明專利]一種輕量級SM2兩方協同生成數字簽名的方法有效
| 申請號: | 201910147366.4 | 申請日: | 2019-02-27 |
| 公開(公告)號: | CN110011803B | 公開(公告)日: | 2020-10-30 |
| 發明(設計)人: | 何德彪;張佳妮;馮琦;王婧;陳泌文 | 申請(專利權)人: | 武漢大學 |
| 主分類號: | H04L9/32 | 分類號: | H04L9/32;H04L9/08 |
| 代理公司: | 湖北武漢永嘉專利代理有限公司 42102 | 代理人: | 唐萬榮;李丹 |
| 地址: | 430072 湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 輕量級 sm2 協同 生成 數字簽名 方法 | ||
1.一種輕量級SM2兩方協同生成數字簽名的方法,參與兩方為P1、P2,其特征在于,包括以下步驟:
步驟1)簽名參數初始化:產生整個簽名過程所需的公開參數;所述參數包括:橢圓曲線相關參數(q,Fq,a,b,n,G)、密碼雜湊函數h(·);
其中,q為大素數,Fq為包含q個元素的有限域,a,b為Fq中的元素,用于定義Fq上的一條橢圓曲線,n為素數,G為橢圓曲線的一個基點,其階為n;
步驟2)生成分布式密鑰:生成參與方P1,P2的簽名私鑰,簽名驗證公鑰;具體如下:
2.1)參與方P1在Zn中隨機選取一個整數x1作為自己的簽名私鑰,并分別通過公式(1),(2)計算中間變量X1,零知識證明參與方P1將發送給參與方P2;
X1=[x1]G (1),
其中,G為橢圓曲線的一個基點,用于生成關于x1是X1的一個橢圓曲線離散對數這個稱述的零知識證明
2.2)參與方P2在Zn中隨機選取一個整數x2作為自己的簽名私鑰,并分別通過公式(3),(4)計算中間變量X2,零知識證明參與方P2將發送給參與方P1;
X2=[x2]G (3),
其中,用于證明x2是關于X2的一個橢圓曲線離散對數;
2.3)參與方P1驗證零知識證明是否合法,驗證通過則通過公式(5)計算簽名驗證公鑰Ppub;參與方P2驗證零知識證明是否合法,若驗證通過則通過公式(5)計算簽名驗證公鑰Ppub;
2.4)參與方P1在Zn中隨機選取兩個整數a1,b1;參與方P2在Zn中隨機選取兩個整數a2,b2;Zn為整數0,1,...,n-1組成的集合;
2.5)參與方P1,P2通過同態操作或不經意傳輸運算分別獲得加法分量z1,z2,使其滿足z1+z2=(a1+a2)·(b1+b2)mod n;
步驟3)生成分布式簽名:該步驟用于參與方P1,P2聯合生成消息m的數字簽名(r,s);具體過程如下:
3.1)參與方P1在Zn中隨機選取兩個整數k1,ρ1,并分別通過公式(6),(7)計算中間變量R1,零知識證明參與方P1將發送給參與方P2;
R1=[k1]G (6),
其中,用于證明k1是關于R1的一個橢圓曲線離散對數;
3.2)參與方P2在Zn中隨機選取兩個整數k2,ρ2,并分別通過公式(8),(9)計算中間變量R2,零知識證明參與方P2將發送給參與方P1;
R2=[k2]G (8),
其中,用于證明k2是關于R2的一個橢圓曲線離散對數;
3.3)參與方P1驗證零知識證明是否合法,驗證通過則使用公式(10)~(15)分別計算中間變量R,r,δ1,u1,v1,w1;參與方P1將(u1,v1,w1)發送給參與方P2;
計算公式如下:
r=e+rx mod n (11)
u1=x1-a1 mod n (13)
v1=δ1-a1 mod n (14),w1=ρ1-b1 mod n (15)
其中,e為密碼雜湊函數h(·)作用于消息m的輸出,即e=h(m);rx為R的橫坐標,r為SM2簽名的第一部分;
3.4)參與方P2驗證零知識證明是否合法,驗證通過則使用公式(10)~(11),(16)~(19)分別計算中間變量R,r,δ2,u2,v2,w2;參與方P2將(u2,v2,w2)發送給參與方P1;
計算公式如下:
u2=x2-a2 mod n (17)
v2=δ2-a2 mod n (18),w2=ρ2-b2 mod n (19)
3.5)參與方P1使用公式(20)~(24)分別計算中間變量u,v,w,α1,β1;參與方P1將(α1,β1)發送給參與方P2;
計算公式如下:
u=u1+u2 mod n (20),v=v1+v2 mod n (21)
w=w1+w2 mod n (22),
α1=x1w+ρ1u+z1-uw mod n (23)
β1=δ1w+ρ1v+z1-vw mod n (24)
3.6)參與方P2使用公式(20)~(22),(25)~(26)分別計算中間變量u,v,w,α2,β2;參與方P2將(α2,β2)發送給參與方P1;
計算公式如下:
α2=x2w+ρ2u+z2 mod n (25)
β2=δ2w+ρ2v+z2 mod n (26)
3.7)參與方P1通過公式(27)計算s′,為了保證最終結果的一致性,參與方P1選擇s′和n-s′中的較小值作為SM2簽名的第二部分,即s=min{s′,n-s′};
s′=(α1+α2)-1(β1+β2)-r mod n (27)
3.8)參與方P2通過公式(27)計算s′;為了保證最終結果的一致性,參與方P2選擇s′和n-s′中的較小值作為SM2簽名的第二部分,即s=min{s′,n-s′};
3.9)參與方P1更新a1,b1,z1,即分別令a1=k1,b1=ρ1,z1=α1,更新后的a1,b1,z1參與下一次的簽名過程;
3.10)參與方P2更新a2,b2,z2,即分別令a2=k2,b2=ρ2,z2=α2,更新后的a2,b2,z2參與下一次的簽名過程。
2.根據權利要求1所述的輕量級SM2兩方協同生成數字簽名的方法,其特征在于,所述步驟2)和步驟3)中,在參與方P1,P2的通信過程中,各參與方使用零知識證明來證明發送的數據是來自發送方。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢大學,未經武漢大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910147366.4/1.html,轉載請聲明來源鉆瓜專利網。





