[发明专利]一种主动安全的SM2数字签名两方生成方法有效
申请号: | 201910039524.4 | 申请日: | 2019-01-16 |
公开(公告)号: | CN111447065B | 公开(公告)日: | 2021-03-09 |
发明(设计)人: | 张振峰;唐国锋 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/30;H04L9/08 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 司立彬 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 主动 安全 sm2 数字签名 生成 方法 | ||
1.一种主动安全的SM2数字签名两方生成方法,其步骤包括:
1)参与方P1生成部分私钥d1并存储,参与方P2生成部分私钥d2并存储,然后参与方P1、参与方P2通过密钥交换的方式产生用户公钥Y;其中,参与方P1为客户端,参与方P2为服务器端;其中生成用户公钥Y的方法为:11)参与方P1在[1,n-1]之间选择一个随机数d1,计算部分公钥Y1=d1·G;12)参与方P2在[1,n-1]之间选择一个随机数d2,计算部分公钥Y2=d2·G;13)参与方P1将Y1发给参与方P2;14)参与方P2检查如果Y1=O,则终止;15)参与方P2计算Y=d2·Y1-G,如果Y=O,则参与方P2返回到步骤12);否则,将Y作为用户公钥输出;16)参与方P2将Y2发给参与方P1;17)参与方P1计算Y′=d1·Y2-G,如果Y′≠Y或者Y′=O,则终止;否则,参与方P1储存Y作为SM2签名算法的用户公钥;
2)参与方P1随机产生临时私钥k1,计算临时公钥R1=k1·G,并将R1发给参与方P2;G表示椭圆曲线E上n阶的基点;
3)参与方P2随机产生临时私钥k21、k22,计算临时公钥R21=k21·G,R22=k22·G,并将R21和R22发给参与方P1;
4)参与方P1和参与方P2分别根据各自的临时私钥计算出一个共同的证据值R;其中计算所述证据值R的方法为:31)参与方P1,P2分别计算出一相同的杂凑值Z;32)参与方P1在[1,n-1]之间选择一个k1作为临时私钥,并计算临时公钥R1=k1·G;并将R1发给参与方P2;33)参与方P2在[1,n-1]之间选择随机数k21,k22作为临时私钥,计算临时公钥R21=k21·G,R22=k22·G;34)参与方P2计算(x0,y0)=R=(k21+x·k22)·R1+R22,其中x=h(R1||R21||R22),并计算r=x0+h(Z||m)mod n,h是值域为有限域的哈希函数;35)参与方P2检查R、r的值,如果R=O或者r=0,则返回步骤33);否则,将R21,R22发给P1;36)参与方P1计算x=(R1||R21||R22),(x0,y0)=R=k1·(R21+x·R22)+R22,r=x0+h(Z||m)mod n;37)参与方P1检查R、r的值,如果R=O或者r=0,则终止;
5)参与方P2根据临时私钥k21,k22和部分私钥d2,计算待签名消息m的部分签名s1和s2,并将s1,s2发给参与方P1;其中计算待签名消息m的部分签名s1和s2的方法为:如果s1=0或者s2=0,则重新执行步骤33)~35);
6)参与方P1根据部分签名s1,s2和部分私钥d1以及部分临时私钥k1,计算将(r,s)作为该消息m的完整签名并验证其有效性,如果验证成功,则输出该完整签名。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910039524.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多维的网络安全预测方法
- 下一篇:一种数据可视化的实现方法和装置