CN111064564B - 一种sm9签名私钥生成和数字签名方法及系统和装置 - Google Patents
一种sm9签名私钥生成和数字签名方法及系统和装置 Download PDFInfo
- Publication number
- CN111064564B CN111064564B CN201911422398.7A CN201911422398A CN111064564B CN 111064564 B CN111064564 B CN 111064564B CN 201911422398 A CN201911422398 A CN 201911422398A CN 111064564 B CN111064564 B CN 111064564B
- Authority
- CN
- China
- Prior art keywords
- private key
- signature
- identification
- key generation
- 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
Images
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/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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- 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)
- Computer And Data Communications (AREA)
Abstract
发明为SM9签名私钥生成和数字签名方法及系统和装置:P1、P2分别为SM9算法中群G1、G2的生成元,n为群的阶;私钥生成服务端有系统主密钥sm,及Ppub=[sm]P2,PFpub=[sm]P1;客户端有用户主密钥sU,PU1=[sU]P1,PU2f=[(sU)‑1]P2;客户端和服务端以s=sm+sU为主密钥,协同生成用户的SM9签名私钥dA及PU2=[(sm+sU)‑1]Ppub且服务端得不到dA;签名方以P1为群G1的生成元、Ppub为主公钥,dA为私钥,采用SM9签名算法生成消息的数字签名(h,S);签名验证方验证e(PU1,PU2f)与e(P1,P2)相等,e(PU1+PFpub,PU2)与e(P1,Ppub)相等后,以P1为群G1的生成元、PU2为群G2的生成元、Ppub为主公钥,采用SM9签名算法验证消息的数字签名(h,S)的有效性。
Description
技术领域
本发明属于密码技术领域,特别是一种基于双线映射的具有抗抵赖能力的SM9签名私钥生成方法和数字签名方法及系统和装置。
背景技术
基于标识的密码(Identity Based Cryptography,IBC)与采用数字证书技术的PKI(Public Key Infrastructure)相比,由于省去了获取私钥拥有者的公钥数字证书这一麻烦环节,技术实现简单,目前日益受到人们的重视,具有广阔的应用前景。
基于标识的密码,既可以用于数据加密(称为Identity BasedEncryption,IBE),也可以用于数字签名(称为Identity Based Signature,IBS)。目前基于标识的密码算法大多是采用基于双线性映射(bilinear mapping,也称配对运算,Pairing)的算法,其中的双线性映射(配对运算)为:
e:G1×G2→GT时,其中G1、G2(配对或双线性映射的群)是加法循环群,GT是一个乘法循环群,G1、G2、GT的阶是素数n(SM9规范中使用G1、G2、GT的阶是大写字母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([a]P,[b]Q)=e(P,Q)ab。
这里a、b是[0,n-1]中的一个整数,[a]P、[b]Q表示点的P、Q的倍加或数乘。
SM9是国家密码管理局颁布的一种基于双线性映射(配对运算)的标识密码算法。基于SM9密码算法能实现基于标识的数字签名、密钥交换及数据加密。在SM9密码算法中,使用用户的SM9私钥dA针对消息M生成数字签名的过程如下:
计算得到w=gr,这里r是签名计算时在[1,n-1]区间内随机选择的整数,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范;注意,这里的主私钥或主密钥,主公钥,用户的用于签名的SM9标识私钥的符号与SM9规范中使用的符号有所不同);
然后,计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶(参见SM9规范,注意这里群的阶使用的符号与SM9规范略有不同,使用的小写字母n,而SM9规范使用的是大写字母N);
若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密码算法中,一个用户标识IDA所对应的用于签名的私钥由密钥生成中心(Key Generation Center,KGC)或私钥生成系统的私钥生成器(Private Key Generator,PKG)按如下方式计算得到:
计算t1=(H1(IDA||hid,n)+s)modn,其中H1是SM9规范中规定的散列算法,s是主私钥或主密钥,n为G1、G2、GT的阶,hid是用一个字节表示的签名私钥生成函数识别符,||表示字节串合并,mod n表示求模n余数运算(注:SM9规范中主私钥或主密钥使用的符号是ks,群G1、G2、GT的阶用的符号是N,与本专利申请文件略有不同);
若t1=0,则需重新产生主私钥,计算和公布主公钥,并更新已有用户的私钥;否则,计算t2=s(t1)-1mod n,dA=[t2]P1,其中(t1)-1是t1的模n乘法逆,P1为群G1的生成元,符号[]表示多个元(点)的加运算(数乘运算,参见SM9规范),则dA是用户标识IDA所对应的签名私钥。
在基于双线性映射(配对运算)的标识密码中,由于用户用于数字签名的私钥是由一个私钥生成系统(或私钥生成中心)生成,采用这种方式生成的用户私钥用于数字签名时无法实现抗抵赖,因为标识私钥拥有者可以说用于数字签名的私钥是私钥生成系统的运行者通过私钥生成系统产生并使用,针对消息的数字签名不是自己使用私钥签名生成的。
发明内容
本发明的目的是针对目前的基于标识的数字签名无法实现抗抵赖的问题,提出相应的解决方案。
为了实现以上目的,本发明的技术方案包括一种SM9签名私钥生成方法、一种基于此SM9签名私钥生成方法的数字签名方法及相应的签名验证方法,以及基于此SM9签名私钥生成方法、数字签名方法的私钥生成系统和密码装置。
在以下描述中,如无特别说明,整数的(如a-1,a为非0整数)逆是指该整数的模n乘法逆,或该整数的模n余数的模n乘法逆(二者等同)。
本发明提出的SM9签名私钥生成方法具体如下。
所述SM9签名私钥生成方法涉及双线性映射(配对运算)e:G1×G2→GT;群G1的生成元为P1,群G2的生成元为P2;群G1、G2、GT的阶为素数n;
所述SM9签名私钥生成方法涉及服务端的标识私钥生成服务器(Private KeyGeneration Server)和用户端的标识私钥生成客户端(Private Key GenerationClient);
所述标识私钥生成服务器有[1,n-1]内的系统主密钥sm(或称系统主私钥sm);sm有对应的系统主公钥Ppub=[sm]P2,有对应的系统辅助公钥PFpub=[sm]P1;
所述标识私钥生成客户端有[1,n-1]内的用户主密钥sU(或称用户主私钥sU),有群G1中的元PU1=[sU]P1,有群G2中的元PU2f=[(sU)-1]P2,其中(sU)-1是sU的模n乘法逆;
所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器在不暴露各自主密钥(主私钥)的情况下以s=(sm+sU)mod n为主密钥(主私钥),通过交互协同生成用户标识(如IDA)所对应的用于签名的SM9标识私钥dA,通过交互协同生成群G2中的元PU2=[(sm+sU)-1]Ppub,其中(sm+sU)-1为sm+sU(等价地(sm+sU)mod n)的模n乘法逆;
(协同生成dA时,P1仍然为群G1的生成元,即:
dA=[(sm+sU)(hID+sm+sU)-1]P1,其中hID=H1(IDA||hid,n),IDA为用户标识)
在标识私钥dA的生成过程中服务端的系统无法得到最终的dA(所述服务端的系统包括标识私钥生成服务器及其他与私钥生成、发布有关的系统构件)。
在协同生成用户标识所对应的用于签名的SM9标识私钥dA后,标识私钥生成客户端和标识私钥生成服务器通过数字签名或配对运算检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,若不是,则报错(之后怎么办取决于具体实施),若是,则完成标识私钥dA的协同生成。
(所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器如何通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA属于本发明之外的事情)
对于以上所述SM9签名私钥生成方法,在完成用户的用于签名的SM9标识私钥dA生成后,用户主密钥sU销毁或不销毁(若sU不销毁,则可用于用户其他标识私钥的生成)。
对于以上所述SM9签名私钥生成方法,协同生成的PU1或/和PU2被标识私钥生成系统(比如,标识私钥生成服务器或其他系统构件)公开发布(比如,通过一个采用区块链技术的公共平台发布,这样在出现纠纷时可用)。
对于以上所述SM9签名私钥生成方法,所述用户标识包括:不包含任何限定信息的用户原始标识(比如,没有限定信息的电子邮箱地址、手机号码),或者包含限定信息的受限定的用户标识(比如,受时间有效期或其他信息限定的电子邮箱地址、手机号码)。
对于以上所述SM9签名私钥生成方法,协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2=[(sm+sU)-1]Ppub的过程中可能出现(sm+sU)mod n=0或(hID+sm+sU)mod n=0,其中hID=H1(IDA||hid,n),IDA是用户标识,hid是用一个字节表示的签名私钥生成函数识别符,H1()是SM9规范中定义的散列或哈希函数,若如此,则会暴露系统主密钥sm。
避免协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2的过程中因出现(sm+sU)mod n=0或(hID+sm+sU)mod n=0的情况而导致系统主密钥sm暴露的一种方法如下:
在协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2时,服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(sm+sU0+sU1)mod n为主密钥(主私钥),在不暴露各自秘密的情况下,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,协同生成群G1中的元PU1=[(sU0+sU1)]P1以及群G2中的元:
PU2f=[(sU0+sU1)-1]P2、PU2=[(sm+sU0+sU1)-1]Ppub,
其中sm、sU0为标识私钥生成服务器的秘密,sU1为标识私钥生成客户端的秘密,(sm+sU0+sU1)-1为sm+sU0+sU1(等价地(sm+sU0+sU1)mod n)的模n乘法逆,(sU0+sU1)-1为sU0+sU1(等价地(sU0+sU1)mod n)的模n乘法逆;
在协同生成dA、PU1、PU2f和PU2的过程中若检查发现dA为零元或(sm+sU0+sU1)mod n=0或(hID+sm+sU0+sU1)mod n=0或(sU0+sU1)mod n=0(通常是通过间接的方式),则标识私钥生成服务器重新在[1,n-1]内随机选择一个整数sU0,标识私钥生成客户端重新在[1,n-1]内随机选择一个整数sU1,标识私钥生成客户端和标识私钥生成服务器重新以s=(sm+sU0+sU1)modn为主密钥(主私钥),通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,重新协同生成群G1中的元PU1=[(sU0+sU1)]P2以及群G2中的元:
PU2f=[(sU0+sU1)-1]P2、PU2=[(sm+sU0+sU1)-1]Ppub,
直到dA不为零元且(sm+sU0+sU1)mod n不为0且(hID+sm+sU0+sU1)mod n不为0且(sU0+sU1)mod n不为0;
协同生成dA、PU1、PU2f和PU2后,(sU0+sU1)mod n对应前述用户主密钥(主私钥)sU(此时sU由标识私钥生成客户端和标识私钥生成服务器共享)。
(标识私钥生成客户端和标识私钥生成服务器如何通过各自的秘密sm、sU0、sU1,协同计算dA、PU1、PU2f、PU2,以及在计算过程中如何检查发现(sm+sU0+sU1)mod n=0或(hID+sm+sU0+sU1)mod n=0或(sU0+sU1)mod n=0,属于本发明之外的事情)
避免协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2的过程中因出现(sm+sU)mod n=0或(hID+sm+sU)mod n=0的情况而导致系统主密钥sm暴露的另一种方法如下:
在协同生成用户标识所对应的标识私钥dA和PU2时,服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(sm+sU0sU1)modn为主密钥(主私钥),在不暴露各自秘密的情况下,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,协同生成群G1中的元PU1=[(sU0sU1)]P1以及群G2中的元:
PU2f=[(sU0sU1)-1]P2、PU2=[(sm+sU0sU1)-1]Ppub,
其中sm、sU0是标识私钥生成服务器的秘密,sU1是标识私钥生成客户端的秘密,(sU0sU1)-1是sU0sU1(等价地(sU0sU1)mod n)的模n乘法逆,(sm+sU0sU1)-1是sm+sU0sU1(等价地(sm+sU0sU1)mod n)的模n乘法逆;
在协同生成用户标识所对应的标识私钥dA、PU2的过程中,若检查发现dA为零元或(sm+sU0sU1)mod n=0或(hID+sm+sU0sU1)mod n=0(通常是通过间接的方式),则标识私钥生成服务器在[1,n-1]内重新随机选择一个整数sU0,标识私钥生成客户端在[1,n-1]内重新随机选择一个整数sU1,标识私钥生成客户端和标识私钥生成服务器重新以s=(sm+sU0sU1)mod n为主密钥(主私钥),通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,重新协同生成群G1中的元PU1=[(sU0sU1)]P1以及生成群G2中的元PU2f=[(sU0sU1)-1]P2、PU2=[(sm+sU0sU1)-1]Ppub,直到dA不为零元且(sm+sU0sU1)mod n不为0且(hID+sm+sU0sU1)mod n不为0;
协同生成dA、PU1、PU2f和PU2后,(sU0sU1)mod n对应前述用户主密钥(主私钥)sU(此时sU由标识私钥生成客户端和标识私钥生成服务器共享)。
(标识私钥生成客户端和标识私钥生成服务器如何通过各自的秘密sm、sU0、sU1,协同计算dA、PU1、PU2f、PU2,以及在计算过程中如何检查发现(sm+sU0sU1)mod n=0或(hID+sm+sU0sU1)mod n=0,属于本发明之外的事情)
本发明提出的基于上述SM9签名私钥生成方法的数字签名方法如下。
当需要使用按所述SM9签名私钥生成方法生成的用户的用于签名的SM9标识私钥dA针对消息M进行数字签名时,签名方以P1作为群G1的生成元,以PU2作为群G2的生成元(二者分别对应SM9数字签名算法中的P1、P2),以Ppub作为与主密钥(主私钥)s=(sm+sU)mod n对应的主公钥(此时,Ppub=[s]P2=[(sm+sU)(sm+sU)-1s]P2=[sm+sU]PU2,对应SM9数字签名算法中的主公钥Ppub),以dA为用户的用于签名的SM9标识私钥,采用SM9数字签名算法生成针对消息M的数字签名(h,S)(Signature),且最终的签名数据(Signed Data)中包含(h,S)、PU1、PU2f及PU2(最终的签名数据如何包含PU1、PU2f及PU2属于本发明之外的事)。
针对以上所述数字签名方法的签名验证方法如下。
对消息M的数字签名进行签名验证时,签名验证方从签名数据中分离出数字签名(h,S),以及PU1、PU2f和PU2;
签名验证检查确定e(PU1,PU2f)与e(P1,P2)是否相同,e(PU1+PFpub,PU2)与e(P1,Ppub)是否相同,若不是两个比较都相同,则签名验证失败,若两个比较都相同,则签名验证方以P1作为群G1的生成元,以PU2作为群G2的生成元(二者分别对应SM9数字签名算法中的P1、P2),以Ppub作为与主密钥(主私钥)s=(sm+sU)mod n对应的主公钥(此时,Ppub=[s]P2=
[(sm+sU)(sm+sU)-1s]P2=[sm+sU]PU2,对应SM9数字签名算法中的主公钥Ppub),采用SM9数字签名算法对(h,S)作为消息M的数字签名的有效性进行验证。
基于本发明的SM9签名私钥生成方法可构建相应的标识私钥生成系统,系统包括服务端的标识私钥生成服务器(Private Key Generation Server)和用户端的标识私钥生成客户端(Private Key Generation Client);所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识私钥生成服务器和标识私钥生成客户端按所述SM9签名私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA。
基于前述SM9签名私钥生成方法及数字签名方法可构造相应的密码装置,所述密码装置包括签名运算单元和密钥存储单元,其中签名运算单元用于完成签名运算,密钥存储单元保存有按所述SM9签名私钥生成方法生成的用户的用于签名的SM9标识私钥dA;当需要使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元作为所述数字签名方法中的签名方,使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)(所述密码装置不必负责完成将PU1、PU2f及PU2放到签名数据中的操作)。
基于本发明的标识私钥生成系统和密码装置可实施相应的密码系统,系统包括所述标识私钥生成系统和密码装置,其中标识私钥生成系统按所述SM9签名私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA,并由标识私钥生成客户端将生成的用于签名的SM9标识私钥dA保存在所述密码装置的密钥存储单元中;所述签名运算单元是一个硬件组件或软硬件相结合的组件或软件组件;当需使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按前述数字签名方法生成针对消息M的数字签名(h,S)。
基于本发明的SM9签名私钥生成方法所生成的用户的用于签名的SM9标识私钥dA,由系统主密钥(系统主私钥)sm和用户主密钥(用户主私钥)sU共同生成,且标识私钥生成系统也无法得到dA,这样就确保标识私钥生成系统无法生成、伪造用户的用于签名的SM9标识私钥dA,使用这种用于签名的SM9标识私钥所生成的数字签名具有抗抵赖性,因为其他人、机构无法生成、伪造用户的用于签名的SM9标识私钥dA,且PU1或/和PU2被公开发布使得用户无法否认dA是之前由用户自己生成。
附图说明
图1:本发明的标识私钥生成系统
图2:本发明的密码装置
图3:本发明的密码系统
具体实施方式
下面对本发明的具体实施方式进行描述。
实施例1、
实施例1涉及本发明的SM9签名私钥生成方法、数字签名方法及签名验证方法的实施。
SM9签名私钥生成方法的实施涉及双线性映射(配对运算)e:G1×G2→GT;群G1的生成元为P1,群G2的生成元为P2;群G1、G2、GT的阶为素数n;
实施涉及服务端的标识私钥生成服务器(Private Key Generation Server)和用户端的标识私钥生成客户端(Private Key Generation Client);
所述标识私钥生成服务器有[1,n-1]内的系统主密钥sm(或称系统主私钥sm);sm有对应的系统主公钥Ppub=[sm]P2,有对应的系统辅助公钥PFpub=[sm]P1;
所述标识私钥生成客户端在[1,n-1]内随机选择一个整数作为用户主密钥sU(或称用户主私钥sU),计算有G1中的元PU1=[sU]P1,计算有G2中的元PU2f=[(sU)-1]P2,其中(sU)-1是sU的模n乘法逆;
所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器在不暴露各自主密钥(主私钥)的情况下以s=(sm+sU)mod n为主密钥(主私钥),通过交互协同生成用户标识(如IDA)所对应的用于签名的SM9标识私钥dA,通过交互协同生成群G2中的元PU2=[(sm+sU)-1]Ppub,其中(sm+sU)-1为sm+sU(等价地(sm+sU)mod n)的模n乘法逆;
(协同生成dA时,P1仍然为群G1的生成元,即:
dA=[(sm+sU)(hID+sm+sU)-1]P1,其中hID=H1(IDA||hid,n),IDA为用户标识)
在标识私钥dA的生成过程中服务端的系统无法得到最终的dA(所述服务端的系统包括标识私钥生成服务器及其他与私钥生成、发布有关的系统构件)。
对于以上实施的SM9签名私钥生成方法,在完成用户的用于签名的SM9标识私钥dA生成后,用户主密钥sU销毁或不销毁(若sU不销毁,则可用于用户其他标识私钥的生成)。
所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器如何通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2属于本发明之外的事,任何符合以下要求,能实现用户的用于签名的SM9标识私钥dA协同生成的方式都可以:
所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器在不暴露各自主密钥(主私钥)的情况下以s=(sm+sU)mod n为主密钥(主私钥),通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,协同生成群G2中的元PU2=[(sm+sU)-1]Ppub;在标识私钥dA的生成过程中服务端的系统无法得到最终的dA(所述服务端的系统包括标识私钥生成服务器及其他系统构件)
作为dA协同生成具体实施方式的可能选择,CN109361519A或CN110401524A的具体实施方式中的用于签名的SM9标识私钥协同生成方式可采用,其中,本发明的用户端的标识私钥生成客户端作为CN109361519A或CN110401524A中的一个标识私钥生成器,本发明的标识私钥生成服务器作为其中的另一个私钥生成器,且由标识私钥生成客户端最终计算得到dA,从而使得在标识私钥dA的生成过程中服务端的系统无法得到最终的dA(所述服务端的系统包括标识私钥生成服务器及其他系统构件)。
作为PU2=[(sm+sU)-1]Ppub协同生成具体实施方式的可能选择,发明CN107819581A或CN109361519A中的方法可以使用,这时标识私钥生成客户端和标识私钥生成服务器分别对应这两个发明中的两个装置,比如,标识私钥生成客户端在[1,n-1]内随机选择一个整数w1,标识私钥生成服务器在[1,n-1]内随机选择一个整数w2,sU对应秘密g1,sm对应秘密g2,两者协同计算得到包含秘密的数:
c=w1w2(g1+g2)mod n,
然后通过计算[c-1]Ppub就能很容易地协同计算得到[(sm+sU)-1]Ppub。
在协同生成用户标识所对应的用于签名的SM9标识私钥dA后,标识私钥生成客户端和标识私钥生成服务器通过数字签名或配对运算检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,若不是,则报错(之后怎么办取决于具体实施),若是,则完成标识私钥dA的协同生成。
标识私钥生成客户端和标识私钥生成服务器通过数字签名检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,这是很容易的。比如,对于标识私钥生成客户端,它可以生成一个随机字串,然后使用生成的dA,采用本发明的所述数字签名方法对随机字串进行数字签名,然后采用本发明的所述签名验证方法,对针对随机字串的数字签名进行有效性验证,若验证通过,则协同生成的dA是用户标识所对应的用于签名的SM9标识私钥,否则,不是。类似地,对于标识私钥生成服务器,它可以生成一个随机字串,然后请标识私钥生成客户端使用生成的dA对随机字串进行数字签名;标识私钥生成客户端采用本发明的所述数字签名方法对随机字串进行数字签名,然后将随机字串的签名数据返回给标识私钥生成服务器;标识私钥生成服务器采用本发明的所述签名验证方法,对针对随机字串的数字签名的有效性进行验证,若验证通过,则说明协同生成的dA是用户标识所对应的用于签名的SM9标识私钥,否则,不是。
标识私钥生成客户端和标识私钥生成服务器通过配对运算检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,这对于本领域的技术人员而言也不是难事,有很多种可能的方式,下面给出一些可能的方式(当然不是全部可能的方式)。
对于标识私钥生成客户端,可以比较e(dA,P)与e(P1,Ppub)是否相等,比较e(PU1,PU2f)与e(P1,P2)是否相等,比较e(PU1+PFpub,PU2)与e(P1,Ppub)是否相等,其中,P=[hID]PU2+Ppub,hID=H1(IDA||hid,n),IDA为用户标识;若三个比较的结果都是相等,则协同生成的dA是用户标识所对应的用于签名的SM9标识私钥,否则,不是。
对于标识私钥生成服务器,可以在[1,n-1]内随机选择一个整数c,计算PC=[hIDc]PU2+[c]Ppub,将PC发送给标识私钥生成客户端;标识私钥生成客户端计算gC=e(dA,PC),将gC发送标识私钥生成服务器;标识私钥生成服务器比较gC和e(P1,Ppub)c是否相等,比较e(PU1,PU2f)与e(P1,P2)是否相等,比较e(PU1+PFpub,PU2)与e(P1,Ppub)是否相等,若三个比较的结果都是相等,则协同生成的dA是用户标识所对应的用于签名的SM9标识私钥,否则,不是。
对于以上实施的SM9签名私钥生成方法,所述PU1或/和PU2被标识私钥生成系统(比如,标识私钥生成服务器或其他系统构件)公开发布(比如,通过一个采用区块链技术的公共平台发布,这样在出现纠纷时可用)。
对于以上实施的SM9签名私钥生成方法,所述用户标识包括:不包含任何限定信息的用户原始标识(比如,没有限定信息的电子邮箱地址、手机号码),或者包含限定信息的受限定的用户标识(比如,受时间有效期或其他信息限定的电子邮箱地址、手机号码)。
基于前面实施的SM9签名私钥生成方法所实施的数字签名方法如下。
当需要使用按所述SM9签名私钥生成方法生成的用户的用于签名的SM9标识私钥dA针对消息M进行数字签名时,签名方以P1作为群G1的生成元,以PU2作为群G2的生成元(二者分别对应SM9数字签名算法中的P1、P2),以Ppub作为与主密钥(主私钥)s=(sm+sU)mod n对应的主公钥(此时,Ppub=[s]P2=[(sm+sU)(sm+sU)-1s]P2=[sm+sU]PU2,对应SM9数字签名算法中的主公钥Ppub),以dA为用户的用于签名的SM9标识私钥,采用SM9数字签名算法生成针对消息M的数字签名(h,S)(Signature),具体地如下。
计算得到w=gr,这里r是签名计算时在[1,n-1]区间内随机选择的整数,g=e(P1,Ppub);
然后,计算h=H2(M||w,n),其中H2()及其参数如前背景技术中所述;
若r≠h,计算S=[r-h]dA,则(h,S)为生成的数字签名;若r=h,则重新选择r,重新计算w、h,直到r≠h。
最终的签名数据(Signed Data)中包含(h,S)、PU1、PU2f及PU2(最终的签名数据如何包含PU1、PU2f及PU2属于本发明之外的事)。
基于前面实施的本发明的数字签名方法所实施的签名验证方法如下。
对消息M的数字签名进行签名验证时,签名验证方从签名数据中分离出数字签名(h,S),以及PU1、PU2f和PU2;
签名验证检查确定e(PU1,PU2f)与e(P1,P2)是否相同,e(PU1+PFpub,PU2)与e(P1,Ppub)是否相同,若不是两个比较都相同,则签名验证失败,若两个比较都相同,则签名验证方以P1作为群G1的生成元,以PU2作为群G2的生成元(二者分别对应SM9数字签名算法中的P1、P2),以Ppub为与主密钥(主私钥)s=(sm+sU)mod n对应的主公钥(此时,Ppub=[s]P2=
[(sm+sU)(sm+sU)-1s]P2=[sm+sU]PU2,对应SM9数字签名算法中的主公钥Ppub),采用SM9数字签名算法对(h,S)作为消息M的数字签名的有效性进行验证。
签名验证方采用SM9数字签名算法对(h,S)作为消息M的数字签名的有效性进行验证的操作具体地如下。
B1:检验h∈[1,n-1]是否成立,若不成立则验证不通过;
B2:检验S∈G1是否成立,若不成立则验证不通过;
B3:计算群GT中的元素g=e(P1,Ppub);
B4:计算群GT中的元素t=gh;
B5:计算整数h1=H1(IDA||hid,n),其中H1()及参数参见SM9规范;
B6:计算群G2中的元素P=[h1]PU2+Ppub;
B7:计算群GT中的元素u=e(S,P);
B8:计算群GT中的元素w'=u·t;
B9:计算整数h2=H2(M||w',n),检验h2=h是否成立,若成立则验证通过;否则验证不通过。
实施例2、
此实施例与实施例1的差别在于:
所述标识私钥生成客户端不在[1,n-1]内随机选择一个整数作为用户主密钥sU(或称用户主私钥sU),不计算G1中的元PU1=[sU]P1,不计算G2中的元PU2f=[(sU)-1]P2,其中(sU)-1是sU的模n乘法逆;
在协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2时,服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(sm+sU0+sU1)mod n为主密钥(主私钥),在不暴露各自秘密的情况下,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,协同生成群G1中的元PU1=[(sU0+sU1)]P1以及群G2中的元:
PU2f=[(sU0+sU1)-1]P2、PU2=[(sm+sU0+sU1)-1]Ppub,
其中sm、sU0为标识私钥生成服务器的秘密,sU1为标识私钥生成客户端的秘密,(sm+sU0+sU1)-1为sm+sU0+sU1(等价地(sm+sU0+sU1)mod n)的模n乘法逆,(sU0+sU1)-1为sU0+sU1(等价地(sU0+sU1)mod n)的模n乘法逆;
在协同生成dA、PU1、PU2f和PU2的过程中若检查发现dA为零元或(sm+sU0+sU1)mod n=0或(hID+sm+sU0+sU1)mod n=0或(sU0+sU1)mod n=0(通常是通过间接的方式),其中hID=H1(IDA||hid,n),IDA为用户标识,则标识私钥生成服务器重新在[1,n-1]内随机选择一个整数sU0,标识私钥生成客户端重新在[1,n-1]内随机选择一个整数sU1,标识私钥生成客户端和标识私钥生成服务器重新以s=(sm+sU0+sU1)mod n为主密钥(主私钥),通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,重新协同生成群G1中的元PU1=[(sU0+sU1)]P1以及群G2中的元PU2f=[(sU0+sU1)-1]P2、PU2=[(sm+sU0+sU1)-1]Ppub,直到dA不为零元且(sm+sU0+sU1)mod n不为0且(hID+sm+sU0+sU1)mod n不为0且(sU0+sU1)mod n不为0;
协同生成dA、PU1、PU2f和PU2后,(sU0+sU1)mod n对应前述用户主密钥(主私钥)sU(此时sU由标识私钥生成客户端和标识私钥生成服务器共享)。
标识私钥生成客户端和标识私钥生成服务器如何通过各自的秘密sm、sU0、sU1,协同计算dA、PU1、PU2f、PU2,以及在计算过程中如何检查发现dA为零元或(sm+sU0+sU1)mod n=0或(hID+sm+sU0+sU1)mod n=0或(sU0+sU1)modn=0,取决于具体的实施方式。
作为可能的选择,同实施例1类似,标识私钥生成客户端和标识私钥生成服务器以s=(sm+sU0+sU1)mod n为主密钥(主私钥),协同生成用户标识对应的用于签名的SM9标识私钥dA,可采用CN109361519A或CN110401524A的具体实施方式中的用于签名的SM9标识私钥dA协同生成方式,只是sU1是标识私钥生成客户端的秘密,(sm+sU0)mod n是标识私钥生成服务器的秘密;在协同生成标识私钥dA的过程中,标识私钥生成客户端或标识私钥生成服务器通过检查c是否为0,检查确定(hID+sm+sU0+sU1)mod n是否为0。
作为可能的选择,标识私钥生成客户端和标识私钥生成服务器协同生成群G2中的元PU2f=[(sU0+sU1)-1]P2的具体实施方式,可以采用实施例1中利用发明CN107819581A或CN109361519A中的方法协同计算PU2=[(sm+sU)-1]Ppub类似的方式,并在协同生成PU2f的过程中,标识私钥生成客户端或标识私钥生成服务器通过检查c是否为0,从而确定(sU0+sU1)modn是否为0;
类似地,标识私钥生成客户端和标识私钥生成服务器协同生成群G2中的元PU2=[(sm+sU0+sU1)-1]Ppub的具体实施,可以采用实施例1中利用发明CN107819581A或CN109361519A中的方法协同计算PU2=[(sm+sU)-1]Ppub类似的方式,这里sU1是标识私钥生成客户端的秘密,(sm+sU0)mod n是标识私钥生成服务器的秘密;协同生成PU2的过程中,标识私钥生成客户端或标识私钥生成服务器通过检查c是否为0,从而确定(sm+sU0+sU1)mod n是否为0。
标识私钥生成客户端和标识私钥生成服务器协同生成群G1中的元PU1=[(sU0+sU1)]P1的具体实施非常简单,在此不再赘述。
实施例3、
此实施例与实施例1的差别在于:
所述标识私钥生成客户端不在[1,n-1]内随机选择一个整数作为用户主密钥sU(或称用户主私钥sU),不计算G1中的元PU1=[sU]P1,不计算G2中的元PU2f=[(sU)-1]P2,其中(sU)-1是sU的模n乘法逆;
在协同生成用户标识所对应的标识私钥dA和PU2时,服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(sm+sU0sU1)modn为主密钥(主私钥),在不暴露各自秘密的情况下,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,协同生成群G1中的元PU1=[(sU0sU1)]P1以及群G2中的元:
PU2f=[(sU0sU1)-1]P2、PU2=[(sm+sU0sU1)-1]Ppub,
其中sm、sU0是标识私钥生成服务器的秘密,sU1是标识私钥生成客户端的秘密,(sU0sU1)-1是sU0sU1(等价地(sU0sU1)mod n)的模n乘法逆,(sm+sU0sU1)-1是sm+sU0sU1(等价地(sm+sU0sU1)mod n)的模n乘法逆;
在协同生成用户标识所对应的标识私钥dA、PU2的过程中,若检查发现dA为零元或(sm+sU0sU1)mod n=0或(hID+sm+sU0sU1)mod n=0(通常是通过间接的方式),其中hID=H1(IDA||hid,n),IDA为用户标识,则标识私钥生成服务器在[1,n-1]内重新随机选择一个整数sU0,标识私钥生成客户端在[1,n-1]内重新随机选择一个整数sU1,标识私钥生成客户端和标识私钥生成服务器重新以s=(sm+sU0sU1)mod n为主密钥(主私钥),通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,重新协同生成群G1中的元PU1=[(sU0sU1)]P1以及生成群G2中的元PU2f=[(sU0sU1)-1]P2、PU2=[(sm+sU0sU1)-1]Ppub,直到dA不为零元且(sm+sU0sU1)mod n不为0且(hID+sm+sU0sU1)mod n不为0;
协同生成dA、PU1、PU2f和PU2后,(sU0sU1)mod n对应前述用户主密钥(主私钥)sU(此时sU由标识私钥生成客户端和标识私钥生成服务器共享)。
标识私钥生成客户端和标识私钥生成服务器如何通过各自的秘密sm、sU0、sU1,协同计算dA、PU1、PU2f、PU2,以及在计算过程中如何检查发现
(sm+sU0sU1)mod n=0或(hID+sm+sU0sU1)mod n=0,取决于具体实施方式。下面给出可选的实施方式。
标识私钥生成客户端和标识私钥生成服务器协同生成群G1中的元PU1=[(sU0sU1)]P1、群G2中的元PU2f=[(sU0sU1)-1]P2,非常简单,在此不再赘述;
标识私钥生成客户端和标识私钥生成服务器协同生成群G2中的元PU2=[(sm+sU0sU1)-1]Ppub,可以采用如下方式:
(sm+sU0sU1)mod n=(sU0(sm(sU0)-1+sU1))mod n;
标识私钥生成服务器以sU0作为w1,以(sm(sU0)-1)mod n作为秘密g1,标识私钥生成客户端在[1,n-1]内随机选择一个整数作为w2,以sU1作为秘密g2;然后,标识私钥生成客户端和标识私钥生成服务器按发明CN107819581A或CN109361519A中的方法协同计算:
c=(w2w1(g1+g2))mod n,
然后利用可以c是否为0判断(sm+sU0sU1)mod n是否为0,以及计算得到PU2=[(sm+sU0sU1)-1]Ppub。
标识私钥生成客户端和标识私钥生成服务器协同生成用户标识所对应的用于签名的SM9标识私钥,关键是计算[(hID+sm+sU0sU1)-1]P1,可以采用如下方式:
(hID+sm+sU0sU1)mod n==(sU0((hID+sm)(sU0)-1+sU1))mod n,
标识私钥生成服务器以sU0作为w1,以((hID+sm)(sU0)-1)mod n作为秘密g1,标识私钥生成客户端在[1,n-1]内随机选择一个整数作为w2,以sU1作为秘密g2;然后,标识私钥生成客户端和标识私钥生成服务器按发明CN107819581A或CN109361519A中的方法协同计算:
c=(w2w1(g1+g2))mod n,
然后利用c是否为0可以判断(hID+sm+sU0sU1)mod n是否为0,以及利用c计算得到[(hID+sm+sU0sU1)-1]P1,然后由此可计算得到用户的用于签名的SM9标识私钥dA。
基于本发明的SM9签名私钥生成方法可实施构建相应的标识私钥生成系统,如图1所示,所述系统包括服务端的标识私钥生成服务器(Private Key Generation Server)和用户端的标识私钥生成客户端(Private Key Generation Client);所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识私钥生成服务器和标识私钥生成客户端按所述SM9签名私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA。
基于前述SM9签名私钥生成方法及数字签名方法可实施构造相应的密码装置,如图2所示,所述密码装置包括签名运算单元和密钥存储单元,其中签名运算单元用于完成签名运算,密钥存储单元保存有按所述SM9签名私钥生成方法生成的用户的用于签名的SM9标识私钥dA;所述签名运算单元是一个硬件组件或软硬件相结合的组件或软件组件;当需要使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元作为所述数字签名方法中的签名方,使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)(所述密码装置不必负责完成将PU1、PU2f、PU2放到签名数据中的操作)。
基于本发明的标识私钥生成系统和密码装置可实施相应的密码系统,如图3所示,系统包括所述标识私钥生成系统和密码装置,其中标识私钥生成系统按所述SM9签名私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA,并由标识私钥生成客户端将生成的用于签名的SM9标识私钥dA保存在所述密码装置的密钥存储单元中;当需使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按前述数字签名方法生成针对消息M的数字签名(h,S)。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种SM9签名私钥生成方法,其特征是:
所述SM9签名私钥生成方法涉及双线性映射e:G1×G2→GT;群G1的生成元为P1,群G2的生成元为P2;群G1、G2、GT的阶为素数n;
所述SM9签名私钥生成方法涉及服务端的标识私钥生成服务器和用户端的标识私钥生成客户端;
所述标识私钥生成服务器有[1,n-1]内的系统主密钥sm;sm有对应的系统主公钥Ppub=[sm]P2,有对应的系统辅助公钥PFpub=[sm]P1;
所述标识私钥生成客户端有[1,n-1]内的用户主密钥sU,有群G1中的元PU1=[sU]P1,有群G2中的元PU2f=[(sU)-1]P2,其中(sU)-1是sU的模n乘法逆;
所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器在不暴露各自主密钥的情况下以s=(sm+sU)mod n为主密钥,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,通过交互协同生成群G2中的元PU2=[(sm+sU)-1]Ppub,其中(sm+sU)-1为sm+sU的模n乘法逆;
在标识私钥dA的生成过程中服务端的系统无法得到最终的dA。
2.根据权利要求1所述的SM9签名私钥生成方法,其特征是:
在协同生成用户标识所对应的用于签名的SM9标识私钥dA后,标识私钥生成客户端和标识私钥生成服务器通过数字签名或配对运算检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,若不是,则报错,若是,则完成标识私钥dA的协同生成。
3.根据权利要求1所述的SM9签名私钥生成方法,其特征是:
所述用户标识包括:不包含任何限定信息的用户原始标识,或者包含限定信息的受限定的用户标识。
4.根据权利要求1所述的SM9签名私钥生成方法,其特征是:
避免协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2的过程中因出现(sm+sU)mod n=0或(hID+sm+sU)mod n=0的情况而导致系统主密钥sm暴露的一种方法如下,其中hID=H1(IDA||hid,n),IDA为用户标识:
在协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2时,服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(sm+sU0+sU1)mod n为主密钥,在不暴露各自秘密的情况下,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,协同生成群G1中的元PU1=[(sU0+sU1)]P1以及群G2中的元:
PU2f=[(sU0+sU1)-1]P2、PU2=[(sm+sU0+sU1)-1]Ppub,
其中sm、sU0为标识私钥生成服务器的秘密,sU1为标识私钥生成客户端的秘密,(sm+sU0+sU1)-1为sm+sU0+sU1的模n乘法逆,(sU0+sU1)-1为sU0+sU1的模n乘法逆;
在协同生成dA、PU1、PU2f和PU2的过程中若检查发现dA为零元或(sm+sU0+sU1)mod n=0或(hID+sm+sU0+sU1)mod n=0或(sU0+sU1)mod n=0,则标识私钥生成服务器重新在[1,n-1]内随机选择一个整数sU0,标识私钥生成客户端重新在[1,n-1]内随机选择一个整数sU1,标识私钥生成客户端和标识私钥生成服务器重新以s=(sm+sU0+sU1)mod n为主密钥,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,重新协同生成群G1中的元PU1=[(sU0+sU1)]P1以及群G2中的元PU2f=[(sU0+sU1)-1]P2、PU2=[(sm+sU0+sU1)-1]Ppub,直到dA不为零元且(sm+sU0+sU1)mod n不为0且(hID+sm+sU0+sU1)mod n不为0且(sU0+sU1)mod n不为0;
协同生成dA、PU1、PU2f和PU2后,(sU0+sU1)mod n对应前述用户主密钥sU。
5.根据权利要求1所述的SM9签名私钥生成方法,其特征是:
避免协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2的过程中因出现(sm+sU)mod n=0或(hID+sm+sU)mod n=0的情况而导致系统主密钥sm暴露的一种方法如下,其中hID=H1(IDA||hid,n),IDA为用户标识:
在协同生成用户标识所对应的标识私钥dA和PU2时,服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(sm+sU0sU1)mod n为主密钥,在不暴露各自秘密的情况下,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,协同生成群G1中的元PU1=[(sU0sU1)]P1以及群G2中的元:
PU2f=[(sU0sU1)-1]P2、PU2=[(sm+sU0sU1)-1]Ppub,
其中sm、sU0是标识私钥生成服务器的秘密,sU1是标识私钥生成客户端的秘密,(sU0sU1)-1是sU0sU1的模n乘法逆,(sm+sU0sU1)-1是sm+sU0sU1的模n乘法逆;
在协同生成用户标识所对应的标识私钥dA、PU2的过程中,若检查发现dA为零元或(sm+sU0sU1)mod n=0或(hID+sm+sU0sU1)mod n=0,则标识私钥生成服务器在[1,n-1]内重新随机选择一个整数sU0,标识私钥生成客户端在[1,n-1]内重新随机选择一个整数sU1,标识私钥生成客户端和标识私钥生成服务器重新以s=(sm+sU0sU1)mod n为主密钥,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,重新协同生成群G1中的元PU1=[(sU0sU1)]P1以及生成群G2中的元:
PU2f=[(sU0sU1)-1]P2、PU2=[(sm+sU0sU1)-1]Ppub,
直到dA不为零元且(sm+sU0sU1)mod n不为0且(hID+sm+sU0sU1)mod n不为0;
协同生成dA、PU1、PU2f和PU2后,(sU0sU1)mod n对应前述用户主密钥sU。
6.一种基于权利要求1-5中任一项所述的SM9签名私钥生成方法的数字签名方法,其特征是:
当需要使用按所述SM9签名私钥生成方法生成的用户的用于签名的SM9标识私钥dA针对消息M进行数字签名时,签名方以P1作为群G1的生成元,以PU2作为群G2的生成元,以Ppub作为与主密钥s=(sm+sU)mod n对应的主公钥,以dA为用户的用于签名的SM9标识私钥,采用SM9数字签名算法生成针对消息M的数字签名(h,S),且最终的签名数据中包含(h,S)、PU1、PU2f及PU2。
7.一种基于权利要求6所述的数字签名方法的签名验证方法,其特征是:
对消息M的数字签名进行签名验证时,签名验证方从签名数据中分离出数字签名(h,S),以及PU1、PU2f和PU2;
签名验证检查确定e(PU1,PU2f)与e(P1,P2)是否相同,e(PU1+PFpub,PU2)与e(P1,Ppub)是否相同,若不是两个比较都相同,则签名验证失败,若两个比较都相同,则签名验证方以P1作为群G1的生成元,以PU2作为群G2的生成元,以Ppub作为与主密钥s=(sm+sU)mod n对应的主公钥,采用SM9数字签名算法对(h,S)作为消息M的数字签名的有效性进行验证。
8.一种基于权利要求1-5中任一项所述的SM9签名私钥生成方法的标识私钥生成系统,其特征是:
所述系统包括服务端的标识私钥生成服务器和用户端的标识私钥生成客户端;所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识私钥生成服务器和标识私钥生成客户端按所述SM9签名私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA。
9.一种基于权利要求6所述的数字签名方法的密码装置,其特征是:
所述密码装置包括签名运算单元和密钥存储单元,其中签名运算单元用于完成签名运算,密钥存储单元保存有按所述SM9签名私钥生成方法生成的用户的用于签名的SM9标识私钥dA;所述签名运算单元是一个硬件组件或软硬件相结合的组件或软件组件;当需要使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元作为所述数字签名方法中的签名方,使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)。
10.一种基于权利要求9所述的密码装置的密码系统,其特征是:
所述密码系统包括标识私钥生成系统和所述密码装置,其中标识私钥生成系统又包括服务端的标识私钥生成服务器和用户端的标识私钥生成客户端;所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识私钥生成服务器和标识私钥生成客户端按所述SM9签名私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA,并由标识私钥生成客户端将生成的用于签名的SM9标识私钥dA保存在所述密码装置的密钥存储单元中;当需使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911422398.7A CN111064564B (zh) | 2019-12-31 | 2019-12-31 | 一种sm9签名私钥生成和数字签名方法及系统和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911422398.7A CN111064564B (zh) | 2019-12-31 | 2019-12-31 | 一种sm9签名私钥生成和数字签名方法及系统和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111064564A CN111064564A (zh) | 2020-04-24 |
CN111064564B true CN111064564B (zh) | 2023-03-28 |
Family
ID=70306122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911422398.7A Active CN111064564B (zh) | 2019-12-31 | 2019-12-31 | 一种sm9签名私钥生成和数字签名方法及系统和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064564B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740988B (zh) * | 2020-06-19 | 2021-09-10 | 武汉大学 | 云存储数据加密方法、系统和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001319064A (ja) * | 2000-05-12 | 2001-11-16 | Nippon Telegr & Teleph Corp <Ntt> | 電子市場取引方式、方法、その装置およびそのプログラム記録媒体 |
CN107438005A (zh) * | 2017-06-21 | 2017-12-05 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法和装置 |
CN108809658A (zh) * | 2018-07-20 | 2018-11-13 | 武汉大学 | 一种基于sm2的身份基的数字签名方法与系统 |
CN110247759A (zh) * | 2019-06-03 | 2019-09-17 | 武汉理工大学 | 一种sm9私钥生成和使用方法及系统 |
CN110299998A (zh) * | 2019-07-04 | 2019-10-01 | 武汉理工大学 | 借助中间参数的sm9数字签名协同生成方法及系统 |
-
2019
- 2019-12-31 CN CN201911422398.7A patent/CN111064564B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001319064A (ja) * | 2000-05-12 | 2001-11-16 | Nippon Telegr & Teleph Corp <Ntt> | 電子市場取引方式、方法、その装置およびそのプログラム記録媒体 |
CN107438005A (zh) * | 2017-06-21 | 2017-12-05 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法和装置 |
CN108809658A (zh) * | 2018-07-20 | 2018-11-13 | 武汉大学 | 一种基于sm2的身份基的数字签名方法与系统 |
CN110247759A (zh) * | 2019-06-03 | 2019-09-17 | 武汉理工大学 | 一种sm9私钥生成和使用方法及系统 |
CN110299998A (zh) * | 2019-07-04 | 2019-10-01 | 武汉理工大学 | 借助中间参数的sm9数字签名协同生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111064564A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108809658B (zh) | 一种基于sm2的身份基的数字签名方法与系统 | |
CN107634836B (zh) | 一种sm2数字签名生成方法及系统 | |
CN107579819B (zh) | 一种sm9数字签名生成方法及系统 | |
CN111010272B (zh) | 一种标识私钥生成和数字签名方法及系统和装置 | |
US10122710B2 (en) | Binding a data transaction to a person's identity using biometrics | |
CN107508686B (zh) | 身份认证方法和系统以及计算设备和存储介质 | |
CN107733648B (zh) | 一种基于身份的rsa数字签名生成方法及系统 | |
CN107248909B (zh) | 一种基于sm2算法的无证书安全签名方法 | |
US9166957B2 (en) | Digital file authentication using biometrics | |
CN108667626A (zh) | 安全的两方协作sm2签名方法 | |
CN107947913A (zh) | 一种基于身份的匿名认证方法与系统 | |
CN112069547B (zh) | 一种供应链责任主体身份认证方法及系统 | |
CN107707358A (zh) | 一种ec‑kcdsa数字签名生成方法及系统 | |
CN110138567B (zh) | 一种基于ecdsa的协同签名方法 | |
US9438589B2 (en) | Binding a digital file to a person's identity using biometrics | |
CN109586919A (zh) | 一种在线合同自动签署方法 | |
CN111934877B (zh) | 一种sm2协同门限签名方法、存储介质及电子装置 | |
CN110247759B (zh) | 一种sm9私钥生成和使用方法及系统 | |
CN107659395A (zh) | 一种多服务器环境下基于身份的分布式认证方法及系统 | |
CN111262691B (zh) | 基于混合主密钥的标识私钥生成及使用方法及系统和装置 | |
CN108712259B (zh) | 基于身份的可代理上传数据的云存储高效审计方法 | |
CN112152813B (zh) | 一种支持隐私保护的无证书内容提取签密方法 | |
TWI593267B (zh) | 具有時戳驗證的免憑證公開金鑰管理方法 | |
CN114499883A (zh) | 基于区块链和sm9算法的跨组织身份认证方法及系统 | |
CN111064564B (zh) | 一种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 |