[发明专利]一种SM2数字签名生成方法及系统有效

专利信息
申请号: 201710814802.X 申请日: 2017-09-05
公开(公告)号: CN107634836B 公开(公告)日: 2020-09-08
发明(设计)人: 何德彪;张语荻;孙金龙 申请(专利权)人: 何德彪
主分类号: H04L9/32 分类号: H04L9/32;H04L9/30;H04L9/00;H04L29/06
代理公司: 深圳市世纪恒程知识产权代理事务所 44287 代理人: 胡海国
地址: 430070 湖*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 sm2 数字签名 生成 方法 系统
【权利要求书】:

1.一种SM2数字签名生成方法,其特征在于,所述方法包括:

第一终端从集合{1,2,…,n-1}中选取两个整数x1和k1,并将所述x1作为第一部分私钥,将所述k1作为第一随机数,其中,所述n为SM2密码运算所使用的椭圆曲线点群的阶;

第二终端从所述集合{1,2,…,n-1}中选取两个整数x2和k2,将所述x2作为第二部分私钥,将所述k2作为第二随机数;

所述第一终端根据所述第一部分私钥x1计算出第一部分公钥Q1,并将所述第一部分公钥Q1发送至所述第二终端;

所述第二终端根据所述第二部分私钥x2计算出第二部分公钥Q2,并将所述第二部分公钥Q2发送至所述第一终端;

所述第一终端接收所述第二终端发送的第二部分公钥Q2,并根据所述第二部分公钥Q2,获得目标公钥Q;

所述第二终端接收所述第一终端发送的第一部分公钥Q1,并根据所述第一部分公钥Q1,获得目标公钥Q;

所述第一终端根据所述第一随机数k1获得第一临时公钥R1和密文Ckey,并将所述第一临时公钥R1和所述密文Ckey发送至所述第二终端;

所述第二终端根据所述第二随机数k2计算出第二临时公钥R2,根据接收到的所述第一临时公钥R1和所述密文Ckey计算出待解密密文C,并将所述第二临时公钥R2以及所述待解密密文C发送至所述第一终端;

所述第一终端根据所述第二临时公钥R2计算出第一部分签名r,并对接收到的所述待解密密文C进行解密,根据解密结果计算出第二部分签名s;

所述第一终端根据所述第一部分签名r及所述第二部分签名s生成目标数字签名,并通过所述目标公钥Q对所述目标数字签名进行验证,在验证成功后,输出所述目标数字签名;

其中,

所述第一终端根据所述第一部分私钥x1计算出第一部分公钥Q1,并将所述第一部分公钥Q1发送至所述第二终端,具体包括:

所述第一终端根据所述第一部分私钥x1,通过公式(1)计算出所述第一部分公钥Q1

Q1=x1·G 公式(1)

将所述第一部分公钥Q1发送至第二终端,所述“·”为乘号,所述G为SM2密码运算所使用的椭圆曲线点群的基点;

相应地,所述第二终端根据所述第二部分私钥x2计算出第二部分公钥Q2,并将所述第二部分公钥Q2发送至所述第一终端,具体包括:

所述第二终端根据所述第二部分私钥x2,通过公式(2)计算出所述第二部分公钥Q2

Q2=x2·G 公式(2)

将所述第二部分公钥Q2发送至所述第一终端

所述第一终端接收所述第二终端发送的第二部分公钥Q2,并根据所述第二部分公钥Q2,获得目标公钥Q,具体包括:

所述第一终端接收所述第二终端发送的所述第二部分公钥Q2

根据所述第一部分私钥x1及所述第二部分公钥Q2,通过公式(3)计算出所述目标公钥Q,并对所述第一部分私钥x1和所述目标公钥Q进行保存;

Q=x1·Q2-G 公式(3)

相应地,所述第二终端接收所述第一终端发送的第一部分公钥Q1,并根据所述第一部分公钥Q1,获得目标公钥Q,具体包括:

所述第二终端接收所述第一终端发送的第一部分公钥Q1

根据所述第二部分私钥x2及所述第一部分公钥Q1,通过公式(4)计算出所述目标公钥Q;

Q=x2·Q1-G 公式(4)

对所述第二部分私钥x2和所述目标公钥Q进行保存

所述第一终端根据所述第一随机数k1获得第一临时公钥R1和密文Ckey,并将所述第一临时公钥R1和所述密文Ckey发送至所述第二终端,具体包括:

