CN111147254B - 两方协同的EdDSA数字签名生成方法和装置 - Google Patents

两方协同的EdDSA数字签名生成方法和装置 Download PDF

Info

Publication number
CN111147254B
CN111147254B CN201911343574.8A CN201911343574A CN111147254B CN 111147254 B CN111147254 B CN 111147254B CN 201911343574 A CN201911343574 A CN 201911343574A CN 111147254 B CN111147254 B CN 111147254B
Authority
CN
China
Prior art keywords
public key
signature
key
partial
generating
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
CN201911343574.8A
Other languages
English (en)
Other versions
CN111147254A (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.)
Juzix Technology Shenzhen Co ltd
Wuhan University WHU
Original Assignee
Juzix Technology Shenzhen 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 Juzix Technology Shenzhen Co ltd filed Critical Juzix Technology Shenzhen Co ltd
Priority to CN201911343574.8A priority Critical patent/CN111147254B/zh
Publication of CN111147254A publication Critical patent/CN111147254A/zh
Application granted granted Critical
Publication of CN111147254B publication Critical patent/CN111147254B/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
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/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/3236Cryptographic 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 using cryptographic hash functions

Abstract

本申请提供了一种两方协同的EdDSA数字签名生成方法和装置,其中,该方法包括:第二用户端生成并根据第二部分私钥,生成第二部分公钥,并将第二部分公钥发送给第一用户端;第二用户端接收并根据第一用户端发送的第一部分公钥,生成协同公钥;第二用户端获取待签名的目标信息,根据第二部分私钥、目标信息和第二部分公钥生成临时公钥,并将临时公钥发送给第一用户端;第二用户端接收第一用户端发送的第一部分签名和中间变量;第二用户端根据中间变量生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。上述方案实现了两方协同完成对目标信息进行EdDSA数字签名,可以有效保证签名密钥的安全性和参与方的公平性。

Description

