CN110213057A - 具有乘积r参数的SM9数字签名协同生成方法及系统 - Google Patents
具有乘积r参数的SM9数字签名协同生成方法及系统 Download PDFInfo
- Publication number
- CN110213057A CN110213057A CN201910433799.6A CN201910433799A CN110213057A CN 110213057 A CN110213057 A CN 110213057A CN 201910433799 A CN201910433799 A CN 201910433799A CN 110213057 A CN110213057 A CN 110213057A
- Authority
- CN
- China
- Prior art keywords
- digital signature
- devices
- calculates
- message
- user
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004364 calculation method Methods 0.000 claims description 23
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 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/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/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数字签名生成方法:装置1有[1,n‑1]中的整数秘密c,n为SM9群的阶;装置2有秘密PA=[c‑1]dA,dA是用户私钥;预先计算有PB=[b]dA,gB=g^(bc),b是两个装置都不知的[1,n‑1]中的整数秘密,g=e(P1,Ppub);需用dA对消息M签名时,两个装置计算w=gB^(r1r2),r1、r2是装置1、2在[1,n‑1]中随机选取的整数;计算h=H2(M||w,n);装置1计算S1=[r1]PB;装置2计算S2=[r2]S1+[‑h]PA;装置1计算S=[c]S2,然后用用户标识和消息M验证(h,S)的有效性,若有效,则(h,S)为对针对消息M的数字签名。
Description
技术领域
本发明属于信息安全技术领域,特别是具有乘积r参数的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规范);
然后,计算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=[(a1r1…rm)-h]dA,即这里的r1,…,rm以及一个常数a 是以乘积的形式出现,则不会出现(ar1…rm)mod n=0的情况,这样的方案具有更高的安全性。我们在这里把r1,…,rm以及常数a是以乘积形式出现的情形称为乘积r参数的情形,而把生成数字签名过程中r1,…,rm以及常数a以乘积形式出现的SM9数字签名协同生成方法,称为具有乘积r参数的SM9数字签名协同生成方法。
发明内容
本发明的目的是提出具有乘积r参数的SM9数字签名协同生成技术方案,以增强基于秘密共享的SM9数字签名协同生成方案的安全性。
针对本发明的目的,本发明提出的技术方案包括三种具有乘积r参数的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。
本发明提出的三个具有乘积r参数的SM9数字签名协同生成方法具体如下。
方案一、
方案一确定的具有乘积r参数的SM9数字签名协同生成方法如下:
方法涉及两个分别标号为第1号和第2号的装置;
第1号装置保存有[1,n-1]区间内的整数秘密c,其中n为SM9密码算法中群G1、G2、GT的阶(为素数);第2号装置保存有秘密PA=[c-1]dA,其中dA是用户的身份标识IDA所对应的SM9标识私钥,c-1为c的模n乘法逆(即c-1c mod n=1);两个装置都不保存有dA;([1,n-1]中的整数秘密通常是在[1,n-1]中随机选择的整数,或者是从[1,n-1]中随机选择的整数所导出的整数)
在初始化阶段计算有:
PB=[b]dA,其中b是第1号、第2号装置都没有保存的[1,n-1]中的整数秘密;
gB=g^(bc),其中,符号^表示针对符号^前面的元素进行幂运算,符号^后面的元素是幂运算的次数,bc是b和c的模n乘积,g=e(P1,Ppub),其中P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥 dA、针对消息M进行数字签名的主体可以是调用这两个装置的密码应用程序、系统或密码模块,或者两个装置之一中的密码应用程序、系统):
首先,两个装置通过交互计算得到w=gB^(r1r2),其中r1是第1号装置在[1,n-1]区间内随机选择的整数,r2是第2号装置在[1,n-1]区间内随机选择的整数;
然后,(第1号或第2号装置或其他装置)计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、 GT的阶;
(h无需保密,可根据需要自由传送)
(第1号或第2号装置或其他装置)检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;
第1号装置计算S1=[r1]PB,将S1发送给第2号装置;
(此时S1=[r1b]dA)
接收到S1后,第2号装置检查S1是否为零元,若为零元,则第2号装置报错,中止计算或两个装置重新计算,否则(S1不为零元),第2号装置计算S2=[r2]S1+[-h]PA;
(此时S2=[(r1r2)b-c-1h]dA)
第2号装置将S2发送给第1号装置;
第1号装置接收到S2后计算S=[c]S2;
(此时S=[(r1r2)bc-h]dA)
最后,第1号装置利用用户的身份标识IDA、消息M,验证(h,S)作为消息M的数字签名的有效性,若有效,则(h,S)为生成的针对消息M的数字签名,否则,第1号装置报错,或者两个装置重新进行数字签名的生成。
对于以上所述方案一确定方法,两个装置按如下方式计算得到 w=gB^(r1r2):
第2号装置计算g2=gB^r2,将g2发送第1号装置;
第1号装置计算w=g2^r1;
或者,
第1号装置计算g1=gB^r1,将g1发送第2号装置;
第2号装置计算w=g1^r2,之后将w发送第1号装置。
方案二、
方案二确定的具有乘积r参数的SM9数字签名协同生成方法如下:
方法同样涉及两个分别标号为第1号和第2号的装置;
第1号装置保存有秘密PA=[c-1]dA,其中dA是用户的身份标识IDA所对应的SM9标识私钥,c-1为c的模n乘法逆(即c-1c mod n=1),而c是第2号装置保存的[1,n-1]区间内的整数秘密,n为SM9密码算法中群G1、 G2、GT的阶(为素数);两个装置都不保存有dA;([1,n-1]中的整数秘密通常是在[1,n-1]中随机选择的整数,或者是从[1,n-1]中随机选择的整数所导出的整数)
在初始化阶段计算有:
PB=[b]dA,其中b是第1号、第2号装置都没有保存的[1,n-1]中的整数秘密;
gB=g^b,其中,符号^表示针对符号^前面的元素进行幂运算,符号^ 后面的元素是幂运算的次数,g=e(P1,Ppub),其中P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥 dA、针对消息M进行数字签名的主体可以是调用这两个装置的密码应用程序、系统或密码模块,或者两个装置之一中的密码应用程序、系统):
首先,两个装置通过交互计算得到w=gB^(r1r2),其中r1是第1号装置在[1,n-1]区间内随机选择的整数,r2是第2号装置在[1,n-1]区间内随机选择的整数;
然后,(第1号或第2号装置或其他装置)计算h=H2(M||w,n),其中 H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
(h无需保密,可根据需要自由传送)
(第1号或第2号装置或其他装置)检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;
第1号装置计算S1=[(r1)-1]PA或S1=[(r1)-1h]PA,将S1发送给第2号装置,其中(r1)-1是r1的模n乘法逆(即r1(r1)-1mod n=1);
(此时S1=[(cr1)-1]dA或S1=[(cr1)-1h]dA)
第2号装置接收到S1后,按如下方式计算S2:
若S1的计算式是S1=[(r1)-1]PA,则S2=[r2]PB+[-hc]S1;
若S1的计算式是S1=[(r1)-1h]PA,则S2=[r2]PB+[-c]S1;
(此时S2=[r2b-(r1)-1h]dA)
第2号装置将S2发送给第1号装置;
第1号装置接收到S2后计算S=[r1]S2;
(此时S=[(r1r2)b-h]dA)
最后,第1号装置利用用户的身份标识IDA、消息M,验证(h,S)作为消息M的数字签名的有效性,若有效,则(h,S)为生成的针对消息M的数字签名,否则,第1号装置报错,或者两个装置重新进行数字签名的生成。
对于以上所述方案二确定的方法,两个装置计算得到w=gB^(r1r2)的方式同方案一。
方案三、
方案三确定的具有乘积r参数的SM9数字签名协同生成方法如下:
方法同样涉及两个分别标号为第1号和第2号的装置;
所述方法涉及两个分别标号为第1号和第2号的装置;
用户的身份标识IDA所对应的SM9标识私钥dA被分成了两份,分别是dA1、dA2,且满足关系dA1+dA2=dA;
第1号装置保存有秘密(份额)dA1以及[1,n-1]区间内的整数秘密c,第2号装置保存有秘密PA2=[c-1]dA2(第2号装置不必保存dA2),其中,n 为SM9密码算法中群G1、G2、GT的阶(为素数),c-1是c的模n乘法逆(即 (c-1c)mod n=1);两个装置都不保存有dA;([1,n-1]中的整数秘密通常是在[1,n-1]中随机选择的一个整数,或者是从[1,n-1]中随机选择的整数所导出的整数)
在初始化阶段计算有:
PB=[b]dA,其中b是[1,n-1]中的第1号、第2号装置都没有保存的整数秘密;
gB=g^(bc),其中,符号^表示针对符号^前面的元素进行幂运算,符号^后面的元素是幂运算的次数,g=e(P1,Ppub),其中P1为G1中的生成元, Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这两个装置的密码应用程序、系统或密码模块,或者两个装置之一中的密码应用程序、系统):
首先,两个装置通过交互计算得到w=gB^(r1r2),其中r1是第1号装置在[1,n-1]区间内随机选择的整数,r2是第2号装置在[1,n-1]区间内随机选择的整数;
然后,(第1号或第2号装置或其他装置)计算h=H2(M||w,n),其中 H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、 GT的阶;
(h无需保密,可根据需要自由传送)
(第1号或第2号装置或其他装置)检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;
第1号装置计算S1=[r1]PB,将S1发送给第2号装置;
(此时S1=[r1b]dA)
接收到S1后,第2号装置检查S1是否为零元,若是,则第2号装置报错,中止计算或两个装置重新计算,否则(S1不为零元),第2号装置计算S2=[r2]S1+[-h]PA2;
(此时S2=[(r2r1)b]dA+[-c-1h]dA2)
第2号装置将S2发送给第1号装置;
接收到S2后,第1号装置检查S2是否为零元,若S2为零元,则第1 号装置报错,中止计算或两个装置重新计算,否则(S2不为零元),第1 号装置计算S=[c]S2+[-h]dA1;
(此时S=[(r1r2)bc-h]dA)
则(h,S)为生成的针对消息M的数字签名。
(可选地,第1号装置或其他装置可以利用用户的身份标识IDA、消息M,验证(h,S)作为消息M的数字签名的有效性,但这不是必须的)
对于以上所述方案三确定的方法,(初始化阶段)将用户的身份标识 IDA所对应的SM9标识私钥dA分成(秘密份额)dA1、dA2的方法包括:
知道dA的装置在[1,n-1]中随机选择两个整数c1、c2且(c1+c2)mod n ≠0,然后计算dA1=[c1(c1+c2)-1]dA,dA2=[c2(c1+c2)-1]dA,其中(c1+c2)-1是(c1+c2) 的模n乘法逆,则dA1、dA2为所求;
或者,知道dA的装置在[2,n-1]中随机选择一个整数t,然后计算 dA1=[t]dA,dA2=dA-dA1,则dA1、dA2为所求;
或者,知道dA的装置在[1,n-1]中随机选择一个整数t,然后计算 dA1=[t]P1,dA2=dA-dA1,其中P1是SM9双线性映射中的群G1的生成元;若dA2不是零元,则dA1、dA2为所求,若dA2是零元,则重新选择t,重新计算 dA1、dA2,直到dA2不是零元;
所述知道dA的装置是第1号装置、第2号装置中的一个装置,或者两个装置之外的一个装置(比如标识私钥生成系统,或其他密钥服务系统)。
对于以上所述方案三确定的方法,两个装置计算得到w=gB^(r1r2)的方式同方案一。
对于以上方案一、二、三,可构建相应的SM9数字签名协同生成系统,系统包括两个装置,两个装置按前述具有乘积r参数的SM9数字签名协同生成方法的方案一或方案二或方案三生成针对消息的数字签名。
从以上描述可以看到,通过本发明的方法和系统,当需要使用用户标识私钥dA对消息进行数字签名时,两个装置可以通过交互协同生成针对消息的数字签名,且协同计算过程采用的是乘积r参数,从而具有较高的安全性。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例仅是本发明列举的几个可能的实施例,不代表全部可能的实施例,不作为对本发明的限定。
实施例1、
此实施例涉及两个分别标号为第1号和第2号的装置。
在初始化阶段,知道dA的装置在[1,n-1]中随机选取一个整数c、一个整数b,计算PA=[c-1]dA,PB=[b]dA,gB=g^(bc);c作为秘密由第1号装置保存,PA作为秘密由第2号装置保存;将b、dA销毁;PB和gB由需要使用的装置使用。
这里知道dA的装置是第1号、第2号两个装置中的一个装置,或者是两个装置之外的一个装置(如标识私钥生成系统、其他密钥服务系统)。
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按前述SM9数字签名协同生成方法的方案一生成针对消息M的数字签名。
实施例2、
此实施例涉及两个分别标号为第1号和第2号的装置。
在初始化阶段,知道dA的装置在[1,n-1]中随机选取一个整数c、一个整数b,计算PA=[c-1]dA,PB=[b]dA,gB=g^b;PA作为秘密由第1号装置保存,c作为秘密由第2号装置保存;将b、dA销毁;PB和gB由需要使用的装置使用。
这里知道dA的装置是第1号、第2号两个装置中的一个装置,或者是两个装置之外的一个装置(如标识私钥生成系统、其他密钥服务系统)。
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按前述SM9数字签名协同生成方法的方案二生成针对消息M的数字签名。
实施例3、
此实施例涉及两个分别标号为第1号和第2号的装置。
在初始化阶段,知道dA的装置在[1,n-1]中随机选取一个整数c、一个整数b,计算PB=[c-1b]dA,gB=g^b;
之后,在[1,n-1]中随机选择两个整数c1、c2且(c1+c2)mod n≠0,然后计算dA1=[c1(c1+c2)-1]dA,dA2=[c2(c1+c2)-1]dA,其中(c1+c2)-1是(c1+c2)的模 n乘法逆;
或者,知道dA的装置在[2,n-1]中随机选择一个整数t,然后计算 dA1=[t]dA,dA2=dA-dA1;
或者,知道dA的装置在[1,n-1]中随机选择一个整数t,然后计算 dA1=[t]P1,dA2=dA-dA1,其中P1是SM9双线性映射中的群G1的生成元;若 dA2是零元,则重新选择t,重新计算dA1、dA2,直到dA2不是零元;
计算得到dA1、dA2后,计算PA2=[c-1]dA2;
然后将c、dA1作为秘密由第1号装置保存,将PA2作为秘密由第2号装置保存;将b、dA、dA2销毁;PB和gB由需要使用的装置使用。
这里知道dA的装置是第1号、第2号两个装置中的一个装置,或者是两个装置之外的一个装置(如标识私钥生成系统、密钥服务系统)。
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按前述SM9数字签名协同生成方法的方案三生成针对消息M的数字签名。
依据本发明的方法可以构建相应的SM9数字签名协同生成系统,系统包括两个装置,其中一个被标号为第1号装置,另一个被标号为第2 号装置,这两个装置可以都是提供密码服务的密码服务器,或者两个装置中的一个装置是用户装置,另一个是提供密码服务的密码服务器,或者两个装置都是用户装置(比如一个台式机、一个移动终端),两个装置通过实施本发明的SM9数字签名协同生成方法的方案一或方案二或方案三,包括实施前述实施例1-3,通过交互协同生成使用用户的SM9标识私钥dA、针对消息的数字签名。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种具有乘积r参数的SM9数字签名协同生成方法,其特征是:
所述方法涉及两个分别标号为第1号和第2号的装置;
第1号装置保存有[1,n-1]区间内的整数秘密c,其中n为SM9密码算法中群G1、G2、GT的阶;第2号装置保存有秘密PA=[c-1]dA,其中dA是用户的身份标识IDA所对应的SM9标识私钥,c-1为c的模n乘法逆;两个装置都不保存有dA;
在初始化阶段计算有:
PB=[b]dA,其中b是第1号、第2号装置都没有保存的[1,n-1]中的整数秘密;
gB=g^(bc),其中,符号^表示针对符号^前面的元素进行幂运算,符号^后面的元素是幂运算的次数,bc是b和c的模n乘积,g=e(P1,Ppub),其中P1为G1中的生成元,Ppub为主公钥;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成:
首先,两个装置通过交互计算得到w=gB^(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;
第1号装置计算S1=[r1]PB,将S1发送给第2号装置;
接收到S1后,第2号装置检查S1是否为零元,若为零元,则第2号装置报错,中止计算或两个装置重新计算,否则,第2号装置计算S2=[r2]S1+[-h]PA;
第2号装置将S2发送给第1号装置;
第1号装置接收到S2后计算S=[c]S2;
最后,第1号装置利用用户的身份标识IDA、消息M,验证(h,S)作为消息M的数字签名的有效性,若有效,则(h,S)为生成的针对消息M的数字签名,否则,第1号装置报错,或者两个装置重新进行数字签名的生成。
2.根据权利要求1所述的具有乘积r参数的SM9数字签名协同生成方法,其特征是:两个装置按如下方式计算得到w=gB^(r1r2):
第2号装置计算g2=gB^r2,将g2发送第1号装置;
第1号装置计算w=g2^r1;
或者,
第1号装置计算g1=gB^r1,将g1发送第2号装置;
第2号装置计算w=g1^r2,之后将w发送第1号装置。
3.一种基于权利要求1或2所述的SM9数字签名协同生成方法的SM9数字签名协同生成系统,其特征是:
所述系统包括两个分别标号为第1号、第2号的装置;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按所述SM9数字签名协同生成方法生成针对消息M的数字签名。
4.一种具有乘积r参数的SM9数字签名协同生成方法,其特征是:
所述方法涉及两个分别标号为第1号和第2号的装置;
第1号装置保存有秘密PA=[c-1]dA,其中dA是用户的身份标识IDA所对应的SM9标识私钥,c-1为c的模n乘法逆,而c是第2号装置保存的[1,n-1]区间内的整数秘密,n为SM9密码算法中群G1、G2、GT的阶;两个装置都不保存有dA;
在初始化阶段计算有:
PB=[b]dA,其中b是第1号、第2号装置都没有保存的[1,n-1]中的整数秘密;
gB=g^b,其中,符号^表示针对符号^前面的元素进行幂运算,符号^后面的元素是幂运算的次数,g=e(P1,Ppub),其中P1为G1中的生成元,Ppub为主公钥;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成:
首先,两个装置通过交互计算得到w=gB^(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;
第1号装置计算S1=[(r1)-1]PA或S1=[(r1)-1h]PA,将S1发送给第2号装置,其中(r1)-1是r1的模n乘法逆;
第2号装置接收到S1后,按如下方式计算S2:
若S1的计算式是S1=[(r1)-1]PA,则S2=[r2]PB+[-hc]S1;
若S1的计算式是S1=[(r1)-1h]PA,则S2=[r2]PB+[-c]S1;
第2号装置将S2发送给第1号装置;
第1号装置接收到S2后计算S=[r1]S2;
最后,第1号装置利用用户的身份标识IDA、消息M,验证(h,S)作为消息M的数字签名的有效性,若有效,则(h,S)为生成的针对消息M的数字签名,否则,第1号装置报错,或者两个装置重新进行数字签名的生成。
5.根据权利要求4所述的具有乘积r参数的SM9数字签名协同生成方法,其特征是:两个装置按如下方式计算得到w=gB^(r1r2):
第2号装置计算g2=gB^r2,将g2发送第1号装置;
第1号装置计算w=g2^r1;
或者,
第1号装置计算g1=gB^r1,将g1发送第2号装置;
第2号装置计算w=g1^r2,之后将w发送第1号装置。
6.一种基于权利要求4或5所述的SM9数字签名协同生成方法的SM9数字签名协同生成系统,其特征是:
所述系统包括两个分别标号为第1号、第2号的装置;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按所述SM9数字签名协同生成方法生成针对消息M的数字签名。
7.一种具有乘积r参数的SM9数字签名协同生成方法,其特征是:
所述方法涉及两个分别标号为第1号和第2号的装置;
用户的身份标识IDA所对应的SM9标识私钥dA被分成了两份,分别是dA1、dA2,且满足关系dA1+dA2=dA;
第1号装置保存有秘密dA1以及[1,n-1]区间内的整数秘密c,第2号装置保存有秘密PA2=[c-1]dA2,其中,n为SM9密码算法中群G1、G2、GT的阶,c-1是c的模n乘法逆;两个装置都不保存有dA;
在初始化阶段计算有:
PB=[b]dA,其中b是[1,n-1]中的第1号、第2号装置都没有保存的整数秘密;
gB=g^(bc),其中,符号^表示针对符号^前面的元素进行幂运算,符号^后面的元素是幂运算的次数,g=e(P1,Ppub),其中P1为G1中的生成元,Ppub为主公钥;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成:
首先,两个装置通过交互计算得到w=gB^(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;
第1号装置计算S1=[r1]PB,将S1发送给第2号装置;
接收到S1后,第2号装置检查S1是否为零元,若是,则第2号装置报错,中止计算或两个装置重新计算,否则,第2号装置计算S2=[r2]S1+[-h]PA2;
第2号装置将S2发送给第1号装置;
接收到S2后,第1号装置检查S2是否为零元,若S2为零元,则第1号装置报错,中止计算或两个装置重新计算,否则,第1号装置计算S=[c]S2+[-h]dA1;
则(h,S)为生成的针对消息M的数字签名。
8.根据权利要求7所述的具有乘积r参数的SM9数字签名协同生成方法,其特征是:将用户的身份标识IDA所对应的SM9标识私钥dA分成dA1、dA2的方法包括:
知道dA的装置在[1,n-1]中随机选择两个整数c1、c2且(c1+c2)mod n≠0,然后计算dA1=[c1(c1+c2)-1]dA,dA2=[c2(c1+c2)-1]dA,其中(c1+c2)-1是(c1+c2)的模n乘法逆,则dA1、dA2为所求;
或者,知道dA的装置在[2,n-1]中随机选择一个整数t,然后计算dA1=[t]dA,dA2=dA-dA1,则dA1、dA2为所求;
或者,知道dA的装置在[1,n-1]中随机选择一个整数t,然后计算dA1=[t]P1,dA2=dA-dA1,其中P1是SM9双线性映射中的群G1的生成元;若dA2不是零元,则dA1、dA2为所求,若dA2是零元,则重新选择t,重新计算dA1、dA2,直到dA2不是零元;
所述知道dA的装置是第1号装置、第2号装置中的一个装置,或者两个装置之外的一个装置。
9.根据权利要求7所述的具有乘积r参数的SM9数字签名协同生成方法,其特征是:两个装置按如下方式计算得到w=gB^(r1r2):
第2号装置计算g2=gB^r2,将g2发送第1号装置;
第1号装置计算w=g2^r1;
或者,
第1号装置计算g1=gB^r1,将g1发送第2号装置;
第2号装置计算w=g1^r2,之后将w发送第1号装置。
10.一种基于权利要求7或8或9所述的SM9数字签名协同生成方法的SM9数字签名协同生成系统,其特征是:
所述系统包括两个分别标号为第1号、第2号的装置;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按所述SM9数字签名协同生成方法生成针对消息M的数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910433799.6A CN110213057B (zh) | 2019-05-23 | 2019-05-23 | 具有乘积r参数的SM9数字签名协同生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910433799.6A CN110213057B (zh) | 2019-05-23 | 2019-05-23 | 具有乘积r参数的SM9数字签名协同生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110213057A true CN110213057A (zh) | 2019-09-06 |
CN110213057B CN110213057B (zh) | 2021-01-08 |
Family
ID=67788361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910433799.6A Active CN110213057B (zh) | 2019-05-23 | 2019-05-23 | 具有乘积r参数的SM9数字签名协同生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110213057B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110943842A (zh) * | 2019-11-18 | 2020-03-31 | 武汉理工大学 | 一种sm9数字签名安全协同生成方法及系统 |
CN110943828A (zh) * | 2019-11-05 | 2020-03-31 | 武汉理工大学 | 秘密数运算转换方法及系统 |
CN111262691A (zh) * | 2020-01-07 | 2020-06-09 | 武汉理工大学 | 基于混合主密钥的标识私钥生成及使用方法及系统和装置 |
CN112019352A (zh) * | 2020-09-07 | 2020-12-01 | 北京三未信安科技发展有限公司 | 一种sm9快速签名方法、系统及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081771A1 (en) * | 2001-10-25 | 2003-05-01 | Yuichi Futa | Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device |
WO2016051122A1 (en) * | 2014-09-30 | 2016-04-07 | Kabushiki Kaisha Toshiba | Homomorphic based method for distributing data from one or more metering devices to two or more third parties |
CN106549770A (zh) * | 2017-01-13 | 2017-03-29 | 武汉理工大学 | Sm2数字签名生成方法及系统 |
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及系统 |
CN107968710A (zh) * | 2017-11-27 | 2018-04-27 | 武汉理工大学 | Sm9数字签名分离交互生成方法及系统 |
CN109660361A (zh) * | 2019-02-27 | 2019-04-19 | 武汉大学 | 一种对称环境下多方联合生成sm9数字签名的方法 |
-
2019
- 2019-05-23 CN CN201910433799.6A patent/CN110213057B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081771A1 (en) * | 2001-10-25 | 2003-05-01 | Yuichi Futa | Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device |
WO2016051122A1 (en) * | 2014-09-30 | 2016-04-07 | Kabushiki Kaisha Toshiba | Homomorphic based method for distributing data from one or more metering devices to two or more third parties |
CN106549770A (zh) * | 2017-01-13 | 2017-03-29 | 武汉理工大学 | Sm2数字签名生成方法及系统 |
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及系统 |
CN107968710A (zh) * | 2017-11-27 | 2018-04-27 | 武汉理工大学 | Sm9数字签名分离交互生成方法及系统 |
CN109660361A (zh) * | 2019-02-27 | 2019-04-19 | 武汉大学 | 一种对称环境下多方联合生成sm9数字签名的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110943828A (zh) * | 2019-11-05 | 2020-03-31 | 武汉理工大学 | 秘密数运算转换方法及系统 |
CN110943842A (zh) * | 2019-11-18 | 2020-03-31 | 武汉理工大学 | 一种sm9数字签名安全协同生成方法及系统 |
CN110943842B (zh) * | 2019-11-18 | 2023-03-28 | 武汉理工大学 | 一种sm9数字签名安全协同生成方法及系统 |
CN111262691A (zh) * | 2020-01-07 | 2020-06-09 | 武汉理工大学 | 基于混合主密钥的标识私钥生成及使用方法及系统和装置 |
CN111262691B (zh) * | 2020-01-07 | 2023-04-25 | 武汉理工大学 | 基于混合主密钥的标识私钥生成及使用方法及系统和装置 |
CN112019352A (zh) * | 2020-09-07 | 2020-12-01 | 北京三未信安科技发展有限公司 | 一种sm9快速签名方法、系统及电子设备 |
CN112019352B (zh) * | 2020-09-07 | 2024-02-27 | 三未信安科技股份有限公司 | 一种sm9快速签名方法、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110213057B (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107819585B (zh) | Sm9数字签名协同生成方法及系统 | |
CN107968710B (zh) | Sm9数字签名分离交互生成方法及系统 | |
US10530585B2 (en) | Digital signing by utilizing multiple distinct signing keys, distributed between two parties | |
CN110213057B (zh) | 具有乘积r参数的SM9数字签名协同生成方法及系统 | |
US8429408B2 (en) | Masking the output of random number generators in key generation protocols | |
Huang et al. | Certificateless signature revisited | |
CN107733648B (zh) | 一种基于身份的rsa数字签名生成方法及系统 | |
CN106603246B (zh) | 一种sm2数字签名分割生成方法及系统 | |
Zhang et al. | An efficient RSA-based certificateless signature scheme | |
CN110120939B (zh) | 一种基于异构系统的可否认认证的加密方法和系统 | |
CN106850229B (zh) | 基于乘积秘密分割的sm2数字签名生成方法及系统 | |
CN109951292B (zh) | 精简的sm9数字签名分离交互生成方法及系统 | |
JP2004208262A (ja) | バイリニアペアリングを用いたidに基づくリング署名装置及び方法 | |
CN110166235B (zh) | 增强安全的sm9数字签名协同生成方法及系统 | |
CN107104793B (zh) | 一种数字签名生成方法及系统 | |
CN110519051B (zh) | r参数和秘密双乘积的SM9签名协同生成方法及系统 | |
CN109962783B (zh) | 基于递进计算的sm9数字签名协同生成方法及系统 | |
CN110380855B (zh) | 支持多方协同增强安全的sm9数字签名生成方法及系统 | |
CN110299998B (zh) | 借助中间参数的sm9数字签名协同生成方法及系统 | |
CN110266486B (zh) | 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 | |
EP2395698B1 (en) | Implicit certificate generation in the case of weak pseudo-random number generators | |
Wu et al. | ID-based remote authentication with smart cards on open distributed system from elliptic curve cryptography | |
Meng et al. | A secure and efficient on-line/off-line group key distribution protocol | |
CN110166256B (zh) | 具有乘积r参数的SM9数字签名多方协同生成方法及系统 | |
CN110830265A (zh) | 一种无证书混合密签通讯方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |