CN113507374B - 门限签名方法、装置、设备以及存储介质 - Google Patents

门限签名方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN113507374B
CN113507374B CN202110748702.8A CN202110748702A CN113507374B CN 113507374 B CN113507374 B CN 113507374B CN 202110748702 A CN202110748702 A CN 202110748702A CN 113507374 B CN113507374 B CN 113507374B
Authority
CN
China
Prior art keywords
secret
participant
signature
commitment
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
CN202110748702.8A
Other languages
English (en)
Other versions
CN113507374A (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.)
Hundsun Technologies Inc
Original Assignee
Hundsun Technologies Inc
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 Hundsun Technologies Inc filed Critical Hundsun Technologies Inc
Priority to CN202110748702.8A priority Critical patent/CN113507374B/zh
Publication of CN113507374A publication Critical patent/CN113507374A/zh
Application granted granted Critical
Publication of CN113507374B publication Critical patent/CN113507374B/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/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/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/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/085Secret sharing or secret splitting, e.g. threshold 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种基于SM2签名算法的门限签名方法、装置、设备以及存储介质,在秘密逆元的分享环节,利用对方的同态加密公钥以同态加密的方法,加密临时秘密、密文和干扰因子,得到第一加密数据,在对方验证零知识证明合法时,利用自身的同态加密私钥解密第一加密数据得到的第一交互秘密,计算得到分享秘密的基础值后,再利用每个参与人的分享秘密的基础值、计算得到分享秘密的逆元;可以看出:采用同态加密的方法完成分享秘密的逆元,不会存在多项式的阶翻倍,因此只需要保证(t,n)门限中,基于SM2签名算法的门限签名方法的参与人n只需要大于等于参与签名的参与者t即可,不需要2t+1个才能生成一个有效的数字签名。

Description

