CN115580401B - 一种基于可验证秘密共享的无证书sm2密钥生成方法 - Google Patents
一种基于可验证秘密共享的无证书sm2密钥生成方法 Download PDFInfo
- Publication number
- CN115580401B CN115580401B CN202211306716.5A CN202211306716A CN115580401B CN 115580401 B CN115580401 B CN 115580401B CN 202211306716 A CN202211306716 A CN 202211306716A CN 115580401 B CN115580401 B CN 115580401B
- Authority
- CN
- China
- Prior art keywords
- key
- user
- secret
- private key
- public key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 239000012634 fragment Substances 0.000 claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 5
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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/3218—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于可验证秘密共享的无证书SM2密钥生成方法,该无证书SM2密钥生成方法包括:***内的各个密钥生成中心计算并公开可验证的零知识承诺,为其他密钥生成中心生成对应的第一部分密码份额;验证所述第一部分密码份额是否有效;若有效,则各个密钥生成中心根据所述第一部分密码份额计算第二部分秘密份额;当前密钥生成中心恢复完整的***主私钥S以及与所述主私钥对应的主公钥Ppub;计算生成用户私钥分片t和声称公钥W;用户端根据所述用户私钥分片t和声称公钥W得到用户完整私钥和用户实际公钥PU。本发明能确保各方实体接收的秘密份额是正确有效的,还能确保***漏各方密钥生成中心秘密保存的主密钥分量的任何隐私信息。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于可验证秘密共享的无证书SM2密钥生成方法。
背景技术
在公钥密码机制中,用户的公钥往往需要与用户的身份信息或其他可辨别标识关联在一起,这其中是基于证书的***或无证书的***进行管理。对于国密SM2签名算法来说,基于证书的***需要额外的证书认证机制,证书管理较为繁冗,而通过无证书的***来管理用户的SM2密钥可以直接将用户的标识作为用户的公钥,省略了交换数字证书和公钥过程,使得密码***变得易于部署和管理。
现有的SM2无证书***是通过密钥生成中心(KGC)为用户生成私钥分片,最终由用户独立生成完整的私钥。这其中的密钥生成中心无法得知用户完整私钥的任何信息。通过单个密钥生成中心生成用户私钥分片会存在权力集中或单点故障而导致的服务中断、主私钥泄漏等问题,而在一般情况下,可以采用基于秘密共享方案的门限机制,由多方密钥生成中心共享***主私钥的秘密份额,并协作参与生成用户的私钥分片。但是,当存在部分不诚实的密钥生成机构时,是无法避免某不诚实的密钥中心分发错误的秘密份额,从而最终构建无效的密钥,这必然会破坏无证书***的安全性和稳定性。
发明内容
本发明的目的是为了克服以上现有技术存在的不足,提供了一种基于可验证秘密共享的无证书SM2密钥生成方法,其能解决现有SM2无证书***中由单个KGC为用户生成用户私钥分片时所存在的权力集中或单点故障而导致的服务中断、主私钥泄漏等问题,同时需要解决多方KGC基于秘密共享方案的门限机制共享***主私钥的秘密份额并协作参与生成用户的私钥分片时,由于部分不诚实的KGC分发了错误的秘密份额,从而构建无效密钥的问题。
本发明的目的通过以下的技术方案实现:
一种基于可验证秘密共享的无证书SM2密钥生成方法包括:
S1,***内的各个密钥生成中心根据预先保存的主密钥分量、预设门限阈值、***公开参数和t-1阶多项式,计算并公开可验证的零知识承诺,为其他密钥生成中心生成对应的第一部分密码份额(fi(j),gi(j)),并发送至对应的密钥生成中心;
S2,各个密钥生成中心根据公开的零知识承诺验证所述第一部分密码份额(fi(j),gi(j))是否有效;若有效,则执行步骤S3;
S3,各个密钥生成中心根据所述第一部分密码份额计算第二部分秘密份额s2i、gi,并将所述第二部分秘密份额s2i、gi保存在本地;
S4,用户端生成部分私钥XA,并将与所述用户部分私钥XA对应的公钥和用户标识发送至密钥生成中心;
S5,当前密钥生成中心向***内其他密钥生成中心请求获取用于恢复***主密钥对的第二部分秘密分量s2i、gi,从而恢复完整的***主私钥S以及与所述主私钥对应的主公钥Ppub;
S6,根据所述用户部分私钥XA、用户标识IDA、其他密钥生成中心随机生成的随机参数分量ωi、***公开参数计算生成用户私钥分片t和声称公钥W;
S7,用户端根据所述用户部分私钥XA、用户私钥分片t和声称公钥W得到用户完整私钥和用户实际公钥PU,完成无证书SM2密钥的生成。
优选地,步骤S1包括:
S11,***内的每个KGC各自生成随机数s1i,并将所述随机数s1i作为***主私钥的分量,其中,s1i∈[1,N-1]i∈[1,k],k代表所有KGC的个数;
S12,各KGC将所述随机数s1i作为秘密值,并根据预设阈值(t,k),选择t-1个随机数[ai1,ai2,....,ai(t-1)]和另一部分随机数[ri,bi1,bi2,....,bi(t-1)],并计算两个t-1阶多项式fi(x)和gi(x),其中,[ai1,ai2,....,ai(t-1)]∈[1,N-1],[ri,bi1,bi2,....,bi(t-1)]∈[1,N-1],而多项式fi(x)=s1i+ai1x1+ai2x2+....+ai(t-1)xt-1,gi(x)=ri+bi1x+bi2x2+....+bi(t-1)xt-1,i∈[1,k];
S13,各KGC计算并公开可验证的零知识承诺Ei0,....,Ei(t-1);其中,
S14,各KGC根据多项式fi(x)和gi(x)为其他KGC生成第一部分秘密份额(fi(j),gi(j)),并将所述秘密份额(fi(j),gi(j))依次分发到其他KGC;其中i,j∈[1,k],i≠j,fi(j)和gi(j)代表第i个KGC生成的并发给第j个KGC的秘密份额。
优选地,步骤S2包括:
S21,各KGC接收其他KGC分发的秘密份额(fi(j),gi(j)),并验证是否成立,若成立,则执行步骤S31;其中Ejl,j∈[1,k],l∈[1,t-1]为每个KGC发布的可验证零知识承诺;
步骤S3包括:
S31,各KGC计算并保存第二部分秘密份额s2i、gi;其中,
优选地,步骤S4包括:
S41,用户端随机秘密生成部分私钥XA,将与所述用户部分私钥XA所对应的第一倍点UA与用户标识IDA发送至密钥生成中心。
5、根据权利要求4所述的无证书SM2密钥生成方法,其特征在于,步骤S5包括:
S51,当前密钥生成中心接收到用户的生成密钥请求,并向***内其他密钥生成中心请求获取用于恢复***主密钥对的第二部分秘密分量s2i、gi和随机生成的随机参数分量ωi;所述用户的生成密钥请求包括第一倍点UA与用户标识IDA;
S52,验证所述秘密分量s2i是否有效;若有效,则执行步骤S52;
S53,当获取到至少t个有效秘密份额s2i后,通过拉格朗日插值法恢复t-1阶多项式F(x),并恢复完整的***主私钥S以及与所述主私钥对应的主公钥Ppub。
优选地,步骤S6包括:
S61,根据t个密钥生成中心随机生成的随机参数分量ωi和第一倍点UA计算得到声称公钥W;
S62,根据所述用户标识IDA计算得到用户私钥分片t;
S63,将所述用户私钥分片t和声称公钥W发回至用户端。
优选地,在步骤S52中,通过验证是否成立判断所述秘密分量s2i是否有效;其中,/> 为第j个KGC公开的零知识承诺;
在步骤S53中,恢复***主私钥S的公式为:
S=F(0)mod N;
恢复所述主私钥对应的主公钥Ppub的公式为:
其中,是倍点[S]G在椭圆曲线上x轴的值,/>是倍点[S]G在椭圆曲线上y轴的值。
优选地,步骤S61中,根据t个密钥生成中心随机生成的随机参数分量ωi和第一倍点UA进行计算的公式为:
PA=[ω]G;
W=PA+UA=[ω]G+[x]G=[ω+x]G=(xW,yW);
其中,ωi指的是t个密钥生成中心随机生成的随机参数分量,ω是将t个ωi求和并将求和结果与N取余;PA是根据ω和基点G生成的第二倍点;xW和yW分别是声称公钥W在椭圆曲线上x轴和y轴的值。
在步骤S62中,根据所述用户标识IDA进行计算的公式为:
t1=Hash(xW||yw||ZA)mod N;
t=(ω+t1*S)mod N;
其中,a、b是椭圆曲线的参数,IDA是指用户标识,xG和yG分别是基点G在椭圆曲线上x轴和y轴的值;ZA则是对结果生成的hash值,t1是将hash值结果与N取余所得出的整数;S是已恢复完整的***主私钥,而t为用户私钥分片。
优选地,步骤S7包括:根据所述用户私钥分片t和声称公钥W计算得到用户完整私钥;根据声称公钥W生成不可伪造的用户实际公钥PU;其中,根据所述用户私钥分片t和声称公钥W进行计算的公式为:
SA=(XA+t)mod N;
根据声称公钥W生成不可伪造的用户实际公钥PU的公式为:
t1=Hash(xW||yW||ZA)mod N
PU=W+[t1]Ppub。
优选地,步骤S7之后还包括:验证所述用户实际公钥PU中的声称公钥是否由KGC分发且未被篡改,具体包括:验证PU *与所述用户实际公钥PU是否相同,若相同,则该声称公钥是有效且未被篡改;其中,PU *=[SA]G。
本发明相对于现有技术具有如下优点:
本发明通过基于秘密共享方案的安全多方计算操作,根据各方密钥生成中心本地保存的主密钥分量生成对应的秘密份额并分发给***内其他密钥生成中心。而且本发明还能基于可验证的零知识承诺并通过支持加法同态的可验证计算操作验证各方不信任实体发送的秘密份额的有效正确性。所述过程除了能确保各方实体接收的秘密份额是正确有效的,还能确保***漏各方密钥生成中心秘密保存的主密钥分量的任何隐私信息,这能有效提高***整体的安全性、稳定性。此外,本发明通过多方密钥生成中心协同生成用户密钥分片,并由用户计算完整的私钥,这避免了单个密钥生成中心的权力集中,提高了用户密钥的安全性。
附图说明
构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明的基于可验证秘密共享的无证书SM2密钥生成方法的流程示意图。
图2为本发明的***初始化的流程示意图。
图3为本发明的用户密钥生成的流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
图1为本发明的基于可验证秘密共享的无证书SM2密钥生成方法的流程示意图。如图1所示、一种基于可验证秘密共享的无证书SM2密钥生成方法包括:
S1,***内的各个密钥生成中心根据预先保存的主密钥分量、预设门限阈值、***公开参数和t-1阶多项式,计算并公开可验证的零知识承诺,为其他密钥生成中心生成对应的第一部分密码份额(fi(j),gi(j)),并发送至对应的密钥生成中心;
S2,各个密钥生成中心根据自己的可验证的零知识承诺验证所述第一部分密码份额(fi(j),gi(j))是否有效;若有效,则执行步骤S3;
S3,各个密钥生成中心根据所述第一部分密码份额计算第二部分秘密份额s2i、gi,并将所述第二部分秘密份额s2i、gi保存在本地;
S4,用户端生成部分私钥XA,并将与所述用户部分私钥XA对应的公钥和用户标识发送至密钥生成中心;
S5,当前密钥生成中心向***内其他密钥生成中心请求获取用于恢复***主密钥对的第二部分秘密分量s2i、gi,从而恢复完整的***主私钥S以及与所述主私钥对应的主公钥Ppub;
S6,根据所述用户部分私钥XA、用户标识IDA、其他密钥生成中心随机生成的随机参数分量ωi、***公开参数计算生成用户私钥分片t和声称公钥W;
S7,用户端根据所述用户部分私钥XA、用户私钥分片t和声称公钥W得到用户完整私钥和用户实际公钥PU,完成无证书SM2密钥的生成。
本方案通过t(t≥2)个密钥生成中心协作用户生成安全有效的密钥。这种密钥生成方法满足以下要求:
一、t个密钥生成中心对本地保存的***主私钥分量具有完全自主权,其他用户或任何恶意的密钥生成中心无法获取该主私钥分量的信息;
二、多方密钥生成中心协作用户生成的完整私钥符合国密SM2密钥规范要求,用户可使用该私钥生成数字签名,该签名值符合国密SM2签名标准要求;
三、少于t个密钥生成中心无法协同构建完整的***主私钥,从而无法协作用户生成有效的完整密钥。
四、t个密钥生成中心在基于秘密共享方案构建完整主私钥的过程中,需对接收的不同秘密份额进行有效的零知识验证,防止不诚实的密钥生成中心分发错误的秘密份额从而构建了无效的***主私钥。
需要说明的是,本实施例涉及5个密钥生成中心(KGC)和用户端。本实施例所涉及到的椭圆曲线参数均满足国密SM2算法要求,其中公开的***参数包括有限域Fq上的椭圆曲线E(Fq)、椭圆曲线E(Fq)中的元素a,b、E(Fq)的基点G所对应的X、Y坐标(XG,YG)以及基点G,H对应的阶数N。秘密分享方案所选择的门限阈值t为3,即至少需要通过3个KGC所持有的有效秘密份额协同构建完整的***主密钥。
具体地,本实施例提供的一种基于可验证秘密共享的无证书SM2密钥生成方法包括***初始化和用户完整密钥生成步骤,具体如下所示:
一、***初始化(参照图2)
1)5个KGC各自生成随机数s1i∈[1,N-1]作为***主私钥的分量,i∈[1,5],其中k代表所有KGC的个数;此处的***指的是5个密钥生成中心(KGC)和用户端。每个密钥生成中心都持有各自的主密钥,包括主私钥和主公钥。
2)各KGC将自己保存的s1i作为秘密值,并根据阈值(t,k),选择t-1个随机数[ai1,ai2,....,ai(t-1)]∈[1,N-1]和另一部分随机数[ri,bi1,bi2,....,bi(t-1)]∈[1,N-1],计算两个t-1阶多项式fi(x)=s1i+ai1x1+ai2x2+....+ai(t-1)xt-1和gi(x)=ri+bi1x+bi2x2+....+bi(t-1)xt-1,i∈[1,k];
3)各KGC计算可验证的零知识承诺随后各KGC公开可验证零知识承诺Ei0,....,Ei(t-1);
4)各KGC根据多项式fi(x)和gi(x)为其他KGC生成的第一部分秘密份额(fi(j),gi(j)),其中i,j∈[1,5],fi(j)和gi(j)代表第i个KGC生成的并发给第j个KGC的秘密份额。各KGC将秘密份额(fi(j),gi(j)),i≠j依次分发到其他KGC;
本方案的所述k个KGC根据其保存的主密钥分量、门限阈值t、***公开参数以及t-1阶多项式,计算并公开可验证的零知识承诺,并为其他k-1个KGC生成对应的第一部分秘密份额并发送至对应的KGC。
5)各KGC接收其他KGC分发的秘密份额(fi(j),gi(j)),并验证是否成立,其中Eij,j∈[1,5],l∈[1,2]为每个KGC发布的可验证零知识承诺,若不成立则该秘密份额无效,需重新请求生成第一部分秘密份额;
步骤3)、4)和5)通过可验证计算操作并基于各KGC生成的可验证零知识承诺校验接收的秘密份额是否有效,同时确保***漏***主私钥分量s1i的任何信息。
6)各KGC计算第二部分秘密份额和/>随后各KGC将s2i、gi保存在本地。
步骤6)中每个KGC本地保存的第二部分秘密份额s2i和gi是用于后续校验秘密份额的有效性并构建t-1阶多项式F(x),从而构建完整的***主私钥秘密值S=F(0)mod N=(s11+s12+s13)mod N,而主公钥为PKGC=S[G]=([s11]G+[s12]G+[s13]G);
本方案的所述每个KGC根据各KGC公开的零知识承诺以及从其他KGC接收的第一部分秘密份额验证该秘密份额是否正确有效,若有效则根据本地保存的第一部分秘密份额以及从其他KGC接收的第一部分秘密份额计算第二部分的秘密份额并保存,无效则重新请求目标密钥生成机构获取第一部分秘密份额。
二、用户密钥生成(参照图3)
用户端:
1)随机秘密生成x,x∈[1,N-1]作为用户部分私钥XA=x;
2)计算UA=[x]G;
3)将UA与用户标识IDA发送至密钥生成中心;UA是指与用户部分私钥XA所对应的第一倍点(基于椭圆曲线的基点G生成的)。
密钥生成中心:
1)接收用户的生成密钥请求,并向其他密钥生成中心请求获取用于恢复***主密钥对的第二部分秘密分量s2i、gi和随机生成的随机参数分量ωi∈[1,N-1],i∈[1,t-1];
2)计算其中/>代表第j个KGC公开的零知识承诺。接着根据接收的第二部分秘密分量s2i、gi,通过验证/> 是否成立判断其他KGC发送的秘密分量s2i是否有效,若不成立则返回错误,重新请求获取秘密分量s2i。
3)当收集完不少于t个有效秘密份额s2i后,通过拉格朗日插值法恢复t-1阶多项式F(x),从而恢复完整的***主私钥S=F(0)mod N,随后计算并公开***主公钥此处的Ppub指的是与上述已恢复完整的***主私钥S所对应的主公钥,其同样是基于椭圆曲线的基点G生成的,其中/>指的是倍点[S]G在椭圆曲线上x轴的值,而/>指的是倍点[S]G在椭圆曲线上y轴的值。
4)计算并计算PA=[ω]G;其中,ωi指的是t个密钥生成中心随机生成的随机参数分量,而ω则是将t个ωi求和并将求和结果与N取余,确保得出的ω不超过N;而PA指的是根据ω和基点G生成的第二倍点;
5)计算W=PA+UA=[ω]G+[x]G=[ω+x]G=(xW,yW);其中,W为倍点PA与UA之和,而xW和yW分别是W在椭圆曲线上x轴和y轴的值;后续将W标注为声称公钥;
6)计算其中,a、b是椭圆曲线的参数,IDA是指用户标识,xG和yG分别是基点G在椭圆曲线上x轴和y轴的值;ZA则是对结果生成的hash值。
7)计算t1=Hash(xW||yW||ZA)modN;其中,t1是将hash值结果与N取余所得出的整数;
8)计算t=(ω+t1*S)modN;其中,S是已恢复完整的***主私钥,而t为用户私钥分片,W为声称公钥;
9)将用户私钥分片t和声称公钥W发回至用户端;
本方案的所述用户端计算部分私钥并将对应的公钥发送至KGC。所述KGC请求获取其他KGC保存的第二部分有效秘密份额从而恢复***主私钥,接着根据用户发送的部分公钥、用户可辨别标识、其他KGC发送的随机参数分量、***公开参数和***主公钥计算生成用户部分私钥以及声称公钥,然后发送至用户端。
用户端:
1)计算SA=(XA+t)mod N并作为用户完整私钥;
2)用户保存W=(xW,yW)并作为用户声称公钥;
用户的声称公钥是用于后续基于公开的原始数据(如***公开参数、用户标识IDA、***主公钥Ppub以及用户声明公钥W)生成不可伪造的用户实际公钥PU。随后可基于用户实际公钥PU进行SM2算法的验签和解密操作,其用户实际公钥PU生成过程分为下面三个步骤:
1)计算
2)计算t1=Hash(xW||yW||ZA)modN;
3)计算PU=W+[t1]Ppub;
本方案的所述用户端根据从KGC接收的部分私钥计算生成完整用户私钥,同时根据声称公钥,***主公钥以及***公开参数计算生成对应的用户实际公钥。
其中,验证所述用户实际公钥PU中的声称公钥是否由KGC分发且未被篡改的步骤主要分为:
1)计算PU *=[SA]G;
2)验证PU *=PU是否成立,即验证PU *与所述计算生成的用户实际公钥PU是否相同,若相同则该声称公钥是有效且未被篡改,不相同则无效。
与现有的基于秘密共享的密钥生成方案相比,本实施例引入了可验证的零知识承诺。在之前的方案中,各方通过秘密共享方案共享设定的秘密值并获取对应的秘密份额,随后各方可根据持有的秘密份额并通过多方安全计算来构建共享的秘密值,但其中若有某方不诚实的实体分发错误无效的秘密份额或某方实体接收了错误的秘密份额,这必然会导致最终构建无效的秘密值,从而破坏***的安全性,浪费了***资源。
本实施例提出的方法不仅能够通过基于秘密共享方案的安全多方计算操作,根据各方密钥生成中心本地保存的主密钥分量生成对应的秘密份额并分发给其他密钥生成中心,而且还能基于可验证的零知识承诺并通过支持加法同态的可验证计算操作验证各方不信任实体发送的秘密份额的有效正确性。所述过程除了能确保各方实体接收的秘密份额是正确有效的,还能确保***漏各方密钥生成中心秘密保存的主密钥分量的任何隐私信息,这能有效提高***整体的安全性、稳定性。
上述具体实施方式为本发明的优选实施例,并不能对本发明进行限定,其他的任何未背离本发明的技术方案而所做的改变或其它等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.一种基于可验证秘密共享的无证书SM2密钥生成方法,其特征在于,包括:
S1,***内的各个密钥生成中心根据预先保存的主密钥分量、预设门限阈值、***公开参数和t-1阶多项式,计算并公开可验证的零知识承诺,为其他密钥生成中心生成对应的第一部分密码份额(fi(j),gi(j)),并发送至对应的密钥生成中心;其中:i,j∈[1,k],i≠j,fi(j)和gi(j)代表第i个生成的并发给第j个的秘密份额;
S2,各个密钥生成中心根据公开的零知识承诺验证所述第一部分密码份额(fi(j),gi(j))是否有效;若有效,则执行步骤S3;
S3,各个密钥生成中心根据所述第一部分密码份额计算第二部分秘密份额s2i、gi,并将所述第二部分秘密份额s2i、gi保存在本地;
S4,用户端生成部分私钥XA,并将与所述用户部分私钥XA对应的公钥和用户标识发送至密钥生成中心;
S5,当前密钥生成中心向***内其他密钥生成中心请求获取用于恢复***主密钥对的第二部分秘密分量s2i、gi,从而恢复完整的***主私钥S以及与所述主私钥对应的主公钥Ppub;
S6,根据所述用户部分私钥XA、用户标识IDA、其他密钥生成中心随机生成的随机参数分量ωi、***公开参数计算生成用户私钥分片t和声称公钥W;
S7,用户端根据所述用户部分私钥XA、用户私钥分片t和声称公钥W得到用户完整私钥和用户实际公钥PU,完成无证书SM2密钥的生成。
2.根据权利要求1所述的无证书SM2密钥生成方法,其特征在于,步骤S1包括:
S11,***内的每个KGC各自生成随机数s1i,并将所述随机数s1i作为***主私钥的分量,其中,s1i∈[1,N-1]i∈[1,k],k代表所有KGC的个数;
S12,各KGC将所述随机数s1i作为秘密值,并根据预设阈值(t,k),选择t-1个随机数[ai1,ai2,....,ai(t-1)]和另一部分随机数[ri,bi1,bi2,....,bi(t-1)],并计算两个t-1阶多项式fi(x)和gi(x),其中,[ai1,ai2,....,ai(t-1)]∈[1,N-1],[ri,bi1,bi2,....,bi(t-1)]∈[1,N-1],而多项式fi(x)=s1i+ai1x1+ai2x2+....+ai(t-1)xt-1,gi(x)=ri+bi1x+bi2x2+....+bi(t-1)xt -1,i∈[1,k];
S13,各KGC计算并公开可验证的零知识承诺Ei0,....,Ei(t-1),并公开可验证零知识承诺;其中,
S14,各KGC根据多项式fi(x)和gi(x)为其他KGC生成第一部分秘密份额(fi(j),gi(j)),并将所述秘密份额(fi(j),gi(j))依次分发到其他KGC;其中,fi(j)和gi(j)代表第i个KGC生成的并发给第j个KGC的秘密份额;
其中:(XG,YG)表示E(fq)的基点G所对应的X、Y坐标;N表示基点G,H对应的阶数;t表示秘密分享方案所选择的门限阈值,t为3,即至少需要通过3个KGC所持有的有效秘密份额协同构建完整的***主密钥。
3.根据权利要求2所述的无证书SM2密钥生成方法,其特征在于,步骤S2包括:
S21,各KGC接收其他KGC分发的秘密份额(fi(j),gi(j)),并验证是否成立,若成立,则执行步骤S31;其中Ejl,j∈[1,k],l∈[1,t-1]为每个KGC发布的可验证零知识承诺;
步骤S3包括:
S31,各KGC计算并保存第二部分秘密份额s2i、gi;其中,
4.根据权利要求3所述的无证书SM2密钥生成方法,其特征在于,步骤S4包括:
S41,用户端随机秘密生成部分私钥XA,将与所述用户部分私钥XA所对应的第一倍点UA与用户标识IDA发送至密钥生成中心。
5.根据权利要求4所述的无证书SM2密钥生成方法,其特征在于,步骤S5包括:
S51,当前密钥生成中心接收到用户的生成密钥请求,并向***内其他密钥生成中心请求获取用于恢复***主密钥对的第二部分秘密分量s2i、gi和随机生成的参数分量ωi;所述用户的生成密钥请求包括第一倍点UA与用户标识IDA;
S52,验证所述秘密分量s2i是否有效;若有效,则执行步骤S53;
S53,当获取到至少t个有效秘密份额s2i后,通过拉格朗日插值法恢复t-1阶多项式F(x),并恢复完整的***主私钥S以及与所述主私钥对应的主公钥Ppub。
6.根据权利要求5所述的无证书SM2密钥生成方法,其特征在于,步骤S6包括:
S61,根据t个密钥生成中心随机生成的随机参数分量ωi和第一倍点UA计算得到声称公钥W;
S62,根据所述用户标识IDA计算得到用户私钥分片t;
S63,将所述用户私钥分片t和声称公钥W发回至用户端。
7.根据权利要求5所述的无证书SM2密钥生成方法,其特征在于,在步骤S52中,通过验证是否成立判断所述秘密分量s2i是否有效;其中, 为第j个KGC公开的零知识承诺;
在步骤S53中,恢复***主私钥S的公式为:
S=F(0)mod N;
恢复所述主私钥对应的主公钥Ppub的公式为:
其中是倍点[S]G在椭圆曲线上x轴的值,/>是倍点[S]G在椭圆曲线上y轴的值。
8.根据权利要求6所述的无证书SM2密钥生成方法,其特征在于,步骤S61中,根据t个密钥生成中心随机生成的随机参数分量ωi和第一倍点UA进行计算的公式为:
PA=[ω]G;
W=PA+UA=[ω]G+[x]G=[ω+x]G=(xW,yW);
其中,ωi指的是t个密钥生成中心随机生成的随机参数分量,ω是将t个ωi求和并将求和结果与N取余;PA是根据ω和基点G生成的第二倍点;xW和yW分别是声称公钥W在椭圆曲线上x轴和y轴的值;
在步骤S62中,根据所述用户标识IDA进行计算的公式为:
t1=Hash(xW||yW||ZA)mod N;
t=(ω+t1*S)mod N;
其中,a、b是椭圆曲线的参数,IDA是指用户标识,xG和yG分别是基点G在椭圆曲线上x轴和y轴的值;ZA则是对结果生成的hash值,t1是将hash值结果与N取余所得出的整数;S是已恢复完整的***主私钥,而t为用户私钥分片。
9.根据权利要求8所述的无证书SM2密钥生成方法,其特征在于,步骤S7包括:
根据所述用户私钥分片t和声称公钥W计算得到用户完整私钥;根据声称公钥W生成不可伪造的用户实际公钥PU;其中,根据所述用户私钥分片t和声称公钥W进行计算的公式为:
SA=(XA+t)mod N;
根据声称公钥W生成不可伪造的用户实际公钥PU的公式为:
t1=Hash(xW||yW||ZA)mod N
PU=W+[t1]Ppub。
10.根据权利要求1所述的无证书SM2密钥生成方法,其特征在于,步骤S7之后还包括:验证所述用户实际公钥PU中的声称公钥是否由KGC分发且未被篡改,具体包括:验证PU *与所述用户实际公钥PU是否相同,若相同,则该声称公钥是有效且未被篡改;其中,PU *=[SA]G。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211306716.5A CN115580401B (zh) | 2022-10-25 | 2022-10-25 | 一种基于可验证秘密共享的无证书sm2密钥生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211306716.5A CN115580401B (zh) | 2022-10-25 | 2022-10-25 | 一种基于可验证秘密共享的无证书sm2密钥生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115580401A CN115580401A (zh) | 2023-01-06 |
CN115580401B true CN115580401B (zh) | 2023-12-22 |
Family
ID=84587645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211306716.5A Active CN115580401B (zh) | 2022-10-25 | 2022-10-25 | 一种基于可验证秘密共享的无证书sm2密钥生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115580401B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446207B1 (en) * | 1997-01-31 | 2002-09-03 | Certicom Corporation | Verification protocol |
CN106961336A (zh) * | 2017-04-18 | 2017-07-18 | 北京百旺信安科技有限公司 | 一种基于sm2算法的密钥分量托管方法和*** |
CN108809658A (zh) * | 2018-07-20 | 2018-11-13 | 武汉大学 | 一种基于sm2的身份基的数字签名方法与*** |
CN108989053A (zh) * | 2018-08-29 | 2018-12-11 | 武汉珈港科技有限公司 | 一种基于椭圆曲线的无证书公钥密码体制实现方法 |
CN109377360A (zh) * | 2018-08-31 | 2019-02-22 | 西安电子科技大学 | 基于加权门限签名算法的区块链资产交易转账方法 |
CN112804062A (zh) * | 2020-12-31 | 2021-05-14 | 北京海泰方圆科技股份有限公司 | 一种基于sm2算法的无证书签名方法、装置、设备及介质 |
CN113111373A (zh) * | 2021-05-13 | 2021-07-13 | 北京邮电大学 | Vbft共识机制的随机数生成方法和共识机制*** |
CN113507374A (zh) * | 2021-07-02 | 2021-10-15 | 恒生电子股份有限公司 | 门限签名方法、装置、设备以及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201805633D0 (en) * | 2018-04-05 | 2018-05-23 | Nchain Holdings Ltd | Computer implemented method and system |
-
2022
- 2022-10-25 CN CN202211306716.5A patent/CN115580401B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446207B1 (en) * | 1997-01-31 | 2002-09-03 | Certicom Corporation | Verification protocol |
CN106961336A (zh) * | 2017-04-18 | 2017-07-18 | 北京百旺信安科技有限公司 | 一种基于sm2算法的密钥分量托管方法和*** |
CN108809658A (zh) * | 2018-07-20 | 2018-11-13 | 武汉大学 | 一种基于sm2的身份基的数字签名方法与*** |
CN108989053A (zh) * | 2018-08-29 | 2018-12-11 | 武汉珈港科技有限公司 | 一种基于椭圆曲线的无证书公钥密码体制实现方法 |
CN109377360A (zh) * | 2018-08-31 | 2019-02-22 | 西安电子科技大学 | 基于加权门限签名算法的区块链资产交易转账方法 |
CN112804062A (zh) * | 2020-12-31 | 2021-05-14 | 北京海泰方圆科技股份有限公司 | 一种基于sm2算法的无证书签名方法、装置、设备及介质 |
CN113111373A (zh) * | 2021-05-13 | 2021-07-13 | 北京邮电大学 | Vbft共识机制的随机数生成方法和共识机制*** |
CN113507374A (zh) * | 2021-07-02 | 2021-10-15 | 恒生电子股份有限公司 | 门限签名方法、装置、设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于门限ECC的容侵CA私钥保护方案;辛利;;计算机仿真(12);116 * |
Also Published As
Publication number | Publication date |
---|---|
CN115580401A (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10903991B1 (en) | Systems and methods for generating signatures | |
US9882717B2 (en) | System and method for generating a server-assisted strong password from a weak secret | |
CN107872322B (zh) | 基于同态加密的数字签名协同生成方法及*** | |
CN111953479B (zh) | 数据处理的方法及装置 | |
CN115174104A (zh) | 基于商密sm9的属性基在线/离线签名方法与*** | |
CN113098681B (zh) | 云存储中口令增强且可更新的盲化密钥管理方法 | |
CN116599659B (zh) | 无证书身份认证与密钥协商方法以及*** | |
CN111245611B (zh) | 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及*** | |
CN111490967B (zh) | 一种提供用户友好的强认证和匿名认证的统一身份认证方法和*** | |
CN115580401B (zh) | 一种基于可验证秘密共享的无证书sm2密钥生成方法 | |
CN114389808B (zh) | 一种基于SM9盲签名的OpenID协议设计方法 | |
CN115314207A (zh) | 一种sm2签名制作数据的安全可控使用方法及*** | |
CN114339743A (zh) | 一种基于边缘计算的物联网客户端隐私保护认证方法 | |
CN111245619B (zh) | 车联网的密钥派生方法、装置及***、车端、中间层 | |
CN114020842A (zh) | 一种基于同态加密技术的数据共享方法及装置 | |
CN115314208B (zh) | 一种安全可控的sm9数字签名生成方法及*** | |
PJA | Scalable and secure group key agreement for wireless ad‐hoc networks by extending RSA scheme | |
CN115150062B (zh) | 签名制作数据安全受控的sm9数字签名生成方法及*** | |
CN114978549B (zh) | 签名者掌控签名制作数据的sm2数字签名生成方法及*** | |
Shim | Security analysis of various authentication schemes based on three types of digital signature schemes | |
CN117155692B (zh) | 基于安全掩码的智能电网数据聚合方法及*** | |
CN110929872B (zh) | 抗量子计算私钥备份、挂失及恢复方法及*** | |
CN109150545B (zh) | 基于ECC的(m,N)门限群签名方法 | |
Mohanty et al. | Certificateless nominative signature scheme based upon DLP | |
CN117997525A (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 |