[发明专利]一种轻量级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′=(α12)-112)-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的通信过程中,各参与方使用零知识证明来证明发送的数据是来自发送方。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910147366.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top