两方协同的EdDSA数字签名生成方法和装置
技术领域
本申请涉及数字签名技术领域,特别涉及一种两方协同的EdDSA数字签名生成方法和装置。
背景技术
随着互联网的发展,许多事务在网络上开展,如电子商务和电子证券等。这些电子事务的完成通常涉及多个参与方,需要多个参与者同时对相关消息进行签名,因此对签名的安全性和参与者的公平性需求较高。
目前,数字签名算法的安全性和公平性较低,因此,需要提供一种提高签名的安全性和公平性的数字签名生成方法。
发明内容
本申请实施例提供了一种两方协同的EdDSA数字签名生成方法和装置,以提供一种提高签名的安全性和公平性的数字签名生成方法。
本申请实施例提供了一种两方协同的EdDSA数字签名生成方法,应用于第二用户端,包括:第二用户端生成并根据第二部分私钥,生成第二部分公钥,并将第二部分公钥发送给第一用户端,其中,第一用户端用于根据第二部分公钥生成协同公钥;第二用户端接收并根据第一用户端发送的第一部分公钥,生成协同公钥,其中,第一部分公钥由第一用户端根据第一用户端所生成的第一部分私钥生成;第二用户端获取待签名的目标信息,根据第二部分私钥、目标信息和第二部分公钥生成临时公钥,并将临时公钥发送给第一用户端;第二用户端接收第一用户端发送的第一部分签名和中间变量,其中,第一部分签名和中间变量由第一用户端根据第一部分私钥、目标信息、协同公钥和临时公钥生成;第二用户端根据中间变量生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。
在一个实施例中,在第二用户端根据第一部分签名和第二部分签名生成目标信息的目标签名之后,还包括:根据协同公钥确定目标签名是否正确;在确定目标签名正确的情况下,输出目标签名。
在一个实施例中,第二用户端根据第二部分私钥生成第二部分公钥,包括:对第二部分私钥进行哈希运算,得到第二杂凑值;根据第二杂凑值生成第二公钥标量;根据第二公钥标量生成第二部分公钥。
在一个实施例中,对第二部分私钥进行哈希运算,得到第二杂凑值,包括按照以下公式得到第二杂凑值:
Figure BDA0002332737670000021
其中,H(l2)为第二杂凑值,k2为第二部分私钥,
Figure BDA0002332737670000022
为第二杂凑值中的元素,H(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数,k2为b比特长的随机数,其中,b为满足2b-1>p的整数,p为素数;
根据第二杂凑值生成第二公钥标量,包括按照以下公式生成第二公钥标量:
Figure BDA0002332737670000023
其中,s2为第二公钥标量,
Figure BDA0002332737670000024
为第二杂凑值中的元素,其中,i=c,…,n-1,其中,c为辅因子,是以2为底的对数,n为满足c≤n<b的整数;
根据第二公钥标量生成第二部分公钥,包括按照以下公式生成第二部分公钥:
A2=s2·B;
其中,A2为第二部分公钥,s2为第二公钥标量,B为循环群E的生成元,E为由椭圆曲线上的点构成的加法循环群。
在一个实施例中,第二用户端根据第一部分公钥生成协同公钥,包括按照以下公式生成协同公钥:
A=s2·A1
其中,A为协同公钥,A1为第一部分公钥,s2为第二公钥标量。
在一个实施例中,第二用户端根据第二部分私钥、目标信息和第二部分公钥生成临时公钥,包括:根据第二杂凑值和目标信息生成第二消息密钥,其中,第二杂凑值是根据第二部分私钥生成的;根据第二消息密钥和第二部分公钥生成临时公钥。
在一个实施例中,根据第二杂凑值和目标信息生成第二消息密钥,包括按照以下公式生成第二消息密钥:
Figure BDA0002332737670000025
其中,r2为第二消息密钥,M为目标信息,H(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数,
Figure BDA0002332737670000031
为H(k2)中的元素,H(k2)为第二杂凑值,
Figure BDA0002332737670000032
k2为第二部分私钥;
根据第二消息密钥和第二部分公钥生成临时公钥,包括按照以下公式生成临时密钥:
Q2=r2·A2
其中,Q2为临时公钥,r2为第二消息密钥,A2为第二部分公钥。
在一个实施例中,第二用户端根据中间变量生成第二部分签名,包括按照以下公式生成第二部分签名:
S=(S1+r2)·s2
其中,S为第二部分签名,S1为中间变量,r2为第二消息密钥,s2为第二公钥标量。
在一个实施例中,第二用户端根据第一部分签名和第二部分签名生成目标信息的目标签名,包括按照以下公式生成目标信息的目标签名:
δM=ENC(R)||ENC(S);
其中,δM为目标信息的目标签名,R为第一部分签名,S为第二部分签名,ENC(·)为将输入按照小端格式编码为b比特长的字符串的编码函数。
在一个实施例中,第二用户端根据协同公钥确定目标签名是否正确,包括验证以下等式是否正确:
S·B=R+h·A;
其中,R为第一部分签名,S为第二部分签名,B为循环群E的生成元,E为由椭圆曲线上的点构成的加法循环群,A为协同公钥,h=H(ENC(R)||ENC(A)||PH(M)),M为目标信息,ENC(·)为将输入按照小端格式编码为b比特长的字符串的编码函数,PH(M)为M的SHA-512杂凑值。
本申请实施例还提供了一种两方协同的EdDSA数字签名生成方法,应用于第一用户端,包括:第一用户端生成并根据第一部分私钥生成第一部分公钥,并将第一部分公钥发送给第二用户端,其中,第二用户端用于根据第一部分公钥生成协同公钥;第一用户端接收并根据第二用户端发送的第二部分公钥生成协同公钥,其中,第二部分公钥由第二用户端根据第二用户端所生成的第二部分私钥生成;第一用户端接收第二用户端发送的临时公钥,其中,临时公钥由第二用户端根据待签名的目标信息和第二部分公钥生成;第一用户端获取目标信息,根据第一部分私钥、目标信息、协同公钥和临时公钥生成第一部分签名和中间变量,并将中间变量和第一部分签名发送给第二用户端,其中,第二用户端用于根据中间变量生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。
在一个实施例中,第一用户端根据第一部分私钥生成第一部分公钥,包括按照以下公式生成第一部分公钥:
A1=s1·B;
其中,A1为第一部分公钥,B为循环群E的生成元,E为由椭圆曲线上的点构成的加法循环群,
Figure BDA0002332737670000041
其中,s1为第一公钥标量,
Figure BDA0002332737670000042
为H(k1)中的元素,其中,i=c,…,n-1,H(k1)为第一杂凑值,k1为第一部分私钥,
Figure BDA0002332737670000043
b为满足2b-1>p的整数,p为素数,c为辅因子,是以2为底的对数,n为满足c≤n<b的整数。
在一个实施例中,第一用户端根据第二部分公钥生成协同公钥,包括按照以下公式生成协同公钥。
A=s1·A2
其中,A为协同公钥,A2为第二部分公钥,S1为第一公钥标量。
在一个实施例中,第一用户端根据第一部分私钥、目标信息、协同公钥和临时公钥生成第一部分签名和中间变量,包括按照以下公式生成第一部分签名和中间变量:
R=r1·A+Q2
S1=(r1+h)·s1
其中,R为第一部分签名,S1为中间变量,A为协同公钥,Q2为临时公钥,
Figure BDA0002332737670000044
Figure BDA0002332737670000045
为H(k1)中的元素,H(k1)为第一杂凑值,k1为第一部分私钥,
Figure BDA0002332737670000046
r1为第一消息密钥,h=H(ENC(R)||ENC(A)||PH(M)),H(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数,M为目标信息,ENC(·)为将输入按照小端格式编码为b比特长的字符串的编码函数,PH(M)为M的SHA-512杂凑值。
本申请实施例还提供了一种两方协同的EdDSA数字签名生成方法,应用于第一用户端和第二用户端,包括:第二用户端获取待签名的目标信息,根据目标信息和第二部分私钥生成第二消息密钥,并根据第二消息密钥和第二部分公钥生成临时公钥;第二用户端将临时公钥发送给第一用户端;第一用户端获取目标信息,根据目标信息和第一部分私钥生成第一消息密钥,并根据第一消息密钥、临时公钥、目标信息和协同公钥生成第一部分签名和中间变量,其中,协同公钥由第一用户端与第二用户端按照预设的密钥生成算法协同生成;第一用户端将中间变量和第一部分签名发送给第二用户端;第二用户端根据中间变量、第二消息密钥生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。
本申请实施例还提供了一种两方协同的EdDSA数字签名生成装置,位于第二用户端中,包括:生成模块,用于生成并根据第二部分私钥,生成第二部分公钥,并将第二部分公钥发送给第一用户端,其中,第一用户端用于根据第二部分公钥生成协同公钥;第一接收模块,用于接收并根据第一用户端发送的第一部分公钥,生成协同公钥,其中,第一部分公钥由第一用户端根据第一用户端所生成的第一部分私钥生成;获取模块,用于获取待签名的目标信息,根据第二部分私钥、目标信息和第二部分公钥生成临时公钥,并将临时公钥发送给第一用户端;第二接收模块,用于接收第一用户端发送的第一部分签名和中间变量,其中,第一部分签名和中间变量由第一用户端根据第一部分私钥、目标信息、协同公钥和临时公钥生成;签名模块,用于根据中间变量生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。
本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的两方协同的EdDSA数字签名生成方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的两方协同的EdDSA数字签名生成方法的步骤。
在本申请实施例中,提供了一种两方协同的EdDSA数字签名生成方法,第二用户端生成第二部分私钥,并根据第二部分私钥生成第二部分公钥,并将第二部分公钥发送给第一用户端,第一用户端根据第二部分公钥生成协同公钥,第二用户端接收第一用户端发送的第一部分公钥,并根据第一部分公钥生成协同公钥,其中,第一部分公钥由第一用户端根据第一用户端所生成的第一部分私钥生成,第二用户端获取待签名的目标信息,根据第二部分私钥、目标信息和第二部分公钥生成临时公钥,并将临时公钥发送给第一用户端,第二用户端接收第一用户端发送的第一部分签名和中间变量,其中,第一部分签名和中间变量由第一用户端根据第一部分私钥、目标信息、协同公钥和临时公钥生成,第二用户端根据中间变量生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。上述方案中,第一用户端和第二用户端各自生成第一部分私钥和第二部分私钥,在不泄露各自的部分私钥的情况下,第一用户端与第二用户端协同生成协同公钥,之后,第一用户端和第二用户端分别利用各自的部分私钥和协同公钥对待签名的目标信息进行签名,分别得到第一部分签名和第二部分签名,然后,第二用户端可以根据第一部分签名和第二部分签名生成目标信息的目标签名,从而实现了在两方不泄露自己的部分私钥并且无法获得完整的签名私钥的情况下共同完成对目标信息的数字签名,即,实现在两方之间分布式地完成数字签名,数字签名必须由两方共同参与,并且在签名过程中没有恢复完整的签名密钥,保证签名密钥的安全性和参与方的公平性;此外,上述方法是两方协同的EdDSA签名生成方法,相比于现有的数字签名算法,本方案的运算速度更快,而且密钥与签名空间较小。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1示出了本申请一实施例中两方协同的EdDSA数字签名生成方法的应用场景的示意图;
图2示出了本申请一实施例中的两方协同的EdDSA数字签名生成方法的流程图;
图3示出了本申请一实施例中的两方协同的EdDSA数字签名生成方法的流程图;
图4示出了本申请一实施例中的两方协同的EdDSA数字签名生成方法的流程图;
图5示出了本申请一实施例中的两方协同的EdDSA数字签名生成方法中的密钥生成算法示意图;
图6示出了本申请一实施例中的两方协同的EdDSA数字签名生成方法中的签名生成算法示意图;
图7示出了本申请一实施例中的两方协同的EdDSA数字签名生成方法的顺序图;
图8示出了本申请一实施例中的两方协同的EdDSA数字签名生成装置的示意图;
图9示出了本申请一实施例中的计算机设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本申请的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
目前,一般情况下,用户会使用秘密共享的思想来共同生成数字签名。在这种方法中,签名密钥被分割成n个子密钥,并安全地分给n个参与者掌管,这些参与者中的t个(t<n)及以上个参与者所构成的子集可以重构签名密钥,少于t个参与者则无法获得任何关于完整签名密钥的信息。然而,当恢复出完整签名密钥之后,持有完整签名密钥的一方就可以在其他参与方不知情的情况下独立地进行签名,威胁了安全性和公平性。特别是在只有两个参与方的情况下,某一方恢复并持有完整签名密钥,就可以在另一方不知情的情况下,独立地进行数字签名,这在电子货币系统中会造成直接的利益损失。
为此,研究人员已经提出了多种不同方案和不同特性的协同签名算法,但没有针对EdDSA(Edwards-curve Digital Signature Algorithm,爱德华兹曲线数字签名算法)的协同签名算法的实现方案。EdDSA是一种基于Twisted Edwards(扭曲爱德华兹)曲线的变型数字签名方案,其运算速度更快且密钥与签名空间也较小。
基于以上问题,本申请实施例提供了一种两方协同的EdDSA数字签名生成方法。图1示出了本申请一实施例中两方协同的EdDSA数字签名生成方法的应用场景的示意图。如图1所示,第一用户端生成第一部分私钥,根据第一部分私钥生成第一部分公钥,并将第一部分公钥发送给第二用户端。第二用户端生成第二部分私钥,根据第二部分私钥生成第二部分公钥,并将第二部分公钥发送给第一用户端。第一用户端根据第二部分公钥生成协同公钥。第二用户端根据第第一部分公钥生成协同公钥。第二用户端获取待签名的目标信息,并根据第二部分私钥、目标信息和第二部分公钥生成临时公钥,并将临时公钥发送给第一用户端。第一用户端获取目标信息,并根据第一部分私钥、目标信息、协同公钥和临时公钥生成第一部分签名和中间变量,并将中间变量和第一部分签名发送给第二用户端。第二用户端根据中间变量生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。
上述方案可以实现在两方不泄露自己的部分私钥并且无法获得完整的签名私钥的情况下共同完成对目标信息的数字签名。即,可以实现在两方之间分布式地完成数字签名,数字签名必须由两方共同参与,并且在签名过程中没有恢复完整的签名密钥,保证签名密钥的安全性和参与方的公平性;此外,上述方法是两方协同的EdDSA签名生成方法,相比于现有的数字签名算法,本方案的运算速度更快,而且密钥与签名空间较小。
图2示出了本申请一实施例中两方协同的EdDSA数字签名生成方法的流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体地,如图2所示,本申请一种实施例提供的两方协同的EdDSA数字签名生成方法应用第二用户端,可以包括以下步骤:
步骤S201,第二用户端生成并根据第二部分私钥,生成第二部分公钥,并将第二部分公钥发送给第一用户端,其中,第一用户端用于根据第二部分公钥生成协同公钥。
步骤S202,第二用户端接收并根据第一用户端发送的第一部分公钥,生成协同公钥,其中,第一部分公钥由第一用户端根据第一用户端所生成的第一部分私钥生成。
具体的,第二用户端生成第二部分私钥,并根据第二部分私钥生成第二部分公钥。第一用户端生成第一部分私钥,并根据第一部分私钥生成第一部分公钥。第二用户端将生成的第二部分公钥发送给第一用户端。第一用户端将生成的第一部分公钥发送给第二用户端。第一用户端根据第二部分公钥生成协同公钥。第二用户端根据第一部分公钥生成协同公钥。其中,第一部分私钥为签名私钥的一部分,第二部分私钥为签名私钥的一部分。第一部分公钥为协同公钥的一部分,第二部分公钥为协同公钥的一部分。
步骤S203,第二用户端获取待签名的目标信息,根据第二部分私钥、目标信息和第二部分公钥生成临时公钥,并将临时公钥发送给第一用户端。
步骤S204,第二用户端接收第一用户端发送的第一部分签名和中间变量,其中,第一部分签名和中间变量由第一用户端根据第一部分私钥、目标信息、协同公钥和临时公钥生成。
具体的,第二用户端获取待签名的目标信息。其中,目标信息可以是电子商务或电子证券等相关的交易信息或账单信息等。第二用户端根据第二部分私钥、目标信息和第二部分公钥生成临时公钥。第二用户端将生成的临时公钥发送至第一用户端。第一用户端获取目标信息。第一用户端根据第一部分私钥、目标信息、协同公钥和临时公钥生成第一部分签名和中间变量。其中,第一部分签名为目标信息的签名的一部分。
步骤S205,第二用户端根据中间变量生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。
具体的,第二用户端根据接收到的中间变量生成第二部分签名。其中,第二部分签名为目标信息的签名的一部分。第二用户端可以根据第一部分签名和第二部分签名生成目标信息的目标签名。
上述方案中,第一用户端和第二用户端各自生成第一部分私钥和第二部分私钥,在不泄露各自的部分私钥的情况下,第一用户端与第二用户端协同生成协同公钥,之后,第一用户端和第二用户端分别利用各自的部分私钥和协同公钥对待签名的目标信息进行签名,分别得到第一部分签名和第二部分签名,然后,第二用户端可以根据第一部分签名和第二部分签名生成目标信息的目标签名,从而实现了在两方不泄露自己的部分私钥并且无法获得完整的签名私钥的情况下共同完成对目标信息的数字签名,即,实现在两方之间分布式地完成数字签名,数字签名必须由两方共同参与,并且在签名过程中没有恢复完整的签名密钥,保证签名密钥的安全性和参与方的公平性;此外,上述方法是两方协同的EdDSA签名生成方法,相比于现有的数字签名算法,本方案的运算速度更快,而且密钥与签名空间较小。
在本申请一些实施例中,在第二用户端根据第一部分签名和第二部分签名生成目标信息的目标签名之后,还可以包括:根据协同公钥确定目标签名是否正确;在确定目标签名正确的情况下,输出目标签名。
具体的,为了保证目标签名的正确性,在输出目标信息的目标签名之前,可以根据协同公钥确定目标签名是否正确,并且在确定目标签名正确的情况下,输出目标信息的目标签名。在确定目标签名不正确的情况下,可以生成签名失败信息。通过上述方式,可以保证签名的正确性。
在本申请一些实施例中,第二用户端根据第二部分私钥生成第二部分公钥,可以包括:对第二部分私钥进行哈希运算,得到第二杂凑值;根据第二杂凑值生成第二公钥标量;根据第二公钥标量生成第二部分公钥。
具体的,在第二用户端生成第二部分私钥之后,第二用户端可以对第二部分私钥进行哈希运算,得到第二杂凑值。第二用户端可以根据第二杂凑值生成第二公钥标量。之后,第二用户端可以根据第二公钥标量生成第二部分公钥。通过上述方式,可以根据第二部分私钥生成第二部分公钥。
进一步地,在本申请一些实施例中,对第二部分私钥进行哈希运算,得到第二杂凑值,可以包括按照以下公式得到第二杂凑值:
Figure BDA0002332737670000101
其中,H(k2)为第二杂凑值,k2为第二部分私钥,
Figure BDA0002332737670000102
为第二杂凑值中的元素,h(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数,k2为b比特长的随机数,其中,b为满足2b-1>p的整数,b为EdDSA公钥或签名序列化后的比特长,通常设定为8的倍数,p为素数。
进一步地,在本申请一些实施例中,根据第二杂凑值生成第二公钥标量,可以包括按照以下公式生成第二公钥标量:
Figure BDA0002332737670000103
其中,s2为第二公钥标量,
Figure BDA0002332737670000104
为第二杂凑值H(k2)中的元素,其中,i=c,…,n-1,其中,c为辅因子,是以2为底的对数,n为满足c≤n<b的整数。其中,c一般为2或3,EdDSA标量必为2c的倍数。
进一步地,在本申请一些实施例中,根据第二公钥标量生成第二部分公钥,可以包括按照以下公式生成第二部分公钥:
A2=s2·B;
其中,A2为第二部分公钥,s2为第二公钥标量,B为循环群E的生成元,且B≠(0,1),E为由椭圆曲线上的点构成的加法循环群,定义为{(x,y)∈GF(p)×GF(p)且a·x2+y2=1+d·x2·y2},GF(p)为由整数0,1,2,…,p-1组成的有限域,p为素数。
在本申请一些实施例中,第二用户端根据第一部分公钥生成协同公钥,可以包括按照以下公式生成协同公钥:
A=s2·A1
其中,A为协同公钥,A1为第一部分公钥,s2为第二公钥标量。
进一步地,在本申请一些实施例中,第二用户端根据第二部分私钥、目标信息和第二部分公钥生成临时公钥,可以包括:根据第二杂凑值和目标信息生成第二消息密钥,其中,第二杂凑值是根据第二部分私钥生成的;根据第二消息密钥和第二部分公钥生成临时公钥。
具体的,第二用户端可以根据第二杂凑值和目标信息生成第二消息密钥。其中,第二杂凑值由第二用户端根据第二部分私钥生成的。第二用户端可以根据第二消息密钥和第二部分公钥生成临时公钥。通过上述方式,第二用户端可以根据第二部分私钥、目标信息和第二部分公钥生成临时公钥。
进一步地,在本申请一些实施例中,根据第二杂凑值和目标信息生成第二消息密钥,可以包括按照以下公式生成第二消息密钥:
Figure BDA0002332737670000111
其中,r2为第二消息密钥,M为目标信息,H(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数,
Figure BDA0002332737670000112
为H(k2)中的元素,H(k2)为第二杂凑值,
Figure BDA0002332737670000113
k2为第二部分私钥。
进一步地,在本申请一些实施例中,根据第二消息密钥和第二部分公钥生成临时公钥,包括按照以下公式生成临时密钥:
Q2=r2·A2
其中,Q2为临时公钥,r2为第二消息密钥,A2为第二部分公钥。
进一步地,在本申请一些实施例中,在本申请一些实施例中,第二用户端根据中间变量生成第二部分签名,包括按照以下公式生成第二部分签名:
S=(S1+r2)·s2
其中,S为第二部分签名,S1为中间变量,r2为第二消息密钥,s2为第二公钥标量。
进一步地,在本申请一些实施例中,第二用户端根据第一部分签名和第二部分签名生成目标信息的目标签名,可以包括按照以下公式生成目标信息的目标签名:
δM=ENC(R)||ENC(S);
其中,δM为目标信息的目标签名,R为第一部分签名,S为第二部分签名,ENC(·)为将输入按照小端格式编码为b比特长的字符串的编码函数。
进一步地,在本申请一些实施例中,第二用户端根据协同公钥确定目标签名是否正确,可以包括验证以下等式是否正确:
S·B=R+h·A;
其中,R为第一部分签名,S为第二部分签名,B为循环群E的生成元,且B≠(0,1),E为由椭圆曲线上的点构成的加法循环群,可以定义为{(x,y)∈GF(p)×GF(p)且a·x2+y2=1+d·x2·y2},其中GF(p)为由整数0,1,2,…,p-1组成的有限域,A为协同公钥,h=H(ENC(R)||ENC(A)||PH(M)),M为目标信息,ENC(·)为将输入按照小端格式编码为b比特长的字符串的编码函数,PH(M)为M的SHA-512杂凑值。
图3示出了本申请一实施例中两方协同的EdDSA数字签名生成方法的流程图。如图3所示,该方法应用于第一用户端,可以包括以下步骤:
步骤S301,第一用户端生成并根据第一部分私钥生成第一部分公钥,并将第一部分公钥发送给第二用户端,其中,第二用户端用于根据第一部分公钥生成协同公钥。
步骤S302,第一用户端接收并根据第二用户端发送的第二部分公钥生成协同公钥,其中,第二部分公钥由第二用户端根据第二用户端所生成的第二部分私钥生成。
具体的,第一用户端将生成的第一部分公钥发送给第二用户端。第二用户端生成第二部分私钥,并根据第二部分私钥生成第二部分公钥。第一用户端生成第一部分私钥,并根据第一部分私钥生成第一部分公钥。第二用户端将生成的第二部分公钥发送给第一用户端。第二用户端根据第一部分公钥生成协同公钥。第一用户端根据第二部分公钥生成协同公钥。其中,第一部分私钥为签名私钥的一部分,第二部分私钥为签名私钥的一部分。第一部分公钥为协同公钥的一部分,第二部分公钥为协同公钥的一部分。
步骤S303,第一用户端接收第二用户端发送的临时公钥,其中,临时公钥由第二用户端根据待签名的目标信息和第二部分公钥生成。
步骤S304,第一用户端获取目标信息,根据第一部分私钥、目标信息、协同公钥和临时公钥生成第一部分签名和中间变量,并将中间变量和第一部分签名发送给第二用户端,其中,第二用户端用于根据中间变量生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。
具体的,第二用户端获取待签名的目标信息。其中,目标信息可以是电子商务或电子证券等相关的交易信息或账单信息等。第二用户端根据第二部分私钥、目标信息和第二部分公钥生成临时公钥。第二用户端将生成的临时公钥发送至第一用户端。第一用户端获取目标信息。第一用户端根据第一部分私钥、目标信息、协同公钥和临时公钥生成第一部分签名和中间变量。其中,第一部分签名为目标信息的签名的一部分。第二用户端根据接收到的中间变量生成第二部分签名。其中,第二部分签名为目标信息的签名的一部分。第二用户端可以根据第一部分签名和第二部分签名生成目标信息的目标签名。
上述方案中,第一用户端和第二用户端各自生成第一部分私钥和第二部分私钥,在不泄露各自的部分私钥的情况下,第一用户端与第二用户端协同生成协同公钥,之后,第一用户端和第二用户端分别利用各自的部分私钥和协同公钥对待签名的目标信息进行签名,分别得到第一部分签名和第二部分签名,然后,第二用户端可以根据第一部分签名和第二部分签名生成目标信息的目标签名,从而实现了在两方不泄露自己的部分私钥并且无法获得完整的签名私钥的情况下共同完成对目标信息的数字签名,即,实现在两方之间分布式地完成数字签名,数字签名必须由两方共同参与,并且在签名过程中没有恢复完整的签名密钥,保证签名密钥的安全性和参与方的公平性;此外,上述方法是两方协同的EdDSA签名生成方法,相比于现有的数字签名算法,本方案的运算速度更快,而且密钥与签名空间较小。
进一步地,在本申请一些实施例中,第一用户端根据第一部分私钥生成第一部分公钥,包括按照以下公式生成第一部分公钥:
A1=s1·B;
其中,A1为第一部分公钥,
Figure BDA0002332737670000131
其中,s1为第一公钥标量,
Figure BDA0002332737670000132
为H(k1)中的元素,其中,i=c,…,n-1,H(k1)为第一杂凑值,k1为第一部分私钥,
Figure BDA0002332737670000141
b为满足2b-1>p的整数,p为素数,c为辅因子,是以2为底的对数,n为满足c≤n<b的整数,B为循环群E的生成元,且B≠(0,1),E为由椭圆曲线上的点构成的加法循环群,可以定义为{(x,y)∈GF(p)×GF(p)且a·x2+y2=1+d·x2·y2},其中GF(p)为由整数0,1,2,…,p-1组成的有限域。
进一步地,在本申请一些实施例中,第一用户端根据第二部分公钥生成协同公钥,包括按照以下公式生成协同公钥。
A=s1·A2
其中,A为协同公钥,A2为第二部分公钥,s1为第一公钥标量。
进一步地,在本申请一些实施例中,第一用户端根据第一部分私钥、目标信息、协同公钥和临时公钥生成第一部分签名和中间变量,包括按照以下公式生成第一部分签名和中间变量:
R=r1·A+Q2
S1=(r1+h)·s1
其中,R为第一部分签名,S1为中间变量,A为协同公钥,Q2为临时公钥,
Figure BDA0002332737670000142
Figure BDA0002332737670000143
为H(k1)中的元素,H(k1)为第一杂凑值,k1为第一部分私钥,
Figure BDA0002332737670000144
r1为第一消息密钥,h=H(ENC(R)||ENC(A)||PH(M)),H(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数,M为目标信息,ENC(·)为将输入按照小端格式编码为b比特长的字符串的编码函数,PH(M)为M的SHA-512杂凑值。
图4示出了本申请一实施例中两方协同的EdDSA数字签名生成方法的流程图。如图4所示,该方法应用于第一用户端和第二用户端,可以包括以下步骤:
步骤S401,第二用户端获取待签名的目标信息,根据目标信息和第二部分私钥生成第二消息密钥,并根据第二消息密钥和第二部分公钥生成临时公钥。
步骤S402,第二用户端将临时公钥发送给第一用户端。
步骤S403,第一用户端获取目标信息,根据目标信息和第一部分私钥生成第一消息密钥,并根据第一消息密钥、临时公钥、目标信息和协同公钥生成第一部分签名和中间变量,其中,协同公钥由第一用户端与第二用户端按照预设的密钥生成算法协同生成。
步骤S404,第一用户端将中间变量和第一部分签名发送给第二用户端。
步骤S405,第二用户端根据中间变量和第二消息密钥生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。
上述方案中,第一用户端和第二用户端各自生成第一部分私钥和第二部分私钥,并且协同生成协同公钥,之后,第一用户端和第二用户端分别利用各自的部分私钥和协同公钥对待签名的目标信息进行签名,分别得到第一部分签名和第二部分签名,然后,第二用户端可以根据第一部分签名和第二部分签名生成目标信息的目标签名,从而实现了在两方不泄露自己的部分私钥并且无法获得完整的签名私钥的情况下共同完成对目标信息的数字签名,可以有效保证签名密钥的安全性和参与方的公平性;此外,上述方法是两方协同的EdDSA签名生成方法,相比于现有的数字签名算法,本方案的运算速度更快,而且密钥与签名空间较小。
请参考图5,图5示出了本申请一实施例中的预设的密钥生成算法的示意图。在图5中,P1表示第一用户端,P2表示第二用户端。如图5所示,密钥生成算法包括以下步骤:
步骤1,P1生成b比特长的随机数k1作为第一部分私钥,对第一部分私钥k1执行哈希运算,得到第一杂凑值
Figure BDA0002332737670000151
计算第一公钥标量
Figure BDA0002332737670000152
Figure BDA0002332737670000153
并由此计算第一部分公钥A1=s1·B,并将第一部分公钥A1发送给P2
步骤2,P2生成b比特长的随机数k2作为第二部分私钥,对第二部分私钥k2执行哈希运算,得到第二杂凑值
Figure BDA0002332737670000154
计算第二公钥标量
Figure BDA0002332737670000155
Figure BDA0002332737670000156
并由此计算第二部分公钥A2=s2·B,将第二部分公钥A2发送给P1
步骤3,P1根据第一公钥标量和第二部分公钥生成协同公钥A,即计算A=s1·A2;P2根据第二公钥标量和第一部分公钥生成协同公钥A,即计算A=s2·A1
其中,H(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数,其中,b为满足2b-1>p的整数,p为素数,c为辅因子,是以2为底的对数,n为满足c≤n<b的整数,B为循环群E的生成元,且B≠(0,1),E为由椭圆曲线上的点构成的加法循环群,定义为{(x,y)∈GF(p)×GF(p)且a·x2+y2=1+d·x2·y2},GF(p)为由整数0,1,2,…,p-1组成的有限域。
请参考图6,图6示出了本申请一实施例中的预设的签名生成算法的示意图。在图6中,P1表示第一用户端,P2表示第二用户端。如图6所示,签名生成算法包括以下步骤:
步骤1,P2获取目标信息M,并根据目标信息M和第二杂凑值H(k2)计算第二消息密钥r2,即计算
Figure BDA0002332737670000161
根据第二消息密钥r2和第二部分公钥A2生成临时公钥Q2,即计算Q2=r2·A2,将临时公钥Q2发送给P1
步骤2,P1获取目标信息M,并根据目标信息M和第一杂凑值H(k1)计算计算第一消息密钥r1,即计算
Figure BDA0002332737670000162
根据第一消息密钥r1、协同公钥A和临时公钥Q2生成第一部分签名R,即计算R=r1·A+Q2;P1根据第一消息密钥r1、第一公钥标量s1、第一部分签名R、协同公钥A和目标信息M生成中间变量S1,即计算S1=(r1+h)·s1,其中h是分别将第一部分签名R和协同公钥A序列化编码后,连同PH(M)一起执行哈希运算得到的杂凑值,即h=H(ENC(R)||ENC(A)||PH(M)),P1将(R,S1)发送给P2
步骤3,P2根据中间变量S1、第二消息密钥r2和第二公钥标量s2生成第二部分签名S,即计算S=(S1+r2)·s2,并根据第一部分签名R和第二部分签名S生成目标信息M的目标签名δM,即计算δM=ENC(R)||ENC(S),即序列化编码(R,S)得到最终关于目标信息M的目标签名δM,通过验证等式S·B=R+h·A是否成立来验证目标签名的正确性,若等式成立,则目标签名正确并输出目标签名δM,否则终止协议。
其中,B为循环群E的生成元,且B≠(0,1),E为由椭圆曲线上的点构成的加法循环群,可以定义为{(x,y)∈GF(p)×GF(p)且a·x2+y2=1+d·x2·y2},其中GF(p)为由整数0,1,2,...,p-1组成的有限域,ENC(·)为将输入按照小端格式编码为b比特长的字符串的编码函数,PH(M)为M的SHA-512杂凑值,H(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
请参考图7,图7示出了在本实施例中的两方协同的EdDSA数字签名生成方法的顺序图。如图7所示,该方法包括以下步骤:
步骤1,第一用户端生成第一部分私钥,根据第一部分私钥生成第一杂凑值,根据第一杂凑值生成第一公钥标量,根据第一公钥标量生成第一部分公钥,具体地,第一用户端生成b比特长的随机数k1作为第一部分私钥,对第一部分私钥k1执行哈希运算,得到第一杂凑值
Figure BDA0002332737670000163
计算第一公钥标量
Figure BDA0002332737670000164
Figure BDA0002332737670000165
并由此计算第一部分公钥A1=s1·B;
步骤2,第一用户端将第一部分公钥A1发送给第二用户端;
步骤3,第二用户端生成第二部分私钥,根据第二部分私钥生成第二杂凑值,根据第二杂凑值生成第二公钥标量,根据第二公钥标量生成第二部分公钥,具体地,第二用户端生成b比特长的随机数k2作为第二部分私钥,对第二部分私钥k2执行哈希运算,得到第二杂凑值
Figure BDA0002332737670000171
计算第二公钥标量
Figure BDA0002332737670000172
Figure BDA0002332737670000173
并由此计算第二部分公钥A2=s2·B;
步骤4,第二用户端将第二部分公钥A2发送给第一用户端;
步骤5,第一用户端根据第一公钥标量和第二部分公钥生成协同公钥,具体地,根据第一公钥标量s1和第二部分公钥A2生成协同公钥A,即计算A=s1·A2
步骤6,第二用户端根据第二公钥标量和第一部分公钥生成协同公钥,具体地,根据第二公钥标量s2和第一部分公钥A1生成协同公钥A,即计算A=s2·A1
步骤7,第二用户端获取待签名的目标信息,并根据第二杂凑值和目标信息生成第二消息密钥,根据第二消息密钥和第二部分公钥生成临时公钥,具体地,根据目标信息M和第二杂凑值H(k2)计算第二消息密钥r2,即计算
Figure BDA0002332737670000174
根据第二消息密钥r2和第二部分公钥A2生成临时公钥Q2,即计算Q2=r2·A2
步骤8,第二用户端将临时公钥Q2发送给第一用户端;
步骤9,第一用户端获取目标信息,并根据第一杂凑值和目标信息生成第一消息密钥,根据第一消息密钥、协同公钥和临时公钥生成第一部分签名,根据第一消息密钥、第一部分签名、协同公钥和目标信息生成中间变量,具体地,根据目标信息M和第一杂凑值H(k1)计算计算第一消息密钥r1,即计算
Figure BDA0002332737670000175
根据第一消息密钥r1、协同公钥A和临时公钥Q2生成第一部分签名R,即计算R=r1·A+Q2,根据第一消息密钥r1、第一公钥标量s1、第一部分签名R、协同公钥A和目标信息M生成中间变量S1,即计算S1=(r1+h)·s1,其中h=H(ENC(R)||ENC(A)||PH(M));
步骤10,第一用户端将中间变量S1和第一部分签名R发送给第二用户端;
步骤11,第二用户端根据中间变量、第二消息密钥和第二公钥标量生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名,具体地,根据中间变量S1、第二消息密钥r2和第二公钥标量s2生成第二部分签名S,即计算S=(S1+r2)·s2,并根据第一部分签名R和第二部分签名S生成目标信息M的目标签名δM,即计算δM=ENC(R)||ENC(S);
步骤12,第二用户端根据协同公钥验证目标签名的正确性,在确定目标签名正确的情况下,输出目标签名,具体地,通过验证等式S·B=R+h·A是否成立来验证目标签名的正确性,若等式成立,则目标签名正确并输出目标签名δM,否则终止协议,其中,R为第一部分签名,S为第二部分签名,B为循环群E的生成元,E为由椭圆曲线上的点构成的加法循环群,A为协同公钥,h=H(ENC(R)||ENC(A)||PH(M)),M为目标信息。
其中,H(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数,其中,b为满足2b-1>p的整数,p为素数,c为辅因子,是以2为底的对数,n为满足c≤n<b的整数,B为循环群E的生成元,且B≠(0,1),E为由椭圆曲线上的点构成的加法循环群,定义为{(x,y)∈GF(p)×GF(p)且a·x2+y2=1+d·x2·y2},GF(p)为由整数0,1,2,…,p-1组成的有限域,ENC(·)为将输入按照小端格式编码为b比特长的字符串的编码函数,PH(M)为M的SHA-512杂凑值。
上述两方协同的EdDSA数字签名生成方法中,第一用户端和第二用户端各自生成第一部分私钥和第二部分私钥,在不泄露各自的部分私钥的情况下,第一用户端与第二用户端协同生成协同公钥,之后,第一用户端和第二用户端分别利用各自的部分私钥和协同公钥对待签名的目标信息进行签名,分别得到第一部分签名和第二部分签名,然后,第二用户端可以根据第一部分签名和第二部分签名生成目标信息的目标签名,从而实现了在两方不泄露自己的部分私钥并且无法获得完整的签名私钥的情况下共同完成对目标信息的数字签名,即,实现在两方之间分布式地完成数字签名,数字签名必须由两方共同参与,并且在签名过程中没有恢复完整的签名密钥,可以有效保证签名密钥的安全性和参与方的公平性;此外,上述方法是两方协同的EdDSA签名生成方法,相比于现有的数字签名算法,本方案的运算速度更快,而且密钥与签名空间较小。
基于同一发明构思,本申请实施例中还提供了一种两方协同的EdDSA数字签名生成装置,如下面的实施例所述。由于两方协同的EdDSA数字签名生成装置解决问题的原理与两方协同的EdDSA数字签名生成方法相似,因此两方协同的EdDSA数字签名生成装置的实施可以参见两方协同的EdDSA数字签名生成方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图8是本申请实施例的两方协同的EdDSA数字签名生成装置的一种结构框图,如图8所示,包括:生成模块801、第一接收模块802、获取模块803、第二接收模块804和签名模块805,下面对该结构进行说明。
生成模块801用于生成并根据第二部分私钥,生成第二部分公钥,并将第二部分公钥发送给第一用户端,其中,第一用户端用于根据第二部分公钥生成协同公钥。
第一接收模块802用于接收并根据第一用户端发送的第一部分公钥,生成协同公钥,其中,第一部分公钥由第一用户端根据第一用户端所生成的第一部分私钥生成。
获取模块803用于获取待签名的目标信息,根据第二部分私钥、目标信息和第二部分公钥生成临时公钥,并将临时公钥发送给第一用户端。
第二接收模块804用于接收第一用户端发送的第一部分签名和中间变量,其中,第一部分签名和中间变量由第一用户端根据第一部分私钥、目标信息、协同公钥和临时公钥生成。
签名模块805用于根据中间变量生成第二部分签名,并根据第一部分签名和第二部分签名生成目标信息的目标签名。
在本申请一些实施例中,该装置还可以包括验证模块,验证模块可以用于:在第二用户端根据第一部分签名和第二部分签名生成目标信息的目标签名之后,根据协同公钥确定目标签名是否正确;在确定目标签名正确的情况下,输出目标签名。
在本申请一些实施例中,第二用户端根据第二部分私钥生成第二部分公钥,可以包括:对第二部分私钥进行哈希运算,得到第二杂凑值;根据第二杂凑值生成第二公钥标量;根据第二公钥标量生成第二部分公钥。
在本申请一些实施例中,对第二部分私钥进行哈希运算,得到第二杂凑值,可以包括按照以下公式得到第二杂凑值:
Figure BDA0002332737670000191
其中,H(k2)为第二杂凑值,k2为第二部分私钥,
Figure BDA0002332737670000192
为第二杂凑值中的元素,H(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数,k2为b比特长的随机数,其中,b为满足2b-1>p的整数,p为素数;
根据第二杂凑值生成第二公钥标量,可以包括按照以下公式生成第二公钥标量:
Figure BDA0002332737670000193
其中,s2为第二公钥标量,
Figure BDA0002332737670000201
为第二杂凑值中的元素,其中,i=c,…,n-1,其中,c为辅因子,是以2为底的对数,n为满足c≤n<b的整数;
根据第二公钥标量生成第二部分公钥,可以包括按照以下公式生成第二部分公钥:
A2=s2·B;
其中,A2为第二部分公钥,s2为第二公钥标量,B为循环群E的生成元,E为由椭圆曲线上的点构成的加法循环群。
在本申请一些实施例中,第二用户端根据第一部分公钥生成协同公钥,可以包括按照以下公式生成协同公钥:
A=s2·A1
其中,A为协同公钥,A1为第一部分公钥,s2为第二公钥标量。
在本申请一些实施例中,第二用户端根据第二部分私钥、目标信息和第二部分公钥生成临时公钥,可以包括:根据第二杂凑值和目标信息生成第二消息密钥,其中,第二杂凑值是根据第二部分私钥生成的;根据第二消息密钥和第二部分公钥生成临时公钥。
在本申请一些实施例中,根据第二杂凑值和目标信息生成第二消息密钥,可以包括按照以下公式生成第二消息密钥:
Figure BDA0002332737670000202
其中,r2为第二消息密钥,M为目标信息,H(·)为在输入为任意长度比特串{0,1}*时输出2b比特长的密码杂凑函数,
Figure BDA0002332737670000203
为H(k2)中的元素,H(k2)为第二杂凑值,
Figure BDA0002332737670000204
k2为第二部分私钥;
根据第二消息密钥和第二部分公钥生成临时公钥,可以包括按照以下公式生成临时密钥:
Q2=r2·A2
其中,Q2为临时公钥,r2为第二消息密钥,A2为第二部分公钥。
在本申请一些实施例中,第二用户端根据中间变量生成第二部分签名,可以包括按照以下公式生成第二部分签名:
S=(S1+r2)·s2
其中,S为第二部分签名,S1为中间变量,r2为第二消息密钥,s2为第二公钥标量。
在本申请一些实施例中,第二用户端根据第一部分签名和第二部分签名生成目标信息的目标签名,可以包括按照以下公式生成目标信息的目标签名:
δM=ENC(R)||ENC(S);
其中,δM为目标信息的目标签名,R为第一部分签名,S为第二部分签名,ENC(·)为将输入按照小端格式编码为b比特长的字符串的编码函数。
在本申请一些实施例中,第二用户端根据协同公钥确定目标签名是否正确,可以包括验证以下等式是否正确:
S·B=R+h·A;
其中,R为第一部分签名,S为第二部分签名,B为循环群E的生成元,E为由椭圆曲线上的点构成的加法循环群,A为协同公钥,h=H(ENC(R)||ENC(A)||PH(M)),M为目标信息,ENC(·)为将输入按照小端格式编码为b比特长的字符串的编码函数,PH(M)为M的SHA-512杂凑值。
从以上的描述中,可以看出,本申请实施例实现了如下技术效果:第一用户端和第二用户端各自生成第一部分私钥和第二部分私钥,在不泄露各自的部分私钥的情况下,第一用户端与第二用户端协同生成协同公钥,之后,第一用户端和第二用户端分别利用各自的部分私钥和协同公钥对待签名的目标信息进行签名,分别得到第一部分签名和第二部分签名,然后,第二用户端可以根据第一部分签名和第二部分签名生成目标信息的目标签名,从而实现了在两方不泄露自己的部分私钥并且无法获得完整的签名私钥的情况下共同完成对目标信息的数字签名,即,实现在两方之间分布式地完成数字签名,数字签名必须由两方共同参与,并且在签名过程中没有恢复完整的签名密钥,保证签名密钥的安全性和参与方的公平性;此外,上述方法是两方协同的EdDSA签名生成方法,相比于现有的数字签名算法,本方案的运算速度更快,而且密钥与签名空间较小。
本申请实施方式还提供了一种计算机设备,具体可以参阅图9所示的基于本申请实施例提供的两方协同的EdDSA数字签名生成方法的计算机设备组成结构示意图,所述计算机设备具体可以包括输入设备91、处理器92、存储器93。其中,所述存储器93用于存储处理器可执行指令。所述处理器92执行所述指令时实现上述任意实施例中所述的两方协同的EdDSA数字签名生成方法的步骤。
在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该计算机设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施方式中还提供了一种基于两方协同的EdDSA数字签名生成方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述两方协同的EdDSA数字签名生成方法的步骤。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (18)

1.一种两方协同的EdDSA数字签名生成方法,其特征在于,应用于第二用户端,所述方法包括:
所述第二用户端生成并根据第二部分私钥,生成第二部分公钥,并将所述第二部分公钥发送给第一用户端,其中,所述第一用户端用于根据所述第二部分公钥生成协同公钥;
所述第二用户端接收并根据所述第一用户端发送的第一部分公钥,生成所述协同公钥,其中,所述第一部分公钥由所述第一用户端根据所述第一用户端所生成的第一部分私钥生成;
所述第二用户端获取待签名的目标信息,根据所述第二部分私钥、所述目标信息和所述第二部分公钥生成临时公钥,并将所述临时公钥发送给所述第一用户端;
所述第二用户端接收所述第一用户端发送的第一部分签名和中间变量,其中,所述第一部分签名和所述中间变量由所述第一用户端根据所述第一部分私钥、所述目标信息、所述协同公钥和所述临时公钥生成;
所述第二用户端根据所述中间变量生成第二部分签名,并根据所述第一部分签名和所述第二部分签名生成所述目标信息的目标签名。
2.根据权利要求1所述的方法,其特征在于,在所述第二用户端根据所述第一部分签名和所述第二部分签名生成所述目标信息的目标签名之后,还包括:
根据所述协同公钥确定所述目标签名是否正确;
在确定所述目标签名正确的情况下,输出所述目标签名。
3.根据权利要求2所述的方法,其特征在于,所述第二用户端根据所述第二部分私钥生成第二部分公钥,包括:
对所述第二部分私钥进行哈希运算,得到第二杂凑值;
根据所述第二杂凑值生成第二公钥标量;
根据所述第二公钥标量生成所述第二部分公钥。
4.根据权利要求3所述的方法,其特征在于,对所述第二部分私钥进行哈希运算,得到第二杂凑值,包括按照以下公式得到所述第二杂凑值:
Figure 370681DEST_PATH_IMAGE001
其中,
Figure 947156DEST_PATH_IMAGE002
为所述第二杂凑值,
Figure 76786DEST_PATH_IMAGE003
为所述第二部分私钥,
Figure 156738DEST_PATH_IMAGE004
为所述第二杂凑值中的元素,
Figure 41517DEST_PATH_IMAGE005
为在输入为任意长度比特串
Figure 42971DEST_PATH_IMAGE006
时输出
Figure 507451DEST_PATH_IMAGE007
比特长的密码杂凑函数,
Figure 993575DEST_PATH_IMAGE003
Figure 986939DEST_PATH_IMAGE008
比特长的随机数,其中,
Figure 6847DEST_PATH_IMAGE008
为满足
Figure 806176DEST_PATH_IMAGE009
的整数,
Figure 63982DEST_PATH_IMAGE010
为素数;
根据所述第二杂凑值生成第二公钥标量,包括按照以下公式生成所述第二公钥标量:
Figure 759405DEST_PATH_IMAGE011
其中,
Figure 797769DEST_PATH_IMAGE012
为所述第二公钥标量,
Figure 72892DEST_PATH_IMAGE013
为所述第二杂凑值中的元素,其中,
Figure 247522DEST_PATH_IMAGE014
,其中,
Figure 379426DEST_PATH_IMAGE015
为辅因子,是以2为底的对数,
Figure 577189DEST_PATH_IMAGE016
为满足
Figure 452741DEST_PATH_IMAGE017
的整数;
根据所述第二公钥标量生成所述第二部分公钥,包括按照以下公式生成所述第二部分公钥:
Figure 747456DEST_PATH_IMAGE018
其中,
Figure 987944DEST_PATH_IMAGE019
为所述第二部分公钥,
Figure 735321DEST_PATH_IMAGE012
为所述第二公钥标量,
Figure 414564DEST_PATH_IMAGE020
为循环群
Figure 298206DEST_PATH_IMAGE021
的生成元,
Figure 709596DEST_PATH_IMAGE021
为由椭圆曲线上的点构成的加法循环群。
5.根据权利要求3所述的方法,其特征在于,所述第二用户端根据所述第一部分公钥生成所述协同公钥,包括按照以下公式生成所述协同公钥:
Figure 944268DEST_PATH_IMAGE022
其中,
Figure 364885DEST_PATH_IMAGE023
为所述协同公钥,
Figure 103034DEST_PATH_IMAGE024
为所述第一部分公钥,
Figure 13221DEST_PATH_IMAGE012
为所述第二公钥标量。
6.根据权利要求3所述的方法,其特征在于,所述第二用户端根据所述第二部分私钥、所述目标信息和所述第二部分公钥生成临时公钥,包括:
根据所述第二杂凑值和所述目标信息生成第二消息密钥,其中,所述第二杂凑值是根据所述第二部分私钥生成的;
根据所述第二消息密钥和所述第二部分公钥生成临时公钥。
7.根据权利要求6所述的方法,其特征在于,根据所述第二杂凑值和所述目标信息生成第二消息密钥,包括按照以下公式生成所述第二消息密钥:
Figure 672873DEST_PATH_IMAGE025
其中,
Figure 428339DEST_PATH_IMAGE026
为所述第二消息密钥,M为目标信息,
Figure 555082DEST_PATH_IMAGE005
为在输入为任意长度比特串
Figure 573854DEST_PATH_IMAGE006
时输出
Figure 251960DEST_PATH_IMAGE007
比特长的密码杂凑函数,
Figure 76697DEST_PATH_IMAGE027
Figure 992700DEST_PATH_IMAGE002
中的元素,
Figure 979111DEST_PATH_IMAGE002
为所述第二杂凑值,
Figure 675671DEST_PATH_IMAGE001
Figure 976202DEST_PATH_IMAGE003
为所述第二部分私钥;
根据所述第二消息密钥和所述第二部分公钥生成临时公钥,包括按照以下公式生成所述临时公钥 :
Figure 809029DEST_PATH_IMAGE028
其中,
Figure 966341DEST_PATH_IMAGE029
为所述临时公钥,
Figure 822302DEST_PATH_IMAGE026
为所述第二消息密钥,
Figure 723262DEST_PATH_IMAGE019
为所述第二部分公钥。
8.根据权利要求6所述的方法,其特征在于,所述第二用户端根据所述中间变量生成第二部分签名,包括按照以下公式生成所述第二部分签名:
Figure 676174DEST_PATH_IMAGE030
其中,S为所述第二部分签名,
Figure 207650DEST_PATH_IMAGE031
为所述中间变量,
Figure 347644DEST_PATH_IMAGE026
为所述第二消息密钥,
Figure 52295DEST_PATH_IMAGE012
为所述第二公钥标量。
9.根据权利要求1所述的方法,其特征在于,所述第二用户端根据所述第一部分签名和所述第二部分签名生成所述目标信息的目标签名,包括按照以下公式生成所述目标信息的目标签名:
Figure 594135DEST_PATH_IMAGE032
其中,
Figure 296511DEST_PATH_IMAGE033
为所述目标信息的目标签名,R为所述第一部分签名,S为所述第二部分签名,
Figure 189381DEST_PATH_IMAGE034
为将输入按照小端格式编码为
Figure 635406DEST_PATH_IMAGE008
比特长的字符串的编码函数。
10.根据权利要求2所述的方法,其特征在于,所述第二用户端根据所述协同公钥确定所述目标签名是否正确,包括验证以下等式是否正确:
Figure 297331DEST_PATH_IMAGE035
其中,R为第一部分签名,S为第二部分签名,
Figure 232926DEST_PATH_IMAGE020
为循环群
Figure 285196DEST_PATH_IMAGE021
的生成元,
Figure 331649DEST_PATH_IMAGE021
为由椭圆曲线上的点构成的加法循环群,
Figure 110731DEST_PATH_IMAGE023
为协同公钥,
Figure 951648DEST_PATH_IMAGE036
Figure 491214DEST_PATH_IMAGE005
为在输入为任意长度比特串
Figure 341358DEST_PATH_IMAGE006
时输出
Figure 915559DEST_PATH_IMAGE007
比特长的密码杂凑函数,M为目标信息,
Figure 927377DEST_PATH_IMAGE034
为将输入按照小端格式编码为
Figure 282135DEST_PATH_IMAGE008
比特长的字符串的编码函数,
Figure 608074DEST_PATH_IMAGE037
Figure 99098DEST_PATH_IMAGE038
的SHA-512杂凑值。
11.一种两方协同的EdDSA数字签名生成方法,其特征在于,应用于第一用户端,包括:
所述第一用户端生成并根据第一部分私钥生成第一部分公钥,并将所述第一部分公钥发送给第二用户端,其中,所述第二用户端用于根据所述第一部分公钥生成协同公钥;
所述第一用户端接收并根据所述第二用户端发送的第二部分公钥生成所述协同公钥,其中,所述第二部分公钥由所述第二用户端根据所述第二用户端所生成的第二部分私钥生成;
所述第一用户端接收所述第二用户端发送的临时公钥,其中,所述临时公钥由所述第二用户端根据待签名的目标信息和所述第二部分公钥生成;
所述第一用户端获取所述目标信息,根据所述第一部分私钥、所述目标信息、所述协同公钥和所述临时公钥生成第一部分签名和中间变量,并将所述中间变量和所述第一部分签名发送给所述第二用户端,其中,所述第二用户端用于根据所述中间变量生成第二部分签名,并根据所述第一部分签名和所述第二部分签名生成所述目标信息的目标签名。
12.根据权利要求11所述的方法,其特征在于,所述第一用户端根据第一部分私钥生成第一部分公钥,包括按照以下公式生成所述第一部分公钥:
Figure 547397DEST_PATH_IMAGE039
其中,
Figure 123872DEST_PATH_IMAGE024
为所述第一部分公钥,
Figure 50240DEST_PATH_IMAGE040
,其中,
Figure 395770DEST_PATH_IMAGE041
为第一公钥标量,
Figure 14971DEST_PATH_IMAGE020
为循环群
Figure 813162DEST_PATH_IMAGE021
的生成元,
Figure 746483DEST_PATH_IMAGE021
为由椭圆曲线上的点构成的加法循环群,
Figure 946521DEST_PATH_IMAGE042
Figure 736622DEST_PATH_IMAGE043
为第一杂凑值,
Figure 225372DEST_PATH_IMAGE044
为所述第一部分私钥,
Figure 759122DEST_PATH_IMAGE045
Figure 82174DEST_PATH_IMAGE008
为满足
Figure 777598DEST_PATH_IMAGE046
的整数,
Figure 753644DEST_PATH_IMAGE010
为素数,
Figure 91084DEST_PATH_IMAGE015
为辅因子,是以2为底的对数,
Figure 135DEST_PATH_IMAGE016
为满足
Figure 335301DEST_PATH_IMAGE017
的整数。
13.根据权利要求12所述的方法,其特征在于,所述第一用户端根据所述第二部分公钥生成协同公钥,包括按照以下公式生成所述协同公钥:
Figure 595381DEST_PATH_IMAGE047
其中,
Figure 470933DEST_PATH_IMAGE023
为所述协同公钥,
Figure 437752DEST_PATH_IMAGE019
为所述第二部分公钥,
Figure 6137DEST_PATH_IMAGE041
为所述第一公钥标量。
14.根据权利要求13所述的方法,其特征在于,所述第一用户端根据所述第一部分私钥、所述目标信息、所述协同公钥和所述临时公钥生成第一部分签名和中间变量,包括按照以下公式生成所述第一部分签名和所述中间变量:
Figure 487934DEST_PATH_IMAGE048
Figure DEST_PATH_IMAGE049
其中,R为所述第一部分签名,
Figure 636018DEST_PATH_IMAGE031
为所述中间变量,
Figure 785240DEST_PATH_IMAGE023
为所述协同公钥,
Figure 462209DEST_PATH_IMAGE029
为所述临时公钥,
Figure 431302DEST_PATH_IMAGE050
Figure DEST_PATH_IMAGE051
Figure 648657DEST_PATH_IMAGE043
中的元素,
Figure 386805DEST_PATH_IMAGE043
为第一杂凑值,
Figure 296993DEST_PATH_IMAGE044
为所述第一部分私钥,
Figure 753382DEST_PATH_IMAGE052
Figure DEST_PATH_IMAGE053
为第一消息密钥,
Figure DEST_PATH_IMAGE055
Figure 37077DEST_PATH_IMAGE005
为在输入为任意长度比特串
Figure 98574DEST_PATH_IMAGE057
时输出
Figure 648504DEST_PATH_IMAGE007
比特长的密码杂凑函数,M为所述目标信息,
Figure 857768DEST_PATH_IMAGE034
为将输入按照小端格式编码为
Figure 620188DEST_PATH_IMAGE008
比特长的字符串的编码函数,
Figure 332929DEST_PATH_IMAGE037
Figure 584919DEST_PATH_IMAGE038
的SHA-512杂凑值。
15.一种两方协同的EdDSA数字签名生成方法,其特征在于,应用于第一用户端和第二用户端,所述方法包括:
所述第二用户端获取待签名的目标信息,根据所述目标信息和第二部分私钥生成第二消息密钥,并根据所述第二消息密钥和第二部分公钥生成临时公钥;
所述第二用户端将所述临时公钥发送给所述第一用户端;
所述第一用户端获取所述目标信息,根据所述目标信息和第一部分私钥生成第一消息密钥,并根据所述第一消息密钥、所述临时公钥、所述目标信息和协同公钥生成第一部分签名和中间变量,其中,所述协同公钥由所述第一用户端与所述第二用户端按照预设的密钥生成算法协同生成;
所述第一用户端将所述中间变量和所述第一部分签名发送给所述第二用户端;
所述第二用户端根据所述中间变量和所述第二消息密钥生成第二部分签名,并根据所述第一部分签名和所述第二部分签名生成所述目标信息的目标签名。
16.一种两方协同的EdDSA数字签名生成装置,其特征在于,位于第二用户端中,包括:
生成模块,用于生成并根据第二部分私钥,生成第二部分公钥,并将所述第二部分公钥发送给第一用户端,其中,所述第一用户端用于根据所述第二部分公钥生成协同公钥;
第一接收模块,用于接收并根据所述第一用户端发送的第一部分公钥,生成所述协同公钥,其中,所述第一部分公钥由所述第一用户端根据所述第一用户端所生成的第一部分私钥生成;
获取模块,用于获取待签名的目标信息,根据所述第二部分私钥、所述目标信息和所述第二部分公钥生成临时公钥,并将所述临时公钥发送给所述第一用户端;
第二接收模块,用于接收所述第一用户端发送的第一部分签名和中间变量,其中,所述第一部分签名和所述中间变量由所述第一用户端根据所述第一部分私钥、所述目标信息、所述协同公钥和所述临时公钥生成;
签名模块,用于根据所述中间变量生成第二部分签名,并根据所述第一部分签名和所述第二部分签名生成所述目标信息的目标签名。
17.一种计算机设备,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至10中任一项所述方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至10中任一项所述方法的步骤。
CN201911343574.8A 2019-12-24 2019-12-24 两方协同的EdDSA数字签名生成方法和装置 Active CN111147254B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911343574.8A CN111147254B (zh) 2019-12-24 2019-12-24 两方协同的EdDSA数字签名生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911343574.8A CN111147254B (zh) 2019-12-24 2019-12-24 两方协同的EdDSA数字签名生成方法和装置

Publications (2)

Publication Number Publication Date
CN111147254A CN111147254A (zh) 2020-05-12
CN111147254B true CN111147254B (zh) 2022-09-02

Family

ID=70519563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911343574.8A Active CN111147254B (zh) 2019-12-24 2019-12-24 两方协同的EdDSA数字签名生成方法和装置

Country Status (1)

Country Link
CN (1) CN111147254B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111740843A (zh) * 2020-06-18 2020-10-02 成都卫士通信息产业股份有限公司 分布式EdDSA签名方法、装置、设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10530585B2 (en) * 2017-06-07 2020-01-07 Bar-Ilan University Digital signing by utilizing multiple distinct signing keys, distributed between two parties
CN107911217B (zh) * 2017-10-30 2021-02-26 陈彦丰 基于ecdsa算法协同生成签名的方法、装置和数据处理系统
EP3496331A1 (en) * 2017-12-08 2019-06-12 Koninklijke Philips N.V. Two-party signature device and method
CN109936455B (zh) * 2017-12-19 2022-06-07 航天信息股份有限公司 一种数字签名的方法、装置和系统
CN110365487A (zh) * 2019-07-19 2019-10-22 北京向芯力科技有限公司 一种基于sm2算法的协同签名方法与装置

Also Published As

Publication number Publication date
CN111147254A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
JP7208989B2 (ja) ブロックチェーン上に検証鍵を記録するためのシステム
CN110351096B (zh) 多重签名方法、签名中心、程序介质及电子设备
WO2020019341A1 (zh) 区块链账户的处理方法、装置和存储介质
CN110380862B (zh) 基于隐式证书的签名验证方法、装置和计算机设备
CN111147246B (zh) 一种基于sm2的多方协同签名方法及系统
CN110311776B (zh) 范围证明方法、装置、计算机设备和存储介质
CN106878022B (zh) 在区块链上签名、验证的方法及装置
WO2019034983A1 (en) GENERATION OF RANDOM NUMBERS IN A BLOCK CHAIN
CN111566988A (zh) 跨越以无信任或无交易员方式操作的群组执行计算任务的计算机实现的系统和方法
MXPA04010155A (es) Uso de isogenias para el diseno de criptosistemas.
US20210377048A1 (en) Digital Signature Method, Signature Information Verification Method, Related Apparatus and Electronic Device
CN111010285B (zh) 一种适用于轻量级客户端的sm2两方协同签名方法及介质
US11616641B2 (en) Computer implemented system and method for sharing a common secret
JP4988448B2 (ja) 一括検証装置、プログラム及び一括検証方法
CN112436938A (zh) 数字签名的生成方法、装置和服务器
CN110233733B (zh) 面向区块链智能合约的不可拆分数字签名通用构造方法
CN113939821A (zh) 用于在工作量证明区块链网络上进行非并行挖掘的系统和方法
CN111147254B (zh) 两方协同的EdDSA数字签名生成方法和装置
US20220278843A1 (en) Computer implemented method and system for knowledge proof in blockchain transactions
CN108667619B (zh) 一种sm9数字签名的白盒实现方法与装置
Orman Recent parables in cryptography
WO2023159849A1 (zh) 一种数字签名方法、计算机设备及介质
CN117795901A (zh) 生成数字签名份额
CN110336674B (zh) 范围证明方法、装置、计算机设备和存储介质
WO2021127951A1 (zh) 两方协同的EdDSA数字签名生成方法和装置

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230506

Address after: 518061 room 304, block B, building 5, software industry base, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: JUZIX TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: WUHAN University

Address before: 518061 room 304, block B, building 5, software industry base, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: JUZIX TECHNOLOGY (SHENZHEN) Co.,Ltd.