CN110266486A - 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 - Google Patents

基于乘积秘密共享的sm9数字签名简捷生成方法及系统 Download PDF

Info

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
Application number
CN201910589877.1A
Other languages
English (en)
Other versions
CN110266486B (zh
Inventor
龙毅宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University of Technology WUT
Original Assignee
Wuhan University of Technology WUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan University of Technology WUT filed Critical Wuhan University of Technology WUT
Priority to CN201910589877.1A priority Critical patent/CN110266486B/zh
Publication of CN110266486A publication Critical patent/CN110266486A/zh
Application granted granted Critical
Publication of CN110266486B publication Critical patent/CN110266486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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数字签名简捷生成方法及系统。
背景技术
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的数字签名。
CN201910589877.1A 2019-07-02 2019-07-02 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 Active CN110266486B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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数字签名分离交互生成方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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