所述第一终端根据所述第一随机数k1,通过公式(5)计算出所述第一临时公钥R1

R1=k1·G 公式(5)

采用同态加密算法对所述第一随机数k1进行加密,获得密文Ckey,将所述第一临时公钥R1和所述密文Ckey发送至所述第二终端;

其中,所述Ckey=Encpk(k1),下标pk表示所述第一终端通过同态加密算法生成的公钥pk,所述Encpk表示通过所述公钥pk进行加密运算所述第二终端根据所述第二随机数k2计算出第二临时公钥R2,根据接收到的所述第一临时公钥R1和所述密文Ckey计算出待解密密文C,并将所述第二临时公钥R2以及所述待解密密文C发送至所述第一终端,具体包括:

所述第二终端根据所述第二随机数k2,通过公式(6)计算出第二临时公钥R2

R2=k2·G 公式(6)

根据所述第二随机数k2及所述第一临时公钥R1,通过公式(7)计算出临时目标公钥R;

R=k2·R1 公式(7)

获得所述临时目标公钥R对应的坐标(rx,ry),并通过公式(8)计算出所述第一部分签名r;

r=rx+e mod n 公式(8)

其中,所述mod n为模n运算,所述e为待签名消息对应的哈希值;

根据公式(9)计算出中间变量γ,

其中,所述为所述第二部分私钥x2的模n乘法逆;

根据所述中间变量γ和所述密文Ckey,通过公式(10)计算出第二密文C2

其中,所述γ⊙Ckey为所述密文Ckey与所述中间变量γ进行乘运算;

选取满足预设条件的整数ρ,通过公式(11)计算出第一密文C1

根据所述第一密文C1和所述第二密文C2,通过公式(12)计算出所述待解密密文C;

其中,所述为所述第一密文C1与所述第二密文C2进行加运算;

将所述第二临时公钥R2以及所述待解密密文C发送至所述第一终端

所述第一终端根据所述第二临时公钥R2计算出第一部分签名r,并对接收到的所述待解密密文C进行解密,根据解密结果计算出第二部分签名s,具体包括:

所述第一终端根据所述第二临时公钥R2,通过公式(13)计算出所述临时目标公钥R;

R=k1·R2 公式(13)

获得所述临时目标公钥R对应的坐标(rx,ry),并通过公式(14)计算出所述第一部分签名r

r=rx+e mod n 公式(14)

根据所述第一部分签名r,通过公式(15)对所述待解密密文C进行解密,获得解密结果S′;

其中,下标sk表示所述第一终端通过同态加密算法生成的私钥sk,所述Decsk表示通过所述私钥sk进行解密运算,所述解密结果

根据所述解密结果s′,通过公式(16)计算出所述第二部分签名s;

其中,所述为所述第一部分私钥x1的模n乘法逆。

2.一种SM2数字签名生成系统,其特征在于,所述系统包括:第一终端和第二终端;

所述第一终端,用于从集合{1,2,…,n-1}中选取两个整数x1和k1,并将所述x1作为第一部分私钥,将所述k1作为第一随机数,其中,所述n为SM2密码运算所使用的椭圆曲线点群的阶;

所述第二终端,用于从所述集合{1,2,…,n-1}中选取两个整数x2和k2,将所述x2作为第二部分私钥,将所述k2作为第二随机数;

所述第一终端,还用于根据所述第一部分私钥x1计算出第一部分公钥Q1,并将所述第一部分公钥Q1发送至所述第二终端;

所述第二终端,还用于根据所述第二部分私钥x2计算出第二部分公钥Q2,并将所述第二部分公钥Q2发送至所述第一终端;

所述第一终端,还用于接收所述第二终端发送的第二部分公钥Q2,并根据所述第二部分公钥Q2,获得目标公钥Q;

所述第二终端,还用于接收所述第一终端发送的第一部分公钥Q1,并根据所述第一部分公钥Q1,获得目标公钥Q;

所述第一终端,还用于根据所述第一随机数k1获得第一临时公钥R1和密文Ckey,并将所述第一临时公钥R1和所述密文Ckey发送至所述第二终端;

所述第二终端,还用于根据所述第二随机数k2计算出第二临时公钥R2,根据接收到的所述第一临时公钥R1和所述密文Ckey计算出待解密密文C,并将所述第二临时公钥R2以及所述待解密密文C发送至所述第一终端;

