CN110061847B - 密钥分布式生成的数字签名方法 - Google Patents

密钥分布式生成的数字签名方法 Download PDF

Info

Publication number
CN110061847B
CN110061847B CN201910271243.1A CN201910271243A CN110061847B CN 110061847 B CN110061847 B CN 110061847B CN 201910271243 A CN201910271243 A CN 201910271243A CN 110061847 B CN110061847 B CN 110061847B
Authority
CN
China
Prior art keywords
signature
participant
parameter
signed
value
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
CN201910271243.1A
Other languages
English (en)
Other versions
CN110061847A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201910271243.1A priority Critical patent/CN110061847B/zh
Publication of CN110061847A publication Critical patent/CN110061847A/zh
Application granted granted Critical
Publication of CN110061847B publication Critical patent/CN110061847B/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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/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/3255Cryptographic 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种密钥分布式生成的数字签名方法,用于解决现有数字签名方法效率低的技术问题。技术方案是在密钥生成阶段,t个签名参与者选取自己的子私钥,通过与第一个签名参与者的交互完成私钥的生成。在签名阶段,t个签名参与者依次利用自己持有的子私钥进行分布式签名,然后由第t个签名参与者在同态加密条件下完成签名第二部分的合成,再由第一个签名参与者完成最终的签名合成与验证。本发明利用paillier同态加密算法,每个签名参与者不需要利用零知识证明来保证签名的正确性,最后的签名验证只需要一个椭圆曲线上的点加运算和两个椭圆曲线上的点乘运算,与背景技术t次零知识证明相比,提高了计算效率。

Description

