CN115150062B - 签名制作数据安全受控的sm9数字签名生成方法及系统 - Google Patents
签名制作数据安全受控的sm9数字签名生成方法及系统 Download PDFInfo
- Publication number
- CN115150062B CN115150062B CN202210656980.5A CN202210656980A CN115150062B CN 115150062 B CN115150062 B CN 115150062B CN 202210656980 A CN202210656980 A CN 202210656980A CN 115150062 B CN115150062 B CN 115150062B
- Authority
- CN
- China
- Prior art keywords
- signature
- authentication information
- identification
- user
- encrypted
- 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
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000004519 manufacturing process Methods 0.000 title claims description 21
- 238000004364 calculation method Methods 0.000 claims description 73
- 238000012795 verification Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 7
- 238000012790 confirmation Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012360 testing method Methods 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及SM9数字签名生成方法:签名装置有非秘密PA=[c‑1]dA,有秘密cA=E(c),其中dA为用户SM9签名私钥,c为[1,n‑1]内的签名装置未保存的秘密,n为SM9双线性映射群的阶,E(·)是采用同态加密算法的加密运算,签名辅助系统有解密运算的私钥;对消息M签名时,签名装置、签名辅助系统在[1,n‑1]内随机选择整数r1、r2,在不暴露各自秘密的情况下,计算得到w=g^(b1r1+b2r2),其中b1=1或c‑1,b2=1或c‑1,h=H2(M||w,n),利用同态加密运算计算得到s2=(r1b1c+r2b2c‑hc)mod n或s2=(r1r2bc‑hc)mod n,S=[s2]PA,则(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私钥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,计算l=(r-h)mod n,S=[l]dA,则(h,S)为生成的数字签名;若r=h,则重新选择r,重新计算w、h,直到r≠h(这里l为字母L的小写)。
给定一个消息M的数字签名(h,S),验证签名有效性的方法如下(参加SM9规范,注意,SM9规范中签名验证过程描述使用的符号为M'、(h',S'))。
B1:检验h∈[1,n-1]是否成立,若不成立则验证不通过;
B2:检验S∈G1是否成立,若不成立则验证不通过;
B3:计算群GT中的元素g=e(P1,Ppub);
B4:计算群GT中的元素t=gh;
B5:计算整数h1=H1(IDA||hid,n)(这里是IDA用户的标识,hid是用一个字节表示的签名私钥生成函数识别符,H1()是SM9规范中定义的杂凑或散列或哈希函数);
B6:计算群G2中的元素P=[h1]P2+Ppub;
B7:计算群GT中的元素u=e(S,P);
B8:计算群GT中的元素w'=u·t;
B9:计算整数h2=H2(M||w',n),检验h2=h是否成立,若成立则验证通过;否则验证不通过(H2()是SM9规范中定义的杂凑或散列或哈希函数)。
在数字签名中,用户的签名私钥的安全极其重要,因此,通常出于安全考虑,应该在专门的密码硬件中生成、存储和使用私钥。但是,出于各种原因,人们常常会或需要采用纯软件的方式实施SM9数字签名算法,这时的用户私钥不是在专门的密码硬件中生成、存储和使用私钥,而是存储在计算装置的永久存储介质中,私钥在计算装置的内存中生成、使用,这样就存在私钥被窃取、盗用的风险。针对采用纯软件方式实施SM9数字签名算法存在的签名私钥被窃取、盗用的风险,人们提出了一系例基于秘密共享的SM9数字签名协同生成方法,在这些方法中用户的SM9签名私钥或签名私钥的秘密被分割成两份或多份,称为秘密份额,分别在两个或多个装置中存储、使用,其中一份秘密份额在用户计算装置中存储、使用,其他的一份或多份秘密份额在安全保护级别很高的计算装置(如密码服务器)中存储、使用;当需要使用用户SM9私钥对消息M进行数字签名时,两个或多个计算装置使用各自的秘密份额通过安全协同计算得到针对消息M的数字签名,所谓安全协同计算即在这个计算过程中每个装置各自的秘密份额不会被泄露、破解。
《中华人民共和国电子签名法》要求电子签名制作数据仅由签名者控制,而将私钥或私钥的相关秘密分成多份分别由多个装置保存,并在数字签名时使用并不完全符合此要求,因为用户之外的其他实体掌握了用户私钥的部分秘密即部分签名制作数据,即生成数字签名时签名制作数据不是仅由签名者控制,因此,对于采用非硬件方式实施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]是|k|个P相加后的结果的加法逆元);省略号“...”,表示多个同样(类型)的数据项或多个同样的运算;
若a、b是乘法群GT中的元,则ab或a·b表示a、b在乘法群GT上的乘(只要不产生无二义性,“·”可以省略),a-1表示a在乘法群GT中的逆元(乘法逆元),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规范中的mod N;还有,模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数字签名生成方法具体如下。
签名装置有非秘密PA=[c-1]dA,有秘密cA=E(c),其中dA为用户的SM9签名私钥,c为[1,n-1]内的签名装置未保存的秘密(通常是初始化阶段选择或计算得到的),c-1为c的模n乘法逆(即(cc-1)mod n=1),n为SM9双线性映射群G1、G2、GT的阶,n为素数,E(·)是采用同态加密算法的加密运算;
签名装置有非秘密gc=g^(c-1),其中,^表示幂运算(对^前面的元进行幂运算,^后面是幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);
所述签名装置是签名者即SM9签名私钥dA的拥有者的计算装置;所述同态加密算法为加法同态加密算法或全同态加密算法;签名辅助系统有与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥(同态加密算法的私钥),或者与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥被签名辅助系统的密钥加密,其中签名辅助系统的密钥包括对称密钥或公钥(其中公钥又包括普通公钥如RSA、SM2、SM9等公钥,或群组密码算法的群组公钥);所述签名辅助系统是辅助、协助签名装置完成数字签名生成的计算装置或系统;
若与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥被签名辅助系统的密钥加密,则签名装置还有被加密的与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥的密文dE;
当需要使用用户的SM9签名私钥dA针对消息M进行数字签名时,签名装置和签名辅助系统按如下方式生成数字签名(需要使用用户的SM9签名私钥dA、针对消息M进行数字签名的主体可以是签名装置内或外的调用签名装置的密码功能的应用程序、系统):
签名装置在[1,n-1]区间内随机选择一个整数r1;
签名辅助系统在[1,n-1]区间内随机选择一个整数r2;
签名装置和签名辅助系统在不暴露各自秘密r1、r2的情况下完成如下计算:
签名装置在确保签名辅助系统不重新选择r2的情况下,利用g、gc,通过与签名辅助系统交互计算得到w=g^(b1r1+b2r2),其中b1=1或c-1,b2=1或c-1,而b2=1仅在E(·)对应的同态加密算法是全同态加密算法时适用(否则计算s1时签名装置无法完成E(r2c)运算或计算),b1、b2用于选择w的计算式;
签名辅助系统在确保签名装置不重新选择r1的情况下,利用g、gc,通过与签名装置交互计算得到wf=g^(b1r1+b2r2);
签名装置、签名辅助系统分别检查w、wf是否为单位元(即是否有(b1r1+b2r2)mod n=0),若w和/或wf为单位元,则签名装置、签名辅助系统重新选择r1、r2,重新计算w、wf,直到w和wf为非单位元;
或者,
签名装置和签名辅助系统在不暴露各自秘密r1、r2的情况下完成如下计算:
签名装置在确保签名辅助系统不重新选择r2的情况下,利用g、gc,通过与签名辅助系统交互计算得到w=g^(br1r2),其中b=1或c-1,b用于选择w的计算式;
签名辅助系统在确保签名装置不重新选择r1的情况下,利用g、gc,通过与签名装置交互计算得到wf=g^(br1r2);
若b=1,则按w=g^(br1r2)、wf=g^(br1r2)方式计算w、wf仅在E(·)对应的同态加密算法是全同态加密算法时适用(否则计算s1时签名装置无法完成E(r1r2bc)运算或计算);
签名装置利用消息M计算得到h=H2(M||w,n),其中H2为SM9中规定的杂凑函数(散列函数、哈希函数),M||w表示将w转化成字串后与M的字串合并,n为SM9密码算法中群G1、G2、GT的阶;
签名装置检查w与g^h是否相等(即是否会出现(b1r1+b2r2)=h(mod n)或者(br1r2)=h(mod n)的情况),若w=g^h,则签名装置和签名辅助系统重新选择r1、r2,重新计算w、wf,直到w≠g^h;
签名装置按如下方式之一计算s1:
s1计算方式一:
w按计算式w=g^(b1r1+b2r2)计算得到且b2=c-1(s1计算方式一仅适合此情形);
签名装置利用h、cA、r1通过同态加密算法计算得到s1=E(r1b1c-hc(mod n));
(注意b1c的取值或为1或为c,根据b1取值可优化计算式)
s1计算方式二:
w按计算式w=g^(b1r1+b2r2)计算得到,且b2=1时E(·)对应的同态加密算法是全同态加密算法;
签名辅助系统计算c2=E(r2),将c2发送给签名装置;
签名装置利用h、cA、r1、c2通过同态加密算法计算得到s1=E(r1b1c+r2b2c-hc(modn));
(注意b1c、b2c的取值或为1或为c,根据b1、b2取值可优化计算式)
s1计算方式三:
w按计算式w=g^(br1r2)计算得到,且b=1时E(·)对应的同态加密算法是全同态加密算法;
签名辅助系统计算c2=E(r2),将c2发送给签名装置;
签名装置利用r、cA、r1、c2通过同态加密算法计算得到s1=E(r1r2bc-hc(mod n));
(注意bc的取值或为1或为c,根据b取值可优化计算式)
签名装置将h、PA、s1、IDA或hID发送给签名辅助系统,其中,IDA是用户的标识,hID=H1(IDA||hid,n)(hid是用一个字节表示的签名私钥生成函数识别符,H1()是SM9规范中定义的杂凑或散列或哈希函数);
若与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥被签名辅助系统的密钥加密,则签名装置还将dE发送给签名辅助系统,而签名辅助系统解密dE得到与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥(同态加密算法的私钥,即进行同态加密算法的解密运算的私钥);
对于s1计算方式一,签名装置和签名辅助系统按如下方式计算s:
签名辅助系统解密得到s1的明文s12,计算s2=(s12+r2)mod n,S=[s2]PA,然后签名辅助系统利用wf验证S是否是使用r1、r2、h、以及IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到,若验证失败,则转入出错处理,若验证通过,则签名辅助系统将S返回给签名装置;
对于s1计算方式二、方式三,签名装置和签名辅助系统按如下方式计算s:
签名辅助系统解密得到s1的明文s12,计算s2=s12 mod n,S=[s2]PA,然后签名辅助系统利用wf验证S是否是使用r1、r2、h、以及IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到,若验证失败,则转入出错处理,若验证通过,则签名辅助系统将S返回给签名装置;
签名装置利用w验证S是否是使用r1、r2、h、以及IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到,若验证通过,则(h,S)为消息M的数字签名,否则,转入出错处理;
在以上计算式中,a(mod n),其中a为一个整数,表示与a模n同余的数(两个整数a、b模n同余即a mod n=b mod n表示为a≡b(mod n),(mod n)算子优先级最低);
所述签名辅助系统在辅助、协助签名装置完成数字签名的生成之前,先鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者(不是验证用户即签名者是否是IDA或hID对应私钥的拥有者);
所述签名装置即签名者拥有的计算装置是具有计算能力、包含软硬件的装置(如个人电脑、手机等移动终端);所述签名装置通过其内实施的密码模块、密码程序实施以上所述数字签名计算步骤,实施SM9数字签名功能。
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,签名装置和签名辅助系统在不暴露自己的秘密r1、r2和确保对方不重新选择r1、r2的情况下,通过交互计算得到w=g^(b1r1+b2r2),wf=g^(b1r1+b2r2)的一种方法如下:
F(·)定义为:F(1)=g,F(c-1)=gc;
签名装置计算g1=F(b1)^r1,其中b1=1或c-1;签名装置计算g1的杂凑值h1,将h1发送给签名辅助系统;
签名辅助系统计算g2=F(b2)^r2,其中b2=1或c-1;签名辅助系统计算g2的杂凑值h2,将h2发送给签名装置;
签名装置接收到签名辅助系统的h2后,将g1发送给签名辅助系统;
签名辅助系统接收到签名装置的h1后,将g2发送给签名装置;
签名装置接收到g2后,计算、检查接收的g2的杂凑值是否是h2,若不是,则转入出错处理,若是,则计算得到w=g1g2;
签名辅助系统接收到g1后,计算、检查接收的g1的杂凑值是否是h1,若不是,则转入出错处理,若是,则计算得到wf=g1g2。
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,签名装置和签名辅助系统在不暴露自己的秘密r1、r2和确保对方不重新选择r1、r2的情况下,通过交互计算得到w=g^(br1r2),wf=g^(br1r2)的一种方法如下:
F(·)定义为:F(1)=g,F(c-1)=gc;
b=1或c-1;
签名装置计算g1=F(b)^r1,计算g1的杂凑值h1,将h1发送给签名辅助系统;
签名辅助系统计算g2=F(b)^r2,计算g2的杂凑值h2,将h2发送给签名装置;
签名装置接收到签名辅助系统的h2后,将g1发送给签名辅助系统;
签名辅助系统接收到签名装置的h1后,将g2发送给签名装置;
签名装置接收到g2后,计算、检查接收的g2的杂凑值是否是h2,若不是,则转入出错处理,若是,则计算得到w=g2^r1;
签名辅助系统接收到g1后,计算、检查接收的g1的杂凑值是否是h1,若不是,则转入出错处理,若是,则计算得到wf=g1^r2。
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,签名辅助系统利用wf验证S是否是使用r1、r2、h、以及IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到的一种方法如下:
签名辅助系统计算t=g^h,P=[hID]P2+Ppub,u=e(S,P)或u=e(PA,P)^s2,w'=u·t,检查验证w'与wf是否相等,若相等,则验证通过,否则,验证失败。
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,签名装置利用w验证S是否是使用r1、r2、h、以及IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到的一种方法如下:
签名装置计算t=g^h,P=[hID]P2+Ppub,u=e(S,P),w'=u·t,检查验证w'与w是否相等,若相等,则验证通过,否则,验证失败。
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,鉴别确认使用签名装置的用户即签名者是否是用户标识IDA或hID的拥有者有很多中方法,比如,用户的IDA或hID与用户在签名辅助系统的帐户绑定,用户使用签名辅助系统要先利用帐户名在签名辅助系统完成登录(身份鉴别)。实际上,还有其他的不用将用户在签名辅助系统的帐户与用户标识IDA或hID绑定的方案,用户甚至可以匿名方式登录签名辅助系统,但仍然可以完成有关的鉴别确认,比如,以下方案支持匿名方式下的鉴别确认(不是全部可能的方案)。
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,签名辅助系统鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者的一种方法如下:
包含用户标识IDA或hID、针对用户(即签名者)的身份鉴别信息的数据组合形成标识鉴别信息(用户身份鉴别信息是只有私钥拥有者知道的或拥有的私密数据,如口令、动态口令种子密钥、生物特征验证信息,或者是用于通信验证的手机号、电子邮箱地址等,用户身份鉴别信息严格说来是标识拥有鉴别信息,不是身份鉴别信息,因为不需要用户的名字或帐户名,可以是匿名方式),标识鉴别信息经采用签名辅助系统的对称密钥和对称密钥密码算法加密后得到加密的标识鉴别信息,或者标识鉴别信息经采用公钥密码算法签名和加密后得到签名加密的标识鉴别信息,所述签名加密包括先签名后加密,或者先加密后签名,其中签名使用的是标识注册系统的私钥(包括普通的RSA、SM2、SM9私钥、群组私钥),加密使用的是签名辅助系统的公钥(签名辅助系统的公钥包括普通的RSA、SM2、SM9公钥,以及群组密码算法的群组公钥);采用对称密钥加密的标识鉴别信息和采用公钥密码算法签名加密后的标识鉴别信息统称为加密的标识鉴别信息;加密的标识鉴别信息保存在签名装置中(公钥加密可采用随机对称密钥加密数据,公钥加密随机对称密钥的方式);所述标识注册系统是对用户标识进行注册管理的系统;
当签名辅助系统需要鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者时,签名装置将加密的标识鉴别信息提交到签名辅助系统;
签名辅助系统解密加密的标识鉴别信息,获得标识鉴别信息的明文,其中对于签名加密的标识鉴别信息,签名辅助系统还要验证数字签名的有效性,验证通过后再继续;
签名辅助系统检查解密获得的标识鉴别信息中包含的IDA或hID是否是用户当前用于数字签名生成验证的IDA或hID,若不是,则转入出错处理,若是,则继续;
签名辅助系统从解密得到的标识鉴别信息中获取用户身份鉴别信息,然后利用用户身份鉴别信息对签名装置的用户即签名者进行身份鉴别,若用户身份鉴别通过,则确认使用签名装置的用户即签名者是IDA或hID的拥有者,否则鉴别确认失败。
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,所述对称密钥加密的标识鉴别信息或签名加密的标识鉴别信息的一种生成方法如下:
在生成得到PA,cA后,签名装置(以匿名方式)向标识注册系统提交IDA或hID,申请注册IDA或hID;
标识注册系统检查IDA或hID是否已注册(对已注册的IDA或hID,标识注册系统进行记录),若已注册,则提示已注册,若未注册,则继续;
签名装置在不暴露自己秘密的情况向标识注册系统证明拥有IDA或hID对应的签名私钥dA(cA、dA都是签名装置的秘密),证明通过后进行后续操作,否则转入出错处理;
签名装置向标识注册系统提交用于用户身份鉴别的身份鉴别信息(如用于用户身份鉴别的私密数据如口令、动态口令种子密钥、生物特征验证信息,或者用于通信验证的电子通信地址,如手机号、邮箱地址),然后标识注册系统使用签名辅助系统的对称密钥和对称密钥密码算法对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行加密,形成加密的标识鉴别信息,或者标识注册系统利用自己的私钥对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行签名,然后采用签名辅助系统的公钥(包括普通公钥如RSA、SM2、SM9或群组公钥)对签名后的标识鉴别信息加密,得到先签名后加密的标识鉴别信息,或者标识注册系统采用签名辅助系统的公钥对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行加密,得到加密后的标识鉴别信息,然后标识注册系统使用自己的私钥对加密后的标识鉴别信息进行数字签名,得到先加密后签名的标识鉴别信息(如前,先签名后加密的标识鉴别信息和先加密后签名的标识鉴别信息统称为签名加密的标识鉴别信息;对称密钥加密的标识鉴别信息和签名加密的标识鉴别信息统称为加密的标识鉴别信息)。
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,所述签名装置定时对加密的标识鉴别信息进行更新。
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,所述签名装置对加密的标识鉴别信息进行更新的方法包括:
签名装置向标识注册系统提交加密的标识鉴别信息;
标识注册系统解密加密的标识鉴别信息,若是签名加密的标识鉴别信息,则标识注册系统还验证加密的标识鉴别信息中包含的数字签名的有效性,验证通过后再继续;
标识注册系统利用解密得到的标识鉴别信息中的用户身份鉴别信息对签名装置的用户进行身份鉴别,若鉴别不同通过,则转入出错处理,若鉴别通过,则继续;
签名装置在不暴露自己秘密的情况向标识注册系统证明拥有IDA或hID对应的签名私钥dA;
签名装置向标识注册系统证明拥有IDA或hID对应的签名私钥dA后,签名装置和标识注册系统按照注册IDA或hID时生成加密的标识鉴别信息的同样方式,生成新的加密的标识鉴别信息(通常是更新用户身份鉴别信息,IDA或hID不变,但这里允许更新IDA或hID,即生成新的标识所对应的标识鉴别信息)。
若标识鉴别信息中的用户身份鉴别信息是口令,则标识注册系统在确认口令满足安全要求后,才对标识鉴别信息进行加密或签名加密。
若标识鉴别信息中的用户身份鉴别信息是口令且标识鉴别信息包含有用户电子通信地址(如邮箱、手机号等),则标识注册系统通过标识鉴别信息中包含的用户电子通信地址向用户提供重置或恢复标识鉴别信息中的口令的功能(除向电子通信地址发送验证信息这点外,口令重置或恢复过程类似于标识鉴别信息的更新过程)。
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,如何选择c或计算c,由哪个实体选择c或计算c,由哪个实体计算、以及如何计算PA=[c-1]dA,cA=E(c)不属于本发明的内容,通常由私钥dA的生成装置或系统选择c、计算PA=[c-1]dA,cA=E(c),或者由拥有dA的装置在初始化阶段完成,或者由生成dA的装置完成;如果用户的SM9签名dA是由多个装置协同生成的(比如签名装置与一个密钥生成系统协同生成的),则c、PA=[c-1]dA,cA=E(c)可以由多个装置协同计算得到(比如签名装置与一个密钥生成系统协同计算得到)。
基于本发明的签名制作数据安全受控的SM9数字签名生成方法,可构建相应的名制作数据安全受控的SM9数字签名生成系统,系统包括所述签名装置、签名辅助系统;当需要使用用户的SM9签名私钥dA对消息M进行数字签名时,所述签名装置和签名辅助系统按所述签名制作数据安全受控的SM9数字签名生成方法生成针对消息M的数字签名;另外,系统还可以包括包括标识注册系统用于生成本发明的标识鉴别信息的、使用方案。
基于本发明的方法,签名者(用户)用于SM9数字签名生成的签名制作数据(即秘密)完全由签名者掌控,以密文形式存储在其计算装置中,且数字签名生成过程中也是以密文的形式计算、生成,这样就有效地防止了的签名制作数据c或dA被泄露;同时,从签名装置、签名辅助系统之外的实体角度,生成的SM9数字签名的安全性与直接使用dA生成的SM9数字签名的安全性一样的;从签名装置、签名辅助系统之外的实体角度,签名辅助系统是否使用r2参与数字签名的生成不影响所生成的SM9数字签名的安全性;但是,从SM9签名私钥拥有者的角度,使用r2可以防止私钥dA相关秘密c的密文cA被窃取后,攻击者利用cA破解SM9签名私钥dA,因此,从SM9签名私钥拥有者的角度,本发明的方法提高了用户SM9签名私钥使用的安全性,而且,签名辅助系统可以在计算S前,通过标识鉴别信息增强对签名装置或签名装置使用者的身份鉴别,比如,通过向签名装置之外的用户计算装置发送验证信息,对签名装置使用者以人脸识别方式进行身份鉴别等,从而确保用户的签名制作数据不被盗用。
附图说明
图1本发明的系统示意图。
图2本发明的分布式部署示意图。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施方式、实施例仅是本发明列举的几个可能的实施方式、实施例,不代表全部可能的实施方式、实施例,不作为对本发明的限定。在以下描述表示同态加密的两个密文数的相乘,结果对应两个相应的明文数相乘的乘积的密文数;/>表示同态加密的两个密文数的相加,结果对应两个相应的明文数的相加的和的密文数;⊙表示同态加密中的一个明文数与一个密文数的相乘,结果对应两个相应的明文数的相乘的乘积的密文数。
本发明的实施需要采用同态加密算法,包括加法同态加密算法和全同态加密算法(即同时支持加法同态、乘法同态的同态加密算法)。本发明对具体采用的加法同态加密算法和全同态加密算法没有限制,只要能支持整数的同态加密运算就行,比如,对于加法同态加密算法,可以采用Paillier算法,对于全同态加密算法,可以采用Gentry算法。
在本发明的同态加密运算中经常出现E(a(mod n)),其中a(mod n),表示与a模n同余的数。这里使用与a模n同余的数,而不是直接使用a,这是为了避免当a是两个或多个秘密数(保密数)相乘的运算结果时,通过对a的直接分解导致秘密被破解,比如,a=pq,由于p、q的位数比较少(相对而言,不是很大的数),从a分解出p、q比较容易,从而会导致秘密p、q被破解,但是,如果采用一个与a模n同余的数,则使得对p、q的直接破解难度增加或者计算上不可能。
实施E(a(mod n))的一种方案如下(当然不是全部可能):
将计算E(a(mod n))变为计算E(a+zn)=E(a)⊕E(zn),其中z为计算过程中(比如签名装置)随机选择的整数(不限于在[1,n-1]n内选择的整数),或者从(比如签名装置)随机选择的整数计算得到的整数(z可正,可负,可为零),z的选取原则是:使得运算过程中被加密的明文数即a+zn不超出同态加密算法的加密运算E(·)针对被加密的整数的表示范围,或者超出同态加密算法的加密运算E(·)针对被加密的整数的表示范围的概率极小(超出的概率在规定的范围内)(同态加密算法的加密运算E(·)用补数表示正、负、零,假如E(·)针对被加密的整数的模是m,则将m分为两部分,其中的低一半部分表示正整数和零,高一半部分表示负整数,类似于二进制数中的补码)。
本发明的w、wf有不同的计算方式,不同的w、wf计算方式不但影响后面计算数字签名采用的计算方式(实施方式),而且与所选择的同态加密算法有关,下面给出具体的实施说明。
w、wf实施例1、
w、wf计算采用w=g^(b1k1+b2k2)、wf=g^(b1k1+b2k2),b1=1,b2=1,此时仅在E(·)对应的同态加密算法是全同态加密算法时适用;此时,s1的计算只能采用s1计算方式二,签名装置可以通过如下方式计算得到s1:
其中c2=E(r2),cA=E(c);
此时对应s1=E(r1c+r2c-hc(mod n)),S=[(r1+r2-h)mod n]dA。
w、wf实施例2、
w、wf计算采用w=g^(b1k1+b2k2)、wf=g^(b1k1+b2k2),b1=c-1,b2=1,此时仅在E(·)对应的同态加密算法是全同态加密算法时适用;此时,s1的计算只能采用s1计算方式二,这时b1c取值1,签名装置可以通过如下方式计算得到s1:
或者,其中c2=E(r2),cA=E(c);
此时对应s1=E(r1+r2c-hc(mod n)),S=[(r1c-1+r2-h)mod n]dA。
w、wf实施例3、
w、wf计算采用w=g^(b1k1+b2k2)、wf=g^(b1k1+b2k2),,b1=1,b2=c-1,此时E(·)对应的同态加密算法既可以是加法同态加密算法,也可以是全同态加密算法;此时,s1的计算可以采用s1计算方式一或二,这时b2c取值1;
若s1的计算采用s1计算方式一,则签名装置可以通过如下方式计算得到s1:其中cA=E(c);
此时对应s1=E((r1c-hc)(mod n)),S=[(r1+r2c-1-h)mod n]dA。
若s1的计算采用s1计算方式二,则签名装置可以通过如下方式计算得到s1:其中c2=E(r2),cA=E(c);
此时对应s1=E(r1c+r2-hc(mod n)),S=[(r1+r2c-1-h)mod n]dA。
w、wf实施例4、
w、wf计算采用w=g^(b1k1+b2k2)、wf=g^(b1k1+b2k2),b1=c-1,b2=c-1,此时E(·)对应的同态加密算法既可以是加法同态加密算法,也可以是全同态加密算法;此时,s1的计算可以采用s1计算方式一或二,这时b1c取值1、b2c取值1;
若s1的计算采用s1计算方式一,则签名装置可以通过如下方式计算得到s1:
或者,s1=E(r1)⊕((n-h)⊙cA)⊕E(zn),其中cA=E(c);
此时对应s1=E(r1-hc(mod n)),S=[(r1c-1+r2c-1-h)mod n]dA。
若s1的计算采用s1计算方式二,则签名装置可以通过如下方式计算得到s1:
或者,其中c2=E(r2),cA=E(c);
此时对应s1=E(r1+r2-hc(mod n)),S=[(r1c-1+r2c-1-h)mod n]dA。
w、wf实施例5、
w、wf计算采用w=g^(bk1k2)、wf=g^(bk1k2),b=1,此时仅在E(·)对应的同态加密算法是全同态加密算法时适用;此时,s1的计算只能采用s1计算方式三,签名装置可以通过如下方式计算得到s1:
或者,
或者,
或者,其中c2=E(r2),cA=E(c);
此时对应s1=E(r1r2c-hc(mod n)),S=[(r1r2-h)mod n]dA。
w、wf实施例6、
w、wf计算采用w=g^(bk1k2)、wf=g^(bk1k2),b=c-1,此时E(·)对应的同态加密算法既可以是加法同态加密算法,也可以是全同态加密算法;此时,bc取值为1,s1的计算只能采用s1计算方式三,签名装置可以通过如下方式计算得到s1:
(仅在E(·)对应的同态加密算法是全同态加密算法适用),/>
或者,(仅在E(·)对应的同态加密算法是全同态加密算法适用),
或者,
或者,其中c2=E(r2),cA=E(c);
此时对应s1=E(r1r2-hc(mod n)),S=[(r1r2c-1-h)mod n]dA。
对于本发明,在针对消息M生成数字签名时,签名辅助系统鉴别确认使用签名装置的用户即签名者是否是标识IDA或hID的拥有者是必须的,是为了防止签名制作数据即秘密cA被盗用。在具体实施时,鉴别确认使用签名装置的用户即签名者是否是标识IDA或hID的拥有者有很多种方法,比如,用户的标识IDA或hID与用户在签名辅助系统的帐户绑定,用户使用签名辅助系统要先利用帐户名在签名辅助系统完成登录(身份鉴别),但这种方式不适合对隐私保护的匿名要求,这里的匿名要求即在数字签名的生成过程中不暴露签名装置的用户的真实身份,也不适合在分布式部署环境实施本发明(因为需要集中保存用户帐户信息),这里的分布式部署指多个签名辅助系统被分别部署在不同的地方。本发明引入的标识鉴别信息及使用方式,不要求用户必须提供真实身份信息,可以通过匿名方式保护用户隐私(为了保护用户隐私,生物特征验证信息可以是经过转换后的信息)(注意,支持匿名方式不意味着标识鉴别信息的生成、使用必须采用匿名方式)。
对于本发明,若采用标识鉴别信息来鉴别确认使用签名装置的用户即签名者是否是标识IDA或hID的拥有者,那么,在标识鉴别信息的生成过程中,签名装置在不暴露自己秘密的情况向标识注册系统证明拥有IDA或hID对应的签名私钥dA有很多种方法,比如,签名装置可以通过以上所述签名制作数据安全受控的SM9数字签名生成方法,对标识注册系统提交的一个随机字串签名(签名时,标识注册系统或签名辅助系统不验证IDA或hID是否由签名装置的使用者所有,因为现在是在进行IDA或hID注册、生成标识鉴别信息,还没有标识鉴别信息),此时,标识注册系统作为签名辅助系统或借助签名辅助系统辅助、协助签名装置完成数字签名的生成,或者,签名装置通过其他方式向标识注册系统证明拥有IDA或hID对应的签名私钥dA,比如,可以采用如下方式:
签名装置在[1,n-1]内随机选择一个整数b,利用cA通过同态加密运算计算得到sb1=E(bc(mod n)),签名装置将PA、sb1、IDA或hID发送给标识注册系统;标识注册系统在[1,n-1]内随机选择一个整数t,标识注册系统或借助签名辅助系统计算得到sb2=(D(sb1)t)modn,其中D(·)为与E(·)对应的同态加密算的解密运算,计算T2=[sb2]PA,gT2=e(T2,P),其中P=[hID]P2+Ppub,将gT2发送给签名装置;签名装置计算gT1=gT2^b-1,其中b-1为b的模n乘法逆,将gT1发送给标识注册系统;标识注册系统检验gT1是否与g^t相同,若相同,则证明通过,否则失败。
对于签名辅助系统采用分布式部署的情形,标识鉴别信息可以采用签名加密的方式,这时对标识鉴别信息加密的公钥可以是如RSA、SM2、SM9等普通公钥,也可以是群组密码算法的群组公钥,采用群组公钥的方式更好(注意,适合于分布式部署不意味着必须用于分布式部署)。群组密码算法是针对一个群(组)的密码算法,包括群(组)签名算法、群(组)加密算法算法。所谓群(组)签名,即群(组)成员使用自己的私钥对消息的数字签名可以用户群(组)公钥验证,所谓群(组)加密,即使用群(组)公钥加密的数据,群(组)成员可以使用自己的私钥解密。
基于以上所述签名制作数据安全受控的SM9数字签名生成方法可以构建签名制作数据安全受控的SM9数字签名生成系统,系统包括所述签名装置、签名辅助系统,若还要实施本发明的标识鉴别信息的生成、使用方案,则构建的签名制作数据安全受控的SM9数字签名生成系统还包括标识注册系统;签名装置可以是如个人电脑、手机移动终端等包含软硬件、具有计算能力装置,它在与签名辅助系统、标识注册系统交互过程中作为客户端,而签名辅助系统、标识注册系统是提供相应服务功能的系统,它们在与签名装置交互过程中作为服务端;当需要使用用户的SM9签名私钥dA对消息M进行数字签名时,所述签名装置和签名辅助系统按所述签名制作数据安全受控的SM9数字签名生成方法生成针对消息M的数字签名。关于基于本发明的方法构建的签名制作数据安全受控的SM9数字签名生成系统,可参见图1和图2,其中,图1为本发明的系统示意图,图2为本发明的分布式部署示意图。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种签名制作数据安全受控的SM9数字签名生成方法,其特征是:
签名装置有非秘密PA=[c-1]dA,有秘密cA=E(c),其中dA为用户的SM9签名私钥,c为[1,n-1]内的签名装置未保存的秘密,c-1为c的模n乘法逆,n为SM9双线性映射群G1、G2、GT的阶,n为素数,E(·)是采用同态加密算法的加密运算;
签名装置有非秘密gc=g^(c-1),其中,^表示幂运算,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥;
所述签名装置是签名者即SM9签名私钥dA的拥有者的计算装置;所述同态加密算法为加法同态加密算法或全同态加密算法;签名辅助系统有与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥,或者与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥被签名辅助系统的密钥加密,其中签名辅助系统的密钥包括对称密钥或公钥;所述签名辅助系统是辅助、协助签名装置完成数字签名生成的计算装置或系统;
若与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥被签名辅助系统的密钥加密,则签名装置还有被加密的与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥的密文dE;
当需要使用用户的SM9签名私钥dA针对消息M进行数字签名时,签名装置和签名辅助系统按如下方式生成数字签名:
签名装置在[1,n-1]区间内随机选择一个整数r1;
签名辅助系统在[1,n-1]区间内随机选择一个整数r2;
签名装置和签名辅助系统在不暴露各自秘密r1、r2的情况下完成如下计算:
签名装置在确保签名辅助系统不重新选择r2的情况下,利用g、gc,通过与签名辅助系统交互计算得到w=g^(b1r1+b2r2),其中b1=1或c-1,b2=1或c-1,而b2=1仅在E(·)对应的同态加密算法是全同态加密算法时适用,b1、b2用于选择w的计算式;
签名辅助系统在确保签名装置不重新选择r1的情况下,利用g、gc,通过与签名装置交互计算得到wf=g^(b1r1+b2r2);
签名装置、签名辅助系统分别检查w、wf是否为单位元,若w和/或wf为单位元,则签名装置、签名辅助系统重新选择r1、r2,重新计算w、wf,直到w和wf为非单位元;
或者,
签名装置和签名辅助系统在不暴露各自秘密r1、r2的情况下完成如下计算:
签名装置在确保签名辅助系统不重新选择r2的情况下,利用g、gc,通过与签名辅助系统交互计算得到w=g^(br1r2),其中b=1或c-1,b用于选择w的计算式;
签名辅助系统在确保签名装置不重新选择r1的情况下,利用g、gc,通过与签名装置交互计算得到wf=g^(br1r2);
若b=1,则按w=g^(br1r2)、wf=g^(br1r2)方式计算w、wf仅在E(·)对应的同态加密算法是全同态加密算法时适用;
签名装置利用消息M计算得到h=H2(M||w,n),其中H2为SM9中规定的杂凑函数,M||w表示将w转化成字串后与M的字串合并,n为SM9密码算法中群G1、G2、GT的阶;
签名装置检查w与g^h是否相等,若w=g^h,则签名装置和签名辅助系统重新选择r1、r2,重新计算w、wf,直到w≠g^h;
签名装置按如下方式之一计算s1:
s1计算方式一:
w按计算式w=g^(b1r1+b2r2)计算得到且b2=c-1;
签名装置利用h、cA、r1通过同态加密算法计算得到s1=E(r1b1c-hc(mod n));
s1计算方式二:
w按计算式w=g^(b1r1+b2r2)计算得到,且b2=1时E(·)对应的同态加密算法是全同态加密算法;
签名辅助系统计算c2=E(r2),将c2发送给签名装置;
签名装置利用h、cA、r1、c2通过同态加密算法计算得到s1=E(r1b1c+r2b2c-hc(mod n));
s1计算方式三:
w按计算式w=g^(br1r2)计算得到,且b=1时E(·)对应的同态加密算法是全同态加密算法;
签名辅助系统计算c2=E(r2),将c2发送给签名装置;
签名装置利用r、cA、r1、c2通过同态加密算法计算得到s1=E(r1r2bc-hc(mod n));
签名装置将h、PA、s1、IDA或hID发送给签名辅助系统,其中,IDA是用户的标识,hID=H1(IDA||hid,n);
若与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥被签名辅助系统的密钥加密,则签名装置还将dE发送给签名辅助系统,而签名辅助系统解密dE得到与同态加密算法的加密运算E(·)所采用的公钥对应的解密运算的私钥;
对于s1计算方式一,签名装置和签名辅助系统按如下方式计算s:
签名辅助系统解密得到s1的明文s12,计算s2=(s12+r2)mod n,S=[s2]PA,然后签名辅助系统利用wf验证S是否是使用r1、r2、h、以及IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到,若验证失败,则转入出错处理,若验证通过,则签名辅助系统将S返回给签名装置;
对于s1计算方式二、方式三,签名装置和签名辅助系统按如下方式计算s:
签名辅助系统解密得到s1的明文s12,计算s2=s12 mod n,S=[s2]PA,然后签名辅助系统利用wf验证S是否是使用r1、r2、h、以及IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到,若验证失败,则转入出错处理,若验证通过,则签名辅助系统将S返回给签名装置;
签名装置利用w验证S是否是使用r1、r2、h、以及IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到,若验证通过,则(h,S)为消息M的数字签名,否则,转入出错处理;
在以上计算式中,a(mod n),其中a为一个整数,表示与a模n同余的数;
所述签名辅助系统在辅助、协助签名装置完成数字签名的生成之前,先鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者;
所述签名装置即签名者拥有的计算装置是具有计算能力、包含软硬件的装置;所述签名装置通过其内实施的密码模块、密码程序实施以上所述数字签名计算步骤,实施SM9数字签名功能。
2.根据权利要求1所述的签名制作数据安全受控的SM9数字签名生成方法,其特征是:
对于以上所述签名制作数据安全受控的SM9数字签名生成方法,签名装置和签名辅助系统在不暴露自己的秘密r1、r2和确保对方不重新选择r1、r2的情况下,通过交互计算得到w=g^(b1r1+b2r2),wf=g^(b1r1+b2r2)的一种方法如下:
F(·)定义为:F(1)=g,F(c-1)=gc;
签名装置计算g1=F(b1)^r1,其中b1=1或c-1;签名装置计算g1的杂凑值h1,将h1发送给签名辅助系统;
签名辅助系统计算g2=F(b2)^r2,其中b2=1或c-1;签名辅助系统计算g2的杂凑值h2,将h2发送给签名装置;
签名装置接收到签名辅助系统的h2后,将g1发送给签名辅助系统;
签名辅助系统接收到签名装置的h1后,将g2发送给签名装置;
签名装置接收到g2后,计算、检查接收的g2的杂凑值是否是h2,若不是,则转入出错处理,若是,则计算得到w=g1g2;
签名辅助系统接收到g1后,计算、检查接收的g1的杂凑值是否是h1,若不是,则转入出错处理,若是,则计算得到wf=g1g2。
3.根据权利要求1所述的签名制作数据安全受控的SM9数字签名生成方法,其特征是:
签名装置和签名辅助系统在不暴露自己的秘密r1、r2和确保对方不重新选择r1、r2的情况下,通过交互计算得到w=g^(br1r2),wf=g^(br1r2)的一种方法如下:
F(·)定义为:F(1)=g,F(c-1)=gc;
b=1或c-1;
签名装置计算g1=F(b)^r1,计算g1的杂凑值h1,将h1发送给签名辅助系统;
签名辅助系统计算g2=F(b)^r2,计算g2的杂凑值h2,将h2发送给签名装置;
签名装置接收到签名辅助系统的h2后,将g1发送给签名辅助系统;
签名辅助系统接收到签名装置的h1后,将g2发送给签名装置;
签名装置接收到g2后,计算、检查接收的g2的杂凑值是否是h2,若不是,则转入出错处理,若是,则计算得到w=g2^r1;
签名辅助系统接收到g1后,计算、检查接收的g1的杂凑值是否是h1,若不是,则转入出错处理,若是,则计算得到wf=g1^r2。
4.根据权利要求1所述的签名制作数据安全受控的SM9数字签名生成方法,其特征是:
签名辅助系统利用wf验证S是否是使用r1、r2、h、以及IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到的一种方法如下:
签名辅助系统计算t=g^h,P=[hID]P2+Ppub,u=e(S,P)或u=e(PA,P)^s2,w'=u·t,检查验证w'与wf是否相等,若相等,则验证通过,否则,验证失败。
5.根据权利要求1所述的签名制作数据安全受控的SM9数字签名生成方法,其特征是:
签名装置利用w验证S是否是使用r1、r2、h、以及IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到的一种方法如下:
签名装置计算t=g^h,P=[hID]P2+Ppub,u=e(S,P),w'=u·t,检查验证w'与w是否相等,若相等,则验证通过,否则,验证失败。
6.根据权利要求1所述的签名制作数据安全受控的SM9数字签名生成方法,其特征是:
签名辅助系统鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者的一种方法如下:
包含用户标识IDA或hID、针对用户的身份鉴别信息的数据组合形成标识鉴别信息,标识鉴别信息经采用签名辅助系统的对称密钥和对称密钥密码算法加密后得到加密的标识鉴别信息,或者标识鉴别信息经采用公钥密码算法签名和加密后得到签名加密的标识鉴别信息,所述签名加密包括先签名后加密,或者先加密后签名,其中签名使用的是标识注册系统的私钥,加密使用的是签名辅助系统的公钥;采用对称密钥加密的标识鉴别信息和采用公钥密码算法签名加密后的标识鉴别信息统称为加密的标识鉴别信息;加密的标识鉴别信息保存在签名装置中;所述标识注册系统是对用户标识进行注册管理的系统;
当签名辅助系统需要鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者时,签名装置将加密的标识鉴别信息提交到签名辅助系统;
签名辅助系统解密加密的标识鉴别信息,获得标识鉴别信息的明文,其中对于签名加密的标识鉴别信息,签名辅助系统还要验证数字签名的有效性,验证通过后再继续;
签名辅助系统检查解密获得的标识鉴别信息中包含的IDA或hID是否是用户当前用于数字签名生成验证的IDA或hID,若不是,则转入出错处理,若是,则继续;
签名辅助系统从解密得到的标识鉴别信息中获取用户身份鉴别信息,然后利用用户身份鉴别信息对签名装置的用户即签名者进行身份鉴别,若用户身份鉴别通过,则确认使用签名装置的用户即签名者是IDA或hID的拥有者,否则鉴别确认失败。
7.根据权利要求6所述的签名制作数据安全受控的SM9数字签名生成方法,其特征是:
所述对称密钥加密的标识鉴别信息或签名加密的标识鉴别信息的一种生成方法如下:
在生成得到PA,cA后,签名装置向标识注册系统提交IDA或hID,申请注册IDA或hID;
标识注册系统检查IDA或hID是否已注册,若已注册,则提示已注册,若未注册,则继续;
签名装置在不暴露自己秘密的情况向标识注册系统证明拥有IDA或hID对应的签名私钥dA,证明通过后进行后续操作,否则转入出错处理;
签名装置向标识注册系统提交用于用户身份鉴别的身份鉴别信息,然后标识注册系统使用签名辅助系统的对称密钥和对称密钥密码算法对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行加密,形成加密的标识鉴别信息,或者标识注册系统利用自己的私钥对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行签名,然后采用签名辅助系统的公钥对签名后的标识鉴别信息加密,得到先签名后加密的标识鉴别信息,或者标识注册系统采用签名辅助系统的公钥对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行加密,得到加密后的标识鉴别信息,然后标识注册系统使用自己的私钥对加密后的标识鉴别信息进行数字签名,得到先加密后签名的标识鉴别信息。
8.根据权利要求7所述的签名制作数据安全受控的SM9数字签名生成方法,其特征是:
所述签名装置对加密的标识鉴别信息进行更新的方法包括:
签名装置向标识注册系统提交加密的标识鉴别信息;
标识注册系统解密加密的标识鉴别信息,若是签名加密的标识鉴别信息,则标识注册系统还验证加密的标识鉴别信息中包含的数字签名的有效性,验证通过后再继续;
标识注册系统利用解密得到的标识鉴别信息中的用户身份鉴别信息对签名装置的用户进行身份鉴别,若鉴别不同通过,则转入出错处理,若鉴别通过,则继续;
签名装置在不暴露自己秘密的情况向标识注册系统证明拥有IDA或hID对应的签名私钥dA;
签名装置向标识注册系统证明拥有IDA或hID对应的签名私钥dA后,签名装置和标识注册系统按照注册IDA或hID时生成加密的标识鉴别信息的同样方式,生成新的加密的标识鉴别信息。
9.根据权利要求7所述的签名制作数据安全受控的SM9数字签名生成方法,其特征是:
若标识鉴别信息中的用户身份鉴别信息是口令且标识鉴别信息包含有用户电子通信地址,则标识注册系统通过标识鉴别信息中包含的用户电子通信地址向用户提供重置或恢复标识鉴别信息中的口令的功能。
10.一种基于权利要求1-9中任一项所述的签名制作数据安全受控的SM9数字签名生成方法的签名制作数据安全受控的SM9数字签名生成系统,其特征是:
所述SM9数字签名生成系统包括所述签名装置、签名辅助系统;当需要使用用户的SM9签名私钥dA对消息M进行数字签名时,所述签名装置和签名辅助系统按所述签名制作数据安全受控的SM9数字签名生成方法生成针对消息M的数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210656980.5A CN115150062B (zh) | 2022-06-10 | 2022-06-10 | 签名制作数据安全受控的sm9数字签名生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210656980.5A CN115150062B (zh) | 2022-06-10 | 2022-06-10 | 签名制作数据安全受控的sm9数字签名生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115150062A CN115150062A (zh) | 2022-10-04 |
CN115150062B true CN115150062B (zh) | 2024-04-02 |
Family
ID=83407931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210656980.5A Active CN115150062B (zh) | 2022-06-10 | 2022-06-10 | 签名制作数据安全受控的sm9数字签名生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115150062B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及系统 |
CN109962783A (zh) * | 2019-03-20 | 2019-07-02 | 武汉理工大学 | 基于递进计算的sm9数字签名协同生成方法及系统 |
CN110557260A (zh) * | 2019-08-26 | 2019-12-10 | 武汉理工大学 | 一种sm9数字签名生成方法及装置 |
WO2021143457A1 (zh) * | 2020-01-15 | 2021-07-22 | 江苏芯盛智能科技有限公司 | 基于sm9算法的身份认证方法、装置和计算机设备 |
-
2022
- 2022-06-10 CN CN202210656980.5A patent/CN115150062B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及系统 |
CN109962783A (zh) * | 2019-03-20 | 2019-07-02 | 武汉理工大学 | 基于递进计算的sm9数字签名协同生成方法及系统 |
CN110557260A (zh) * | 2019-08-26 | 2019-12-10 | 武汉理工大学 | 一种sm9数字签名生成方法及装置 |
WO2021143457A1 (zh) * | 2020-01-15 | 2021-07-22 | 江苏芯盛智能科技有限公司 | 基于sm9算法的身份认证方法、装置和计算机设备 |
Non-Patent Citations (2)
Title |
---|
Collaborative Generations Of Sm9 Private Key And Digital Signature Using Homomorphic Encryption;Yihong Long等;《 2020 5th International Conference on Computer and Communication Systems (ICCCS)》;20200616;全文 * |
基于iOS终端的SM2移动密码系统;邓高宇;龙毅宏;;软件;20180215(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115150062A (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10211981B2 (en) | System and method for generating a server-assisted strong password from a weak secret | |
US11552792B2 (en) | Systems and methods for generating signatures | |
US20180359097A1 (en) | Digital signing by utilizing multiple distinct signing keys, distributed between two parties | |
US7634085B1 (en) | Identity-based-encryption system with partial attribute matching | |
US8464058B1 (en) | Password-based cryptographic method and apparatus | |
JP3560439B2 (ja) | 暗号キーの回復を実行する装置 | |
EP1687931B1 (en) | Method and apparatus for verifiable generation of public keys | |
US8589693B2 (en) | Method for two step digital signature | |
CN104821880B (zh) | 一种无证书广义代理签密方法 | |
US20050289343A1 (en) | Systems and methods for binding a hardware component and a platform | |
US20240143796A1 (en) | Protecting data from brute force attack | |
CN110971411B (zh) | 一种基于sotp技术对私钥乘加密的sm2同态签名方法 | |
CN108551435B (zh) | 一种具有匿名性的可验证加密群签名方法 | |
CN111277412B (zh) | 基于区块链密钥分发的数据安全共享系统及方法 | |
CN110535626B (zh) | 基于身份的量子通信服务站保密通信方法和系统 | |
CN108494559B (zh) | 一种基于半可信第三方的电子合同签订方法 | |
Jain et al. | A Comparison Based Approach on Mutual Authentication and Key Agreement Using DNA Cryptography | |
Mishra et al. | A provably secure content distribution framework for portable DRM systems | |
CN113098681B (zh) | 云存储中口令增强且可更新的盲化密钥管理方法 | |
US20210044435A1 (en) | Method for transmitting data from a motor vehicle and method for another vehicle to receive the data through a radio communication channel | |
KR20080005344A (ko) | 인증서버가 사용자단말기를 인증하는 시스템 | |
CN115314207A (zh) | 一种sm2签名制作数据的安全可控使用方法及系统 | |
CN115150062B (zh) | 签名制作数据安全受控的sm9数字签名生成方法及系统 | |
CN115314208B (zh) | 一种安全可控的sm9数字签名生成方法及系统 | |
CN114389808A (zh) | 一种基于SM9盲签名的OpenID协议设计方法 |
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 |