当前位置: 首页 > 专利查询>陈彦丰专利>正文

基于ECDSA算法协同生成签名的方法、装置和数据处理系统制造方法及图纸

技术编号:17709503 阅读:47 留言:0更新日期:2018-04-14 21:09
本公开实施例涉及一种基于ECDSA算法的签名生成方法、装置以及数据处理系统,本公开的实施例中,在公钥生成过程中,在两个电子设备处分别基于不同的参数组生成部分的公钥,并将两个电子设备所生成的部分的公钥联合得到完整的公钥,这样私钥不会任意一个电子设备处完整的出现,这样即使攻破了一个电子设备,也难以得到完整的私钥,这样就能够提升私钥被窃取的难度,降低私钥被窃取的风险。并且在签名生成过程中,分别在两个电子设备处,基于所述不同的参数组进行加密,能够完成签名运算的过程。

【技术实现步骤摘要】
基于ECDSA算法协同生成签名的方法、装置和数据处理系统
本公开的实施例涉及加密
,尤其涉及基于ECDSA算法的签名生成方法、装置以及数据处理系统。
技术介绍
消息的数字签名是依赖于某些只有签名者知道的秘密的数,此外,该数又依赖于被签名的消息的内容。签名应当是可验证的。如果对一方是否对文档进行了签名出现争议(由于签名者试图否认其确实创建的签名,或者由于欺骗性声明而导致),无偏的第三方应当能公正地解决这件事,而不需要访问签名者的秘密信息(例如,私有密钥)。数字签名在信息安全中具有很多应用,特别地,它们被使用在密码方案中。一些应用包括认证、数据完整性和不可否认性。数字签名的一种特别重要的应用是验证大型网络中的公共密钥。对于可信的第三方,验证是一种将用户的身份与公共密钥绑定的方式,使得在以后某个时间,其它实体可以对公共密钥进行认证而无需来自可信第三方的帮助。被称为数字签名算法(DSA)的密码方案基于公知的且经常讨论的离散对数问题的难解决性。DSA由美国国家标准和技术学会(NIST)于1991年提出并已经成为美国联邦信息处理标准(FIPS186),称为数字签名标准(DSS)。该算法是公知的ElGamal签名方案的变型,并且可以被分类为具有附录的数字签名(即一种依赖于密码散列(hash)函数而不是定制冗余函数的数字签名)。椭圆曲线数字签名算法(ECDSA)是一种可以应用于椭圆曲线密码系统且具有类似于DSA的属性的签名方案。它通常被认为是最广泛标准化的基于椭圆曲线的签名方案,出现在ANSIX9.62,FIPS186-2,IEEE1363-2000和ISO/IEC15946-2标准以及多个草案标准中。ECDSA签名生成过程对若干域参数、私有密钥d和消息m进行运算。输出是签名(r,s),其中签名分量r和s是整数,并且如下进行处理。1、选择随机整数k∈R[1,n-1],n是域参数之一。2、计算kG=(x1,y1)并且将x1转换为整数x1,其中G是在椭圆曲线E上的点并且是域参数之一。3、计算r=x1modn,其中如果r=0,则返回步骤1。4、计算e=H(m),其中H代表密码散列(hash)函数,其输出具有不超过n的比特长度(如果不满足该条件,则可以截断H的输出)。5、计算s=k-1(e+αr)modn,其中α是签名者的长期私有密钥。如果s=0,则返回步骤1。6、将(r,s)对作为消息m的ECDSA签名输出。ECDSA签名验证过程对若干域参数、长期公共密钥Q(其中Q=αP)、消息m以及以上导出的签名(r,s)进行运算。ECDSA签名验证输出对签名的拒绝或接受,并且如下进行处理。1、验证r和s是区间[1,n-1]中的整数。如果验证失败,则返回拒绝。2、计算e=H(m)3、计算w=s-1modn4、计算u1=ewmodn以及u2=rwmodn5、计算R=u1P+u2Q=s-1(eP+rQ)(根据以上3和4)6、如果R=∞,则拒绝该签名7、将R的x坐标x1转换为整数x1;计算v=x1modn8、如果v=r,则接受该签名,否则拒绝该签名。在对相关现有技术进行研究的过程中,本公开实施例的专利技术人发现,私钥的持有方较为容易被攻破,从而导致私钥很容易被窃取,进而导致整个加密系统失效。
技术实现思路
本公开至少一个实施例的主要目的在于提高私钥的被窃取的难度,降低私钥被窃取的风险。第一方面,本公开实施例提供了一种基于ECDSA算法协同生成签名的方法,包括:公钥生成过程和签名生成过程;其中公钥生成过程包括:在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同;在第二电子设备处,将所生成的部分公钥发送给第一电子设备;在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P;在第一电子设备处,将完整公钥P输出;或者在第一电子设备处,将完整公钥P发送给第二电子设备;并在第二电子设备处,将完整公钥P输出;签名生成过程包括:在第二电子设备处,计算待签名信息的摘要的哈希值;并将得到的哈希值发送到第一电子设备;在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,并将计算得到的部分签名发送给第二电子设备;在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,并发送给第一电子设备;在第一电子设备处,根据签名分量得到完整签名;在第一电子设备处,将完整签名输出;或者在第一电子设备处,将完整签名发送给第二电子设备;并在第二电子设备处,将完整签名输出。第二方面,本公开提供了一种基于ECDSA算法协同生成签名的装置,包括:公钥生成模块和签名生成模块;其中公钥生成模块,用于在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同;在第二电子设备处,将所生成的部分公钥发送给第一电子设备;在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P;在第一电子设备处,将完整公钥P输出;或者在第一电子设备处,将完整公钥P发送给第二电子设备;并在第二电子设备处,将完整公钥P输出;签名生成模块用于:在第二电子设备处,计算待签名信息的摘要的哈希值;并将得到的哈希值发送到第一电子设备;在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,并将计算得到的部分签名发送给第二电子设备;在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,并发送给第一电子设备;在第一电子设备处,根据签名分量得到完整签名;在第一电子设备处,将完整签名输出;或者在第一电子设备处,将完整签名发送给第二电子设备;并在第二电子设备处,将完整签名输出。第三方面,本公开实施例提供了一种计算机存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行第一方面所述的方法中的步骤。第四方面,本公开实施例提供了一种数据处理系统,包括第一电子设备和第二电子设备;所述第一电子设备与所述第二电子设备通信连接;每一个电子设备均包括:处理器、存储器和通信模组;存储器和通信模组均耦合至所述处理器;所述存储器中存储有计算机程序,所述处理器用于执行所述存储器中存储的计算机程序;所述数据处理系统被配置为执行第一方面所述的方法。本公开至少一个实施例中,在公钥生成过程中,在两个电子设备处分别基于不同的参数组生成部分的公钥,并将两个电子设备所生成的部分的公钥联合得到完整的公钥,这样私钥不会任意一个电子设备处完整的出现,这样即使攻破了一个电子设备,也难以得到完整的私钥,这样就能够提升私钥被窃取的难度,降低私钥被窃取的风险。并且在签名生成过程中,分别在两个电子设备处,基于所述不同的参数组进行加密,能够完成签名运算的过程。附图说明图1示出了本公开一实施例提供的签名系统的结构示意图;图2示出了本公开的一个实施例提供的基于ECDSA算法的签名生成方法的主要流程;图3为示出了本公开一实施例提供的基于ECDSA算法协同生成签名的装置的结构示意图。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。图1示出了本公开一实施例提供的签名系统的结本文档来自技高网
...
基于ECDSA算法协同生成签名的方法、装置和数据处理系统