门限签名方法、装置、设备以及存储介质
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于SM2签名算法的门限签名方法、装置、设备以及存储介质。
背景技术
SM2数字签名,指对于一个公私钥对[d, P]和明文M,持有秘钥d的签名者产生别人无法伪造的一段数字串,其他用户可以使用公开的公钥P和明文M来进行验证。在(t,n) 门限签名方案,秘钥是作为份额在n个参与人分享,任意多于 t 个参与者可以计算最终的签名,并且在方案执行过程中不会泄露关于私钥和参与者的子私钥的任何信息。
基于此,现有技术中存在一种基于SM2签名算法的门限签名方案。目前的基于SM2签名算法的门限签名方案中,由于在分布式秘钥生成阶段,需要进行秘密逆元的分享,在秘密逆元的分享时会存在多项式的阶翻倍,需要n≥2t,且2t+1个参与人才可以生成一个有效的数字签名。
发明内容
有鉴于此,本发明实施例提供一种基于SM2签名算法的门限签名方法、装置、设备以及存储介质,以实现只需要n大于等于t,只需要t个参与人就可以生成有效签名。
为实现上述目的,本发明实施例提供如下技术方案:
本申请第一方面提供了一种基于SM2签名算法的门限签名方法,包括生成分布式秘钥、签名待签名明文和验签三个阶段,其中,所述生成分布式秘钥阶段中的秘密逆元的分享,包括:
利用对方的同态加密公钥以同态加密的方法,加密自身的临时秘密a i 、密文E j (k j )和干扰因子βi,j,得到第一加密数据;其中,所述密文E j (k j )由对方利用同态加密公钥P j 加密自身的随机秘密k j 得到;所述对方指代所述基于SM2签名算法的门限签名方法的n个参与人中的每个参与人;
计算所述临时秘密a i 和干扰因子βi,j的零知识证明;
向所述对方发送所述临时秘密和干扰因子的零知识证明、以及所述第一加密数据;
接收所述对方发送的分享秘密的基础值δi;其中,所述分享秘密的基础值由所述对方利用自身的临时秘密a i 、随机秘密k i 、干扰因子、和每个参与人的第一交互秘密αi,j 计算得到;其中,所述第一交互秘密αi,j由所述对方验证所述临时秘密和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密所述第一加密数据得到;
利用每个参与人的分享秘密的基础值、计算得到分享秘密的逆元。
可选地,所述签名待签名明文,包括:
利用对方参与者的同态加密公钥以同态加密的方法,加密权重值wi、密文E j (k j )和干扰因子βi,j,得到第二加密数据;其中,所述密文E j (k j )由对方参与者利用同态加密公钥P j 加密随机秘密k j 得到;所述权重值wi由秘密共享份额si转换得到;所述对方参与者指代参与签名的参与者集合中的每个参与者;
计算所述权重值wi和干扰因子βi,j的零知识证明;
向所述对方参与者发送所述权重值和干扰因子的零知识证明、以及第二加密数据;
接收对方参与者发送的随机秘密k j 的第二承诺;
在验证所述随机秘密k j 的第二承诺合法时,获取所述随机秘密k j 的第二承诺中的目标值k j ·G,利用每个参与者的随机秘密k j 的第二承诺中的目标值kj·G,计算得到目标值R,再利用所述目标值R和待签名明文M对应的整数e计算得到第一签名值r;
计算得到自身的签名基础值si,并利用每个参与者的签名基础值si以及第一签名值r,计算得到第二签名值s;其中,所述签名基础值si利用基础值δi、权重值wi和第一签名值r计算得到;所述基础值δi利用自身的权重值wi、随机秘密k i 、干扰因子和每个参与者的第二交互秘密αi,j 计算得到;所述第二交互秘密αi,j由所述对方参与者验证所述权重值和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密所述第二加密数据得到;
组合所述第一签名值和所述第二签名值,得到最终签名为(r, s)。
可选地,所述签名待签名明文之前,还包括生成参与签名的参与者集合,其中,所述生成参与签名的参与者集合包括:
生成同态加密公、私钥对,并计算得到第一承诺和第二承诺;其中,所述第一承诺为椭圆曲线基点G、公共公钥P和待签名明文M对应的整数e的承诺;所述第二承诺为自身的随机秘密k i 的承诺;
接收所述对方广播的第一承诺、第二承诺和同态加密公钥;
验证所述对方广播的第一承诺与自身的第一承诺相同,则将所述对方作为参与签名的参与者加入所述参与签名的参与者集合,并保存所述对方的同态加密公钥和第二承诺。
可选地,所述生成分布式秘钥阶段中的计算公钥和分享份额,包括:
接收所述对方广播的X轴横坐标x i 、多项式系数的承诺、以及随机秘密k i 的第一承诺Di
检查出所述对方广播的X轴横坐标x i 不重复时,验证所述对方的随机秘密k i 的第二承诺C i 是否合法;
若验证出所述随机秘密k i 的第二承诺合法,则获取所述随机秘密k i 的第二承诺中的目标值ki·G,并利用每个参与人的随机秘密k i 的第二承诺中的目标值,计算得到公钥
Figure 641216DEST_PATH_IMAGE001
在接收到所述对方广播的多项式执行结果v i,j 时,验证目标多项式pj(x) 的计算结果是否等于目标结果;其中,所述目标多项式pj(x)为利用所述对方多项式系数承诺作为系数构建得到,所述目标结果为所述对方的多项式执行结果v i,j 与椭圆曲线基点G的积;
若验证出目标多项式pj(x) 的计算结果等于目标结果,则利用每个参与人的多项式执行结果v i,j 和自己的t-1阶多项式,计算分享份额shi
可选地,所述用每个参与人的多项式执行结果v i,j 和自己的t-1阶多项式,计算分享份额shi之后,还包括:
计算所述分享份额shi的零知识证明并向所述对方广播;
在接收到每个参与人广播的分享份额shi的零知识证明时,若验证每个参与人的分享份额shi的零知识证明合法,则获取所述每个参与人的分享份额shi的零知识证明的特征值;
验证目标等式是否成立,所述目标等式为:
Figure 823936DEST_PATH_IMAGE002
;式中,shi指代每个参与人的分享份额,G指代椭圆曲线基点,δ-1指代分享秘密的逆元,a i 指代每个参与人的临时秘密;
若验证所述目标等式成立,则判定所述共享份额和公钥生成完成。
本申请第二方面提供了一种基于SM2签名算法的门限签名装置,用于执行生成分布式秘钥、签名待签名明文和验签三个阶段的流程,其中,所述门限签名装置生成分布式秘钥阶段中的秘密逆元的分享时,包括:
第一加密单元,用于利用对方的同态加密公钥以同态加密的方法,加密自身的临时秘密a i 、密文E j (k j )和干扰因子βi,j,得到第一加密数据;其中,所述密文E j (k j )由对方利用同态加密公钥P j 加密自身的随机秘密k j 得到;所述对方指代所述基于SM2签名算法的门限签名方法的n个参与人中的每个参与人;
第一计算单元,用于计算所述临时秘密a i 和干扰因子βi,j的零知识证明;
第一发送单元,用于向所述对方发送所述临时秘密和干扰因子的零知识证明、以及所述第一加密数据;
第一接收单元,用于接收所述对方发送的分享秘密的基础值δi;其中,所述分享秘密的基础值由所述对方利用自身的临时秘密a i 、随机秘密k i 、干扰因子、和每个参与人的第一交互秘密αi,j 计算得到;其中,所述第一交互秘密αi,j由所述对方验证所述临时秘密和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密所述第一加密数据得到;
第二计算单元,用于利用每个参与人的分享秘密的基础值、计算得到分享秘密的逆元。
可选地,所述门限签名装置签名待签名明文时,包括:
第二加密单元,用于利用对方参与者的同态加密公钥以同态加密的方法,加密权重值wi、密文E j (k j )和干扰因子βi,j,得到第二加密数据;其中,所述密文E j (k j )由对方参与者利用同态加密公钥P j 加密随机秘密k j 得到;所述权重值wi由秘密共享份额si转换得到;所述对方参与者指代参与签名的参与者集合中的每个参与者;
第三计算单元,用于计算所述权重值wi和干扰因子βi,j的零知识证明;
第二发送单元,用于向所述对方参与者发送所述权重值和干扰因子的零知识证明、以及第二加密数据;
第二接收单元,用于接收对方参与者发送的随机秘密k j 的第二承诺;
第一处理单元,用于在验证所述随机秘密k j 的第二承诺合法时,获取所述随机秘密k j 的第二承诺中的目标值k j ·G,利用每个参与者的随机秘密k j 的第二承诺中的目标值kj·G,计算得到目标值R,再利用所述目标值R和待签名明文M对应的整数e计算得到第一签名值;
第四计算单元,用于计算得到自身的签名基础值si,并利用每个参与者的签名基础值si以及第一签名值r,计算得到第二签名值s;其中,所述签名基础值si利用基础值δi、权重值wi和第一签名值r计算得到;所述基础值δi利用自身的权重值wi、随机秘密k i 、干扰因子和每个参与者的第二交互秘密αi,j 计算得到;所述第二交互秘密αi,j由所述对方参与者验证所述权重值和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密所述第二加密数据得到;
组合单元,用于组合所述第一签名值和所述第二签名值,得到最终签名为(r, s)。
可选地,还包括:
生成单元,用于生成同态加密公、私钥对,并计算得到第一承诺和第二承诺;其中,所述第一承诺为椭圆曲线基点G、公共公钥P和待签名明文M对应的整数e的承诺;所述第二承诺为自身的随机秘密k i 的承诺;
第三接收单元,用于接收所述对方广播的第一承诺、第二承诺和同态加密公钥;
保存单元,用于验证所述对方广播的第一承诺与自身的第一承诺相同,则将所述对方作为参与签名的参与者加入所述参与签名的参与者集合,并保存所述对方的同态加密公钥和第二承诺。
可选地,所述门限签名装置生成分布式秘钥阶段中的计算公钥和分享份额,包括:
第四接收单元,用于接收所述对方广播的X轴横坐标x i 、多项式系数的承诺、以及随机秘密k i 的第一承诺Di
第一验证单元,用于检查出所述对方广播的X轴横坐标x i 不重复时,验证所述对方的随机秘密k i 的第二承诺C i 是否合法;
第二处理单元,用于若验证出所述随机秘密k i 的第二承诺合法,则获取所述随机秘密k i 的第二承诺中的目标值ki·G,并利用每个参与人的随机秘密k i 的第二承诺中的目标值,计算得到公钥
Figure 72515DEST_PATH_IMAGE001
第二验证单元,用于在接收到所述对方广播的多项式执行结果v i,j 时,验证目标多项式pj(x) 的计算结果是否等于目标结果;其中,所述目标多项式pj(x)为利用所述对方多项式系数承诺作为系数构建得到,所述目标结果为所述对方的多项式执行结果v i,j 与椭圆曲线基点G的积;
第五计算单元,用于若验证出目标多项式pj(x) 的计算结果等于目标结果,则利用每个参与人的多项式执行结果v i,j 和自己的t-1阶多项式,计算分享份额shi
可选地,还包括:
第六计算单元,用于计算所述分享份额shi的零知识证明;
第三发送单元,用于向所述对方广播;
获取单元,用于在接收到每个参与人广播的分享份额shi的零知识证明时,若验证每个参与人的分享份额shi的零知识证明合法,则获取所述每个参与人的分享份额shi的零知识证明的特征值;
第三验证单元,用于验证目标等式是否成立,所述目标等式为:
Figure 405407DEST_PATH_IMAGE002
;式中,shi指代每个参与人的分享份额,G指代椭圆曲线基点,δ-1指代分享秘密的逆元,a i 指代每个参与人的临时秘密;
判定单元,用于若验证所述目标等式成立,则判定所述共享份额和公钥生成完成。
本申请第三方面提供了一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,具体用于实现第一方面任意一项所述的基于SM2签名算法的门限签名方法。
本申请第四方面提供了一种电子设备,包括存储器和处理器;
其中,所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,具体用于实现第一方面任意一项所述的基于SM2签名算法的门限签名方法。
基于上述本发明实施例提供的一种基于SM2签名算法的门限签名方法、装置、设备以及存储介质,在生成分布式秘钥阶段中的秘密逆元的分享环节,利用对方的同态加密公钥以同态加密的方法,加密自身的临时秘密、密文和干扰因子,得到第一加密数据,在对方验证临时秘密和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密第一加密数据得到的第一交互秘密,计算得到分享秘密的基础值后,再利用每个参与人的分享秘密的基础值、计算得到分享秘密的逆元;可以看出:采用同态加密的方法,即完成了计算得到分享秘密的逆元,而不需要构建多项式,也不会存在多项式的阶翻倍,因此只需要保证(t,n)门限中,基于SM2签名算法的门限签名方法的参与人n只需要大于等于参与签名的参与者t即可,不需要2t+1个才能生成一个有效的数字签名。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的秘密逆元的分享方法的时序图;
图2为本申请另一实施例提供的公钥和分享份额的计算方法的时序图;
图3为本申请另一实施例提供的参与签名的参与者集合的生成方法的时序图;
图4为本申请另一实施例提供的签名的计算方法的时序图;
图5为本申请另一实施例提供的基于SM2签名算法的门限签名装置的结构图;
图6为本申请另一实施例提供的基于SM2签名算法的门限签名装置的结构图;
图7为本申请另一实施例提供的电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例提供一种基于SM2签名算法的门限签名方法、装置、设备以及存储介质,以实现只需要n大于等于t,只需要t个参与人就可以生成有效签名。
本申请实施例公开的基于SM2签名算法的门限签名方法,主要分为三个阶段,具体如下:
1、分布式秘钥生成
对于一个(t,n)门限,n个参与人通过交互生成一个公共的公钥P,各自持有一个秘密分享的份额。
2、签名
n个参与人中,持有秘密份额的t个或以上参与者对待签名的明文M进行计算,得到的不可伪造的数字签名,并使用公钥P进行签名验证。
3、验签
使用公钥P、明文M和数字签名验证签名是否有效。
需要说明的是,在分布式秘钥生成的阶段,也可分成三个阶段来完成,主要是准备阶段、安全计算k * a的逆元和计算公钥和分享份额,以下分别通过实施例来进行介绍。
一、准备阶段:
每个参与人(称为U i ),各自执行以下操作:
1)选择SM2国密椭圆曲线,基点为G,阶为N。
2)各自使用安全随机数生成一个随机秘密k i
Figure 148673DEST_PATH_IMAGE003
,计算各自的k i ·G及其hash承诺
Figure 439978DEST_PATH_IMAGE004
;其中:承诺验证
Figure 910273DEST_PATH_IMAGE005
,承诺
Figure 578015DEST_PATH_IMAGE006
承诺验证Di可以称为随机秘密k i 的第一承诺,承诺Ci可以称为随机秘密k i 的第二承诺,在承诺验证Di中,data指代k i ·Gsalt指代randsalt 为随机加盐,
Figure 715735DEST_PATH_IMAGE007
为二进制合并。
3)各自使用安全随机数生成一个临时秘密a i a i ∈[1,N-1],并计算各自的固定点
Figure 177940DEST_PATH_IMAGE008
4)生成一个同态加密的公私钥对(可以使用任何支持加法乘法同态的算法)。
5)广播随机秘密k i 的Hash承诺C i 、固定点R i 和同态加密公钥P i
6)每个参与人收到对方广播消息后,并保存随机秘密k i 的Hash承诺C i 和固定点R i
二、安全计算k * a的逆元:
本申请实施例公开的秘密逆元的分享方法,如图1所示,包括步骤:
S101、每个参与人(称为U j )使用自己的同态加密公钥P j 对持有的随机秘密k j 加密,得到随机秘密k j 的密文E j (k j ),并广播给其他参与人U i
每个接收者U i 收到E j (k j )后,执行下述步骤:
S102、使用安全随机数生成一个[0, N-1]的随机数做为干扰因子βi,j, 并计算
Figure 666691DEST_PATH_IMAGE009
S103、使用其他参与人Uj的同态加密公钥Pj,对自身的临时秘密a i 、密文E j (k j )和干扰因子βi,j进行同态加密,计算得到第一加密数据E(α i,j )
其中,第一加密数据E(α i,j )的计算公式为:
Figure 341386DEST_PATH_IMAGE010
S104、计算自己持有的临时秘密a i 和干扰因子βi,j的零知识证明。
其中,可以使用任何支持零知识证明算法计算a i 和βi,j的零知识证明。以下以扩展Schnorr非交互式零知识证明协议为例进行说明。
计算a i 和βi,j的零知识证明的步骤包括:
①U i 使用自己持有的临时秘密a i干扰因子βi,j和自己的固定点Ri计算V值,计算公式为:
Figure 333612DEST_PATH_IMAGE011
②生成两个随机数m,n并计算alpha值:
Figure 232298DEST_PATH_IMAGE012
③计算
Figure 942765DEST_PATH_IMAGE013
,H为约定的Hash算法,如SM3。
④计算
Figure 686730DEST_PATH_IMAGE014
Figure 799043DEST_PATH_IMAGE015
。N为SM2椭圆曲线的阶。
⑤结果(V,u, t, alpha)即为可验证的证明,验证者可以凭前一步收到的对方固定点Ri和该证明进行验证,证明对方确实持有a i 和βi,j而无法获知其实际值。
S105、将第一加密数据E(α i,j )和零知识证明回送给对方。
参与者U j 收到对方送回的第一加密数据E(α i,j )和零知识证明证明后,执行下述步骤:
S106、验证零知识证明。
以扩展Schnorr非交互式零知识证明为例:
①使用前一步获取的对方U i 的固定点R i 和收到的零知识证明(V,u, t, alpha) ,计算
Figure 603051DEST_PATH_IMAGE016
②计算并检查等式是否成立:
Figure 800814DEST_PATH_IMAGE017
;其中:G为SM2椭圆曲线的基点,·表示椭圆曲线点乘,+表示椭圆曲线点加。
S107、验证零知识证明合法时,利用自身的同态加密私钥解密第一加密数据得到第一交互秘密αi,j,其值等于:
Figure 345540DEST_PATH_IMAGE018
S108、在收集其他参与人的消息后,利用自身的临时秘密a i 、随机秘密k i 、干扰因子、和每个参与人的第一交互秘密αi,j计算分享秘密的基础值δi;计算公式为:
Figure 312359DEST_PATH_IMAGE019
,并向其他参与人广播。
每个参与人收到其他参与人的分享秘密的基础值δi,执行下述步骤后:
S109、计算分享秘密
Figure 287269DEST_PATH_IMAGE020
由于
Figure 706749DEST_PATH_IMAGE021
Figure 854833DEST_PATH_IMAGE022
所以:
Figure 676159DEST_PATH_IMAGE023
按照加法交换律可知:
Figure 821969DEST_PATH_IMAGE024
由于
Figure 728745DEST_PATH_IMAGE025
,累加后为零,可知δ为共享秘密a与k的乘积:
Figure 414942DEST_PATH_IMAGE026
S110、计算分享秘密δ对SM2椭圆曲线的分享秘密的逆元δ-1
由上述内容可以看出:得到分布在n个参与者手上的两个秘密ki和ai的秘密乘积共享的逆元:
Figure 356353DEST_PATH_IMAGE027
进而还可以看出:对于共享秘密
Figure 938644DEST_PATH_IMAGE028
,和临时共享秘密a
Figure 67137DEST_PATH_IMAGE029
,通过安全计算得到
Figure 760286DEST_PATH_IMAGE030
。由乘法分配律可知:
Figure 556204DEST_PATH_IMAGE031
进一步计算δ的逆元,使得参与者都持有相同的共享秘密a与秘密k乘积的逆元。
本申请实施例提供的门限签名方法,在计算k * a的逆元环节,即生成分布式秘钥阶段中的秘密逆元的分享环节,利用对方的同态加密公钥以同态加密的方法,加密自身的临时秘密、密文和干扰因子,得到第一加密数据,在对方验证临时秘密和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密所述第一加密数据得到的第一交互秘密,计算得到的分享秘密的基础值后,再利用每个参与人的分享秘密的基础值、计算得到分享秘密的逆元;可以看出:采用同态加密的方法,即完成了计算得到分享秘密的逆元,而不需要构建多项式,也不会存在多项式的阶翻倍,因此只需要保证(t,n) 门限中,基于SM2签名算法的门限签名方法的参与人n只需要大于等于参与签名的参与者t即可,不需要2t+1个才能生成一个有效的数字签名。并且,在秘密逆元的分享环节还引入了干扰因子,可以有效地防止秘密泄露。
三、计算公钥和分享份额:
本申请另一实施例公开的公钥和分享份额的计算方法,如图2所示,包括步骤:
每个参与人U i 执行下述步骤:
S201、生成一个随机数x i 作为各自的X轴横坐标,其中,
Figure 43817DEST_PATH_IMAGE032
,且要求每个参与人持有的值不能相同。
S202、生成一个t-1阶多项式:
Figure 394027DEST_PATH_IMAGE033
,使用自身持有的临时秘密a i 与分享秘密δ逆元的乘积做为共享秘密分片:
Figure 890867DEST_PATH_IMAGE034
作为常量,系数
Figure 13063DEST_PATH_IMAGE035
, N为SM2椭圆曲线的阶。
S203、计算多项式系数的Hash承诺{ui,j· G}。
S204、广播自己持有的X轴横坐标x i 、多项式系数的Hash承诺、随机秘密k i 的承诺验证
Figure 937157DEST_PATH_IMAGE005
参与人U j 收到参与人U i 的X轴横坐标x i 、随机秘密k i 的承诺验证D i 和多项式系数的Hash承诺后执行下述步骤:
S205、检查参与人U i 的X横坐标是否重复。
其中,如果接收到对方的X坐标与自身持有的相同,重新接收步骤S204广播的X轴横坐标x i 、多项式系数的Hash承诺、随机秘密k i 的承诺。若如果接收到对方的X坐标与自身持有的不相同,则继续执行下述步骤:
S206、验证随机秘密ki的第二承诺C i 合法时,获取随机秘密ki的第二承诺中的目标值k i ·G。
具体的,验证在准备阶段收到的Hash承诺C i 是否合法,若合法,则从随机秘密ki的承诺验证
Figure 40242DEST_PATH_IMAGE005
得到k i ·G。
S207、利用每个参与人的目标值,计算共享秘密对应的公共公钥
Figure 871932DEST_PATH_IMAGE001
Figure 642441DEST_PATH_IMAGE036
如此可知:实际秘密共享的私钥为(k-1)。
S208、使用对方的X坐标x i 和自身持有的多项式计算得到多项式执行结果vi,j = fj(xi),并发送回对方U i
每个参与人U i 收到对方的多项式执行结果v i,j 后,执行下述步骤:
S209、验证目标多项式pj(x) 的计算结果是否等于目标结果。
具体的:使用对方多项式系数承诺作为系数构建目标多项式pj(x), 再用自身的X坐标参数进行计算,验证计算结果是否等于vi,j· G这个目标结果。目标结果即为对方的多项式执行结果v i,j 与椭圆曲线基点G的积。
S210、若验证出目标多项式pj(x) 的计算结果等于目标结果,则利用每个参与人的多项式执行结果v i,j 和自己的t-1阶多项式,计算分享份额:
Figure 471857DEST_PATH_IMAGE037
S211、计算并广播分享份额shi的零知识证明。
可选地,可以使用标准Schnorr非交互式零知识证明协议计算shi的零知识证明,包括下述步骤:
①计算
Figure 327818DEST_PATH_IMAGE038
②生成两个随机数m,n ,m,n均属于[1, N-1], N为SM2椭圆曲线的阶。
③计算alpha = m·G + n·G。
④计算
Figure 900882DEST_PATH_IMAGE039
⑤计算
Figure 729160DEST_PATH_IMAGE040
,t=n;N为SM2椭圆曲线的阶。
其中:计算结果(V,u, t, alpha)即为可验证的零知识证明。
每个参与人收到分享份额shi的零知识证明后执行下述步骤:
S212、验证分享份额shi的零知识证明:
①计算
Figure 791794DEST_PATH_IMAGE041
②验证等式是否成立:
Figure 72734DEST_PATH_IMAGE042
;式中G为SM2椭圆曲线的基点,·表示椭圆曲线点乘,+表示椭圆曲线点加。
S213、获取参与人的分享份额shi的零知识证明的特征值si·G值,即获取零知识证明中的V值。
S214、验证目标等式是否成立:
Figure 511806DEST_PATH_IMAGE002
。式中,shi指代每个参与人的分享份额,G指代椭圆曲线基点,δ-1指代分享秘密的逆元,a i 指代每个参与人的临时秘密。
其中,若验证目标等式成立通过,则执行步骤S215、判定共享份额和公钥生成完成。
通过以上交互过程,n个参与人各自持有一个公开的X横坐标和一个Feldman可验证秘密共享份额,对于一个[t,n]门限,t个参与者交互可以生成正确的签名。
对于一个SM2加密算法的公私钥对:{d, P},其实际共享的秘密为(1+d)逆元,以此简化后续多方签名的过程:
Figure 991328DEST_PATH_IMAGE043
交互过程中不会泄露共享秘密的信息,并且过程中采用Hash承诺和零知识证明技术,保证交互过程的安全性。
共享秘密的公钥为:
Figure 631388DEST_PATH_IMAGE044
还需要说明的是,步骤S211到步骤S214是可选择性执行的,在不需要通过零知识证明来验证分享份额shi的情况下,可以不需要执行步骤S211到步骤S214。
下述也通过实施例来介绍签名的过程。
一、准备阶段:
在准备阶段,能够构建得到参与签名的参与者集合,集合中包含参与签名的参与者,具体的,从n个基于SM2签名算法的门限签名方法的参与人中,找到t个参与人即完成了参与签名的参与者集合。
参与签名的参与者集合的生成方法中,n个基于SM2签名算法的门限签名方法的每一个参与人执行下述步骤。以下以参与人U i 和参与人Uj之间的交互来进行说明,参与签名的参与者集合的生成方法中,每个参与人先执行下述步骤,如图3所示,以参与人U i 为例说明:
S301、将待签名明文M转换为整数
Figure 196362DEST_PATH_IMAGE045
其中:ZA = H(ENTLA||IDA||a||b||xG||yG||xA||yA),是按SM2椭圆曲线公钥密码算法,将椭圆曲线方程参数a、b、G的坐标xG、yG和PA的坐标xA、yA的数据类型转换为比特串;H为hash算法,对于SM3WITHSM2签名算法,其为SM3。
S302、计算使用的SM2椭圆曲线基点G、公共公钥P和待签名明文M对应的整数e的Hash承诺:Hash(G||e·P),该承诺称之为第一承诺。
S303、选择一个随机秘钥
Figure 373878DEST_PATH_IMAGE046
, 并计算其Hash承诺: Hash(ki·G),该承诺称之为第二承诺。
S304、生成一个同态加密的公、私钥对;其中,同态加密公钥为Pi
S305、广播第一承诺、第二承诺以及同态加密公钥Pi
其中,参与人U i 向各个参与人广播第一承诺、第二承诺、以及同态加密公钥P。
S306、各方接收到第一承诺、第二承诺以及同态加密公钥Pi后,验证第一承诺Hash(G||e·P)与本人持有的第一承诺是否相同。
其中,参与人Uj会接收到第一承诺、第二承诺以及同态加密公钥Pi,在接收到之后,则验证自己的第一承诺与接收的第一承诺,是否相同,并执行下述步骤。
若验证相同,则证明对方是合法的签名参与人,并持有相同公共公钥P和待签名明文M对应的整数e,则执行S307和S308。
S307、将合法的签名参与人记入参与签名的参与者集合|S|。
S308、保存对方广播的同态加密公钥Pi和随机秘钥ki的Hash承诺备用,即保存同态加密公钥Pi和第二承诺。
还需要说明的是,在确认参与签名的参与者集合|S|≥t时,则开始联合签名计算。
二、共享份额权重转换:
对于一个t-1阶的多项式
Figure 973486DEST_PATH_IMAGE047
,已知大于等于t个非重合点,可以求解。
按照拉格朗日插值法,可以构造一个次数不超过t的插值函数多项式Ln(x),使得
Figure 581185DEST_PATH_IMAGE048
成立,其拉格朗日插值公式:
Figure 633455DEST_PATH_IMAGE049
因此,对于参与签名的大于等于t个参与者集合|S|,各参与者的x坐标值已知,可以使用拉格朗日插值公式将持有的秘密共享份额si转换为权重
Figure 86433DEST_PATH_IMAGE050
,使得共享的秘密f(0)满足:
Figure 806127DEST_PATH_IMAGE051
需要说明的是,t-1阶的多项式求解的方法,用拉格朗日系数矩阵转换,将持有的秘密共享份额和参与者的X横坐标,在***露秘密的情况下转换成各自的持有权重wi, 并且wi的和等于共享的秘密,可以方便后续计算。
三、计算签名:
由上述实施例构建的参与签名的参与者集合中的t个参与者,相互交互完成对待签名明文的签名。同样,以参与者U i 和参与者Uj之间的交互来进行说明,参与签名的参与者集合中的t个参与者,分别先执行下述步骤,如图4所示,以参与者Uj为例来说明。
S401、参与者Uj使用同态加密公钥P j 对持有的随机秘密k j 加密得到随机秘密k j 的密文Ej(kj),并广播给其他参与者。
每个参与者收到参与者Uj广播的密文Ej(kj)之后,会执行下述步骤,以下也以参与者U i 为例来说明。
S402、参与者U i 收到对方加密的秘文Ej(kj)后,生成随机干扰因子βi,j并计算β' =- βi,j
S403、利用参与者Uj的同态加密公钥以同态加密的方法,加密权重值wi、密文Ej(kj)和干扰因子βi,j,得到第二加密数据。
其中,第二加密数据的公示为:
Figure 584727DEST_PATH_IMAGE052
S404、计算权重值wi和干扰因子βi,j的零知识证明。
其中,可以使用任何支持零知识证明算法计算权重值wi和干扰因子βi,j的零知识证明。以下同样以扩展Schnorr非交互式零知识证明协议为例进行说明。
计算权重值wi和干扰因子βi,j的零知识证明的步骤,包括:
①U i 使用自己持有的权重值wi、干扰因子βi,j和自己的固定点Ri计算V值,计算公式为:
Figure 124293DEST_PATH_IMAGE053
②生成两个随机数m,n并计算alpha值:
Figure 646541DEST_PATH_IMAGE012
③计算
Figure 689584DEST_PATH_IMAGE013
,H为约定的Hash算法,如SM3。
④计算
Figure 639085DEST_PATH_IMAGE014
Figure 197105DEST_PATH_IMAGE015
。N为SM2椭圆曲线的阶。
⑤结果(V,u, t, alpha)即为可验证的证明。
S405、发送第二加密数据E (αi,j)、以及权重值wi和干扰因子βi,j的零知识证明给对方。
参与者Uj收到消息后,执行下述步骤:
S406、参与者Uj收到消息后,验证权重值wi和干扰因子βi,j的零知识证明。
S407、若验证零知识证明通过,则使用自己持有的同态加密私钥解密第二加密数据E (αi,j),得到第二交互秘密
Figure 523045DEST_PATH_IMAGE054
S408、从权重值wi和干扰因子βi,j的零知识证明中,得到参与者U i 的wi·G的值。
S409、在收集每个参与者的消息后,利用自身的权重值wi、随机秘密k i 、干扰因子βi,j和每个参与者的第二交互秘密αi,j 计算得到基础值δi
Figure 420593DEST_PATH_IMAGE055
S410、广播随机秘密kj的第二承诺,即kj·G的承诺。
参与者U i 收到kj·G的承诺后,执行下述步骤:
S411、接收到kj·G的承诺,验证kj·G的承诺合法时,从kj·G的承诺中取出承诺中的目标值,即kj·G的值,并利用每个参与者的随机秘密kj的第二承诺中的kj·G的值,计算得到目标值
Figure 337734DEST_PATH_IMAGE056
S412、利用目标值R和待签名明文M对应的整数e计算得到第一签名值r,计算公式为: r = Rx + e mod N。N为SM2椭圆曲线的阶。
S413、计算自身的签名基础值
Figure 851892DEST_PATH_IMAGE057
,并广播签名基础值。
S414、收集到其他参与签名的参与人的si后,利用每个参与者的签名基础值si以及第一签名值r,计算得到第二签名值s, s
Figure 715943DEST_PATH_IMAGE058
S415、组合第一签名值和第二签名值,得到最终签名为(r, s) 。
需要说明的是,在现有技术的基于SM2签名算法的门限签名方案中,在签名阶段,也需要秘密乘积的分享,也需要构建多项式,导致多项式的阶翻倍,需要n≥2t,且2t+1个参与人才可以生成一个有效的数字签名。
而在本申请实施例提供的门限签名方法,在签名的环节中,也利用对方参与者的同态加密公钥以同态加密的方法,加密权重值、密文和干扰因子,得到第二加密数据,并计算权重值和干扰因子的零知识证明;在接收对方参与者发送的随机秘密的第二承诺,在验证随机秘密的第二承诺合法时,获取所述随机秘密的第二承诺中的目标值,利用每个参与者的随机秘密的第二承诺中的目标值计算得到目标值,再利用目标值和待签名明文对应的整数计算得到第一签名值;并且,在对方参与者验证权重值和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密第二加密数据得到第二交互秘密,以自身的权重值、随机秘密、干扰因子和每个参与者的第二交互秘密计算得到基础值,再利用基础值、权重值和第一签名值计算得到签名基础值;利用每个参与者的签名基础值以及第一签名值,计算得到第二签名值;组合第一签名值和第二签名值,就得到最终签名。由此可以看出:在签名的环节中,用同态加密的方法,即待签名明文的签名,而不需要构建多项式,也不会存在多项式的阶翻倍,因此只需要保证(t,n) 门限中,进一步保证基于SM2签名算法的门限签名方法的参与人n只需要大于等于参与签名的参与者t即可,不需要2t+1个才能生成一个有效的数字签名。
还需要说明的是,基于SM2签名算法的门限签名方法的参与人,只要在秘密逆元的分享环节进行一次加解密,在签名环节进行一次加解密,不需要复杂的算法,性能可以得到很大的提升,且在参与人之间的交互过程中,没有存在秘钥的全文格式,保障了安全性。
签名验证
由于采用上述实施例公开的签名方法对待签名明文M签名得到的签名(r,s),完全符合国密SM2算法规范,可以直接按照GM/T 0003.2《SM2椭圆曲线公钥密码算法第2部分-数字签名算法》的规范,使用公共的公钥、数字签名和签名内容进行签名验证计算。验签简要步骤如下:
验签者在收到签名(r,s)和待签名明文M后:
1)按照GM/T 0003.2《SM2椭圆曲线公钥密码算法第2部分数字签名算法》的规范,将待签名明文M转换为整数
Figure 358013DEST_PATH_IMAGE045
其中: ZA = H(ENTLA||IDA||a||b||xG||yG||xA||yA),是将椭圆曲线方程参数a、b、G的坐标xG、yG和PA的坐标xA、yA的数据类型转换为比特串;H为hash算法,对于SM3WITHSM2签名算法,其为SM3;M为待验签的数据。
2) 计算下述公式是否成立。
公式为:
Figure 914896DEST_PATH_IMAGE059
; 其中:G为SM2椭圆曲线的基点,P为公钥。
3) 判断等式是否成立:(x’ + e)是否等于签名中的r。
本申请实施例提供的基于SM2签名算法的门限签名方法在执行效率上,比现有技术有极大提升,提高了门限签名方法的实用性。以下可以从网络交互和计算量两个维度进行比较。
网络交互:网络交互的复杂度又可以分为交互次数和数据量,网络交互次数表示了完成算法的网络复杂程度,交互的数据量则代表对网络带宽资源的占用。计算量:评估算法计算复杂度和对计算资源使用效率。
网络交互复杂度的比较如下表所示:
Figure 8360DEST_PATH_IMAGE060
为了更细致评估算法的计算效率,本申请提供的门限签名方案对关键的操作首先进行基准性能评估,为保证可比性,同态加密选择相同的算法-Paillier算法:
Figure 676102DEST_PATH_IMAGE062
从基准测试可以看出同态加密对资源消耗很大。
计算量评估的比较如下表所示:
Figure 751506DEST_PATH_IMAGE063
本申请另一实施例还公开了一种基于SM2签名算法的门限签名装置,用于执行生成分布式秘钥、签名待签名明文和验签三个阶段的流程,其中,所述门限签名装置生成分布式秘钥阶段中的秘密逆元的分享时,如图5所示,包括:
第一加密单元501,用于利用对方的同态加密公钥以同态加密的方法,加密自身的临时秘密、密文和干扰因子,得到第一加密数据;其中,密文由对方利用同态加密公钥加密自身的随机秘密k j 得到;对方指代所述基于SM2签名算法的门限签名方法的n个参与人中的每个参与人;
第一计算单元502,用于计算临时秘密和干扰因子的零知识证明;
第一发送单元503,用于向对方发送临时秘密和干扰因子的零知识证明、以及第一加密数据;
第一接收单元504,用于接收对方发送的分享秘密的基础值;其中,分享秘密的基础值由对方利用自身的临时秘密、随机秘密、干扰因子、和每个参与人的第一交互秘密计算得到;其中,第一交互秘密由所述对方验证临时秘密和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密第一加密数据得到;
第二计算单元505,用于利用每个参与人的分享秘密的基础值、计算得到分享秘密的逆元。
本申请实施例公开的单元的具体工作过程,可参见对应图1的实施例内容,此处不在赘述。
可选地,本申请另一实施例中,所述门限签名装置签名待签名明文时,包括:
第二加密单元,用于利用对方参与者的同态加密公钥以同态加密的方法,加密权重值、密文和干扰因子,得到第二加密数据;其中,所述密文由对方参与者利用同态加密公钥加密随机秘密得到;权重值由秘密共享份额转换得到;对方参与者指代参与签名的参与者集合中的每个参与者;
第三计算单元,用于计算权重值和干扰因子的零知识证明;
第二发送单元,用于向对方参与者发送权重值和干扰因子的零知识证明、以及第二加密数据;
第二接收单元,用于接收对方参与者发送的随机秘密的第二承诺;
第一处理单元,用于在验证所述随机秘密的第二承诺合法时,获取所述随机秘密的第二承诺中的目标值,利用每个参与者的随机秘密的第二承诺中的目标值,计算得到目标值,再利用目标值和待签名明文对应的整数计算得到第一签名值;
第四计算单元,用于计算得到自身的签名基础值,并利用每个参与者的签名基础值以及第一签名值,计算得到第二签名值;其中,所述签名基础值si利用基础值、权重值和第一签名值计算得到;基础值利用自身的权重值、随机秘密、干扰因子和每个参与者的第二交互秘密计算得到;所述第二交互秘密所述对方参与者验证所述权重值和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密所述第二加密数据得到;
组合单元,用于组合所述第一签名值和所述第二签名值,得到最终签名为。
本申请实施例公开的单元的具体工作过程,可参见对应图4的实施例内容,此处不在赘述。
可选地,本申请另一实施例中,如图6所示,基于SM2签名算法的门限签名装置除了包括第一加密单元601、第一计算单元602、第一发送单元603、第一接收单元604和第二计算单元605之外,还包括:
生成单元606,用于生成同态加密公、私钥对,并计算得到第一承诺和第二承诺;其中,所述第一承诺为椭圆曲线基点、公共公钥和待签名明文对应的整数的承诺;所述第二承诺为自身的随机秘密的承诺。
第三接收单元607,用于接收所述对方广播的第一承诺、第二承诺和同态加密公钥。
保存单元608,用于验证所述对方广播的第一承诺与自身的第一承诺相同,则将所述对方作为参与签名的参与者加入参与签名的参与者集合,并保存所述对方的同态加密公钥和第二承诺。
其中,生成单元606,第三接收单元607和保存单元608配合生成参与签名的参与者集合,其具体工作过程可参见对应图3的实施例的内容,此处不再赘述。
可选地,本申请另一实施例中,所述门限签名装置生成分布式秘钥阶段中的计算公钥和分享份额,包括:
第四接收单元,用于接收所述对方广播的X轴横坐标、多项式系数的承诺、以及随机秘密的第一承诺。
第一验证单元,用于检查出所述对方广播的X轴横坐标不重复时,验证所述对方的随机秘密的第二承诺是否合法。
第二处理单元,用于若验证出所述随机秘密的第二承诺合法,则获取所述随机秘密的第二承诺中的目标值,并利用每个参与人的随机秘密的第二承诺中的目标值,计算得到公钥。
第二验证单元,用于在接收到所述对方广播的多项式执行结果时,验证目标多项式的计算结果是否等于目标结果;其中,所述目标多项式为利用所述对方多项式系数承诺作为系数构建得到,所述目标结果为所述对方的多项式执行结果与椭圆曲线基点的积。
第五计算单元,用于若验证出目标多项式的计算结果等于目标结果,则利用每个参与人的多项式执行结果和自己的t-1阶多项式,计算分享份额。
可选地,本申请另一实施例中,基于SM2签名算法的门限签名装置,还包括:
第六计算单元,用于计算所述分享份额的零知识证明。
第三发送单元,用于向所述对方广播。
获取单元,用于在接收到每个参与人广播的分享份额的零知识证明时,若验证每个参与人的分享份额的零知识证明合法,则获取所述每个参与人的分享份额的零知识证明的特征值。
第三验证单元,用于验证目标等式是否成立,目标等式为:
Figure 948132DEST_PATH_IMAGE002
;式中,shi指代每个参与人的分享份额,G指代椭圆曲线基点,δ-1指代分享秘密的逆元,a i 指代每个参与人的临时秘密。
判定单元,用于若验证目标等式成立,则判定所述共享份额和公钥生成完成。
上述两个实施例提供的各个单元的具体工作过程,可参见对应图2所示的实施例内容,此处不再赘述。
本申请另一实施例提供了一种电子设备,如图7所示,包括:
一个或多个处理器701。
存储器702,其上存储有一个或多个程序。
当所述一个或多个程序被所述一个或多个处理器701执行时,使得所述一个或多个处理器701实现如上述实施例中任意一项所述的方法。
本申请另一实施例提供了一种计算机存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如上述实施例中任意一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种基于SM2签名算法的门限签名方法,其特征在于,包括生成分布式秘钥、签名待签名明文和验签三个阶段,其中,所述生成分布式秘钥阶段中的秘密逆元的分享,包括:
利用对方的同态加密公钥以同态加密的方法,加密自身的临时秘密 a i、密文E j (k j )和干扰因子βi,j,得到第一加密数据;其中,所述密文E j (k j )由对方利用同态加密公钥P j 加密自身的随机秘密kj得到;所述对方指代所述基于SM2签名算法的门限签名方法的n个参与人中的每个参与人;i、j表示不同的参与人,且i、j的取值范围为1-n;kj表示参与人Uj持有生成的随机秘密;
计算所述临时秘密a i 和干扰因子βi,j的零知识证明;
向所述对方发送所述临时秘密和干扰因子的零知识证明、以及所述第一加密数据;
接收所述对方发送的分享秘密的基础值δi;其中,所述分享秘密的基础值由所述对方利用自身的临时秘密a i 、随机秘密ki、干扰因子、和每个参与人的第一交互秘密αi,j 计算得到;其中,所述第一交互秘密αi,j由所述对方验证所述临时秘密和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密所述第一加密数据得到;ki表示参与人Ui持有生成的随机秘密;
利用每个参与人的分享秘密的基础值,计算得到分享秘密的逆元。
2.根据权利要求1所述的门限签名方法,其特征在于,所述签名待签名明文,包括:
利用对方参与者的同态加密公钥以同态加密的方法,加密权重值wi、密文E j (k j )和干扰因子βi,j,得到第二加密数据;其中,所述密文E j (k j )由对方参与者利用同态加密公钥P j 加密随机秘密kj得到;所述权重值wi由秘密共享份额si转换得到;所述对方参与者指代从n个基于SM2签名算法的门限签名方法的参与人当中,筛选出来参与签名的参与者集合中的每个参与者;
计算所述权重值wi和干扰因子βi,j的零知识证明;
向所述对方参与者发送所述权重值和干扰因子的零知识证明、以及第二加密数据;
接收对方参与者发送的随机秘密kj的第二承诺;
在验证所述随机秘密kj的第二承诺合法时,获取所述随机秘密kj的第二承诺中的目标值kj·G,利用每个参与者的随机秘密kj的第二承诺中的目标值kj·G,计算得到目标值R,再利用所述目标值R和待签名明文M对应的整数e计算得到第一签名值r;G指代椭圆曲线的基点;
计算得到自身的签名基础值si,并利用每个参与者的签名基础值si以及第一签名值r,计算得到第二签名值s;其中,所述签名基础值si利用基础值δi、权重值wi和第一签名值r计算得到;所述基础值δi利用自身的权重值wi、随机秘密ki、干扰因子和每个参与者的第二交互秘密αi,j 计算得到;所述第二交互秘密αi,j由所述对方参与者验证所述权重值和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密所述第二加密数据得到;
组合所述第一签名值和所述第二签名值,得到最终签名。
3.根据权利要求2所述的门限签名方法,其特征在于,所述签名待签名明文之前,还包括生成参与签名的参与者集合,其中,所述生成参与签名的参与者集合包括:
生成同态加密公、私钥对,并计算得到第一承诺和第二承诺;其中,所述第一承诺为椭圆曲线基点G、公共公钥P和待签名明文M对应的整数e的承诺;所述第二承诺为自身的随机秘密ki的承诺;
接收所述对方广播的第一承诺、第二承诺和同态加密公钥;
验证所述对方广播的第一承诺与自身的第一承诺相同,则将所述对方作为参与签名的参与者加入所述参与签名的参与者集合,并保存所述对方的同态加密公钥和第二承诺。
4.根据权利要求1所述的门限签名方法,其特征在于,所述生成分布式秘钥阶段中的计算公钥和分享份额,包括:
接收所述对方广播的X轴横坐标x i 、多项式系数的承诺、以及随机秘密k i 的第一承诺Di
检查出所述对方广播的X轴横坐标x i 不重复时,验证所述对方的随机秘密k i 的第二承诺C i 是否合法;
若验证出所述随机秘密k i 的第二承诺合法,则获取所述随机秘密k i 的第二承诺中的目标值ki·G,并利用每个参与人的随机秘密k i 的第二承诺中的目标值,计算得到公钥
Figure 954890DEST_PATH_IMAGE001
在接收到所述对方广播的多项式执行结果v i,j 时,验证目标多项式pj(x) 的计算结果是否等于目标结果;其中,所述目标多项式pj(x)为利用所述对方多项式系数承诺作为系数构建得到,所述目标结果为所述对方的多项式执行结果v i,j 与椭圆曲线基点G的积;
若验证出目标多项式pj(x) 的计算结果等于目标结果,则利用每个参与人的多项式执行结果v i,j 和自己的t-1阶多项式,计算分享份额shi
5.根据权利要求4所述的门限签名方法,其特征在于,所述用每个参与人的多项式执行结果v i,j 和自己的t-1阶多项式,计算分享份额shi之后,还包括:
计算所述分享份额shi的零知识证明并向所述对方广播;
在接收到每个参与人广播的分享份额shi的零知识证明时,若验证每个参与人的分享份额shi的零知识证明合法,则获取所述每个参与人的分享份额shi的零知识证明的特征值;
验证目标等式是否成立,所述目标等式为:
Figure 128383DEST_PATH_IMAGE002
;式中,shi指代每个参与人的分享份额,G指代椭圆曲线基点,δ-1指代分享秘密的逆元,a i指代每个参与人的临时秘密;
若验证所述目标等式成立,则判定共享份额和公钥生成完成。
6.一种基于SM2签名算法的门限签名装置,其特征在于,用于执行生成分布式秘钥、签名待签名明文和验签三个阶段的流程,其中,所述门限签名装置生成分布式秘钥阶段中的秘密逆元的分享时,包括:
第一加密单元,用于利用对方的同态加密公钥以同态加密的方法,加密自身的临时秘密a i、密文E j (k j )和干扰因子βi,j,得到第一加密数据;其中,所述密文E j (k j )由对方利用同态加密公钥P j 加密自身的随机秘密kj得到;所述对方指代所述基于SM2签名算法的门限签名方法的n个参与人中的每个参与人;i、j表示不同的参与人,且i、j的取值范围为1-n;kj表示参与人Uj持有生成的随机秘密;
第一计算单元,用于计算所述临时秘密a i和干扰因子βi,j的零知识证明;
第一发送单元,用于向所述对方发送所述临时秘密和干扰因子的零知识证明、以及所述第一加密数据;
第一接收单元,用于接收所述对方发送的分享秘密的基础值δi;其中,所述分享秘密的基础值由所述对方利用自身的临时秘密a i、随机秘密k i 、干扰因子、和每个参与人的第一交互秘密αi,j 计算得到;其中,所述第一交互秘密αi,j由所述对方验证所述临时秘密和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密所述第一加密数据得到;ki表示参与人Ui持有生成的随机秘密;
第二计算单元,用于利用每个参与人的分享秘密的基础值,计算得到分享秘密的逆元。
7.根据权利要求6所述的门限签名装置,其特征在于,所述门限签名装置签名待签名明文时,包括:
第二加密单元,用于利用对方参与者的同态加密公钥以同态加密的方法,加密权重值wi、密文E j (k j )和干扰因子βi,j,得到第二加密数据;其中,所述密文E j (k j )由对方参与者利用同态加密公钥P j 加密随机秘密kj得到;所述权重值wi由秘密共享份额si转换得到;所述对方参与者指代从n个基于SM2签名算法的门限签名方法的参与人当中,筛选出来参与签名的参与者集合中的每个参与者;
第三计算单元,用于计算所述权重值wi和干扰因子βi,j的零知识证明;
第二发送单元,用于向所述对方参与者发送所述权重值和干扰因子的零知识证明、以及第二加密数据;
第二接收单元,用于接收对方参与者发送的随机秘密kj的第二承诺;
第一处理单元,用于在验证所述随机秘密kj的第二承诺合法时,获取所述随机秘密kj的第二承诺中的目标值kj·G,利用每个参与者的随机秘密kj的第二承诺中的目标值kj·G,计算得到目标值R,再利用所述目标值R和待签名明文M对应的整数e计算得到第一签名值;G指代椭圆曲线的基点;
第四计算单元,用于计算得到自身的签名基础值si,并利用每个参与者的签名基础值si以及第一签名值r,计算得到第二签名值s;其中,所述签名基础值si利用基础值δi、权重值wi和第一签名值r计算得到;所述基础值δi利用自身的权重值wi、随机秘密k i 、干扰因子和每个参与者的第二交互秘密αi,j 计算得到;所述第二交互秘密αi,j由所述对方参与者验证所述权重值和干扰因子的零知识证明合法时,利用自身的同态加密私钥解密所述第二加密数据得到;
组合单元,用于组合所述第一签名值和所述第二签名值,得到最终签名。
8.根据权利要求7所述的门限签名装置,其特征在于,还包括:
生成单元,用于生成同态加密公、私钥对,并计算得到第一承诺和第二承诺;其中,所述第一承诺为椭圆曲线基点G、公共公钥P和待签名明文M对应的整数e的承诺;所述第二承诺为自身的随机秘密k i 的承诺;
第三接收单元,用于接收所述对方广播的第一承诺、第二承诺和同态加密公钥;
保存单元,用于验证所述对方广播的第一承诺与自身的第一承诺相同,则将所述对方作为参与签名的参与者加入所述参与签名的参与者集合,并保存所述对方的同态加密公钥和第二承诺。
9.根据权利要求6所述的门限签名装置,其特征在于,所述门限签名装置生成分布式秘钥阶段中的计算公钥和分享份额,包括:
第四接收单元,用于接收所述对方广播的X轴横坐标x i 、多项式系数的承诺、以及随机秘密k i 的第一承诺Di
第一验证单元,用于检查出所述对方广播的X轴横坐标x i 不重复时,验证所述对方的随机秘密k i 的第二承诺C i 是否合法;
第二处理单元,用于若验证出所述随机秘密k i 的第二承诺合法,则获取所述随机秘密k i 的第二承诺中的目标值ki·G,并利用每个参与人的随机秘密k i 的第二承诺中的目标值,计算得到公钥
Figure 466960DEST_PATH_IMAGE001
第二验证单元,用于在接收到所述对方广播的多项式执行结果v i,j 时,验证目标多项式pj(x) 的计算结果是否等于目标结果;其中,所述目标多项式pj(x)为利用所述对方多项式系数承诺作为系数构建得到,所述目标结果为所述对方的多项式执行结果v i,j 与椭圆曲线基点G的积;
第五计算单元,用于若验证出目标多项式pj(x) 的计算结果等于目标结果,则利用每个参与人的多项式执行结果v i,j 和自己的t-1阶多项式,计算分享份额shi
10.根据权利要求9所述的门限签名装置,其特征在于,还包括:
第六计算单元,用于计算所述分享份额shi的零知识证明;
第三发送单元,用于向所述对方广播;
获取单元,用于在接收到每个参与人广播的分享份额shi的零知识证明时,若验证每个参与人的分享份额shi的零知识证明合法,则获取所述每个参与人的分享份额shi的零知识证明的特征值;
第三验证单元,用于验证目标等式是否成立,所述目标等式为:
Figure 700495DEST_PATH_IMAGE002
;式中,shi指代每个参与人的分享份额,G指代椭圆曲线基点,δ-1指代分享秘密的逆元,a i指代每个参与人的临时秘密;
判定单元,用于若验证所述目标等式成立,则判定共享份额和公钥生成完成。
11.一种计算机存储介质,其特征在于,用于存储计算机程序,所述计算机程序被处理器执行时,具体用于实现如权利要求1至5任意一项所述的基于SM2签名算法的门限签名方法。
12.一种电子设备,其特征在于,包括存储器和处理器;
其中,所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,具体用于实现如权利要求1至5任意一项所述的基于SM2签名算法的门限签名方法。
CN202110748702.8A 2021-07-02 2021-07-02 门限签名方法、装置、设备以及存储介质 Active CN113507374B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110748702.8A CN113507374B (zh) 2021-07-02 2021-07-02 门限签名方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110748702.8A CN113507374B (zh) 2021-07-02 2021-07-02 门限签名方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN113507374A CN113507374A (zh) 2021-10-15
CN113507374B true CN113507374B (zh) 2021-11-30

