CN110266486A - 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 - Google Patents
基于乘积秘密共享的sm9数字签名简捷生成方法及系统 Download PDFInfo
- Publication number
- CN110266486A CN110266486A CN201910589877.1A CN201910589877A CN110266486A CN 110266486 A CN110266486 A CN 110266486A CN 201910589877 A CN201910589877 A CN 201910589877A CN 110266486 A CN110266486 A CN 110266486A
- Authority
- CN
- China
- Prior art keywords
- digital signature
- integer
- secret
- generation method
- privacy sharing
- 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/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/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time 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/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/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
发明涉及SM9数字签名生成方法:m个标号为第1号到第m号的装置分别保存有[1,n‑1]中的整数秘密ci,n为SM9群的阶,i=1,…,m,m≥2;PA=[(c1c2…cm)‑1]dA,PB=[b]dA,dA为用户私钥,b为[1,n‑1]内m个装置都不知的整数秘密;Q1=[(c2c3…cm)‑1]PB,Q2=[(c3…cm)‑1]PB,Qm‑1=[(cm)‑1]PB,Qm=PB;当需使用dA对消息签名时,计算得到w=gB^(r1+r2+…+rm),h=H2(M||w,n),取S0=[‑h]PA,m个装置递归计算Si=[ri]Qi+[ci]Si‑1,令S=Sm,则(h,S)为针对消息的数字签名。
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数字签名协同生成方法,其中的基于乘积秘密共享的SM9数字签名协同生成方法,其w的计算采用递归计算,各个装置在计算w的过程要遵从严格的前后顺序,且计算式较复杂。
发明内容
本发明的目的是提出一种基于乘积秘密共享的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=(c1c2…cm)mod n为m个装置都没有保存的整数秘密,c-1为c的模n乘法逆;
PB=[b]dA,其中b是[1,n-1]区间内的m个装置都没有保存的整数秘密;
b和c-1不必互异(二者不同或者相同),b≠c;
gB=g^b,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
Q1=[(c2c3…cm)-1]PB,Q2=[(c3…cm)-1]PB,…,Qm-1=[(cm)-1]PB;
取Qm=PB;
m个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这m个装置的密码应用程序、系统或密码模块,或者m个装置之一中的密码应用程序、系统):
首先,m个装置通过交互计算得到w=gB^(r1+r2+…+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,则两个装置重新进行w的计算,直到w≠g^h;
取S0=[-h]PA;
第1号装置计算S1=[r1]Q1+[c1]S0,其中r1与计算w时的r1相同,然将S1传送给第2号装置;
第i号装置接收到Si-1后,i=2,…,m,计算Si=[ri]Qi+[ci]Si-1,其中ri与计算w时的ri相同;
若i=m,则取S=Sm,(h,S)为生成的针对消息M的数字签名,否则,将Si传送给第i+1号装置,直到完成Sm的计算。
(此时S=[r1c2…cm]Q1+[r2c3…cm]Q2+…+[rm-1cm]Qm-1+[rm]Qm+[-hc1c2…cm]PA=[r1+r2+…+rm]PB+[-(c1c2…cm)h]PA=[(r1+r2+…+rm)b-h]dA)
对于以上所述基于乘积秘密共享的SM9数字签名简捷生成方法,m个装置计算得到w=gB^(r1+r2+…+rm)的方法如下:
第i号装置计算gi=gB^ri,i=1,…,m;
m个装置中的一个装置或之外的一个装置计算w=g1g2…gm。
对于以上所述基于乘积秘密共享的SM9数字签名简捷生成方法,若在计算过程中不检查w与g^h是否相等,则计算得到S后,若检查发现S为零元,则m个装置重新进行协同计算,直到S不为零元。
对于以上所述基于乘积秘密共享的SM9数字签名简捷生成方法,针对所述方法的一种初始化方式如下(不意味着全部):
知道dA的装置(m个装置中的一个或其他装置)在[1,n-1]内随机选择m个整数作为c1,c2,…,cm;
计算c=(c1c2…cm)mod n,PA=[c-1]dA,其中c-1为c的模n乘法逆;
在[1,n-1]区间内随机选择一个整数作为b,计算PB=[b]dA;
计算Q1=[(c2c3…cm)-1]PB,Q2=[(c3…cm)-1]PB,…,Qm-1=[(cm)-1]PB;
取Qm=PB;
将c1,c2,…,cm分别交由第1号,第2号,…,第m号装置作为秘密保存;将Q1,Q2,…,Qm分别交由第1号,第2号,…,第m号装置保存;将PA交由第1号装置保存;将c、b、dA销毁。
对于以上所述基于乘积秘密共享的SM9数字签名简捷生成方法,若取c1的值为1或[1,n-1]内的其他非保密整数,且b≠c-1(即PB≠PA),将PA作为秘密由第1号装置保存,则所述基于乘积秘密共享的SM9数字签名简捷生成方法仍然成立。
对于以上所述基于乘积秘密共享的SM9数字签名简捷生成方法,若c1的取值为1或[1,n-1]内的其他非保密整数,则c1的取值是一个固定值(比如固定取值为1),或者是初始化阶段(由第1号装置或其他进行初始化处理的装置)在[1,n-1]内随机选取的整数。
在以上所述基于乘积秘密共享的SM9数字签名简捷生成方法的基础上,可构建SM9数字签名协同生成系统,系统包括m个分别标号为第1号,第2号,…,到第m号的装置,m≥2;第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按所述基于乘积秘密共享的SM9数字签名简捷生成方法生成针对消息M的数字签名。
从以上描述可以看到,基于本发明的基于乘积秘密共享的SM9数字签名生成方法和系统,在针对一个消息生成数字签名的过程中,对w的计算没有采用较复杂的递归计算,而是采用简单明了的计算方式,在计算w的过程中各装置无需遵从严格的前后顺序,且w的计算量相对现有技术方案要小。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例仅是本发明列举的几个可能的实施例,不代表全部可能的实施例,不作为对本发明的限定。
实施例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=(c1c2)mod n为m个装置都没有保存的整数秘密,c-1为c的模n乘法逆;
PB=[b]dA,其中b是[1,n-1]区间内的m个装置都没有保存的整数秘密;
b和c-1不必互异(二者不同或者相同),b≠c;
gB=g^b,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
Q1=[(c2)-1]PB;
取Q2=PB;
两个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这两个装置的密码应用程序、系统或密码模块,或者两个装置之一中的密码应用程序、系统):
首先,两个装置通过交互计算得到w=gB^(r1+r2),其中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的阶;
(h无需保密,可根据需要自由传送)
(两个装置中的一个装置或其他装置)检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;
取S0=[-h]PA;
第1号装置计算S1=[r1]Q1+[c1]S0,其中r1与计算w时的r1相同,然将S1传送给第2号装置;
第2号装置接收到S1后,计算S2=[r2]Q2+[c2]S1,其中r2与计算w时的r2相同;
取S=S2,则(h,S)为生成的针对消息M的数字签名。
(此时S=[r1c2]Q1+[r2]Q2+[-hc1c2]PA=[r1+r2]PB+[-(c1c2)h]PA
=[(r1+r2)b-h]dA)
对于此实施例,在初始化阶段,知道dA的装置(两个装置中的一个或其他装置)在[1,n-1]内随机选择两个整数作为c1,c2,分别交由第1号,第2号装置作为秘密保存;
计算PA=[c-1]dA,其中c-1为c的模n乘法逆,c=(c1c2)mod n;
在[1,n-1]区间内随机选择一个整数作为b,计算PB=[b]dA;
计算Q1=[(c2)-1]PB,取Q2=PB;
将Q1,Q2分别交由第1号,第2号装置保存;将PA交由第1号装置保存;将c、b、dA销毁。
实施例2、
此实施例有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=(c1c2…cm)mod n为m个装置都没有保存的整数秘密,c-1为c的模n乘法逆;
PB=[b]dA,其中b是[1,n-1]区间内的m个装置都没有保存的整数秘密;
b和c-1不必互异(二者不同或者相同),b≠c;
gB=g^b,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
Q1=[(c2c3…cm)-1]PB,Q2=[(c3…cm)-1]PB,…,Qm-1=[(cm)-1]PB;
取Qm=PB;
m个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这m个装置的密码应用程序、系统或密码模块,或者m个装置之一中的密码应用程序、系统):
首先,m个装置通过交互计算得到w=gB^(r1+r2+…+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,则两个装置重新进行w的计算,直到w≠g^h;
取S0=[-h]PA;
第1号装置计算S1=[r1]Q1+[c1]S0,其中r1与计算w时的r1相同,然将S1传送给第2号装置;
第i号装置接收到Si-1后,i=2,…,m,计算Si=[ri]Qi+[ci]Si-1,其中ri与计算w时的ri相同;
若i=m,则取S=Sm,(h,S)为生成的针对消息M的数字签名,否则,将Si传送给第i+1号装置,直到完成Sm的计算。
(此时S=[r1c2…cm]Q1+[r2c3…cm]Q2+…+[rm-1cm]Qm-1+[rm]Qm+[-hc1c2…cm]PA
=[r1+r2+…+rm]PB+[-(c1c2…cm)h]PA=[(r1+r2+…+rm)b-h]dA)
对于此实施例,在初始化阶段,知道dA的装置(m个装置中的一个或其他装置)在[1,n-1]内随机选择m个整数作为c1,c2,…,cm,分别交由第1号,第2号,…,第m号装置作为秘密保存;
计算PA=[c-1]dA,其中c-1为c的模n乘法逆,c=(c1c2…cm)mod n;
在[1,n-1]区间内随机选择一个整数作为b,计算PB=[b]dA;
计算Q1=[(c2c3…cm)-1]PB,Q2=[(c3…cm)-1]PB,…,Qm-1=[(cm)-1]PB;
取Qm=PB;
将Q1,Q2,…,Qm分别交由第1号,第2号,…,第m号装置保存;将PA交由第1号装置保存;将c、b、dA销毁。
实施例3、
此实施例有分别标号为第1号、第2号的两个装置,第1号装置有取值为1或[1,n-1]内的其他整数的非保密数c1,第2号装置保存有[1,n-1]区间内的整数秘密c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数);第1号装置保存有秘密PA=[c-1]dA,其中dA为用户的SM9标识私钥,c=(c1c2)mod n为两个装置都不保存的整数秘密,c-1为c的模n乘法逆;
(初始化阶段)预先计算有:
PB=[b]dA,其中b是[1,n-1]区间内的m个装置都没有保存的整数秘密;
b≠c-1(即PB≠PA),b≠c;
gB=g^b,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
Q1=[(c2)-1]PB;
取Q2=PB;
两个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这两个装置的密码应用程序、系统或密码模块,或者两个装置之一中的密码应用程序、系统):
首先,两个装置通过交互计算得到w=gB^(r1+r2),其中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的阶;
(h无需保密,可根据需要自由传送)
(两个装置中的一个装置或其他装置)检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;
第1号装置取S0=[-h]PA,计算S1=[r1]Q1+[c1]S0,其中r1与计算w时的r1相同,然将S1传送给第2号装置;
第2号装置接收到S1后,计算S2=[r2]Q2+[c2]S1,其中r2与计算w时的r2相同;
取S=S2,则(h,S)为生成的针对消息M的数字签名。
(此时S=[r1c2]Q1+[r2]Q2+[-hc1c2]PA=[r1+r2]PB+[-(c1c2)h]PA
=[(r1+r2)b-h]dA)
对于此实施例,在初始化阶段,固定取值1或在[1,n-1]中任选一个整数作为第1号装置使用的非保密数c1,知道dA的装置(两个装置中的一个或其他装置)在[1,n-1]内随机选择一个整数作为c2交由第2号装置使用;
计算PA=[c-1]dA,其中c-1为c的模n乘法逆,c=(c1c2)mod n;
在[1,n-1]区间内随机选择一个c-1、c之外的整数作为b,计算PB=[b]dA;
计算Q1=[(c2)-1]PB,取Q2=PB;
将PA交由第1号作为秘密保存;将Q1、Q2分别交由第1号、第2号装置保存;将c、b、dA销毁。
实施例4、
此实施例有m个分别标号为第1号,第2号,…,到第m号的装置,m≥2;
第1号置有取值为1或[1,n-1]内的其他整数的非保密数c1,从第2号到第m号装置分别保存有[1,n-1]区间内的整数秘密c2,…,cm,其中n为SM9密码算法中群G1、G2、GT的阶(为素数);第1号装置保存有秘密PA=[c-1]dA,其中dA为用户的SM9标识私钥,c=(c1c2…cm)modn为m个装置都不保存的秘密,c-1为c的模n乘法逆;
(初始化阶段)预先计算有:
PB=[b]dA,其中b是[1,n-1]区间内的m个装置都没有保存的整数秘密;
b≠c-1(即PB≠PA),b≠c;
gB=g^b,其中^是幂运算(对^前面的元进行幂运算,^后面为幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
Q1=[(c2c3…cm)-1]PB,Q2=[(c3…cm)-1]PB,…,Qm-1=[(cm)-1]PB;
取Qm=PB;
m个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这m个装置的密码应用程序、系统或密码模块,或者m个装置之一中的密码应用程序、系统):
首先,m个装置通过交互计算得到w=gB^(r1+r2+…+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,则两个装置重新进行w的计算,直到w≠g^h;
第1号装置取S0=[-h]PA,计算S1=[r1]Q1+[c1]S0,其中r1与计算w时的r1相同,然将S1传送给第2号装置;
第i号装置接收到Si-1后,i=2,…,m,计算Si=[ri]Qi+[ci]Si-1,其中ri与计算w时的ri相同;
若i=m,则取S=Sm,(h,S)为生成的针对消息M的数字签名,否则,将Si传送给第i+1号装置,直到完成Sm的计算。
(此时S=[r1c2…cm]Q1+[r2c3…cm]Q2+…+[rm-1cm]Qm-1+[rm]Qm+[-hc1c2…cm]PA
=[r1+r2+…+rm]PB+[-(c1c2…cm)h]PA=[(r1+r2+…+rm)b-h]dA)
对于此实施例,在初始化阶段,固定取值1或在[1,n-1]中任选一个整数作为第1号装置使用的非保密数c1,知道dA的装置(m个装置中的一个或其他装置)在[1,n-1]内随机选择m-1个整数作为c2,…,cm,分别交由第2号,…,第m号装置作为秘密保存;
计算PA=[c-1]dA,其中c-1为c的模n乘法逆,c=(c1c2…cm)mod n;
在[1,n-1]区间内随机选择一个c-1、c之外的整数作为b,计算PB=[b]dA;
计算Q1=[(c2c3…cm)-1]PB,Q2=[(c3…cm)-1]PB,…,Qm-1=[(cm)-1]PB;
取Qm=PB;
将PA交由第1号装置作为秘密保存;将Q1,Q2,…,Qm分别交由第1号,第2号,…,第m号装置保存;将c、b、dA销毁。
在以上实施例1-4中,m个装置计算得到w=gB^(r1+r2+…+rm)的方法如下:
m个装置计算得到w=gB^(r1+r2+…+rm)的方法如下:
第i号装置计算gi=gB^ri,i=1,…,m;
m个装置中的一个装置或之外的一个装置计算w=g1g2…gm。
在以上各实施例中,若在计算过程中不检查w与g^h是否相等,则计算得到S后,若检查发现S为零元,则m个装置重新进行协同计算,直到S不为零元。
依据本发明的基于乘积秘密共享的SM9数字签名简捷生成方法可构建相应的SM9数字签名协同生成系统,系统包括m个分别标号为第1号,第2号,…,到第m号的装置,m≥2;第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按所述基于乘积秘密共享的SM9数字签名简捷生成方法生成针对消息M的数字签名;对于所述SM9数字签名协同生成系统,若第1号装置取c1的值为1或[1,n-1]内的其他非保密整数,且b≠c-1(即PB≠PA),将PA作为秘密由第1号装置保存,则当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置仍按所述基于乘积秘密共享的SM9数字签名简捷生成方法生成针对消息M的数字签名。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (7)
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=(c1c2…cm)mod n为m个装置都没有保存的整数秘密,c-1为c的模n乘法逆;
PB=[b]dA,其中b是[1,n-1]区间内的m个装置都没有保存的整数秘密;
b和c-1不必互异,b≠c;
gB=g^b,其中^是幂运算,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥;
Q1=[(c2c3…cm)-1]PB,Q2=[(c3…cm)-1]PB,…,Qm-1=[(cm)-1]PB;
取Qm=PB;
m个装置都不保存dA;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成:
首先,m个装置通过交互计算得到w=gB^(r1+r2+…+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,则两个装置重新进行w的计算,直到w≠g^h;
取S0=[-h]PA;
第1号装置计算S1=[r1]Q1+[c1]S0,其中r1与计算w时的r1相同,然将S1传送给第2号装置;
第i号装置接收到Si-1后,i=2,…,m,计算Si=[ri]Qi+[ci]Si-1,其中ri与计算w时的ri相同;
若i=m,则取S=Sm,(h,S)为生成的针对消息M的数字签名,否则,将Si传送给第i+1号装置,直到完成Sm的计算。
2.根据权利要求1所述的基于乘积秘密共享的SM9数字签名简捷生成方法,其特征是:
m个装置计算得到w=gB^(r1+r2+…+rm)的方法如下:
第i号装置计算gi=gB^ri,i=1,…,m;
m个装置中的一个装置或之外的一个装置计算w=g1g2…gm。
3.根据权利要求1所述的基于乘积秘密共享的SM9数字签名简捷生成方法,其特征是:
若在计算过程中不检查w与g^h是否相等,则计算得到S后,若检查发现S为零元,则m个装置重新进行协同计算,直到S不为零元。
4.根据权利要求1所述的基于乘积秘密共享的SM9数字签名简捷生成方法,其特征是:针对所述方法的一种初始化方式如下:
知道dA的装置在[1,n-1]内随机选择m个整数作为c1,c2,…,cm;
计算c=(c1c2…cm)mod n,PA=[c-1]dA,其中c-1为c的模n乘法逆;
在[1,n-1]区间内随机选择一个整数作为b,计算PB=[b]dA;
计算Q1=[(c2c3…cm)-1]PB,Q2=[(c3…cm)-1]PB,…,Qm-1=[(cm)-1]PB;
取Qm=PB;
将c1,c2,…,cm分别交由第1号,第2号,…,第m号装置作为秘密保存;将Q1,Q2,…,Qm分别交由第1号,第2号,…,第m号装置保存;将PA交由第1号装置保存;将c、b、dA销毁。
5.根据权利要求1所述的基于乘积秘密共享的SM9数字签名简捷生成方法,其特征是:
若取c1的值为1或[1,n-1]内的其他非保密整数,且b≠c-1,将PA作为秘密由第1号装置保存,则所述基于乘积秘密共享的SM9数字签名简捷生成方法仍然成立。
6.根据权利要求5所述的基于乘积秘密共享的SM9数字签名简捷生成方法,其特征是:
若c1的取值为1或[1,n-1]内的其他非保密整数,则c1的取值是一个固定值,或者是初始化阶段在[1,n-1]内随机选取的整数。
7.一种基于权利要求1-6中任一项所述的基于乘积秘密共享的SM9数字签名简捷生成方法的SM9数字签名协同生成系统,其特征是:
所述系统包括m个分别标号为第1号,第2号,…,到第m号的装置,m≥2;第i号装置保存有[1,n-1]区间内的整数秘密ci,i=1,…,m;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按所述基于乘积秘密共享的SM9数字签名简捷生成方法生成针对消息M的数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910589877.1A CN110266486B (zh) | 2019-07-02 | 2019-07-02 | 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910589877.1A CN110266486B (zh) | 2019-07-02 | 2019-07-02 | 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110266486A true CN110266486A (zh) | 2019-09-20 |
CN110266486B CN110266486B (zh) | 2021-06-04 |
Family
ID=67923744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910589877.1A Active CN110266486B (zh) | 2019-07-02 | 2019-07-02 | 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110266486B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880977A (zh) * | 2019-11-26 | 2020-03-13 | 武汉大学 | 一种安全高效的sm9环签名生成与验证方法 |
CN113704831A (zh) * | 2021-08-11 | 2021-11-26 | 武汉理工大学 | 一种参与方无需同时在线的数字签名多方生成方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062043B1 (en) * | 2002-06-28 | 2006-06-13 | The United States Of America As Represented By The National Security Agency | Method of elliptic curve digital signature using coefficient splitting |
US20100241848A1 (en) * | 2009-02-27 | 2010-09-23 | Certicom Corp. | System and method for securely communicating with electronic meters |
CN106603231A (zh) * | 2017-01-20 | 2017-04-26 | 武汉理工大学 | 基于去秘密化的分布式sm2数字签名生成方法及系统 |
CN107438005A (zh) * | 2017-06-21 | 2017-12-05 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法和装置 |
CN109274487A (zh) * | 2018-08-17 | 2019-01-25 | 西安电子科技大学 | 基于国密sm9密码算法的群签名标识签发方法 |
CN109951292A (zh) * | 2019-02-20 | 2019-06-28 | 武汉理工大学 | 精简的sm9数字签名分离交互生成方法及系统 |
-
2019
- 2019-07-02 CN CN201910589877.1A patent/CN110266486B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062043B1 (en) * | 2002-06-28 | 2006-06-13 | The United States Of America As Represented By The National Security Agency | Method of elliptic curve digital signature using coefficient splitting |
US20100241848A1 (en) * | 2009-02-27 | 2010-09-23 | Certicom Corp. | System and method for securely communicating with electronic meters |
CN106603231A (zh) * | 2017-01-20 | 2017-04-26 | 武汉理工大学 | 基于去秘密化的分布式sm2数字签名生成方法及系统 |
CN107438005A (zh) * | 2017-06-21 | 2017-12-05 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法和装置 |
CN109274487A (zh) * | 2018-08-17 | 2019-01-25 | 西安电子科技大学 | 基于国密sm9密码算法的群签名标识签发方法 |
CN109951292A (zh) * | 2019-02-20 | 2019-06-28 | 武汉理工大学 | 精简的sm9数字签名分离交互生成方法及系统 |
Non-Patent Citations (2)
Title |
---|
FAN DING ET AL.: "《Study on Secret Sharing for SM2 Digital Signature and Its Application》", 《2018 14TH INTERNATIONAL CONFERENCE ON COMPUTAIONAL INTELLIGENCE AND SECURITY(CIS)》 * |
袁峰等: "《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环签名生成与验证方法 |
CN113704831A (zh) * | 2021-08-11 | 2021-11-26 | 武汉理工大学 | 一种参与方无需同时在线的数字签名多方生成方法及系统 |
CN113704831B (zh) * | 2021-08-11 | 2023-11-03 | 北京天威诚信电子商务服务有限公司 | 一种参与方无需同时在线的数字签名多方生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110266486B (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109309569B (zh) | 基于sm2算法的协同签名的方法、装置及存储介质 | |
CN107819585B (zh) | Sm9数字签名协同生成方法及系统 | |
EP2228942A1 (en) | Securing communications sent by a first user to a second user | |
CN106850229B (zh) | 基于乘积秘密分割的sm2数字签名生成方法及系统 | |
CN107968710A (zh) | Sm9数字签名分离交互生成方法及系统 | |
CN107872322A (zh) | 基于同态加密的数字签名协同生成方法及系统 | |
CN106685662B (zh) | 一种基于余数系统的商密sm2加密算法的白盒软件实现方法 | |
CN110213057A (zh) | 具有乘积r参数的SM9数字签名协同生成方法及系统 | |
CN109951292B (zh) | 精简的sm9数字签名分离交互生成方法及系统 | |
CN107070662A (zh) | 基于混淆技术的加密盲签名方法 | |
CN107104793A (zh) | 一种数字签名生成方法及系统 | |
CN110166235B (zh) | 增强安全的sm9数字签名协同生成方法及系统 | |
CN110266486A (zh) | 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 | |
CN109962783A (zh) | 基于递进计算的sm9数字签名协同生成方法及系统 | |
CN108055134B (zh) | 椭圆曲线点数乘及配对运算的协同计算方法及系统 | |
CN110519051A (zh) | r参数和秘密双乘积的SM9签名协同生成方法及系统 | |
CN110798313B (zh) | 基于秘密动态共享的包含秘密的数的协同生成方法及系统 | |
Kapoor et al. | Cryptography: A security pillar of privacy, integrity and authenticity of data communication | |
CN110299998A (zh) | 借助中间参数的sm9数字签名协同生成方法及系统 | |
CN110380855B (zh) | 支持多方协同增强安全的sm9数字签名生成方法及系统 | |
CN110401524B (zh) | 一种借助同态加密的包含秘密的数的协同生成方法及系统 | |
WO2001091368A2 (en) | Encryption system based on crossed inverse quasigroups | |
Paar et al. | Introduction to cryptography and data security | |
CN111740837A (zh) | 一种基于sm9的分布式签名方法及系统 | |
CN110166256A (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 |