密钥分布式生成的数字签名方法
技术领域
本发明涉及一种数字签名方法,特别涉及一种密钥分布式生成的数字签名方法。
背景技术
文献“Goldfeder S,Gennaro R,Kalodner H,et al.Securing Bitcoin walletsvia a new DSA/ECDSA threshold signature scheme.2015.”中提出了一种分布式门限签名方法,该方法利用的主要技术是paillier同态加密算法和零知识证明。该方法中,签名的私钥由t个人掌握,签名过程需要t个人参与完成,因此提高了签名私钥的安全性。然而,这个方法中使用了大量的零知识证明操作,零知识证明需要验证方与被验证方进行多次交互,交互次数的量级越高,被验证方的可信度越高,这是一个耗时操作,因此该方法的效率相对较低。在该方法中,完成一次签名需要进行t次零知识证明,假设进行一次零知识证明需要tz次交互,那么完成所有的零知识证明就需要t·tz次交互,交互的次数太多导致该方法并不适合在真实场景中应用。
发明内容
为了克服现有数字签名方法效率低的不足,本发明提供一种密钥分布式生成的数字签名方法。该方法在密钥生成阶段,t个签名参与者选取自己的子私钥,通过与第一个签名参与者的交互完成私钥的生成。在签名阶段,t个签名参与者依次利用自己持有的子私钥进行分布式签名,然后由第t个签名参与者在同态加密条件下完成签名第二部分的合成,再由第一个签名参与者完成最终的签名合成与验证。本发明利用paillier同态加密算法,每个签名参与者不需要利用零知识证明来保证签名的正确性,只需要由第一个签名参与者对签名进行验证就可以保证最终签名的正确性,最后的签名验证只需要一个椭圆曲线上的点加运算和两个椭圆曲线上的点乘运算,与背景技术t次零知识证明相比,提高了计算效率。
本发明解决其技术问题所采用的技术方案:一种密钥分布式生成的数字签名方法,其特点是包括以下步骤:
步骤一、第一个签名参与者ID1选取自己的子私钥d1∈{1,2,…,n-1},然后计算自己的子私钥d1在模n下是否存在乘法逆元
Figure BDA0002018473870000011
如果存在,则执行下一步骤,如果不存在,则重新选取自己的子私钥d1∈{1,2,…,n-1}并重新计算自己的子私钥d1在模n下是否存在乘法逆元
Figure BDA0002018473870000022
直到找到一个存在乘法逆元
Figure BDA0002018473870000023
的子私钥d1,然后执行下一步骤;
其中,ID1表示第一个签名参与者,d1表示第一个签名参与者ID1的子私钥,
Figure BDA0002018473870000024
表示第一个签名参与者ID1的子私钥d1在模n下的乘法逆元,n为正整数,表示椭圆曲线基点的阶;
步骤二、按照下式,第一个签名参与者ID1计算自己的子公钥Q1和伪子公钥Q1′,然后将子公钥Q1和伪子公钥Q1′都广播给所有签名参与者:
Q1=d1G
Figure BDA0002018473870000025
其中,Q1表示第一个签名参与者ID1的子公钥,Q1′表示第一个签名参与者ID1的伪子公钥,G表示椭圆曲线上一个阶为n的基点;
步骤三、接收到第一个签名参与者ID1的子公钥Q1和伪子公钥Q1′后,第i个签名参与者IDi选取自己的子私钥di∈{1,2,…,n-1},然后按照下式,计算自己的伪子公钥Qi′,并将伪子公钥Qi′发送给第一个签名参与者ID1,i=2,3,...,t:
Qi′=diQ1
其中,IDi表示第i个签名参与者,di表示第i个签名参与者IDi的子私钥,Qi′表示第i个签名参与者IDi的伪子公钥,t为正整数,表示签名参与者IDi的数目;
步骤四、第一个签名参与者ID1在接收到所有签名参与者的伪子公钥Qi′后,按照下式,依次计算每一个签名参与者IDi的子公钥Qi,然后将所有计算出的子公钥Qi公开:
Qi=d1Qi
其中,Qi表示第i个签名参与者IDi的子公钥;
步骤五、每一个签名参与者IDi接收到第一个签名参与者ID1公开的子公钥Qi后,验证等式
Qi=diG
是否成立,如果每一个签名参与者的验证结果都是成立,则执行下一步骤,如果有任何一个签名参与者的验证结果是不成立,则返回步骤一;
步骤六、按照下式,每一个签名参与者IDi计算签名公钥Q并对签名公钥Q进行公开:
Figure BDA0002018473870000021
其中,Q表示签名公钥,∑表示求和操作;
步骤七、第一个签名参与者ID1选取自己的秘密值k1∈{1,2,…,n-1},然后计算自己的秘密值k1在模n下是否存在乘法逆元
Figure BDA0002018473870000031
如果存在,则执行下一步骤,如果不存在,则重新选取自己的秘密值k1∈{1,2,…,n-1}并重新计算自己的秘密值k1在模n下是否存在乘法逆元
Figure BDA0002018473870000032
直到找到一个存在乘法逆元
Figure BDA0002018473870000033
的秘密值k1,然后执行下一步骤;
其中,k1表示第一个签名参与者ID1的秘密值,
Figure BDA0002018473870000034
表示第一个签名参与者ID1的秘密值k1在模n下的乘法逆元;
步骤八、按照下式,第一个签名参与者ID1计算第一个签名参数中间值R1,并将第一个签名参数中间值R1发送给第二个签名参与者ID2
R1=k1G
其中,R1表示第一个签名参数中间值,ID2表示第二个签名参与者;
步骤九、第i个签名参与者IDi接收到第i-1个签名参数中间值Ri-1后,选取自己的秘密值ki∈{1,2,…,n-1},然后计算自己的秘密值ki在模n下是否存在乘法逆元ki -1,如果存在,则执行下一步骤,如果不存在,则重新选取自己的秘密值ki∈{1,2,…,n-1}并重新计算自己的秘密值ki在模n下是否存在乘法逆元
Figure BDA0002018473870000035
直到找到一个存在乘法逆元
Figure BDA0002018473870000036
的秘密值ki,然后执行下一步骤,i=2,3,…,t-1;
其中,ki表示第i个签名参与者IDi的秘密值,
Figure BDA0002018473870000037
表示第i个签名参与者IDi的秘密值ki在模n下的乘法逆元;
步骤十、按照下式,第i个签名参与者IDi计算第i个签名参数中间值Ri,并将第i个签名参数中间值Ri发送给第i+1个签名参与者IDi+1,i=2,3,…,t-1:
Ri=kiRi-1
其中,Ri表示第i个签名参数中间值,Ri-1表示第i-1个签名参数中间值,IDi+1表示第i+1个签名参与者;
步骤十一、第t个签名参与者IDt接收到第t-1个签名参数中间值Rt-1后,选取自己的秘密值kt∈{1,2,…,n-1},然后计算自己的秘密值kt在模n下是否存在乘法逆元
Figure BDA0002018473870000038
如果存在,则执行下一步骤,如果不存在,则重新选取自己的秘密值kt∈{1,2,…,n-1}并重新计算自己的秘密值kt在模n下是否存在乘法逆元
Figure BDA0002018473870000039
直到找到一个存在乘法逆元
Figure BDA00020184738700000310
的秘密值kt,然后执行下一步骤;
其中,IDt表示第t个签名参与者,kt表示第t个签名参与者IDt的秘密值,
Figure BDA0002018473870000041
表示第t个签名参与者IDt的秘密值kt在模n下的乘法逆元;
步骤十二、按照下式,第t个签名参与者IDt计算签名参数R,然后判断签名参数R是否为椭圆曲线上的零点,如果是,则返回步骤六,如果不是,则将签名参数R广播给所有的签名参与者:
R=ktRt-1=(xR,yR)
其中,Rt-1表示第t-1个签名参数中间值,R表示签名参数,xR表示签名参数R的横坐标,yR表示签名参数R的纵坐标;
步骤十三、第i个签名参与者IDi接收到签名参数R后,按照下式,计算第一部分签名r:
r=xRmod n
然后判断r=0是否成立,如果成立,则返回步骤三,如果不成立,则继续执行下一步骤;
其中,r表示第一部分签名,mod表示求模运算;
步骤十四、按照下式,第一个签名参与者ID1计算消息M的哈希值H,然后按照数据类型转换规则,将H转换为一个整数e:
H=hash(M)
其中,M表示消息,H表示消息M的哈希值,hash表示一个密码哈希算法,e表示哈希值H转换后的整数值;
步骤十五、第一个签名参与者ID1选择paillier同态加密算法的私钥sk和公钥pk,将私钥sk秘密保存,并将公钥pk公开;
其中,paillier表示同态加密算法,sk表示paillier同态加密算法的私钥,用来做解密运算,pk表示paillier同态加密算法的公钥,用来做加密运算;
步骤十六、按照下式,第一个签名参与者ID1计算第一个签名生成参数第一部分α1和第一个签名生成参数第二部分β1,然后将第一个签名生成参数第一部分α1和第一个签名生成参数第二部分β1发送给第二个签名参与者ID2
Figure BDA0002018473870000042
β1=Epk(rd1mod n)
其中,α1表示第一个签名生成参数第一部分,β1表示第一个签名生成参数第二部分,Epk(.)表示paillier同态加密算法的加密运算;
步骤十七、第i个签名参与者IDi接收到第i-1个签名生成参数第一部分αi-1和第i-1个签名生成参数第二部分βi-1后,按照下式,计算第i个签名生成参数第一部分αi和第i个签名生成参数第二部分βi,然后将第i个签名生成参数第一部分αi和第i个签名生成参数第二部分βi发送给第i+1个签名参与者IDi+1,i=2,3,…,t-1:
Figure BDA0002018473870000051
βi=Epk(rdimodn)+Eβi-1
其中,αi表示第i个签名生成参数第一部分,βi表示第i个签名生成参数第二部分,αi-1表示第i-1个签名生成参数第一部分,βi-1表示第i-1个签名生成参数第二部分,×E表示paillier同态加密算法下的乘法同态运算,+E表示paillier同态加密算法下的加法同态运算;
步骤十八、第t个签名参与者IDt接收到第t-1个签名生成参数第一部分αt-1和第t-1个签名生成参数第二部分βt-1后,按照下式,计算第t个签名生成参数第一部分αt和第t个签名生成参数第二部分βt
Figure BDA0002018473870000052
βt=Epk(rdtmod n)+Eβt-1
其中,αt表示第t个签名生成参数第一部分,βt表示第t个签名生成参数第二部分,αt-1表示第t-1个签名生成参数第一部分,βt-1表示第t-1个签名生成参数第二部分,dt表示第t个签名参与者IDt的子私钥;
步骤十九、第t个签名参与者IDt选取秘密混淆值ρ∈{1,2,…,n-1},然后计算秘密混淆值ρ在模n下是否存在乘法逆元ρ-1,如果存在,则执行下一步骤,如果不存在,则重新选取秘密混淆值ρ∈{1,2,…,n-1}并重新计算秘密混淆值ρ在模n下是否存在乘法逆元ρ-1,直到找到一个存在乘法逆元ρ-1的秘密混淆值ρ,然后执行下一步骤;
其中,ρ表示秘密混淆值,ρ-1表示秘密混淆值ρ在模n下的乘法逆元;
步骤二十、按照下式,第t个签名参与者IDt计算第t+1个签名生成参数第二部分βt+1,然后将第t+1个签名生成参数第二部分βt+1发送给第t-1个签名参与者IDt-1
Figure BDA0002018473870000053
其中,βt+1表示第t+1个签名生成参数第二部分,IDt-1表示第t-1个签名参与者;
步骤二十一、按照下式,第i个签名参与者IDi计算第2t-i+1个签名生成参数第二部分β2t-i+1,然后将第2t-i+1个签名生成参数第二部分β2t-i+1发送给第i-1个签名参与者IDi-1,i=t-1,t-2,…,2:
Figure BDA0002018473870000061
其中,β2t-i+1表示第2t-i+1个签名生成参数第二部分,β2t-i表示第2t-i个签名生成参数第二部分;
步骤二十二、按照下式,第一个签名参与者ID1计算第2t个签名生成参数第二部分β2t,然后将第2t个签名生成参数第二部分β2t发送给第t个签名参与者IDt
Figure BDA0002018473870000062
其中,β2t表示第2t个签名生成参数第二部分,β2t-1表示第2t-1个签名生成参数第二部分;
步骤二十三、按照下式,第t个签名参与者IDt计算第2t+1个签名生成参数第二部分β2t+1
β2t+1=β2t×Eρ-1
其中,β2t+1表示第2t+1个签名生成参数第二部分;
步骤二十四、按照下式,第t个签名参与者IDt计算第二部分签名s在paillier同态加密下的密文C,然后将第二部分签名s在paillier同态加密下的密文C发送给第一个签名参与者ID1
C=αt+Eβ2t+1
其中,s表示第二部分签名,C表示第二部分签名s在paillier同态加密下的密文;
步骤二十五、按照下式,第一个签名参与者ID1计算第二部分签名s:
s=Dsk(C)mod n
其中,Dsk(.)表示paillier同态加密算法的解密运算;
步骤二十六、按照下式,第一个签名参与者ID1计算签名验证参数R′,R′=(xR′,yR′):
R′=s-1(eG+rQ)
其中,R′表示签名验证参数,xR′表示签名验证参数R′的横坐标,yR′表示签名验证参数R′的纵坐标,s-1表示第二部分签名s在模n下的乘法逆元;
步骤二十七、按照下式,第一个签名参与者ID1计算第一部分签名的验证参数r′,然后判断等式r′=r是否成立,如果成立,则执行下一步骤,如果不成立,则签名失败,返回步骤六:
r′≡xR′mod n
其中,r′表示第一部分签名的验证参数,≡表示同余符号;
步骤二十八、第一个签名参与者ID1提取签名(r,s),然后将签名(r,s)广播给所有签名参与者;
其中,(r,s)表示最终生成的签名。
本发明的有益效果是:该方法在密钥生成阶段,t个签名参与者选取自己的子私钥,通过与第一个签名参与者的交互完成私钥的生成。在签名阶段,t个签名参与者依次利用自己持有的子私钥进行分布式签名,然后由第t个签名参与者在同态加密条件下完成签名第二部分的合成,再由第一个签名参与者完成最终的签名合成与验证。本发明利用paillier同态加密算法,每个签名参与者不需要利用零知识证明来保证签名的正确性,只需要由第一个签名参与者对签名进行验证就可以保证最终签名的正确性,最后的签名验证只需要一个椭圆曲线上的点加运算和两个椭圆曲线上的点乘运算,与背景技术t次零知识证明相比,提高了计算效率。
另外,本发明实现了私钥的分布式生成与存储,私钥的生成不需要可信中心,私钥的安全性较高。
本发明实现了由t个人分布式生成签名的功能,在签名时不需要显式地合成私钥,避免了私钥泄露所带来的风险。
下面结合附图和具体实施方式对本发明作详细说明。
附图说明
图1是本发明密钥分布式生成的数字签名方法的流程图。
具体实施方式
名词解释:
T:椭圆曲线secp256k1的参数;
p:生成有限域Fp的大素数,其值为FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F=2256-232-29-28-27-26-24-1;
a,b:椭圆方程的参数,a=0,b=7;
G:椭圆曲线上一个阶为n的基点,其值为0479BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8;
n:椭圆曲线基点G的阶,其值为FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141;
h:余因数,控制选取点的密度,其值为01;
ID1:第一个签名参与者;
ID2:第二个签名参与者;
IDi:第i个签名参与者;
IDi+1:第i+1个签名参与者;
IDt:第t个签名参与者;
IDt-1:第t-1个签名参与者;
t:正整数,表示签名参与者IDi的数目;
d1:第一个签名参与者ID1的子私钥;
Figure BDA0002018473870000081
第一个签名参与者ID1的子私钥d1在模n下的乘法逆元;
di:第i个签名参与者IDi的子私钥;
dt:第t个签名参与者IDt的子私钥;
Q1:第一个签名参与者ID1的子公钥;
Q1′:表示第一个签名参与者ID1的伪子公钥;
Qi:第i个签名参与者IDi的子公钥;
Qi′:第i个签名参与者IDi的伪子公钥;
Q:签名公钥;
∑:求和操作,例如
Figure BDA0002018473870000082
k1:第一个签名参与者ID1的秘密值;
Figure BDA0002018473870000083
第一个签名参与者ID1的秘密值k1在模n下的乘法逆元;
ki:第i个签名参与者IDi的秘密值;
Figure BDA0002018473870000084
第i个签名参与者IDi的秘密值ki在模n下的乘法逆元;
kt:第t个签名参与者IDt的秘密值;
Figure BDA0002018473870000085
第t个签名参与者IDt的秘密值kt在模n下的乘法逆元;
R1:第一个签名参数中间值;
Ri:第i个签名参数中间值;
Ri-1:第i-1个签名参数中间值;
Rt-1:第t-1个签名参数中间值;
R:签名参数;
xR:签名参数R的横坐标;
yR:签名参数R的纵坐标;
r:第一部分签名;
mod:求模运算,例如7mod4=3;
M:消息;
H:消息M的哈希值;
hash:密码哈希算法;
e:哈希值H转换后的整数值;
paillier:同态加密算法;
sk:paillier同态加密算法的私钥;
pk:paillier同态加密算法的公钥;
Epk(.):paillier同态加密算法的加密运算;
Dsk(.):paillier同态加密算法的解密运算;
×E:paillier同态加密算法下的乘法同态运算;
+E:paillier同态加密算法下的加法同态运算;
α1:第一个签名生成参数第一部分;
αi:第i个签名生成参数第一部分;
αi-1:第i-1个签名生成参数第一部分;
αt-1:第t-1个签名生成参数第一部分;
αt:第t个签名生成参数第一部分;
β1:第一个签名生成参数第二部分;
βi:第i个签名生成参数第二部分;
βi-1:第i-1个签名生成参数第二部分;
βt-1:第t-1个签名生成参数第二部分;
βt:第t个签名生成参数第二部分;
βt+1:第t+1个签名生成参数第二部分;
β2t-i+1:第2t-i+1个签名生成参数第二部分;
β2t-i:第2t-i个签名生成参数第二部分;
β2t:第2t个签名生成参数第二部分;
β2t-1:第2t-1个签名生成参数第二部分;
β2t+1:第2t+1个签名生成参数第二部分;
ρ:秘密混淆值;
ρ-1:秘密混淆值ρ在模n下的乘法逆元;
s:第二部分签名;
s-1:第二部分签名s在模n下的乘法逆元;
C:第二部分签名s在paillier同态加密下的密文;
R′:签名验证参数;
xR′:签名验证参数R′的横坐标;
yR′:签名验证参数R′的纵坐标;
r′:第一部分签名的验证参数;
≡:同余符号;
(r,s):最终生成的签名。
参照图1。本发明密钥分布式生成的数字签名方法具体步骤如下:
确定***参数:这是具体实施之前的准备工作。
选取椭圆曲线secp256k1,确定参数T=(p,a,b,G,n,h),其中,T表示椭圆曲线secp256k1的参数,p表示生成有限域Fp的大素数,p=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F=2256-232-29-28-27-26-24-1,a,b表示椭圆方程的参数,a=0,b=7,G表示椭圆曲线上一个阶为n的基点,G=0479BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8,n表示椭圆曲线基点G的阶,n=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,h表示余因数,控制选取点的密度,h=01。
步骤一、第一个签名参与者ID1选取自己的子私钥d1∈{1,2,…,n-1},然后计算自己的子私钥d1在模n下是否存在乘法逆元d1 -1,如果存在,则执行下一步骤,如果不存在,则重新选取自己的子私钥d1∈{1,2,…,n-1}并重新计算自己的子私钥d1在模n下是否存在乘法逆元
Figure BDA0002018473870000111
直到找到一个存在乘法逆元
Figure BDA0002018473870000112
的子私钥d1,然后执行下一步骤;
其中,ID1表示第一个签名参与者,d1表示第一个签名参与者ID1的子私钥,
Figure BDA0002018473870000113
表示第一个签名参与者ID1的子私钥d1在模n下的乘法逆元,n为正整数,表示椭圆曲线基点的阶;
步骤二、按照下式,第一个签名参与者ID1计算自己的子公钥Q1和伪子公钥Q1′,然后将子公钥Q1和伪子公钥Q1′都广播给所有签名参与者:
Q1=d1G
Figure BDA0002018473870000114
其中,Q1表示第一个签名参与者ID1的子公钥,Q1′表示第一个签名参与者ID1的伪子公钥,G表示椭圆曲线上一个阶为n的基点;
步骤三、接收到第一个签名参与者ID1的子公钥Q1和伪子公钥Q1′后,第i个签名参与者IDi选取自己的子私钥di∈{1,2,…,n-1},然后按照下式,计算自己的伪子公钥Qi′,并将伪子公钥Qi′发送给第一个签名参与者ID1,i=2,3,...,t:
Qi′=diQ1
其中,IDi表示第i个签名参与者,di表示第i个签名参与者IDi的子私钥,Qi′表示第i个签名参与者IDi的伪子公钥,t为正整数,表示签名参与者IDi的数目;
步骤四、第一个签名参与者ID1在接收到所有签名参与者的伪子公钥Qi′后,按照下式,依次计算每一个签名参与者IDi的子公钥Qi,然后将所有计算出的子公钥Qi公开:
Qi=d1Qi
其中,Qi表示第i个签名参与者IDi的子公钥;
步骤五、每一个签名参与者IDi接收到第一个签名参与者ID1公开的子公钥Qi后,验证等式
Qi=diG
是否成立,如果每一个签名参与者的验证结果都是成立,则执行下一步骤,如果有任何一个签名参与者的验证结果是不成立,则返回步骤一;
步骤六、按照下式,每一个签名参与者IDi计算签名公钥Q并对签名公钥Q进行公开:
Figure BDA0002018473870000121
其中,Q表示签名公钥,∑表示求和操作;
步骤七、第一个签名参与者ID1选取自己的秘密值k1∈{1,2,…,n-1},然后计算自己的秘密值k1在模n下是否存在乘法逆元
Figure BDA0002018473870000122
如果存在,则执行下一步骤,如果不存在,则重新选取自己的秘密值k1∈{1,2,…,n-1}并重新计算自己的秘密值k1在模n下是否存在乘法逆元
Figure BDA0002018473870000123
直到找到一个存在乘法逆元
Figure BDA0002018473870000124
的秘密值k1,然后执行下一步骤;
其中,k1表示第一个签名参与者ID1的秘密值,
Figure BDA0002018473870000125
表示第一个签名参与者ID1的秘密值k1在模n下的乘法逆元;
步骤八、按照下式,第一个签名参与者ID1计算第一个签名参数中间值R1,并将第一个签名参数中间值R1发送给第二个签名参与者ID2
R1=k1G
其中,R1表示第一个签名参数中间值,ID2表示第二个签名参与者;
步骤九、第i个签名参与者IDi接收到第i-1个签名参数中间值Ri-1后,选取自己的秘密值ki∈{1,2,…,n-1},然后计算自己的秘密值ki在模n下是否存在乘法逆元ki -1,如果存在,则执行下一步骤,如果不存在,则重新选取自己的秘密值ki∈{1,2,…,n-1}并重新计算自己的秘密值ki在模n下是否存在乘法逆元
Figure BDA0002018473870000126
直到找到一个存在乘法逆元
Figure BDA0002018473870000127
的秘密值ki,然后执行下一步骤,i=2,3,…,t-1;
其中,ki表示第i个签名参与者IDi的秘密值,
Figure BDA0002018473870000128
表示第i个签名参与者IDi的秘密值ki在模n下的乘法逆元;
步骤十、按照下式,第i个签名参与者IDi计算第i个签名参数中间值Ri,并将第i个签名参数中间值Ri发送给第i+1个签名参与者IDi+1,i=2,3,…,t-1:
Ri=kiRi-1
其中,Ri表示第i个签名参数中间值,Ri-1表示第i-1个签名参数中间值,IDi+1表示第i+1个签名参与者;
步骤十一、第t个签名参与者IDt接收到第t-1个签名参数中间值Rt-1后,选取自己的秘密值kt∈{1,2,…,n-1},然后计算自己的秘密值kt在模n下是否存在乘法逆元
Figure BDA0002018473870000129
如果存在,则执行下一步骤,如果不存在,则重新选取自己的秘密值kt∈{1,2,…,n-1}并重新计算自己的秘密值kt在模n下是否存在乘法逆元
Figure BDA0002018473870000131
直到找到一个存在乘法逆元
Figure BDA0002018473870000132
的秘密值kt,然后执行下一步骤;
其中,IDt表示第t个签名参与者,kt表示第t个签名参与者IDt的秘密值,
Figure BDA0002018473870000133
表示第t个签名参与者IDt的秘密值kt在模n下的乘法逆元;
步骤十二、按照下式,第t个签名参与者IDt计算签名参数R,然后判断签名参数R是否为椭圆曲线上的零点,如果是,则返回步骤六,如果不是,则将签名参数R广播给所有的签名参与者:
R=ktRt-1=(xR,yR)
其中,Rt-1表示第t-1个签名参数中间值,R表示签名参数,xR表示签名参数R的横坐标,yR表示签名参数R的纵坐标;
步骤十三、第i个签名参与者IDi接收到签名参数R后,按照下式,计算第一部分签名r:
r=xRmod n
然后判断r=0是否成立,如果成立,则返回步骤三,如果不成立,则继续执行下一步骤;
其中,r表示第一部分签名,mod表示求模运算;
步骤十四、按照下式,第一个签名参与者ID1计算消息M的哈希值H,然后按照数据类型转换规则,将H转换为一个整数e:
H=hash(M)
其中,M表示消息,H表示消息M的哈希值,hash表示一个密码哈希算法,e表示哈希值H转换后的整数值;
步骤十五、第一个签名参与者ID1选择paillier同态加密算法的私钥sk和公钥pk,将私钥sk秘密保存,并将公钥pk公开;
其中,paillier表示同态加密算法,sk表示paillier同态加密算法的私钥,用来做解密运算,pk表示paillier同态加密算法的公钥,用来做加密运算;
步骤十六、按照下式,第一个签名参与者ID1计算第一个签名生成参数第一部分α1和第一个签名生成参数第二部分β1,然后将第一个签名生成参数第一部分α1和第一个签名生成参数第二部分β1发送给第二个签名参与者ID2
Figure BDA0002018473870000134
β1=Epk(rd1mod n)
其中,α1表示第一个签名生成参数第一部分,β1表示第一个签名生成参数第二部分,Epk(.)表示paillier同态加密算法的加密运算;
步骤十七、第i个签名参与者IDi接收到第i-1个签名生成参数第一部分αi-1和第i-1个签名生成参数第二部分βi-1后,按照下式,计算第i个签名生成参数第一部分αi和第i个签名生成参数第二部分βi,然后将第i个签名生成参数第一部分αi和第i个签名生成参数第二部分βi发送给第i+1个签名参与者IDi+1,i=2,3,…,t-1:
Figure BDA0002018473870000141
βi=Epk(rdimod n)+Eβi-1
其中,αi表示第i个签名生成参数第一部分,βi表示第i个签名生成参数第二部分,αi-1表示第i-1个签名生成参数第一部分,βi-1表示第i-1个签名生成参数第二部分,×E表示paillier同态加密算法下的乘法同态运算,+E表示paillier同态加密算法下的加法同态运算;
步骤十八、第t个签名参与者IDt接收到第t-1个签名生成参数第一部分αt-1和第t-1个签名生成参数第二部分βt-1后,按照下式,计算第t个签名生成参数第一部分αt和第t个签名生成参数第二部分βt
Figure BDA0002018473870000142
βt=Epk(rdtmod n)+Eβt-1
其中,αt表示第t个签名生成参数第一部分,βt表示第t个签名生成参数第二部分,αt-1表示第t-1个签名生成参数第一部分,βt-1表示第t-1个签名生成参数第二部分,dt表示第t个签名参与者IDt的子私钥;
步骤十九、第t个签名参与者IDt选取秘密混淆值ρ∈{1,2,…,n-1},然后计算秘密混淆值ρ在模n下是否存在乘法逆元ρ-1,如果存在,则执行下一步骤,如果不存在,则重新选取秘密混淆值ρ∈{1,2,…,n-1}并重新计算秘密混淆值ρ在模n下是否存在乘法逆元ρ-1,直到找到一个存在乘法逆元ρ-1的秘密混淆值ρ,然后执行下一步骤;
其中,ρ表示秘密混淆值,ρ-1表示秘密混淆值ρ在模n下的乘法逆元;
步骤二十、按照下式,第t个签名参与者IDt计算第t+1个签名生成参数第二部分βt+1,然后将第t+1个签名生成参数第二部分βt+1发送给第t-1个签名参与者IDt-1
Figure BDA0002018473870000143
其中,βt+1表示第t+1个签名生成参数第二部分,IDt-1表示第t-1个签名参与者;
步骤二十一、按照下式,第i个签名参与者IDi计算第2t-i+1个签名生成参数第二部分β2t-i+1,然后将第2t-i+1个签名生成参数第二部分β2t-i+1发送给第i-1个签名参与者IDi-1,i=t-1,t-2,…,2:
Figure BDA0002018473870000151
其中,β2t-i+1表示第2t-i+1个签名生成参数第二部分,β2t-i表示第2t-i个签名生成参数第二部分;
步骤二十二、按照下式,第一个签名参与者ID1计算第2t个签名生成参数第二部分β2t,然后将第2t个签名生成参数第二部分β2t发送给第t个签名参与者IDt
Figure BDA0002018473870000152
其中,β2t表示第2t个签名生成参数第二部分,β2t-1表示第2t-1个签名生成参数第二部分;
步骤二十三、按照下式,第t个签名参与者IDt计算第2t+1个签名生成参数第二部分β2t+1
β2t+1=β2t×Eρ-1
其中,β2t+1表示第2t+1个签名生成参数第二部分;
步骤二十四、按照下式,第t个签名参与者IDt计算第二部分签名s在paillier同态加密下的密文C,然后将第二部分签名s在paillier同态加密下的密文C发送给第一个签名参与者ID1
C=αt+Eβ2t+1
其中,s表示第二部分签名,C表示第二部分签名s在paillier同态加密下的密文;
步骤二十五、按照下式,第一个签名参与者ID1计算第二部分签名s:
s=Dsk(C)mod n
其中,Dsk(.)表示paillier同态加密算法的解密运算;
步骤二十六、按照下式,第一个签名参与者ID1计算签名验证参数R′,R′=(xR′,yR′):
R′=s-1(eG+rQ)
其中,R′表示签名验证参数,xR′表示签名验证参数R′的横坐标,yR′表示签名验证参数R′的纵坐标,s-1表示第二部分签名s在模n下的乘法逆元;
步骤二十七、按照下式,第一个签名参与者ID1计算第一部分签名的验证参数r′,然后判断等式r′=r是否成立,如果成立,则执行下一步骤,如果不成立,则签名失败,返回步骤六:
r′≡xR′mod n
其中,r′表示第一部分签名的验证参数,≡表示同余符号;
步骤二十八、第一个签名参与者ID1提取签名(r,s),然后将签名(r,s)广播给所有签名参与者;
其中,(r,s)表示最终生成的签名。