Family

ID=78009869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110748702.8A Active CN113507374B (zh) 2021-07-02 2021-07-02 门限签名方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN113507374B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114070556B (zh) * 2021-11-15 2023-07-25 成都卫士通信息产业股份有限公司 一种门限环签名方法、装置、电子设备及可读存储介质
CN114157427B (zh) * 2021-12-02 2023-06-20 南京邮电大学 基于sm2数字签名的门限签名方法
CN114444069B (zh) * 2021-12-17 2023-04-07 中国科学院信息工程研究所 一种恶意模型下高效的阈值安全多方计算方法
CN115412260B (zh) * 2022-08-30 2023-10-20 云海链控股股份有限公司 Sm2门限签名方法、***、设备及计算机可读存储介质
CN115580401B (zh) * 2022-10-25 2023-12-22 商密(广州)信息科技有限公司 一种基于可验证秘密共享的无证书sm2密钥生成方法
CN116132049B (zh) * 2023-01-04 2023-09-08 声龙(新加坡)私人有限公司 数据加密的方法、装置、设备及存储介质
CN117155584B (zh) * 2023-10-27 2024-01-26 北京信安世纪科技股份有限公司 Schnorr数字签名方法、***及设备
CN117278213B (zh) * 2023-10-31 2024-02-09 杭州趣链科技有限公司 基于多项式承诺的方法、电子设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547212A (zh) * 2018-12-04 2019-03-29 中国电子科技集团公司第三十研究所 一种基于sm2签名算法的门限签名方法
US10630477B1 (en) * 2018-12-27 2020-04-21 Blue Helix Efficient threshold distributed elliptic curve key generation and signature method and system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110061828B (zh) * 2019-04-04 2021-05-04 西安电子科技大学 无可信中心的分布式数字签名方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547212A (zh) * 2018-12-04 2019-03-29 中国电子科技集团公司第三十研究所 一种基于sm2签名算法的门限签名方法
US10630477B1 (en) * 2018-12-27 2020-04-21 Blue Helix Efficient threshold distributed elliptic curve key generation and signature method and system