【技术保护点】
一种基于ECDSA算法协同生成签名的方法,其特征在于,包括:公钥生成过程和签名生成过程;其中公钥生成过程包括:在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同;在第二电子设备处,将所生成的部分公钥发送给第一电子设备;在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P;在第一电子设备处,将完整公钥P输出;或者在第一电子设备处,将完整公钥P发送给第二电子设备;并在第二电子设备处,将完整公钥P输出;签名生成过程包括:在第二电子设备处,计算待签名信息的摘要的哈希值;并将得到的哈希值发送到第一电子设备;在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,并将计算得到的部分签名发送给第二电子设备;在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,并发送给第一电子设备;在第一电子设备处,根据签名分量得到完整签名;在第一电子设备处,将完整签名输出;或者在第一电子设备处,将完整签名发送给第二电子设备;并在第二电子设备处,将完整签名输出。

【技术特征摘要】
1.一种基于ECDSA算法协同生成签名的方法,其特征在于,包括:公钥生成过程和签名生成过程;其中公钥生成过程包括:在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同;在第二电子设备处,将所生成的部分公钥发送给第一电子设备;在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P;在第一电子设备处,将完整公钥P输出;或者在第一电子设备处,将完整公钥P发送给第二电子设备;并在第二电子设备处,将完整公钥P输出;签名生成过程包括:在第二电子设备处,计算待签名信息的摘要的哈希值;并将得到的哈希值发送到第一电子设备;在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,并将计算得到的部分签名发送给第二电子设备;在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,并发送给第一电子设备;在第一电子设备处,根据签名分量得到完整签名;在第一电子设备处,将完整签名输出;或者在第一电子设备处,将完整签名发送给第二电子设备;并在第二电子设备处,将完整签名输出。2.根据权利要求1所述的方法,其特征在于,所述第一参数组包括随机数K1,K2,E(Fq)、G和n,q是大素数;所述第二参数组包括随机数K3,K4,E(Fq)、G和n;其中,E(Fq)是定义在有限域Fq上的椭圆曲线,G=(xG,yG)是E上n阶的基点;在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同,包括:在第一电子设备处,计算K1在Fq上的逆元K1-1modn,并计算P1=K1-1[*]G,将计算结果发送给第二电子设备;在第二电子设备处,计算K3在Fq上的逆元K3-1modn,并计算(x,y)=K3-1[*]P1,将计算结果发送给所述第一电子设备;在第一电子设备处,计算部分公钥P2=x-1K2[*]P1;在第二电子设备处,计算部分公钥P3=x-1K3-1K4[*]P1,并计算P4=x-1K3-1K4[*]G,所述在第二电子设备处,将所生成的部分公钥发送给第一电子设备,包括:在第二电子设备处,将部分公钥P3以及P4发送给所述第一电子设备;所述在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P,包括:在第一电子设备处,判断是否有P3=K1-1[*]P4,在判断为是时,计算P=P2[+]P3,将计算结果P作为完整公钥。3.根据权利要求2所述的方法,其特征在于,所述签名生成过程还包括:将部分公钥P2以及完整公钥P发送给所述第二电子设备;所述方法还包括:在第二电子设备处,根据接收到的部分公钥P2以及所生成的部分公钥P3验证接收到的完整公钥P是否正确,并将验证结果发送给第一电子设备;所述将计算结果P作为完整公钥,包括:仅在验证结果指示完整公钥P正确时,将计算结果P作为完整公钥。4.根据权利要求2所述的签名方法,其特征在于,所述在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,包括:按照如下公式计算部分签名S1:S1=(K1e+K2)modn;所述在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,包括:按照如下公式计算签名分量S:S=(K3S1+K4)modn;所述在第一电子设备处,根据签名分量得到完整签名,包括:使用公钥P验证(x,S)是否为ECDSA的有效签名,如是,将(x,S)作为完整签名。5.根据权利要求1所述的方法,其特征在于,所述在第二电子设备处,计算待签名信息的摘要的哈希值,包括:利用SHA256算法计算待签名信息的摘要的哈希值。6.根据权利要求1所述的方法,其特征在于,所述待签名信息为交易信息。7.根据权利要求6所述的方法,其特征在于,所述交易信息为虚拟货币交易信息。8.根据权利要求6所述的方法,其特征在于,所述虚拟货币为比特币或者以太币。9.一种基于ECDSA算法协同生成签名的装置,其特征在于,包括:公钥生成模块和签名生成模块;其中公钥生成模块,用于在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设...

【专利技术属性】
技术研发人员:闵波
申请(专利权)人:陈彦丰拓链上海科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1