CN107968710B - Sm9数字签名分离交互生成方法及系统 - Google Patents
Sm9数字签名分离交互生成方法及系统 Download PDFInfo
- Publication number
- CN107968710B CN107968710B CN201711206787.7A CN201711206787A CN107968710B CN 107968710 B CN107968710 B CN 107968710B CN 201711206787 A CN201711206787 A CN 201711206787A CN 107968710 B CN107968710 B CN 107968710B
- Authority
- CN
- China
- Prior art keywords
- digital signature
- devices
- calculates
- interval
- integer
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
发明涉及SM9数字签名的分离交互生成方法:装置1和装置2有[1,n‑1]内的整数秘密c1,c2,n为G1、G2、GT的阶;PA=[(c1c2)‑1]dA,dA是用户的SM9私钥;当需使用dA针对消息M数字签名时,两装置先计算w=g^(r1r2),r1、r2是装置1、2在[1,n‑1]中任选整数,g=e(P1,Ppub);若w≠g^h,装置1计算h=H2(M||w,n),S1=[r1]PA,将S1发送给装置2;装置2计算S2=[c2r2]S1+[‑c2h]PA,将S2发送给装置1;装置1计算S=[c1]S2,验证(h,S)作为消息M数字签名的有效性,若验证通过,则(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标识私钥的情况下,通过在线交互实时生成使用用户的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数字签名分离交互生成方法的方案一涉及两个分别标号为第1号和第2号的装置;两个装置分别保存有[1,n-1]区间内的整数秘密c1,c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数),ci是第i号装置保存的秘密,i=1,2;
在初始化阶段预先计算得到:
PA=[(c1c2)-1]dA,其中dA是用户的身份标识IDA所对应的SM9标识私钥,(c1c2)-1为(c1c2)mod n的模n乘法逆;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这两个装置的密码应用程序、系统或密码模块,或者两个装置之一中的密码应用程序、系统):
首先,两个装置通过交互计算得到w=g^(r1r2)或者w=g^(r1+r2),其中r1是第1号装置在[1,n-1]区间内随机选择的整数,r2是第2号装置在[1,n-1]区间内随机选择的整数,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
然后,第1号装置计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
第1号装置检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;
第1号装置取S0=PA,S1=[r1]PA或者取S0=[(r1)-1]PA,S1=PA(始终S1=[r1]S0),将S0、S1发送给第2号装置;
第2号装置接收到S0、S1后,按如下方式进行S2的计算:
若w的计算式是w=g^(r1r2),则S2=[c2r2]S1+[-c2h]S0;
(此时S2=[c2r2r1-c2h]S0)
若w的计算式是w=g^(r1+r2),则S2=[c2]S1+[c2(r2-h)]S0;
(此时S2=[c2(r1+r2)-c2h]S0)
第2号装置将S2发送给第1号装置;
第1号装置接收到S2后按如下方式计算S:
若第1号装置之前取S0=PA,则S=[c1]S2;
若第1号装置之前取S0=[(r1)-1]PA,则S=[c1r1]S2;
(若w=g^(r1r2),则S=[c1c2r2r1-c1c2h]PA;若w=g^(r1+r2),则S=[c1c2(r2+r1)-c1c2h]PA)
然后第1号装置利用用户的身份标识IDA、消息M,验证(h,S)作为消息M的数字签名的有效性,若有效,则(h,S)为生成的针对消息M的数字签名,否则,第1号装置报错,或者两个装置重新进行数字签名的生成。
对于以上方案一,若计算得到w采用的计算式是w=g^(r1r2),则两个装置按如下方式计算得到w=g^(r1r2):
第2号装置计算g2=g^(r2),将g2发送第1号装置;
第1号装置计算w=g2^(r1),
或者,
第1号装置计算g1=g^(r1),将g1发送第2号装置;
第2号装置计算w=g1^(r2),之后将w发送第1号装置。
对于以上方案一,若计算得到w采用的计算式是w=g^(r1+r2),则两个装置按如下方式计算得到w=g^(r1+r2):
第2号装置计算g2=g^(r2),将g2发送第1号装置;
第1号装置计算w=(g^(r1))g2,
或者,
第1号装置计算g1=g^(r1),将g1发送第2号装置;
第2号装置计算w=(g^(r2))g1,之后将w发送第1号装置。
对于以上方案一,在初始化阶段,两个装置获得秘密c1,c2,以及计算得到PA的一种方式如下:
预先知道dA的装置(可以是两个装置中的一个装置或两个装置之外的一个装置)在[1,n-1]区间内随机选择两个整数c1、c2,计算:
PA=[(c1c2)-1]dA;
然后将dA销毁,将PA、ci分发给第i号装置,i=1,2(也许包括自己)。
对于以上方案一,若dA是第1号装置预先知道的,则在初始化阶段,两个装置获得秘密c1,c2,及计算得到PA的一种方式如下:
第1号装置在[1,n-1]区间内随机选择一个整数c1,或者在[1,n-1]区间内固定选取一个对外保密的整数c1(即对不同的dA固定选取c1的值),计算Q1=[(c1)-1]dA,然后将Q1发送给第2号装置;
第2号装置接收到Q1,在[1,n-1]区间内随机选择一个整数c2,或者在[1,n-1]区间内固定选取一个对外保密的整数c2(即对不同的dA固定选取c2的值),计算PA=[(c2)-1]Q1;
最后,第2号装置将PA发送给第1号装置,第1号装置将dA销毁;
若dA是第2号装置预先知道的,则在初始化阶段,两个装置获得秘密c1,c2,及计算得到PA的一种方式如下:
第2号装置在[1,n-1]区间内随机选择一个整数c2,或者在[1,n-1]区间内固定选取一个对外保密的整数c2(即对不同的dA固定选取c2的值),计算Q2=[(c2)-1]dA,然后将Q2发送给第1号装置;
第1号装置接收到Q2,在[1,n-1]区间内随机选择一个整数c1,或者在[1,n-1]区间内固定选取一个对外保密的整数c1(即对不同的dA固定选取c1的值),计算PA=[(c1)-1]Q2;
最后,第1号装置将PA发送给第2号装置,第2号装置将dA销毁。
对于以上方案一,若用户的SM9标识私钥dA同时用于数据解密,则当数据解密过程中需要计算e(dA,V)时,其中V是群G2中的一个元,所述两个装置按如下方式进行e(dA,V)的协同计算:
第1号装置计算v1=e(PA,V)^c1,将v1发送给第2号装置;
第2号装置接收v1到后,计算v=v1^c2;
则v即为e(dA,V);
或者,反过来,
第2号装置计算v2=e(PA,V)^c2,将v2发送给第1号装置;
第1号装置接收v2到后,计算v=v2^c1;
则v即为e(dA,V)。
方案二、
SM9数字签名分离交互生成方法的方案二同样涉及两个分别标号为第1号和第2号的装置;两个装置分别保存有[1,n-1]区间内的整数秘密c1,c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数),ci是第i号装置保存的秘密,i=1,2;
在初始化阶段预先计算得到:
PA=[(c1+c2)-1]dA,
gc=g^((c1+c2)-1),
其中dA是用户的身份标识IDA所对应的SM9标识私钥,(c1+c2)-1为(c1+c2)mod n的模n乘法逆,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这两个装置的密码应用程序、系统或密码模块,或者两个装置之一中的密码应用程序、系统):
首先,两个装置通过交互计算得到w=gc^(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的阶;检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h,否则,继续进行后续计算;
第1号装置计算S1=[(r1)-1]PA,将S1发送给第2号装置;
第2号装置接收到S1后,计算S2=[r2]PA+[-c2h]S1;(此时,S2=(r2-c2h(r1)-1)PA)
第2号装置将S2发送给第1号装置;
第1号装置检查S2是否为零元,若是,则报错,或者重新进行数字签名的生成,否则,第1号装置计算S=[r1]S2+[-c1h]PA;
(此时,S2=(r1r2-h(c1+c2))PA));
则(h,S)即为生成的针对消息M的数字签名。
对于以上方案二,两个装置按如下方式计算得到w=gc^(r1r2):
第2号装置计算g2=gc^(r2),将g2发送第1号装置;
第1号装置计算w=g2^(r1);
或者,
第1号装置计算g1=gc^(r1),将g1发送第2号装置;
第2号装置计算w=g1^(r2)。
对于以上方案二,在初始化阶段,两个装置获得秘密c1,c2,及计算得到PA、gc的一种方式如下:
预先知道dA的装置(可以是2个装置中的一个装置或2个装置之外的一个装置)在[1,n-1]区间内随机选择2个整数c1、c2,且使得(c1+c2)mod n≠0,然后计算:
PA=[(c1+c2)-1]dA,
gc=g^((c1+c2)-1);
然后将dA销毁,将PA、gc、ci分发给第i号装置,i=1,2(也许包括自己)。
对于以上方案一和方案二,可构建相应的SM9数字签名分离交互生成系统,系统包括两个装置,两个装置按所述SM9数字签名分离交互生成方法的方案一或方案二生成针对消息的数字签名。
从以上描述可以看到,通过本发明的方法和系统,当需要使用用户标识私钥dA对消息进行数字签名时,两个装置可以分离交互生成针对消息的数字签名。
附图说明
无。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例仅是本发明列举的几个可能的实施例,不代表全部可能的实施例,不作为对本发明的限定。
实施例1、
此实施例涉及两个分别标号为第1号和第2号的装置;第1号装置保存有[1,n-1]区间内的整数秘密c1,第2号装置保存有[1,n-1]区间内的整数秘密c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数)。两个装置采用前述SM9数字签名分离交互生成方法的方案一进行数字签名的生成。
在此实施例中,当针对消息进行数字签名时,计算w采用的计算公式为w=g^(r1r2);
第1号装置取S0=PA,S1=[r1]PA;
第2号装置接收到S0、S1后,计算S2=[c2r2]S1+[-c2h]S0;
(此时S2=[c2r2r1-c2h]PA)
(若第2号装置保存有PA,则S0不用传)
第1号装置接收到S2后,计算S=[c1]S2;
(此时S=[c1c2r2r1-c1c2h]PA)
第1号装置验证(h,S)作为数字签名的有效性,若验证通过,则(h,S)为生成的针对消息的数字签名。
实施例2、
此实施例涉及两个分别标号为第1号和第2号的装置;第1号装置保存有[1,n-1]区间内的整数秘密c1,第2号装置保存有[1,n-1]区间内的整数秘密c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数)。两个装置采用前述SM9数字签名分离交互生成方法的方案一进行数字签名的生成。
在此实施例中,当针对消息进行数字签名时,计算w采用的计算公式为w=g^(r1r2);
第1号装置取S0=[(r1)-1]PA,S1=PA;
第2号装置接收到S0、S1后,计算S2=[c2r2]S1+[-c2h]S0;
(此时S2=[c2r2-c2h(r1)-1]PA)
(若第2号装置保存有PA,则S1不用传)
第1号装置接收到S2后,计算S=[c1r1]S2;
(此时S=[c1c2r1r2-c1c2h]PA)
第1号装置验证(h,S)作为数字签名的有效性,若验证通过,则(h,S)为生成的针对消息的数字签名。
实施例3、
此实施例涉及两个分别标号为第1号和第2号的装置;第1号装置保存有[1,n-1]区间内的整数秘密c1,第2号装置保存有[1,n-1]区间内的整数秘密c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数)。两个装置采用前述SM9数字签名分离交互生成方法的方案一进行数字签名的生成。
在此实施例中,当针对消息进行数字签名时,计算w采用的计算公式为w=g^(r1+r2);
第1号装置取S0=PA,S1=[r1]PA;
第2号装置接收到S0、S1后,计算S2=[c2]S1+[c2(r2-h)]S0;
(此时S2=[c2(r1+r2)-c2h]PA)
(若第2号装置保存有PA,则S0不用传)
第1号装置接收到S2后,计算S=[c1]S2;
(此时S=[c1c2(r1+r2)-c1c2h]PA)
第1号装置验证(h,S)作为数字签名的有效性,若验证通过,则(h,S)为生成的针对消息的数字签名。
实施例4、
此实施例涉及两个分别标号为第1号和第2号的装置;第1号装置保存有[1,n-1]区间内的整数秘密c1,第2号装置保存有[1,n-1]区间内的整数秘密c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数)。两个装置采用前述SM9数字签名分离交互生成方法的方案一进行数字签名的生成。
在此实施例中,当针对消息进行数字签名时,计算w采用的计算公式w=g^(r1+r2);
第1号装置S0=[(r1)-1]PA,S1=PA;
第2号装置接收到S0、S1后,计算S2=[c2]S1+[c2(r2-h)]S0;
(此时,S2=[c2+c2r2(r1)-1-c2h(r1)-1]PA)
(若第2号装置保存有PA,则S1不用传)
第1号装置接收到S2后,计算S=[c1r1]S2;
(此时,S=[c1c2(r1+r2)–c1c2h]PA)
第1号装置验证(h,S)作为数字签名的有效性,若验证通过,则(h,S)为生成的针对消息的数字签名。
在以上实施例1到实施例4中,若第1装置和/或第2装置用于针对不同的用户SM9标识私钥dA生成数字签名,则第1装置和/或第2装置针对不同的dA所使用c1和/或c2,是不同的,或者是相同的。
实施例5
此实施例涉及两个分别标号为第1号和第2号的装置;第1号装置保存有[1,n-1]区间内的整数秘密c1,第2号装置保存有[1,n-1]区间内的整数秘密c2,其中n为SM9密码算法中群G1、G2、GT的阶(为素数)。两个装置采用前述SM9数字签名分离交互生成方法的方案二进行数字签名的生成。
具体地,当生成使用用户的SM9标识私钥dA针对消息M的数字签名时,两个装置通过交互计算得到w=gc^(r1r2),其中r1、r2分别是第1、第2号装置在[1,n-1]区间内随机选择的整数;
然后,第1号或第2号装置计算h=H2(M||w,n),检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h,否则,继续进行后续计算;
然后,第1号装置计算S1=[(r1)-1]PA,将S1发送给第2号装置;
第2号装置接收到S1后,计算S2=[r2]PA+[-c2h]S1;
(此时S2=[r2-c2h(r1)-1]PA)
第2号装置将S2发送给第1号装置;
第1号装置检查S2是否为零元,若是,则报错,或者重新进行数字签名的生成,否则,第1号装置计算S=[r1]S2+[-c1h]PA;
(此时S=[r1r2-(c1+c2)h]PA)
则(h,S)即为生成的针对消息M的数字签名。
依据本发明的方法可以构建相应的SM9数字签名分离交互生成系统,系统包括两个装置,其中一个被标号为第1号装置,另一个被标号为第2号装置,这两个装置可以都是提供密码服务的密码服务器,或者两个装置中的一个装置是用户装置,另一个是提供密码服务的密码服务器,两个个装置通过实施本发明的SM9数字签名分离交互生成方法的方案一或方案二,包括实施前述实施例1-5,交互生成使用用户的SM9标识私钥dA、针对消息的数字签名。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种SM9数字签名分离交互生成方法,其特征是:
所述方法涉及两个分别标号为第1号和第2号的装置;两个装置分别保存有[1,n-1]区间内的整数秘密c1,c2,其中n为SM9密码算法中群G1、G2、GT的阶,ci是第i号装置保存的秘密,i=1,2;
在初始化阶段预先计算得到:
PA=[(c1c2)-1]dA,其中dA是用户的身份标识IDA所对应的SM9标识私钥,(c1c2)-1为(c1c2)mod n的模n乘法逆;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成:
首先,两个装置通过交互计算得到w=g^(r1r2)或者w=g^(r1+r2),其中r1是第1号装置在[1,n-1]区间内随机选择的整数,r2是第2号装置在[1,n-1]区间内随机选择的整数,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥;
然后,第1号装置计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;
第1号装置检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;
第1号装置取S0=PA,S1=[r1]PA或者取S0=[(r1)-1]PA,S1=PA,将S0、S1发送给第2号装置;
第2号装置接收到S0、S1后,按如下方式进行S2的计算:
若w的计算式是w=g^(r1r2),则S2=[c2r2]S1+[-c2h]S0;
若w的计算式是w=g^(r1+r2),则S2=[c2]S1+[c2(r2-h)]S0;
第2号装置将S2发送给第1号装置;
第1号装置接收到S2后按如下方式计算S:
若第1号装置之前取S0=PA,则S=[c1]S2;
若第1号装置之前取S0=[(r1)-1]PA,则S=[c1r1]S2;
然后第1号装置利用用户的身份标识IDA、消息M,验证(h,S)作为消息M的数字签名的有效性,若有效,则(h,S)为生成的针对消息M的数字签名,否则,第1号装置报错,或者两个装置重新生成数字签名。
2.根据权利要求1所述的SM9数字签名分离交互生成方法,其特征是:
若计算得到w采用的计算式是w=g^(r1r2),则两个装置按如下方式计算得到w=g^(r1r2):
第2号装置计算g2=g^(r2),将g2发送第1号装置;
第1号装置计算w=g2^(r1),
或者,
第1号装置计算g1=g^(r1),将g1发送第2号装置;
第2号装置计算w=g1^(r2),之后将w发送第1号装置。
3.根据权利要求1所述的SM9数字签名分离交互生成方法,其特征是:
若计算得到w采用的计算式是w=g^(r1+r2),则两个装置按如下方式计算得到w=g^(r1+r2):
第2号装置计算g2=g^(r2),将g2发送第1号装置;
第1号装置计算w=(g^(r1))g2,
或者,
第1号装置计算g1=g^(r1),将g1发送第2号装置;
第2号装置计算w=(g^(r2))g1,之后将w发送第1号装置。
4.根据权利要求1所述的SM9数字签名分离交互生成方法,其特征是:
在初始化阶段,两个装置获得秘密c1,c2,以及计算得到PA的一种方式如下:
预先知道dA的装置在[1,n-1]区间内随机选择两个整数c1、c2,计算:
PA=[(c1c2)-1]dA;
然后将dA销毁,将PA、ci分发给第i号装置,i=1,2。
5.根据权利要求1所述的SM9数字签名分离交互生成方法,其特征是:
若dA是第1号装置预先知道的,则在初始化阶段,两个装置获得秘密c1,c2,及计算得到PA的一种方式如下:
第1号装置在[1,n-1]区间内随机选择一个整数c1,或者在[1,n-1]区间内固定选取一个对外保密的整数c1,计算Q1=[(c1)-1]dA,然后将Q1发送给第2号装置;
第2号装置接收到Q1,在[1,n-1]区间内随机选择一个整数c2,或者在[1,n-1]区间内固定选取一个对外保密的整数c2,计算PA=[(c2)-1]Q1;
最后,第2号装置将PA发送给第1号装置,第1号装置将dA销毁;
若dA是第2号装置预先知道的,则在初始化阶段,两个装置获得秘密c1,c2,及计算得到PA的一种方式如下:
第2号装置在[1,n-1]区间内随机选择一个整数c2,或者在[1,n-1]区间内固定选取一个对外保密的整数c2,计算Q2=[(c2)-1]dA,然后将Q2发送给第1号装置;
第1号装置接收到Q2,在[1,n-1]区间内随机选择一个整数c1,或者在[1,n-1]区间内固定选取一个对外保密的整数c1,计算PA=[(c1)-1]Q2;
最后,第1号装置将PA发送给第2号装置,第2号装置将dA销毁。
6.一种基于权利要求1-5中任一项的SM9数字签名分离交互生成方法的SM9数字签名分离交互生成系统,其特征是:
所述系统包括两个装置,所述两个装置按所述SM9数字签名分离交互生成方法生成针对消息的数字签名。
7.一种SM9数字签名分离交互生成方法,其特征是:
所述方法涉及两个分别标号为第1号和第2号的装置;两个装置分别保存有[1,n-1]区间内的整数秘密c1,c2,其中n为SM9密码算法中群G1、G2、GT的阶,ci是第i号装置保存的秘密,i=1,2;
在初始化阶段预先计算得到:
PA=[(c1+c2)-1]dA,
gc=g^((c1+c2)-1),
其中dA是用户的身份标识IDA所对应的SM9标识私钥,(c1+c2)-1为(c1+c2)mod n的模n乘法逆,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥;
当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成:
首先,两个装置通过交互计算得到w=gc^(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的阶;检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h,否则,继续进行后续计算;
第1号装置计算S1=[(r1)-1]PA,将S1发送给第2号装置;
第2号装置接收到S1后,计算S2=[r2]PA+[-c2h]S1;
第2号装置将S2发送给第1号装置;
第1号装置检查S2是否为零元,若是,则报错,或者重新进行数字签名的生成,否则,第1号装置计算S=[r1]S2+[-c1h]PA;
则(h,S)即为生成的针对消息M的数字签名。
8.根据权利要求7所述的SM9数字签名分离交互生成方法,其特征是:
两个装置按如下方式计算得到w=gc^(r1r2):
第2号装置计算g2=gc^(r2),将g2发送第1号装置;
第1号装置计算w=g2^(r1);
或者,
第1号装置计算g1=gc^(r1),将g1发送第2号装置;
第2号装置计算w=g1^(r2)。
9.根据权利要求7所述的SM9数字签名分离交互生成方法,其特征是:
在初始化阶段,两个装置获得秘密c1,c2,及计算得到PA、gc的一种方式如下:
预先知道dA的装置在[1,n-1]区间内随机选择2个整数c1、c2,且使得(c1+c2)mod n≠0,然后计算:
PA=[(c1+c2)-1]dA,
gc=g^((c1+c2)-1);
然后将dA销毁,将PA、gc、ci分发给第i号装置,i=1,2。
10.一种基于权利要求7-9中任一项的SM9数字签名分离交互生成方法的SM9数字签名分离交互生成系统,其特征是:
所述系统包括两个装置,所述两个装置按所述SM9数字签名分离交互生成方法生成针对消息的数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711206787.7A CN107968710B (zh) | 2017-11-27 | 2017-11-27 | Sm9数字签名分离交互生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711206787.7A CN107968710B (zh) | 2017-11-27 | 2017-11-27 | Sm9数字签名分离交互生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107968710A CN107968710A (zh) | 2018-04-27 |
CN107968710B true CN107968710B (zh) | 2020-08-25 |
Family
ID=61998798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711206787.7A Active CN107968710B (zh) | 2017-11-27 | 2017-11-27 | Sm9数字签名分离交互生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107968710B (zh) |
Families Citing this family (8)
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数字签名协同生成方法及系统 |
CN110166235B (zh) * | 2019-05-21 | 2020-08-11 | 武汉理工大学 | 增强安全的sm9数字签名协同生成方法及系统 |
CN110213057B (zh) * | 2019-05-23 | 2021-01-08 | 武汉理工大学 | 具有乘积r参数的SM9数字签名协同生成方法及系统 |
CN110380855B (zh) * | 2019-06-14 | 2020-07-14 | 武汉理工大学 | 支持多方协同增强安全的sm9数字签名生成方法及系统 |
CN110166256B (zh) * | 2019-06-17 | 2020-10-02 | 武汉理工大学 | 具有乘积r参数的SM9数字签名多方协同生成方法及系统 |
CN110299998B (zh) * | 2019-07-04 | 2020-09-04 | 武汉理工大学 | 借助中间参数的sm9数字签名协同生成方法及系统 |
CN112003698B (zh) * | 2020-09-07 | 2024-04-19 | 三未信安科技股份有限公司 | 一种sm9协同数字签名方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603246A (zh) * | 2017-01-22 | 2017-04-26 | 武汉理工大学 | 一种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 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN107104793A (zh) * | 2017-04-12 | 2017-08-29 | 武汉理工大学 | 一种数字签名生成方法及系统 |
CN107135080A (zh) * | 2017-07-06 | 2017-09-05 | 深圳奥联信息安全技术有限公司 | Sm9解密方法和装置 |
CN107248909A (zh) * | 2017-03-16 | 2017-10-13 | 北京百旺信安科技有限公司 | 一种基于sm2算法的无证书安全签名方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7599491B2 (en) * | 1999-01-11 | 2009-10-06 | Certicom Corp. | Method for strengthening the implementation of ECDSA against power analysis |
-
2017
- 2017-11-27 CN CN201711206787.7A patent/CN107968710B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106712942A (zh) * | 2017-01-10 | 2017-05-24 | 武汉理工大学 | 基于秘密共享的sm2数字签名生成方法及系统 |
CN106850198A (zh) * | 2017-01-16 | 2017-06-13 | 武汉理工大学 | 基于多装置协同的sm2数字签名生成方法及系统 |
CN106603246A (zh) * | 2017-01-22 | 2017-04-26 | 武汉理工大学 | 一种sm2数字签名分割生成方法及系统 |
CN107248909A (zh) * | 2017-03-16 | 2017-10-13 | 北京百旺信安科技有限公司 | 一种基于sm2算法的无证书安全签名方法 |
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN107104793A (zh) * | 2017-04-12 | 2017-08-29 | 武汉理工大学 | 一种数字签名生成方法及系统 |
CN107135080A (zh) * | 2017-07-06 | 2017-09-05 | 深圳奥联信息安全技术有限公司 | Sm9解密方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107968710A (zh) | 2018-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107968710B (zh) | Sm9数字签名分离交互生成方法及系统 | |
CN107819585B (zh) | Sm9数字签名协同生成方法及系统 | |
US10530585B2 (en) | Digital signing by utilizing multiple distinct signing keys, distributed between two parties | |
CN107733648B (zh) | 一种基于身份的rsa数字签名生成方法及系统 | |
CN107634836B (zh) | 一种sm2数字签名生成方法及系统 | |
CN107707358B (zh) | 一种ec-kcdsa数字签名生成方法及系统 | |
CN102201920B (zh) | 一种无证书公钥密码系统的构造方法 | |
EP2566098A1 (en) | Signcryption method and device and corresponding signcryption verification method and device | |
CN107659395B (zh) | 一种多服务器环境下基于身份的分布式认证方法及系统 | |
CN110213057B (zh) | 具有乘积r参数的SM9数字签名协同生成方法及系统 | |
CN110545279A (zh) | 兼具隐私和监管功能的区块链交易方法、装置及系统 | |
CN109951292B (zh) | 精简的sm9数字签名分离交互生成方法及系统 | |
CN106936584B (zh) | 一种无证书公钥密码系统的构造方法 | |
Saranya et al. | Cloud based efficient authentication for mobile payments using key distribution method | |
CN110166235B (zh) | 增强安全的sm9数字签名协同生成方法及系统 | |
CN111355582A (zh) | 基于sm2算法的两方联合签名和解密的方法及系统 | |
CN109962783B (zh) | 基于递进计算的sm9数字签名协同生成方法及系统 | |
CN108768634B (zh) | 可验证加密签名生成方法和系统 | |
CN108055134B (zh) | 椭圆曲线点数乘及配对运算的协同计算方法及系统 | |
CN110380855B (zh) | 支持多方协同增强安全的sm9数字签名生成方法及系统 | |
CN110519051B (zh) | r参数和秘密双乘积的SM9签名协同生成方法及系统 | |
CN111565108B (zh) | 签名处理方法、装置及系统 | |
CN110299998B (zh) | 借助中间参数的sm9数字签名协同生成方法及系统 | |
CN110266486B (zh) | 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 | |
WO2013004691A1 (en) | Traitor tracing for software-implemented decryption algorithms |
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 |