[发明专利]一种基于ECDSA算法的两方协同签名方法和装置在审
申请号: | 202110955030.8 | 申请日: | 2021-08-19 |
公开(公告)号: | CN113872767A | 公开(公告)日: | 2021-12-31 |
发明(设计)人: | 王慧;高翔;王幼君 | 申请(专利权)人: | 北京握奇数据股份有限公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32 |
代理公司: | 北京天悦专利代理事务所(普通合伙) 11311 | 代理人: | 田明;任晓航 |
地址: | 100102 北京市朝阳区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 ecdsa 算法 协同 签名 方法 装置 | ||
1.一种基于ECDSA算法的两方协同签名方法,包括公钥生成阶段和协同签名阶段,其中所述公钥生成阶段包括以下步骤:
S1、第一通信方生成自身的子私钥,基于自身的子私钥计算出部分公钥,并将所述部分公钥发送给第二通信方;
S2、第二通信方生成自身的子私钥,基于自身的子私钥和接收到的所述部分公钥,计算出完整公钥并公开;
所述协同签名阶段包括以下步骤:
S3、第一通信方计算待签名消息的消息摘要,基于自身的子私钥生成第一部分签名,并将所述消息摘要和所述第一部分签名发送给第二通信方;
S4、第二通信方根据接收到的所述消息摘要、所述第一部分签名和自身的子私钥计算出第二部分签名,并将所述第二部分签名发送给第一通信方;
S5、第一通信方根据子私钥和接收到的所述第二部分签名生成完整签名并输出。
2.根据权利要求1所述的基于ECDSA算法的两方协同签名方法,其特征在于,所述完整公钥的计算方法具体为:
第一通信方产生随机数d1∈[1,n-1],作为自身的子私钥,根据子私钥d1计算部分公钥P1=d1[*]G,其中,G为ECDSA算法椭圆曲线的基点,n为基点的阶数;
第二通信方产生随机数d2∈[1,n-1]和d3∈[1,n-1],作为自身的子私钥,根据子私钥d2、d3和接收到的部分公钥P1计算完整公钥P=d2[*]P1+d3[*]G;
若P=O,则重新生成随机数,否则将P作为完整公钥公开,其中O为所述椭圆曲线的无穷远点。
3.根据权利要求2所述的基于ECDSA算法的两方协同签名方法,其特征在于,步骤S3中所述计算待签名消息的消息摘要和第一部分签名的计算方法分别为:
第一通信方对于待签名的消息M,计算消息摘要e=H(M),输出具有不超过n的比特长度,其中H()表示预定的密码杂凑函数;
第一通信方产生随机数k1∈[1,n-1],根据k1计算第一部分签名Q1=k1[*]G。
4.根据权利要求3所述的基于ECDSA算法的两方协同签名方法,其特征在于,步骤S4中所述第二部分签名的计算方法具体为:
第二通信方产生随机数k2∈[1,n-1],根据k2和接收到的所述第一部分签名Q1计算Q2=k2[*]Q1=(x1,y1),r=x1mod n;
若r=0,则重新生成随机数;
若r≠0,则第二通信方计算s1=k2-1d2r mod n,s2=k2-1(e+d3r)mod n,得到第二部分签名r、s1、s2。
5.根据权利要求4所述的基于ECDSA算法的两方协同签名方法,其特征在于,步骤S5中生成完整签名的步骤具体为:
第一通信方根据子私钥d1和接收到的所述第二部分签名计算签名分量s=k1-1(d1s1+s2)mod n;
若s=0,则重新开始签名流程,否则将(r,s)作为完整签名输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京握奇数据股份有限公司,未经北京握奇数据股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110955030.8/1.html,转载请声明来源钻瓜专利网。