CN110943842B - 一种sm9数字签名安全协同生成方法及系统 - Google Patents
一种sm9数字签名安全协同生成方法及系统 Download PDFInfo
- Publication number
- CN110943842B CN110943842B CN201911133574.5A CN201911133574A CN110943842B CN 110943842 B CN110943842 B CN 110943842B CN 201911133574 A CN201911133574 A CN 201911133574A CN 110943842 B CN110943842 B CN 110943842B
- Authority
- CN
- China
- Prior art keywords
- devices
- calculated
- parameter
- digital signature
- mod
- 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 description 67
- 238000004364 calculation method Methods 0.000 claims abstract description 51
- 230000006378 damage Effects 0.000 claims description 9
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 5
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003993 interaction Effects 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/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)
- Storage Device Security (AREA)
Abstract
装置i有秘密dAi,i=1,…,m,且dA1+…+dAm=dA,dA为用户SM9私钥;当需用dA对消息M进行签名时,计算得到w=gB^(r1r2…rm),其中^是幂运算,gB=e(P1,Ppub)^b,b是[1,n‑1]内的保密或非保密整数,ri是装置i在[1,n‑1]内随机选择的整数,n为SM9群的阶;计算h=H2(M||w,n);计算得到Qi=[m‑1br1r2…rm]dA或Qi=[br1r2…rm]dAi,i=1,…,m,且Qi由装置i最后使用ri计算得到;装置i计算Si=Qi+[‑h]dAi,i=1,…,m;一个装置计算S=S1+S2+…+Sm;则(h,S)是针对消息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数字签名安全协同生成方法及相应的系统。
在以下对本发明技术方案的描述中,若P、Q是加法群G1、G2中的元,则P+Q表示P、Q在加法群上的加,P-Q表示P加上Q的逆元(加法逆元),[k]P表示k与P的数乘(标量乘)或k倍点加,即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号装置保存有秘密dAi,i=1,2,…,m,且dA1+dA2+…+dAm=dA,其中dA为用户的SM9标识私钥;
初始化阶段计算有gB=g^b,其中b是[1,n-1]内的对m个装置保密或不保密的整数,n为SM9密码算法中群G1、G2、GT的阶(为素数),^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的协同生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这m个装置的密码应用程序、系统或密码模块,或者m个装置之一中的密码应用程序、系统):
首先,m个装置通过交互计算得到w=gB^(r1r2…rm),其中,ri是计算过程中第i号装置在[1,n-1]区间内随机选择的整数,ri称为第i号装置的r参数,i=1,2,…,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个装置在不暴露各自的r参数的情况下协同计算得到Qi=[m-1br1r2…rm]dA,i=1,2,…,m,其中m-1是m的模n乘法逆,或者计算得到Qi=[br1r2…rm]dAi,i=1,2,…,m;在所述Qi的计算过程中,由第i号装置最后使用自己的r参数ri参与Qi的计算,i=1,2,…,m;
第i号装置计算Si=Qi+[-h]dAi,i=1,2,…,m;
最后,m个装置中的一个装置或之外的一个装置计算S=S1+S2+…+Sm;
则(h,S)是针对消息M的数字签名;
或者,
在计算得到Qi后,i=1,2,…,m,第i号装置计算Si=[h-1]Qi-dAi,其中h-1为h的模n乘法逆;
最后,m个装置中的一个装置或之外的一个装置计算ST=S1+S2+…+Sm,S=[h]ST;
则(h,S)是针对消息M的数字签名。
(此时对应于Qi=[m-1br1r2…rm]dA,
S=[mm-1br1r2…rm]dA+[-h](dA1+dA2+…+dAm)=[(r1r2…rm)b-h]dA,
对应用Qi=[br1r2…rm]dAi,
S=[br1r2…rm](dA1+dA2+…+dAm)+[-h](dA1+dA2+…+dAm)=[(r1r2…rm)b-h]dA)
对于以上所述SM9数字签名安全协同生成方法,若在以上计算过程中不检查w与g^h是否相等,则计算得到S后,若检查发现S为零元,则m个装置重新进行协同计算,直到S不为零元。
对于以上所述SM9数字签名安全协同生成方法,m个装置计算得到w=gB^(r1r2…rm)的方法包括(不是全部可能的方式):
第1号装置计算g1=gB^r1,将g1发送第2号装置;
第i号装置接收到gi-1后,i=2,…,m,计算gi=gi-1^ri;
若i=m,则取w=gm,完成计算,否则,将第i号装置将gi传送给第i+1号装置;
或者,
第m号装置计算gm=gB^rm,将gm发送第m-1号装置;
第i号装置接收gi+1到后,i=m-1,…,1,计算gi=gi+1^ri;
若i=1,则取w=g1,完成计算,否则,将第i号装置将gi传送给第i-1号装置。
对于以上所述SM9数字签名安全协同生成方法,若b是[1,n-1]内对m个装置保密的整数,则m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[m-1br1r2…rm]dA,i=1,2,…,m,的一种方法如下:
初始化阶段由知道dA的装置计算有PB=[(m-1b)mod n]dA,并由知道dA的装置将PB交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数与PB进行数乘(标量乘)运算,计算得到Qi,1;
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置(第i号装置之外的m-1个装置中的计算Qi,1装置之外的一个装置);
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1(即Qi,m-1)提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[ri]Qi,m-1。
对于以上所述SM9数字签名安全协同生成方法,若b是[1,n-1]内的对m个装置保密的整数,则m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[br1r2…rm]dAi,i=1,2,…,m,的一种方法如下:
初始化阶段由知道dA的装置计算有PBi=[b]dAi,i=1,2,…,m,并由知道dA的装置将PBi交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数与PBi进行数乘(标量乘)运算,计算得到Qi,1;
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置(第i号装置之外的m-1个装置中的计算Qi,1装置之外的一个装置);
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1(即Qi,m-1)提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[ri]Qi,m-1。
对于以上所述SM9数字签名安全协同生成方法,在b对m个装置保密或不保密的情况下都适用的一种m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[m-1br1r2…rm]dA,i=1,2,…,m,的方法如下:
初始化阶段知道dA的装置在[1,n-1]内随机选择m个整数u1,u2,…,um分别作为第1号,第2号,…,第m号装置的秘密,其中ui是第i号装置的秘密,ui称为第i号装置的u参数,i=1,2,…,m;
初始化阶段由知道dA的装置计算有PB=[(m-1b((u1u2…um)mod n)-1)mod n]dA,其中((u1u2…um)mod n)-1是(u1u2…um)mod n的模n乘法逆,并由知道dA的装置将PB交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数和u参数的模n乘积与PB进行数乘(标量乘)运算,计算得到Qi,1(若是第p号装置计算Qi,1,则Qi,1=[(rpup)mod n]PB);
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置(第i号装置之外的m-1个装置中的计算Qi,1装置之外的一个装置);
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数和u参数的模n乘积与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1(即Qi,m-1)提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数和u参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数和u参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[(riui)mod n]Qi,m-1。
对于以上所述SM9数字签名安全协同生成方法,在b对m个装置保密或不保密的情况下都适用的一种m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[br1r2…rm]dAi,i=1,2,…,m,的方法如下:
初始化阶段知道dA的装置在[1,n-1]内随机选择m个整数u1,u2,…,um分别作为第1号,第2号,…,第m号装置的秘密,其中ui是第i号装置的秘密,ui称为第i号装置的u参数,i=1,2,…,m;
初始化阶段由知道dA的装置计算有PBi=[(b((u1u2…um)mod n)-1)mod n]dAi,i=1,2,…,m,其中((u1u2…um)mod n)-1是(u1u2…um)mod n的模n乘法逆,并由知道dA的装置将PBi交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数和u参数的模n乘积与PBi进行数乘(标量乘)运算,计算得到Qi,1(若是第p号装置计算Qi,1,则Qi,1=[(rpup)mod n]PBi);
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置(第i号装置之外的m-1个装置中的计算Qi,1装置之外的一个装置);
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数和u参数的模n乘积与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1(即Qi,m-1)提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数和u参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数和u参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[(riui)mod n]Qi,m-1。
对于以上所述SM9数字签名安全协同生成方法,在初始化阶段,设置dAi,i=1,2,…,m,的方式包括:
方式一:
知道用户SM9私钥dA的装置在[1,n-1]内随机选择m个整数c1,c2,…cm,计算c=(c1+c2+…+cm)mod n,若c=0,则重新选择c1,c2,…cm直到c≠0;
计算得到dAi=[cic-1]dA,i=1,2,…,m;
将dAi交由第i号装置保存,i=1,2,...,m,将dA、c、ci,i=1,2,…,m销毁;
方式二:
知道用户SM9私钥dA的装置在[1,n-1]内随机选择m-1个整数c1,…cm-1,若(c1+…+cm-1)mod n=1,则重新选择c1,…cm-1直到(c1+…+cm-1)mod n≠1;
计算得到dAi=[ci]dA,i=1,…,m-1;
计算得到dAm=[1-(c1+…+cm-1)]dA;
将dAi交由第i号装置保存,i=1,2,...,m,将dA、ci,i=1,…,m-1销毁;
方式三:
知道用户SM9私钥dA的装置在[1,n-1]内随机选择m-1个整数c1,…cm-1;
计算得到dAi=[ci]P1,i=1,…,m-1;
计算得到dAm=dA-[c1+…+cm-1]P1;
若dAm为零元则报错(若是私钥生成器进行初始化,则之后重新选择ci,重新计算dAi=[ci]P1,i=1,…,m-1,dAm=dA-[c1+…+cm-1]P1;若是其他装置,则主密钥s被暴露,报错后需采取措施,发生这个的概率极小);
将dAi交由第i号装置保存,i=1,2,...,m,将dA、ci,i=1,…,m-1销毁。
对于以上所述SM9数字签名安全协同生成方法,若b是对m个装置保密的整数,则b是初始化阶段由进行初始化的装置在[1,n-1]内随机选择的一个整数,或者是一个等同于在[1,n-1]内随机选择的整数的随机数(比如,a是[1,n-1]内随机选择的整数,则ma是一个等同于在[1,n-1]内随机选择的整数的随机数),b在完成初始化处理后销毁;
若b是对m个装置不保密的整数,则b是在[1,n-1]内任意选择的一个整数;所述任意选择包括由实施者主观任意选择,由实施者固定选择(比如固定选择1作为b),或者初始化阶段由进行初始化的装置随机选择。
(注:这里选取b、进行初始化的装置通常是知道dA的装置)
在以上所述SM9数字签名安全协同生成方法的基础上可构建SM9数字签名安全协同生成系统,系统包括m个分别标号为第1号,第2号,…,第m号的装置,m≥2;第i号装置保存有秘密dAi,i=1,2,…,m,且dA1+dA2+…+dAm=dA,其中dA为用户的SM9私钥;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按所述SM9数字签名安全协同生成方法生成针对消息M的数字签名。
从以上描述可以看到,通过本发明的方法和系统,当需要使用用户标识私钥dA对消息进行数字签名时,多个装置可以通过交互协同生成针对消息的数字签名,且协同计算过程采用的是乘积r参数,从而具有较高的安全性。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例仅是本发明列举的几个可能的实施例,不代表全部可能的实施例,不作为对本发明的限定。
实施例1、
此实施例有m个分别标号为第1号,第2号,…,第m号的装置,m≥2;
第i号装置保存有秘密dAi,i=1,2,…,m,且dA1+dA2+…+dAm=dA,其中dA为用户的SM9标识私钥;
初始化阶段计算有gB=g^b,其中b是[1,n-1]内的对m个装置保密的整数,n为SM9密码算法中群G1、G2、GT的阶(为素数),^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的协同生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这m个装置的密码应用程序、系统或密码模块,或者m个装置之一中的密码应用程序、系统):
首先,m个装置通过交互计算得到w=gB^(r1r2…rm),其中,ri是计算过程中第i号装置在[1,n-1]区间内随机选择的整数,ri称为第i号装置的r参数,i=1,2,…,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个装置在不暴露各自的r参数的情况下协同计算得到Qi=[m-1br1r2…rm]dA,i=1,2,…,m,其中m-1是m的模n乘法逆,且在所述Qi的计算过程中,由第i号装置最后使用自己的r参数ri参与Qi的计算,i=1,2,…,m;
第i号装置计算Si=Qi+[-h]dAi,i=1,2,…,m;
最后,m个装置中的一个装置或之外的一个装置计算S=S1+S2+…+Sm;
则(h,S)是针对消息M的数字签名。
(此时S=[mm-1br1r2…rm]dA+[-h](dA1+dA2+…+dAm)=[(r1r2…rm)b-h]dA)
对于此实施例,若在以上计算过程中不检查w与g^h是否相等,则计算得到S后,若检查发现S为零元,则m个装置重新进行协同计算,直到S不为零元。
此实施例中,m个装置计算得到w=gB^(r1r2…rm)的方法包括(不是全部可能的方式):
第1号装置计算g1=gB^r1,将g1发送第2号装置;
第i号装置接收到gi-1后,i=2,…,m,计算gi=gi-1^ri;
若i=m,则取w=gm,完成计算,否则,将第i号装置将gi传送给第i+1号装置;
或者,
第m号装置计算gm=gB^rm,将gm发送第m-1号装置;
第i号装置接收gi+1到后,i=m-1,…,1,计算gi=gi+1^ri;
若i=1,则取w=g1,完成计算,否则,将第i号装置将gi传送给第i-1号装置。
此实施例中,m个装置按如下方法在不暴露各自的r参数的情况下协同计算得到Qi=[m-1br1r2…rm]dA,i=1,2,…,m:
初始化阶段由知道dA的装置计算有PB=[(m-1b)mod n]dA,并由知道dA的装置将PB交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数与PB进行数乘(标量乘)运算,计算得到Qi,1;
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置(第i号装置之外的m-1个装置中的计算Qi,1装置之外的一个装置);
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1(即Qi,m-1)提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[ri]Qi,m-1。
对于此实施例,在初始化阶段,dAi,i=1,2,…,m,按如下方式之一设置:
dAi设置方式一:
知道用户SM9私钥dA的装置在[1,n-1]内随机选择m个整数c1,c2,…cm,计算c=(c1+c2+…+cm)mod n,若c=0,则重新选择c1,c2,…cm直到c≠0;
计算得到dAi=[cic-1]dA,i=1,2,…,m;
将dAi交由第i号装置保存,i=1,2,...,m,将dA、c、ci,i=1,2,…,m销毁;
dAi设置方式二:
知道用户SM9私钥dA的装置在[1,n-1]内随机选择m-1个整数c1,…cm-1,若(c1+…+cm-1)mod n=1,则重新选择c1,…cm-1直到(c1+…+cm-1)modn≠1;
计算得到dAi=[ci]dA,i=1,…,m-1;
计算得到dAm=[1-(c1+…+cm-1)]dA;
将dAi交由第i号装置保存,i=1,2,...,m,将dA、ci,i=1,…,m-1销毁;
dAi设置方式三:
知道用户SM9私钥dA的装置在[1,n-1]内随机选择m-1个整数c1,…cm-1;
计算得到dAi=[ci]P1,i=1,…,m-1;
计算得到dAm=dA-[c1+…+cm-1]P1;
若dAm为零元则报错(若是私钥生成器进行初始化,则之后重新选择ci,重新计算dAi=[ci]P1,i=1,…,m-1,dAm=dA-[c1+…+cm-1]P1;若是其他装置,则主密钥s被暴露,报错后需采取措施,发生这个的概率极小);
将dAi交由第i号装置保存,i=1,2,...,m,将dA、ci,i=1,…,m-1销毁。
此实施例中,b是初始化阶段由进行初始化的装置在[1,n-1]内随机选择的一个整数,或者是一个等同于在[1,n-1]内随机选择的整数的随机数(比如,a是[1,n-1]内随机选择的整数,则ma是一个等同于在[1,n-1]内随机选择的整数的随机数),b在完成初始化处理后销毁。
实施例2、
此实施例与实施例1的差别在于,在计算得到Qi后,i=1,2,…,m,第i号装置计算Si=[h-1]Qi-dAi,其中h-1为h的模n乘法逆;最后,m个装置中的一个装置或之外的一个装置计算ST=S1+S2+…+Sm,S=[h]ST,从而得到针对消息M的数字签名(h,S)。
(此时S=[mm-1br1r2…rm]dA+[-h](dA1+dA2+…+dAm)=[(r1r2…rm)b-h]dA)
实施例3、
此实施例与实施例1的差别在于,在计算得到满足w≠g^h的h后,m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[br1r2…rm]dAi,i=1,2,…,m,且在所述Qi的计算过程中,由第i号装置最后使用自己的r参数ri参与Qi的计算,i=1,2,…,m,其中,m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[br1r2…rm]dAi,i=1,2,…,m,的方法如下:
初始化阶段由知道dA的装置计算有PBi=[b]dAi,i=1,2,…,m,并由知道dA的装置将PBi交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数与PBi进行数乘(标量乘)运算,计算得到Qi,1;
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置(第i号装置之外的m-1个装置中的计算Qi,1装置之外的一个装置);
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1(即Qi,m-1)提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[ri]Qi,m-1。
计算得到Qi=[br1r2…rm]dAi后,其他操作处理与实施例1相同。
(S=[br1r2…rm](dA1+dA2+…+dAm)+[-h](dA1+dA2+…+dAm)=[(r1r2…rm)b-h]dA)
实施例4、
此实施例与实施例3的差别在于,在计算得到Qi后,i=1,2,…,m,第i号装置计算Si=[h-1]Qi-dAi,其中h-1为h的模n乘法逆;最后,m个装置中的一个装置或之外的一个装置计算ST=S1+S2+…+Sm,S=[h]ST,从而得到针对消息M的数字签名(h,S)。
(S=[br1r2…rm](dA1+dA2+…+dAm)+[-h](dA1+dA2+…+dAm)=[(r1r2…rm)b-h]dA)
实施例5、
此实施例与实施例1的差别在于:1)其中b不必是[1,n-1]内的对m个装置保密的整数;2)m个装置在不暴露各自的r参数的情况下按如下方式协同计算得到Qi=[m-1br1r2…rm]dA,i=1,2,…,m:
初始化阶段知道dA的装置在[1,n-1]内随机选择m个整数u1,u2,…,um分别作为第1号,第2号,…,第m号装置的秘密,其中ui是第i号装置的秘密,ui称为第i号装置的u参数,i=1,2,…,m;
初始化阶段由知道dA的装置计算有PB=[(m-1b((u1u2…um)mod n)-1)mod n]dA,其中((u1u2…um)mod n)-1是(u1u2…um)mod n的模n乘法逆,并由知道dA的装置将PB交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数和u参数的模n乘积与PB进行数乘(标量乘)运算,计算得到Qi,1(若是第p号装置计算Qi,1,则Qi,1=[(rpup)mod n]PB);
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置(第i号装置之外的m-1个装置中的计算Qi,1装置之外的一个装置);
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数和u参数的模n乘积与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1(即Qi,m-1)提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数和u参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数和u参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[(riui)mod n]Qi,m-1。
计算得到Qi=[m-1br1r2…rm]dA后,其他操作处理与实施例1相同。
此实施例中,b既可以是[1,n-1]内的对m个装置保密的整数,也可以是[1,n-1]内的对m个装置不保密的整数;若b是[1,n-1]内的对m个装置保密的整数,则其选取同实施例1;若b是[1,n-1]内的对m个装置不保密的整数,则b是在[1,n-1]内任意选择的一个整数;所述任意选择包括由实施者主观任意选择,由实施者固定选择(比如固定选择1作为b),或者初始化阶段由进行初始化的装置随机选择。
(此时S=[mm-1br1r2…rm]dA+[-h](dA1+dA2+…+dAm)=[(r1r2…rm)b-h]dA)
实施例6、
此实施例与实施例5的差别在于,在计算得到Qi后,i=1,2,…,m,第i号装置计算Si=[h-1]Qi-dAi,其中h-1为h的模n乘法逆;最后,m个装置中的一个装置或之外的一个装置计算ST=S1+S2+…+Sm,S=[h]ST,从而得到针对消息M的数字签名(h,S)。
(此时S=[mm-1br1r2…rm]dA+[-h](dA1+dA2+…+dAm)=[(r1r2…rm)b-h]dA)
实施例7、
此实施例与实施例5的差别在于,在计算得到满足w≠g^h的h后,m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[br1r2…rm]dAi,i=1,2,…,m,且在所述Qi的计算过程中,由第i号装置最后使用自己的r参数ri参与Qi的计算,i=1,2,…,m,其中,m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[br1r2…rm]dAi,i=1,2,…,m,的方法如下:
初始化阶段知道dA的装置在[1,n-1]内随机选择m个整数u1,u2,…,um分别作为第1号,第2号,…,第m号装置的秘密,其中ui是第i号装置的秘密,ui称为第i号装置的u参数,i=1,2,…,m;
初始化阶段由知道dA的装置计算有PBi=[(b((u1u2…um)mod n)-1)mod n]dAi,i=1,2,…,m,其中((u1u2…um)mod n)-1是(u1u2…um)mod n的模n乘法逆,并由知道dA的装置将PBi交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数和u参数的模n乘积与PBi进行数乘(标量乘)运算,计算得到Qi,1(若是第p号装置计算Qi,1,则Qi,1=[(rpup)mod n]PBi);
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置(第i号装置之外的m-1个装置中的计算Qi,1装置之外的一个装置);
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数和u参数的模n乘积与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1(即Qi,m-1)提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数和u参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数和u参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[(riui)mod n]Qi,m-1。
计算得到Qi=[m-1br1r2…rm]dA后,其他操作处理与实施例5相同。
(S=[br1r2…rm](dA1+dA2+…+dAm)+[-h](dA1+dA2+…+dAm)=[(r1r2…rm)b-h]dA)
实施例8、
此实施例与实施例7的差别在于,在计算得到Qi后,i=1,2,…,m,第i号装置计算Si=[h-1]Qi-dAi,其中h-1为h的模n乘法逆;最后,m个装置中的一个装置或之外的一个装置计算ST=S1+S2+…+Sm,S=[h]ST,从而得到针对消息M的数字签名(h,S)。
(S=[br1r2…rm](dA1+dA2+…+dAm)+[-h](dA1+dA2+…+dAm)=[(r1r2…rm)b-h]dA)
在所述SM9数字签名安全协同生成方法的基础上可实施构建一个SM9数字签名安全协同生成系统,系统包括m个分别标号为第1号,第2号,…,第m号的装置,m≥2;第i号装置保存有秘密dAi,i=1,2,…,m,且dA1+dA2+…+dAm=dA,其中dA为用户的SM9私钥;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置通过实施所述SM9数字签名安全协同生成方法生成针对消息M的数字签名。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种SM9数字签名安全协同生成方法,其特征是:
所述方法涉及m个分别标号为第1号,第2号,…,第m号的装置,m≥2;
第i号装置保存有秘密dAi,i=1,2,…,m,且dA1+dA2+…+dAm=dA,其中dA为用户的SM9标识私钥;
初始化阶段计算有gB=g^b,其中b是[1,n-1]内的对m个装置保密或不保密的整数,n为SM9密码算法中群G1、G2、GT的阶,^是幂运算,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的协同生成:
首先,m个装置通过交互计算得到w=gB^(r1r2…rm),其中,ri是计算过程中第i号装置在[1,n-1]区间内随机选择的整数,ri称为第i号装置的r参数,i=1,2,…,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个装置在不暴露各自的r参数的情况下协同计算得到Qi=[m-1br1r2…rm]dA,i=1,2,…,m,其中m-1是m的模n乘法逆,或者计算得到Qi=[br1r2…rm]dAi,i=1,2,…,m;在所述Qi的计算过程中,由第i号装置最后使用自己的r参数ri参与Qi的计算,i=1,2,…,m;
第i号装置计算Si=Qi+[-h]dAi,i=1,2,…,m;
最后,m个装置中的一个装置或之外的一个装置计算S=S1+S2+…+Sm;
则(h,S)是针对消息M的数字签名;
或者,
在计算得到Qi后,i=1,2,…,m,第i号装置计算Si=[h-1]Qi-dAi,其中h-1为h的模n乘法逆;
最后,m个装置中的一个装置或之外的一个装置计算ST=S1+S2+…+Sm,S=[h]ST;
则(h,S)是针对消息M的数字签名。
2.根据权利要求1所述的SM9数字签名安全协同生成方法,其特征是:
若在以上计算过程中不检查w与g^h是否相等,则计算得到S后,若检查发现S为零元,则m个装置重新进行协同计算,直到S不为零元。
3.根据权利要求1所述的SM9数字签名安全协同生成方法,其特征是:
m个装置计算得到w=gB^(r1r2…rm)的方法包括:
第1号装置计算g1=gB^r1,将g1发送第2号装置;
第i号装置接收到gi-1后,i=2,…,m,计算gi=gi-1^ri;
若i=m,则取w=gm,完成计算,否则,将第i号装置将gi传送给第i+1号装置;
或者,
第m号装置计算gm=gB^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数字签名安全协同生成方法,其特征是:
若b是[1,n-1]内对m个装置保密的整数,则m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[m-1br1r2…rm]dA,i=1,2,…,m,的一种方法如下:
初始化阶段由知道dA的装置计算有PB=[(m-1b)mod n]dA,并由知道dA的装置将PB交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数与PB进行数乘运算,计算得到Qi,1;
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置;
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[ri]Qi,m-1。
5.根据权利要求1所述的SM9数字签名安全协同生成方法,其特征是:
若b是[1,n-1]内的对m个装置保密的整数,则m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[br1r2…rm]dAi,i=1,2,…,m,的一种方法如下:
初始化阶段由知道dA的装置计算有PBi=[b]dAi,i=1,2,…,m,并由知道dA的装置将PBi交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数与PBi进行数乘运算,计算得到Qi,1;
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置;
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[ri]Qi,m-1。
6.根据权利要求1所述的SM9数字签名安全协同生成方法,其特征是:
在b对m个装置保密或不保密的情况下都适用的一种m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[m-1br1r2…rm]dA,i=1,2,…,m,的方法如下:
初始化阶段知道dA的装置在[1,n-1]内随机选择m个整数u1,u2,…,um分别作为第1号,第2号,…,第m号装置的秘密,其中ui是第i号装置的秘密,ui称为第i号装置的u参数,i=1,2,…,m;
初始化阶段由知道dA的装置计算有PB=[(m-1b((u1u2…um)mod n)-1)mod n]dA,其中((u1u2…um)mod n)-1是(u1u2…um)mod n的模n乘法逆,并由知道dA的装置将PB交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数和u参数的模n乘积与PB进行数乘运算,计算得到Qi,1;
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置;
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数和u参数的模n乘积与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数和u参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数和u参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[(riui)mod n]Qi,m-1。
7.根据权利要求1所述的SM9数字签名安全协同生成方法,其特征是:
在b对m个装置保密或不保密的情况下都适用的一种m个装置在不暴露各自的r参数的情况下协同计算得到Qi=[br1r2…rm]dAi,i=1,2,…,m,的方法如下:
初始化阶段知道dA的装置在[1,n-1]内随机选择m个整数u1,u2,…,um分别作为第1号,第2号,…,第m号装置的秘密,其中ui是第i号装置的秘密,ui称为第i号装置的u参数,i=1,2,…,m;
初始化阶段由知道dA的装置计算有PBi=[(b((u1u2…um)mod n)-1)mod n]dAi,i=1,2,…,m,其中((u1u2…um)mod n)-1是(u1u2…um)mod n的模n乘法逆,并由知道dA的装置将PBi交由需要使用的装置保存;
当需要计算Qi时,第i号装置之外的m-1个装置中的一个装置使用自己的r参数和u参数的模n乘积与PBi进行数乘运算,计算得到Qi,1;
若m=2,则计算得到Qi,1的装置将Qi,1提交给第i号装置,否则,计算得到Qi,1的装置将Qi,1提交给第i号装置之外的m-1个装置中的一个其他装置;
接收到Qi,t的装置,t=1,…,m-2,使用自己的r参数和u参数的模n乘积与Qi,t进行数乘运算,计算得到Qi,t+1;
若t=m-2,则计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置,否则,计算得到Qi,t+1的装置将Qi,t+1提交给第i号装置之外的m-1个装置中的一个尚未使用自己的r参数和u参数进行Qi,j计算的装置,j=1,…,t+1,直到第i号装置之外的m-1个装置中的所有装置都使用了自己的r参数和u参数进行了Qi,q计算,q=1,…,或m-1;
第i号装置接收到Qi,m-1后,检查Qi,m-1是否为零元,若是,则报错,否则,计算Qi=[(riui)mod n]Qi,m-1。
8.根据权利要求1所述的SM9数字签名安全协同生成方法,其特征是:
在初始化阶段,设置dAi,i=1,2,…,m,的方式包括:
方式一:
知道用户SM9私钥dA的装置在[1,n-1]内随机选择m个整数c1,c2,…cm,计算c=(c1+c2+…+cm)mod n,若c=0,则重新选择c1,c2,…cm直到c≠0;
计算得到dAi=[cic-1]dA,i=1,2,…,m;
将dAi交由第i号装置保存,i=1,2,...,m,将dA、c、ci,i=1,2,…,m销毁;
方式二:
知道用户SM9私钥dA的装置在[1,n-1]内随机选择m-1个整数c1,…cm-1,若(c1+…+cm-1)mod n=1,则重新选择c1,…cm-1直到(c1+…+cm-1)mod n≠1;
计算得到dAi=[ci]dA,i=1,…,m-1;
计算得到dAm=[1-(c1+…+cm-1)]dA;
将dAi交由第i号装置保存,i=1,2,...,m,将dA、ci,i=1,…,m-1销毁;
方式三:
知道用户SM9私钥dA的装置在[1,n-1]内随机选择m-1个整数c1,…cm-1;
计算得到dAi=[ci]P1,i=1,…,m-1;
计算得到dAm=dA-[c1+…+cm-1]P1;
若dAm为零元则报错;
将dAi交由第i号装置保存,i=1,2,...,m,将dA、ci,i=1,…,m-1销毁。
9.根据权利要求1所述的SM9数字签名安全协同生成方法,其特征是:
若b是对m个装置保密的整数,则b是初始化阶段由进行初始化的装置在[1,n-1]内随机选择的一个整数,或者是一个等同于在[1,n-1]内随机选择的整数的随机数,b在完成初始化处理后销毁;
若b是对m个装置不保密的整数,则b是在[1,n-1]内任意选择的一个整数;所述任意选择包括由实施者主观任意选择,由实施者固定选择,或者初始化阶段由进行初始化的装置随机选择。
10.一种基于权利要求1-9中任一项所述的SM9数字签名安全协同生成方法的SM9数字签名安全协同生成系统,其特征是:
所述系统包括m个分别标号为第1号,第2号,…,第m号的装置,m≥2;第i号装置保存有秘密dAi,i=1,2,…,m,且dA1+dA2+…+dAm=dA,其中dA为用户的SM9私钥;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按所述SM9数字签名安全协同生成方法生成针对消息M的数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911133574.5A CN110943842B (zh) | 2019-11-18 | 2019-11-18 | 一种sm9数字签名安全协同生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911133574.5A CN110943842B (zh) | 2019-11-18 | 2019-11-18 | 一种sm9数字签名安全协同生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110943842A CN110943842A (zh) | 2020-03-31 |
CN110943842B true CN110943842B (zh) | 2023-03-28 |
Family
ID=69907825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911133574.5A Active CN110943842B (zh) | 2019-11-18 | 2019-11-18 | 一种sm9数字签名安全协同生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110943842B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166235A (zh) * | 2019-05-21 | 2019-08-23 | 武汉理工大学 | 增强安全的sm9数字签名协同生成方法及系统 |
CN110213057A (zh) * | 2019-05-23 | 2019-09-06 | 武汉理工大学 | 具有乘积r参数的SM9数字签名协同生成方法及系统 |
CN110401524A (zh) * | 2019-08-27 | 2019-11-01 | 武汉理工大学 | 一种借助同态加密的包含秘密的数的协同生成方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10348724B2 (en) * | 2014-04-07 | 2019-07-09 | Barco N.V. | Ad hoc one-time pairing of remote devices using online audio fingerprinting |
-
2019
- 2019-11-18 CN CN201911133574.5A patent/CN110943842B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166235A (zh) * | 2019-05-21 | 2019-08-23 | 武汉理工大学 | 增强安全的sm9数字签名协同生成方法及系统 |
CN110213057A (zh) * | 2019-05-23 | 2019-09-06 | 武汉理工大学 | 具有乘积r参数的SM9数字签名协同生成方法及系统 |
CN110401524A (zh) * | 2019-08-27 | 2019-11-01 | 武汉理工大学 | 一种借助同态加密的包含秘密的数的协同生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110943842A (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107819585B (zh) | Sm9数字签名协同生成方法及系统 | |
US8429408B2 (en) | Masking the output of random number generators in key generation protocols | |
CN1326351C (zh) | 有限域离散对数密码系统的割圆多项式结构 | |
US8549299B2 (en) | Accelerated key agreement with assisted computations | |
US9571274B2 (en) | Key agreement protocol | |
CN107968710B (zh) | Sm9数字签名分离交互生成方法及系统 | |
CN110213057B (zh) | 具有乘积r参数的SM9数字签名协同生成方法及系统 | |
CN106850229B (zh) | 基于乘积秘密分割的sm2数字签名生成方法及系统 | |
CN107294696B (zh) | 针对Leveled全同态密钥分配方法 | |
CN109951292B (zh) | 精简的sm9数字签名分离交互生成方法及系统 | |
CN109962783B (zh) | 基于递进计算的sm9数字签名协同生成方法及系统 | |
CN111030801A (zh) | 一种多方分布式的sm9密钥生成、密文解密方法与介质 | |
CN110166235B (zh) | 增强安全的sm9数字签名协同生成方法及系统 | |
CN110855425A (zh) | 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 | |
CN112699394A (zh) | 一种基于sm9算法的密钥应用方法 | |
US20160352689A1 (en) | Key agreement protocol | |
CN110519051B (zh) | r参数和秘密双乘积的SM9签名协同生成方法及系统 | |
CN110380855B (zh) | 支持多方协同增强安全的sm9数字签名生成方法及系统 | |
CN110299998B (zh) | 借助中间参数的sm9数字签名协同生成方法及系统 | |
CN110266486B (zh) | 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 | |
CN110401524B (zh) | 一种借助同态加密的包含秘密的数的协同生成方法及系统 | |
EP2395698B1 (en) | Implicit certificate generation in the case of weak pseudo-random number generators | |
CN110557260B (zh) | 一种sm9数字签名生成方法及装置 | |
EP2493112B1 (en) | Accelerated key agreement with assisted computations | |
CN110943842B (zh) | 一种sm9数字签名安全协同生成方法及系统 |
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 |