Claims (1)

1.一种密钥分布式生成的数字签名方法,其特征在于包括以下步骤:
步骤一、第一个签名参与者ID1选取自己的子私钥d1∈{1,2,…,n-1},然后计算自己的子私钥d1在模n下是否存在乘法逆元
Figure FDA0002955253360000011
如果存在,则执行下一步骤,如果不存在,则重新选取自己的子私钥d1∈{1,2,…,n-1}并重新计算自己的子私钥d1在模n下是否存在乘法逆元
Figure FDA0002955253360000012
直到找到一个存在乘法逆元
Figure FDA0002955253360000013
的子私钥d1,然后执行下一步骤;
其中,ID1表示第一个签名参与者,d1表示第一个签名参与者ID1的子私钥,
Figure FDA0002955253360000014
表示第一个签名参与者ID1的子私钥d1在模n下的乘法逆元,n为正整数,表示椭圆曲线基点的阶;
步骤二、按照下式,第一个签名参与者ID1计算自己的子公钥Q1和伪子公钥Q1′,然后将子公钥Q1和伪子公钥Q1′都广播给所有签名参与者:
Q1=d1G
Figure FDA0002955253360000015
其中,Q1表示第一个签名参与者ID1的子公钥,Q1′表示第一个签名参与者ID1的伪子公钥,G表示椭圆曲线上一个阶为n的基点;
步骤三、接收到第一个签名参与者ID1的子公钥Q1和伪子公钥Q1′后,第i个签名参与者IDi选取自己的子私钥di∈{1,2,…,n-1},然后按照下式,计算自己的伪子公钥Qi′,并将伪子公钥Qi′发送给第一个签名参与者ID1,i=2,3,...,t:
Qi′=diQ1
其中,IDi表示第i个签名参与者,di表示第i个签名参与者IDi的子私钥,Qi′表示第i个签名参与者IDi的伪子公钥,t为正整数,表示签名参与者IDi的数目;
步骤四、第一个签名参与者ID1在接收到所有签名参与者的伪子公钥Qi′后,按照下式,依次计算每一个签名参与者IDi的子公钥Qi,然后将所有计算出的子公钥Qi公开:
Qi=d1Qi
其中,Qi表示第i个签名参与者IDi的子公钥;
步骤五、每一个签名参与者IDi接收到第一个签名参与者ID1公开的子公钥Qi后,验证等式
Qi=diG
是否成立,如果每一个签名参与者的验证结果都是成立,则执行下一步骤,如果有任何一个签名参与者的验证结果是不成立,则返回步骤一;
步骤六、按照下式,每一个签名参与者IDi计算签名公钥Q并对签名公钥Q进行公开:
Figure FDA0002955253360000021
其中,Q表示签名公钥,∑表示求和操作;
步骤七、第一个签名参与者ID1选取自己的秘密值k1∈{1,2,…,n-1},然后计算自己的秘密值k1在模n下是否存在乘法逆元
Figure FDA0002955253360000022
如果存在,则执行下一步骤,如果不存在,则重新选取自己的秘密值k1∈{1,2,…,n-1}并重新计算自己的秘密值k1在模n下是否存在乘法逆元
Figure FDA0002955253360000023
直到找到一个存在乘法逆元
Figure FDA0002955253360000024
的秘密值k1,然后执行下一步骤;
其中,k1表示第一个签名参与者ID1的秘密值,
Figure FDA0002955253360000025
表示第一个签名参与者ID1的秘密值k1在模n下的乘法逆元;
步骤八、按照下式,第一个签名参与者ID1计算第一个签名参数中间值R1,并将第一个签名参数中间值R1发送给第二个签名参与者ID2
R1=k1G
其中,R1表示第一个签名参数中间值,ID2表示第二个签名参与者;
步骤九、第i个签名参与者IDi接收到第i-1个签名参数中间值Ri-1后,选取自己的秘密值ki∈{1,2,…,n-1},然后计算自己的秘密值ki在模n下是否存在乘法逆元
Figure FDA0002955253360000026
如果存在,则执行下一步骤,如果不存在,则重新选取自己的秘密值ki∈{1,2,…,n-1}并重新计算自己的秘密值ki在模n下是否存在乘法逆元
Figure FDA0002955253360000027
直到找到一个存在乘法逆元
Figure FDA0002955253360000028
的秘密值ki,然后执行下一步骤,i=2,3,…,t-1;
其中,ki表示第i个签名参与者IDi的秘密值,
Figure FDA0002955253360000029
表示第i个签名参与者IDi的秘密值ki在模n下的乘法逆元;
步骤十、按照下式,第i个签名参与者IDi计算第i个签名参数中间值Ri,并将第i个签名参数中间值Ri发送给第i+1个签名参与者IDi+1,i=2,3,…,t-1:
Ri=kiRi-1
其中,Ri表示第i个签名参数中间值,Ri-1表示第i-1个签名参数中间值,IDi+1表示第i+1个签名参与者;
步骤十一、第t个签名参与者IDt接收到第t-1个签名参数中间值Rt-1后,选取自己的秘密值kt∈{1,2,…,n-1},然后计算自己的秘密值kt在模n下是否存在乘法逆元
Figure FDA0002955253360000031
如果存在,则执行下一步骤,如果不存在,则重新选取自己的秘密值kt∈{1,2,…,n-1}并重新计算自己的秘密值kt在模n下是否存在乘法逆元
Figure FDA0002955253360000032
直到找到一个存在乘法逆元
Figure FDA0002955253360000033
的秘密值kt,然后执行下一步骤;
其中,IDt表示第t个签名参与者,kt表示第t个签名参与者IDt的秘密值,
Figure FDA0002955253360000034
表示第t个签名参与者IDt的秘密值kt在模n下的乘法逆元;
步骤十二、按照下式,第t个签名参与者IDt计算签名参数R,然后判断签名参数R是否为椭圆曲线上的零点,如果是,则返回步骤六,如果不是,则将签名参数R广播给所有的签名参与者:
R=ktRt-1=(xR,yR)
其中,Rt-1表示第t-1个签名参数中间值,R表示签名参数,xR表示签名参数R的横坐标,yR表示签名参数R的纵坐标;
步骤十三、第i个签名参与者IDi接收到签名参数R后,按照下式,计算第一部分签名r:
r=xRmodn
然后判断r=0是否成立,如果成立,则返回步骤三,如果不成立,则继续执行下一步骤;
其中,r表示第一部分签名,mod表示求模运算;
步骤十四、按照下式,第一个签名参与者ID1计算消息M的哈希值H,然后按照数据类型转换规则,将H转换为一个整数e:
H=hash(M)
其中,M表示消息,H表示消息M的哈希值,hash表示一个密码哈希算法,e表示哈希值H转换后的整数值;
步骤十五、第一个签名参与者ID1选择paillier同态加密算法的私钥sk和公钥pk,将私钥sk秘密保存,并将公钥pk公开;
其中,paillier表示同态加密算法,sk表示paillier同态加密算法的私钥,用来做解密运算,pk表示paillier同态加密算法的公钥,用来做加密运算;
步骤十六、按照下式,第一个签名参与者ID1计算第一个签名生成参数第一部分α1和第一个签名生成参数第二部分β1,然后将第一个签名生成参数第一部分α1和第一个签名生成参数第二部分β1发送给第二个签名参与者ID2
Figure FDA0002955253360000041
β1=Epk(rd1modn)
其中,α1表示第一个签名生成参数第一部分,β1表示第一个签名生成参数第二部分,Epk(.)表示paillier同态加密算法的加密运算;
步骤十七、第i个签名参与者IDi接收到第i-1个签名生成参数第一部分αi-1和第i-1个签名生成参数第二部分βi-1后,按照下式,计算第i个签名生成参数第一部分αi和第i个签名生成参数第二部分βi,然后将第i个签名生成参数第一部分αi和第i个签名生成参数第二部分βi发送给第i+1个签名参与者IDi+1,i=2,3,…,t-1:
Figure FDA0002955253360000042
βi=Epk(rdimodn)+Eβi-1
其中,αi表示第i个签名生成参数第一部分,βi表示第i个签名生成参数第二部分,αi-1表示第i-1个签名生成参数第一部分,βi-1表示第i-1个签名生成参数第二部分,×E表示paillier同态加密算法下的乘法同态运算,+E表示paillier同态加密算法下的加法同态运算;
步骤十八、第t个签名参与者IDt接收到第t-1个签名生成参数第一部分αt-1和第t-1个签名生成参数第二部分βt-1后,按照下式,计算第t个签名生成参数第一部分αt和第t个签名生成参数第二部分βt
Figure FDA0002955253360000043
βt=Epk(rdtmodn)+Eβt-1
其中,αt表示第t个签名生成参数第一部分,βt表示第t个签名生成参数第二部分,αt-1表示第t-1个签名生成参数第一部分,βt-1表示第t-1个签名生成参数第二部分,dt表示第t个签名参与者IDt的子私钥;
步骤十九、第t个签名参与者IDt选取秘密混淆值ρ∈{1,2,…,n-1},然后计算秘密混淆值ρ在模n下是否存在乘法逆元ρ-1,如果存在,则执行下一步骤,如果不存在,则重新选取秘密混淆值ρ∈{1,2,…,n-1}并重新计算秘密混淆值ρ在模n下是否存在乘法逆元ρ-1,直到找到一个存在乘法逆元ρ-1的秘密混淆值ρ,然后执行下一步骤;
其中,ρ表示秘密混淆值,ρ-1表示秘密混淆值ρ在模n下的乘法逆元;
步骤二十、按照下式,第t个签名参与者IDt计算第t+1个签名生成参数第二部分βt+1,然后将第t+1个签名生成参数第二部分βt+1发送给第t-1个签名参与者IDt-1
Figure FDA0002955253360000051
其中,βt+1表示第t+1个签名生成参数第二部分,IDt-1表示第t-1个签名参与者;
步骤二十一、按照下式,第i个签名参与者IDi计算第2t-i+1个签名生成参数第二部分β2t-i+1,然后将第2t-i+1个签名生成参数第二部分β2t-i+1发送给第i-1个签名参与者IDi-1,i=t-1,t-2,…,2:
Figure FDA0002955253360000052
其中,β2t-i+1表示第2t-i+1个签名生成参数第二部分,β2t-i表示第2t-i个签名生成参数第二部分;
步骤二十二、按照下式,第一个签名参与者ID1计算第2t个签名生成参数第二部分β2t,然后将第2t个签名生成参数第二部分β2t发送给第t个签名参与者IDt
Figure FDA0002955253360000053
其中,β2t表示第2t个签名生成参数第二部分,β2t-1表示第2t-1个签名生成参数第二部分;
步骤二十三、按照下式,第t个签名参与者IDt计算第2t+1个签名生成参数第二部分β2t+1
β2t+1=β2t×Eρ-1
其中,β2t+1表示第2t+1个签名生成参数第二部分;
步骤二十四、按照下式,第t个签名参与者IDt计算第二部分签名s在paillier同态加密下的密文C,然后将第二部分签名s在paillier同态加密下的密文C发送给第一个签名参与者ID1
C=αt+Eβ2t+1
其中,s表示第二部分签名,C表示第二部分签名s在paillier同态加密下的密文;
步骤二十五、按照下式,第一个签名参与者ID1计算第二部分签名s:
s=Dsk(C)modn
其中,Dsk(.)表示paillier同态加密算法的解密运算;
步骤二十六、按照下式,第一个签名参与者ID1计算签名验证参数R′,R′=(xR′,yR′):
R′=s-1(eG+rQ)
其中,R′表示签名验证参数,xR′表示签名验证参数R′的横坐标,yR′表示签名验证参数R′的纵坐标,s-1表示第二部分签名s在模n下的乘法逆元;
步骤二十七、按照下式,第一个签名参与者ID1计算第一部分签名的验证参数r′,然后判断等式r′=r是否成立,如果成立,则执行下一步骤,如果不成立,则签名失败,返回步骤六:
r′=xR′modn
其中,r′表示第一部分签名的验证参数;
步骤二十八、第一个签名参与者ID1提取签名(r,s),然后将签名(r,s)广播给所有签名参与者;
其中,(r,s)表示最终生成的签名。
CN201910271243.1A 2019-04-04 2019-04-04 密钥分布式生成的数字签名方法 Active CN110061847B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910271243.1A CN110061847B (zh) 2019-04-04 2019-04-04 密钥分布式生成的数字签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910271243.1A CN110061847B (zh) 2019-04-04 2019-04-04 密钥分布式生成的数字签名方法