Also Published As

Publication number Publication date
CN113507374A (zh) 2021-10-15

Similar Documents

Publication Publication Date Title
CN113507374B (zh) 门限签名方法、装置、设备以及存储介质
CN108667625B (zh) 协同sm2的数字签名方法
CN107634836B (zh) 一种sm2数字签名生成方法及***
Zhou et al. ExpSOS: Secure and verifiable outsourcing of exponentiation operations for mobile cloud computing
CN112906030B (zh) 基于多方全同态加密的数据共享方法和***
CN110999209B (zh) 一种用于通信的装置、方法和非瞬态计算机可读介质
CN110011795B (zh) 基于区块链的对称群组密钥协商方法
CN109309569A (zh) 基于sm2算法的协同签名的方法、装置及存储介质
CN110545279A (zh) 兼具隐私和监管功能的区块链交易方法、装置及***
CN107248909A (zh) 一种基于sm2算法的无证书安全签名方法
CN110087237A (zh) 基于数据扰动的隐私保护方法、装置及相关组件
CN104754570B (zh) 一种基于移动互联网络的密钥分发和重构方法与装置
CN110011803A (zh) 一种轻量级sm2两方协同生成数字签名的方法
CN115396115B (zh) 区块链数据隐私保护方法、装置、设备及可读存储介质
CN115834056A (zh) 一种无证书有序聚合签名方法、***及相关装置
Liu et al. Secure and efficient two-party collaborative SM9 signature scheme suitable for smart home
Li et al. Cryptographic algorithms for privacy-preserving online applications.
CN117220891A (zh) 基于非交互分布式密钥的门限ecdsa签名方法及***
CN108964906B (zh) 协同ecc的数字签名方法
CN111669275A (zh) 一种无线网络环境下可选择从节点的主从协作签名方法
CN116015592A (zh) 一种满足零知识证明的同态加密***
CN114915402A (zh) 一种基于安全多方计算的可验证隐私推荐***
Badsha et al. Private recommendations generation for vertically partitioned datasets
CN112667995A (zh) 受限Paillier加密***及其在密钥分发和身份认证中的应用方法
CN114337994A (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