CN111082932B - 一种抗抵赖的标识私钥生成和数字签名方法及系统和装置 - Google Patents
一种抗抵赖的标识私钥生成和数字签名方法及系统和装置 Download PDFInfo
- Publication number
- CN111082932B CN111082932B CN201911357806.5A CN201911357806A CN111082932B CN 111082932 B CN111082932 B CN 111082932B CN 201911357806 A CN201911357806 A CN 201911357806A CN 111082932 B CN111082932 B CN 111082932B
- Authority
- CN
- China
- Prior art keywords
- private key
- identification
- signature
- identification private
- 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/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/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/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)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
发明涉及一种抗抵赖标识私钥生成和数字签名方法及系统和装置,P1、P2分别为SM9算法的群G1、G2的生成元,n为群的阶;私钥生成服务端有系统主密钥sm及系统主公钥Ppub=[sm]P2;客户端有用户主密钥sU,PU1=[sU]P1,PU2=[(sU)‑1]P2;客户端和服务端以s=(smsU)mod n为主密钥,协同生成用户的SM9私钥dA且服务端得不到dA;签名方以P1为群G1的生成元,PU2为群G2的生成元,Ppub为主公钥,dA为私钥,采用SM9签名算法生成消息的数字签名(h,S);验证方验证e(PU1,PU2)与e(P1,P2)相等后,以P1为群G1的生成元,PU2为群G2的生成元,Ppub为主公钥,采用SM9签名算法对(h,S)的有效性验证。
Description
技术领域
本发明属于密码技术领域,特别是一种基于双线映射的具有抗抵赖能力的标识私钥生成和数字签名方法及系统和装置。
背景技术
基于标识的密码(Identity Based Cryptography,IBC)与采用数字证书技术的PKI(Public Key Infrastructure)相比,由于省去了获取私钥拥有者的公钥数字证书这一麻烦环节,技术实现简单,目前日益受到人们的重视,具有广阔的应用前景。
基于标识的密码,既可以用于数据加密(称为Identity Based Encryption,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 KeyGenerator,PKG)按如下方式计算得到:
计算t1=(H1(IDA||hid,n)+s)mod n,其中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所对应的签名私钥。
在基于双线性映射(配对运算)的标识密码中,由于用户用于数字签名的私钥是由一个私钥生成系统(或私钥生成中心)生成,采用这种方式生成的用户私钥用于数字签名时无法实现抗抵赖,因为标识私钥拥有者可以说用于数字签名的私钥是私钥生成系统的运行者通过私钥生成系统产生并使用,针对消息的数字签名不是自己使用私钥签名生成的。
发明内容
本发明的目的是针对目前的基于标识的数字签名无法实现抗抵赖的问题,提出相应的解决方案。
为了实现以上目的,本发明的技术方案包括一种标识私钥生成方法、一种基于此标识私钥生成方法的数字签名方法,以及基于此标识私钥生成方法、数字签名方法的系统和装置。
在本发明的描述中如无特别说明,整数的逆(比如,a-1,a为非0整数)都是指该整数的模n乘法逆,或该整数的模n余数的模n乘法逆(二者等价)。
本发明提出的标识私钥生成方法具体如下。
所述标识私钥生成方法涉及双线性映射(配对运算)e:G1×G2→GT;群G1的生成元为P1,群G2的生成元为P2;群G1、G2、GT的阶为素数n;
所述标识私钥生成方法涉及服务端的标识私钥生成服务器(Private KeyGeneration Server)和用户端的标识私钥生成客户端(Private Key GenerationClient);
所述标识私钥生成服务器有[1,n-1]内的系统主密钥sm(或称系统主私钥sm);sm有对应的系统主公钥Ppub=[sm]P2;
所述标识私钥生成客户端有[1,n-1]内的用户主密钥sU(或称用户主私钥sU),有群G1中的元PU1=[sU]P1,有群G2中的元PU2=[(sU)-1]P2,其中(sU)-1为sU的模n乘法逆;
所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器在不暴露各自主密钥(主私钥)的情况下,以P1为群G1的生成元,以s=(smsU)mod n为主密钥(主私钥),通过交互协同生成用户标识(比如IDA)所对应的用于签名的SM9标识私钥dA;
(生成dA时以P1作为群G1的生成元,即dA=[smsU(hID+smsU)-1]P1,其中hID=H1(IDA||hid,n))
在标识私钥dA的生成过程中服务端的系统无法得到最终的dA(所述服务端的系统包括标识私钥生成服务器及其他系统构件)。
(所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器如何通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA属于本发明之外的事情)
在协同生成用户标识所对应的用于签名的SM9标识私钥dA后,标识私钥生成客户端和标识私钥生成服务器通过数字签名或配对运算检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,若不是,则报错(之后怎么办取决于具体实施),若是,则完成dA的协同生成。
对于以上所述标识私钥生成方法,在完成用户标识私钥dA生成后,用户主密钥sU销毁或不销毁(若sU不销毁,则可用于用户其他标识私钥的生成)。
对于以上所述标识私钥生成方法,PU1或/和PU2被标识私钥生成系统(比如,标识私钥生成服务器或其他系统构件)公开发布(比如,通过一个采用区块链技术的公共平台发布,这样在出现纠纷时可用)。
对于以上所述标识私钥生成方法,所述用户标识包括:不包含任何限定信息的用户原始标识(比如,没有限定信息的电子邮箱地址、手机号码),或者包含限定信息的受限定的用户标识(比如,受时间有效期或其他信息限定的电子邮箱地址、手机号码)。
对于以上所述SM9签名私钥生成方法,协同生成用户标识所对应的用于签名的SM9标识私钥dA的过程中可能出现(hID+smsU)mod n=0的情况,其中hID=H1(IDA||hid,n),IDA是用户标识,hid是用一个字节表示的签名私钥生成函数识别符,H1()是SM9规范中定义的散列或哈希函数;若如此,则会暴露系统主密钥sm,对此,避免协同生成用户标识所对应的用于签名的SM9标识私钥dA的过程中因出现(hID+smsU)mod n=0的情况而导致系统主密钥sm暴露的一种方法如下:
在协同生成用户标识所对应的用于签名的SM9标识私钥dA时,服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(smsU0sU1)mod n为主密钥(主私钥),在不暴露各自秘密的情况下,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,其中(smsU0)mod n是标识私钥生成服务器的秘密,sU1是标识私钥生成客户端的秘密;
在协同生成用户标识所对应的SM9标识私钥dA的过程中,若检查发现(hID+smsU0sU1)mod n=0(通常是通过间接的方式),则标识私钥生成服务器在[1,n-1]内重新随机选择一个整数sU0,标识私钥生成客户端在[1,n-1]内重新随机选择一个整数sU1,标识私钥生成客户端和标识私钥生成服务器重新以s=(smsU0sU1)mod n为主密钥(主私钥),通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,直到(hID+smsU0sU1)mod n不为0;
在协同生成标识私钥dA后或过程中,标识私钥生成服务器和标识私钥生成客户端在不暴露各自的秘密sU0和sU1的情况下协同计算得到群G1中的元PU1=[sU0sU1]P1,群G2中的元PU2=[(sU0sU1)-1]P2,其中(sU0sU1)-1为sU0sU1(等价地(sU0sU1)mod n)的模n乘法逆;
完成dA、以及PU1和PU2的协同生成后,(sU0sU1)mod n对应前述用户主密钥(主私钥)sU(此时sU由标识私钥生成客户端和标识私钥生成服务器共享)。
(标识私钥生成客户端和标识私钥生成服务器如何通过各自的秘密sm、sU0和sU1,协同计算dA、PU1、PU2,以及在计算过程中如何检查发现(hID+smsU0sU1)mod n=0,属于本发明之外的事情)
本发明提出的基于上述标识私钥生成方法的数字签名方法如下。
当需要使用按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA针对消息M进行数字签名时,签名方以P1作为群G1的生成元(对应SM9数字签名算法中的生成元P1),以PU2作为群G2的生成元(对应SM9数字签名算法中的生成元P2),以Ppub作为与主密钥(主私钥)s=(smsU)mod n对应的主公钥(此时Ppub=[smsU]PU2,对应SM9数字签名算法中的主公钥Ppub),以dA为用户的用于签名的SM9标识私钥,采用SM9数字签名算法生成针对消息M的数字签名(h,S)(Signature),且最终的签名数据(Signed Data)中包含(h,S)、PU1及PU2(最终的签名数据如何包含PU1及PU2属于本发明之外的事)。
针对以上所述数字签名方法的签名验证方法如下。
对消息M的数字签名进行签名验证时,签名验证方从签名数据中分离出数字签名(h,S),以及PU1和PU2;
签名验证方检查e(PU1,PU2)和e(P1,P2)是否相同,若不同,则签名验证不通过,若相同,则签名验证方以P1作为群G1的生成元(对应SM9数字签名算法中的生成元P1),以PU2作为群G2的生成元(对应SM9数字签名算法中的生成元P2),以Ppub作为与主密钥(主私钥)s=(smsU)modn对应的主公钥(此时Ppub=[smsU]PU2,对应SM9数字签名算法中的主公钥Ppub),采用SM9数字签名算法对(h,S)作为消息M的数字签名的有效性进行验证。
本发明的数字签名及签名验证,实际上是以P1作为群G1的生成元,以PU2作为群G2的生成元,以s=(smsU)mod n作为主密钥(主私钥),以Ppub=[smsU]PU2作为主密钥s=(smsU)modn对应的主公钥的SM9数字签名及签名验证。
基于本发明的标识私钥生成方法可构建相应的标识私钥生成系统,系统包括服务端的标识私钥生成服务器(Private Key Generation Server)和用户端的标识私钥生成客户端(Private Key Generation Client);所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识私钥生成服务器和标识私钥生成客户端按所述标识私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA。
基于前述标识私钥生成方法及数字签名方法可构造相应的密码装置,所述密码装置包括签名运算单元和密钥存储单元,其中签名运算单元用于完成签名运算,密钥存储单元保存有按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA;所述签名运算单元是一个硬件组件或软硬件相结合的组件或软件组件;当需要使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元作为所述数字签名方法中的签名方,使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)(所述密码装置不必负责将PU1和PU2放到签名数据中的操作)。
基于本发明的标识私钥生成系统和密码装置可实施相应的密码系统,系统包括所述标识私钥生成系统和密码装置,其中标识私钥生成系统按所述标识私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA,并由标识私钥生成客户端将生成的标识私钥dA保存在所述密码装置的密钥存储单元中;当需使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按前述数字签名方法生成针对消息M的数字签名(h,S)。
基于本发明的标识私钥生成方法所生成的用户的用于签名的SM9标识私钥dA,由系统主密钥(系统主私钥)sm和用户主密钥(用户主私钥)sU共同生成,且标识私钥生成系统也无法得到dA,这样就确保标识私钥生成系统的运行者无法生成、伪造用户的用于签名的SM9标识私钥dA,使用这种标识私钥所生成的数字签名具有抗抵赖性,因为其他人、机构无法生成、伪造用户的用于签名的SM9标识私钥dA,且PU1或/和PU2被公开发布使得用户无法否认dA是之前由用户自己生成。
附图说明
图1:本发明的标识私钥生成系统
图2:本发明的密码装置
图3:本发明的密码系统
具体实施方式
下面对本发明的具体实施方式进行描述。
实施例1、
此实施例涉及本发明的标识私钥生成方法、数字签名方法及签名验证方法的实施。
本发明的标识私钥生成方法的实施涉及双线性映射(配对运算)e:G1×G2→GT;群G1的生成元为P1,群G2的生成元为P2;群G1、G2、GT的阶为素数n;
本发明的标识私钥生成方法的实施涉及服务端的标识私钥生成服务器(PrivateKey Generation Server)和用户端的标识私钥生成客户端(Private Key GenerationClient);
所述标识私钥生成服务器有[1,n-1]内的系统主密钥sm(或称系统主私钥sm);sm有对应的系统主公钥Ppub=[sm]P2;
所述标识私钥生成客户端在[1,n-1]内随机选择一个整数作为用户主密钥sU(或称用户主私钥sU),计算有群G1中的元PU1=[sU]P1,计算有群G2中的元PU2=[(sU)-1]P2,其中(sU)-1为sU的模n乘法逆;
当需要生成用户标识(比如IDA)所对应的用于签名的SM9标识私钥dA时,所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器在不暴露各自主密钥(主私钥)的情况下,以P1为群G1的生成元,以s=(smsU)mod n为主密钥(主私钥),通过交互协同生成用户标识(如IDA)所对应的用于签名的SM9标识私钥dA(生成dA时仍以P1作为群G1的生成元,即dA=[smsU(hID+smsU)-1]P1,其中hID=H1(IDA||hid,n));
在标识私钥dA的生成过程中服务端的系统无法得到最终的dA(所述服务端的系统包括标识私钥生成服务器及其他系统构件)。
所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器如何通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA属于本发明之外的事,任何符合以下要求,能实现SM9标识私钥dA协同生成的方式都可以:
所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器以s=(smsU)mod n为主密钥(主私钥),通过交互协同生成用户标识(如IDA)所对应的用于签名的SM9标识私钥dA(此时仍以P1作为群G1的生成元,即dA=[smsU(hID+smsU)-1]P1,其中hID=H1(IDA||hid,n));在标识私钥dA的生成过程中服务端的系统无法得到最终的dA(所述服务端的系统包括标识私钥生成服务器及其他系统构件)。
作为可能的实施选择,CN109361519A或CN110401524A的具体实施方式中所述的SM9标识私钥协同生成方式可采用,其中本发明的用户端的标识私钥生成客户端作为CN109361519A或CN110401524A中的一个标识私钥生成器,本发明的标识私钥生成服务器作为其中的另一个私钥生成器,且由标识私钥生成客户端最终计算得到dA,从而使得在标识私钥dA的生成过程中服务端的系统无法得到最终的dA(所述服务端的系统包括标识私钥生成服务器及其他系统构件)。
在协同生成用户标识所对应的用于签名的SM9标识私钥dA后,标识私钥生成客户端和标识私钥生成服务器通过数字签名或配对运算检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,若不是,则报错(之后怎么办取决于具体实施),若是,则完成dA的协同生成。
标识私钥生成客户端和标识私钥生成服务器通过数字签名检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,这是很容易的。比如,对于标识私钥生成客户端,标识私钥生成客户端可以生成一个随机字串,然后使用生成的dA,采用本发明的所述数字签名方法对随机字串进行数字签名,然后采用本发明的所述签名验证方法,对针对随机字串的数字签名进行有效性验证,验证通过则协同生成的dA是用户标识所对应的用于签名的SM9标识私钥,否则不是。类似地,对于标识私钥生成服务器,标识私钥生成服务器可以生成一个随机字串,然后请标识私钥生成客户端使用生成的dA对随机字串进行数字签名;标识私钥生成客户端采用本发明的所述数字签名方法对随机字串进行数字签名,然后将随机字串的签名数据返回给标识私钥生成服务器;标识私钥生成服务器采用本发明的所述签名验证方法,对针对随机字串的数字签名的有效性进行验证,验证通过则说明协同生成的dA是用户标识所对应的用于签名的SM9标识私钥,否则不是。
标识私钥生成客户端和标识私钥生成服务器通过配对运算检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,这对于本领域的技术人员而言也不是难事,有很多种可能的方式,下面给出一些可能的方式(当然不是全部可能的方式)。
对于标识私钥生成客户端,可以比较e(dA,P)与e(P1,Ppub)是否相等,比较e(PU1,PU2)与e(P1,P2)是否相等,其中,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,PU2)与e(P1,P2)是否相等,若两个比较的结果都是相等,则协同生成的dA是用户标识所对应的用于签名的SM9标识私钥,否则,不是。
对于以上所述标识私钥生成方法,在完成用户标识私钥dA生成后,用户主密钥sU销毁或不销毁(若sU不销毁,则可用于用户其他标识私钥的生成)。
以上所述PU1或/和PU2被标识私钥生成系统(比如,标识私钥生成服务器或其他系统构件)公开发布(比如,通过一个采用区块链技术的公共平台发布,这样在出现纠纷时可用)。
以上所述用户标识包括:不包含任何限定信息的用户原始标识(比如,没有限定信息的电子邮箱地址、手机号码),或者包含限定信息的受限定的用户标识(比如,受时间有效期或其他信息限定的电子邮箱地址、手机号码)。
基于本发明的标识私钥生成方法所述实施的数字签名方法如下。
当需要使用按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA针对消息M进行数字签名时,签名方以P1作为群G1的生成元(对应SM9数字签名算法中的生成元P1),以PU2作为群G2的生成元(对应SM9数字签名算法中的生成元P2),以Ppub作为与主密钥s=(smsU)mod n对应的主公钥(此时Ppub=[smsU]PU2,对应SM9数字签名算法中的主公钥Ppub),以dA为用户的用于签名的SM9标识私钥,采用SM9数字签名算法生成针对消息M的数字签名(h,S)(Signature),具体地如下。
计算得到w=gr,这里r是签名计算时在[1,n-1]区间内随机选择的整数,g=e(P1,Ppub),其中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及PU2(最终的签名数据如何包含PU1及PU2属于本发明之外的事)。
基于本发明的数字签名方法所实施的签名验证方法如下。
对消息M的数字签名进行签名验证时,签名验证方从签名数据中分离出数字签名(h,S),以及PU1和PU2;
签名验证方检查e(PU1,PU2)和e(P1,P2)是否相同,若不同,则签名验证不通过,若相同,则签名验证方以P1作为群G1的生成元(对应SM9数字签名算法中的生成元P1),以PU2作为群G2的生成元(对应SM9数字签名算法中的生成元P2),以Ppub作为与主密钥s=(smsU)mod n对应的主公钥(此时Ppub=[smsU]PU2,对应SM9数字签名算法中的主公钥Ppub),采用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,不直接计算群G1中的元PU1=[sU]P1,不直接计算群G2中的元PU2=[(sU)-1]P2,其中(sU)-1为sU的模n乘法逆;
所述标识私钥生成客户端和所述标识私钥生成服务器按如下方式协同生成用户标识所对应的用于签名的SM9标识私钥dA,以及协同生成用户主密钥sU,以及协同计算PU1、PU2:
服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(smsU0sU1)mod n为主密钥(主私钥),在不暴露各自秘密的情况下,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,其中(smsU0)mod n是标识私钥生成服务器的秘密,sU1是标识私钥生成客户端的秘密;
在协同生成用户标识所对应的SM9标识私钥dA的过程中,若检查发现(hID+smsU0sU1)mod n=0(通常是通过间接的方式),则标识私钥生成服务器在[1,n-1]内重新随机选择一个整数sU0,标识私钥生成客户端在[1,n-1]内重新随机选择一个整数sU1,标识私钥生成客户端和标识私钥生成服务器重新以s=(smsU0sU1)mod n为主密钥(主私钥),通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,直到(hID+smsU0sU1)mod n不为0;
在协同生成标识私钥dA后或过程中,标识私钥生成服务器和标识私钥生成客户端在不暴露各自的秘密sU0和sU1的情况下协同计算得到群G1中的元PU1=[sU0sU1]P1,群G2中的元PU2=[(sU0sU1)-1]P2,其中(sU0sU1)-1为sU0sU1(等价地(sU0sU1)mod n)的模n乘法逆;
完成dA、以及PU1和PU2的协同生成后,(sU0sU1)mod n对应前述用户主密钥(主私钥)sU(此时sU由标识私钥生成客户端和标识私钥生成服务器共享)。
如何检查确定(hID+smsU0sU1)mod n是否为0,与具体的dA协同生成方式有关。若采用CN109361519A或CN110401524A中所说的方式协同生成用户标识对应的用于签名的SM9标识私钥,则可以通过检查包含秘密的数c是否为0,检查确定(hID+smsU0sU1)mod n是否为0。
基于本发明的标识私钥生成方法可实施构建相应的标识私钥生成系统,如图1所示,所述系统包括服务端的标识私钥生成服务器(Private Key Generation Server)和用户端的标识私钥生成客户端(Private Key Generation Client);所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识私钥生成服务器和标识私钥生成客户端按所述标识私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA。
基于前述标识私钥生成方法及数字签名方法可实施构造相应的密码装置,如图2所示,所述密码装置包括签名运算单元和密钥存储单元,其中签名运算单元用于完成签名运算,密钥存储单元保存有按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA;所述签名运算单元是一个硬件组件或软硬件相结合的组件或软件组件;当需要使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元作为所述数字签名方法中的签名方,使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)(所述密码装置不必负责将PU2放到签名数据中的操作)。
基于本发明的标识私钥生成系统和密码装置可实施相应的密码系统,如图3所示,系统包括所述标识私钥生成系统和密码装置,其中标识私钥生成系统按所述标识私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA,并由标识私钥生成客户端将生成的用于签名的SM9标识私钥dA保存在所述密码装置的密钥存储单元中;当需使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按前述数字签名方法生成针对消息M的数字签名(h,S)。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (9)
1.一种标识私钥生成方法,其特征是:
所述标识私钥生成方法涉及双线性映射e:G1×G2→GT;群G1的生成元为P1,群G2的生成元为P2;群G1、G2、GT的阶为素数n;
所述标识私钥生成方法涉及服务端的标识私钥生成服务器和用户端的标识私钥生成客户端;
所述标识私钥生成服务器有[1,n-1]内的系统主密钥sm;sm有对应的系统主公钥Ppub=[sm]P2;
所述标识私钥生成客户端有[1,n-1]内的用户主密钥sU,有群G1中的元PU1=[sU]P1,有群G2中的元PU2=[(sU)-1]P2,其中(sU)-1为sU的模n乘法逆;
所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器在不暴露各自主密钥的情况下,以P1为群G1的生成元,以s=(smsU)mod n为主密钥,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA;
在标识私钥dA的生成过程中服务端的系统无法得到最终的dA。
2.根据权利要求1所述的标识私钥生成方法,其特征是:
在协同生成用户标识所对应的用于签名的SM9标识私钥dA后,标识私钥生成客户端和标识私钥生成服务器通过数字签名或配对运算检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,若不是,则报错,若是,则完成dA的协同生成。
3.根据权利要求1所述的标识私钥生成方法,其特征是:
所述用户标识包括:不包含任何限定信息的用户原始标识,或者包含限定信息的受限定的用户标识。
4.根据权利要求1所述的标识私钥生成方法,其特征是:
避免协同生成用户标识所对应的用于签名的SM9标识私钥dA的过程中因出现(hID+smsU)mod n=0的情况而导致系统主密钥sm暴露的一种方法如下,其中hID=H1(IDA||hid,n),IDA是用户标识,hid是用一个字节表示的签名私钥生成函数识别符,H1()是SM9规范中定义的散列或哈希函数:
在协同生成用户标识所对应的用于签名的SM9标识私钥dA时,服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(smsU0sU1)mod n为主密钥,在不暴露各自秘密的情况下,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,其中(smsU0)mod n是标识私钥生成服务器的秘密,sU1是标识私钥生成客户端的秘密;
在协同生成用户标识所对应的SM9标识私钥dA的过程中,若检查发现(hID+smsU0sU1)modn=0,则标识私钥生成服务器在[1,n-1]内重新随机选择一个整数sU0,标识私钥生成客户端在[1,n-1]内重新随机选择一个整数sU1,标识私钥生成客户端和标识私钥生成服务器重新以s=(smsU0sU1)mod n为主密钥,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,直到(hID+smsU0sU1)mod n不为0;
在协同生成标识私钥dA后或过程中,标识私钥生成服务器和标识私钥生成客户端在不暴露各自的秘密sU0和sU1的情况下协同计算得到群G1中的元PU1=[sU0sU1]P1,群G2中的元PU2=[(sU0sU1)-1]P2,其中(sU0sU1)-1为sU0sU1的模n乘法逆;
完成dA、以及PU1和PU2的协同生成后,(sU0sU1)mod n对应前述用户主密钥sU。
5.一种基于权利要求1-4中任一项所述的标识私钥生成方法的数字签名方法,其特征是:
当需要使用按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA针对消息M进行数字签名时,签名方以P1作为群G1的生成元,以PU2作为群G2的生成元,以Ppub作为与主密钥s=(smsU)mod n对应的主公钥,以dA为用户的用于签名的SM9标识私钥,采用SM9数字签名算法生成针对消息M的数字签名(h,S),且最终的签名数据中包含(h,S)、PU1及PU2。
6.一种基于权利要求5所述的数字签名方法的签名验证方法,其特征是:
对消息M的数字签名进行签名验证时,签名验证方从签名数据中分离出数字签名(h,S),以及PU1和PU2;
签名验证方检查e(PU1,PU2)和e(P1,P2)是否相同,若不同,则签名验证不通过,若相同,则签名验证方以P1作为群G1的生成元,以PU2作为群G2的生成元,以Ppub作为与主密钥s=(smsU)mod n对应的主公钥,采用SM9数字签名算法对(h,S)作为消息M的数字签名的有效性进行验证。
7.一种基于权利要求1-4中任一项所述的标识私钥生成方法的标识私钥生成系统,其特征是:
所述标识私钥生成系统包括服务端的标识私钥生成服务器和用户端的标识私钥生成客户端;所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识私钥生成服务器和标识私钥生成客户端按所述标识私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA。
8.一种基于权利要求5所述的数字签名方法的密码装置,其特征是:
所述密码装置包括签名运算单元和密钥存储单元,其中签名运算单元用于完成签名运算,密钥存储单元保存有按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA;所述签名运算单元是一个硬件组件或软硬件相结合的组件或软件组件;当需要使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元作为所述数字签名方法中的签名方,使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)。
9.一种基于权利要求8所述的密码装置的密码系统,其特征是:
所述密码系统包括标识私钥生成系统和所述密码装置,其中标识私钥生成系统又包括服务端的标识私钥生成服务器和用户端的标识私钥生成客户端;所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识私钥生成服务器和标识私钥生成客户端按所述标识私钥生成方法生成用户标识所对应的用于签名的SM9标识私钥dA,并由标识私钥生成客户端将生成的标识私钥dA保存在所述密码装置的密钥存储单元中;当需使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911357806.5A CN111082932B (zh) | 2019-12-25 | 2019-12-25 | 一种抗抵赖的标识私钥生成和数字签名方法及系统和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911357806.5A CN111082932B (zh) | 2019-12-25 | 2019-12-25 | 一种抗抵赖的标识私钥生成和数字签名方法及系统和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111082932A CN111082932A (zh) | 2020-04-28 |
CN111082932B true CN111082932B (zh) | 2023-03-28 |
Family
ID=70317688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911357806.5A Active CN111082932B (zh) | 2019-12-25 | 2019-12-25 | 一种抗抵赖的标识私钥生成和数字签名方法及系统和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111082932B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572612B (zh) * | 2021-06-22 | 2023-01-31 | 南京南瑞信息通信科技有限公司 | 一种国密sm9算法私钥分发方法、用户终端和密钥生成中心 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951292A (zh) * | 2019-02-20 | 2019-06-28 | 武汉理工大学 | 精简的sm9数字签名分离交互生成方法及系统 |
CN110011802A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及系统 |
CN110247759A (zh) * | 2019-06-03 | 2019-09-17 | 武汉理工大学 | 一种sm9私钥生成和使用方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571321B2 (en) * | 2003-03-14 | 2009-08-04 | Voltage Security, Inc. | Identity-based-encryption messaging system |
-
2019
- 2019-12-25 CN CN201911357806.5A patent/CN111082932B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951292A (zh) * | 2019-02-20 | 2019-06-28 | 武汉理工大学 | 精简的sm9数字签名分离交互生成方法及系统 |
CN110011802A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及系统 |
CN110247759A (zh) * | 2019-06-03 | 2019-09-17 | 武汉理工大学 | 一种sm9私钥生成和使用方法及系统 |
Non-Patent Citations (2)
Title |
---|
Jiaxing Xuan, etc..Design of secure and independent controllable email system based on Identity-Based Cryptography.《2016 2nd IEEE International Conference on Computer and Communications(ICCC)》.2017,第217-222页. * |
张雪锋等.一种基于SM9算法的盲签名方案研究.《信息网络安全》.2019,(第8期),第61-67页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111082932A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110224993B (zh) | 基于区块链的可追责匿名电子投票方法及系统 | |
CN111010272B (zh) | 一种标识私钥生成和数字签名方法及系统和装置 | |
CN107733648B (zh) | 一种基于身份的rsa数字签名生成方法及系统 | |
US10122710B2 (en) | Binding a data transaction to a person's identity using biometrics | |
CN107948143B (zh) | 一种云存储中基于身份的隐私保护完整性检测方法和系统 | |
CN107508686B (zh) | 身份认证方法和系统以及计算设备和存储介质 | |
CN107196966A (zh) | 基于区块链的多方信任的身份认证方法和系统 | |
US9166957B2 (en) | Digital file authentication using biometrics | |
CN112069547B (zh) | 一种供应链责任主体身份认证方法及系统 | |
CN107947913A (zh) | 一种基于身份的匿名认证方法与系统 | |
CN107707358A (zh) | 一种ec‑kcdsa数字签名生成方法及系统 | |
JPWO2005071881A1 (ja) | ミックスネットシステム | |
CN110247759B (zh) | 一种sm9私钥生成和使用方法及系统 | |
CN109672530A (zh) | 基于非对称密钥池的抗量子计算数字签名方法和抗量子计算数字签名系统 | |
CN107659395A (zh) | 一种多服务器环境下基于身份的分布式认证方法及系统 | |
CN108712259B (zh) | 基于身份的可代理上传数据的云存储高效审计方法 | |
CN111262691B (zh) | 基于混合主密钥的标识私钥生成及使用方法及系统和装置 | |
CN109887150A (zh) | 支持投票系统的代理重签密方法 | |
CN110932865B (zh) | 一种基于sm2数字签名算法的可链接环签名生成方法 | |
TW202318833A (zh) | 臨界簽章方案 | |
TWI593267B (zh) | 具有時戳驗證的免憑證公開金鑰管理方法 | |
CN111082932B (zh) | 一种抗抵赖的标识私钥生成和数字签名方法及系统和装置 | |
CN108234504A (zh) | 一种云存储中基于身份的代理数据完整性检测方法 | |
CN111064564B (zh) | 一种sm9签名私钥生成和数字签名方法及系统和装置 | |
CN114866255B (zh) | 以用户为中心面向多idp聚合的多因素认证方法 |
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 |