【技术实现步骤摘要】
基于ECDSA算法协同生成签名的方法、装置和数据处理系统
本公开的实施例涉及加密
,尤其涉及基于ECDSA算法的签名生成方法、装置以及数据处理系统。
技术介绍
消息的数字签名是依赖于某些只有签名者知道的秘密的数,此外,该数又依赖于被签名的消息的内容。签名应当是可验证的。如果对一方是否对文档进行了签名出现争议(由于签名者试图否认其确实创建的签名,或者由于欺骗性声明而导致),无偏的第三方应当能公正地解决这件事,而不需要访问签名者的秘密信息(例如,私有密钥)。数字签名在信息安全中具有很多应用,特别地,它们被使用在密码方案中。一些应用包括认证、数据完整性和不可否认性。数字签名的一种特别重要的应用是验证大型网络中的公共密钥。对于可信的第三方,验证是一种将用户的身份与公共密钥绑定的方式,使得在以后某个时间,其它实体可以对公共密钥进行认证而无需来自可信第三方的帮助。被称为数字签名算法(DSA)的密码方案基于公知的且经常讨论的离散对数问题的难解决性。DSA由美国国家标准和技术学会(NIST)于1991年提出并已经成为美国联邦信息处理标准(FIPS186),称为数字签名标准(DSS)。该算法是公知的ElGamal签名方案的变型,并且可以被分类为具有附录的数字签名(即一种依赖于密码散列(hash)函数而不是定制冗余函数的数字签名)。椭圆曲线数字签名算法(ECDSA)是一种可以应用于椭圆曲线密码系统且具有类似于DSA的属性的签名方案。它通常被认为是最广泛标准化的基于椭圆曲线的签名方案,出现在ANSIX9.62,FIPS186-2,IEEE1363-2000和ISO/IEC ...
【技术保护点】
一种基于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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。