CN115459924A - 一种数字签名方法、装置及电子设备 - Google Patents
一种数字签名方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115459924A CN115459924A CN202211061563.2A CN202211061563A CN115459924A CN 115459924 A CN115459924 A CN 115459924A CN 202211061563 A CN202211061563 A CN 202211061563A CN 115459924 A CN115459924 A CN 115459924A
- Authority
- CN
- China
- Prior art keywords
- round
- output result
- function
- ith
- round function
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3252—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3255—Cryptographic 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 group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本公开提供了一种数字签名方法、装置及电子设备,涉及数据处理技术领域,尤其涉及数据安全技术领域。具体实现方案为:第一签名方接收主节点发送的第一子秘钥片,所述第一子秘钥片为同态加密公私钥对中的私钥拆分为q份子秘钥片中的一份;基于第一随机数确定第一轮函数的第i轮输出结果,基于所述第一随机数和所述第一子秘钥片确定第二轮函数的第i轮输出结果和第三轮函数的第i轮输出结果;将所述第一轮函数的第i轮输出结果、所述第二轮函数的第i轮输出结果和所述第三轮函数的第i轮输出结果,发送至第二签名方,以得到所述第一轮函数的第一目标输出结果、所述第二轮函数的第二目标输出结果以及所述第三轮函数的第三目标输出结果。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及数据安全技术领域的数字签名方法、装置及电子设备。
背景技术
随着椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)在加密货币的广泛使用,门限ECDSA数字签名方案也备受关注。减少门限ECDSA数字签名的通信量,提高门限ECDSA数字签名的效率是数据安全技术领域一直追求的目标。
发明内容
本公开提供了一种数字签名方法、装置及电子设备。
根据本公开的第一方面,提供了一种数字签名方法,包括:
第一签名方接收主节点发送的第一子秘钥片,所述第一子秘钥片为主节点将同态加密公私钥对中的私钥拆分为q份子秘钥片中的一份;
所述第一签名方基于第一随机数确定第一轮函数的第i轮输出结果,基于所述第一随机数和所述第一子秘钥片确定第二轮函数的第i轮输出结果和第三轮函数的第i轮输出结果;
所述第一签名方分别将所述第一轮函数的第i轮输出结果、所述第二轮函数的第i轮输出结果和所述第三轮函数的第i轮输出结果,发送至第二签名方,以得到所述第一轮函数的第一目标输出结果、所述第二轮函数的第二目标输出结果以及所述第三轮函数的第三目标输出结果;
其中,所述第一目标输出结果用于作为所述第二轮函数的第t轮输入,所述第二目标输出结果用于作为所述第三轮函数的第一轮输入,所述第三目标输出结果用于确定数字签名;i<t,t≤q,q为签名方的数量。
根据本公开的第二方面,提供了一种数字签名装置,所述数字签名装置包括:
接收模块,用于接收主节点发送的第一子秘钥片,所述第一子秘钥片为主节点将同态加密公私钥对中的私钥拆分为q份子秘钥片中的一份;
确定模块,用于基于第一随机数确定第一轮函数的第i轮输出结果,基于第一随机数和所述第一子秘钥片确定第二轮函数的第i轮输出结果和第三轮函数的第i轮输出结果;
发送模块,用于分别将所述第一轮函数的第i轮输出结果、所述第二轮函数的第i轮输出结果和所述第三轮函数的第i轮输出结果,发送至第二签名方,以得到所述第一轮函数的第一目标输出结果、所述第二轮函数的第二目标输出结果以及所述第三轮函数的第三目标输出结果;
其中,所述第一目标输出结果用于作为所述第二轮函数的第t轮输入,所述第二目标输出结果用于作为所述第三轮函数的第一轮输入,所述第三目标输出结果用于确定数字签名;i<t,t≤q,q为签名方的数量。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的数字签名方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述的数字签名方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令在被处理器执行时实现根据上述的数字签名方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的数字签名方法的一种可选处理流程示意图;
图2是本公开实施例提供的第一签名方基于第一随机数确定第一轮函数的第i轮输出结果的一种可选处理流程示意图;
图3是本公开实施例提供的第一签名方基于第一随机数和第一子秘钥片确定第二轮函数的第i轮输出结果的一种可选处理流程示意图;
图4是本公开实施例提供的第一签名方基于第一随机数和第一子秘钥片,确定第三轮函数的第i轮输出结果的一种可选处理流程示意图;
图5是本公开实施例提供的数字签名方法的一种详细处理流程示意图;
图6是本公开实施例提供的数字签名装置的一种可选组成结构示意图;
图7是用来实现本公开实施例的图像分类模型训练方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。
在对本公开实施例进行详细描述之前,对本公开涉及的相关名词进行说明。
1、椭圆曲线数字签名算法(ECDSA):是使用椭圆曲线密码(EllipticCurveCryptography,ECC)对数字签名算法(Digital Signature Algorithm,DSA)的模拟。
基于ECDSA的签名过程如下:
1)、选择一条椭圆曲线Ep(a,b),和基点G。
2)、选择私有密钥k(k<n,n为G的阶),利用基点G计算公开密钥K=kG。
3)、产生一个随机整数r(r<n),计算点R=rG。
4)、将原数据和点R的坐标值i,y作为参数,计算SHA1做为hash,即Hash=SHA1(原数据,i,y)。
5)、计算s≡r-Hash*k(mod n)。
6)、r和s做为签名值,如果r和s其中一个为0,重新从第3步开始执行。
基于ECDSA的验证过程如下:
1)、接受方在收到消息(m)和签名值(r,s)后,进行以下运算:
2)、计算:sG+H(m)P=(i1,y1),r1≡i1 mod p。
3)、验证等式:r1≡r mod p。
4)、如果等式成立,接受签名,否则签名无效。
3、同态加密,是一种特殊的加密方法,允许直接对加密数据执行计算,如加法和乘法,而计算过程不会泄露原文的任何信息。计算的结果仍然是加密的,拥有密钥的用户对处理过的密文数据进行解密后,得到的正好是处理后原文的结果。
其中,同态加密只支持加法或乘法中的一种运算。只支持加法运算的又叫加法同态加密。
基于ECDSA的数字签名在区块链钱包、分布式系统秘钥管理和分布式系统权限管理等领域广泛应用。基于ECDSA的数字签名的门限方案包括(2,2)门限签名方案、(2,q)门限签名方案和(t,q)门限签名方案。其中,(2,2)门限签名方案采用乘法秘密分享技术产生各个签名方(也称为参与方)的签名子秘钥,并在签名生成阶段采用Paillier加法同态加密技术计算ECDSA签名生成过程中随机数k的倒数与私钥x的乘积(即x/k);但是,(2,2)门限签名方案在签名时需要高精度的Paillier加密和解密计算,导致签名效率低。(2,q)门限签名方案把ECDSA签名计算中的x/k转换为w1+w2,这样虽然降低了签名的计算量,但导致了通信量的增加。(t,q)门限签名方案采用加法同态加密技术或不经意传输技术,将ECDSA签名生成过程中的两个重要计算x/k和1/k分别转化为Shamir加法秘密分享;(t,q)门限签名方案在生成签名时需要任意两个参与方之间执行两次乘法转加法(MtA)协议,完成(k1+…+kq)·(d1+…+dq)或的计算,其中di(i∈[1,q])、ki(i∈[1,q])分别表示参与方的私钥以及随机数。这种方式的缺点在于MtA协议需要每个用户与其他用户两两通信,产生大量的通信量和通信轮数,进而产生大量的计算和通信开销,导致(t,q)门限签名方案的签名效率低。
基于此,本公开实施例提供一种数字签名方法,图1是本公开提供的数字签名方法的一种可选处理流程示意图,数字签名方法至少可以包括以下步骤:
步骤S101,第一签名方接收主节点发送的第一子秘钥片。
在一些实施例中,主节点生成同态加密公私钥对,同态加密公私钥对包括同态加密公钥和私钥;主节点将私钥拆分为q份子秘钥片,并向q个签名方分别发送一份子秘钥片,各签名方的子秘钥片不同。作为示例,向第一签名方发送第一子秘钥片,向第二签名方发送第二子秘钥片。
在一些实施例中,同态加密公私钥对包括(PEp,dDP),其中,PEp为同态加密公钥,dDP为私钥;将dDP拆分为q份子秘钥片得到d1dp、d2dp、…、dqdp;其中,dDP=(d1dp+d2dp+…+dqdp)。q份子秘钥片为q份解密子秘钥片,加密ECDSA私钥为d为ECDSA签名的私钥。
步骤S102,第一签名方基于第一随机数确定第一轮函数的第i轮输出结果,基于所述第一随机数和所述第一子秘钥片确定第二轮函数的第i轮输出结果和第三轮函数的第i轮输出结果。
在一些实施例中,签名方针对第一轮函数进行t轮计算,t≤q;具体的,每个签名方针对第一轮函数进行一轮计算;作为示例,第一签名方针对第一轮函数进行第i轮计算,第二签名方针对第一轮函数进行第i+1轮计算,以此类推。
在一些实施例中,第一签名方基于第一随机数确定第一轮函数的第i轮输出结果的一种可选处理流程,如图2所示,至少包括以下步骤:
步骤S201,第一签名方接收所述第一轮函数的第i-1轮输出结果。
在一些实施例中,第i-1轮输出结果由除第一签名方以外的其他签名方计算得到,如第三签名方计算第i-1轮输出结果,并将第i-1轮输出结果发送至第一签名方。
在一些实施例中,第i-1轮输出结果为Ri-1。
步骤S202,第一签名方以所述第一随机数以及所述第一轮函数的第i-1轮输出结果作为所述第一轮函数的第i轮输入,得到所述第一轮函数的第i轮输出结果。
在一些实施例中,若第i轮不是第一轮,则第一轮函数的第i轮输出结果等于所述第一随机数乘以所述第i-1轮输出结果;第i轮输出结果用Ri表示,第i-1轮输出结果用Ri-1表示,第i轮随机数用ki表示,则Ri=[ki]Ri-1;其中,ki也可以称为第一签名方的第一随机数。
在一些实施例中,R0由对应的签名方自己生成,R0=[1]G;其中,G为ECDSA签名方案中的椭圆曲线群的生成元,G的阶数为n。
在一些实施例中,若第i轮是第一轮,则第一签名方生成R0。第一轮函数的第一轮输出结果R0=[1]G。
在一些实施例中,第一签名方基于第一随机数和第一子秘钥片确定第二轮函数的第i轮输出结果的一种可选处理流程,如图3所示,至少包括以下步骤:
步骤S301,第一签名方接收第二轮函数的第i+1轮输出结果。
在一些实施例中,从第t轮开始计算第二轮函数的输出结果,最后计算第1轮的第二轮函数输出结果。
在一些实施例中,第t轮第二轮函数的输入包括两部分,分别是:1、同态加密公私钥对中的同态加密公钥对所述私钥加密后与椭圆曲线函数对应的横坐标值进行同态加密乘法运算的结果,与签名对象的哈希值进行同态加密加法运算得到的值;2、第一轮函数的第一目标输出结果的横坐标值。
其中,所述同态加密公私钥对中的同态加密公钥对所述私钥加密后与椭圆曲线函数对应的横坐标值进行同态加密乘法运算的结果,与签名对象的哈希值进行同态加密加法运算得到的值可以表示为:
步骤S302,第一签名方以所述第二轮函数的第i+1轮输出结果,以及第i中间值作为所述第二轮函数的第i轮输入,得到所述第二轮函数的第i轮输出结果。
在一些实施例中,第二轮函数的第i+1轮输出结果包括第i+1中间值,用βi+1表示。
在一些实施例中,第一签名方基于第一随机数和第一子秘钥片,确定第三轮函数的第i轮输出结果的一种可选处理流程,如图4所示,至少包括以下步骤:
步骤S401,第一签名方接收所述第三轮函数的第i-1轮输出结果。
在一些实施例中,第i-1轮输出结果中的第i-1参数值基于所述第二目标输出结果中的第一中间值确定。
步骤S402,将所述第一子秘钥片和所述第i-1参数值作为所述第三轮函数的输入,得到所述第三轮函数的第i轮输出结果。
在一些实施例中,第i-1参数值用γi-1表示,对于第三轮函数的第1轮输入包括:γ0和d0DP;其中,γ0=β1,β1为第二轮函数输出的第二目标输出结果,d0DP=1。
在一些实施例中,第三轮函数的第i轮输出结果包括:γi=Dec(diDP,γi-1);其中,diDP表示第i个子秘钥片,γi-1为第三轮函数的第i-1轮输出结果。
在一些实施例中,第一轮函数可以是轮函数FR,第二轮函数可以是Fk,第三轮函数可以是FS。
步骤S103,第一签名方分别将所述第一轮函数的第i轮输出结果、所述第二轮函数的第i轮输出结果和所述第三轮函数的第i轮输出结果,发送至第二签名方。
在一些实施例中,第一签名方通过将所述第一轮函数的第i轮输出结果、所述第二轮函数的第i轮输出结果和所述第三轮函数的第i轮输出结果发送至第二签名方,使得第二签名方及后续其他签名方通过计算第一轮函数、第二轮函数和第三轮函数,得到所述第一轮函数的第一目标输出结果、所述第二轮函数的第二目标输出结果以及所述第三轮函数的第三目标输出结果。
本公开实施例中,任意签名方只需与相邻的签名方通信,接收和/或发送对应的轮函数输出结果,无需与每个签名方都量量通信,减少了通信量,提高了签名效率。
本公开实施例图1至图4所示实施例是以第一签名方为执行主体进行数字签名计算,针对第一轮函数、第二轮函数和第三轮函数所进行的t轮计算,需要t个签名方同时参与,每个签名方执行第一轮函数、第二轮函数和第三轮函数对应的轮计算;如第三签名方执行第一轮函数、第二轮函数和第三轮函数的第i-1轮计算;第三签名方将第一轮函数的第i-1轮输出结果、第二轮函数的第i-1轮输出结果和第三轮函数的第i-1轮输出结果发送给第一签名方。第一签名方根据第一轮函数的第i-1轮输出结果执行第一轮函数的第i轮计算,根据第二轮函数的第i-1轮输出结果执行第二轮函数的第i轮计算,根据第三轮函数的第i-1轮输出结果执行第三轮函数的第i轮计算;第一签名方将第一轮函数的第i轮输出结果、第二轮函数的第i轮输出结果和第三轮函数的第i轮输出结果发送至第二签名方。第二签名方根据第一轮函数的第i轮输出结果执行第一轮函数的第i+1轮计算,第二签名方根据第二轮函数的第i轮输出结果执行第二轮函数的第i+1轮计算,第二签名方根据第三轮函数的第i轮输出结果执行第三轮函数的第i+1轮计算。
本公开实施例中,由于第一轮函数、第二轮函数和第三轮函数中每轮计算使用一个子秘钥片,保证了每一份解子秘钥片参与的解密操作是相同的;因此,每一轮计算可以使用相同的程序或代码实现,节省了资源。
本公开实施例提供的数字签名方法的一种详细处理流程示意图,如图5所示,第一轮函数为FR,第二轮函数可以是Fk,第三轮函数可以是FS。
本公开实施例中,轮函数FR每轮的输入是一个二元组(R′,k),轮函数FR每轮的输出是一个一元组(R),轮函数FR的输入与输出结果之间的关系为:
R=R′+[k]G。即FR=(R′,k)=(R)=(R′+[k]G),k为整数。
这里,针对R、k、G的说明,与上述图2所示流程中针对R、k、G的说明相同,这里不再赘述。
这里,针对β、k和r的说明,与上述图3所示流程中针对β、k和r的说明相同,这里不再赘述。
本公开实施例中,轮函数FS的输入是一个二元组(γ,d′DP),输出是一个一元组(s);轮函数FS的输入与输出结果之间的关系为:s=Dec(d′DP,γ)。
因此,Fs(γ,d′DP)=s=Dec(d′DP,γ);其中,d′DP、s均为整数,γ为Paillier加密的大整数。
这里,针对γ和d′DP的说明,与上述图4所示流程中针对γ和d′DP的说明相同,这里不再赘述。
下面基于图5说明本公开实施例中各签名方针对轮函数FR、轮函数Fk和轮函数FS进行的迭代计算。有t个签名方针对轮函数FR、轮函数Fk和轮函数FS中的每个轮函数,分别执行t次迭代计算;也可以理解为,针对轮函数FR,每个签名方执行一次轮计算,t个签名方共执行t次轮计算;针对轮函数Fk,每个签名方执行一次轮计算,t个签名方共执行t次轮计算;针对轮函数FS,每个签名方执行一次轮计算,t个签名方共执行t次轮计算。
针对轮函数FR,各签名方按照第一轮、第二轮、…、第t轮的顺序进行迭代计算,每一轮迭代都计算一次轮函数FR,轮函数FR的第i-1轮输出结果用于作为轮函数FR的第i轮输入。
具体地,若t轮迭代用A1、A2、…、At表示,则A1、A2、…、At分别生成随机椭圆曲线点Rt。第一轮迭代A1生成R0=[1]G和k1,将k1作为轮秘钥,以(R0)作为轮函数FR的输入,计算R1=FR(k1,R0);即R1=[k1]R0,将R1发送给下一轮迭代A2。
对于轮函数FR的第i轮迭代Ai(i=2,…,t),Ai首先接收来自前一轮迭代Ai-1的消息R(i-1),其次通过随机数发生器产生ki∈[1,n],然后把ki作为轮密钥,以R(i-1)作为轮函数FR的输入,计算Ri=FR(ki,Ri-1),即Ri=[ki]Ri-1;然后将Ri发送给下一轮迭代Ai+1;第t轮迭代At计算出Rt后不传递消息。
针对轮函数Fk,各签名方按照第t轮、第t-1轮、…、第1轮的顺序进行迭代计算,每一轮迭代都计算一次轮函数Fk,轮函数FR的第i轮输出结果用于作为轮函数FR的第i-1轮输入,轮函数Fk的每一轮输出结果为二元组(r,β)。
具体地,若t轮迭代用A1、A2、…、At表示,第t轮迭代At的输入r为轮函数FR的第t轮输出结果的横坐标值,也可以称为椭圆曲线点Rt的横坐标值;第t轮迭代At的输入其中,M为签名对象,H(M)为签名对象的哈希值;r为椭圆曲线函数对应的横坐标值,也可以称为第一目标输出结果中的横坐标值;α为同态加密公钥对同态加密私钥加密的结果。
对于第i轮迭代,Ai(i=m-1,…,2,1),首先接收来自上一轮迭代Ai+1的消息r和βi+1,然后把ki作为轮密钥,以(r,βi+1)作为轮函数Fs的输入,计算(r,si)=Fs(r,ki,si+1),即r=r,且将r和βi发送给下一轮迭代Ai-1;直至第1轮迭代A1计算出(r,β1),A1不再传递消息。
针对轮函数FS,各签名方按照第一轮、第二轮、…、第t轮的顺序进行迭代计算,每一轮迭代都计算一次轮函数FS,轮函数FS的第i轮输出结果用于作为轮函数FR的第i+1轮输入,轮函数FS的每一轮输出结果为二元组(r,β)。
具体地,若t轮迭代用A1、A2、…、At表示,第1轮迭代A1根据轮函数Fk计算的结果确定γ0=β1,将(d1DP)作为轮密钥,以γ0作为轮函数Fs的输入,计算β1=FS(d1dp,β0),即β1=Dec(d1DP,β0);将β1发送给下一轮迭代A2。
对于第i轮迭代,Ai(i=1,2…,t),Ai首先接收来自前一轮迭代Ai-1的消息βi-1,将(diDP)作为轮密钥,以βi-1作为轮函数Fs的输入,计算βi=Fs(diDP,βi-1),即βi=Dec(diDP,βi-1);将βi发送给下一轮迭代Ai+1。第t轮迭代At计算出βt=s后,At输出对签名对象M的签名为σ=(r,s)。
本公开实施例中,仅需要各签名方执行三次基于轮函数的通信,降低了服务器的负担,以及降低了每个签名方的通信量和通信轮数,提高了签名效率。
本公开实施例中,针对轮函数的每一轮迭代计算,仅涉及Paillier同态加密运算,不涉及复杂的乘法转加法运算,极大地减少了计算量,提高了签名效率。
本公开实施例提供的数字签名方法,可以应用于区块链钱包,分布式系统权限管理、分布式系统秘钥管理等需要对消息或数据进行加密传输的场景。
本公开实施例还提供一种数字签名装置,所述数字签名装置的组成结构,如图6所示,包括:
接收模块601,用于接收主节点发送的第一子秘钥片,所述第一子秘钥片为主节点将同态加密公私钥对中的私钥拆分为q份子秘钥片中的一份;
确定模块602,用于基于第一随机数确定第一轮函数的第i轮输出结果,基于第一随机数和所述第一子秘钥片确定第二轮函数的第i轮输出结果和第三轮函数的第i轮输出结果;
发送模块603,用于分别将所述第一轮函数的第i轮输出结果、所述第二轮函数的第i轮输出结果和所述第三轮函数的第i轮输出结果,发送至第二签名方,以得到所述第一轮函数的第一目标输出结果、所述第二轮函数的第二目标输出结果以及所述第三轮函数的第三目标输出结果;
其中,所述第一目标输出结果用于作为所述第二轮函数的第t轮输入,所述第二目标输出结果用于作为所述第三轮函数的第一轮输入,所述第三目标输出结果用于确定数字签名;i<t,t≤q,q为签名方的数量。
在一些可选实施例中,确定模块602,用于接收所述第一轮函数的第i-1轮输出结果;
以所述第一随机数以及所述第一轮函数的第i-1轮输出结果作为所述第一轮函数的第i轮输入,得到所述第一轮函数的第i轮输出结果;
或者,i=1时,基于椭圆曲线函数生成椭圆曲线初始值,以所述椭圆曲线初始值对应的横坐标值和所述第一随机数作为所述第一轮函数的第i轮输入,得到所述第一轮函数的第i轮输出结果。
在一些可选实施例中,所述第一轮函数的第i轮输出结果等于所述第一随机数乘以所述第i-1轮输出结果。
在一些可选实施例中,确定模块602,用于接收所述第二轮函数的第i+1轮输出结果;
以所述第二轮函数的第i+1轮输出结果,以及第i中间值作为所述第二轮函数的第i轮输入,得到所述第二轮函数的第i轮输出结果。
在一些可选实施例中,所述第i中间值等于第一随机数的倒数与第i+1中间值进行同态加密密文乘法运算的结果。
在一些可选实施例中,当i=t时,所述第i中间值等于所述同态加密公私钥对中的同态加密公钥对所述私钥加密后与椭圆曲线函数对应的横坐标值进行同态加密乘法运算的结果,与签名对象的哈希值进行同态加密加法运算得到的值。
在一些可选实施例中,确定模块602,用于接收所述第三轮函数的第i-1轮输出结果,所述第i-1轮输出结果中的第i-1参数值基于所述第二目标输出结果中的第一中间值确定;
将所述第一子秘钥片和所述第i-1参数值作为所述第三轮函数的输入,得到所述第三轮函数的第i轮输出结果。
在一些可选实施例中,所述第三轮函数的目标输出结果为:椭圆曲线函数对应的横坐标值乘以所述第一子秘钥片的结果与签名对象的哈希值的和,除以所述第一随机数。
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。在一些可选实施例中,电子设备800可以是终端设备,也可以是服务器。在一些可选实施例中,电子设备800可以通过运行计算机程序来实现本申请实施例提供的数字签名方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(Application,APP),即需要在操作系统中安装才能运行的程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
在实际应用中,电子设备800可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。电子设备800可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表等,但并不局限于此。
电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备、车载终端和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储电子设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如数字签名方法。例如,在一些可选实施例中,数字签名方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些可选实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到电子设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的数字签名方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为数字签名方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的数字签名方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (12)
1.一种数字签名方法,包括:
第一签名方接收主节点发送的第一子秘钥片,所述第一子秘钥片为主节点将同态加密公私钥对中的私钥拆分为q份子秘钥片中的一份;
所述第一签名方基于第一随机数确定第一轮函数的第i轮输出结果,基于所述第一随机数和所述第一子秘钥片确定第二轮函数的第i轮输出结果和第三轮函数的第i轮输出结果;
所述第一签名方分别将所述第一轮函数的第i轮输出结果、所述第二轮函数的第i轮输出结果和所述第三轮函数的第i轮输出结果,发送至第二签名方,以得到所述第一轮函数的第一目标输出结果、所述第二轮函数的第二目标输出结果以及所述第三轮函数的第三目标输出结果;
其中,所述第一目标输出结果用于作为所述第二轮函数的第t轮输入,所述第二目标输出结果用于作为所述第三轮函数的第一轮输入,所述第三目标输出结果用于确定数字签名;i<t,t≤q,q为签名方的数量。
2.根据权利要求1所述的方法,其中,所述第一签名方基于第一随机数确定第一轮函数的第i轮输出结果,包括:
所述第一签名方接收所述第一轮函数的第i-1轮输出结果;
所述第一签名方以所述第一随机数以及所述第一轮函数的第i-1轮输出结果作为所述第一轮函数的第i轮输入,得到所述第一轮函数的第i轮输出结果;
或者,i=1时,所述第一签名方基于椭圆曲线函数生成椭圆曲线初始值,以所述椭圆曲线初始值对应的横坐标值和所述第一随机数作为所述第一轮函数的第i轮输入,得到所述第一轮函数的第i轮输出结果。
3.根据权利要求2所述的方法,其中,所述第一轮函数的第i轮输出结果等于所述第一随机数乘以所述第i-1轮输出结果。
4.根据权利要求1所述的方法,其中,所述基于所述第一随机数和所述第一子秘钥片确定第二轮函数的第i轮输出结果,包括:
所述第一签名方接收所述第二轮函数的第i+1轮输出结果;
所述第一签名方以所述第二轮函数的第i+1轮输出结果,以及第i中间值作为所述第二轮函数的第i轮输入,得到所述第二轮函数的第i轮输出结果。
5.根据权利要求4所述的方法,其中,所述第i中间值等于第一随机数的倒数与第i+1中间值进行同态加密密文乘法运算的结果。
6.根据权利要求4所述的方法,其中,当i=t时,所述第i中间值等于所述同态加密公私钥对中的同态加密公钥对所述私钥加密后与椭圆曲线函数对应的横坐标值进行同态加密乘法运算的结果,与签名对象的哈希值进行同态加密加法运算得到的值。
7.根据权利要求1所述的方法,其中,所述基于所述第一随机数和所述第一子秘钥片,确定第三轮函数的第i轮输出结果包括:
所述第一签名方接收所述第三轮函数的第i-1轮输出结果,所述第i-1轮输出结果中的第i-1参数值基于所述第二目标输出结果中的第一中间值确定;
将所述第一子秘钥片和所述第i-1参数值作为所述第三轮函数的输入,得到所述第三轮函数的第i轮输出结果。
8.根据权利要求7所述的方法,其中,所述第三轮函数的目标输出结果为:椭圆曲线函数对应的横坐标值乘以所述第一子秘钥片的结果与签名对象的哈希值的和,除以所述第一随机数。
9.一种数字签名装置,所述数字签名装置包括:
接收模块,用于接收主节点发送的第一子秘钥片,所述第一子秘钥片为主节点将同态加密公私钥对中的私钥拆分为q份子秘钥片中的一份;
确定模块,用于基于第一随机数确定第一轮函数的第i轮输出结果,基于第一随机数和所述第一子秘钥片确定第二轮函数的第i轮输出结果和第三轮函数的第i轮输出结果;
发送模块,用于分别将所述第一轮函数的第i轮输出结果、所述第二轮函数的第i轮输出结果和所述第三轮函数的第i轮输出结果,发送至第二签名方,以得到所述第一轮函数的第一目标输出结果、所述第二轮函数的第二目标输出结果以及所述第三轮函数的第三目标输出结果;
其中,所述第一目标输出结果用于作为所述第二轮函数的第t轮输入,所述第二目标输出结果用于作为所述第三轮函数的第一轮输入,所述第三目标输出结果用于确定数字签名;i<t,t≤q,q为签名方的数量。
10.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至8中任一项所述的数字签名方法。
11.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至8中任一项所述的数字签名方法。
12.一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1至8中任一项所述的数字签名方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211061563.2A CN115459924A (zh) | 2022-08-31 | 2022-08-31 | 一种数字签名方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211061563.2A CN115459924A (zh) | 2022-08-31 | 2022-08-31 | 一种数字签名方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115459924A true CN115459924A (zh) | 2022-12-09 |
Family
ID=84300580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211061563.2A Pending CN115459924A (zh) | 2022-08-31 | 2022-08-31 | 一种数字签名方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115459924A (zh) |
-
2022
- 2022-08-31 CN CN202211061563.2A patent/CN115459924A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114586313B (zh) | 用于签署一信息的系统及方法 | |
CN108667625B (zh) | 协同sm2的数字签名方法 | |
CN107707358B (zh) | 一种ec-kcdsa数字签名生成方法及系统 | |
CN112560091B (zh) | 数字签名方法、签名信息的验证方法、相关装置及电子设备 | |
US20140294177A1 (en) | Identity based public key cryptosystem | |
CN111200502A (zh) | 协同数字签名方法和装置 | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
CN111783129A (zh) | 一种保护隐私的数据处理方法及系统 | |
US10263773B2 (en) | Method for updating a public key | |
CN113098691B (zh) | 数字签名方法、签名信息的验证方法、相关装置及电子设备 | |
CN113158258B (zh) | 一种基于椭圆曲线的协同签名方法、装置和系统 | |
CN112953700B (zh) | 一种提升安全多方计算效率的方法、系统及存储介质 | |
JP2022533950A (ja) | 準群演算を含む暗号化データに対して等価演算および未満演算を実行するシステムおよび方法 | |
CN112906038B (zh) | 基于sm9密钥的门限化处理方法、装置、设备及存储介质 | |
CN112100144A (zh) | 区块链文件共享方法、装置、存储介质及电子设备 | |
Stallings | Digital signature algorithms | |
Chande et al. | An improvement of a elliptic curve digital signature algorithm | |
CN114221753B (zh) | 密钥数据处理方法和电子设备 | |
CN114567448B (zh) | 一种协同签名方法以及协同签名系统 | |
CN107342855B (zh) | 基于sm2算法的签名方法 | |
CN115459924A (zh) | 一种数字签名方法、装置及电子设备 | |
Karaahmetoğlu et al. | A new method to determine algebraic expression of power mapping based S-boxes | |
Ahirwal et al. | Signcryption scheme that utilizes elliptic curve for both encryption and signature generation | |
CN117009723B (zh) | 一种多方计算方法、装置、设备及存储介质 | |
Toradmalle et al. | Implementation of provably-secure digital signature scheme based on elliptic curve |
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 |