CN107911217B - 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 - Google Patents

基于ecdsa算法协同生成签名的方法、装置和数据处理系统 Download PDF

Info

Publication number
CN107911217B
CN107911217B CN201711037815.7A CN201711037815A CN107911217B CN 107911217 B CN107911217 B CN 107911217B CN 201711037815 A CN201711037815 A CN 201711037815A CN 107911217 B CN107911217 B CN 107911217B
Authority
CN
China
Prior art keywords
electronic device
public key
signature
partial
sending
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711037815.7A
Other languages
English (en)
Other versions
CN107911217A (zh
Inventor
闵波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tuolian Shanghai Technology Co ltd
Original Assignee
Tuolian Shanghai Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tuolian Shanghai Technology Co ltd filed Critical Tuolian Shanghai Technology Co ltd
Priority to CN201711037815.7A priority Critical patent/CN107911217B/zh
Publication of CN107911217A publication Critical patent/CN107911217A/zh
Application granted granted Critical
Publication of CN107911217B publication Critical patent/CN107911217B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

基于ECDSA算法协同生成签名的方法、装置和数据处理系统
技术领域
本公开的实施例涉及加密技术领域,尤其涉及基于ECDSA算法的签名生成方法、装置以及数据处理系统。
背景技术
消息的数字签名是依赖于某些只有签名者知道的秘密的数,此外,该数又依赖于被签名的消息的内容。签名应当是可验证的。如果对一方是否对文档进行了签名出现争议(由于签名者试图否认其确实创建的签名,或者由于欺骗性声明而导致),无偏的第三方应当能公正地解决这件事,而不需要访问签名者的秘密信息(例如,私有密钥)。
数字签名在信息安全中具有很多应用,特别地,它们被使用在密码方案中。一些应用包括认证、数据完整性和不可否认性。数字签名的一种特别重要的应用是验证大型网络中的公共密钥。对于可信的第三方,验证是一种将用户的身份与公共密钥绑定的方式,使得在以后某个时间,其它实体可以对公共密钥进行认证而无需来自可信第三方的帮助。
被称为数字签名算法(DSA)的密码方案基于公知的且经常讨论的离散对数问题的难解决性。DSA由美国国家标准和技术学会(NIST)于1991年提出并已经成为美国联邦信息处理标准(FIPS 186),称为数字签名标准(DSS)。该算法是公知的ElGamal签名方案的变型,并且可以被分类为具有附录的数字签名(即一种依赖于密码散列(hash)函数而不是定制冗余函数的数字签名)。
椭圆曲线数字签名算法(ECDSA)是一种可以应用于椭圆曲线密码系统且具有类似于DSA的属性的签名方案。它通常被认为是最广泛标准化的基于椭圆曲线的签名方案,出现在ANSI X9.62,FIPS 186-2,IEEE 1363-2000和ISO/IEC 15946-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=x1mod n,其中如果r=0,则返回步骤1。
4、计算e=H(m),其中H代表密码散列(hash)函数,其输出具有不超过n的比特长度(如果不满足该条件,则可以截断H的输出)。
5、计算s=k-1(e+αr)mod n,其中α是签名者的长期私有密钥。如果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-1mod n
4、计算u1=ew mod n以及u2=rw mod n
5、计算R=u1P+u2Q=s-1(eP+rQ)(根据以上3和4)
6、如果R=∞,则拒绝该签名
7、将R的x坐标x1转换为整数x1;计算v=x1mod n
8、如果v=r,则接受该签名,否则拒绝该签名。
在对相关现有技术进行研究的过程中,本公开实施例的发明人发现,私钥的持有方较为容易被攻破,从而导致私钥很容易被窃取,进而导致整个加密系统失效。
发明内容
本公开至少一个实施例的主要目的在于提高私钥的被窃取的难度,降低私钥被窃取的风险。
第一方面,本公开实施例提供了一种基于ECDSA算法协同生成签名的方法,包括:
公钥生成过程和签名生成过程;
其中公钥生成过程包括:
在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同;
在第二电子设备处,将所生成的部分公钥发送给第一电子设备;
在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P;
在第一电子设备处,将完整公钥P输出;或者在第一电子设备处,将完整公钥P发送给第二电子设备;并在第二电子设备处,将完整公钥P输出;
签名生成过程包括:
在第二电子设备处,计算待签名信息的摘要的哈希值;并将得到的哈希值发送到第一电子设备;
在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,并将计算得到的部分签名发送给第二电子设备;
在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,并发送给第一电子设备;
在第一电子设备处,根据签名分量得到完整签名;
在第一电子设备处,将完整签名输出;或者在第一电子设备处,将完整签名发送给第二电子设备;并在第二电子设备处,将完整签名输出。
第二方面,本公开提供了一种基于ECDSA算法协同生成签名的装置,包括:
公钥生成模块和签名生成模块;
其中公钥生成模块,用于
在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同;
在第二电子设备处,将所生成的部分公钥发送给第一电子设备;
在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P;
在第一电子设备处,将完整公钥P输出;或者在第一电子设备处,将完整公钥P发送给第二电子设备;并在第二电子设备处,将完整公钥P输出;
签名生成模块用于:
在第二电子设备处,计算待签名信息的摘要的哈希值;并将得到的哈希值发送到第一电子设备;
在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,并将计算得到的部分签名发送给第二电子设备;
在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,并发送给第一电子设备;
在第一电子设备处,根据签名分量得到完整签名;
在第一电子设备处,将完整签名输出;或者在第一电子设备处,将完整签名发送给第二电子设备;并在第二电子设备处,将完整签名输出。
第三方面,本公开实施例提供了一种计算机存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行第一方面所述的方法中的步骤。
第四方面,本公开实施例提供了一种数据处理系统,包括第一电子设备和第二电子设备;所述第一电子设备与所述第二电子设备通信连接;每一个电子设备均包括:处理器、存储器和通信模组;存储器和通信模组均耦合至所述处理器;所述存储器中存储有计算机程序,所述处理器用于执行所述存储器中存储的计算机程序;所述数据处理系统被配置为执行第一方面所述的方法。
本公开至少一个实施例中,在公钥生成过程中,在两个电子设备处分别基于不同的参数组生成部分的公钥,并将两个电子设备所生成的部分的公钥联合得到完整的公钥,这样私钥不会任意一个电子设备处完整的出现,这样即使攻破了一个电子设备,也难以得到完整的私钥,这样就能够提升私钥被窃取的难度,降低私钥被窃取的风险。并且在签名生成过程中,分别在两个电子设备处,基于所述不同的参数组进行加密,能够完成签名运算的过程。
附图说明
图1示出了本公开一实施例提供的签名系统的结构示意图;
图2示出了本公开的一个实施例提供的基于ECDSA算法的签名生成方法的主要流程;
图3为示出了本公开一实施例提供的基于ECDSA算法协同生成签名的装置的结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
图1示出了本公开一实施例提供的签名系统的结构的示意图,图1中示出的场景是本公开一实施例提供的基于ECDSA算法的签名生成方法的典型应用场景。请参考图1,该系统包括至少两台电子设备,为了方便描述,分别称为第一电子设备100和第二电子设备200。继续参考图1,第一电子设备100包括处理器110、存储器120以及通信模组130;相应的第一电子设备200包括处理器210、存储器220以及通信模组230。各电子设备中,通信模组、存储器均耦接到处理器中,存储器可以存储可以被处理器执行的计算机程序,处理器在执行计算机程序时,会执行相应的方法流程以实现相应的功能。
这里的通信模组,可以为有线的通信模组,也可以为无线的通信模组,根据实际需要,可以配置支持一种或者多种通信协议的协议栈。如无特殊说明,本公开各个实施例中的“耦接”是指元器件之间通信连接且能够交互数据的一种状态,并不要求两个元器件直接相连。
在实施时,这里的第一电子设备100和第二电子设备200中的一个电子设备可以为终端设备,比如手机等,另外一个电子设备可以为服务器,比如设置在云端的服务器。
除了图1中示出的结构之外,图1中的电子设备通常还可能包括电源等,另在还可能会包含显示屏、声音播放设备等其他外设。在此不再详细说明。
为了便于理解,首先对本公开各实施例可能涉及的一些基本概念和术语进行说明。
E(Fq)、G和n,q是大素数,E是定义在有限域Fq上的椭圆曲线,G=(xG,yG)是E上n阶的基点。其中,[*]表示椭圆曲线上的点乘运算,[+]表示椭圆曲线上的点加运算,mod表示求模运算。
第一方面,本公开一实施例提供了一种基于ECDSA算法协同生成签名的方法,该方法可以通过图1中示出的签名系统执行。图2示出了本公开一实施例提供了一种基于ECDSA算法协同生成签名的方法的主要流程,该方法主要包含公钥生产过程和签名生成过程;
其中公钥生成过程主要包括:
步骤S211,在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同;
步骤S212,在第二电子设备处,将所生成的部分公钥发送给第一电子设备;
步骤S213,在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P;
步骤S214,在第一电子设备处,将完整公钥P输出。
签名生成过程包括:
步骤S221,在第二电子设备处,计算待签名信息的摘要的哈希值;并将得到的哈希值发送到第一电子设备;
步骤S222,在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,并将计算得到的部分签名发送给第二电子设备;
步骤S223,在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,并发送给第一电子设备;
步骤S224,在第一电子设备处,根据签名分量得到完整签名;
步骤S225,在第一电子设备处,将完整签名输出。
本实施例中,在公钥生成过程中,在两个电子设备处分别基于不同的参数组生成部分的公钥,并将两个电子设备所生成的部分的公钥联合得到完整的公钥,这样私钥不会任意一个电子设备处完整的出现,这样即使攻破了一个电子设备,也难以得到完整的私钥,这样就能够提升私钥被窃取的难度,降低私钥被窃取的风险。并且在签名生成过程中,分别在两个电子设备处,基于所述不同的参数组进行加密,能够完成签名运算的过程。
需要指出的是,在一些实施例中,也可以由第二电子设备输出完整公钥P和/或完成签名。在由第二电子设备输出完整公钥P时,在步骤214可以替换为:在第一电子设备处,将完整公钥P发送给第二电子设备;并在第二电子设备处,将完整公钥P输出。相应的,在由第二电子设备输出完整签名时,在步骤225可以替换为:在第一电子设备处,将完整签名发送给第二电子设备;并在第二电子设备处,将完整签名输出。
不难理解的是,本公开的各个实施方式中,“将完整公钥P输出”是指,将完整公钥P公布到网络,比如区块链网络中。“将完整签名输出”是指将完整签名输出到网络中,比如发送给完整签名的接收方。
在一种可选的实施方式中,上述的所述的第一参数组可以包括随机数K1,K2,E(Fq)、G和n,q是大素数;所述的第二参数组可以包括随机数K3,K4,E(Fq)、G和n;其中,E(Fq)是定义在有限域Fq上的椭圆曲线,G=(xG,yG)是E上n阶的基点;
此时,上述的步骤S211中,在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同,可以包括:
在第一电子设备处,计算K1在Fq上的逆元K1 -1mod n,并计算P1=K1 -1[*]G,将计算结果发送给第二电子设备;
在第二电子设备处,计算K3在Fq上的逆元K3 -1mod n,并计算(x,y)=K3 -1[*]P1,将计算结果发送给所述第一电子设备;
在第一电子设备处,计算部分公钥P2=x-1K2[*]P1
在第二电子设备处,计算部分公钥P3=x-1K3 -1K4[*]P1,并计算P4=x-1K3 -1K4[*]G,
相应的,在步骤S212中,在第二电子设备处,将所生成的部分公钥发送给第一电子设备,包括:
在第二电子设备处,将部分公钥P3以及P4发送给所述第一电子设备;
在步骤S213中,在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P,包括:
在第一电子设备处,判断是否有P3=K1 -1[*]P4,在判断为是时,计算P=P2[+]P3,将计算结果P作为完整公钥。
由于公钥P=x-1K2[*]P1[+]x-1K3 -1K4[*]P1
=(x-1K2+x-1K3 -1K4)K1 -1[*]G
=(x-1K2K1 -1+x-1K3 -1K4K1 -1)[*]G
因此,私钥d=x-1K2K1 -1+x-1K3 -1K4K1 -1,进而通信双方均无法独立计算出私钥。
进一步的,上述的签名生成过程还可以包括:将部分公钥P2以及完整公钥P发送给所述第二电子设备;
所述方法还包括:
在第二电子设备处,根据接收到的部分公钥P2以及所生成的部分公钥P3验证接收到的完整公钥P是否正确,并将验证结果发送给第一电子设备;
所述步骤S213中,将计算结果P作为完整公钥,包括:
仅在验证结果指示完整公钥P正确时,将计算结果P作为完整公钥。
通过这种方式,能够进一步提高所生成的数字签名的安全性。
步骤S222中,在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,包括:
按照如下公式计算部分签名S1
S1=(K1e+K2)mod n;
步骤S223中,在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,包括:
按照如下公式计算签名分量S:S=(K3S1+K4)mod n;
步骤S224中,在第一电子设备处,根据签名分量得到完整签名,包括:
使用公钥P验证(x,S)是否为ECDSA的有效签名,如是,将(x,S)作为完整签名。
下面证明,(x,S)为公钥P的ECDSA算法签名。
在ECDSA算法中,签名为(r,s),其中对消息m的Hash结果h进行签名的结果s应为s=k-1(h+rd)mod n。
以下证明此结论成立:
令k=(K3K1)-1,h=e=Hash(m),r=x,私钥d=x-1K2K1 -1+x-1K3 -1K4K1 -1,代入得:
s=k-1(h+rd)mod n
=K1K3(e+x(x-1K2K1 -1+x-1K3 -1K4K1 -1))mod n
=K1K3(e+K2K1 -1+K3 -1K4K1 -1)mod n
=(K1K3e+K2K3+K4)mod n
=(K3S1+K4)mod n
=S
可见,(x,S)为公钥P的ECDSA算法签名。
在具体实施时,上述任意一种实施方式中的步骤S221’中,在第一电子设备处,计算待签名信息的摘要的哈希值,包括:
利用SHA256算法计算待签名信息的摘要的哈希值;
相应的,上述任意一种实施方式中的步骤S221中,在第二电子设备处,计算待签名信息的摘要的哈希值,包括:
利用SHA256算法计算待签名信息的摘要的哈希值。
当然在具体实施时,采用其他的方式,也可以采用其他的算法计算摘要的哈希值,在此不再详细说明。
此外,在具体实施时,上述实施例中的待签名信息可以为交易信息。其中,这里的交易信息具体可以为虚拟货币的交易信息,这里的虚拟货币可以为比特币、以太币等虚拟数字货币。
第二方面,本公开一实施例还提供了一种基于ECDSA算法协同生成签名的装置。图3示出了该装置的主要结构,包括:
公钥生成模块310和签名生成模块320;
其中公钥生成模块310,用于
在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同;
在第二电子设备处,将所生成的部分公钥发送给第一电子设备;
在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P;
在第一电子设备处,将完整公钥P输出;或者在第一电子设备处,将完整公钥P发送给第二电子设备;并在第二电子设备处,将完整公钥P输出;
签名生成模块用于320:
在第二电子设备处,计算待签名信息的摘要的哈希值;并将得到的哈希值发送到第一电子设备;
在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,并将计算得到的部分签名发送给第二电子设备;
在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,并发送给第一电子设备;
在第一电子设备处,根据签名分量得到完整签名;
在第一电子设备处,将完整签名输出;或者在第一电子设备处,将完整签名发送给第二电子设备;并在第二电子设备处,将完整签名输出。
在一些实施方式中,所述第一参数组包括随机数K1,K2,E(Fq)、G和n,q是大素数;所述第二参数组包括随机数K3,K4,E(Fq)、G和n;其中,E(Fq)是定义在有限域Fq上的椭圆曲线,G=(xG,yG)是E上n阶的基点;
在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同,包括:
在第一电子设备处,计算K1在Fq上的逆元K1 -1mod n,并计算P1=K1 -1[*]G,将计算结果发送给第二电子设备;
在第二电子设备处,计算K3在Fq上的逆元K3 -1mod n,并计算(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作为完整公钥。
在一些实施方式中,所述签名生成模块还用于:将部分公钥P2以及完整公钥P发送给所述第二电子设备;
验证模块,用于在第二电子设备处,根据接收到的部分公钥P2以及所生成的部分公钥P3验证接收到的完整公钥P是否正确,并将验证结果发送给第一电子设备;
所述将计算结果P作为完整公钥,包括:
仅在验证结果指示完整公钥P正确时,将计算结果P作为完整公钥。
在一些实施方式中,所述在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,包括:
按照如下公式计算部分签名S1
S1=(K1e+K2)mod n;
所述在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,包括:
按照如下公式计算签名分量S:S=(K3S1+K4)mod n;
所述在第一电子设备处,根据签名分量得到完整签名,包括:
使用公钥P验证(x,S)是否为ECDSA的有效签名,如是,将(x,S)作为完整签名。
在一些实施方式中,所述在第二电子设备处,计算待签名信息的摘要的哈希值,包括:
利用SHA256算法计算待签名信息的摘要的哈希值。。
此外,在具体实施时,上述实施例中的待签名信息可以为交易信息。其中,这里的交易信息具体可以为虚拟货币的交易信息,这里的虚拟货币可以为比特币、以太币等虚拟数字货币。
由于本公开实施例提供的基于ECDSA算法协同生成签名的装置,能够用于实施如第一方面任一项所述的基于ECDSA算法协同生成签名的方法。因此本公开实施例中的技术效果、相关技术术语以及相关的实施方式可以参考第一方面的实施例,在此不再详细说明。
第三方面,本公开的实施例还提供了一种计算机存储介质,该计算机存储介质中存储有计算机指令代码,该计算机指令代码在被计算机设备执行时执行第一方面任一项所述的方法。
第四方面,本公开的实施例还提供了一种数据处理系统,该系统的主要结构可以参考图1,包括第一电子设备和第二电子设备;所述第一电子设备与所述第二电子设备通信连接;每一个电子设备均包括:处理器、存储器和通信模组;存储器和通信模组均耦合至所述处理器;所述存储器中存储有计算机程序,所述处理器用于执行所述存储器中存储的计算机程序;所述数据处理系统被配置为执行第一方面任一项所述的方法。
以上仅为本公开的优选实施例,并非因此限制本公开的专利范围,凡是利用本公开说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本公开的专利保护范围内。

Claims (16)

1.一种基于ECDSA算法协同生成签名的方法,其特征在于,包括:
公钥生成过程和签名生成过程;
其中公钥生成过程包括:
在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同;
在第二电子设备处,将所生成的部分公钥发送给第一电子设备;
在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P;
在第一电子设备处,将完整公钥P输出;或者在第一电子设备处,将完整公钥P发送给第二电子设备;并在第二电子设备处,将完整公钥P输出;
签名生成过程包括:
在第二电子设备处,计算待签名信息的摘要的哈希值;并将得到的哈希值发送到第一电子设备;
在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,并将计算得到的部分签名发送给第二电子设备;
在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,并发送给第一电子设备;
在第一电子设备处,根据签名分量得到完整签名;
在第一电子设备处,将完整签名输出;或者在第一电子设备处,将完整签名发送给第二电子设备;并在第二电子设备处,将完整签名输出;
其中,所述第一参数组包括随机数K1,随机数K2,E(Fq)、G和n,q是大素数;所述第二参数组包括随机数K3,随机数K4,E(Fq)、G和n;E(Fq)是定义在有限域Fq上的椭圆曲线,G=(xG,yG)是E上n阶的基点;
在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同,包括:
在第一电子设备处,计算K1在Fq上的逆元K1 -1,并计算P1=K1 -1[*]G,将计算结果发送给第二电子设备;
在第二电子设备处,计算K3在Fq上的逆元K3 -1,并计算(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作为完整公钥,[*]表示椭圆曲线上的点乘运算,[+]表示椭圆曲线上的点加运算。
2.根据权利要求1所述的方法,其特征在于,所述签名生成过程还包括:通过所述第一电子设备将部分公钥P2以及完整公钥P发送给所述第二电子设备;
所述方法还包括:
在第二电子设备处,根据接收到的部分公钥P2以及所生成的部分公钥P3验证接收到的完整公钥P是否正确,并将验证结果发送给第一电子设备;
所述将计算结果P作为完整公钥,包括:
仅在验证结果指示完整公钥P正确时,将计算结果P作为完整公钥。
3.根据权利要求1所述的方法,其特征在于,所述在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,包括:
按照如下公式计算部分签名S1
S1=(K1e+K2)mod n,其中,e是待签名信息的摘要的哈希值,mod表示求模运算;
所述在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,包括:
按照如下公式计算签名分量S:S=(K3S1+K4)modn;
所述在第一电子设备处,根据签名分量得到完整签名,包括:
使用公钥P验证(x,S)是否为ECDSA的有效签名,如是,将(x,S)作为完整签名。
4.根据权利要求1所述的方法,其特征在于,所述在第二电子设备处,计算待签名信息的摘要的哈希值,包括:
利用SHA256算法计算待签名信息的摘要的哈希值。
5.根据权利要求1所述的方法,其特征在于,所述待签名信息为交易信息。
6.根据权利要求5所述的方法,其特征在于,所述交易信息为虚拟货币交易信息。
7.根据权利要求6所述的方法,其特征在于,所述虚拟货币为比特币或者以太币。
8.一种基于ECDSA算法协同生成签名的装置,其特征在于,包括:
公钥生成模块和签名生成模块;
其中公钥生成模块,用于在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同;
在第二电子设备处,将所生成的部分公钥发送给第一电子设备;
在第一电子设备处,将第一电子设备生成的部分公钥与接收到的部分公钥联合得到完整公钥P;
在第一电子设备处,将完整公钥P输出;或者在第一电子设备处,将完整公钥P发送给第二电子设备;并在第二电子设备处,将完整公钥P输出;
签名生成模块用于:
在第二电子设备处,计算待签名信息的摘要的哈希值;并将得到的哈希值发送到第一电子设备;
在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,并将计算得到的部分签名发送给第二电子设备;
在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,并发送给第一电子设备;
在第一电子设备处,根据签名分量得到完整签名;
在第一电子设备处,将完整签名输出;或者在第一电子设备处,将完整签名发送给第二电子设备;并在第二电子设备处,将完整签名输出;
其中,所述第一参数组包括随机数K1,随机数K2,E(Fq)、G和n,q是大素数;所述第二参数组包括随机数K3,随机数K4,E(Fq)、G和n;E(Fq)是定义在有限域Fq上的椭圆曲线,G=(xG,yG)是E上n阶的基点;
在第一电子设备和第二电子设备处,分别基于每一个电子设备预先获取的参数组生成部分公钥;其中第一电子设备所获取的第一参数组与第二电子设备所获取的第二参数组不同,包括:
在第一电子设备处,计算K1在Fq上的逆元K1 -1,并计算P1=K1 -1[*]G,将计算结果发送给第二电子设备;
在第二电子设备处,计算K3在Fq上的逆元K3 -1,并计算(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作为完整公钥,[*]表示椭圆曲线上的点乘运算,[+]表示椭圆曲线上的点加运算。
9.根据权利要求8所述的装置,其特征在于,所述签名生成模块还包括验证模块;
所述签名生成模块还用于:通过所述第一电子设备将部分公钥P2以及完整公钥P发送给所述第二电子设备;
所述验证模块,用于在第二电子设备处,根据接收到的部分公钥P2以及所生成的部分公钥P3验证接收到的完整公钥P是否正确,并将验证结果发送给第一电子设备;
所述将计算结果P作为完整公钥,包括:
仅在验证结果指示完整公钥P正确时,将计算结果P作为完整公钥。
10.根据权利要求8所述的装置,其特征在于,所述在第一电子设备处,基于第一参数组对接收到的哈希值计算部分签名,包括:
按照如下公式计算部分签名S1
S1=(K1e+K2)modn,其中,e是待签名信息的摘要的哈希值,mod表示求模运算;
所述在第二电子设备处,基于第二参数组对接收到的部分签名计算签名分量,包括:
按照如下公式计算签名分量S:S=(K3S1+K4)modn;
所述在第一电子设备处,根据签名分量得到完整签名,包括:
使用公钥P验证(x,S)是否为ECDSA的有效签名,如是,将(x,S)作为完整签名。
11.根据权利要求10所述的装置,其特征在于,所述在第二电子设备处,计算待签名信息的摘要的哈希值,包括:
利用SHA256算法计算待签名信息的摘要的哈希值。
12.根据权利要求8所述的装置,其特征在于,所述待签名信息为交易信息。
13.根据权利要求12所述的装置,其特征在于,所述交易信息为虚拟货币交易信息。
14.根据权利要求13所述的装置,其特征在于,所述虚拟货币为比特币或者以太币。
15.一种计算机存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序由处理器执行时用于执行如权利要求1-7任一项所述的方法中的步骤。
16.一种数据处理系统,其特征在于,包括第一电子设备和第二电子设备;所述第一电子设备与所述第二电子设备通信连接;每一个电子设备均包括:处理器、存储器和通信模组;存储器和通信模组均耦合至所述处理器;所述存储器中存储有计算机程序,所述处理器用于执行所述存储器中存储的计算机程序;所述数据处理系统被配置为执行如权利要求1-7任一项所述的方法。
CN201711037815.7A 2017-10-30 2017-10-30 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 Active CN107911217B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711037815.7A CN107911217B (zh) 2017-10-30 2017-10-30 基于ecdsa算法协同生成签名的方法、装置和数据处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711037815.7A CN107911217B (zh) 2017-10-30 2017-10-30 基于ecdsa算法协同生成签名的方法、装置和数据处理系统

Publications (2)

Publication Number Publication Date
CN107911217A CN107911217A (zh) 2018-04-13
CN107911217B true CN107911217B (zh) 2021-02-26

Family

ID=61842977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711037815.7A Active CN107911217B (zh) 2017-10-30 2017-10-30 基于ecdsa算法协同生成签名的方法、装置和数据处理系统

Country Status (1)

Country Link
CN (1) CN107911217B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667625B (zh) * 2018-07-19 2021-09-24 数安时代科技股份有限公司 协同sm2的数字签名方法
CN108900310A (zh) * 2018-08-14 2018-11-27 数字钱包(北京)科技有限公司 区块链签名处理方法及区块链签名处理装置
CN110138567B (zh) * 2019-05-22 2021-11-26 广州安研信息科技有限公司 一种基于ecdsa的协同签名方法
CN111147254B (zh) * 2019-12-24 2022-09-02 矩阵元技术(深圳)有限公司 两方协同的EdDSA数字签名生成方法和装置
CN111510299B (zh) * 2020-04-10 2021-03-19 宁波富万信息科技有限公司 联合数字签名生成方法、电子设备和计算机可读介质
CN112202560B (zh) * 2020-09-28 2021-05-04 杭州链城数字科技有限公司 一种基于可信联盟的成员身份认证方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956407A (en) * 1996-11-01 1999-09-21 Slavin; Keith R. Public key cryptographic system having nested security levels
EP3091689A1 (fr) * 2015-05-06 2016-11-09 Morpho Procédé de génération d'une signature de message à partir d'un jeton de signature chiffré à l'aide d'une fonction de chiffrement homomorphique
CN106533675A (zh) * 2016-12-19 2017-03-22 北京洋浦伟业科技发展有限公司 数字签名方法及系统
CN106549770A (zh) * 2017-01-13 2017-03-29 武汉理工大学 Sm2数字签名生成方法及系统
CN107196763A (zh) * 2017-07-06 2017-09-22 数安时代科技股份有限公司 Sm2算法协同签名及解密方法、装置与系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956407A (en) * 1996-11-01 1999-09-21 Slavin; Keith R. Public key cryptographic system having nested security levels
EP3091689A1 (fr) * 2015-05-06 2016-11-09 Morpho Procédé de génération d'une signature de message à partir d'un jeton de signature chiffré à l'aide d'une fonction de chiffrement homomorphique
CN106533675A (zh) * 2016-12-19 2017-03-22 北京洋浦伟业科技发展有限公司 数字签名方法及系统
CN106549770A (zh) * 2017-01-13 2017-03-29 武汉理工大学 Sm2数字签名生成方法及系统
CN107196763A (zh) * 2017-07-06 2017-09-22 数安时代科技股份有限公司 Sm2算法协同签名及解密方法、装置与系统

Also Published As

Publication number Publication date
CN107911217A (zh) 2018-04-13

Similar Documents

Publication Publication Date Title
CN107911217B (zh) 基于ecdsa算法协同生成签名的方法、装置和数据处理系统
CN108667626B (zh) 安全的两方协作sm2签名方法
CN107634836B (zh) 一种sm2数字签名生成方法及系统
CN108551392B (zh) 一种基于sm9数字签名的盲签名生成方法及系统
JP4649040B2 (ja) マスクディジタル署名
US8116451B2 (en) Key validation scheme
US9800418B2 (en) Signature protocol
US20070043946A1 (en) Key confirmed authenticated key exchange with derived ephemeral keys
CN110138567B (zh) 一种基于ecdsa的协同签名方法
CN109818730B (zh) 盲签名的获取方法、装置和服务器
US20170373847A1 (en) Method for updating a public key
CA2669472C (en) Compressed ecdsa signatures
CN101697513A (zh) 数字签名方法、验证方法、数字签名装置及数字签名系统
US20150006900A1 (en) Signature protocol
CN115834056A (zh) 一种无证书有序聚合签名方法、系统及相关装置
CN116346328A (zh) 一种数字签名方法、系统、设备及计算机可读存储介质
CN109618348B (zh) 一种单向代理重签名的实现方法及装置
CN113032844B (zh) 椭圆曲线的签名方法、验签方法和装置
CN114117547A (zh) 一种基于预计算表的sm9数字签名加速生成方法以及数字签名加速验证方法
Chande et al. An improvement of a elliptic curve digital signature algorithm
CN110557260B (zh) 一种sm9数字签名生成方法及装置
JP4307589B2 (ja) 認証プロトコル
WO2016187689A1 (en) Signature protocol
CN115941205A (zh) 一种基于sm2的多重签名方法
CN115174056A (zh) 一种基于sm9签名的变色龙签名生成方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant