CN110299998A - 借助中间参数的sm9数字签名协同生成方法及*** - Google Patents
借助中间参数的sm9数字签名协同生成方法及*** Download PDFInfo
- Publication number
- CN110299998A CN110299998A CN201910764309.0A CN201910764309A CN110299998A CN 110299998 A CN110299998 A CN 110299998A CN 201910764309 A CN201910764309 A CN 201910764309A CN 110299998 A CN110299998 A CN 110299998A
- Authority
- CN
- China
- Prior art keywords
- integer
- calculate
- mod
- calculating
- digital signature
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—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 cryptographic hash functions
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
SM9数字签名生成方法:标号为第1号到m号的装置分别有[1,n‑1]中整数秘密ci,n为SM9群的阶,i=1,…,m,m≥2;PA=[(c1c2…cm)‑1]dA,PU=[u]dA,dA为用户的私钥,u为[1,n‑1]内的整数秘密;PB为群G1中非零元;对消息签名时,计算w=gU^(r1r2…rm),h=H2(M||w,n),T=[r1r2…rm]PU+[‑F(z1,...,zm)]PB,V=[F(z1,...,zm)]PB+[‑hc1c2…cm]PA,F(z1,z2,…,zm)与z1a2a3…am+z2a3…am+…+zm模n同余,S=T+V;则(h,S)为dA对消息M的数字签名。
Description
技术领域
本发明属于信息安全技术领域,特别是借助中间参数的SM9数字签名协同生成方法及***。
背景技术
SM9是由国家密码管理局颁布的一种基于双线性映射(配对运算)的标识密码算法,其中的双线性映射(配对运算)为:
e:G1×G2→GT时,其中G1、G2是加法循环群,GT是一个乘法循环群,G1、G2、GT的阶是素数n(注:在SM9规范中,G1、G2、GT的阶用的是大写字母N,本专利申请采用小写n),即若P、Q、R分别为G1、G2中的元,则e(P,Q)为GT中的元,且:
e(P+R,Q)=e(P,Q)e(R,Q),
e(P,Q+R)=e(P,Q)e(P,R),
e(aP,bQ)=e(P,Q)ab。
基于SM9密码算法能实现基于标识的数字签名、密钥交换及数据加密。在SM9密码算法中,使用用户的SM9私钥dA针对消息M生成数字签名的过程如下:
计算得到w=g^r,这里符号^表示幂运算(g的r次幂),r是在[1,n-1]区间内随机选择的整数,n是SM9密码算法的群G1、G2、GT的阶,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范;注意,这里的主私钥或主密钥,主公钥,用户标识私钥使用的符号与SM9规范略有不同);
然后,计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶(参见SM9规范);
若r≠h,计算S=[r-h]dA,则(h,S)为生成的数字签名;若r=h,则重新选择r,重新计算w、h,直到r≠h。
针对一些特殊的需求,比如,为了保证非硬件环境下用户私钥使用的安全性,人们提出了一些基于秘密共享(分享)的SM9数字签名生成方法。在这些方法中,多个装置分别保存有用户SM9私钥的秘密份额,或者分别保存有与私钥有关的秘密的秘密份额;在需要使用用户私钥针对一个消息M生成数字签名时,每个装置利用自己的秘密份额与其他装置交互、协同运算,生成针对消息的数字签名。
现有的基于秘密共享的SM9数字签名协同生成方案,通常在密码运算的过程中计算w=g^(a1r1+…+amrm),其中ri是第i个装置在[1,n-1]中随机选择的整数,而ai是常数,i=1,…,m(假设有m个装置);然后计算h=H2(M||w,n),最后m个装置通过协同计算得到S=[(a1r1+…+amrm)-h]dA。这种方案通常是没有问题的,但也可能出现一种情况,就是恰好出现(a1r1+…+amrm)mod n=0,而出现这样情况恰好被其中一个装置观测到(比如通过检查w是否是单位元),但却不报告,则这个装置就有可能从最终得到的数字签名(h,S)中得到用户的SM9私钥。出现这种情况的概率虽然极小,但是仍然有可能发生,尤其是在ri很难做到是真正随机选择的情况下。
如果基于秘密共享的数字签名协同生成方案能做到所采用的方案是w=g^(ar1…rm),S=[(ar1…rm)-h]dA,即这里的r1,…,rm以及一个常数a是以乘积的形式出现,则不会出现(ar1…rm)mod n=0的情况,这样的方案具有更高的安全性。我们在这里把r1,…,rm以及常数a是以乘积形式出现的情形称为乘积r参数的情形,而把生成数字签名过程中r1,…,rm以及常数a以乘积形式出现的SM9数字签名协同生成方法,称为具有乘积r参数的SM9数字签名协同生成方法。
发明内容
本发明的目的是提出具有乘积r参数增强安全的SM9数字签名生成技术方案,以增强基于秘密共享的SM9数字签名协同生成技术方案的安全性。
针对本发明的目的,本发明提出的技术方案包括借助中间参数的SM9数字签名协同生成方法及相应的***。
在以下对本发明技术方案的描述中,若P、Q是加法群G1、G2中的元,则P+Q表示P、Q在加法群上的加,P-Q表示P加上Q的逆元(加法逆元),[k]P表示k个P在加法群上的加,即P+P+...+P(共有k个P)(若k是负数,则是|k|个P相加的结果的加法逆元;这里[]符号的使用与SM9规范一致);
省略号“...”,表示多个同样(类型)的数据项或多个同样的运算;
若a、b是乘法群GT中的元,则ab或a·b表示a、b在乘法群GT上的乘(只要不产生无二义性,“·”可以省略),a-1表示a在乘法群中逆元(乘法逆元),at表示t个a在乘法群GT上相乘(t是负数,则是|t|个a相乘的结果的乘法逆元),即幂运算,at的另一种表达方式是a^t;
若c为整数,则c-1表示整数c的模n乘法逆(即cc-1mod n=1);如无特别说明,本专利发明中整数的乘法逆都是针对群G1、G2、GT的阶n的模n乘法逆;
多个整数相乘(包括整数符号相乘、常数与整数符号相乘),在不产生二义性的情况下,省略掉乘号“·”,如k1·k2简化为k1k2,3·c,简化为3c;
mod n表示模n运算(modulo operation),对应于SM9规范中的modN;还有,模n运算的算子mod n的优先级是最低的,如a+b mod n等同于(a+b)mod n,a-b mod n等同于(a-b)mod n,ab mod n等同于(ab)mod n。
本发明提出的借助中间参数的SM9数字签名协同生成方法具体如下。
所述方法涉及m个分别标号为第1号,第2号,…,到第m号的装置,m≥2;
第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m,其中n为SM9密码算法中群G1、G2、GT的阶(为素数);
(初始化阶段)预先计算有:
PA=[c-1]dA,其中dA为用户的SM9标识私钥,c-1为c的模n乘法逆,c=(c1c2…cm)modn为m个装置都没有保存的整数秘密;
PU=[u]dA,其中u是m个装置都没有保存的[1,n-1]区间内的整数秘密;
u和c-1不必互异(二者不同或者相同);
gU=g^u,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
在群G1中任选一个用户私钥dA之外的非零元PB(固定选取,比如固定选PB=P1,或者主观任意选择,或者随机选择,比如,在[1,n-1]中随机选择一个整数b,计算PB=[b]P1或PB=[b]dA);
m个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这m个装置的密码应用程序、***或密码模块,或者m个装置之一中的密码应用程序、***):
首先,m个装置通过交互计算得到w=gU^(r1r2…rm),其中ri是计算过程中第i号装置在[1,n-1]区间内随机选择的整数,i=1,…,m;
然后,(m个装置中的一个装置或其他装置)计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
(h无需保密,可根据需要自由传送)
(m个装置中的一个装置或其他装置)检查w与g^h是否相等,若w=g^h,则m个装置重新进行w的计算,直到w≠g^h;
之后,m个装置协同计算得到T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA,其中r1,r2,…,rm分别是计算w的过程中第1号,第2号,…,第m号装置在[1,n-1]中选择的整数,z1,z2,…,zm分别是在计算T、V的过程中第1号,第2号,…,第m号装置在[1,n-1]中随机选择的整数,F(z1,z2,…,zm)是针对z1,z2,…,zm的如下计算式:
F(z1,z2,…,zm)≡z1a2a3…am+z2a3…am+…+zm-1am+zm(mod n)(模n同余);
其中,ai为计算T、V的过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
最后,(m个装置中的一个装置或之外的装置)计算S=T+V,则(h,S)是针对消息M的数字签名。
(此时S=[r1r2…rm]PU+[-c1c2…cmh]PA=[(r1r2…rm)u-h]dA)
对于以上所述借助中间参数的SM9数字签名协同生成方法,若在以上计算过程中不检查w与g^h是否相等,则计算得到S后,若(计算S=T+V的装置)检查发现S为零元,则m个装置重新进行协同计算,直到S不为零元。
对于以上所述借助中间参数的SM9数字签名协同生成方法,m个装置计算得到w=gU^(r1r2…rm)的方法包括(不是全部可能的方式):
第1号装置计算g1=gU^r1,将g1发送第2号装置;
第i号装置接收到gi-1后,i=2,…,m,计算gi=gi-1^ri;
若i=m,则取w=gm,完成计算,否则,第i号装置将gi传送给第i+1号装置;
或者,
第m号装置计算gm=gU^rm,将gm发送第m-1号装置;
第i号装置接收gi+1到后,i=m-1,…,1,计算gi=gi+1^ri;
若i=1,则取w=g1,完成计算,否则,第i号装置将gi传送给第i-1号装置。
对于以上所述借助中间参数的SM9数字签名协同生成方法,m个装置协同计算得到T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,
V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA的一种方法如下(T、V协同计算方法一):
计算得到Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)-1am]PB,取Qm=PB;
计算得到D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB,取Dm=PB;
其中,ai为计算过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
取T0=PU,V0=[-h]PA;
第1号装置在[1,n-1]中随机选择一个整数z1,计算T1=[r1]T0+[-z1]Q1,V1=[z1]D1+[c1]V0,将T1、V1传送给第2号装置;
第i号装置接收到Ti-1、Vi-1后,i=2,…,m,若检查发现Ti-1为零元,则报错,否则,在[1,n-1]中随机选择一个整数zi或取zi=ai,计算Ti=[ri]Ti-1+[-zi]Qi,Vi=[zi]Di+[ci]Vi-1;
若i=m,则取T=Tm,V=Vm,完成T、V计算,否则,第i号装置将Ti、Vi传送给第i+1号装置,直到完成Tm、Vm计算;
(此时T=[r1r2…rm]PU+[-z1a2a3…am-z2a3…am-…-zm-1am-zm]PB,
V=[z1a2a3…am+z2a3…am+…+zm-1am+zm]PB+[-(c1c2…cm)h]PA)
若完成T、V计算之后由第m号装置计算S=T+V,则zm的取值允许为0或[1,n-1]中的整数常数(当然是[1,n-1]内的随机整数也没问题);
若PA不公开由第1号装置作为秘密保存(当然若PU=PA,则PU也不公开,也作为秘密由第1号装置保存),PB≠PA,则将c1作为非秘密时(其取值为1或其他[1,n-1]中的整数),以上所述计算T、V的方法以及所述借助中间参数的SM9数字签名协同生成方法仍然成立。
对于以上所述借助中间参数的SM9数字签名协同生成方法,若PB=PA,则m个装置协同计算得到T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA的一种方法如下(T、V协同计算方法二):
计算得到Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)-1am]PB,取Qm=PB;
计算得到d1=((a2a3…am)(c2c3…cm)-1)mod n,d2=((a3…am)(c3…cm)-1)modn,…,dm-1=(am(cm)-1)mod n,取dm=1;
其中,ai为计算过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
取T0=PU,v0=-h;
第1号装置在[1,n-1]中随机选择一个整数z1,计算T1=[r1]T0+[-z1]Q1,v1=(z1d1+c1v0)mod n,将T1、v1传送给第2号装置;
第i号装置接收到Ti-1、vi-1后,i=2,…,m,若检查发现Ti-1为零元,则报错,否则,在[1,n-1]中随机选择一个整数zi,计算Ti=[ri]Ti-1+[-zi]Qi,vi=(zidi+civi-1)mod n;
若i=m,则取T=Tm,(m个装置中的一个装置或其他装置)计算V=[vm]PA,完成T、V计算,否则,第i号装置将Ti、vi传送给第i+1号装置,直到完成Tm、vm计算;
(此时T=[r1r2…rm]PU+[-z1a2a3…am-z2a3…am-…-zm-1am-zm]PB,
V=[z1a2a3…am+z2a3…am+…+zm-1am+zm]PB+[-(c1c2…cm)h]PA)
若由第m号装置计算V=[vm]PA,且完成T、V计算之后由第m号装置计算S=T+V,则zm的取值允许为0或[1,n-1]中的整数常数(当然是[1,n-1]内的随机整数也没问题);
若PA不公开由第m号装置作为秘密保存(当然PB也不公开),PU≠PA(即u和c-1互异),且由第m号装置计算V=[vm]PA,则将cm作为非秘密时(其取值为1或其他[1,n-1]中的整数),以上所述计算T、V的方法以及所述借助中间参数的SM9数字签名协同生成方法仍然成立。
对于以上所述借助中间参数的SM9数字签名协同生成方法,若PB=PU,则m个装置协同计算得到T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA的一种方法如下(T、V协同计算方法三):
计算得到q1=((r2r3…rm)-1(a2a3…am))mod n,q2=((r3…rm)-1(a3…am))modn,…,qm-1=((rm)-1am)mod n,取qm=1;
计算得到D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB,取Dm=PB;
其中,ai为计算过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
取t0=1,V0=[-h]PA;
第1号装置在[1,n-1]中随机选择一个整数z1,计算t1=(r1t0-z1q1)mod n,V1=[z1]D1+[c1]V0,将t1、V1传送给第2号装置;
第i号装置接收到ti-1、Vi-1后,i=2,…,m,若检查发现ti-1为0,则报错,否则,在[1,n-1]中随机选择一个整数zi,计算ti=(riti-1-ziqi)mod n,Vi=[zi]Di+[ci]Vi-1;
若i=m,则(m个装置中的一个装置或之外的装置)计算T=[tm]PB,取V=Vm,完成T、V计算,否则,第i号装置将Ti、Vi传送给第i+1号装置,直到完成Tm、Vm计算;
(此时T=[r1r2…rm]PU+[-z1a2a3…am-z2a3…am-…-zm-1am-zm]PB,
V=[z1a2a3…am+z2a3…am+…+zm-1am+zm]PB+[-(c1c2…cm)h]PA)
若由第m号装置计算T=[tm]PB,且完成T、V计算之后由第m号装置计算S=T+V,则zm的取值允许为0或[1,n-1]中的整数常数(当然是[1,n-1]内的随机整数也没问题);
若PA不公开由第1号装置作为秘密保存,PB≠PA(即PU≠PA,u和c-1互异),则将c1作为非秘密时(其取值为1或其他[1,n-1]中的整数),以上所述计算T、V的方法以及所述借助中间参数的SM9数字签名协同生成方法仍然成立。
对于以上所述借助中间参数的SM9数字签名协同生成方法,计算得到Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)-1am]PB,
以及D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB的方法包括如下方案(不是全部可能的方案):
方案一:
第m号装置取Qm=PB,Dm=PB,在[1,n-1]中随机选取一个整数am,计算Qm-1=[(rm)- 1am]Qm,Dm-1=[am(cm)-1]Dm,将Qm-1、Dm-1发送给第m-1号装置;
第i号装置接收到Qi、Di后,i=m-1,…,1,若i=1,则第1号装置将Q1、D1临时保留,完成Q1,Q2,…,Qm-1以及D1,D2,…,Dm-1的计算,否则,第i号装置在[1,n-1]中随机选取一个整数ai,计算Qi-1=[(ri)-1ai]Qi,Di-1=[ai(ci)-1]Di,将Qi、Di临时保留,将Qi-1、Di-1传送给第i-1号装置;
在计算Q1,Q2,…,Qm-1以及D1,D2,…,Dm-1的过程中,若第i号装置检查发现接收到的Qi或Di为零元,i=m-1,…,1,则报错;
方案二:
m个装置按计算Q1,Q2,…,Qm-1以及D1,D2,…,Dm-1的方案一的方式计算、保存Q1,Q2,…,Qm-1;
第m号装置取dm=1,在[1,n-1]中随机选取一个整数am,计算dm-1=(am(cm)-1)dm)mod n,将dm-1发送给第m-1号装置;
第i号装置接收到di后,i=m-1,…,1,若i=1,则第1号装置计算D1=[d1]PB,将D1临时保留,完成D1,D2,…,Dm-1的计算,否则,第i号装置计算Di=[di]PB,在[1,n-1]中随机选取一个整数ai,计算di-1=(ai(ci)-1di)mod n,将Di临时保留,将di-1传送给第i-1号装置;
在计算Q1,Q2,…,Qm-1以及D1,D2,…,Dm-1的过程中,若第i号装置检查发现接收到的Qi为零元或di为0,i=m-1,…,1,则报错;
方案三:
m个装置按计算Q1,Q2,…,Qm-1以及D1,D2,…,Dm-1的方案一的方式计算、保存D1,D2,…,Dm-1;
第m号装置取qm=1,在[1,n-1]中随机选取一个整数am,计算qm-1=((rm)-1amqm)modn,将qm-1发送给第m-1号装置;
第i号装置接收到qi后,i=m-1,…,1,若i=1,则第1号装置计算Q1=[q1]PB,将Q1临时保留,完成Q1,Q2,…,Qm-1的计算,否则,第i号装置计算Qi=[qi]PB,在[1,n-1]中随机选取一个整数ai,计算qi-1=((ri)-1aiqi)mod n,将Qi临时保留,将qi-1传送给第i-1号装置;
在计算q1,q2,…,qm-1以及D1,D2,…,Dm-1的过程中,若第i号装置检查发现接收到的qi为0或Di为零元,i=m-1,…,1,则报错。
对于以上所述借助中间参数的SM9数字签名协同生成方法,计算得到Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)-1am]PB,
以及d1=((a2a3…am)(c2c3…cm)-1)mod n,d2=((a3…am)(c3…cm)-1)mod n,…,dm-1=(am(cm)-1)mod n的一种方法如下:
第m号装置取Qm=PB,dm=1,在[1,n-1]中随机选取一个整数am,计算Qm-1=[(rm)- 1am]Qm,dm-1=(am(cm)-1)dm)mod n,将Qm-1、dm-1发送给第m-1号装置;
第i号装置接收到Qi、di后,i=m-1,…,1,若i=1,则第1号装置将Q1、d1临时保留,完成Q1,Q2,…,Qm-1以及d1,d2,…,dm-1的计算,否则,第i号装置在[1,n-1]中随机选取一个整数ai,计算Qi-1=[(ri)-1ai]Qi,di-1=(ai(ci)-1di)mod n,将Qi、di临时保留,将Qi-1、di-1传送给第i-1号装置;
在计算Q1,Q2,…,Qm-1以及d1,d2,…,dm-1的过程中,若第i号装置检查发现接收到的Qi为零元或di为0,i=m-1,…,1,则报错。
对于以上所述借助中间参数的SM9数字签名协同生成方法,计算得到q1=((r2r3…rm)-1(a2a3…am))mod n,q2=((r3…rm)-1(a3…am))mod n,…,qm-1=((rm)-1am)mod n,
以及D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB的一种方法如下:
第m号装置取qm=1,Dm=PB,在[1,n-1]中随机选取一个整数am,计算qm-1=((rm)- 1amqm)mod n,Dm-1=[am(cm)-1]Dm,将qm-1、Dm-1发送给第m-1号装置;
第i号装置接收到qi、Di后,i=m-1,…,1,若i=1,则第1号装置将q1、D1临时保留,完成q1,q2,…,qm-1以及D1,D2,…,Dm-1的计算,否则,第i号装置在[1,n-1]中随机选取一个整数ai,计算qi-1=((ri)-1aiqi)mod n,Di-1=[ai(ci)-1]Di,将qi、Di临时保留,将qi-1、Di-1传送给第i-1号装置;
在计算q1,q2,…,qm-1以及D1,D2,…,Dm-1的过程中,若第i号装置检查发现接收到的qi为0或Di为零元,i=m-1,…,1,则报错。
在以上所述借助中间参数的SM9数字签名协同生成方法的基础上可构建SM9数字签名协同生成***,***包括m个分别标号为第1号,第2号,…,到第m号的装置,m≥2;第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按所述借助中间参数的SM9数字签名协同生成方法生成针对消息M的数字签名。
从以上描述可以看到,基于本发明的方法和***,当需要使用用户标识私钥dA对消息进行数字签名时,多个装置可以通过交互协同生成针对消息的数字签名,在计算过程中通过引入中间参数z1,…,zm以及a2,…,am,使得协同生成的数字签名具有乘积r参数,从而具有较高的安全性。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例仅是本发明列举的几个可能的实施例,不代表全部可能的实施例,不作为对本发明的限定。
实施例1、
此实施例有两个标号为第1号、第2号的装置,第1号装置保存有[1,n-1]区间内的整数秘密c1,第2号装置保存有[1,n-1]区间内的整数秘密c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数);
(初始化阶段)预先计算有:
PA=[c-1]dA,其中dA为用户的SM9标识私钥,c-1为c的模n乘法逆,c=(c1c2)mod n为两个装置都没有保存的整数秘密;
PU=[u]dA,其中u是两个装置都没有保存的[1,n-1]区间内的整数秘密;
u和c-1不必互异(二者不同或者相同);
gU=g^u,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
在群G1中任选一个用户私钥dA之外的非零元PB(固定选取,比如固定选PB=P1,或者主观任意选择,或者随机选择,比如,在[1,n-1]中随机选择一个整数b,计算PB=[b]P1或PB=[b]dA);
两个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置通过交互计算得到w=gU^(r1r2),其中r1是计算过程中第1号装置在[1,n-1]区间内随机选择的整数,r2是计算过程中第2号装置在[1,n-1]区间内随机选择的整数;
然后,(两个装置中的一个装置或其他装置)计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
(两个装置中的一个装置或其他装置)检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;
之后,两个装置按前述T、V协同计算方法一计算得到
T=[r1r2]PU+[-F(z1,z2)]PB,V=[F(z1,z2)]PB+[-c1c2h]PA,即:
计算得到Q1=[(r2)-1a2]PB,取Q2=PB;
计算得到D1=[a2(c2)-1]PB,取D2=PB;
其中,a2为计算过程中第2号装置在[1,n-1]中随机选取的整数;
取T0=PU,V0=[-h]PA;
第1号装置在[1,n-1]中随机选择一个整数z1,计算T1=[r1]T0+[-z1]Q1,V1=[z1]D1+[c1]V0,将T1、V1传送给第2号装置;
第2号装置接收到T1、V1后,若检查发现T1为零元,则报错,否则,在[1,n-1]中随机选择一个整数z2或取z2=a2,计算T2=[r2]T1+[-z2]Q2,V2=[z2]D2+[c2]V1;
取T=T2,V=V2;
(此时T=[r1r2]PU+[-z1a2-z2]PB,V=[z1a2+z2]PB+[-(c1c2)h]PA)
最后,(两个装置中的一个装置或其他装置)计算S=T+V,则(h,S)为针对消息M的数字签名。
(此时S=[r1r2]PU+[-c1c2h]PA=[(r1r2)u-h]dA)
若完成T、V计算之后由第2号装置计算S=T+V,则T、V计算过程中z2的取值允许为0或[1,n-1]中的整数常数(当然是[1,n-1]内的随机整数也没问题)。
实施例2、
实施例2与实施例1的差别在于,c1是非秘密,其取值为1或其他[1,n-1]中的整数(其他在[1,n-1]中主观任意或随机选择的整数),PA不公开由第1号装置作为秘密保存(当然若PU=PA,则PU也不公开,也作为秘密由第1号装置保存),且PB≠PA,其他不变。
实施例3、
此实施例有m个分别标号为第1号,第2号,…,到第m号的装置,m≥2,其中第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m,其中n为SM9密码算法中群G1、G2、GT的阶(为素数);
(初始化阶段)预先计算有:
PA=[c-1]dA,其中dA为用户的SM9标识私钥,c-1为c的模n乘法逆,c=(c1c2…cm)modn为m个装置都没有保存的整数秘密;
PU=[u]dA,其中u是m个装置都没有保存的[1,n-1]区间内的整数秘密;
u和c-1不必互异(二者不同或者相同);
gU=g^u,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
在群G1中任选一个用户私钥dA之外的非零元PB(固定选取,比如固定选PB=P1,或者主观任意选择,或者随机选择,比如,在[1,n-1]中随机选择一个整数b,计算PB=[b]P1或PB=[b]dA);
m个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置首先通过交互计算得到w=gU^(r1r2…rm),其中ri是计算过程中第i号装置在[1,n-1]区间内随机选择的整数,i=1,…,m;
然后,(m个装置中的一个装置或其他装置)计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
(m个装置中的一个装置或其他装置)检查w与g^h是否相等,若w=g^h,则m个装置重新进行w的计算,直到w≠g^h;
之后,m个装置按前述T、V协同计算方法一计算得到
T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,
V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA,即:
计算得到Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)-1am]PB,取Qm=PB;
计算得到D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB,取Dm=PB;
其中,ai为计算过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
取T0=PU,V0=[-h]PA;
第1号装置在[1,n-1]中随机选择一个整数z1,计算T1=[r1]T0+[-z1]Q1,V1=[z1]D1+[c1]V0,将T1、V1传送给第2号装置;
第i号装置接收到Ti-1、Vi-1后,i=2,…,m,若检查发现Ti-1为零元,则报错,否则,在[1,n-1]中随机选择一个整数zi或取zi=ai,计算Ti=[ri]Ti-1+[-zi]Qi,Vi=[zi]Di+[ci]Vi-1;
若i=m,则取T=Tm,V=Vm,完成T、V计算,否则,第i号装置将Ti、Vi传送给第i+1号装置,直到完成Tm、Vm计算;
(此时T=[r1r2…rm]PU+[-z1a2a3…am-z2a3…am-…-zm-1am-zm]PB,
V=[z1a2a3…am+z2a3…am+…+zm-1am+zm]PB+[-(c1c2…cm)h]PA)
最后,(m个装置中的一个装置或其他装置)计算S=T+V,则(h,S)为针对消息M的数字签名。
(此时S=[r1r2…rm]PU+[-c1c2…cmh]PA=[(r1r2…rm)u-h]dA)
若完成T、V计算之后由第m号装置计算S=T+V,则T、V计算过程中zm的取值允许为0或[1,n-1]中的整数常数(当然是随机整数也没问题)。
实施例4、
实施例4与实施例3的差别在于,c1是非秘密,其取值为1或其他[1,n-1]中的整数(其他在[1,n-1]中主观任意或随机选择的整数),PA不公开由第1号装置作为秘密保存(当然若PU=PA,则PU也不公开,也作为秘密由第1号装置保存),且PB≠PA,其他不变。
实施例5、
此实施例有两个标号为第1号、第2号的装置,第1号装置保存有[1,n-1]区间内的整数秘密c1,第2号装置保存有[1,n-1]区间内的整数秘密c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数);
(初始化阶段)预先计算有:
PA=[c-1]dA,其中dA为用户的SM9标识私钥,c-1为c的模n乘法逆,c=(c1c2)mod n为两个装置都没有保存的整数秘密;
PU=[u]dA,其中u是两个装置都没有保存的[1,n-1]区间内的整数秘密;
u和c-1不必互异(二者不同或者相同);
gU=g^u,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
取PB=PA;
两个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置通过交互计算得到w=gU^(r1r2),其中r1是计算过程中第1号装置在[1,n-1]区间内随机选择的整数,r2是计算过程中第2号装置在[1,n-1]区间内随机选择的整数;
然后,(两个装置中的一个装置或其他装置)计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
(两个装置中的一个装置或其他装置)检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;
之后,两个装置按前述T、V协同计算方法二计算得到
T=[r1r2]PU+[-F(z1,z2)]PB,V=[F(z1,z2)]PB+[-c1c2h]PA,即:
计算得到Q1=[(r2)-1a2]PB,取Q2=PB;
计算得到d1=(a2(c2)-1)mod n,取d2=1;
其中,a2为计算过程中第2号装置在[1,n-1]中随机选取的整数;
取T0=PU,v0=-h;
第1号装置在[1,n-1]中随机选择一个整数z1,计算T1=[r1]T0+[-z1]Q1,v1=(z1d1+c1v0)mod n,将T1、v1传送给第2号装置;
第2号装置接收到T1、v1后,若检查发现T1为零元,则报错,否则,在[1,n-1]中随机选择一个整数z2,计算T2=[r2]T1+[-z2]Q2,v2=(z2d2+c2v1)mod n;
取T=T2,(两个装置中的一个装置或其他装置)计算V=[v2]PA,完成T、V计算;
(此时T=[r1r2]PU+[-z1a2-z2]PB,V=[z1a2+z2]PB+[-(c1c2)h]PA)
最后,(两个装置中的一个装置或其他装置)计算S=T+V,则(h,S)为针对消息M的数字签名。
(此时S=[r1r2]PU+[-c1c2h]PA=[(r1r2)u-h]dA)
若由第2号装置计算V=[v2]PA,且完成T、V计算之后由第2号装置计算S=T+V,则T、V计算过程中z2的取值允许为0或[1,n-1]中的整数常数(当然是[1,n-1]内的随机整数也没问题)。
实施例6、
实例6与实施例5的差别在于,c2是非秘密,其取值为1或其他[1,n-1]中的整数(其他在[1,n-1]中主观任意或随机选择的整数),PU≠PA(即u和c-1互异),PA不公开由第2号装置作为秘密保存(当然PB也不公开),由第2号装置计算V=[v2]PA,其他不变。
实施例7、
此实施例有m个分别标号为第1号,第2号,…,到第m号的装置,m≥2,其中第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m,其中n为SM9密码算法中群G1、G2、GT的阶(为素数);
(初始化阶段)预先计算有:
PA=[c-1]dA,其中dA为用户的SM9标识私钥,c-1为c的模n乘法逆,c=(c1c2…cm)modn为m个装置都没有保存的整数秘密;
PU=[u]dA,其中u是m个装置都没有保存的[1,n-1]区间内的整数秘密;
u和c-1不必互异(二者不同或者相同);
gU=g^u,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
取PB=PA;
m个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置首先通过交互计算得到w=gU^(r1r2…rm),其中ri是计算过程中第i号装置在[1,n-1]区间内随机选择的整数,i=1,…,m;
然后,(m个装置中的一个装置或其他装置)计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
(m个装置中的一个装置或其他装置)检查w与g^h是否相等,若w=g^h,则m个装置重新进行w的计算,直到w≠g^h;
之后,m个装置按前述T、V协同计算方法二计算得到
T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,
V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA,即:
计算得到Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)-1am]PB,取Qm=PB;
计算得到d1=((a2a3…am)(c2c3…cm)-1)mod n,d2=((a3…am)(c3…cm)-1)modn,…,dm-1=(am(cm)-1)mod n,取dm=1;
其中,ai为计算过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
取T0=PU,v0=-h;
第1号装置在[1,n-1]中随机选择一个整数z1,计算T1=[r1]T0+[-z1]Q1,v1=(z1d1+c1v0)mod n,将T1、v1传送给第2号装置;
第i号装置接收到Ti-1、vi-1后,i=2,…,m,若检查发现Ti-1为零元,则报错,否则,在[1,n-1]中随机选择一个整数zi,计算Ti=[ri]Ti-1+[-zi]Qi,vi=(zidi+civi-1)mod n;
若i=m,则取T=Tm,(m个装置中的一个装置或其他装置)计算V=[vm]PA,完成T、V计算,否则,第i号装置将Ti、vi传送给第i+1号装置,直到完成Tm、vm计算;
(此时T=[r1r2…rm]PU+[-z1a2a3…am-z2a3…am-…-zm-1am-zm]PB,
V=[z1a2a3…am+z2a3…am+…+zm-1am+zm]PB+[-(c1c2…cm)h]PA)
最后,(m个装置中的一个装置或其他装置)计算S=T+V,则(h,S)为针对消息M的数字签名。
(此时S=[r1r2…rm]PU+[-c1c2…cmh]PA=[(r1r2…rm)u-h]dA)
若由第m号装置计算V=[vm]PA,且完成T、V计算之后由第m号装置计算S=T+V,则T、V计算过程中zm的取值允许为0或[1,n-1]中的整数常数(当然是[1,n-1]内的随机整数也没问题)。
实施例8、
实例8与实施例7的差别在于,cm是非秘密,其取值为1或其他[1,n-1]中的整数(其他在[1,n-1]中主观任意或随机选择的整数),PU≠PA(即u和c-1互异),PA不公开由第m号装置作为秘密保存(当然PB也不公开),由第m号装置计算V=[vm]PA,其他不变。
实施例9、
此实施例有两个标号为第1号、第2号的装置,第1号装置保存有[1,n-1]区间内的整数秘密c1,第2号装置保存有[1,n-1]区间内的整数秘密c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数);
(初始化阶段)预先计算有:
PA=[c-1]dA,其中dA为用户的SM9标识私钥,c-1为c的模n乘法逆,c=(c1c2)mod n为两个装置都没有保存的整数秘密;
PU=[u]dA,其中u是两个装置都没有保存的[1,n-1]区间内的整数秘密;
u和c-1不必互异(二者不同或者相同);
gU=g^u,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
取PB=PU;
两个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置通过交互计算得到w=gU^(r1r2),其中r1是计算过程中第1号装置在[1,n-1]区间内随机选择的整数,r2是计算过程中第2号装置在[1,n-1]区间内随机选择的整数;
然后,(两个装置中的一个装置或其他装置)计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
(两个装置中的一个装置或其他装置)检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;
之后,两个装置按前述T、V协同计算方法三计算得到
T=[r1r2]PU+[-F(z1,z2)]PB,V=[F(z1,z2)]PB+[-c1c2h]PA,即:
计算得到q1=((r2)-1a2)mod n,取q2=1;
计算得到D1=[a2(c2)-1]PB,取D2=PB;
其中,a2为计算过程中第2号装置在[1,n-1]中随机选取的整数,i=2,…,m;
取t0=1,V0=[-h]PA;
第1号装置在[1,n-1]中随机选择一个整数z1,计算t1=(r1t0-z1q1)mod n,V1=[z1]D1+[c1]V0,将t1、V1传送给第2号装置;
第2号装置接收到t1、V1后,若检查发现t1为0,则报错,否则,在[1,n-1]中随机选择一个整数z2,计算t2=(r2t1-z2q2)mod n,V2=[z2]D2+[c2]V1;
(两个装置中的一个装置或之外的装置)计算T=[t2]PB,取V=V2;
(此时T=[r1r2]PU+[-z1a2-z2]PB,V=[z1a2+z2]PB+[-(c1c2)h]PA)
最后,(两个装置中的一个装置或其他装置)计算S=T+V,则(h,S)为针对消息M的数字签名。
(此时S=[r1r2]PU+[-c1c2h]PA=[(r1r2)u-h]dA)
若由第2号装置计算T=[t2]PB,且完成T、V计算之后由第2号装置计算S=T+V,则T、V计算过程中z2的取值允许为0或[1,n-1]中的整数常数(当然是[1,n-1]内的随机整数也没问题)。
实施例10、
实例10与实施例9的差别在于,c1是非秘密,其取值为1或其他[1,n-1]中的整数(其他在[1,n-1]中主观任意或随机选择的整数),PB≠PA(即PU≠PA,u和c-1互异),PA不公开由第1号装置作为秘密保存,其他不变。
实施例11、
此实施例有m个分别标号为第1号,第2号,…,到第m号的装置,m≥2,其中第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m,其中n为SM9密码算法中群G1、G2、GT的阶(为素数);
(初始化阶段)预先计算有:
PA=[c-1]dA,其中dA为用户的SM9标识私钥,c-1为c的模n乘法逆,c=(c1c2…cm)modn为m个装置都没有保存的整数秘密;
PU=[u]dA,其中u是m个装置都没有保存的[1,n-1]区间内的整数秘密;
u和c-1不必互异(二者不同或者相同);
gU=g^u,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
取PB=PU;
m个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置首先通过交互计算得到w=gU^(r1r2…rm),其中ri是计算过程中第i号装置在[1,n-1]区间内随机选择的整数,i=1,…,m;
然后,(m个装置中的一个装置或其他装置)计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
(m个装置中的一个装置或其他装置)检查w与g^h是否相等,若w=g^h,则m个装置重新进行w的计算,直到w≠g^h;
之后,m个装置按前述T、V协同计算方法三计算得到
T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,
V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA,即:
计算得到q1=((r2r3…rm)-1(a2a3…am))mod n,q2=((r3…rm)-1(a3…am))modn,…,qm-1=((rm)-1am)mod n,取qm=1;
计算得到D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB,取Dm=PB;
其中,ai为计算过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
取t0=1,V0=[-h]PA;
第1号装置在[1,n-1]中随机选择一个整数z1,计算t1=(r1t0-z1q1)mod n,V1=[z1]D1+[c1]V0,将t1、V1传送给第2号装置;
第i号装置接收到ti-1、Vi-1后,i=2,…,m,若检查发现ti-1为0,则报错,否则,在[1,n-1]中随机选择一个整数zi,计算ti=(riti-1-ziqi)mod n,Vi=[zi]Di+[ci]Vi-1;
若i=m,则(m个装置中的一个装置或之外的装置)计算T=[tm]PB,取V=Vm,完成T、V计算,否则,第i号装置将Ti、Vi传送给第i+1号装置,直到完成Tm、Vm计算;
(此时T=[r1r2…rm]PU+[-z1a2a3…am-z2a3…am-…-zm-1am-zm]PB,
V=[z1a2a3…am+z2a3…am+…+zm-1am+zm]PB+[-(c1c2…cm)h]PA)
最后,(m个装置中的一个装置或其他装置)计算S=T+V,则(h,S)为针对消息M的数字签名。
(此时S=[r1r2…rm]PU+[-c1c2…cmh]PA=[(r1r2…rm)u-h]dA)
若由第m号装置计算T=[tm]PB,且完成T、V计算之后由第m号装置计算S=T+V,则T、V计算过程中zm的取值允许为0或[1,n-1]中的整数常数(当然是[1,n-1]内的随机整数也没问题)。
实施例12、
实例12与实施例11的差别在于,c1是非秘密,其取值为1或其他[1,n-1]中的整数(其他在[1,n-1]中主观任意或随机选择的整数),PB≠PA(即PU≠PA,u和c-1互异),PA不公开由第1号装置作为秘密保存,其他不变。
在以上各实施例1-12中,若在计算过程中不检查w与g^h是否相等,则计算得到S后,若检查发现S为零元,则m个装置重新进行协同计算,直到S不为零元。
在以上实施例1-12中,m个装置计算得到w=gU^(r1r2…rm)的方法包括(不是全部可能的方式):
第1号装置计算g1=gU^r1,将g1发送第2号装置;
第i号装置接收到gi-1后,i=2,…,m,计算gi=gi-1^ri;
若i=m,则取w=gm,完成计算,否则,第i号装置将gi传送给第i+1号装置;
或者,
第m号装置计算gm=gU^rm,将gm发送第m-1号装置;
第i号装置接收gi+1到后,i=m-1,…,1,计算gi=gi+1^ri;
若i=1,则取w=g1,完成计算,否则,第i号装置将gi传送给第i-1号装置。
对于以上实施例1-4,m个装置可以按前述计算得到
Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)-1am]PB,
以及D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB的三个方案中的一个计算得到Q1,Q2,…,Qm-1,以及D1,D2,…,Dm-1。
对于以上实施例5-8,m个装置可以按前述计算得到
Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)-1am]PB,
以及d1=((a2a3…am)(c2c3…cm)-1)mod n,d2=((a3…am)(c3…cm)-1)mod n,…,dm-1=(am(cm)-1)mod n的方法计算得到Q1,Q2,…,Qm-1,以及d1,d2,…,dm-1。
对于以上实施例1-12,m个装置可以按前述计算得到
q1=((r2r3…rm)-1(a2a3…am))mod n,q2=((r3…rm)-1(a3…am))mod n,…,qm-1=((rm)-1am)mod n
以及D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB的方法计算得到q1,q2,…,qm-1以及D1,D2,…,Dm-1。
在以上实施例中,若m个装置分别有[1,n-1]区间内的整数秘密c1,c2,…,cm,则在初始化阶段的一种初始化方法如下:
知道dA的装置,在[1,n-1]区间内随机选择m个整数作为c1,c2,…,cm,交由m个装置作为秘密保存;
计算PA=[c-1]dA,其中,c-1为c的模n乘法逆,c=(c1c2…cm)mod n为m个装置都没有保存的整数秘密;
计算PU=[u]dA,其中u是知道dA的装置在[1,n-1]区间内随机选择的整数;
计算gU=g^u,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
在群G1中任选一个用户私钥dA之外的非零元PB(固定选取,比如固定选PB=P1,或者主观任意选择,或者随机选择,比如,在[1,n-1]中随机选择一个整数b,计算PB=[b]P1或PB=[b]dA);
之后,将PU、PB、PA、gU交给需要使用的装置,将c、u销毁。
在以上实施例中,若PB=PA,则在初始化阶段知道dA的装置选取PB=PA。
在以上实施例中,若PU=PB,则在初始化阶段知道dA的装置选取PU=PB。
在以上实施例中,若c1是取值为1或其他[1,n-1]中的整数的非秘密,则在初始化阶段c2,…,cm选取为[1,n-1]中随机选择的整数,并交由第2号,…,第m号装置保存。
在以上实施例中,若cm是取值为1或其他[1,n-1]中的整数的非秘密,则在初始化阶段c1,…,cm-1选取为[1,n-1]中随机选择的整数,并交由第1号,…,第m-1号装置保存。
在以上实施例中,若出现取PB≠PA的情况,则在初始化阶段在[1,n-1]内随机选择一个非1的整数b,然后计算PB=[b]dA。
在以上实施例中,若出现取PU≠PA(即u和c-1互异)的情况,则在初始化阶段在[1,n-1]内随机选择一个非c-1的整数u,然后计算PU=[u]dA。
依据本发明的借助中间参数的SM9数字签名协同生成方法可构建SM9数字签名协同生成***,***包括m个分别标号为第1号,第2号,…,到第m号的装置,m≥2;第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置通过实施所述借助中间参数的SM9数字签名协同生成方法,包括实施前述实施例1-12,生成针对消息M的数字签名。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种借助中间参数的SM9数字签名协同生成方法,其特征是:
所述方法涉及m个分别标号为第1号,第2号,…,到第m号的装置,m≥2;
第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m,其中n为SM9密码算法中群G1、G2、GT的阶;
预先计算有:
PA=[c-1]dA,其中dA为用户的SM9标识私钥,c-1为c的模n乘法逆,c=(c1c2…cm)mod n为m个装置都没有保存的整数秘密;
PU=[u]dA,其中u是m个装置都没有保存的[1,n-1]区间内的整数秘密;
u和c-1不必互异;
gU=g^u,其中^是幂运算,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥;
在群G1中任选一个用户私钥dA之外的非零元PB;
m个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成:
首先,m个装置通过交互计算得到w=gU^(r1r2…rm),其中ri是计算过程中第i号装置在[1,n-1]区间内随机选择的整数,i=1,…,m;
然后,计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
检查w与g^h是否相等,若w=g^h,则m个装置重新进行w的计算,直到w≠g^h;
之后,m个装置协同计算得到T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA,其中r1,r2,…,rm分别是计算w的过程中第1号,第2号,…,第m号装置在[1,n-1]中选择的整数,z1,z2,…,zm分别是在计算T、V的过程中第1号,第2号,…,第m号装置在[1,n-1]中随机选择的整数,F(z1,z2,…,zm)是针对z1,z2,…,zm的如下计算式:
F(z1,z2,…,zm)≡z1a2a3…am+z2a3…am+…+zm-1am+zm(mod n);
其中,ai为计算T、V的过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
最后,计算S=T+V,则(h,S)是针对消息M的数字签名。
2.根据权利要求1所述的借助中间参数的SM9数字签名协同生成方法,其特征是:
若在以上计算过程中不检查w与g^h是否相等,则计算得到S后,若检查发现S为零元,则m个装置重新进行协同计算,直到S不为零元。
3.根据权利要求1所述的借助中间参数的SM9数字签名协同生成方法,其特征是:
m个装置计算得到w=gU^(r1r2…rm)的方法包括:
第1号装置计算g1=gU^r1,将g1发送第2号装置;
第i号装置接收到gi-1后,i=2,…,m,计算gi=gi-1^ri;
若i=m,则取w=gm,完成计算,否则,第i号装置将gi传送给第i+1号装置;
或者,
第m号装置计算gm=gU^rm,将gm发送第m-1号装置;
第i号装置接收gi+1到后,i=m-1,…,1,计算gi=gi+1^ri;
若i=1,则取w=g1,完成计算,否则,第i号装置将gi传送给第i-1号装置。
4.根据权利要求1所述的借助中间参数的SM9数字签名协同生成方法,其特征是:
m个装置协同计算得到T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA的一种方法如下:
计算得到Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)- 1am]PB,取Qm=PB;
计算得到D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB,取Dm=PB;
其中,ai为计算过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
取T0=PU,V0=[-h]PA;
第1号装置在[1,n-1]中随机选择一个整数z1,计算T1=[r1]T0+[-z1]Q1,V1=[z1]D1+[c1]V0,将T1、V1传送给第2号装置;
第i号装置接收到Ti-1、Vi-1后,i=2,…,m,若检查发现Ti-1为零元,则报错,否则,在[1,n-1]中随机选择一个整数zi或取zi=ai,计算Ti=[ri]Ti-1+[-zi]Qi,Vi=[zi]Di+[ci]Vi-1;
若i=m,则取T=Tm,V=Vm,完成T、V计算,否则,第i号装置将Ti、Vi传送给第i+1号装置,直到完成Tm、Vm计算;
若完成T、V计算之后由第m号装置计算S=T+V,则zm的取值允许为0或[1,n-1]中的整数常数;
若PA不公开由第1号装置作为秘密保存,PB≠PA,则将c1作为非秘密时,以上所述计算T、V的方法以及所述借助中间参数的SM9数字签名协同生成方法仍然成立。
5.根据权利要求1所述的借助中间参数的SM9数字签名协同生成方法,其特征是:
若PB=PA,则m个装置协同计算得到T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA的一种方法如下:
计算得到Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)- 1am]PB,取Qm=PB;
计算得到d1=((a2a3…am)(c2c3…cm)-1)mod n,d2=((a3…am)(c3…cm)-1)mod n,…,dm-1=(am(cm)-1)mod n,取dm=1;
其中,ai为计算过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
取T0=PU,v0=-h;
第1号装置在[1,n-1]中随机选择一个整数z1,计算T1=[r1]T0+[-z1]Q1,v1=(z1d1+c1v0)mod n,将T1、v1传送给第2号装置;
第i号装置接收到Ti-1、vi-1后,i=2,…,m,若检查发现Ti-1为零元,则报错,否则,在[1,n-1]中随机选择一个整数zi,计算Ti=[ri]Ti-1+[-zi]Qi,vi=(zidi+civi-1)mod n;
若i=m,则取T=Tm,计算V=[vm]PA,完成T、V计算,否则,第i号装置将Ti、vi传送给第i+1号装置,直到完成Tm、vm计算;
若由第m号装置计算V=[vm]PA,且完成T、V计算之后由第m号装置计算S=T+V,则zm的取值允许为0或[1,n-1]中的整数常数;
若PA不公开由第m号装置作为秘密保存,PU≠PA,且由第m号装置计算V=[vm]PA,则将cm作为非秘密时,以上所述计算T、V的方法以及所述借助中间参数的SM9数字签名协同生成方法仍然成立。
6.根据权利要求1所述的借助中间参数的SM9数字签名协同生成方法,其特征是:
若PB=PU,则m个装置协同计算得到T=[r1r2…rm]PU+[-F(z1,z2,…,zm)]PB,V=[F(z1,z2,…,zm)]PB+[-c1c2…cmh]PA的一种方法如下:
计算得到q1=((r2r3…rm)-1(a2a3…am))mod n,q2=((r3…rm)-1(a3…am))mod n,…,qm-1=((rm)-1am)mod n,取qm=1;
计算得到D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB,取Dm=PB;
其中,ai为计算过程中第i号装置在[1,n-1]中随机选取的整数,i=2,…,m;
取t0=1,V0=[-h]PA;
第1号装置在[1,n-1]中随机选择一个整数z1,计算t1=(r1t0-z1q1)mod n,V1=[z1]D1+[c1]V0,将t1、V1传送给第2号装置;
第i号装置接收到ti-1、Vi-1后,i=2,…,m,若检查发现ti-1为0,则报错,否则,在[1,n-1]中随机选择一个整数zi,计算ti=(riti-1-ziqi)mod n,Vi=[zi]Di+[ci]Vi-1;
若i=m,则计算T=[tm]PB,取V=Vm,完成T、V计算,否则,第i号装置将Ti、Vi传送给第i+1号装置,直到完成Tm、Vm计算;
若由第m号装置计算T=[tm]PB,且完成T、V计算之后由第m号装置计算S=T+V,则zm的取值允许为0或[1,n-1]中的整数常数;
若PA不公开由第1号装置作为秘密保存,PB≠PA,则将c1作为非秘密时,以上所述计算T、V的方法以及所述借助中间参数的SM9数字签名协同生成方法仍然成立。
7.根据权利要求4所述的借助中间参数的SM9数字签名协同生成方法,其特征是:
计算得到Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)- 1am]PB,
以及D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB的方法包括如下方案:
方案一:
第m号装置取Qm=PB,Dm=PB,在[1,n-1]中随机选取一个整数am,计算Qm-1=[(rm)-1am]Qm,Dm-1=[am(cm)-1]Dm,将Qm-1、Dm-1发送给第m-1号装置;
第i号装置接收到Qi、Di后,i=m-1,…,1,若i=1,则第1号装置将Q1、D1临时保留,完成Q1,Q2,…,Qm-1以及D1,D2,…,Dm-1的计算,否则,第i号装置在[1,n-1]中随机选取一个整数ai,计算Qi-1=[(ri)-1ai]Qi,Di-1=[ai(ci)-1]Di,将Qi、Di临时保留,将Qi-1、Di-1传送给第i-1号装置;
在计算Q1,Q2,…,Qm-1以及D1,D2,…,Dm-1的过程中,若第i号装置检查发现接收到的Qi或Di为零元,i=m-1,…,1,则报错;
方案二:
m个装置按计算Q1,Q2,…,Qm-1以及D1,D2,…,Dm-1的方案一的方式计算、保存Q1,Q2,…,Qm-1;
第m号装置取dm=1,在[1,n-1]中随机选取一个整数am,计算dm-1=(am(cm)-1)dm)mod n,将dm-1发送给第m-1号装置;
第i号装置接收到di后,i=m-1,…,1,若i=1,则第1号装置计算D1=[d1]PB,将D1临时保留,完成D1,D2,…,Dm-1的计算,否则,第i号装置计算Di=[di]PB,在[1,n-1]中随机选取一个整数ai,计算di-1=(ai(ci)-1di)mod n,将Di临时保留,将di-1传送给第i-1号装置;
在计算Q1,Q2,…,Qm-1以及D1,D2,…,Dm-1的过程中,若第i号装置检查发现接收到的Qi为零元或di为0,i=m-1,…,1,则报错;
方案三:
m个装置按计算Q1,Q2,…,Qm-1以及D1,D2,…,Dm-1的方案一的方式计算、保存D1,D2,…,Dm-1;
第m号装置取qm=1,在[1,n-1]中随机选取一个整数am,计算qm-1=((rm)-1amqm)mod n,将qm-1发送给第m-1号装置;
第i号装置接收到qi后,i=m-1,…,1,若i=1,则第1号装置计算Q1=[q1]PB,将Q1临时保留,完成Q1,Q2,…,Qm-1的计算,否则,第i号装置计算Qi=[qi]PB,在[1,n-1]中随机选取一个整数ai,计算qi-1=((ri)-1aiqi)mod n,将Qi临时保留,将qi-1传送给第i-1号装置;
在计算q1,q2,…,qm-1以及D1,D2,…,Dm-1的过程中,若第i号装置检查发现接收到的qi为0或Di为零元,i=m-1,…,1,则报错。
8.根据权利要求5所述的借助中间参数的SM9数字签名协同生成方法,其特征是:
计算得到Q1=[(r2r3…rm)-1(a2a3…am)]PB,Q2=[(r3…rm)-1(a3…am)]PB,…,Qm-1=[(rm)- 1am]PB,
以及d1=((a2a3…am)(c2c3…cm)-1)mod n,d2=((a3…am)(c3…cm)-1)mod n,…,dm-1=(am(cm)-1)mod n的一种方法如下:
第m号装置取Qm=PB,dm=1,在[1,n-1]中随机选取一个整数am,计算Qm-1=[(rm)-1am]Qm,dm-1=(am(cm)-1)dm)mod n,将Qm-1、dm-1发送给第m-1号装置;
第i号装置接收到Qi、di后,i=m-1,…,1,若i=1,则第1号装置将Q1、d1临时保留,完成Q1,Q2,…,Qm-1以及d1,d2,…,dm-1的计算,否则,第i号装置在[1,n-1]中随机选取一个整数ai,计算Qi-1=[(ri)-1ai]Qi,di-1=(ai(ci)-1di)mod n,将Qi、di临时保留,将Qi-1、di-1传送给第i-1号装置;
在计算Q1,Q2,…,Qm-1以及d1,d2,…,dm-1的过程中,若第i号装置检查发现接收到的Qi为零元或di为0,i=m-1,…,1,则报错。
9.根据权利要求6所述的借助中间参数的SM9数字签名协同生成方法,其特征是:
计算得到q1=((r2r3…rm)-1(a2a3…am))mod n,q2=((r3…rm)-1(a3…am))mod n,…,qm-1=((rm)-1am)mod n,
以及D1=[(a2a3…am)(c2c3…cm)-1]PB,D2=[(a3…am)(c3…cm)-1]PB,…,Dm-1=[am(cm)-1]PB的一种方法如下:
第m号装置取qm=1,Dm=PB,在[1,n-1]中随机选取一个整数am,计算qm-1=((rm)-1amqm)mod n,Dm-1=[am(cm)-1]Dm,将qm-1、Dm-1发送给第m-1号装置;
第i号装置接收到qi、Di后,i=m-1,…,1,若i=1,则第1号装置将q1、D1临时保留,完成q1,q2,…,qm-1以及D1,D2,…,Dm-1的计算,否则,第i号装置在[1,n-1]中随机选取一个整数ai,计算qi-1=((ri)-1aiqi)mod n,Di-1=[ai(ci)-1]Di,将qi、Di临时保留,将qi-1、Di-1传送给第i-1号装置;
在计算q1,q2,…,qm-1以及D1,D2,…,Dm-1的过程中,若第i号装置检查发现接收到的qi为0或Di为零元,i=m-1,…,1,则报错。
10.一种基于权利要求1-9中任一项所述的借助中间参数的SM9数字签名协同生成方法的SM9数字签名协同生成***,其特征是:
所述***包括m个分别标号为第1号,第2号,…,到第m号的装置,m≥2;第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按所述借助中间参数的SM9数字签名协同生成方法生成针对消息M的数字签名。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019105970581 | 2019-07-04 | ||
CN201910597058 | 2019-07-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110299998A true CN110299998A (zh) | 2019-10-01 |
CN110299998B CN110299998B (zh) | 2020-09-04 |
Family
ID=68032977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910764309.0A Active CN110299998B (zh) | 2019-07-04 | 2019-08-19 | 借助中间参数的sm9数字签名协同生成方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110299998B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880977A (zh) * | 2019-11-26 | 2020-03-13 | 武汉大学 | 一种安全高效的sm9环签名生成与验证方法 |
CN111064564A (zh) * | 2019-12-31 | 2020-04-24 | 武汉理工大学 | 一种sm9签名私钥生成和数字签名方法及***和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130073867A1 (en) * | 1999-01-11 | 2013-03-21 | Certicom Corp. | Method for strengthening the implementation of ecdsa against power analysis |
CN106549770A (zh) * | 2017-01-13 | 2017-03-29 | 武汉理工大学 | Sm2数字签名生成方法及*** |
CN107528696A (zh) * | 2017-09-27 | 2017-12-29 | 武汉理工大学 | 一种隐藏私钥秘密的数字签名生成方法及*** |
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及*** |
CN107968710A (zh) * | 2017-11-27 | 2018-04-27 | 武汉理工大学 | Sm9数字签名分离交互生成方法及*** |
CN108667619A (zh) * | 2018-05-10 | 2018-10-16 | 武汉大学 | 一种sm9数字签名的白盒实现方法与装置 |
CN109951292A (zh) * | 2019-02-20 | 2019-06-28 | 武汉理工大学 | 精简的sm9数字签名分离交互生成方法及*** |
CN109962783A (zh) * | 2019-03-20 | 2019-07-02 | 武汉理工大学 | 基于递进计算的sm9数字签名协同生成方法及*** |
-
2019
- 2019-08-19 CN CN201910764309.0A patent/CN110299998B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130073867A1 (en) * | 1999-01-11 | 2013-03-21 | Certicom Corp. | Method for strengthening the implementation of ecdsa against power analysis |
CN106549770A (zh) * | 2017-01-13 | 2017-03-29 | 武汉理工大学 | Sm2数字签名生成方法及*** |
CN107528696A (zh) * | 2017-09-27 | 2017-12-29 | 武汉理工大学 | 一种隐藏私钥秘密的数字签名生成方法及*** |
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及*** |
CN107968710A (zh) * | 2017-11-27 | 2018-04-27 | 武汉理工大学 | Sm9数字签名分离交互生成方法及*** |
CN108667619A (zh) * | 2018-05-10 | 2018-10-16 | 武汉大学 | 一种sm9数字签名的白盒实现方法与装置 |
CN109951292A (zh) * | 2019-02-20 | 2019-06-28 | 武汉理工大学 | 精简的sm9数字签名分离交互生成方法及*** |
CN109962783A (zh) * | 2019-03-20 | 2019-07-02 | 武汉理工大学 | 基于递进计算的sm9数字签名协同生成方法及*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880977A (zh) * | 2019-11-26 | 2020-03-13 | 武汉大学 | 一种安全高效的sm9环签名生成与验证方法 |
CN110880977B (zh) * | 2019-11-26 | 2021-04-27 | 武汉大学 | 一种安全高效的sm9环签名生成与验证方法 |
CN111064564A (zh) * | 2019-12-31 | 2020-04-24 | 武汉理工大学 | 一种sm9签名私钥生成和数字签名方法及***和装置 |
CN111064564B (zh) * | 2019-12-31 | 2023-03-28 | 武汉理工大学 | 一种sm9签名私钥生成和数字签名方法及***和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110299998B (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Diffie et al. | Multiuser cryptographic techniques | |
CN112106322B (zh) | 基于密码的阈值令牌生成 | |
Lempel | Cryptology in transition | |
EP0711480B1 (en) | Method and system for authenticated secure key distribution in a communication system | |
CN107819585A (zh) | Sm9数字签名协同生成方法及*** | |
CN106850229B (zh) | 基于乘积秘密分割的sm2数字签名生成方法及*** | |
CN107968710B (zh) | Sm9数字签名分离交互生成方法及*** | |
CN106603246A (zh) | 一种sm2数字签名分割生成方法及*** | |
Sun et al. | Public-key puncturable encryption: Modular and compact constructions | |
CN110213057A (zh) | 具有乘积r参数的SM9数字签名协同生成方法及*** | |
Huang et al. | A commutative encryption scheme based on ElGamal encryption | |
Boneh et al. | Hosting services on an untrusted cloud | |
CN108933650A (zh) | 数据加解密的方法及装置 | |
CN109951292A (zh) | 精简的sm9数字签名分离交互生成方法及*** | |
CN107104793A (zh) | 一种数字签名生成方法及*** | |
CN110166235A (zh) | 增强安全的sm9数字签名协同生成方法及*** | |
CN110299998A (zh) | 借助中间参数的sm9数字签名协同生成方法及*** | |
Ruan et al. | Efficient provably secure password-based explicit authenticated key agreement | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
CN110380855A (zh) | 支持多方协同增强安全的sm9数字签名生成方法及*** | |
CN110519051A (zh) | r参数和秘密双乘积的SM9签名协同生成方法及*** | |
CN110266486A (zh) | 基于乘积秘密共享的sm9数字签名简捷生成方法及*** | |
CN107528696A (zh) | 一种隐藏私钥秘密的数字签名生成方法及*** | |
Zhang et al. | Cryptanalysis and improvement of “group public key encryption scheme supporting equality test without bilinear pairings” | |
Gong et al. | A homomorphic encryption scheme with adaptive chosen ciphertext security but without random oracle |
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 |