CN107819585B - Sm9数字签名协同生成方法及系统 - Google Patents
Sm9数字签名协同生成方法及系统 Download PDFInfo
- Publication number
- CN107819585B CN107819585B CN201711147604.9A CN201711147604A CN107819585B CN 107819585 B CN107819585 B CN 107819585B CN 201711147604 A CN201711147604 A CN 201711147604A CN 107819585 B CN107819585 B CN 107819585B
- Authority
- CN
- China
- Prior art keywords
- devices
- digital signature
- generation method
- calculating
- secret
- 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
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
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
发明涉及SM9数字签名协同生成方法:m个装置分别有整数秘密ci,i=1,…,m,m≥2;预先计算PA=[(c1c2…cm)‑1]dA,gc=g^((c1c2…cm)‑1),dA是用户私钥,g=e(P1,Ppub),^表示幂运算;当需用dA针对消息M数字签名时,装置1任选择整数r1计算g1=gc^r1;装置i,i=2,…,m,依次任选整数ri计算gi=(gi‑1^ci)(gc^ri);装置m计算h=H2(M||gm,n);装置1计算S1=[(r1‑c1h)]PA;装置i,i=2,…,m,依次计算Si=[ci]Si‑1+[ri]PA;(h,Sm)即为生成的数字签名。
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数字签名协同生成方法及系统。
针对本发明的目的,本发明提出的技术方案包括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相加的结果的加法逆元);
省略号“...”,表示多个同样(类型)的数据项或多个同样的运算;
若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数字签名协同生成方法包括两个方案,具体如下。
方案一、
本发明的SM9数字签名协同生成方法的方案一涉及m个装置,其中m≥2;
m个装置分别标号为第1号到第m号装置;
m个装置分别保存有[1,n-1]区间内的整数秘密c1,c2,…,cm,其中n为SM9密码算法中群G1、G2、GT的阶(为素数),ci是第i号装置保存的秘密,i=1,…,m;
在初始化阶段预先计算得到:
PA=[(c1c2…cm)-1]dA,
gc=g^((c1c2…cm)-1),
其中,dA是用户的身份标识IDA所对应的SM9标识私钥(dA是群G1中的元),(c1c2…cm)-1是(c1c2…cm)的模n乘法逆(即(c1c2…cm)mod n的模n乘法逆),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这m个装置的密码应用程序、系统或密码模块,或者m个装置之一中的密码应用程序、系统):
第1号装置在[1,n-1]区间内随机选择一整数r1,计算g1=gc^r1或者g1=gc^(c1r1);
第1号装置将g1传送给下一个装置即第2号装置;
第i号装置接收到gi-1后,i=2,…,m,在[1,n-1]区间内随机选择一整数ri,计算gi=(gi-1^ci)(gc^ri)或者gi=(gi-1(gc^ri))^ci;
若i=m,则转入计算h,否则,第i号装置将gi传送给下一装置即第i+1号装置,直到第m号装置完成gm的计算;
(各装置计算gi所采用的计算式是独立的,不必相同)
第m号装置取w=gm;
m个装置中的一个装置(通常是第1号或第m号装置):
计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示将w转化成字串后与M的字串合并,n为SM9密码算法中群G1、G2、GT的阶;
检查w与g^h是否相等,若w=g^h,则重新进行g1,…,gm的计算,直到w≠g^h;
之后,第1号装置按如下计算S1:
若第1号装置之前计算g1采用的公式是g1=gc^r1,则:
S1=[r1-c1h]PA;
若第1号装置之前计算g1采用的公式是g1=gc^(c1r1),则:
S1=[c1r1-c1h]PA;
(此时的r1与计算g1时的r1相同)
第1号装置将S1发送给下一个装置即第2号装置;
第i号装置接收到Si-1后,i=2,…,m,按如下计算Si:
若第i号装置之前计算gi采用的公式是gi=(gi-1^ci)(gc^ri),则:
Si=[ci]Si-1+[ri]PA;
若第i号装置之前计算gi采用的公式是gi=(gi-1(gc^ri))^ci,则:
Si=[ci](Si-1+[ri]PA);
(此时的ri与计算gi时的ri相同)
若i=m,则取S=Sm,(h,S)即为生成的针对消息M的数字签名,否则,第i号装置将Si传送给下一装置即第i+1号装置,直到第m号装置完成Sm的计算。
对于以上方案一,在初始化阶段,m个装置获得秘密c1,…,cm,及计算得到PA、gc的一种方式如下:
预先知道dA的装置(可以是m个装置中的一个装置或m个装置之外的一个装置)在[1,n-1]区间内随机选择m个整数c1,…,cm,计算:
PA=[(c1c2…cm)-1]dA,gc=g^((c1c2…cm)-1),其中g=e(P1,Ppub);
然后将dA销毁,将PA、gc、ci分发给第i号装置,i=1,…,m(也许包括自己)。
对于以上方案一,若dA是第1号装置预先知道的,则在初始化阶段,m个装置获得秘密c1,…,cm,及计算得到PA、gc的另一种方式如下:
第1号装置在[1,n-1]区间内随机选择一个整数c1,或者在[1,n-1]区间内固定选取一个其他装置不知的整数c1(即对不同的dA固定选取c1的值),计算Q1=[(c1)-1]dA,u1=g^((c1)-1),其中g=e(P1,Ppub),然后将Q1、u1发送给下一个装置即第2号装置;
第i号装置接收到Qi-1、ui-1后,i=2,…,m,在[1,n-1]区间内随机选择一个整数ci,或者在[1,n-1]区间内固定选取一个其他装置不知的整数ci(即对不同的dA固定选取ci的值),计算Qi=[(ci)-1]Qi-1,ui=ui-1^((ci)-1);
若i=m,则取PA=Qm,gc=um,否则,第i号装置将发送给下一个装置即第i+1号装置,直到完成Qm、um计算;
最后,第m号装置将PA、gc分发给其他m-1个装置,第1号装置将dA销毁。
实际上,计算PA、gc中的装置顺序是不重要的;若是第i号装置预先知道dA,可以采用类似的传递方式计算。
对于以上方案一,若用户的SM9标识私钥dA同时用于数据解密,则当数据解密过程中需要计算e(dA,V)时,其中V是群G2中的一个元,所述m个装置按如下方式进行e(dA,V)的协同计算:
第1号装置计算v1=e(PA,V)^c1,将v1发送给下一个装置即第2号装置;
第i号装置接收vi-1到后,i=2,…,m,计算vi=vi-1^ci;
若i=m,则vm即为e(dA,V),否则,第i号装置将vi发送给下一个装置即第i+1号装置,直到i=m。
方案二、
本发明的SM9数字签名协同生成方法的方案二同样涉及m个装置,其中m≥2;
m个装置分别标号为第1号到第m号装置;
m个装置分别保存有或者通过保存的秘密导出有[1,n-1]区间内的整数秘密c1,c2,…,cm,其中,n为SM9密码算法中群G1、G2、GT的阶(为素数),ci是第i号装置保存的或通过保存的秘密导出的秘密,i=1,…,m,且(c1+c2+…+cm)mod n≠0;
在初始化阶段预先计算得到:
PA=[(c1+c2+…+cm)-1]dA,
gc=g^((c1+c2+…+cm)-1),
其中,dA是用户的身份标识IDA所对应的SM9标识私钥(dA是群G1中的元),(c1+c2+…+cm)-1是(c1+c2+…+cm)的模n乘法逆(即(c1+c2+…+cm)mod n的模n乘法逆),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,参见SM9规范);
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这m个装置的密码应用程序、系统或密码模块,或者m个装置之一中的密码应用程序、系统):
第i号装置在[1,n-1]区间内随机选择一整数ri,计算gi=gc^ri,i=1,…,m;
m个装置中的一个装置(可以是其中任一个装置):
计算w=g1g2…gm,h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示将w转化成字串后与M的字串合并,n为SM9密码算法中群G1、G2、GT的阶;
检查w与g^h是否相等,若w=g^h,则重新进行g1,…,gm的计算,直到w≠g^h;
之后,第i号装置计算Si=[(ri-cih)]PA,i=1,…,m;
(此时的ri与计算gi时的ri相同)
之后,m个装置中的一个装置计算S=S1+S2+…+Sm;
则(h,S)即为生成的针对消息M的数字签名。
对于以上方案二,在初始化阶段,m个装置获得秘密c1,…,cm,及计算得到PA、gc的一种方式如下:
预先知道dA的装置(可以是m个装置中的一个装置或m个装置之外的一个装置)在[1,n-1]区间内随机选择m个整数c1,…,cm,且使得(c1+c2+…+cm)mod n≠0,计算:
PA=[(c1+c2+…+cm)-1]dA,gc=g^((c1+c2+…+cm)-1),其中g=e(P1,Ppub);
然后将dA销毁,将PA、gc、ci分发给第i号装置,i=1,…,m(也许包括自己)。
对于以上方案二,若用户的SM9标识私钥dA同时用于数据解密,则当数据解密过程中需要计算e(dA,V)时,其中V是群G2中的一个元,所述m个装置按如下方式进行e(dA,V)的协同计算:
第i号装置计算vi=e(PA,V)^ci,i=2,…,m;
一个装置计算v=v1v2…vm,则v=e(dA,V)。
方案二的变形方案、
针对以上所述SM9数字签名协同生成方法的方案二的一种变形如下:
在初始化阶段,预先知道dA的装置(可以是m个装置中的一个装置或m个装置之外的一个装置)在[1,n-1]区间内随机选择一个整数c和m个整数b1,b2,…,bm,且使得(b1+b2+…+bm)mod n=1,计算:
PA=[c-1]dA,gc=g^(c-1),其中g=e(P1,Ppub);
di=[bi]dA,i=1,…,m;
然后将dA,c,b1,…,bm销毁,将PA、gc、di分发给第i号装置,i=1,…,m(也许包括自己);
当需要生成使用用户的SM9标识私钥dA针对消息M的数字签名时,m个装置,第i号装置按如下方式计算Si:
Si=[ri]PA+[-h]di,i=1,…,m;
其他计算、操作不变,包括计算协同计算w以及计算h、S的方式不变。
门限方案、
在以上方案二的基础上可以得出一种SM9数字签名门限生成方法,所述SM9数字签名门限生成方法包括k个装置,k个装置采用(m,k)门限秘密共享的方式进行数字签名的协同生成,k>m≥2;
在初始化阶段,预先知道dA的装置(k个装置中的一个装置或k个装置之外的一个装置),在[1,n-1]区间内随机选择一个整数c,然后按门限秘密共享方式将c分割为k份秘密份额,计算PA=[c-1]dA,gc=g^(c-1),其中g=e(P1,Ppub),然后将dA销毁,将PA、gc以及k份门限秘密份额分别分发给k个装置(可能包含自己);
当需要使用用户的SM9标识私钥生成针对消息M的数字签名时,k个装置中的m个装置形成一个组合,组合中的m个装置分别被标号为第1号到第m号装置,组合中的每个装置分别利用其门限秘密并依据当前组合,计算得到(导出)应用前述SM9数字签名协同生成方法的方案二所需的秘密份额(即c1,…,cm),然后m个装置应用前述SM9数字签名协同生成方法的方案二,生成针对消息M的数字签名。
(m个装置组合中的第i号装置所使用的秘密ci,i=1,..,m,是第i号装置依据其针对c的门限秘密份额以及当前生成数字签名的m个装置组合计算得到或导出的秘密,比如,对于针对c采用Shamir门限秘密共享,若模n上的m-1次多项为f(x),则k个装置中的第j个装置的门限秘密为yj=f(j),j=1,2,…,k;当第j个装置与其他m-1个装置组合进行数字签名时,第j个装置对应的秘密为(ajyj)mod n,其中aj是依据m个装置组合计算得到的参数,若k个装置中的第j个装置是作为生成数字签名的m个装置组合中的第i号装置,则ci=(ajyj)mod n)。
在以上SM9数字签名协同生成方法包括方案一、方案二以及方案二的变形方案的基础上,可构建SM9数字签名协同生成系统,系统包括m个装置,所述m个装置按所述SM9数字签名协同生成方法生成针对消息的数字签名。
在以上SM9数字签名门限生成方法的基础上,可构建SM9数字签名门限生成系统,系统包括k个装置,k>m≥2,所述k个装置按所述SM9数字签名门限生成方法生成针对消息的数字签名。
从以上描述可以看到,通过本发明的方法,当需要使用用户标识私钥dA对消息进行数字签名时,m个装置可以协同生成针对消息的数字签名,而且本发明方法也支持数字签名的门限生成,即由k个装置中的m个装置通过门限秘密共享(门限密码运算)生成针对消息的数字签名。
附图说明
无。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例仅是本发明列举的几个可能的实施例,不代表全部可能的实施例,不作为对本发明的限定。
实施例1、
此实施例包括m个分别标号为第1号到第m号的装置,m个装置中的一个装置或m个装置之外的一个装置预先知道dA,在初始化阶段,m个装置通过如下获得秘密c1,…,cm,及计算得到PA、gc:
预先知道dA的装置在[1,n-1]区间内随机选择m个整数c1,…,cm,计算:
PA=[(c1c2…cm)-1]dA,gc=g^((c1c2…cm)-1),其中g=e(P1,Ppub);
然后将dA销毁,将PA、gc、ci分发给第i号装置,i=1,…,m(也许包括自己);
之后,当需要使用用户的SM9标识私钥dA对消息进行数字签名时,m个装置按前述SM9数字签名协同生成方法的方案一生成针对消息的数字签名。
实施例2、
此实施例包括m个分别标号为第1号到第m号的装置,其中第1号装置预先知道dA是的,在初始化阶段,m个装置按如下方式获得秘密c1,…,cm,及计算得到PA、gc:
第1号装置在[1,n-1]区间内随机选择一个整数c1,计算Q1=[(c1)-1]dA,u1=g^((c1)-1),其中g=e(P1,Ppub),然后将Q1、u1发送给下一个装置即第2号装置;
第i号装置接收到Qi-1、ui-1后,i=2,…,m,在[1,n-1]区间内随机选择一个整数ci,计算Qi=[(ci)-1]Qi-1,ui=ui-1^((ci)-1);
若i=m,则取PA=Qm,gc=um,否则,第i号装置将发送给下一个装置即第i+1号装置,直到完成Qm、um计算;
第m号装置将PA、gc分发给其他m-1个装置,第1号装置将dA销毁;
之后,当需要使用用户的SM9标识私钥dA对消息进行数字签名时,m个装置按前述SM9数字签名协同生成方法的方案一生成针对消息的数字签名。
实施例3、
此实施例包括m个分别标号为第1号到第m号的装置,其中第1号装置是用户装置,第1号装置预先用户的SM9标识私钥dA,余下的m-1个装置是提供密码服务的密码服务器,在初始化阶段,m个装置按如下方式获得秘密c1,…,cm,及计算得到PA、gc:
第1号装置在[1,n-1]区间内随机选择一个整数c1,计算Q1=[(c1)-1]dA,u1=g^((c1)-1),其中g=e(P1,Ppub),然后将Q1、u1发送给下一个装置即第2号装置;
第i号装置接收到Qi-1、ui-1后,i=2,…,m,在[1,n-1]区间内固定选取一个其他装置不知的整数ci(即对不同的dA固定选取ci的值),计算Qi=[(ci)-1]Qi-1,ui=ui-1^((ci)-1);
若i=m,则取PA=Qm,gc=um,否则,第i号装置将发送给下一个装置即第i+1号装置,直到完成Qm、um计算;
第m号装置将PA、gc分发给m个装置,第1号装置将dA销毁;
之后,当需要使用用户的SM9标识私钥dA对消息进行数字签名时,m个装置按前述SM9数字签名协同生成方法的方案一生成针对消息的数字签名。
实施例4、
此实施例包括m个分别标号为第1号到第m号的装置,m个装置中的一个装置或m个装置之外的一个装置预先知道dA,在初始化阶段,m个装置通过如下获得秘密c1,…,cm,及计算得到PA、gc:
预先知道dA的装置在[1,n-1]区间内随机选择m个整数c1,…,cm,且使得(c1+c2+…+cm)mod n≠0,计算:
PA=[(c1+c2+…+cm)-1]dA,gc=g^((c1+c2+…+cm)-1),其中g=e(P1,Ppub);
然后将dA销毁,将PA、gc、ci分发给第i号装置,i=1,…,m(也许包括自己);
之后,当需要使用用户的SM9标识私钥dA对消息进行数字签名时,m个装置按前述SM9数字签名协同生成方法的方案二生成针对消息的数字签名。
实施例5、
此实施例包括m个分别标号为第1号到第m号的装置,m个装置中的一个装置或m个装置之外的一个装置预先知道dA;
在初始化阶段,预先知道dA的装置(可以是m个装置中的一个装置或m个装置之外的一个装置)在[1,n-1]区间内随机选择一个整数c和m个整数b1,…,bm,且使得(b1+b2+…+bm)mod n=1,计算:
PA=[c-1]dA,gc=g^(c-1),其中g=e(P1,Ppub);
di=[bi]dA,i=1,…,m;
然后将dA,c,b1,…,bm销毁,将PA、gc、di分发给第i号装置,i=1,…,m(也许包括自己);
之后,当需要使用用户的SM9标识私钥dA对消息进行数字签名时,m个装置按前述SM9数字签名协同生成方法的方案二的变形方案生成针对消息的数字签名。
实施例6、
此实施例包括k个装置,k个装置中的一个装置或之外的一个装置预先知道用户的SM9标识私钥dA,k个装置采用(m,k)门限秘密共享的方式进行数字签名的协同生成,k>m≥2;在初始化阶段预先知道dA的装置在k个装置中按门限秘密共享方案共享一个秘密,以及计算得到PA、gc:
预先知道dA的装置在[1,n-1]区间内随机选择一个整数c,然后将c按门限秘密共享方式分割为k份秘密份额;计算PA=[c-1]dA,gc=g^(c-1),其中g=e(P1,Ppub);然后将dA销毁,将PA、gc以及k份门限秘密份额分别分发给k个装置;
当需要使用用户的SM9标识私钥生成针对消息M的数字签名时,k个装置中的m个装置形成一个组合,采用前述SM9数字签名门限生成方法生成针对消息的数字签名。
依据本发明的方法可以构建相应的SM9数字签名协同生成系统。
若不采用门限秘密共享的方案,则系统包括m个装置,m≥2,这m个装置都是提供密码服务的密码服务器,或者m个装置中的一个装置是用户装置,其余的m-1个装置是提供密码服务的密码服务器,当需要使用用户的SM9标识私钥针对消息进行数字签名时,m个装置通过实施本发明的SM9数字签名协同生成方法的方案一或方案二或方案二的变形方案,包括实施前述实施例1-5,协同生成使用用户的SM9标识私钥、针对消息的数字签名。
若采用(m,k)门限秘密共享的方案,k>m≥2,则系统包括k个装置,这k个装置都是提供密码服务的密码服务器,或者k个装置中的一个装置是用户装置,其余的k-1个装置是提供密码服务的密码服务器,当需要使用用户的SM9标识私钥针对消息进行数字签名时,此k个装置中的m个装置利用门限秘密共享份额,实施本发明的SM9数字签名门限生成方法,包括实施前述实施例6,协同生成使用用户的SM9标识私钥、针对消息的数字签名。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种SM9数字签名协同生成方法,其特征是:
所述方法涉及m个装置,其中m≥2;
m个装置分别标号为第1号到第m号装置;
m个装置分别保存有[1,n-1]区间内的整数秘密c1,c2,…,cm,其中n为SM9密码算法中群G1、G2、GT的阶,ci是第i号装置保存的秘密,i=1,…,m;
在初始化阶段预先计算得到:
PA=[(c1c2…cm)-1]dA,
gc=g^((c1c2…cm)-1),
其中,dA是用户的身份标识IDA所对应的SM9标识私钥,(c1c2…cm)-1是(c1c2…cm)的模n乘法逆,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成:
第1号装置在[1,n-1]区间内随机选择一整数r1,计算g1=gc^r1或者g1=gc^(c1r1);
第1号装置将g1传送给下一个装置即第2号装置;
第i号装置接收到gi-1后,i=2,…,m,在[1,n-1]区间内随机选择一整数ri,计算gi=(gi-1^ci)(gc^ri)或者gi=(gi-1(gc^ri))^ci;
若i=m,则转入计算h,否则,第i号装置将gi传送给下一装置即第i+1号装置,直到第m号装置完成gm的计算;
第m号装置取w=gm;
m个装置中的一个装置:
计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示将w转化成字串后与M的字串合并,n为SM9密码算法中群G1、G2、GT的阶;
检查w与g^h是否相等,若w=g^h,则重新进行g1,…,gm的计算,直到w≠g^h;
之后,第1号装置按如下计算S1:
若第1号装置之前计算g1采用的公式是g1=gc^r1,则:
S1=[r1-c1h]PA;
若第1号装置之前计算g1采用的公式是g1=gc^(c1r1),则:
S1=[c1r1-c1h]PA;
第1号装置将S1发送给下一个装置即第2号装置;
第i号装置接收到Si-1后,i=2,…,m,按如下计算Si:
若第i号装置之前计算gi采用的公式是gi=(gi-1^ci)(gc^ri),则:
Si=[ci]Si-1+[ri]PA;
若第i号装置之前计算gi采用的公式是gi=(gi-1(gc^ri))^ci,则:
Si=[ci](Si-1+[ri]PA);
若i=m,则取S=Sm,(h,S)即为生成的针对消息M的数字签名,否则,第i号装置将Si传送给下一装置即第i+1号装置,直到第m号装置完成Sm的计算。
2.根据权利要求1所述的SM9数字签名协同生成方法,其特征是:
在初始化阶段,m个装置获得秘密c1,…,cm,及计算得到PA、gc的一种方式如下:
预先知道dA的装置在[1,n-1]区间内随机选择m个整数c1,…,cm,计算:
PA=[(c1c2…cm)-1]dA,gc=g^((c1c2…cm)-1),其中g=e(P1,Ppub);
然后将dA销毁,将PA、gc、ci分发给第i号装置,i=1,…,m。
3.根据权利要求1所述的SM9数字签名协同生成方法,其特征是:
若dA是第1号装置预先知道的,则在初始化阶段,m个装置获得秘密c1,…,cm,及计算得到PA、gc的一种方式如下:
第1号装置在[1,n-1]区间内随机选择一个整数c1,或者在[1,n-1]区间内固定选取一个其他装置不知的整数c1,计算Q1=[(c1)-1]dA,u1=g^((c1)-1),其中g=e(P1,Ppub),然后将Q1、u1发送给下一个装置即第2号装置;
第i号装置接收到Qi-1、ui-1后,i=2,…,m,在[1,n-1]区间内随机选择一个整数ci,或者在[1,n-1]区间内固定选取一个其他装置不知的整数ci,计算Qi=[(ci)-1]Qi-1,ui=ui-1^((ci)-1);
若i=m,则取PA=Qm,gc=um,否则,第i号装置将发送给下一个装置即第i+1号装置,直到完成Qm、um计算;
最后,第m号装置将PA、gc分发给其他m-1个装置,第1号装置将dA销毁。
4.一种基于权利要求1-3中任一项的SM9数字签名协同生成方法的SM9数字签名协同生成系统,其特征是:
所述系统包括m个装置,所述m个装置按所述SM9数字签名协同生成方法生成针对消息的数字签名。
5.一种SM9数字签名协同生成方法,其特征是:
所述方法涉及m个装置,其中m≥2;
m个装置分别标号为第1号到第m号装置;
m个装置分别保存有或者通过保存的秘密导出有[1,n-1]区间内的整数秘密c1,c2,…,cm,其中,n为SM9密码算法中群G1、G2、GT的阶,ci是第i号装置保存的或通过保存的秘密导出的秘密,i=1,…,m,且(c1+c2+…+cm)mod n≠0;
在初始化阶段预先计算得到:
PA=[(c1+c2+…+cm)-1]dA,
gc=g^((c1+c2+…+cm)-1),
其中,dA是用户的身份标识IDA所对应的SM9标识私钥,(c1+c2+…+cm)-1是(c1+c2+…+cm)的模n乘法逆,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成:
第i号装置在[1,n-1]区间内随机选择一整数ri,计算gi=gc^ri,i=1,…,m;
m个装置中的一个装置:
计算w=g1g2…gm,h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示将w转化成字串后与M的字串合并,n为SM9密码算法中群G1、G2、GT的阶;
检查w与g^h是否相等,若w=g^h,则重新进行g1,…,gm的计算,直到w≠g^h;
之后,第i号装置计算Si=[(ri-cih)]PA,i=1,…,m;
之后,m个装置中的一个装置计算S=S1+S2+…+Sm;
则(h,S)即为生成的针对消息M的数字签名。
6.根据权利要求5所述的SM9数字签名协同生成方法,其特征是:
在初始化阶段,m个装置获得秘密c1,…,cm,及计算得到PA、gc的一种方式如下:
预先知道dA的装置在[1,n-1]区间内随机选择m个整数c1,…,cm,且使得(c1+c2+…+cm)mod n≠0,计算:
PA=[(c1+c2+…+cm)-1]dA,gc=g^((c1+c2+…+cm)-1),其中g=e(P1,Ppub);
然后将dA销毁,将PA、gc、ci分发给第i号装置,i=1,…,m。
7.根据权利要求5所述的SM9数字签名协同生成方法,其特征是:
针对所述SM9数字签名协同生成方法的一种变形如下:
在初始化阶段,预先知道dA的装置在[1,n-1]区间内随机选择一个整数c和m个整数b1,b2,…,bm,且使得(b1+b2+…+bm)mod n=1,计算:
PA=[c-1]dA,gc=g^(c-1),其中g=e(P1,Ppub);
di=[bi]dA,i=1,…,m;
然后将dA,c,b1,…,bm销毁,将PA、gc、di分发给第i号装置,i=1,…,m;
当需要生成使用用户的SM9标识私钥dA针对消息M的数字签名时,m个装置,第i号装置按如下方式计算Si:
Si=[ri]PA+[-h]di,i=1,…,m;
其他计算、操作不变,包括计算协同计算w以及计算h、S的方式不变。
8.一种基于权利要求5的SM9数字签名协同生成方法的SM9数字签名门限生成方法,其特征是:
所述SM9数字签名门限生成方法包括k个装置,k个装置采用(m,k)门限秘密共享的方式进行数字签名的协同生成,k>m≥2;
在初始化阶段,预先知道dA的装置,在[1,n-1]区间内随机选择一个整数c,然后按门限秘密共享方式将c分割为k份秘密份额,计算PA=[c-1]dA,gc=g^(c-1),其中g=e(P1,Ppub),然后将dA销毁,将PA、gc以及k份门限秘密份额分别分发给k个装置;
当需要使用用户的SM9标识私钥生成针对消息M的数字签名时,k个装置中的m个装置形成一个组合,组合中的m个装置分别被标号为第1号到第m号装置,组合中的每个装置分别利用其门限秘密并依据当前组合,计算得到应用前述SM9数字签名协同生成方法所需的秘密份额,然后m个装置应用前述SM9数字签名协同生成方法,生成针对消息M的数字签名。
9.一种基于权利要求5-7中任一项的SM9数字签名协同生成方法的SM9数字签名协同生成系统,其特征是:
所述系统包括m个装置,所述m个装置按所述SM9数字签名协同生成方法生成针对消息的数字签名。
10.一种基于权利要求8的SM9数字签名门限生成方法的SM9数字签名门限生成系统,其特征是:
所述系统包括k个装置,k>m≥2,所述k个装置按所述SM9数字签名门限生成方法生成针对消息的数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711147604.9A CN107819585B (zh) | 2017-11-17 | 2017-11-17 | Sm9数字签名协同生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711147604.9A CN107819585B (zh) | 2017-11-17 | 2017-11-17 | Sm9数字签名协同生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107819585A CN107819585A (zh) | 2018-03-20 |
CN107819585B true CN107819585B (zh) | 2020-08-25 |
Family
ID=61609456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711147604.9A Active CN107819585B (zh) | 2017-11-17 | 2017-11-17 | Sm9数字签名协同生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107819585B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951292B (zh) * | 2019-02-20 | 2020-08-04 | 武汉理工大学 | 精简的sm9数字签名分离交互生成方法及系统 |
CN109962783B (zh) * | 2019-03-20 | 2020-08-25 | 武汉理工大学 | 基于递进计算的sm9数字签名协同生成方法及系统 |
CN110113165B (zh) * | 2019-04-24 | 2020-09-04 | 武汉理工大学 | 支持混合秘密共享的sm2数字签名协同生成方法及系统 |
CN110048839A (zh) * | 2019-04-26 | 2019-07-23 | 山东渔翁信息技术股份有限公司 | 一种数字签名方法、装置及存储介质 |
CN110213057B (zh) * | 2019-05-23 | 2021-01-08 | 武汉理工大学 | 具有乘积r参数的SM9数字签名协同生成方法及系统 |
CN110247759B (zh) * | 2019-06-03 | 2020-07-10 | 武汉理工大学 | 一种sm9私钥生成和使用方法及系统 |
CN110166256B (zh) * | 2019-06-17 | 2020-10-02 | 武汉理工大学 | 具有乘积r参数的SM9数字签名多方协同生成方法及系统 |
CN110299998B (zh) * | 2019-07-04 | 2020-09-04 | 武汉理工大学 | 借助中间参数的sm9数字签名协同生成方法及系统 |
CN110519051B (zh) * | 2019-08-22 | 2021-06-01 | 武汉理工大学 | r参数和秘密双乘积的SM9签名协同生成方法及系统 |
CN110557260B (zh) * | 2019-08-26 | 2020-08-04 | 武汉理工大学 | 一种sm9数字签名生成方法及装置 |
CN110943845A (zh) * | 2019-11-25 | 2020-03-31 | 武汉大学 | 一种轻量级两方协同产生sm9签名的方法及介质 |
CN111010272B (zh) * | 2019-12-20 | 2021-01-12 | 武汉理工大学 | 一种标识私钥生成和数字签名方法及系统和装置 |
CN112003698B (zh) * | 2020-09-07 | 2024-04-19 | 三未信安科技股份有限公司 | 一种sm9协同数字签名方法和系统 |
CN113300841B (zh) * | 2021-05-25 | 2022-11-25 | 贵州大学 | 一种基于身份的协同签名方法及系统 |
CN113742670B (zh) * | 2021-08-30 | 2023-06-06 | 建信金融科技有限责任公司 | 多方协同解密方法和装置 |
CN115150062B (zh) * | 2022-06-10 | 2024-04-02 | 武汉理工大学 | 签名制作数据安全受控的sm9数字签名生成方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1083699A1 (en) * | 1998-05-18 | 2001-03-14 | Mitsubishi Materials Corporation | Information sharing system |
CN106656512A (zh) * | 2017-01-17 | 2017-05-10 | 武汉理工大学 | 支持门限密码的sm2数字签名生成方法及系统 |
CN106712942A (zh) * | 2017-01-10 | 2017-05-24 | 武汉理工大学 | 基于秘密共享的sm2数字签名生成方法及系统 |
CN106850198A (zh) * | 2017-01-16 | 2017-06-13 | 武汉理工大学 | 基于多装置协同的sm2数字签名生成方法及系统 |
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN107124277A (zh) * | 2016-02-25 | 2017-09-01 | 上海传真通信设备技术研究所有限公司 | 一种基于国家商用密码算法的硬拷贝控制系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9838205B2 (en) * | 2014-09-16 | 2017-12-05 | Keypasco Ab | Network authentication method for secure electronic transactions |
-
2017
- 2017-11-17 CN CN201711147604.9A patent/CN107819585B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1083699A1 (en) * | 1998-05-18 | 2001-03-14 | Mitsubishi Materials Corporation | Information sharing system |
CN107124277A (zh) * | 2016-02-25 | 2017-09-01 | 上海传真通信设备技术研究所有限公司 | 一种基于国家商用密码算法的硬拷贝控制系统 |
CN106712942A (zh) * | 2017-01-10 | 2017-05-24 | 武汉理工大学 | 基于秘密共享的sm2数字签名生成方法及系统 |
CN106850198A (zh) * | 2017-01-16 | 2017-06-13 | 武汉理工大学 | 基于多装置协同的sm2数字签名生成方法及系统 |
CN106656512A (zh) * | 2017-01-17 | 2017-05-10 | 武汉理工大学 | 支持门限密码的sm2数字签名生成方法及系统 |
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107819585A (zh) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107819585B (zh) | Sm9数字签名协同生成方法及系统 | |
US8429408B2 (en) | Masking the output of random number generators in key generation protocols | |
US10530585B2 (en) | Digital signing by utilizing multiple distinct signing keys, distributed between two parties | |
CN107968710B (zh) | Sm9数字签名分离交互生成方法及系统 | |
CN110213057B (zh) | 具有乘积r参数的SM9数字签名协同生成方法及系统 | |
CN108183791B (zh) | 应用于云环境下的智能终端数据安全处理方法及系统 | |
CN113271209B (zh) | 一种基于非交互式零知识证明的可托管公钥加密系统及方法 | |
CN109951292B (zh) | 精简的sm9数字签名分离交互生成方法及系统 | |
CN106850229A (zh) | 基于乘积秘密分割的sm2数字签名生成方法及系统 | |
CN104796260B (zh) | 一种满足前向安全的短密文身份基加密方法 | |
CN109962783B (zh) | 基于递进计算的sm9数字签名协同生成方法及系统 | |
CN110855425A (zh) | 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 | |
CN111030801A (zh) | 一种多方分布式的sm9密钥生成、密文解密方法与介质 | |
CN110166235B (zh) | 增强安全的sm9数字签名协同生成方法及系统 | |
CN110519051B (zh) | r参数和秘密双乘积的SM9签名协同生成方法及系统 | |
CN110380855B (zh) | 支持多方协同增强安全的sm9数字签名生成方法及系统 | |
CN110266486B (zh) | 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 | |
CN110299998B (zh) | 借助中间参数的sm9数字签名协同生成方法及系统 | |
CN110798313B (zh) | 基于秘密动态共享的包含秘密的数的协同生成方法及系统 | |
EP2395698B1 (en) | Implicit certificate generation in the case of weak pseudo-random number generators | |
CN110401524B (zh) | 一种借助同态加密的包含秘密的数的协同生成方法及系统 | |
CN114697001B (zh) | 一种基于区块链的信息加密传输方法、设备及介质 | |
CN110943828B (zh) | 秘密数运算转换方法及系统 | |
CN110266472B (zh) | 支持混合秘密共享的sm9数字签名协同生成方法及系统 | |
CN110166256B (zh) | 具有乘积r参数的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 |