CN113972981B - 一种基于sm2密码算法的高效门限签名方法 - Google Patents
一种基于sm2密码算法的高效门限签名方法 Download PDFInfo
- Publication number
- CN113972981B CN113972981B CN202111153521.7A CN202111153521A CN113972981B CN 113972981 B CN113972981 B CN 113972981B CN 202111153521 A CN202111153521 A CN 202111153521A CN 113972981 B CN113972981 B CN 113972981B
- Authority
- CN
- China
- Prior art keywords
- signature
- sub
- share
- random number
- participant
- 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
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/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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/72—Signcrypting, i.e. digital signing and encrypting simultaneously
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种基于SM2密码算法的高效门限签名方法。本方法包括密钥生成阶段和数字签名生成阶段。密钥生成阶段包括有可信中心和无可信中心两种模式,其中在有可信中心模式下签名参与方数量阈值为t+1,每个签名参与方只需与可信中心通信1次;在无可信中心模式下签名参与方数量阈值为2t+1,每个签名参与方只需与其余签名参与方各通信2次。在数字签名生成阶段,签名参与方数量阈值为t+1,每个签名参与方只需与其余签名参与方各通信2次。当签名参与方中被窃听的数量最多为t个时,达到上述阈值的过程将是安全的。在密钥生成阶段无需事先获得完整的签名私钥;在数字签名生成阶段和无可信中心模式下的密钥生成阶段从未出现完整的签名私钥。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一种基于SM2密码算法的高效门限签名的安全实现方法。
背景技术
SM2算法是国家密码管理局发布的一种椭圆曲线公钥密码算法,可用于加密/解密、数字签名/验签、密钥交换,在密码领域中应用广泛。数字签名算法的安全性取决于用于产生数字签名的私钥的安全性;在SM2数字签名算法中,私钥仅由1个用户持有,一旦私钥被窃取,则攻击者可以伪造数字签名。
门限密码是保护密钥安全的一种有效的技术手段,基于门限密码的密码算法签名方法在实际应用中具有较高的应用价值。然而,在现有的基于门限密码的SM2签名方法中,存在签名参与方数量阈值较高、方案所需通信次数较多、计算较复杂等不足,使得方案在实际应用中难以获得较高的效率,从而影响了方案的普遍应用。
2014年,尚铭等人提出了一种基于SM2算法的门限签名方法,将门限密码技术与SM2签名算法结合了起来。然而,该门限签名方法存在以下不足:(1)该方法要求签名参与方数量的阈值为2t+1,不适用于(2,2)门限等应用场景;(2)该方法包括Joint-ZSS、Joint-RSS和PM-SS一共3个门限密码子算法,要求签名参与方之间进行多次通信,不适合在通信成本较高的场景下应用。
2016年,杨国强等人借助多方安全计算协议,提出了一种新的基于SM2算法的门限签名方法,将签名参与方数量的阈值降低为t+1。然而,该门限签名方法存在以下不足:(1)该方法在密钥生成阶段要求可信中心参与,由可信中心生成并分发私钥份额,不适用于难以指定可信中心的场景,且一旦可信中心受到攻击,将对密钥的安全造成直接且严重的影响;(2)该方法要求签名参与方共同执行多方安全计算协议来完成数字签名的计算,现有常用的多方安全计算协议包括混淆电路、不经意传输等,均要求协议参与方之间进行多次通信,且协议参与方需要完成复杂的计算,不适合在通信成本较高或签名参与方的计算能力有限的场景下应用。
2017年,龙毅宏通过对SM2签名算法进行变换,提出了3种新的基于SM2算法的门限签名方法,同样将签名参与方数量的阈值降低为t+1。然而,这3种门限签名方法均存在以下不足:(1)上述3种方法均要求在生成数字签名前,由可信中心对每个签名参与方(装置)进行初始化操作,由可信中心根据用户的SM2私钥计算并分发用于计算数字签名的秘密份额或秘密数,不适用于难以指定可信中心的场景;(2)上述3种方法均要求先存在用户的完整私钥,然后再根据用户的私钥进行门限拆分,不适用于直接生成私钥份额而不计算出完整私钥的应用场景,且完整私钥的出现和传输将面临私钥泄露的风险。
2018年,范佳等人借助同态加密协议和零知识证明技术,提出了一种可验证的基于SM2算法的门限签名方法,同样将签名参与方数量的阈值降低为t+1。然而,该门限签名方法存在以下不足:(1)该方法需要签名参与方完成同态加密和解密计算,要求签名参与方之间进行多次通信,且签名参与方需要完成额外的复杂计算,不适合在通信成本较高或签名参与方的计算能力有限的场景下应用;(2)该方法需要依赖RSA等额外的算法,为签名方法带来了较大的存储和计算成本,不适合在签名参与方的存储能力或计算能力有限的场景下应用。
2019年,黄章杰借助多方安全计算协议,提出了一种基于SM2算法的多方协同签名方法,能够实现签名参与方数量的阈值为t+1的SM2门限签名算法。然而,该方法存在以下不足:该方法要求签名参与方共同执行多次多方安全计算协议来完成数字签名的计算,如多方乘法子协议,要求协议参与方之间进行多次通信,且协议参与方需要完成复杂的计算,不适合在通信成本较高或签名参与方的计算能力有限的场景下应用。
发明内容
为了克服现有基于SM2算法的门限签名方法要求签名参与方数量阈值较高、签名参与方之间所需通信次数较多、基于已经存在的签名私钥、签名参与方所需计算较复杂等不足,本发明提供一种基于SM2密码算法的高效门限签名方法。
本发明所述方法包括密钥生成阶段和数字签名生成阶段。在密钥生成阶段,本方法包括有可信中心和无可信中心两种模式,其中在有可信中心模式下,签名参与方数量阈值为t+1,每个签名参与方需要与可信中心通信1次,完成1次接收数据;在无可信中心模式下,签名参与方数量阈值为2t+1,每个签名参与方需要与其余签名参与方通信2次,完成2次发送数据和2(N-1)次接收数据,其中N是签名参与方的总数。在数字签名生成阶段,签名参与方数量阈值为t+1,每个签名参与方需要与其余签名参与方通信2次,完成2次发送数据和2(M-1)次接收数据,其中M是参与数字签名生成阶段的签名参与方数量。当签名参与方中被攻击者窃听的数量最多为t个时,达到上述阈值的密钥生成过程和数字签名生成过程将是安全的,即攻击者既无法获取或计算出签名私钥,也无法伪造出能通过相应公钥验证的数字签名。
为了叙述方便,将本发明中签名参与方的总数记为N,N个签名参与方分别记为C1,...,CN,每个签名参与方具有唯一且互不相同的标号,表示参与当前计算过程的任意i个签名方的标号组成的集合。理论上两个阶段的签名参与方的数量只要大于等于阈值且小于等于N即可,但因为参加生成数字签名阶段的签名参与方要求先参与过密钥生成阶段来获得子私钥,所以设定参加密钥生成阶段的签名参与方数量为N(即全部签名参与方都需要参加密钥生成阶段),而数字签名生成阶段每一次生成数字签名只需要其中任意M个签名参与方参加即可(其中要求满足t+1≤M≤N)。本发明中所有签名参与方以及可信中心均持有一致的SM2密码算法参数Fq、E、G和n,其中Fq是包含q个元素的有限域,E是定义在有限域Fq上的椭圆曲线,G是椭圆曲线E上的基点,n是基点G的阶,参数Fq、E、G和n的选取方法与标准SM2签名算法一致。
本发明在有可信中心的模式下密钥生成阶段需要1个可信中心和至少t+1个签名参与方共同完成,具体技术方案如下:
(2)可信中心计算签名公钥P=(d′-1-1)[*]G,其中[*]表示椭圆曲线E上的数乘运算;
(3)可信中心计算第一签名参数Q=G[+]P,其中[+]表示椭圆曲线E上的加法运算;
(5)可信中心将签名公钥、第一签名参数、子私钥分别发送给对应的签名参与方,例如可信中心将P、Q、(d′)i发送给标号为i的签名参与方Ci,其中需要保证子私钥(d′)i在传输过程中是安全的;
(6)各个签名参与方接收并存储签名公钥、第一签名参数、子私钥。
本发明在无可信中心的模式下密钥生成阶段的技术方案如下:
(1)各签名参与方各自选取第一子随机数,并各自构造一个(t+1,N)-门限方案来计算其份额;例如各个签名参与方选取第一子随机数并构造相应的随机多项式,例如标号为i的签名参与方Ci选取第一子随机数并构造t次随机多项式/>随机数/>的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的。随机多项式fi(x)是指多项式系数均为随机数的多项式,其中系数/>的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的;
(2)各签名参与方各自选取第二子随机数,并各自构造一个(t+1,N)-门限方案来计算其份额;例如各个签名参与方选取第二子随机数并构造相应的随机多项式,例如标号为i的签名参与方Ci选取第二子随机数并构造t次随机多项式/>随机数/>的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的。随机多项式gi(x)是指多项式系数均为随机数的多项式,其中系数/>的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的;
(3)各签名参与方各自构造一个(2t+1,N)-门限方案来计算子零参数0的份额;例如各个签名参与方构造常数项为0的随机多项式,用来分享子零参数,例如标号为i的签名参与方Ci构造2t次常数项为0的随机多项式使得/>随机多项式hi(x)是指多项式系数除常数项以外均为随机数的多项式,其中系数/>的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的。子零参数与零参数在数值上均等于0,具体来说子零参数是指/>零参数是指β,/>
(6)各个签名参与方将在步骤(4)中为每个签名参与方分别计算的第一子随机数的份额、第二子随机数的份额、子零参数的份额以及在步骤(5)中计算的签名公钥分片分别发送给对应的签名参与方,例如标号为i的签名参与方Ci将第一子随机数的份额第二子随机数的份额/>子零参数的份额/>签名公钥分片/>发送给标号为j的签名参与方Cj,其中需要保证第一子随机数的份额/>第二子随机数的份额/>子零参数的份额/>在传输过程中是安全的;
(7)各个签名参与方在接收其他所有签名参与方发送来的第一子随机数的份额、第二子随机数的份额、子零参数的份额、签名公钥分片后,根据签名公钥分片计算签名公钥 若P=O则返回步骤(1);其中O为椭圆曲线上的零点,签名参与方的总数为N;
(8)各个签名参与方根据签名公钥和基点计算第一签名参数Q=G[+]P;
(9)各个签名参与方根据第一子随机数的份额、第二子随机数的份额、子零参数的份额计算自己所持第一随机数的份额、第二随机数的份额、零参数的份额,例如标号为i的签名参与方Ci计算 其中第一随机数记为d,第二随机数记为α,零参数记为β;
(10)各个签名参与方根据自己所持第一随机数的份额、第二随机数的份额、零参数的份额计算私钥子参数,例如标号为i的签名参与方Ci计算((d+1)α)i=((d)i+1)(α)i+(β)imod n;
(11)各个签名参与方向其他签名参与方发送私钥子参数,例如标号为i的签名参与方Ci向其他签名参与方发送((d+1)α)i;
(12)各签名参与方将接收的私钥子参数作为门限方案的份额,利用重建门限秘密的方法计算得到私钥参数,若私钥参数值为0则返回步骤(1);例如各个签名参与方在接收私钥子参数后,计算私钥参数若(d+1)α=0则返回步骤(1);/>的含义是任意2t+1个签名参与方的标号组成的集合;
(13)各个签名参与方根据私钥参数、自己所持第二随机数的份额计算自己的子私钥,例如标号为i的签名参与方Ci计算(d′)i=((d+1)α)-1(α)imod n。
本发明数字签名生成阶段共M个签名参与方参与,其中M是不小于t+1且不超过N的整数,具体的技术方案如下:
(1)各签名参与方各自选取签名子随机数,并各自构造一个(t+1,N)-门限方案来计算其份额;例如各个签名参与方选取签名子随机数,并构造t次随机多项式,例如标号为i的签名参与方Ci选取随机数并构造t次随机多项式/>
(2)各签名参与方根据签名子随机数、第一签名参数计算自己的第二签名子参数;例如各个签名参与方根据步骤(1)中构造的t次随机多项式计算每个签名参与方的签名子随机数的份额,例如标号为i的签名参与方Ci计算
(7)各个签名参与方计算签名的第一部分r=e+x1mod n,若r=0则返回步骤(1),其中e是待签名消息按照SM2数字签名算法中所述方法计算得到的消息摘要;
(8)各个签名参与方根据子私钥、签名的第一部分、签名随机数的份额计算签名的第二部分的份额,例如标号为i的签名参与方Ci计算(s)i=(d′)ir+(k′)i-r mod n;
(9)各个签名参与方向其他签名参与方发送签名的第二部分的份额,例如标号为i的签名参与方Ci向其他签名参与方发送(s)i;
(11)得到签名(r,s)。
本发明的有益效果包括:
(1)本发明所述基于SM2密码算法的门限签名方法,在密钥生成阶段,可适用于不同的应用场景,即包括有可信中心模式和无可信中心模式,其中在有可信中心模式下,可信中心仅参与完成密钥生成阶段,在密钥生成之后将删除与完整签名私钥相关的数据,保证私钥的安全,用户可根据自身需求和应用条件选择相应的模式;
(2)本发明所述基于SM2密码算法的门限签名方法,在密钥生成阶段无需事先获得完整的签名私钥,尤其是在无可信中心模式下,完整的签名私钥从未出现,提高了签名私钥的安全性;
(3)本发明所述基于SM2密码算法的门限签名方法,在生成数字签名阶段,签名参与方数量阈值为t+1,即当参与生成数字签名阶段的签名参与方的数量M不小于t+1时,可容忍最多t个具有窃听能力的签名参与方的攻击而不泄露签名私钥,且攻击者无法伪造有效的签名;
(4)本发明所述基于SM2密码算法的门限签名方法,有效减少了生成密钥阶段和生成数字签名阶段各个签名参与方之间所需通信次数,具体而言,在有可信中心的模式下密钥生成阶段每个签名参与方需要与可信中心通信1次,完成1次接收数据;在无可信中心的模式下密钥生成阶段每个签名参与方需要与其余签名参与方通信2次,完成2次发送数据和2(N-1)次接收数据;在数字签名生成阶段每个签名参与方需要与其余签名参与方通信2次,完成2次发送数据和2(m-1)次接收数据;
(5)本发明所述基于SM2密码算法的门限签名方法,不需要依赖除SM2算法以外的其它算法,适用于签名参与方计算能力有限或为实现SM2算法的专门设备等应用场景;
(6)本发明所述基于SM2密码算法的门限签名方法,产生的数字签名可由标准SM2验签算法进行验签,即与标准SM2数字签名算法具有良好的兼容性。
附图说明
图1是本发明在有可信中心的模式下密钥生成阶段的过程示意图。
图2是本发明在无可信中心的模式下密钥生成阶段的过程示意图。
图3是本发明数字签名生成阶段的过程示意图。
具体实施方式
下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1是本发明在有可信中心的模式下密钥生成阶段的过程示意图,包括可信中心的计算步骤、标号为i的签名参与方Ci的计算步骤、可信中心与标号为i的签名参与方Ci的通信内容,其它标号的签名参与方的计算步骤及其与可信中心的通信内容是类似的;其中[data]表示数据data需要被安全地传输。如图1所示,本发明方法包括如下步骤101-106。
随机数d′的选取范围为[2,n-1]内的整数,每个整数被选取的概率是均等的。随机多项式f(x)是指多项式系数均为随机数的多项式,其中系数d′1,...,d′t的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的。
在一些实施例中,可信中心可以直接生成随机多项式f(x),使得其系数满足d′0∈[2,n-1]且d′1,...,d′t∈[0,n-1],而不用先选取随机数d′。
步骤102:可信中心计算签名公钥P=(d′-1-1)[*]G。
步骤103:可信中心计算第一签名参数Q=G[+]P。
步骤105:可信中心将签名公钥、第一签名参数、子私钥分别发送给对应的签名参与方,例如可信中心将P、Q、(d′)i发送给标号为i的签名参与方Ci,其中需要保证子私钥(d′)i在传输过程中是安全的。
在一些实施例中,可信中心可以使用相应标号的签名参与方的对称密钥加密子私钥,然后将子私钥的密文发送给相应标号的签名参与方,相应标号的签名参与方在步骤106中对密文进行解密运算即可获得子私钥,从而保证了在传输过程中子私钥的份额是安全的。
在一些实施例中,可信中心可以使用数字信封的方式将子私钥发送给相应标号的签名参与方,相应标号的签名参与方在步骤106中对密文进行解密运算即可获得子私钥,从而保证了在传输过程中子私钥的份额是安全的。
在一些实施例中,可信中心可以通过线下的方式将子私钥发送给相应标号的签名参与方,例如通过U盘拷贝、纸张传递等方式,从而保证了在传输过程中子私钥的份额是安全的。
在一些实施例中,可信中心可以通过包括且不限于上述方式的现有通信技术,将子私钥安全地发送给相应标号的签名参与方。
步骤106:标号为i的签名参与方Ci接收并存储由可信中心发送来的签名公钥、第一签名参数、子私钥。
图2是本发明在无可信中心的模式下密钥生成阶段的过程示意图,包括标号为i的签名参与方Ci的计算步骤、标号为i的签名参与方Ci向其他签名参与方发送的数据内容,其它标号的签名参与方的计算步骤,其它标号的签名参与方发送的数据内容是类似的,而各个签名参与方接收的数据内容与相应数据发送方所发送的数据内容是一一对应的;如图2所示,包括如下步骤201-213。
随机数的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的。随机多项式fi(x)是指多项式系数均为随机数的多项式,其中系数/>的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的。
随机数的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的。随机多项式gi(x)是指多项式系数均为随机数的多项式,其中系数/>的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的。
步骤206:标号为i的签名参与方Ci将第一子随机数的份额第二子随机数的份额/>子零参数的份额/>签名公钥分片/>分别发送给对应的签名参与方,其中需要保证第一子随机数的份额、第二子随机数的份额、子零参数的份额在传输过程中是安全的。
在一些实施例中,标号为i的签名参与方Ci可以使用相应标号的签名参与方的对称密钥加密第一子随机数的份额、第二子随机数的份额、子零参数的份额,然后将密文发送给相应标号的签名参与方,相应标号的签名参与方对密文进行解密运算即可获得相应份额,从而保证了在传输过程中相应份额是安全的。
在一些实施例中,标号为i的签名参与方Ci可以使用数字信封的方式将第一子随机数的份额、第二子随机数的份额、子零参数的份额发送给相应标号的签名参与方,相应标号的签名参与方对密文进行解密运算即可获得相应份额,从而保证了在传输过程中相应份额是安全的。
在一些实施例中,标号为i的签名参与方Ci可以通过线下的方式将第一子随机数的份额、第二子随机数的份额、子零参数的份额发送给相应标号的签名参与方,例如通过U盘拷贝、纸张传递等方式,从而保证了在传输过程中相应份额是安全的。
在一些实施例中,标号为i的签名参与方Ci可以通过包括且不限于上述方式的现有通信技术,将第一子随机数的份额、第二子随机数的份额、子零参数的份额安全地发送给相应标号的签名参与方。
步骤207:标号为i的签名参与方Ci在接收到其他签名参与方发送来的第一子随机数的份额、第二子随机数的份额、子零参数的份额、签名公钥分片后,计算签名公钥 若P=O则返回步骤201;其中O为椭圆曲线上的零点。
当签名参与方判断条件P=O为真时,意味着当前次密钥生成失败,需要返回步骤201重新生成密钥。
步骤208:标号为i的签名参与方Ci计算第一签名参数Q=G[+]P。
使用第一随机数的份额可以计算出第一随机数d,而第一随机数d满足 类似的,使用第二随机数的份额/>和第三随机数的份额 可以分别计算出第二随机数α和第三随机数β,而第二随机数α和零参数β分别满足/> 和/>第一随机数d、第二随机数α的完整数据将不会出现,仅以份额的形式参与计算,零参数β也仅以份额的形式参与计算。
步骤210:标号为i的签名参与方Ci计算私钥子参数((d+1)α)i=((d)i+1)(α)i+(β)imod n。
步骤211:标号为i的签名参与方Ci将私钥子参数((d+1)α)i发送给其他所有签名参与方。
私钥子参数实际上是私钥参数的份额,通过门限计算可以得到私钥参数。
当签名参与方判断条件(d+1)α=0为真时,意味着当前次密钥生成失败,需要返回步骤201重新生成密钥。
步骤213:标号为i的签名参与方Ci计算自己的子私钥(d′)i=((d+1)α)-1(α)imodn。
图3是本发明数字签名生成阶段的过程示意图,包括标号为i的签名参与方Ci的计算步骤、标号为i的签名参与方Ci向其他签名参与方发送的数据内容,其它标号的签名参与方的计算步骤,其它标号的签名参与方发送的数据内容是类似的,而各个签名参与方接收的数据内容与相应数据发送方所发送的数据内容是一一对应的;如图3所示,包括如下步骤301-311。
随机数的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的。随机多项式li(x)是指多项式系数均为随机数的多项式,其中系数/>的选取范围为[0,n-1]内的整数,每个整数被选取的概率是均等的。
在一些实施例中,标号为i的签名参与方Ci可以使用相应标号的签名参与方的对称密钥加密签名子随机数的份额,然后将密文发送给相应标号的签名参与方,相应标号的签名参与方对密文进行解密运算即可获得签名子随机数的份额,从而保证了在传输过程中签名子随机数的份额是安全的。
在一些实施例中,标号为i的签名参与方Ci可以使用数字信封的方式将签名子随机数的份额发送给相应标号的签名参与方,相应标号的签名参与方对密文进行解密运算即可获得签名子随机数的份额,从而保证了在传输过程中签名子随机数的份额是安全的。
在一些实施例中,标号为i的签名参与方Ci可以通过线下的方式将第签名子随机数的份额发送给相应标号的签名参与方,例如通过U盘拷贝、纸张传递等方式,从而保证了在传输过程中签名子随机数的份额是安全的。
在一些实施例中,标号为i的签名参与方Ci可以通过包括且不限于上述方式的现有通信技术,将签名子随机数的份额安全地发送给相应标号的签名参与方。
步骤307:标号为i的签名参与方Ci计算签名的第一部分r=e+x1mod n,若r=0则返回步骤301。
当签名参与方判断条件r=0为真时,意味着当前次数字签名生成失败,需要返回步骤301重新生成数字签名。
步骤308:标号为i的签名参与方Ci计算签名的第二部分的份额(s)i=(d′)ir+(k′)i-r mod n。
步骤309:标号为i的签名参与方Ci向其他签名参与方发送签名的第二部分的份额(s)i。
当签名参与方判断条件=0或s+r=n为真时,意味着当前次数字签名生成失败,需要返回步骤301重新生成数字签名。
在一些实施例中,步骤310可由其中一个签名参与方单独完成,而其余签名参与方则无需继续计算,完成步骤310的签名参与方需继续执行步骤311。
步骤311:得到SM2数字签名(r,s)。
在一些实施例中,可事先指定由某一签名参与方输出数字签名,也可要求所有签名参与方计算并输出数字签名。
尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (11)
1.一种基于SM2密码算法的高效门限签名方法,其步骤包括:
密钥生成阶段:
(1)可信中心选取随机数d′,并构造一个(t+1,N)-门限方案来计算其份额;根据随机数d′的份额生成各签名参与方的子私钥;其中N为签名参与方的总数,签名参与方至少为t+1;
(2)可信中心计算签名公钥P=(d′-1-1)[*]G;其中,[*]表示椭圆曲线E上的数乘运算,G是椭圆曲线E上的基点,n是基点G的阶;
(3)可信中心计算第一签名参数Q=G[+]P,其中[+]表示椭圆曲线E上的加法运算;
(4)可信中心将签名公钥P、第一签名参数Q、子私钥分别发送给对应的签名参与方;
(5)各签名参与方接收并存储签名公钥、第一签名参数、子私钥;
签名阶段:
(21)各签名参与方各自选取签名子随机数,并各自构造一个(t+1,N)-门限方案来计算其份额;
(22)各签名参与方根据签名子随机数、第一签名参数计算自己的第二签名子参数;
(23)各签名参与方向其他签名参与方发送对应的签名子随机数的份额以及自己的第二签名子参数;
(24)各签名参与方在接收其他签名参与方发送的签名子随机数的份额、第二签名子参数后,根据签名子随机数的份额计算自己的签名随机数的份额;
(25)各签名参与方根据收到的各第二签名子参数计算第二签名参数(x1,y1);
(26)各签名参与方计算签名的第一部分r=e+x1mod n,若r=0则返回步骤(21),其中e是按照SM2数字签名算法标准中所给方法计算待签名消息得到的消息摘要;
(27)各签名参与方根据子私钥、签名的第一部分r、签名随机数的份额计算签名的第二部分的份额;
(28)各签名参与方向其他签名参与方发送签名的第二部分的份额;
(29)各签名参与方根据签名的第二部分的份额,利用重建门限秘密的方法计算得到签名的第二部分s,从而得到签名(r,s);若s=0或s+r=n则返回步骤(21)。
2.如权利要求1所述的方法,其特征在于,所述随机数d′的选取范围为[2,n-1]内的整数。
5.如权利要求1所述的方法,其特征在于,步骤(21)中,签名参与方Ci在[0,n-1]内选取随机整数并构造t次随机多项式/>系数/>的选取范围为[0,n-1]内的整数;步骤(22)中,签名参与方Ci计算每个签名参与方的签名子随机数的份额 表示M个签名参与方的标号组成的集合;步骤(23)中,参与方Ci计算自己的第二签名子参数/>步骤(24)中,签名参与方Ci计算自己的签名随机数的份额/>步骤(25)中,签名参与方Ci计算第二签名参数/>步骤(28)中,签名参与方Ci计算自己的签名的第二部分的份额(s)i=(d′)ir+(k′)i-r mod n;步骤(29)中,各签名参与方根据公式计算得到签名的第二部分s;其中/>表示任意t+1个签名参与方的标号组成的集合。
6.一种基于SM2密码算法的高效门限签名方法,其步骤包括:
密钥生成阶段:
(1)各签名参与方各自选取第一子随机数,并各自构造一个(t+1,N)-门限方案来计算其份额;其中N为签名参与方的总数,签名参与方至少为t+1;
(2)各签名参与方各自选取第二子随机数,并各自构造一个(t+1,N)-门限方案来计算其份额;
(3)各签名参与方各自构造一个(2t+1,N)-门限方案来计算子零参数0的份额;
(4)各签名参与方根据第一子随机数和基点G计算签名公钥分片;
(5)各签名参与方将第一子随机数的份额、第二子随机数的份额、子零参数的份额、签名公钥分片分别发送给对应的签名参与方;
(6)各签名参与方根据接收的第一子随机数的份额、第二子随机数的份额、子零参数的份额、签名公钥分片,计算签名公钥P,若P=O则返回步骤(1);其中O为椭圆曲线上的零点;
(7)各签名参与方计算第一签名参数Q=G[+]P;其中,[+]表示椭圆曲线E上的加法运算,G是椭圆曲线E上的基点,n是基点G的阶;
(8)各签名参与方根据第一子随机数的份额、第二子随机数的份额、子零参数的份额计算自己所持第一随机数的份额、第二随机数的份额、零参数的份额;
(9)各签名参与方根据自己所持第一随机数的份额、第二随机数的份额、零参数的份额计算私钥子参数;
(10)各签名参与方向其他签名参与方发送自己的私钥子参数;
(11)各签名参与方将接收的私钥子参数作为门限方案的份额,利用重建门限秘密的方法计算得到私钥参数,若私钥参数值为0则返回步骤(1);
(12)各签名参与方根据私钥参数、自己所持第二随机数的份额计算自己的子私钥;
签名阶段:
(21)各签名参与方各自选取签名子随机数,并各自构造一个(t+1,N)-门限方案来计算其份额;
(22)各签名参与方根据签名子随机数、第一签名参数计算自己的第二签名子参数;
(23)各签名参与方向其他签名参与方发送对应的签名子随机数的份额以及自己的第二签名子参数;
(24)各签名参与方在接收其他签名参与方发送的签名子随机数的份额、第二签名子参数后,根据签名子随机数的份额计算自己的签名随机数的份额;
(25)各签名参与方根据收到的各第二签名子参数计算第二签名参数(x1,y1);
(26)各签名参与方计算签名的第一部分r=e+x1mod n,若r=0则返回步骤(21),其中e是按照SM2数字签名算法标准中所给方法计算待签名消息得到的消息摘要;
(27)各签名参与方根据子私钥、签名的第一部分r、签名随机数的份额计算签名的第二部分的份额;
(28)各签名参与方向其他签名参与方发送签名的第二部分的份额;
(29)各签名参与方根据签名的第二部分的份额,利用重建门限秘密的方法计算得到签名的第二部分s,从而得到签名(r,s);若s=0或s+r=n则返回步骤(21)。
11.如权利要求6所述的方法,其特征在于,步骤(21)中,签名参与方Ci在[0,n-1]内选取随机整数并构造t次随机多项式/>系数/>的选取范围为[0,n-1]内的整数;步骤(22)中,签名参与方Ci计算每个签名参与方的签名子随机数的份额 表示M个签名参与方的标号组成的集合;步骤(23)中,参与方Ci计算自己的第二签名子参数/>步骤(24)中,签名参与方Ci计算自己的签名随机数的份额/>步骤(25)中,签名参与方Ci计算第二签名参数/>步骤(28)中,签名参与方Ci计算自己的签名的第二部分的份额(s)i=(d′)ir+(k′)i-r mod n;步骤(29)中,各签名参与方根据公式计算得到签名的第二部分s;其中/>表示任意t+1个签名参与方的标号组成的集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153521.7A CN113972981B (zh) | 2021-09-29 | 2021-09-29 | 一种基于sm2密码算法的高效门限签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153521.7A CN113972981B (zh) | 2021-09-29 | 2021-09-29 | 一种基于sm2密码算法的高效门限签名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113972981A CN113972981A (zh) | 2022-01-25 |
CN113972981B true CN113972981B (zh) | 2023-07-04 |
Family
ID=79587156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111153521.7A Active CN113972981B (zh) | 2021-09-29 | 2021-09-29 | 一种基于sm2密码算法的高效门限签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113972981B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI795284B (zh) * | 2022-05-05 | 2023-03-01 | 英屬開曼群島商現代財富控股有限公司 | 基於混淆電路的門檻式簽章生成系統及其方法 |
CN115001672B (zh) * | 2022-05-27 | 2024-05-17 | 建信金融科技有限责任公司 | 一种安全多方计算方法、装置、系统、设备及存储介质 |
CN117155584B (zh) * | 2023-10-27 | 2024-01-26 | 北京信安世纪科技股份有限公司 | Schnorr数字签名方法、系统及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547199A (zh) * | 2018-11-19 | 2019-03-29 | 武汉大学 | 一种多方联合生成sm2数字签名的方法 |
CN111934877A (zh) * | 2020-06-23 | 2020-11-13 | 中国科学院信息工程研究所 | 一种sm2协同门限签名方法及电子装置 |
-
2021
- 2021-09-29 CN CN202111153521.7A patent/CN113972981B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547199A (zh) * | 2018-11-19 | 2019-03-29 | 武汉大学 | 一种多方联合生成sm2数字签名的方法 |
CN111934877A (zh) * | 2020-06-23 | 2020-11-13 | 中国科学院信息工程研究所 | 一种sm2协同门限签名方法及电子装置 |
Non-Patent Citations (2)
Title |
---|
A SM2 Elliptic Curve Threshold Signature Scheme without a Trusted Center;Jie Yan, etc.;《KoreaScience》;全文 * |
ALTEE:Constructing trustworthy execution environment for mobile app dynamically;Yang Cai, etc.;《IEEE》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113972981A (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112367175B (zh) | 基于sm2数字签名的隐式证书密钥生成方法 | |
CN113972981B (zh) | 一种基于sm2密码算法的高效门限签名方法 | |
US6483921B1 (en) | Method and apparatus for regenerating secret keys in Diffie-Hellman communication sessions | |
CN110011795B (zh) | 基于区块链的对称群组密钥协商方法 | |
US9172529B2 (en) | Hybrid encryption schemes | |
CN114157427B (zh) | 基于sm2数字签名的门限签名方法 | |
CN112906030B (zh) | 基于多方全同态加密的数据共享方法和系统 | |
CN110120939B (zh) | 一种基于异构系统的可否认认证的加密方法和系统 | |
CN111049647B (zh) | 一种基于属性门限的非对称群组密钥协商方法 | |
US9088419B2 (en) | Keyed PV signatures | |
CN112422276B (zh) | 一种多方密钥协商的实现方法及系统 | |
CN111030801A (zh) | 一种多方分布式的sm9密钥生成、密文解密方法与介质 | |
CN110855425A (zh) | 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 | |
Lee et al. | Security analysis of end-to-end encryption in Telegram | |
CN110086630B (zh) | 基于爱德华兹曲线数字签名的生成方法 | |
CN114070549B (zh) | 一种密钥生成方法、装置、设备和存储介质 | |
CN111565108B (zh) | 签名处理方法、装置及系统 | |
CN111756537B (zh) | 基于sm2标准的两方协同解密方法、系统及存储介质 | |
CN111865578A (zh) | 一种基于sm2的多接收方公钥加密方法 | |
CN111526131A (zh) | 基于秘密共享和量子通信服务站的抗量子计算的电子公文传输方法和系统 | |
CN115865313A (zh) | 一种轻量级隐私保护纵向联邦学习模型参数聚合方法 | |
CN114070550B (zh) | 一种信息处理方法、装置、设备和存储介质 | |
CN110321722B (zh) | Dna序列相似率安全计算方法及系统 | |
CN111934887A (zh) | 基于插值多项式的多接受者签密方法 | |
Tseng et al. | An efficient anonymous key agreement protocol based on chaotic maps |
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 |