CN115314208B - 一种安全可控的sm9数字签名生成方法及系统 - Google Patents
一种安全可控的sm9数字签名生成方法及系统 Download PDFInfo
- Publication number
- CN115314208B CN115314208B CN202210786016.4A CN202210786016A CN115314208B CN 115314208 B CN115314208 B CN 115314208B CN 202210786016 A CN202210786016 A CN 202210786016A CN 115314208 B CN115314208 B CN 115314208B
- Authority
- CN
- China
- Prior art keywords
- signature
- authentication information
- key
- encryption
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000013507 mapping Methods 0.000 claims abstract description 4
- 238000004422 calculation algorithm Methods 0.000 claims description 146
- 238000004364 calculation method Methods 0.000 claims description 29
- 238000012795 verification Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 19
- 229910052698 phosphorus Inorganic materials 0.000 claims description 5
- 238000012790 confirmation Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 5
- 239000000654 additive Substances 0.000 description 3
- 230000000996 additive effect Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 241000903210 Bryconamericus alpha Species 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 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
- 230000003993 interaction Effects 0.000 description 1
- 229910052757 nitrogen Inorganic materials 0.000 description 1
- 238000004321 preservation 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/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
-
- 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/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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/72—Signcrypting, i.e. digital signing and encrypting simultaneously
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数字签名生成方法:签名装置有PA=[c‑1]dA,gc=g^(c‑1),cA1=(c0c)mod n,t2=EH((c0)‑1),其中dA为用户的SM9签名私钥,c、c0为[1,n‑1]内的签名装置不知道的整数秘密,n为SM9双线性映射群的阶,cA1为签名装置的秘密,g=e(P1,Ppub),EH((c0)‑1)表示针对(c0)‑1的乘数加密运算或同态加密运算,签名辅助系统有或能得到解密运算的密钥;当需使用dA对消息M签名时,签名装置和签名辅助系统在[1,n‑1]内随机选择整数r1、r2,在不暴露各自秘密的情况下计算得到w=g^(r1+c‑1r2),S=[r1+c‑1r2‑h]dA,其中h由消息M和w计算得到,则(h,S)为数字签名。
Description
技术领域
本发明属于信息安全技术领域,特别是一种安全可控的SM9数字签名生成方法及系统。
背景技术
SM9是由国家密码管理局颁布的一种基于双线性映射(配对运算)的标识密码算法,其中的双线性映射(配对运算)为:
e:G1×G2→GT时,其中G1、G2是加法循环群,GT是一个乘法循环群,G1、G2、GT的阶是素数n(注:在SM9规范中,G1、G2、GT的阶用的是大写字母N,本专利申请采用小写n),即若P、Q、R分别为G1、G2中的元,则e(P,Q)为GT中的元,且:
e(P+R,Q)=e(P,Q)e(R,Q),
e(P,Q+R)=e(P,Q)e(P,R),
e(aP,bQ)=e(P,Q)ab。
基于SM9密码算法能实现基于标识的数字签名、密钥交换及数据加密。在SM9密码算法中,使用用户的SM9私钥dA针对消息M生成数字签名的过程如下:
计算得到w=g^r,这里符号^表示幂运算(g的r次幂),r是在[1,n-1]区间内随机选择的整数,n是SM9密码算法的群G1、G2、GT的阶,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范;注意,这里的主私钥或主密钥,主公钥,用户标识私钥,以及群的阶使用的符号与SM9规范略有不同);
然后,计算h=H2(M||w,n),其中H2为SM9中规定的杂凑函数(散列函数、哈希函数),M||w表示M和w的字串合并,n为G1、G2、GT的阶(参见SM9规范);
若r≠h,计算S=[r-h]dA,则(h,S)为生成的数字签名;若r=h,则重新选择r,重新计算w、h,直到r≠h。
给定一个消息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|个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);模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,gc=g^(c-1),cA1=(c0c)mod n,t2=EH((c0)-1),其中dA为用户的SM9签名私钥,c、c0为[1,n-1]内的签名装置不知道的整数秘密,c-1、(c0)-1分别为c、c0的模n乘法逆(即(c-1c)mod n=1,((c0)-1c0)mod n=1),n为SM9双线性映射群G1、G2、GT的阶,n为素数,cA1为签名装置的秘密(PA、gc、t2不是秘密),^表示幂运算(对^前面的元进行幂运算,^后面是幂运算的次数),g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范),EH((c0)-1)表示针对(c0)-1的加密运算(cA1为采用乘数加密算法加密的c,c0为加密密钥);
针对(c0)-1的加密运算EH(·)包括乘数加密算法的加密运算,简称乘数加密运算,以及同态加密算法的加密运算,简称同态加密运算,其中同态加密运算又包括加法同态加密算法的加密运算、全同态加密算法的加密运算(注意,加密算法与加密运算不同,加密算法包括加密运算和解密运算);
若加密运算EH(·)为乘数加密运算,则:
t2=EH((c0)-1)=((c0)-1(t0)-1)mod n(乘数加密),其中(c0)-1、(t0)-1分别为c0、t0的模n乘法逆,t0是计算t2时在[1,n-1]内随机选择的一个作为乘数加密运算的密钥(乘数加密密钥,为对称密钥)的整数,或者t0是签名辅助系统在[1,n-1]内的乘数加密密钥(为整数);
若加密运算EH(·)为同态加密运算,则:
t2=EH((c0)-1)是采用签名辅助系统的同态加密算法的公钥或采用临时生成的同态加密算法的公私钥对(密钥对)中的公钥进行加密运算的结果,与加密运算EH(·)所采用的公钥对应的用于进行解密运算的私钥为t0;
EH(·)对应有解密运算DH(·)(乘数加密算法的解密运算或同态加密算法的解密运算);乘数解密运算DH(·)的密钥t0和同态解密运算DH(·)的私钥t0(临时生成的同态加密算法的私钥t0或签名辅助系统的同态加密算法的私钥t0)称为解密运算DH(·)的解密密钥;
若t0是临时生成的乘数加密算法的密钥或临时生成的同态加密算法的私钥,则:
密钥t0经使用签名辅助系统的对称密钥、采用对称密钥加密算法加密后得到密文k2,或者,密钥t0经使用签名辅助系统的公钥、采用公钥密码算法加密后得到密文k2(签名辅助系统的公钥如RSA、SM2、SM9公钥,或者群组加密算法的群组公钥);签名装置有t0的密文k2;
(k2=E(t0),其中E(t0)表示针对密钥t0的加密,这里E(·)不一定是一个简单的加密运算)
若t0是签名辅助系统的乘数加密密钥或签名辅助系统的同态加密算法的私钥,则k2为空(即没有);
(签名装置有PA=[c-1]dA,gc=g^(c-1),cA1=(c0c)mod n,t2=EH((c0)-1),k2=E(t0))
当需要使用用户的SM9私钥dA针对消息M进行数字签名时,签名装置和签名辅助系统按如下方式生成数字签名(需要使用用户的SM9签名私钥dA、针对消息M进行数字签名的主体可以是签名装置内或外的调用签名装置的密码功能的应用程序、系统):
在针对消息M进行数字签名前或时,签名装置在[1,n-1]内随机选择一个整数t1,计算c1=(t1cA1)mod n(c1为采用乘数加密算法加密的c,(c0t1)mod n为乘数加密密钥);
若EH(·)为乘数加密运算,则签名装置利用t2=EH((c0)-1)计算得到c2=EH((c0)-1(t1)-1),其中(t1)-1为t1的模n乘法逆(即((t1)-1t1)mod n=1,此时,c2=EH((c0)-1(t1)-1)=((c0)-1t2)mod n);
若EH(·)为同态加密算法的加密运算,则签名装置利用t2=EH((c0)-1)和同态加密运算计算得到c2=EH((c0)-1(t1)-1(mod n));
(签名装置有PA=[c-1]dA,gc=g^(c-1),c1=(t1c0c)mod n,c2=EH((t1c0)-1(modn)),k2=E(t0))
签名装置在[1,n-1]内随机选择一个整数r1,计算g1=g^r1;
签名辅助系统在[1,n-1]内随机选择一个整数r2,计算g2=gc^r2;
(g1=g^r1,g2=g^(c-1r2))
签名装置和签名辅助系统在确保对方不重新选择r1、r2,不重新计算g1、g2的情况下,交换g1、g2(发送给对方);
所述确保对方不重新选择r1、r2,不重新计算g1、g2的情况下,交换g1、g2是指一方不能在收到另一方的g2或g1后,重新选择自己的r1或r2,然后重新计算g1或g2;
签名装置计算w=g1g2;
签名辅助系统计算wf=g1g2;
(w=g^(r1+c-1r2),wf=g^(r1+c-1r2))
签名装置、签名辅助系统分别检查w、wf是否为单位元(即是否有(r1+c-1r2)mod n=0),若w和/或wf为单位元,则重新选择r1、r2,重新计算w、wf,直到w和wf为非单位元;
签名装置利用消息M计算得到h=H2(M||w,n),其中H2为SM9中规定的杂凑函数(散列函数、哈希函数),M||w表示将w转化成字串后与M的字串合并,n为SM9密码算法中群G1、G2、GT的阶;
签名装置检查w与g^h是否相等(即是否(r1+c-1r2)mod n=h),若w=g^h,则签名装置和签名辅助系统重新选择r1、r2,重新计算w、wf,直到w≠g^h;
签名装置计算s1=((r1-h)c1)mod n或S1=[((r1-h)c1)mod n]PA;
(通常,此时签名装置检查s1是否为0(数字0)或S1检查是否为零元(椭圆曲线点群无穷远点),若是,则重新选择r1、r2,重新计算w、h,直到s1非0或S1非零元)
(w=wf=g^(r1+c-1r2),s1=((r1-h)t1c0c)mod n或S1=[((r1-h)t1c0c)mod n]PA)
签名装置将s1或S1,PA、h、c2、k2以及IDA或hID传送给签名辅助系统,其中,IDA是用户的标识,hID=H1(IDA||hid,n)(hid是用一个字节表示的签名私钥生成函数识别符,H1()是SM9规范中定义的杂凑或散列或哈希函数);
(通常,此时签名辅助系统检查s1是否为0(数字0)或检查S1是否为零元,若是,则转入出错处理,若不是,则继续)
若k2非空(即解密密钥t0是临时生成的密钥,包括临时生成的乘数加密密钥、临时生成的同态加密算法的密钥对中的私钥),则签名辅助系统解密k2得到对c2进行解密运算的密钥t0,使用解密得到的解密密钥t0对c2进行解密运算,得到c2m=DH(c2)mod n(正常情况下,c2m=((c0)-1(t1)-1)mod n),若签名验证不通过,则转入出错处理;
若k2为空,则签名辅助系统直接使用其拥有的进行解密运算DH(·)的解密密钥t0(乘数解密密钥或同态加密算法的私钥)对c2进行解密运算,得到c2m=DH(c2)mod n(正常情况下,c2m=((c0)-1(t1)-1)mod n);
签名辅助系统计算S=[((r2+s1c2m)mod n]PA,或S=[r2]PA+[c2m]S1将发送给签名装置;
(w=g^(r1+c-1r2),wf=g^(r1+c-1r2),S=[r2+(r1-h)c]PA=[r1+c-1r2-h]dA)
签名辅助系统在将S发送给签名装置前,验证S1或S是否是使用与IDA或hID相对应的SM9签名私钥dA计算得到,若验证失败则转入出错处理;
签名装置接收到S后,验证S是否是使用r1、r2、h和IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到,若验证通过,则(h,S)为消息M的数字签名,否则,转入出错处理;
所述签名辅助系统在辅助、协助签名装置完成数字签名的生成之前(比如,计算S),先鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者;
所述签名辅助系统是辅助、协作签名装置完成SM9数字签名生成的装置或系统;
所述签名装置即签名者拥有的计算装置是具有计算能力、包含软硬件的装置(如个人电脑、手机等移动终端);所述签名装置通过其内实施的密码模块、密码程序实施以上所述数字签名计算步骤,提供SM9数字签名功能。
对于以上所述安全可控的SM9数字签名生成方法,每次生成数字签名前或时更新计算c1、c2不是必须的(即多次数字签名可以使用同一个c1、c2)。
对于以上所述安全可控的SM9数字签名生成方法,允许计算c1、c2时固定取t1=1,即固定取c1=cA1,c2=t2;若固定取t1=1,则对(c0)-1的加密运算t2=EH((c0)-1)允许是乘数加密和同态加密之外的对称密钥密码算法或公钥密码算法的加密,其中签名辅助系统有解密t2得到(c0)-1的密钥(对称密钥或私钥)。
对于以上所述安全可控的SM9数字签名生成方法,所述签名装置和签名辅助系统在确保对方不重新选择r1、r2,不重新计算g1、g2的情况下,交换g1、g2的一种方法如下:
签名装置完成g1=g^r1计算后,计算g1的杂凑值h1,将h1发送给签名辅助系统;
签名辅助系统完成g2=gc^r2计算后,计算g2的杂凑值h2,将h2发送给签名装置;
签名装置接收到签名辅助系统的h2后,将g1发送给签名辅助系统;
签名辅助系统接收到签名装置的h1后,将g2发送给签名装置;
签名装置接收到g2后,计算、检查g2的杂凑值是否是h2,若不是,则转入出错处理,若是,则接受g2;
签名辅助系统接收到g1后,计算、检查g1的杂凑值是否是h1,若不是,则转入出错处理,若是,则接受g1。
对于以上所述安全可控的SM9数字签名生成方法,签名辅助系统在将S发送给签名装置前,验证S1或S是否是使用与IDA或hID相对应的SM9签名私钥dA计算得到的一种方法如下:
签名辅助系统计算t=g^h,P=[hID]P2+Ppub,计算得到u=e(PA,P)^((c2ms1)mod n)或u=e(S1,P)^c2m的值(直接计算得到u的值或采用等同的方式计算得到u的值,等同的方式如u=e([(c2ms1)mod n]PA,P)或u=e([c2m]S1,P)等),计算w'=u·t,检查验证w'与g1是否相等,若相等,则S1是使用与IDA或hID相对应的SM9签名私钥dA计算得到,否则,验证失败;
或者,
签名辅助系统计算t=g^h,P=[hID]P2+Ppub,u=e(S,P),w'=u·t,检查验证w'与wf是否相等,若相等,则S是使用与IDA或hID相对应的SM9签名私钥dA计算得到,否则,验证失败。
对于以上所述安全可控的SM9数字签名生成方法,签名装置验证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、针对用户(即签名者)的身份鉴别信息的数据组合形成标识鉴别信息(用户身份鉴别信息是只有SM9签名私钥拥有者知道的或拥有的私密数据,如口令、生物特征验证信息,或者用于通信验证的电子通信地址,如手机号、电子邮箱地址等,用户身份鉴别信息严格说来是标识拥有鉴别信息,不是身份鉴别信息,因为不需要用户的名字或帐户名,可以是匿名方式),标识鉴别信息经采用对称密钥密码算法和签名辅助系统的对称密钥加密后得到加密的标识鉴别信息,或者标识鉴别信息经采用公钥密码算法签名和加密后得到签名加密的标识鉴别信息,所述签名加密包括先签名后加密,或者先加密后签名,其中签名使用的是标识注册系统的私钥,加密使用的是签名辅助系统的公钥(签名辅助系统的公钥包括普通的RSA、SM2、SM9公钥、群组公钥);采用对称密钥加密的标识鉴别信息和采用公钥密码算法签名加密后的标识鉴别信息统称为加密的标识鉴别信息(公钥加密可采用随机对称密钥加密数据,公钥加密随机对称密钥的方式);加密的标识鉴别信息保存在签名装置;
当签名辅助系统需要鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者时,签名装置将加密的标识鉴别信息提交到签名辅助系统;
签名辅助系统解密加密的标识鉴别信息,获得标识鉴别信息的明文,其中,对于签名加密的标识鉴别信息,签名辅助系统还要验证数字签名的有效性,验证通过后继续;
签名辅助系统确定解密获得的标识鉴别信息中包含的IDA或hID是否是当前用于数字签名生成验证的IDA或hID,若不是,则转入出错处理,若是,则继续;
签名辅助系统从解密得到的标识鉴别信息中获取用户身份鉴别信息,然后利用用户身份鉴别信息对签名装置的用户即签名者进行身份鉴别,若用户身份鉴别通过,则确认使用签名装置的用户即签名者是IDA或hID的拥有者,否则鉴别确认失败;
所述标识注册系统是对用户标识IDA或hID进行注册管理的系统。
注意,若IDA能标记一个用户的真实身份,则要做到匿名,需使用hID。
对于以上所述安全可控的SM9数字签名生成方法,所述对称密钥加密的标识鉴别信息或签名加密的标识鉴别信息的一种生成方式如下:
在生成得到PA,cA1后,签名装置(如以匿名方式)向标识注册系统提交IDA或hID,申请注册IDA或hID;
标识注册系统检查IDA或hID是否已注册(对已注册的IDA或hID,标识注册系统进行记录),若已注册,则提示已注册,若未注册,则继续;
签名装置在不暴露自己秘密的情况向标识注册系统证明拥有IDA或hID对应的签名私钥dA(cA1、dA都是签名装置的秘密),证明通过后进行后续操作,否则转入出错处理;
签名装置向标识注册系统提交用于用户身份鉴别的身份鉴别信息(即用于用户身份鉴别的私密数据),然后标识注册系统使用对称密钥密码算法和签名辅助系统的对称密钥对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行加密,形成加密的标识鉴别信息,或者标识注册系统采用公钥密码算法、使用自己的私钥对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行签名,然后标识注册系统采用公钥密码算法、使用签名辅助系统的公钥(包括普通公钥如RSA、SM2、SM9或群组公钥)对签名后的标识鉴别信息加密,得到先签名后加密的标识鉴别信息,或者标识注册系统采用公钥密码算法、使用签名辅助系统的公钥对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行加密,得到加密后的标识鉴别信息,然后标识注册系统采用公钥密码算法、使用自己的私钥对加密后的标识鉴别信息进行数字签名,得到先加密后签名的标识鉴别信息。
对于以上所述安全可控的SM9数字签名生成方法,所述签名装置定时对加密的标识鉴别信息进行更新。
对于以上所述安全可控的SM9数字签名生成方法,所述签名装置对加密的标识鉴别信息进行更新的方法包括:
签名装置向标识注册系统提交加密的标识鉴别信息,标识注册系统解密加密的标识鉴别信息,若是签名加密的标识鉴别信息,标识注册系统还验证加密的标识鉴别信息中包含的数字签名的有效性;
标识注册系统利用解密得到的标识鉴别信息中的用户身份鉴别对签名装置的用户进行身份鉴别,若鉴别不同通过,则转入出错处理,若鉴别通过,则继续;
签名装置在不暴露自己秘密的情况向标识注册系统证明拥有IDA或hID对应的签名私钥dA;
签名装置向标识注册系统证明拥有IDA或hID对应的签名私钥dA后,签名装置和标识注册系统按照注册PA时生成加密的标识鉴别信息的同样方式,生成新的加密的标识鉴别信息(通常IDA或hID不变,通常是更新用户身份鉴别信息,但本发明允许改变IDA或hID,即允许生成针对新的IDA或hID的标识鉴别信息)。
若标识鉴别信息中的用户身份鉴别信息是口令,则标识注册系统在确认口令满足安全要求后,才对加密前或加密后的标识鉴别信息进行数字签名。
若标识鉴别信息中的用户身份鉴别信息是口令且标识鉴别信息包含有用户电子通信地址(如邮箱、手机号等),则标识注册系统通过标识鉴别信息中包含的用户电子通信地址向用户提供重置或恢复标识鉴别信息中的口令的功能(除了向电子通信地址发送验证信息之外,其口令重置或恢复过程类似于标识鉴别信息的更新过程)。
基于以上所述安全可控的SM9数字签名生成方法可构建安全可控的SM9数字签名生成系统,系统包括签名装置和签名辅助系统,签名装置有PA=[c-1]dA,gc=g^(c-1),cA1=(c0c)mod n,t2=EH((c0)-1)和用于解密t2的解密密钥的密文数据k2,其中dA为用户的SM9签名私钥;当需要使用用户的SM9签名私钥针对消息M进行数字签名时,所述签名装置和签名辅助系统按所述安全可控的SM9数字签名生成方法生成针对消息M的数字签名。
基于本发明的技术方案,签名者(用户)用于SM9数字签名生成的签名制作数据c完全由签名者掌控(由于SM9签名私钥dA被转换成了PA,c为实际的签名制作数据秘密),且c以密文cA1形式存储在其计算装置中,且数字签名生成过程中也是以密文的形式使用,且cA1也是作为签名装置的秘密保存,这样就有效地防止了签名制作数据c被泄露;签名生成过程中签名装置传送给签名辅助系统的加密数c2为非秘密,且其中包含的数c0t1或(c0t1)-1是作为对c进行加密运算、解密运算的密钥,c0t1、(c0t1)-1未出现在最终的数字签名中(c1是采用进行乘数加密运算的结果,c0t1是乘数加密运算的加密密钥,(c0t1)-1是乘数解密运算的解密密钥);从签名装置、签名辅助系统之外的实体角度,生成的SM9数字签名的安全性与直接使用dA生成的SM9数字签名的安全性一样的;从签名装置、签名辅助系统之外的实体角度,签名辅助系统是否使用r2参与数字签名的生成,所生成的SM9数字签名的安全性一样的;但是,从SM9签名私钥拥有者的角度,这可以防止dA的相关秘密cA1被窃取后,攻击者利用cA1破解SM9签名私钥dA,因此,从SM9签名私钥拥有者的角度,本发明的方法提高签名使用的安全性,而且,签名辅助系统可以在计算S前,通过一定的方式增强对签名装置或签名装置使用者的身份鉴别,比如,通过用户的标识鉴别信息中的身份鉴别信息(如口令、生物特征验证信息等)对签名装置使用者进行身份鉴别等,从而确保用户的签名制作数据不被盗用;基于本发明的技术方案,整个数字签名的计算过程都在签名装置的掌控之中,且签名辅助系统能确保只有标识IDA或hID的真正拥有者能使用c2进行数字签名的协同生成,本发明的技术方案是一种安全可控的SM9数字签名技术方案。
附图说明
图1本发明的系统示意图。
图2本发明的分布式部署示意图。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施方式不作为对本发明的限定。
本发明的EH(·)和DH(·)的实施方式之一是采用同态加密算法,包括加法同态加密算法和同时支持加法同态、乘法的同态的全同态加密算法。本发明对采用的加法同态加密算法和全同态加密算法没有限制,只要能支持整数的同态加密运算就行,比如,对于加法同态加密算法,可以采用Paillier算法,对于全同态加密算法,可以采用Gentry算法。
在以下描述表示同态加密的两个密文数的相乘,结果对应两个相应的明文数的乘积的密文数;/>表示同态加密的两个密文数的相加,结果对应两个相应的明文数的相加的密文数;⊙表示同态加密中的一个明文数与一个密文数的相乘,结果对应两个相应的明文数的相乘的密文数。
无论加法同态加密算法还是全同态加密算法,已有EH(a)需要计算EH(ab),其中a、b为整数,可以按b⊙EH(a)方式计算,而对于全同态加密算法,还可以按方式计算。
在本发明的具体实施中,若EH(·)采用的是同态加密算法,则会涉及到EH(a(modn))的实施,其中a(mod n)表示与a模n同余的数。这里使用a模n同余的数,而不是直接使用a,这是为了避免当a是两个或多个秘密数相乘的运算结果时,通过对a的直接分解导致秘密被破解,比如,a=pq,由于p、q的位数比较少(不是很大的数),从a分解出p、q比较容易,导致p、q被破解,但是,如果采用a的一个模n同余数,使得对p、q的直接破解难度增加或者计算不可能。
实施EH(a(mod n))的一种方案如下(当然不是全部可能):
将计算EH(a(mod n))变为计算EH(a+zn)=EH(a)⊕EH(zn),其中z为计算过程中(比如签名装置)随机选择的整数(不限于在[1,n-1]n内选择的整数),或者从(比如签名装置)随机选择的整数计算得到的整数(z可正,可负,可为零),z的选取原则是:使得运算过程中被加密的明文数即a+zn不超出同态加密算法的加密运算EH(·)针对被加密的整数的表示范围,或者超出同态加密算法的加密运算EH(·)针对被加密的整数的表示范围的概率极小(超出的概率在规定的范围内)(同态加密算法的加密运算EH(·)用补数表示正、负、零,假如EH(·)针对被加密的整数的模是m,则将m分为两部分,其中的低一半部分表示正整数和零,高一半部分表示负整数,类似于二进制数中的补码)。
本发明具体实施中的一个重要环节是EH(·)、DH(·)的具体实施方式,这涉及到使用EH(·)、DH(·)的密码运算以及t0、k2的具体实施方式。
EH(·)、DH(·)实施情形1、
EH(·)、DH(·)采用乘数加密算法,EH(·)、DH(·)分别为乘数加密算法的加密运算和解密运算,这是一种简单的对称密钥加密方式,加密、解密密钥t0是[1,n-1]内随机选择的一个整数;
加密运算t2=EH((c0)-1)为计算t2=((c0)-1(t0)-1)mod n;
利用t2=EH((c0)-1)计算得到t3=EH(t2mq)为计算t3=(t2q)mod n,其中t2m为t2对应的明文数(即(c0)-1),q为[1,n-1]内的一个整数;
解密运算t4=DH(t3)为计算t4=(t3t0)mod n;
利用t2=EH((c0)-1)计算c2=EH((c0)-1(t1)-1)为计算c2=((t1)-1t2)mod n,其中t1为[1,n-1]内的整数,(t1)-1为t1的模n乘法逆;
利用密钥t0对c2进行解密运算c2m=DH(c2)mod n为计算c2m=(c2t0)mod n;
这里加密采用(t0)-1,解密t0,反过来,加密采用t0,解密(t0)-1采用也可以,两种做法是完全等价的;
其他的采用EH(·)、DH(·)进行加密运算、解密运算的计算过程是完全类似的,在此不再赘述。
对于EH(·)、DH(·)为乘数加密算法的情形,这时用于加密、解密运算的密钥t0又存在两种实施情形:t0是签名辅助系统预先有的密钥,或者,t0是计算t2时在[1,n-1]内随机选择的一个密钥。对于后一种情形,必须对t0加密得到其密文k2。
对t0的加密又包括两种实施方式:使用签名辅助系统的对称密钥采用对称密钥密码算法进行加密得到k2(如何做到这点,不属于本发明的内容),或者,使用签名辅助系统的公钥采用公钥密码算法对t0加密得到k2,采用公钥密码算法对t0加密时,所使用的公钥可以是普通密码算法如RSA、SM2、SM9密码算法的公钥,也可以是群组加密算法的群组公钥(此时对g2进行解密的相应私钥是群组成员的私钥)。
若进行加密、解密运算的密钥t0是签名辅助系统预先有的密钥,则在需要使用t0进行解密运算DH(·)时,进行解密运算的系统(如签名辅助系统或其他授权系统)直接使用签名辅助系统的密钥t0进行解密运算即可(t0通常存放在一个专门的密码装置内,并在密码装置内使用)。
若进行加密解密运算的密钥t0是计算t2时在[1,n-1]内随机选择的一个密钥,那么,在需要使用t0进行解密运算DH(·)时,进行解密运算的系统(如签名辅助系统或其他授权系统)需使用签名辅助系统的用于解密k2的密钥(对称密钥或私钥),解密k2得到t0,然后使用t0进行解密运算DH(·)。
EH(·)、DH(·)实施情形2、
EH(·)、DH(·)采用同态加密算法,其中包括加法同态加密算法和全同态加密算法,EH(·)、DH(·)分别为同态加密算法的加密运算和解密运算,加密采用同态加密算法的公钥,解密采用同态加密算法的私钥。
加密运算t2=EH((c0)-1)为利用同态加密算法的公钥对(c0)-1进行同态计算算法的加密运算;
利用t2计算得到t3=EH(t2mq(mod n)),其中t2m为t2对应的明文数(即(c0)-1),q为[1,n-1]内的一个整数,为利用同态加密算法计算:t3=(q⊙t2)⊕EH(zn),其中z的选取如前所述;若采用的是全同态加密算法,则t3的计算还可以是采用同态加密算法计算:
解密运算t4=DH(t3)为利用同态加密运算EH(·)所采用的公钥相对应的私钥t0进行解密运算;
利用t2=EH((c0)-1)计算c2=EH((c0)-1(t1)-1(mod n)),其中t1为[1,n-1]内的整数,为利用同态加密算法计算:c2=((t1)-1⊙c2)⊕EH(zn),其中z的选取如前所述;若采用的是全同态加密算法,则c2的计算还可以是采用同态加密算法计算:
c2m=DH(c2)mod n为使用与同态加密运算EH(·)所采用的公钥相对应的同态加密算法的私钥t0进行解密运算;
其他的采用EH(·)、DH(·)进行加密运算、解密运算的计算过程是完全类似的,在此不再赘述。
对于EH(·)、DH(·)采用的是同态加密算法的情形,这时用于加密、解密运算的公钥和私钥(公私钥对)是签名辅助系统的同态加密算法密钥对(公私钥对),或者是计算t2时临时生成的同态加密算法的密钥对(公私钥对)。
对于用于加密解密运算的公钥和私钥是签名辅助系统的同态加密算法密钥对(公私钥对)的情形,这时k2为空。
对于用于加密解密运算的公钥和私钥是计算t2时临时生成的同态加密算法的密钥对的情形,这时必须对临时生成的同态加密算法的公私钥对中的私钥t0加密,得到其密文k2。对t0的加密又包括两种实施方式:使用签名辅助系统的对称密钥采用对称密钥密码算法进行加密得到k2(如何做到这不属于本发明的内容),或者,使用签名辅助系统的公钥采用公钥密码算法对t0加密得到k2。采用公钥密码算法对t0加密时,所使用的公钥可以是普通密码算法如RSA、SM2、SM9密码算法的公钥,也可以是群组加密算法的群组公钥(此时对应的对k2解密的私钥是群组成员的私钥)。此时,由于进行解密运算的私钥t0是计算t2时临时生成的同态加密算法的公私钥对中的私钥,因此,在需要使用私钥t0进行解密运算DH(·)时,进行解密运算的系统(如签名辅助系统或其他授权系统)需使用签名辅助系统的用于解密k2的密钥(对称密钥或私钥),解密k2得到私钥t0,然后使用t0进行解密运算DH(·)。
对于本发明的签名辅助系统有与加密运算EH(·)对应的解密运算DH(·)的密钥(乘数加密密钥或同态加密算法的私钥)的实施情形,解密运算的密钥通常存放在专门的密码装置中(如图1所示)。对于与加密运算EH(·)对应的解密运算DH(·)的密钥被签名辅助系统的密钥加密为密文k2的实施情形,此时,用于解密k2的对称密钥或私钥通常存放在专门的密码装置中(如图1所示);要进行与加密运算EH(·)对应的解密运算DH(·)时,需先用密码装置解密k2,得到进行解密运算的密钥(临时生成的乘数加密密钥或临时生成的同态加密算法的私钥),然后再进行解密运算(解密运算也通常在密码装置中进行)。
从上面描述可以看到,除了签名辅助系统直接拥有解密运算的DH(·)的解密密钥t0(对称密钥或私钥)的实施方式,本发明还有签名辅助系统通过k2间接得到的解密运算DH(·)的解密密钥t0实施方式,这种签名辅助系统间接得到的解密运算DH(·)的解密密钥t0实施方式是为了便于签名辅助系统的分布式部署(如图2所示),比如,若对解密密钥的t0加密采用的是群(组)加密算法的群(组)公钥,则每个签名辅助系统可以用自己的群组加密算法的私钥,解密采用群(组)公钥加密的t0的密文k2,得到t0(所谓群组加密算法,群组有一个公钥,群组成员有自己的私钥,采用群组公钥加密的数据,每个群组成员可以用自己的私钥解密数据,基于属性的加密也属于群组密码算法)。
对于本发明,签名辅助系统在辅助、协助签名装置完成数字签名的生成之前,鉴别确认使用签名装置的用户即签名者是否是标识IDA或hID的拥有者是必须的,是为了防止签名制作数据c的密文即秘密cA1被盗用。在具体实施时,鉴别确认使用签名装置的用户即签名者是否是标识IDA或hID的拥有者有很多种方法,比如,用户的标识IDA或hID用户在签名辅助系统的帐户绑定,用户使用签名辅助系统要先利用帐户名在签名辅助系统完成登录或身份鉴别,比如通过人脸识别、安全令牌等,签名辅助系统的用户帐户数据库中的帐户信息中有用户的IDA或标识杂凑值hID,签名辅助系统在完成用户身份鉴别后从用户帐户数据库获得用户的IDA或标识杂凑值hID,但这种方式不适合对隐私保护的匿名要求,这里的匿名要求即在数字签名的生成过程中不暴露签名装置的用户的真实身份,也不适合在分布式部署环境实施本发明(因为这通常需要集中保存用户帐户信息),这里的分布式部署指多个签名辅助系统被分别部署在不同的地方。
本发明引入标识鉴别信息及其注册、使用方式,不要求用户必须提供真实身份信息,可以通过匿名方式保护隐私(为了保护用户隐私,生物特征信息可以是经过转换后的信息)(注意支持匿名方式不意味着标识鉴别信息的生成、使用必须采用匿名方式)。
在本发明的标识鉴别信息注册、生成的实施中,签名装置在不暴露自己秘密的情况向标识注册系统证明拥有IDA或hID对应的签名私钥dA有很多种方法,比如,签名装置可以通过以上所述SM9签名私钥使用方法,对标识注册系统提交的一个随机字串签名(签名时,标识注册系统或签名辅助系统不验证IDA或hID是否由签名装置的使用者所有,因为现在是在进行IDA或hID注册、生成标识鉴别信息,还没有标识鉴别信息),或者,签名装置通过其他方方式向标识注册系统证明拥有IDA或hID对应的签名私钥dA,比如(有很多方式):
签名装置在[1,n-1]内随机选择一个整数b、q,计算Sb1=[(q-1cA1)mod n]PA,其中q-1为q的模n乘法逆;
若EH(·)为乘数加密运算,则签名装置利用t2=EH((c0)-1)计算得到t3=EH((c0)- 1b-1),其中b-1为b的模n乘法逆;
若EH(·)为同态加密算法的加密运算,则签名装置利用t2=EH((c0)-1)和同态加密运算计算得到t3=EH((c0)-1b-1(mod n));
签名装置将Sb1、k2、t3、IDA或hID发送给标识注册系统;
若k2非空,则标识注册系统利用签名辅助系统解密k2的解密密钥(对称密钥或私钥),解密k2得到进行解密运算DH(·)的解密密钥t0,对t3进行解密运算得到t4=DH(t3)modn(正常情况下为((c0)-1b-1)mod n);
若k2为空,则标识注册系统使用签名协同系统的进行解密运算DH(·)的解密密钥t0,对t3进行解密运算得到t4=DH(t3)mod n(正常情况下为((c0)-1b-1)mod n);
标识注册系统在[1,n-1]内随机选择一个整数t,计算Sb2=[(t4t)mod n]Sb1,gb2=e(Sb2,P),或计算gb2=e(Sb1,P)^((t4t)mod n),其中P=[hID]P2+Ppub;
标识注册系统将gb2发送给签名装置;
签名装置计算gb3=gb2^((qb)mod n),将gb3发送给标识注册系统;
标识注册系统检验gb3是否与g^t相同,若相同,则证明通过,否则失败;
或者,
签名装置在[1,n-1]内随机选择一个整数b;
若EH(·)为乘数加密运算,则签名装置利用t2=EH((c0)-1)计算得到t3=EH((c0)- 1b-1),其中b-1为b的模n乘法逆;
若EH(·)为同态加密算法的加密运算,则签名装置利用t2=EH((c0)-1)和同态加密运算计算得到t3=EH((c0)-1b-1(mod n));
签名装置将PA、k2、t3、IDA或hID发送给标识注册系统;
若k2非空,则标识注册系统利用签名辅助系统解密k2的解密密钥(对称密钥或私钥),解密k2得到进行解密运算DH(·)的解密密钥t0,对t3进行解密运算得到t4=DH(t3)modn(正常情况下为((c0)-1b-1)mod n);
若k2为空,则标识注册系统使用签名协同系统的进行解密运算DH(·)的解密密钥t0,对t3进行解密运算得到t4=DH(t3)mod n(正常情况下为((c0)-1b-1)mod n);
标识注册系统在[1,n-1]内随机选择一个整数t,计算:
gb2=e(PA,P)^((t4t)mod n)或gb2=e([(t4t)mod n]PA,P),其中P=[hID]P2+Ppub;
标识注册系统将gb2发送给签名装置;
签名装置计算gb3=gb2^((cA1b)mod n),将gb3发送给标识注册系统;
标识注册系统检验gb3是否与g^t相同,若相同,则证明通过,否则失败。
注意,若IDA有明确标识用户的信息而又要匿名,则使用hID。
对于签名辅助系统采用分布式部署的情形,标识鉴别信息可以采用签名加密的方式,这时对标识鉴别信息加密的公钥可以是如RSA、SM2、SM9的普通公钥,也可以是群组公钥,采用群组公钥的方式更好(注意,适合于分布式部署不意味着必须用于分布式部署)。
对于本发明的安全可控的SM9数字签名生成方法,如何生成秘密c、c0,如何计算得到PA=[c-1]dA,gc=g^(c-1),cA1=(c0c)mod n,t2=EH((c0)-1),k2(如果需要),不属于本发明的内容,比如,它们可以由生成SM9签名私钥dA的系统在[1,n-1]内随机选择整数c、c0,完成PA、gc、cA1、t2等的计算,也可以由协同生成SM9签名私钥dA的系统协同生成,完成有关的数的协同计算,下面是一种用户使用签名装置与秘密协同生成系统协同生成、计算的方法。
签名装置在[1,n-1]内随机选择一个整数d1,计算PA1=[(d1)-1]dA,其中,其中dA为用户的SM9签名私钥,(d1)-1为d1的模n乘法逆(即((d1)-1d1)mod n=1),n为SM9双线性映射群G1、G2、GT的阶,n为素数;
签名者使用签名装置(比如以匿名方式)向秘密协同生成系统发出秘密协同生成请求,同时将PA1发送给秘密协同生成系统;
秘密协同生成系统在[1,n-1]内随机选择一个整数d2、c0,计算PA=[(d2)-1]PA1,gd2=g^((d2)-1),cA2=(c0d2)mod n,t2=EH((c0)-1),其中(d2)-1、(c0)-1分别为为d2、c0的模n乘法逆(即((d2)-1d2)mod n=1,((c0)-1c0)mod n=1),EH((c0)-1)表示针对(c0)-1的加密运算;
针对(c0)-1的加密运算EH(·)包括乘数加密算法的加密运算,以及同态加密算法的加密运算,其中同态加密运算又包括加法同态加密算法的加密运算、全同态加密算法的加密运算;
若加密运算EH(·)为乘数加密运算,则:
秘密协同生成系统在[1,n-1]内随机选择一个整数t0作为乘数加密运算的密钥(对称密钥),计算t2=EH((c0)-1)=((c0)-1(t0)-1)mod n(乘数加密);
或者,秘密协同生成系统使用签名辅助装置在[1,n-1]内的乘数加密密钥t0,计算t2=EH((c0)-1)=((c0)-1(t0)-1)mod n;
若加密运算EH(·)为同态加密运算,则:
秘密协同生成系统临时生成一个同态加密算法的密钥对(公私钥对),其中私钥为t0,然后采用同态加密算法使用临时生成的密钥对中的公钥对(c0)-1进行加密运算得到t2=EH((c0)-1);
或者,秘密协同生成系统采用同态加密算法使用签名辅助系统的同态加密算法的公钥对(c0)-1进行加密运算得到t2=EH((c0)-1),签名辅助系统的与加密公钥对应的同态加密算法的私钥为t0;
若t0是临时生成的乘数加密算法的密钥或临时生成的同态加密算法的私钥,则:
秘密协同生成系统采用对称密钥密码算法和签名辅助系统的对称密钥对密钥t0加密得到k2,或者,秘密协同生成系统采用签名辅助系统的公钥对t0进行加密得到k2(包括普通公钥如RSA、SM2算法的公钥,或者群组加密算法的群组公钥);
若t0是签名辅助系统的乘数加密算法的密钥或同态加密算法的私钥,则k2为空(即没有);
秘密协同生成系统将d2、c0、t0销毁,将PA、gd2、cA2、t2、k2返回给签名装置;
(PA=[(d2d1)-1]dA,gd2=g^(d2)-1,cA2=(c0d2)mod n,t2=(t0c0)-1,k2=E(t0))
签名装置计算gc=gd2^((d1)-1),cA1=(d1cA2)mod n,将dA、d1销毁;
签名装置在不暴露自己的秘密的情况下,验证PA是否为PA=[(d2d1)-1]dA,以及(cA1t2m)mod n是否为(d1d2)mod n,其中t2m为t2对应的明文数(即验证计算cA1的c0、(c0)-1是否是对应同一个c0,且互为乘法逆,即(c0(c0)-1)mod n=1);若验证不通过,则转入出错处理,若验证通过则得到:
PA=[c-1]dA,gc=g^(c-1),cA1=(c0c)mod n,t2=EH((c0)-1),k2,其中c≡(d1d2)(modn)(模n同余),k2为对解密密钥t0加密后的数据(或为空);
签名装置通过其内实施的私钥生成功能组件(程序、程序模块)实施上述SM9签名私钥秘密协同生成步骤,生成PA、gc、cA1、t2、k2。
对于以上所述秘密c、c0,以及参数PA=[c-1]dA,gc=g^(c-1),cA1=(c0c)mod n,t2=EH((c0)-1)、k2的生成方法,签名装置在不暴露自己秘密的情况下,验证PA是否为PA=[(d2d1)-1]dA,以及(cA1t2m)mod n是否为(d1d2)mod n的方法包括(有很多方式):
签名装置在[1,n-1]内随机选择一个整数b;
计算PID=[cA1]([hID]P2+Ppub),其中hID=H1(IDA||hid,n),IDA为签名装置的用户的身份标识别;
若EH(·)为乘数加密算法的加密运算,则签名装置计算利用t2计算t3=EH(t2mb)=(t2b)mod n,其中t2m为t2对应的明文数(即(c0)-1);
若EH(·)为同态加密算法的加密运算,则签名装置计算利用t2和同态加密运算计算t3=EH(t2mb(mod n));
签名装置将PA、t3、PID、k2发送给秘密协同生成系统;
若k2为空,则秘密协同生成系统利用签名辅助系统的进行解密运算DH(·)的解密密钥t0,解密t3得到t4=DH(t3)mod n(正常情况下为((c0)-1b)mod n);
若k2非空,则秘密协同生成系统利用签名辅助系统的密钥(对称密钥或私钥)解密k2得到进行解密运算DH(·)的解密密钥t0,然后使用t0解密t3得到t4=DH(t3)mod n(正常情况下为((c0)-1b)mod n);
秘密协同生成系统计算gb=e([t4]PA,PID)或gb=e(PA,[t4]PID),将gb发送给签名装置;
签名装置比较gb与g^b与是否相同,若相同,则PA为PA=[(d2d1)-1]dA,(cA1t2m)mod n为(d1d2)mod n;
或者,
签名装置在[1,n-1]内随机选择一个整数b;
计算gID=e(PA,P)^cA1,其中P=[hID]P2+Ppub,hID=H1(IDA||hid,n),IDA为签名装置的用户的身份标识别;
若EH(·)为乘数加密算法的加密运算,则签名装置计算利用t2计算t3=EH(t2mb)=(t2b)mod n,其中t2m为t2对应的明文数(即(c0)-1);
若EH(·)为同态加密算法的加密运算,则签名装置计算利用t2和同态加密运算计算t3=EH(t2mb(mod n));
签名装置将gID、t3、k2发送给秘密协同生成系统;
若k2为空,则秘密协同生成系统利用签名辅助系统的进行解密运算DH(·)的解密密钥t0,解密t3得到t4=DH(t3)mod n(正常情况下为((c0)-1b)mod n);
若k2非空,则秘密协同生成系统利用签名辅助系统的密钥(对称密钥或私钥)解密k2得到进行解密运算DH(·)的解密密钥t0,然后使用t0解密t3得到t4=DH(t3)mod n(正常情况下为((c0)-1b)mod n);
秘密协同生成系统计算gb=gb^t4,将gb发送给签名装置;
签名装置比较gb与g^b与是否相同,若相同,则PA为PA=[(d2d1)-1]dA,(cA1t2m)mod n为(d1d2)mod n。
注意,若要采用匿名方式,则应该使用hID。
基于本发明的安全可控的SM9数字签名生成方法可实施构建安全可控的SM9数字签名生成系统,系统包括签名装置和签名辅助系统,签名装置有PA=[c-1]dA,gc=g^(c-1),cA1=(c0c)mod n,t2=EH((c0)-1)和用于解密t2的解密密钥的密文数据k2,其中dA为用户的SM9签名私钥;当需要使用用户的SM9签名私钥针对消息M进行数字签名时,所述签名装置和签名辅助系统按所述安全可控的SM9数字签名生成方法生成针对消息M的数字签名;进一步地,实施的系统还可以包括标识注册系统、秘密协同生成系统。
本发明的签名装置可以是如个人电脑、手机移动终端等包含软硬件、具有计算能力装置,它在与签名辅助系统、密钥协同生成系统、标识注册系统交互过程中作为客户端;本发明的签名辅助系统、标识注册系统以及秘密协同生成系统是提高相应服务功能的系统,它们在与签名装置交互过程中作为服务端系统。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种安全可控的SM9数字签名生成方法,其特征是:
签名装置有PA=[c-1]dA,gc=g^(c-1),cA1=(c0c)mod n,t2=EH((c0)-1),其中dA为用户的SM9签名私钥,c、c0为[1,n-1]内的签名装置不知道的整数秘密,c-1、(c0)-1分别为c、c0的模n乘法逆,n为SM9双线性映射群G1、G2、GT的阶,n为素数,cA1为签名装置的秘密,^表示幂运算,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥,EH((c0)-1)表示针对(c0)-1的加密运算;
针对(c0)-1的加密运算EH(·)包括乘数加密算法的加密运算,简称乘数加密运算,以及同态加密算法的加密运算,简称同态加密运算,其中同态加密运算又包括加法同态加密算法的加密运算、全同态加密算法的加密运算;
若加密运算EH(·)为乘数加密运算,则:
t2=EH((c0)-1)=((c0)-1(t0)-1)mod n,其中(c0)-1、(t0)-1分别为c0、t0的模n乘法逆,t0是计算t2时在[1,n-1]内随机选择的一个作为乘数加密运算的密钥的整数,或者t0是签名辅助系统在[1,n-1]内的乘数加密密钥;
若加密运算EH(·)为同态加密运算,则:
t2=EH((c0)-1)是采用签名辅助系统的同态加密算法的公钥或采用临时生成的同态加密算法的公私钥对中的公钥进行加密运算的结果,与加密运算EH(·)所采用的公钥对应的用于进行解密运算的私钥为t0;
EH(·)对应有解密运算DH(·);乘数解密运算DH(·)的密钥t0和同态解密运算DH(·)的私钥t0称为解密运算DH(·)的解密密钥;
若t0是临时生成的乘数加密算法的密钥或临时生成的同态加密算法的私钥,则:
密钥t0经使用签名辅助系统的对称密钥、采用对称密钥加密算法加密后得到密文k2,或者,密钥t0经使用签名辅助系统的公钥、采用公钥密码算法加密后得到密文k2;签名装置有t0的密文k2;
若t0是签名辅助系统的乘数加密密钥或签名辅助系统的同态加密算法的私钥,则k2为空;
当需要使用用户的SM9私钥dA针对消息M进行数字签名时,签名装置和签名辅助系统按如下方式生成数字签名:
在针对消息M进行数字签名前或时,签名装置在[1,n-1]内随机选择一个整数t1,计算c1=(t1cA1)mod n;
若EH(·)为乘数加密运算,则签名装置利用t2=EH((c0)-1)计算得到c2=EH((c0)-1(t1)-1),其中(t1)-1为t1的模n乘法逆;
若EH(·)为同态加密算法的加密运算,则签名装置利用t2=EH((c0)-1)和同态加密运算计算得到c2=EH((c0)-1(t1)-1(mod n));
签名装置在[1,n-1]内随机选择一个整数r1,计算g1=g^r1;
签名辅助系统在[1,n-1]内随机选择一个整数r2,计算g2=gc^r2;
签名装置和签名辅助系统在确保对方不重新选择r1、r2,不重新计算g1、g2的情况下,交换g1、g2;
所述确保对方不重新选择r1、r2,不重新计算g1、g2的情况下,交换g1、g2是指一方不能在收到另一方的g2或g1后,重新选择自己的r1或r2,然后重新计算g1或g2;
签名装置计算w=g1g2;
签名辅助系统计算wf=g1g2;
签名装置、签名辅助系统分别检查w、wf是否为单位元,若w和/或wf为单位元,则重新选择r1、r2,重新计算w、wf,直到w和wf为非单位元;
签名装置利用消息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=((r1-h)c1)mod n或S1=[((r1-h)c1)mod n]PA;
签名装置将s1或S1,PA、h、c2、k2以及IDA或hID传送给签名辅助系统,其中,IDA是用户的标识,hID=H1(IDA||hid,n);
若k2非空,则签名辅助系统解密k2得到对c2进行解密运算的密钥t0,使用解密得到的解密密钥t0对c2进行解密运算,得到c2m=DH(c2)mod n,若签名验证不通过,则转入出错处理;
若k2为空,则签名辅助系统直接使用其拥有的进行解密运算DH(·)的解密密钥t0对c2进行解密运算,得到c2m=DH(c2)mod n;
签名辅助系统计算S=[((r2+s1c2m)mod n]PA,或S=[r2]PA+[c2m]S1将发送给签名装置;
签名辅助系统在将S发送给签名装置前,验证S1或S是否是使用与IDA或hID相对应的SM9签名私钥dA计算得到,若验证失败则转入出错处理;
签名装置接收到S后,验证S是否是使用r1、r2、h和IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到,若验证通过,则(h,S)为消息M的数字签名,否则,转入出错处理;
所述签名辅助系统在辅助、协助签名装置完成数字签名的生成之前,先鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者;
所述签名辅助系统是辅助、协作签名装置完成SM9数字签名生成的装置或系统;
所述签名装置即签名者拥有的计算装置是具有计算能力、包含软硬件的装置;所述签名装置通过其内实施的密码模块、密码程序实施以上所述数字签名计算步骤,提供SM9数字签名功能。
2.根据权利要求1所述的安全可控的SM9数字签名生成方法,其特征是:
每次生成数字签名前或时更新计算c1、c2不是必须的。
3.根据权利要求2所述的安全可控的SM9数字签名生成方法,其特征是:
所述安全可控的SM9数字签名生成方法允许计算c1、c2时固定取t1=1,即固定取c1=cA1,c2=t2;若固定取t1=1,则对(c0)-1的加密运算t2=EH((c0)-1)允许是乘数加密和同态加密之外的对称密钥密码算法或公钥密码算法的加密,其中签名辅助系统有解密t2得到(c0)-1的密钥。
4.根据权利要求3所述的安全可控的SM9数字签名生成方法,其特征是:
所述签名装置和签名辅助系统在确保对方不重新选择r1、r2,不重新计算g1、g2的情况下,交换g1、g2的一种方法如下:
签名装置完成g1=g^r1计算后,计算g1的杂凑值h1,将h1发送给签名辅助系统;
签名辅助系统完成g2=gc^r2计算后,计算g2的杂凑值h2,将h2发送给签名装置;
签名装置接收到签名辅助系统的h2后,将g1发送给签名辅助系统;
签名辅助系统接收到签名装置的h1后,将g2发送给签名装置;
签名装置接收到g2后,计算、检查g2的杂凑值是否是h2,若不是,则转入出错处理,若是,则接受g2;
签名辅助系统接收到g1后,计算、检查g1的杂凑值是否是h1,若不是,则转入出错处理,若是,则接受g1。
5.根据权利要求3所述的安全可控的SM9数字签名生成方法,其特征是:
签名辅助系统在将S发送给签名装置前,验证S1或S是否是使用与IDA或hID相对应的SM9签名私钥dA计算得到的一种方法如下:
签名辅助系统计算t=g^h,P=[hID]P2+Ppub,计算得到u=e(PA,P)^((c2ms1)mod n)或u=e(S1,P)^c2m的值,计算w'=u·t,检查验证w'与g1是否相等,若相等,则S1是使用与IDA或hID相对应的SM9签名私钥dA计算得到,否则,验证失败;
或者,
签名辅助系统计算t=g^h,P=[hID]P2+Ppub,u=e(S,P),w'=u·t,检查验证w'与wf是否相等,若相等,则S是使用与IDA或hID相对应的SM9签名私钥dA计算得到,否则,验证失败。
6.根据权利要求3所述的安全可控的SM9数字签名生成方法,其特征是:
签名装置验证S是否是使用r1、r2、h和IDA或hID对应的私钥dA按SM9数字签名的计算方式计算得到的一种方式如下:
签名装置计算t=g^h,P=[hID]P2+Ppub,u=e(S,P),w'=u·t,检查验证w'与w是否相等,若相等,则验证通过,否则,验证失败。
7.根据权利要求3所述的安全可控的SM9数字签名生成方法,其特征是:
签名辅助系统鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者的一种方法如下:
包含用户标识IDA或hID、针对用户的身份鉴别信息的数据组合形成标识鉴别信息,标识鉴别信息经采用对称密钥密码算法和签名辅助系统的对称密钥加密后得到加密的标识鉴别信息,或者标识鉴别信息经采用公钥密码算法签名和加密后得到签名加密的标识鉴别信息,所述签名加密包括先签名后加密,或者先加密后签名,其中签名使用的是标识注册系统的私钥,加密使用的是签名辅助系统的公钥;采用对称密钥加密的标识鉴别信息和采用公钥密码算法签名加密后的标识鉴别信息统称为加密的标识鉴别信息;加密的标识鉴别信息保存在签名装置;
当签名辅助系统需要鉴别确认使用签名装置的用户即签名者是否是IDA或hID的拥有者时,签名装置将加密的标识鉴别信息提交到签名辅助系统;
签名辅助系统解密加密的标识鉴别信息,获得标识鉴别信息的明文,其中,对于签名加密的标识鉴别信息,签名辅助系统还要验证数字签名的有效性,验证通过后继续;
签名辅助系统确定解密获得的标识鉴别信息中包含的IDA或hID是否是当前用于数字签名生成验证的IDA或hID,若不是,则转入出错处理,若是,则继续;
签名辅助系统从解密得到的标识鉴别信息中获取用户身份鉴别信息,然后利用用户身份鉴别信息对签名装置的用户即签名者进行身份鉴别,若用户身份鉴别通过,则确认使用签名装置的用户即签名者是IDA或hID的拥有者,否则鉴别确认失败;
所述标识注册系统是对用户标识IDA或hID进行注册管理的系统。
8.根据权利要求7所述的安全可控的SM9数字签名生成方法,其特征是:
所述对称密钥加密的标识鉴别信息或签名加密的标识鉴别信息的一种生成方式如下:
在生成得到PA,cA1后,签名装置向标识注册系统提交IDA或hID,申请注册IDA或hID;
标识注册系统检查IDA或hID是否已注册,若已注册,则提示已注册,若未注册,则继续;
签名装置在不暴露自己秘密的情况向标识注册系统证明拥有IDA或hID对应的签名私钥dA,证明通过后进行后续操作,否则转入出错处理;
签名装置向标识注册系统提交用于用户身份鉴别的身份鉴别信息,然后标识注册系统使用对称密钥密码算法和签名辅助系统的对称密钥对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行加密,形成加密的标识鉴别信息,或者标识注册系统采用公钥密码算法、使用自己的私钥对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行签名,然后标识注册系统采用公钥密码算法、使用签名辅助系统的公钥对签名后的标识鉴别信息加密,得到先签名后加密的标识鉴别信息,或者标识注册系统采用公钥密码算法、使用签名辅助系统的公钥对包含IDA或hID和用户身份鉴别信息的标识鉴别信息进行加密,得到加密后的标识鉴别信息,然后标识注册系统采用公钥密码算法、使用自己的私钥对加密后的标识鉴别信息进行数字签名,得到先加密后签名的标识鉴别信息。
9.根据权利要求8所述的安全可控的SM9数字签名生成方法,其特征是:
对于以上所述安全可控的SM9数字签名生成方法,所述签名装置对加密的标识鉴别信息进行更新的方法包括:
签名装置向标识注册系统提交加密的标识鉴别信息,标识注册系统解密加密的标识鉴别信息,若是签名加密的标识鉴别信息,标识注册系统还验证加密的标识鉴别信息中包含的数字签名的有效性;
标识注册系统利用解密得到的标识鉴别信息中的用户身份鉴别对签名装置的用户进行身份鉴别,若鉴别不同通过,则转入出错处理,若鉴别通过,则继续;
签名装置在不暴露自己秘密的情况向标识注册系统证明拥有IDA或hID对应的签名私钥dA;
签名装置向标识注册系统证明拥有IDA或hID对应的签名私钥dA后,签名装置和标识注册系统按照注册PA时生成加密的标识鉴别信息的同样方式,生成新的加密的标识鉴别信息。
10.一种基于权利要求1-9中任一项所述的安全可控的SM9数字签名生成方法的安全可控的SM9数字签名生成系统,其特征是:
所述安全可控的SM9数字签名生成系统包括签名装置和签名辅助系统,签名装置有PA=[c-1]dA,gc=g^(c-1),cA1=(c0c)mod n,t2=EH((c0)-1)和用于解密t2的解密密钥的密文数据k2,其中dA为用户的SM9签名私钥;当需要使用用户的SM9签名私钥针对消息M进行数字签名时,所述签名装置和签名辅助系统按所述安全可控的SM9数字签名生成方法生成针对消息M的数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210786016.4A CN115314208B (zh) | 2022-07-04 | 2022-07-04 | 一种安全可控的sm9数字签名生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210786016.4A CN115314208B (zh) | 2022-07-04 | 2022-07-04 | 一种安全可控的sm9数字签名生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115314208A CN115314208A (zh) | 2022-11-08 |
CN115314208B true CN115314208B (zh) | 2024-04-02 |
Family
ID=83856694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210786016.4A Active CN115314208B (zh) | 2022-07-04 | 2022-07-04 | 一种安全可控的sm9数字签名生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115314208B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566128A (zh) * | 2017-10-10 | 2018-01-09 | 武汉大学 | 一种两方分布式sm9数字签名生成方法与系统 |
CN110166235A (zh) * | 2019-05-21 | 2019-08-23 | 武汉理工大学 | 增强安全的sm9数字签名协同生成方法及系统 |
CN110519051A (zh) * | 2019-08-22 | 2019-11-29 | 武汉理工大学 | r参数和秘密双乘积的SM9签名协同生成方法及系统 |
CN111262704A (zh) * | 2020-01-15 | 2020-06-09 | 江苏芯盛智能科技有限公司 | Sm9数字签名生成方法、装置、计算机设备和存储介质 |
CN113382002A (zh) * | 2021-06-10 | 2021-09-10 | 杭州安恒信息技术股份有限公司 | 数据请求方法、请求应答方法、数据通信系统及存储介质 |
-
2022
- 2022-07-04 CN CN202210786016.4A patent/CN115314208B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566128A (zh) * | 2017-10-10 | 2018-01-09 | 武汉大学 | 一种两方分布式sm9数字签名生成方法与系统 |
CN110166235A (zh) * | 2019-05-21 | 2019-08-23 | 武汉理工大学 | 增强安全的sm9数字签名协同生成方法及系统 |
CN110519051A (zh) * | 2019-08-22 | 2019-11-29 | 武汉理工大学 | r参数和秘密双乘积的SM9签名协同生成方法及系统 |
CN111262704A (zh) * | 2020-01-15 | 2020-06-09 | 江苏芯盛智能科技有限公司 | Sm9数字签名生成方法、装置、计算机设备和存储介质 |
WO2021143456A1 (zh) * | 2020-01-15 | 2021-07-22 | 江苏芯盛智能科技有限公司 | Sm9数字签名生成方法、装置、计算机设备和存储介质 |
CN113382002A (zh) * | 2021-06-10 | 2021-09-10 | 杭州安恒信息技术股份有限公司 | 数据请求方法、请求应答方法、数据通信系统及存储介质 |
Non-Patent Citations (9)
Title |
---|
A File Encryption System Based on Attribute Based Encryption;Jie Tong;《2021 17th International Conference on Computational Intelligence and Security (CIS)》;20220211;全文 * |
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;全文 * |
SM9 Digital Signature with Non-repudiation;Meng Wang;《2020 16th International Conference on Computational Intelligence and Security (CIS)》;20210427;全文 * |
SM9标识密码算法综述;袁峰;程朝辉;;信息安全研究;20161105(11);全文 * |
SM9私钥分割生成及协同密码计算研究;熊枫;《中国优秀硕士学位论文全文数据库 信息科技辑》;20210815;全文 * |
Two Party Generation of SM9 Digital Signature;Wenlan Ye;《2020 IEEE 20th International Conference on Communication Technology (ICCT)》;20201224;全文 * |
基于iOS终端的SM2移动密码系统;邓高宇;龙毅宏;;软件;20180215(02);全文 * |
基于标识密码的密级标签控制模型;李文;李忠献;崔军;;计算机应用与软件;20180612(06);全文 * |
基于秘密共享的SM2和SM9密码协同计算研究与实现;丁帆;《中国优秀硕士学位论文全文数据库 信息科技辑》;20200715;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115314208A (zh) | 2022-11-08 |
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 | |
US7634085B1 (en) | Identity-based-encryption system with partial attribute matching | |
US8589693B2 (en) | Method for two step digital signature | |
EP4046325B1 (en) | Digital signature generation using a cold wallet | |
WO2019063674A1 (en) | ENCOUNTERING HID KEY SEAL | |
CN111277412B (zh) | 基于区块链密钥分发的数据安全共享系统及方法 | |
CN108551435B (zh) | 一种具有匿名性的可验证加密群签名方法 | |
CN108494559B (zh) | 一种基于半可信第三方的电子合同签订方法 | |
CN110971411B (zh) | 一种基于sotp技术对私钥乘加密的sm2同态签名方法 | |
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 | |
CN115865520B (zh) | 移动云服务环境中具有隐私保护的认证和访问控制方法 | |
CN115314207A (zh) | 一种sm2签名制作数据的安全可控使用方法及系统 | |
KR20080005344A (ko) | 인증서버가 사용자단말기를 인증하는 시스템 | |
US20210044435A1 (en) | Method for transmitting data from a motor vehicle and method for another vehicle to receive the data through a radio communication channel | |
CN116346336A (zh) | 一种基于多层密钥生成中心的密钥分发方法及相关系统 | |
CN115314208B (zh) | 一种安全可控的sm9数字签名生成方法及系统 | |
CN115150062B (zh) | 签名制作数据安全受控的sm9数字签名生成方法及系统 | |
TWI381696B (zh) | 基於利用個人化秘密的rsa非對稱式密碼學之使用者認證 | |
CN114389808A (zh) | 一种基于SM9盲签名的OpenID协议设计方法 | |
CN114978549B (zh) | 签名者掌控签名制作数据的sm2数字签名生成方法及系统 | |
CN115580401B (zh) | 一种基于可验证秘密共享的无证书sm2密钥生成方法 | |
CN114696997B (zh) | 一种基于ca和国密算法的抗量子计算通信方法及系统 | |
CN114900288B (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 |