[发明专利]一种轻量级SM2两方协同生成数字签名的方法有效
申请号: | 201910147366.4 | 申请日: | 2019-02-27 |
公开(公告)号: | CN110011803B | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 何德彪;张佳妮;冯琦;王婧;陈泌文 | 申请(专利权)人: | 武汉大学 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/08 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 唐万荣;李丹 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: |
本发明公开了一种轻量级SM2两方协同生成数字签名的方法,参与两方为P |
||
搜索关键词: | 一种 轻量级 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;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+rxmod n (11)
u1=x1‑a1mod n (13)v1=δ1‑a1mod n (14),w1=ρ1‑b1mod 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;计算公式如下:
r=e+rxmod n (11)
u2=x2‑a2mod n (17)v2=δ2‑a2mod n (18),w2=ρ2‑b2mod n (19)3.5)参与方P1使用公式(20)~(24)分别计算中间变量u,v,w,α1,β1;参与方P1将(α1,β1)发送给参与方P2;计算公式如下:u=u1+u2mod n (20),v=v1+v2mod n (21)w=w1+w2mod 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;计算公式如下:u=u1+u2mod n (20),v=v1+v2mod n (21)w=w1+w2mod n (22),α2=x2w+ρ2u+z2mod n (25)β2=δ2w+ρ2v+z2mod 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′};s′=(α1+α2)‑1(β1+β2)‑r mod n (27)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参与下一次的签名过程。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910147366.4/,转载请声明来源钻瓜专利网。