所述第一终端,还用于根据所述第二临时公钥R2计算出第一部分签名r,并对接收到的所述待解密密文C进行解密,根据解密结果计算出第二部分签名s;

所述第一终端,还用于根据所述第一部分签名r及所述第二部分签名s生成目标数字签名,并通过所述目标公钥Q对所述目标数字签名进行验证,在验证成功后,输出所述目标数字签名所述第一终端,还用于根据所述第一部分私钥x1,通过公式(1)计算出所述第一部分公钥Q1

Q1=x1·G 公式(1)

所述第一终端,还用于将所述第一部分公钥Q1发送至第二终端,所述“·”为乘号,所述G为SM2密码运算所使用的椭圆曲线点群的基点;

相应地,所述第二终端,还用于根据所述第二部分私钥x2,通过公式(2)计算出所述第二部分公钥Q2

Q2=x2·G 公式(2)

所述第二终端,还用于将所述第二部分公钥Q2发送至所述第一终端

所述第一终端,还用于接收所述第二终端发送的所述第二部分公钥Q2

所述第一终端,还用于根据所述第一部分私钥x1及所述第二部分公钥Q2,通过公式(3)计算出所述目标公钥Q,并对所述第一部分私钥x1和所述目标公钥Q进行保存;

Q=x1·Q2-G 公式(3)

相应地,所述第二终端,还用于接收所述第一终端发送的第一部分公钥Q1

所述第二终端,还用于根据所述第二部分私钥x2及所述第一部分公钥Q1,通过公式(4)计算出所述目标公钥Q;

Q=x2·Q1-G 公式(4)

所述第二终端,还用于对所述第二部分私钥x2和所述目标公钥Q进行保存;

所述第一终端,还用于根据所述第一随机数k1,通过公式(5)计算出所述第一临时公钥R1

R1=k1·G 公式(5)

所述第一终端,还用于采用同态加密算法对所述第一随机数k1进行加密获得密文Ckey,将所述第一临时公钥R1和所述密文Ckey发送至所述第二终端;其中,所述Ckey=Encpk(k1),下标pk表示所述第一终端通过同态加密算法生成的公钥pk,所述Encpk表示通过所述公钥pk进行加密运算

所述第二终端,还用于根据所述第二随机数k2,通过公式(6)计算出第二临时公钥R2

R2=k2·G 公式(6)

所述第二终端,还用于根据所述第二随机数k2及所述第一临时公钥R1,通过公式(7)计算出临时目标公钥R;

R=k2·R1 公式(7)

所述第二终端,还用于获得所述临时目标公钥R对应的坐标(rx,ry),并通过公式(8)计算出所述第一部分签名r;

r=rx+e mod n 公式(8)

其中,所述mod n为模n运算,所述e为待签名消息对应的哈希值;

所述第二终端,还用于根据公式(9)计算出中间变量γ,

其中,所述为所述第二部分私钥x2的模n乘法逆;

所述第二终端,还用于根据所述中间变量γ和所述密文Ckey,通过公式(10)计算出第二密文C2

其中,所述γ⊙Ckey为所述密文Ckey与所述中间变量γ进行乘运算;

所述第二终端,还用于选取满足预设条件的整数ρ,通过公式(11)计算出第一密文C1

所述第二终端,还用于根据所述第一密文C1和所述第二密文C2,通过公式(12)计算出所述待解密密文C;

其中,所述为所述第一密文C1与所述第二密文C2进行加运算;

所述第二终端,还用于将所述第二临时公钥R2以及所述待解密密文C发送至所述第一终端;

所述第一终端,还用于根据所述第二临时公钥R2,通过公式(13)计算出所述临时目标公钥R;

R=k1·R2 公式(13)

所述第一终端,还用于获得所述临时目标公钥R对应的坐标(rx,ry),并通过公式(14)计算出所述第一部分签名r

r=rx+e mod n 公式(14)

所述第一终端,还用于根据所述第一部分签名r,通过公式(15)对所述待解密密文C进行解密,获得解密结果S′;

其中,下标sk表示所述第一终端通过同态加密算法生成的私钥sk,所述Decsk表示通过所述私钥sk进行解密运算,所述解密结果

所述第一终端,还用于根据所述解密结果s′,通过公式(16)计算出所述第二部分签名s;

其中,所述为所述第一部分私钥x1的模n乘法逆。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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