CN111010272B - 一种标识私钥生成和数字签名方法及系统和装置 - Google Patents
一种标识私钥生成和数字签名方法及系统和装置 Download PDFInfo
- Publication number
- CN111010272B CN111010272B CN201911328551.XA CN201911328551A CN111010272B CN 111010272 B CN111010272 B CN 111010272B CN 201911328551 A CN201911328551 A CN 201911328551A CN 111010272 B CN111010272 B CN 111010272B
- Authority
- CN
- China
- Prior art keywords
- identification
- private key
- user
- signature
- digital signature
- 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
- 238000012795 verification Methods 0.000 claims description 40
- 238000013507 mapping Methods 0.000 claims description 26
- 230000002265 prevention Effects 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0847—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
-
- 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
-
- 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
发明涉及一种标识私钥生成和数字签名方法及系统和装置,P1、P2分别为SM9算法的群G1、G2的生成元;标识认证服务器有系统主密钥sm及系统主公钥Ppub=[sm]P2;用户端的标识私钥生成客户端有用户主密钥sU,PU2=[(sU)‑1]Ppub;标识认证服务器在验证、确认用户是标识的拥有者以及PU2是PU2=[(sU)‑1]Ppub后,生成针对用户标识和PU2的认证数据CA并返回给标识私钥生成客户端;用户端密码装置以P1为群G1的生成元,Ppub为主公钥,dA为私钥,采用SM9签名算法生成消息的数字签名(h,S);验证方在验证CA的有效性后,以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;
所述标识私钥生成方法涉及服务端的标识认证服务器(Identity CertificationServer)和用户端的标识私钥生成客户端(Private Key Generation Client);
所述标识认证服务器有[1,n-1]内的系统主密钥sm(或称系统主私钥sm);sm有对应的系统主公钥Ppub=[sm]P2;
所述标识私钥生成客户端有[1,n-1]内的用户主密钥sU(或称用户主私钥sU),有群G2中的元PU2=[(sU)-1]Ppub,其中(sU)-1为sU的模n乘法逆;
所述标识认证服务器在验证、确认标识私钥生成客户端的用户是标识的拥有者以及PU2是(sU)-1与Ppub的数乘结果即PU2=[(sU)-1]Ppub后(如何验证、确认这两点属于本发明之外的事情,但都不难),生成、签发针对用户标识(如IDA)和PU2的认证数据CA,并将认证数据CA返回给标识私钥生成客户端;
所述认证数据CA将用户标识和PU2绑定或对应,并确认PU2是(sU)-1与Ppub的数乘结果即PU2=[(sU)-1]Ppub,其中sU是用户主密钥(主私钥),且认证数据CA具有可验证、防伪造、防篡改的能力或特性;所述可验证指能够验证认证数据CA确实由标识认证服务器所生成、签发;所述防伪造指其他实体无法伪造一个非由标识认证服务器生成、签发的认证数据并能验证通过;所述防篡改指对用户标识或PU2或认证数据CA的改动将导致对认证数据CA的验证失败(验证不通过);
所述用户端的标识私钥生成客户端以P1作为群G1的生成元,以sU为主密钥(或主私钥),生成用户标识(比如IDA)所对应的用于签名的SM9标识私钥dA。
(即dA=[sU(hID+sU)-1]P1,其中hID=H1(IDA||hid,n))
对于以上所述标识私钥生成方法,PU2和认证数据CA被标识认证系统(比如,标识认证服务器或其他系统构件)公开发布(比如,通过一个采用区块链技术的公共平台发布,这样在出现纠纷时可用)。
这里之所以称服务端的系统为标识认证服务器,这是因为这里服务器的功能类似于PKI/CA中CA系统对公钥的认证(public key certification),认证数据(certificationdata)类似于PKI/CA中的数字证书。这里的认证不是俗语中所说的身份认证。
对于以上所述标识私钥生成方法,所述用户标识包括:不包含任何限定信息的用户原始标识(比如,没有限定信息的电子邮箱地址、手机号码),或者包含限定信息的受限定的用户标识(比如,受时间有效期或其他信息限定的电子邮箱地址、手机号码)。
所述标识认证服务器生成、签发针对用户标识和PU2的认证数据CA的方式包括采用数字签名或基于双线性映射(配对)运算的方式。
所述标识认证服务器采用基于双线性映射(配对)运算的方式生成、签发针对用户标识和PU2的认证数据CA的方式包括:
利用散列函数、系统主密钥sm和群运算将用户标识和PU2映射到群G1中的一个元CA,且这种映射具有如下能力或特性:
利用P1、P2和Ppub能够通过双线性映射(配对)运算验证、确定认证数据CA是按约定的方式从用户标识和PU2映射得到的群G1中的元(即可验证);
在不知道系统主密钥sm的情况下,无法生成针对用户标识和PU2的且可验证通过的认证数据CA(可验证通过即满足前述针对CA的可验证要求)(即防伪造);
对用户标识或PU2或CA的改动,将导致对CA验证的失败(不通过)(防篡改);
则以按此方式映射得到的CA是针对用户标识和PU2的认证数据。
按这种方式生成的CA实际上是使用系统主密钥(主私钥)sm、基于双线性(配对)运算的数字签名。
若G2为椭圆曲线点群,则所述标识认证服务器采用数字签名的方式生成、签发针对用户标识和PU2的认证数据CA的一种方式为:
以sm为私钥,以P2为基点(base point),以Ppub为sm对应的公钥,采用椭圆曲线数字签名算法对包含用户标识和PU2的数据进行数字签名得到认证数据CA;
认证数据CA的验证方,以P2为基点,Ppub为sm对应的公钥,采用椭圆曲线数字签名算法对认证数据CA的有效性进行验证。
本发明提出的基于上述标识私钥生成方法的数字签名方法如下。
当需要使用按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA针对消息M进行数字签名时,签名方以P1作为群G1的生成元(对应SM9数字签名算法中的生成元P1),以PU2作为群G2的生成元(对应SM9数字签名算法中的生成元P2),以Ppub作为(与用户主密钥或用户主私钥sU对应的)主公钥(此时Ppub=[sU]PU2,对应SM9数字签名算法中的主公钥Ppub),以dA为用户的用于签名的SM9标识私钥,采用SM9数字签名算法生成针对消息M的数字签名(h,S)(Signature),且最终的签名数据(Signed Data)中包含(h,S)、PU2以及认证数据CA(最终的签名数据如何包含PU2及CA属于本发明之外的事)。
针对以上所述数字签名方法的签名验证方法如下。
对消息M的数字签名进行签名验证时,签名验证方从签名数据中分离出数字签名(h,S),以及PU2和认证数据CA;
签名验证方验证认证数据CA的有效性,若CA的有效性验证不通过,则数字签名(h,S)验证失败,若CA的有效性验证通过,则签名验证方以P1作为群G1的生成元(对应SM9数字签名算法中的生成元P1),以PU2作为群G2的生成元(对应SM9数字签名算法中的生成元P2),以Ppub(作为与用户主密钥或主私钥sU对应的)主公钥(此时Ppub=[sU]PU2,对应SM9数字签名算法中的主公钥Ppub),采用SM9数字签名算法对(h,S)作为消息M的数字签名的有效性进行验证。
基于本发明的标识私钥生成方法可构建相应的标识私钥生成系统,系统包括服务端的标识认证服务器(ldentity Certification Server)和用户端的标识私钥生成客户端(Private Key Generation Client);所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识认证服务器和标识私钥生成客户端按所述标识私钥生成方法生成针对用户标识和PU2=[(sU)-1]Ppub的认证数据CA,其中sU是用户主密钥(主私钥),生成用户标识所对应的用于签名的SM9标识私钥dA。
基于本发明的标识私钥生成方法及数字签名方法可构建相应的密码装置,所述密码装置包括签名运算单元和密钥存储单元,其中签名运算单元用于完成签名运算,密钥存储单元保存有按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA;所述签名运算单元是一个硬件组件或软硬件相结合的组件或软件组件;当需要使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元作为所述数字签名方法中的签名方,使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)(所述密码装置不必负责完成将PU2和CA放到签名数据中的操作)。
基于本发明的标识私钥生成系统和密码装置可构建相应的密码系统,系统包括所述标识私钥生成系统和密码装置,其中标识私钥生成系统按所述标识私钥生成方法生成针对用户标识和PU2=[(sU)-1]Ppub的认证数据CA,其中sU是用户主密钥(主私钥),生成用户标识所对应的用于签名的SM9标识私钥dA,并由标识私钥生成客户端将生成的标识私钥dA保存在所述密码装置的密钥存储单元中;当需使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按前述数字签名方法生成针对消息M的数字签名(h,S)。
基于本发明的标识私钥生成方法所生成的用户的用于签名的SM9标识私钥dA,由用户主密钥(主私钥)sU生成,标识认证系统(服务器)仅负责生成签发针对用户标识和PU2的认证数据CA,标识认证系统(服务器)无法得到dA,使用这种标识私钥所生成的数字签名具有抗抵赖性,因为其他人、机构无法生成、伪造用户的用于签名的SM9标识私钥dA,且PU2和CA被公开发布使得用户无法否认dA是之前由用户自己生成。
本发明的技术方案与现有技术方案相比具有很大实施优势。
附图说明
图1:本发明的标识私钥生成系统
图2:本发明的密码装置
图3:本发明的密码系统
具体实施方式
下面对本发明的具体实施方式进行描述。
本发明的实施涉及本发明的标识私钥生成方法、数字签名方法及签名验证方法的实施。
本发明的标识私钥生成方法的实施涉及双线性映射(配对运算)e:G1×G2→GT;群G1的生成元为P1,群G2的生成元为P2;群G1、G2、GT的阶为素数n;
所述标识私钥生成方法涉及服务端的标识认证服务器(Identity CertificationServer)和用户端的标识私钥生成客户端(Private Key Generation Client);
所述标识认证服务器有[1,n-1]内的系统主密钥sm(或称系统主私钥sm);sm有对应的系统主公钥Ppub=[sm]P2;
所述标识私钥生成客户端有[1,n-1]内的用户主密钥sU(或称用户主私钥sU),有群G2中的元PU2=[(sU)-1]Ppub,其中(sU)-1为sU的模n乘法逆;
所述标识认证服务器在验证、确认标识私钥生成客户端的用户是标识的拥有者以及PU2是(sU)-1与Ppub的数乘结果即PU2=[(sU)-1]Ppub后(如何验证、确认这两点属于本发明之外的事情,但都不难),生成、签发针对用户标识(如IDA)和PU2的认证数据CA,并将认证数据CA返回给标识私钥生成客户端;
所述认证数据CA将用户标识和PU2绑定或对应,并确认PU2是(sU)-1与Ppub的数乘结果即PU2=[(sU)-1]Ppub,其中sU是用户主密钥(主私钥),且认证数据CA具有可验证、防伪造、防篡改的能力或特性;所述可验证指能够验证认证数据CA确实由标识认证服务器所生成、签发;所述防伪造指其他实体无法伪造一个非由标识认证服务器生成、签发的认证数据并能验证通过;所述防篡改指对用户标识或PU2或认证数据CA的改动将导致对认证数据CA的验证失败(验证不通过);
所述用户端的标识私钥生成客户端以P1作为群G1的生成元,以sU为主密钥(或主私钥),生成用户标识(比如IDA)所对应的用于签名的SM9标识私钥dA。
(即dA=[sU(hID+sU)-1]P1,其中hID=H1(IDA||hid,n))
对于以上所述标识私钥生成方法,PU2和认证数据CA被标识认证系统(比如,标识认证服务器或其他系统构件)公开发布(比如,通过一个采用区块链技术的公共平台发布,这样在出现纠纷时可用)。
对于以上所述标识私钥生成方法,所述用户标识包括:不包含任何限定信息的用户原始标识(比如,没有限定信息的电子邮箱地址、手机号码),或者包含限定信息的受限定的用户标识(比如,受时间有效期或其他信息限定的电子邮箱地址、手机号码)。
在具体实施中,所述标识认证服务器生成、签发针对用户标识和PU2的认证数据CA的方式包括采用数字签名或基于双线性映射(配对)运算的方式。
所述标识认证服务器采用基于双线性映射(配对)运算的方式生成、签发针对用户标识和PU2的认证数据CA的方式包括:
利用散列函数、系统主密钥sm和群运算将用户标识和PU2映射到群G1中的一个元CA,且这种映射具有如下能力或特性:
利用P1、P2和Ppub能够通过双线性映射(配对)运算验证、确定认证数据CA是按约定的方式从用户标识和PU2映射得到的群G1中的元(即可验证);
在不知道系统主密钥sm的情况下,无法生成针对用户标识和PU2的且可验证通过的认证数据CA(可验证通过即满足前述针对CA的可验证要求)(即防伪造);
对用户标识或PU2或CA的改动,将导致对CA验证的失败(验证不通过)(防篡改);
则以按此方式映射得到的CA是针对用户标识和PU2的认证数据。
按这种基于双线性映射(配对)运算的方式生成CA,实际上是使用系统主密钥(主私钥)sm、基于双线性(配对)运算的数字签名,发明CN108989054A的具体实施方式中″(五)关于对包含身份标识信息U、PUpub、以及密钥限定信息的数据的数字签名的实施″中列出的除″基于椭圆曲线密码的数字签名″以外的数字签名方式(即方式(1)-(4))都属于基于双线性(配对)运算的数字签名方式。另外,以下利用散列函数、系统主密钥sm和群运算将用户标识和PU2将映射到群G1中的一个元CA作为认证数据CA的方式(也是使用系统主密钥sm、基于双线性映射的数字签名)也是可采用的方式之一:
使用散列函数从用户标识(如IDA)和PU2计算得到hc;
计算得到CA=[(a+bsm)(nchc+sm)-1]P1,其中nc是生成CA时在[1,n-1]内随机选择的整数,a、b为[0,n-1]中的已知整数(为常数或非常数,但通常取固定常数,比如a=0,b=1,或者a=1,b=0,或者a=1,b=1),且a和b不同时为0(当然都非0也可以);
对按以上方式生成的认证数据CA,按如下方式进行有效性验证:
采用与生成认证数据CA时同样的方式使用散列函数从用户标识和PU2计算得到hc;
计算得到Pc=[nchc]P2+Ppub;
检查确定e(CA,Pc)与e(P1,P2)ae(P1,Ppub)b是否相同,若相同,则认证数据CA的有效性验证通过,否则,验证不通过。
a、b如何选取、设置都可以,只要不同时为0即可。
若a=0,b=1,则CA实际上是将用户标识和PU2的组合作为标识得到的相应SM9标识私钥(以此作为数字签名)。
nc的作用是为了避免出现(nchc+sm)mod n=0的情况。在生成CA时,若出现(nchc+sm)mod n=0的情况,则在[1,n-1]重新选择一个nc,直到(nchc+sm)mod n不为0。当标识认证服务器将CA返回到标识私钥生成客户端时,将nc也返回。
通常将nc和CA放在一起,当验证CA的有效性时,同时取出nc。
使用散列函数从用户标识和PU2计算得到hc的方式包括:
使用散列函数从用户标识(如IDA)计算得到h1c,使用散列函数从PU2计算得到h2c,然后计算hc=(h1c+h2c)mod n或hc=(h1ch2c)mod n;
或者,将用户标识和PU2数据合并(如IDA||PU2),然后使用散列函数计算得到合并后的数据的散列值,以此计算得到的散列值作为hc。
若G2为椭圆曲线点群,则所述标识认证服务器采用数字签名的方式生成、签发针对用户标识和PU2的认证数据CA的一种方式为:
以sm为私钥,以P2为基点(base point),以Ppub为sm对应的公钥,采用椭圆曲线数字签名算法对包含用户标识和PU2的数据进行数字签名得到认证数据CA;
认证数据CA的验证方,以P2为基点,Ppub为sm对应的公钥,采用椭圆曲线数字签名算法对认证数据CA的有效性进行验证。
基于本发明的标识私钥生成方法所述实施的数字签名方法如下。
当需要使用按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA针对消息M进行数字签名时,签名方以P1作为群G1的生成元(对应SM9数字签名算法中的生成元P1),以PU2作为群G2的生成元(对应SM9数字签名算法中的生成元P2),以Ppub作为(与用户主密钥或用户主私钥sU对应的)主公钥(此时Ppub=[sU]PU2,对应SM9数字签名算法中的主公钥Ppub),以dA为用户的用于签名的SM9标识私钥,采用SM9数字签名算法生成针对消息M的数字签名(h,S)(Signature),且最终的签名数据(Signed Data)中包含(h,S)、PU2以及认证数据CA(最终的签名数据如何包含PU2及CA属于本发明之外的事),其中生成数字签名(h,S)的过程具体地如下:
计算得到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)、PU2及CA(最终的签名数据如何包含PU2及CA属于本发明之外的事)。
基于本发明的数字签名方法所实施的签名验证方法如下。
对消息M的数字签名进行签名验证时,签名验证方从签名数据中分离出数字签名(h,S),以及PU2和认证数据CA;
签名验证方验证认证数据CA的有效性,若CA的有效性验证不通过,则数字签名(h,S)验证失败,若CA的有效性验证通过,则签名验证方以P1作为群G1的生成元(对应SM9数字签名算法中的生成元P1),以PU2作为群G2的生成元(对应SM9数字签名算法中的生成元P2),以Ppub(作为与用户主密钥或主私钥sU对应的)主公钥(此时Ppub=[sU]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是否成立,若成立则验证通过;否则验证不通过。
基于本发明的标识私钥生成方法可实施构建相应的标识私钥生成系统,如图1所示,系统包括服务端的标识认证服务器(Identity Certification Server)和用户端的标识私钥生成客户端(Private Key Generation Client);所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识认证服务器和标识私钥生成客户端按所述标识私钥生成方法生成针对用户标识和PU2=[(sU)-1]Ppub的认证数据CA,其中sU是用户主密钥(主私钥),生成用户标识所对应的用于签名的SM9标识私钥dA。
基于本发明的标识私钥生成方法及数字签名方法可实施构建相应的密码装置,如图2所示,所述密码装置包括签名运算单元和密钥存储单元,其中签名运算单元用于完成签名运算,密钥存储单元保存有按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA;所述签名运算单元是一个硬件组件或软硬件相结合的组件或软件组件;当需要使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元作为所述数字签名方法中的签名方,使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)(所述密码装置不必负责完成将PU2和CA放到签名数据中的操作)。
基于本发明的标识私钥生成系统和密码装置可实施构建相应的密码系统,如图3所示,系统包括所述标识私钥生成系统和密码装置,其中标识私钥生成系统按所述标识私钥生成方法生成针对用户标识和PU2=[(sU)-1]Ppub的认证数据CA,其中sU是用户主密钥(主私钥),生成用户标识所对应的用于签名的SM9标识私钥dA,并由标识私钥生成客户端将生成的标识私钥dA保存在所述密码装置的密钥存储单元中;当需使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按前述数字签名方法生成针对消息M的数字签名(h,S)。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
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,有群G2中的元PU2=[(sU)-1]Ppub,其中(sU)-1为sU的模n乘法逆;
所述标识认证服务器在验证、确认标识私钥生成客户端的用户是标识的拥有者以及PU2是(sU)-1与Ppub的数乘结果即PU2=[(sU)-1]Ppub后,生成、签发针对用户标识和PU2的认证数据CA,并将认证数据CA返回给标识私钥生成客户端;
所述认证数据CA将用户标识和PU2绑定或对应,并确认PU2是(sU)-1与Ppub的数乘结果即PU2=[(sU)-1]Ppub,其中sU是用户主密钥,且认证数据CA具有可验证、防伪造、防篡改的能力或特性;所述可验证指能够验证认证数据CA确实由标识认证服务器所生成、签发;所述防伪造指其他实体无法伪造一个非由标识认证服务器生成、签发的认证数据并能验证通过;所述防篡改指对用户标识或PU2或认证数据CA的改动将导致对认证数据CA的验证失败;
所述用户端的标识私钥生成客户端以P1作为群G1的生成元,以sU为主密钥,生成用户标识所对应的用于签名的SM9标识私钥dA。
2.根据权利要求1所述的标识私钥生成方法,其特征是:
所述用户标识包括:不包含任何限定信息的用户原始标识,或者包含限定信息的受限定的用户标识。
3.根据权利要求1所述的标识私钥生成方法,其特征是:
所述标识认证服务器生成、签发针对用户标识和PU2的认证数据CA的方式包括采用数字签名或基于双线性映射运算的方式。
4.根据权利要求3所述的标识私钥生成方法,其特征是:
所述标识认证服务器采用基于双线性映射运算的方式生成、签发针对用户标识和PU2的认证数据CA的方式包括:
利用散列函数、系统主密钥sm和群运算将用户标识和PU2映射到群G1中的一个元CA,且这种映射具有如下能力或特性:
利用P1、P2和Ppub能够通过双线性映射运算验证、确定认证数据CA是按约定的方式从用户标识和PU2映射得到的群G1中的元;
在不知道系统主密钥sm的情况下,无法生成针对用户标识和PU2的且可验证通过的认证数据CA;
对用户标识或PU2或CA的改动,将导致对CA验证的失败;
则以按此方式映射得到的CA是针对用户标识和PU2的认证数据。
5.根据权利要求3所述的标识私钥生成方法,其特征是:
若G2为椭圆曲线点群,则所述标识认证服务器采用数字签名的方式生成、签发针对用户标识和PU2的认证数据CA的一种方式为:
以sm为私钥,以P2为基点,以Ppub为sm对应的公钥,采用椭圆曲线数字签名算法对包含用户标识和PU2的数据进行数字签名得到认证数据CA;
认证数据CA的验证方,以P2为基点,Ppub为sm对应的公钥,采用椭圆曲线数字签名算法对认证数据CA的有效性进行验证。
6.一种基于权利要求1-5中任一项所述的标识私钥生成方法的数字签名方法,其特征是:
当需要使用按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA针对消息M进行数字签名时,签名方以P1作为群G1的生成元,以PU2作为群G2的生成元,以Ppub作为主公钥,以dA为用户的用于签名的SM9标识私钥,采用SM9数字签名算法生成针对消息M的数字签名(h,S),且最终的签名数据中包含(h,S)、PU2以及认证数据CA。
7.一种基于权利要求6所述的数字签名方法的签名验证方法,其特征是:
对消息M的数字签名进行签名验证时,签名验证方从签名数据中分离出数字签名(h,S),以及PU2和认证数据CA;
签名验证方验证认证数据CA的有效性,若CA的有效性验证不通过,则数字签名(h,S)验证失败,若CA的有效性验证通过,则签名验证方以P1作为群G1的生成元,以PU2作为群G2的生成元,以Ppub主公钥,采用SM9数字签名算法对(h,S)作为消息M的数字签名的有效性进行验证。
8.一种基于权利要求1-5中任一项所述的标识私钥生成方法的标识私钥生成系统,其特征是:
所述系统包括服务端的标识认证服务器和用户端的标识私钥生成客户端;所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识认证服务器和标识私钥生成客户端按所述标识私钥生成方法生成针对用户标识和PU2=[(sU)-1]Ppub的认证数据CA,其中sU是用户主密钥,生成用户标识所对应的用于签名的SM9标识私钥dA。
9.一种基于权利要求6所述的数字签名方法的密码装置,其特征是:
所述密码装置包括签名运算单元和密钥存储单元,其中签名运算单元用于完成签名运算,密钥存储单元保存有按所述标识私钥生成方法生成的用户的用于签名的SM9标识私钥dA;所述签名运算单元是一个硬件组件或软硬件相结合的组件或软件组件;当需要使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元作为所述数字签名方法中的签名方,使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)。
10.一种基于权利要求9所述的密码装置的密码系统,其特征是:
所述密码系统包括标识私钥生成系统和所述密码装置,其中标识私钥生成系统又包括服务端的标识认证服务器和用户端的标识私钥生成客户端;所述标识私钥生成客户端是一个软件组件或软硬件相结合的组件;所述标识认证服务器和标识私钥生成客户端按所述标识私钥生成方法生成针对用户标识和PU2=[(sU)-1]Ppub的认证数据CA,其中sU是用户主密钥,生成用户标识所对应的用于签名的SM9标识私钥dA,并由标识私钥生成客户端将生成的标识私钥dA保存在所述密码装置的密钥存储单元中;当需使用用户的用于签名的SM9标识私钥dA针对消息M生成数字签名时,所述密码装置中的签名运算单元使用存储在所述密钥存储单元中的用户的用于签名的SM9标识私钥dA,按所述数字签名方法生成针对消息M的数字签名(h,S)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911328551.XA CN111010272B (zh) | 2019-12-20 | 2019-12-20 | 一种标识私钥生成和数字签名方法及系统和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911328551.XA CN111010272B (zh) | 2019-12-20 | 2019-12-20 | 一种标识私钥生成和数字签名方法及系统和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111010272A CN111010272A (zh) | 2020-04-14 |
CN111010272B true CN111010272B (zh) | 2021-01-12 |
Family
ID=70117364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911328551.XA Active CN111010272B (zh) | 2019-12-20 | 2019-12-20 | 一种标识私钥生成和数字签名方法及系统和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111010272B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069547B (zh) * | 2020-07-29 | 2023-12-08 | 北京农业信息技术研究中心 | 一种供应链责任主体身份认证方法及系统 |
CN112003698B (zh) * | 2020-09-07 | 2024-04-19 | 三未信安科技股份有限公司 | 一种sm9协同数字签名方法和系统 |
CN112580765A (zh) * | 2020-12-17 | 2021-03-30 | 航天信息股份有限公司 | 应用sm9算法生成证件个人化防伪特征的方法及装置 |
CN113158202B (zh) * | 2021-03-22 | 2023-12-15 | 北京信息科技大学 | 一种基于标识密码的分布式密钥管理、验证方法及系统 |
CN114301585B (zh) * | 2021-11-17 | 2024-01-05 | 北京智芯微电子科技有限公司 | 标识私钥的使用方法、生成方法和管理系统 |
CN114499883A (zh) * | 2022-02-09 | 2022-05-13 | 浪潮云信息技术股份公司 | 基于区块链和sm9算法的跨组织身份认证方法及系统 |
CN114499887B (zh) * | 2022-02-15 | 2024-04-26 | 北京无字天书科技有限公司 | 签名密钥生成及相关方法、系统、计算机设备和存储介质 |
CN115174104B (zh) * | 2022-06-28 | 2024-12-06 | 福建师范大学 | 基于商密sm9的属性基在线/离线签名方法与系统 |
CN119051876B (zh) * | 2024-10-17 | 2025-02-14 | 四川省数字证书认证管理中心有限公司 | 标识组合密钥签名及加密方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105530099A (zh) * | 2015-12-11 | 2016-04-27 | 捷德(中国)信息科技有限公司 | 基于ibc的防伪验证方法、装置、系统和防伪凭证 |
CN107135080A (zh) * | 2017-07-06 | 2017-09-05 | 深圳奥联信息安全技术有限公司 | Sm9解密方法和装置 |
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070043947A1 (en) * | 2005-08-19 | 2007-02-22 | Mizikovsky Semyon B | Providing multimedia system security to removable user identity modules |
US10348724B2 (en) * | 2014-04-07 | 2019-07-09 | Barco N.V. | Ad hoc one-time pairing of remote devices using online audio fingerprinting |
US10074374B2 (en) * | 2014-04-07 | 2018-09-11 | Barco N.V. | Ad hoc one-time pairing of remote devices using online audio fingerprinting |
CN106452721A (zh) * | 2016-10-14 | 2017-02-22 | 牛毅 | 一种基于标识公钥的智能设备指令鉴别方法及系统 |
CN110519041B (zh) * | 2019-07-29 | 2021-09-03 | 同济大学 | 一种基于sm9标识加密的属性基加密方法 |
-
2019
- 2019-12-20 CN CN201911328551.XA patent/CN111010272B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105530099A (zh) * | 2015-12-11 | 2016-04-27 | 捷德(中国)信息科技有限公司 | 基于ibc的防伪验证方法、装置、系统和防伪凭证 |
CN107135080A (zh) * | 2017-07-06 | 2017-09-05 | 深圳奥联信息安全技术有限公司 | Sm9解密方法和装置 |
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及系统 |
Non-Patent Citations (3)
Title |
---|
"Identity based encryption from the Weil pairing";D. Boneh;《Advances in Cryptology》;20011231;全文 * |
"The SM9 Cryptographic Schemes";Zhaohui Cheng;《IACR Cryptol》;20171231;全文 * |
"SM9标识密码算法综述";袁峰;《信息安全研究》;20161105;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111010272A (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111010272B (zh) | 一种标识私钥生成和数字签名方法及系统和装置 | |
CN108667626B (zh) | 安全的两方协作sm2签名方法 | |
CN109257184B (zh) | 基于匿名广播加密的可链接环签名方法 | |
CN111342973B (zh) | 一种安全的pki与ibc之间的双向异构数字签名方法 | |
CN108551392B (zh) | 一种基于sm9数字签名的盲签名生成方法及系统 | |
CN108989054B (zh) | 一种密码系统及数字签名方法 | |
EP3681093B1 (en) | Secure implicit certificate chaining | |
CN107248909B (zh) | 一种基于sm2算法的无证书安全签名方法 | |
CN107196966A (zh) | 基于区块链的多方信任的身份认证方法和系统 | |
CN108989050A (zh) | 一种无证书数字签名方法 | |
US9800418B2 (en) | Signature protocol | |
CN109672530A (zh) | 基于非对称密钥池的抗量子计算数字签名方法和抗量子计算数字签名系统 | |
WO2012170131A1 (en) | Digital signatures with implicit certificate chains | |
CN102546173B (zh) | 基于证书的数字签名系统及签名方法 | |
CN104821880A (zh) | 一种无证书广义代理签密方法 | |
JP2002534701A (ja) | 寄託されない署名専用キーを用いた自動回復可能な自動可能暗号システム | |
CN106899413B (zh) | 数字签名验证方法及系统 | |
CN108712259B (zh) | 基于身份的可代理上传数据的云存储高效审计方法 | |
CN110138567A (zh) | 一种基于ecdsa的协同签名方法 | |
CN103220146B (zh) | 基于多变量公钥密码体制的零知识数字签名方法 | |
Pooja et al. | Digital signature | |
CN111654366A (zh) | 一种安全的pki与ibc之间的双向异构强指定验证者签名方法 | |
US20150006900A1 (en) | Signature protocol | |
CN114499887B (zh) | 签名密钥生成及相关方法、系统、计算机设备和存储介质 | |
TWI593267B (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 |