Publications (2)

Publication Number Publication Date
CN110061847A CN110061847A (zh) 2019-07-26
CN110061847B true CN110061847B (zh) 2021-05-04

Family

ID=67318328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910271243.1A Active CN110061847B (zh) 2019-04-04 2019-04-04 密钥分布式生成的数字签名方法

Country Status (1)

Country Link
CN (1) CN110061847B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338028A (zh) * 2020-09-28 2022-04-12 华为技术有限公司 门限签名方法、装置、电子设备和可读存储介质
CN112100644B (zh) * 2020-11-19 2021-03-16 飞天诚信科技股份有限公司 一种生成数据签名的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2676452A1 (en) * 2011-02-15 2013-12-25 P2S Media Group OY Quarantine method for sellable virtual goods
CN107707358A (zh) * 2017-10-30 2018-02-16 武汉大学 一种ec‑kcdsa数字签名生成方法及***
CN108173639A (zh) * 2018-01-22 2018-06-15 中国科学院数据与通信保护研究教育中心 一种基于sm9签名算法的两方合作签名方法
CN109064170A (zh) * 2018-07-23 2018-12-21 西安电子科技大学 无可信中心的群签名方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2676452A1 (en) * 2011-02-15 2013-12-25 P2S Media Group OY Quarantine method for sellable virtual goods
CN107707358A (zh) * 2017-10-30 2018-02-16 武汉大学 一种ec‑kcdsa数字签名生成方法及***
CN108173639A (zh) * 2018-01-22 2018-06-15 中国科学院数据与通信保护研究教育中心 一种基于sm9签名算法的两方合作签名方法
CN109064170A (zh) * 2018-07-23 2018-12-21 西安电子科技大学 无可信中心的群签名方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《比特币的匿名性和密钥管理研究》;陈思;《中国优秀硕士学位论文全文数据库》;20180415;全文 *

Also Published As

Publication number Publication date
CN110061847A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
CN110061828B (zh) 无可信中心的分布式数字签名方法
CN107634836B (zh) 一种sm2数字签名生成方法及***
Micciancio et al. Lattice-based cryptography
Blazy et al. (Hierarchical) identity-based encryption from affine message authentication
CN107707358B (zh) 一种ec-kcdsa数字签名生成方法及***
Coron et al. Universal padding schemes for RSA
CN1870499B (zh) 产生新的多变量公钥密码***的方法
US8452975B2 (en) Signature and verification method, signature generation device, and signature verification device
CN112564907B (zh) 密钥生成方法及装置、加密方法及装置、解密方法及装置
CN110061847B (zh) 密钥分布式生成的数字签名方法
CN114157427A (zh) 基于sm2数字签名的门限签名方法
CN110855425A (zh) 一种轻量级多方协同sm9密钥生成、密文解密方法与介质
CN113972981B (zh) 一种基于sm2密码算法的高效门限签名方法
CN112118111A (zh) 一种适用于门限计算的sm2数字签名方法
CN109064170B (zh) 无可信中心的群签名方法
CN111901123B (zh) 一种sm2签名的生成方法、存储介质和终端
CN110798313B (zh) 基于秘密动态共享的包含秘密的数的协同生成方法及***
Dachman-Soled A black-box construction of a CCA2 encryption scheme from a plaintext aware (sPA1) encryption scheme
CN116865970A (zh) 基于国密算法的多方协同密钥产生和数字签名方法及***
CN111092720A (zh) 能抵抗主密钥和解密密钥泄漏的基于证书加密方法
CN115473633A (zh) 一种多方协同产生sm2数字签名的方法及装置
Kumar et al. Digital color-image encryption scheme based on elliptic curve cryptography ElGamal encryption and 3D Lorenz map
Lau et al. Rank preserving code-based signature
CN113347009B (zh) 基于椭圆曲线密码体制的无证书门限签密方法
CN117955635B (zh) 基于联盟链验证节点分组的交易验证方法

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