CN111314076A - 一种支持双向认证的无证书密钥协商方法 - Google Patents
一种支持双向认证的无证书密钥协商方法 Download PDFInfo
- Publication number
- CN111314076A CN111314076A CN202010240896.6A CN202010240896A CN111314076A CN 111314076 A CN111314076 A CN 111314076A CN 202010240896 A CN202010240896 A CN 202010240896A CN 111314076 A CN111314076 A CN 111314076A
- Authority
- CN
- China
- Prior art keywords
- representing
- key
- session
- user
- generation center
- 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.)
- Granted
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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- 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/085—Secret sharing or secret splitting, e.g. threshold 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/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/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种支持双向认证的无证书密钥协商方法,属于信息网络安全领域,在用户注册阶段首先让用户计算自己的第一部分公钥和私钥,然后将公钥和身份信息通过公开信道发送给密钥生成中心KGC。KGC收到后生成用户的第一部分公钥和第一部分私钥,并通过安全信道将其发送给用户。用户收到后验证这第一部分信息是否正确,通过验证后用户在此基础上获得自己的完整公私钥对;在密钥协商阶段,首先需要通信双方分别选取一个秘密值,计算出四个参数以实现相互之间的身份认证,然后计算出两个共享秘密,从而得到一致的共享会话密钥。本发明通过设计双向认证,提高了用户之间密钥协商的安全性;同时减少了参数和共享秘密的计算量,提高了计算效率。
Description
技术领域
本发明涉及信息网络安全领域,更为具体地,涉及一种支持双向认证的无证书密钥协商方法。
背景技术
密钥协商是指两个或多个用户在公共网络环境中通过信息交互建立一个共享会话密钥,参与通信的用户通过共享的会话密钥对通信数据进行加解密,即利用密钥协商构建安全信道以保证网络中的通信安全。而双向认证是指能够实现通信用户之间的身份认证(显式认证或隐式认证)功能,可以有效的抵抗非法攻击。
文献“周彦伟,杨波,张文政.一种改进的无证书两方认证密钥协商协议[J].计算机学报,2017,40(05):1181-1191.”提出了一种高效无证书两方认证密钥协商方法。该方法在用户注册阶段首先让用户计算自己的第一部分公钥和私钥,然后将公钥和身份信息发送给密钥生成中心KGC。密钥生成中心KGC收到后生成用户的另一部分公钥和私钥,并通过安全信道将其发送给用户。用户收到后验证这另一部分信息是否正确,通过验证后用户在此基础上获得自己的完整公私钥对。在密钥协商阶段,首先需要通信双方分别选取两个秘密值,计算出六个参数以实现相互之间的身份认证,然后才能计算出三个共享秘密,从而得到一致的共享会话密钥。该方法存在的不足之处是,该方法在得到会话密钥之前需要计算出六个参数实现身份认证,以及三个共享秘密来生成会话密钥,运算效率较低。
综上所述,上述方法的无证书密钥协商需要计算过多的参数和共享秘密,从而导致计算效率低。
发明内容
本发明的目的在于克服现有技术的不足,提供一种支持双向认证的无证书密钥协商方法,通过通信双方分别选取一个秘密值,计算出四个参数以实现相互之间的身份认证,然后计算出两个共享秘密,从而得到一致的共享会话密钥。这样使得在会话密钥之前减少了参数,并且降低了共享秘密的计算量,进而提高了计算效率。
本发明的目的是通过以下技术方案来实现的:
一种支持双向认证的无证书密钥协商方法,包括以下步骤:
S1,建立密钥生成中心KGC并完成各类公开参数设置;
S2,用户注册:用户计算自己的第一部分公钥和第一部分私钥,将第一部分公钥、第一部分私钥和身份信息通过安全信道发送至用户,用户收到后验证信息是否正确,通过验证后,用户在此基础上获得自己的完整公私钥对;
S3,密钥协商:通信双方分别选取至少一个秘密值,计算出至少四个参数以实现相互之间的身份认证,然后计算出两个共享秘密,从而得到一致的共享会话密钥。
进一步的,在步骤S1中,所述各类公开参数设置步骤具体包括:
S11,密钥生成中心KGC选择整数k作为安全参数,选择阶为p(p>2k)的加法循环群Gp,P是群Gp的一个生成元,其中p表示密钥生成中心KGC选取的大素数,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S12,KGC选择安全抗碰撞的单向哈希函数H0:{0,1}L×Gp→Z*p,H1:{0,1}L×Gp×Gp→Z*p,H2:{0,1}L×Gp×Gp→Z*p,H:{0,1}*→{0,1}k,其中L为用户身份标识的长度,Z*p表示基于大素数p构成的非零乘法群;
S13,KGC随机选择主密钥s∈Z*p,计算系统公钥PPub=sP,其中s由KGC负责秘密保存,最终KGC公开以下系统参数:params={p,Gp,P,PPub,H0,H1,H2,H}。
进一步的,在步骤S2中,包括以下步骤:
S21,用户i随机选取秘密值xi∈Z*p作为自己的长期私钥,根据下式计算出自己的长期公钥:
Xi=xiP
其中,xi表示用户U随机选取的长期私钥,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,Xi表示用户i的长期公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S22,用户i将自己的身份信息IDi和长期公钥Xi通过公开信道发送给密钥生成中心KGC,密钥生成中心KGC收到用户i的身份信息IDi和长期公钥Xi后,随机选取一个秘密值ri∈Z*p,按照下式设置用户i的第一部分公钥:
Yi=riP
其中,IDi表示用户i的身份信息,Xi表示用户i的长期公钥,ri表示密钥生成中心KGC随机选取的一个整数,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,Yi表示用户i的第一部分公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S23,按照下式,密钥生成中心KGC设置用户i的部分私钥:
yi=ri+sH1(IDi,Xi,Yi)
其中,yi表示用户i的第一部分私钥,ri表示密钥生成中心KGC为用户i随机选取的秘密值,s表示密钥生成中心KGC选取的系统主密钥,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDi表示用户i的身份信息,Xi表示用户i的长期公钥,Yi表示用户i的第一部分公钥;
S24,密钥生成中心KGC通过公开信道将用户i的第一部分公钥Yi和第一部分私钥yi发送给用户i;
S25,用户i接收到密钥生成中心KGC发送过来的第一部分公钥Yi和第一部分私钥yi后,判断它们是否满足如下的等式;如果是,则执行步骤八,否则用户i向密钥生成中心KGC报错,并重新提交用户注册申请:
yiP=Yi+PPubH1(IDi,Xi,Yi)
其中,yi表示用户i的第一部分私钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为p的有限域,p表示密钥生成中心KGC选取的大素数,Yi表示用户i的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDi表示用户i的身份信息,Xi表示用户i的长期公钥,Yi表示用户i的第一部分公钥,H0表示密钥生成中心KGC选取的抗碰撞的单项哈希函数,xi表示用户U随机选取的长期私钥;
S26,按照下式,用户i得到自己的完整私钥SKi:
SKi=<xi,yi>
其中,SKi表示用户i的完整私钥,xi表示用户U的长期私钥,yi表示用户i的第一部分私钥;
S27,按照下式,用户i得到完整公钥PKi:
PKi=<Xi,Yi>
其中,PKi表示用户i的完整公钥,Xi表示用户i的长期公钥,Yi表示用户i的第一部分公钥;
S28,用户i将自己的完整公钥PKi通过公开信道发送给密钥生成中心KGC,并由密钥生成中心KGC对外公布用户i的完整公钥PKi,用户i安全地保存自己的完整私钥SKi,之后退出用户注册过程。
进一步的,在步骤S3之前,还包括以下步骤:
S31,会话发起方A判断自己是否已经执行了用户注册过程;若是,则执行步骤S30,否则,会话发起方A执行用户注册过程获取自己的公钥PKA和私钥SKA后,再执行步骤S30;
S32,会话发起方A随机选取临时秘密值zA∈Z*p,按照下式设置会话发起方A的临时公钥:
TA=zAP
其中,zA表示会话发起方A的临时秘密值,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,TA表示会话发起方A的临时公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域。
S33,按照下式,会话发起方A设置自己的临时私钥:
tA=zA+xAH2(IDA,XA,TA)
其中,tA表示会话发起方A的临时私钥,zA表示会话发起方A的临时秘密值,xA表示会话发起方A的长期私钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥,TA表示会话发起方A的临时公钥;
S34,会话发起方A通过密钥生成中心KGC获取会话响应方B的完整公钥PKB;
S35,按照下式,会话发起方A设置会话响应方B的身份参数:
hB=H1(IDB,XB,YB)
其中,hB表示会话响应方B的身份参数,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDB表示会话响应方B的身份信息,XB表示会话响应方B的长期公钥,YB表示会话响应方B的第一部分公钥;
S36,按照下式,会话发起方A设置自己的会话密钥参数:
QA=tA(XB+YB+PPubhB)
其中,QA表示会话发起方A的会话密钥参数,tA表示会话发起方A的临时私钥,XB表示会话响应方B的长期公钥,YB表示会话响应方B的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hB表示会话响应方B的身份参数;
S37,会话发起方A将下面这组密钥协商参数通过公开信道发送给会话响应方B:
MAB=<IDA,XA,YA,TA,QA>
其中,MAB表示会话发起方A发送给会话响应方B的密钥协商参数组,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥,TA表示会话发起方A的临时公钥,QA表示会话发起方A的会话密钥参数。
进一步的,在步骤S37中,还包括以下步骤:
S371,会话响应方B接收到会话发起方A发送过来的密钥协商参数组MAB后,判断它们是否满足如下的等式;如果是,则执行步骤S39,,否则会话响应方B退出密钥协商:
QA=(xB+yB)(TA+XAH2(IDA,XA,TA))
其中,QA表示会话发起方A的会话密钥参数,xB表示会话响应方B随机选取的长期私钥,yB表示会话响应方B的第一部分私钥,TA表示会话发起方A的临时公钥,XA表示会话发起方A的长期公钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥;
S372,按照下式,会话响应方B设置自己的临时私钥:
tB=zB+xBH2(IDB,XB,TB)
其中,tB表示会话响应方B的临时私钥,zB表示会话响应方B的临时秘密值,xB表示会话响应方B的长期私钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDB表示会话响应方B的身份信息,XB表示会话响应方B的长期公钥,TB表示会话响应方B的临时公钥。
进一步的,在步骤S3中,还包括以下步骤:
S41,会话响应方B随机选取临时秘密值zB∈Z*p,按照下式设置会话响应方B的临时公钥:
TB=zBP
其中,zB表示会话响应方B的临时秘密值,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,TB表示会话响应方B的临时公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S42,按照下式,会话响应方B设置会话发起方A的身份参数:
hA=H1(IDA,XA,YA)
其中,hA表示会话发起方A的身份参数,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥;
S43,按照下式,会话响应方B设置自己的会话密钥参数:
QB=tB(XA+YA+PPubhA)
其中,QA表示会话响应方B的会话密钥参数,tB表示会话响应方B的临时私钥,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hA表示会话发起方A的身份参数;
S44,会话响应方B将下面这组密钥协商参数通过公开信道发送给会话发起方A:
MBA=<IDB,TB,QB>
其中,MBA表示会话响应方B发送给会话发起方A的密钥协商参数组,IDB表示会话响应方B的身份信息,TB表示会话响应方B的临时公钥,QB表示会话响应方B的会话密钥参数。
进一步的,在步骤S3中,还包括以下步骤:
S45,按照下式,会话响应方B计算自己的第一共享密钥:
K1 B=tB(xB+yB)-1QA
其中,K1 B表示会话响应方B的第一共享密钥,tB表示会话响应方B的临时私钥,xB表示会话响应方B随机选取的长期私钥,yB表示会话响应方B的第一部分私钥,QA表示会话发起方A的会话密钥参数;
S46,按照下式,会话响应方B计算自己的第二共享密钥:
K2 B=(xB+yB)(XA+YA+PPubhA)
其中,K2 B表示会话响应方B的第二共享密钥,xB表示会话响应方B随机选取的长期私钥,yB表示会话响应方B的第一部分私钥,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hA表示会话发起方A的身份参数;
S47,按照下式,会话响应方B计算自己的会话密钥:
KBA=H(IDA,IDB,K1 B,K2 B)
其中,KBA表示会话响应方B的会话密钥,H表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,IDB表示会话响应方B的身份信息,K1 B表示会话响应方B的第一共享密钥,K2 B表示会话响应方B的第二共享密钥;
S48,会话发起方A接收到会话响应方B发送过来的密钥协商参数组MBA后,判断它们是否满足如下的等式;如果是,则执行步骤S50,否则会话发起方A退出密钥协商:
QB=(xA+yA)(TB+XBH2(IDB,XB,TB))
其中,QB表示会话响应方B的会话密钥参数,xA表示会话发起方A随机选取的长期私钥,yA表示会话发起方A的第一部分私钥,TB表示会话响应方B的临时公钥,XB表示会话响应方B的长期公钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDB表示会话响应方B的身份信息,XB表示会话响应方B的长期公钥;
S49,按照下式,会话发起方A计算自己的第一共享密钥:
K1 A=tA(xA+yA)-1QB
其中,K1 A表示会话发起方A的第一共享密钥,tA表示会话发起方A的临时私钥,xA表示会话发起方A随机选取的长期私钥,yA表示会话发起方A的第一部分私钥,QB表示会话响应方B的会话密钥参数;
S50,按照下式,会话发起方A计算自己的第二共享密钥:
K2 A=(xA+yA)(XB+YB+PPubhB)
其中,K2 A表示会话发起方A的第二共享密钥,xA表示会话发起方A随机选取的长期私钥,yA表示会话发起方A的第一部分私钥,XB表示会话响应方B的长期公钥,YB表示会话响应方B的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hB表示会话响应方B的身份参数。
进一步的,在步骤S3中,还包括以下步骤:
S51,按照下式,会话发起方A计算自己的会话密钥:
KAB=H(IDA,IDB,K1 A,K2 A)
其中,KAB表示会话发起方A的会话密钥,H表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,IDB表示会话响应方B的身份信息,K1 A表示会话发起方A的第一共享密钥,K2 A表示会话发起方A的第二共享密钥;
S52,会话发起方A利用会话密钥KAB加密和解密会话消息,完成密钥协商;
S53,会话响应方B利用会话密钥KBA加密和解密会话消息,完成密钥协商。
进一步的,验证密钥协商方法是否有效,若:
K1 A=tA(xA+yA)-1QB=tAtBP=tB(xB+yB)-1QA=K1 B
K2 A=(xA+yA)(XB+YB+PPubhB)=(xA+yA)(xB+yB)P=(xB+yB)(XA+YA+PPubhA)=K2 B
则:
KAB=KBA
故发起方A和响应方B得到一致的会话密钥。
本发明的有益效果是:
本发明提供一种支持双向认证的无证书密钥协商方法,在用户注册阶段,首先让用户计算自己的第一部分公钥和私钥,然后将公钥和身份信息通过公开信道发送给密钥生成中心KGC。密钥生成中心KGC收到后生成用户的第一部分公钥和第一部分私钥,并通过安全信道将其发送给用户。用户收到后验证这第一部分信息是否正确,通过验证后用户在此基础上获得自己的完整公私钥对。在密钥协商阶段,首先需要通信双方分别选取一个秘密值,计算出四个参数以实现相互之间的身份认证,然后计算出两个共享秘密,从而得到一致的共享会话密钥。预期的技术效果是:得到会话密钥之前减少参数和共享秘密的计算量,提高了计算效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种支持双向认证的无证书密钥协商方法的流程图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对实施例进行描述之前,需要对一些必要的术语进行解释。例如:
若本申请中出现使用“第一”、“第二”等术语来描述各种元件,但是这些元件不应当由这些术语所限制。这些术语仅用来区分一个元件和另一个元件。因此,下文所讨论的“第一”元件也可以被称为“第二”元件而不偏离本发明的教导。应当理解的是,若提及一元件“连接”或者“联接”到另一元件时,其可以直接地连接或直接地联接到另一元件或者也可以存在中间元件。相反地,当提及一元件“直接地连接”或“直接地联接”到另一元件时,则不存在中间元件。
在本申请中出现的各种术语仅仅用于描述具体的实施方式的目的而无意作为对本发明的限定,除非上下文另外清楚地指出,否则单数形式意图也包括复数形式。
当在本说明书中使用术语“包括”和/或“包括有”时,这些术语指明了所述特征、整体、步骤、操作、元件和/或部件的存在,但是也不排除一个以上其他特征、整体、步骤、操作、元件、部件和/或其群组的存在和/或附加。
如图1所示,一种支持双向认证的无证书密钥协商方法,包括以下步骤:
S1,建立密钥生成中心KGC并完成各类公开参数设置;
S2,用户注册:用户计算自己的第一部分公钥和第一部分私钥,将第一部分公钥、第一部分私钥和身份信息通过安全信道发送至用户,用户收到后验证信息是否正确,通过验证后,用户在此基础上获得自己的完整公私钥对;
S3,密钥协商:通信双方分别选取至少一个秘密值,计算出至少四个参数以实现相互之间的身份认证,然后计算出两个共享秘密,从而得到一致的共享会话密钥。
进一步的,在步骤S1中,所述各类公开参数设置步骤具体包括:
S11,密钥生成中心KGC选择整数k作为安全参数,选择阶为p(p>2k)的加法循环群Gp,P是群Gp的一个生成元,其中p表示密钥生成中心KGC选取的大素数,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S12,KGC选择安全抗碰撞的单向哈希函数H0:{0,1}L×Gp→Z*p,H1:{0,1}L×Gp×Gp→Z*p,H2:{0,1}L×Gp×Gp→Z*p,H:{0,1}*→{0,1}k,其中L为用户身份标识的长度,Z*p表示基于大素数p构成的非零乘法群;
S13,KGC随机选择主密钥s∈Z*p,计算系统公钥PPub=sP,其中s由KGC负责秘密保存,最终KGC公开以下系统参数:params={p,Gp,P,PPub,H0,H1,H2,H}。
进一步的,在步骤S2中,包括以下步骤:
S21,用户i随机选取秘密值xi∈Z*p作为自己的长期私钥,根据下式计算出自己的长期公钥:
Xi=xiP
其中,xi表示用户U随机选取的长期私钥,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,Xi表示用户i的长期公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S22,用户i将自己的身份信息IDi和长期公钥Xi通过公开信道发送给密钥生成中心KGC,密钥生成中心KGC收到用户i的身份信息IDi和长期公钥Xi后,随机选取一个秘密值ri∈Z*p,按照下式设置用户i的第一部分公钥:
Yi=riP
其中,IDi表示用户i的身份信息,Xi表示用户i的长期公钥,ri表示密钥生成中心KGC随机选取的一个整数,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,Yi表示用户i的第一部分公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S23,按照下式,密钥生成中心KGC设置用户i的部分私钥:
yi=ri+sH1(IDi,Xi,Yi)
其中,yi表示用户i的第一部分私钥,ri表示密钥生成中心KGC为用户i随机选取的秘密值,s表示密钥生成中心KGC选取的系统主密钥,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDi表示用户i的身份信息,Xi表示用户i的长期公钥,Yi表示用户i的第一部分公钥;
S24,密钥生成中心KGC通过公开信道将用户i的第一部分公钥Yi和第一部分私钥yi发送给用户i;
S25,用户i接收到密钥生成中心KGC发送过来的第一部分公钥Yi和第一部分私钥yi后,判断它们是否满足如下的等式;如果是,则执行步骤八,否则用户i向密钥生成中心KGC报错,并重新提交用户注册申请:
yiP=Yi+PPubH1(IDi,Xi,Yi)
其中,yi表示用户i的第一部分私钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为p的有限域,p表示密钥生成中心KGC选取的大素数,Yi表示用户i的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDi表示用户i的身份信息,Xi表示用户i的长期公钥,Yi表示用户i的第一部分公钥,H0表示密钥生成中心KGC选取的抗碰撞的单项哈希函数,xi表示用户U随机选取的长期私钥;
S26,按照下式,用户i得到自己的完整私钥SKi:
SKi=<xi,yi>
其中,SKi表示用户i的完整私钥,xi表示用户U的长期私钥,yi表示用户i的第一部分私钥;
S27,按照下式,用户i得到完整公钥PKi:
PKi=<Xi,Yi>
其中,PKi表示用户i的完整公钥,Xi表示用户i的长期公钥,Yi表示用户i的第一部分公钥;
S28,用户i将自己的完整公钥PKi通过公开信道发送给密钥生成中心KGC,并由密钥生成中心KGC对外公布用户i的完整公钥PKi,用户i安全地保存自己的完整私钥SKi,之后退出用户注册过程。
进一步的,在步骤S3之前,还包括以下步骤:
S31,会话发起方A判断自己是否已经执行了用户注册过程;若是,则执行步骤S30,否则,会话发起方A执行用户注册过程获取自己的公钥PKA和私钥SKA后,再执行步骤S30;
S32,会话发起方A随机选取临时秘密值zA∈Z*p,按照下式设置会话发起方A的临时公钥:
TA=zAP
其中,zA表示会话发起方A的临时秘密值,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,TA表示会话发起方A的临时公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域。
S33,按照下式,会话发起方A设置自己的临时私钥:
tA=zA+xAH2(IDA,XA,TA)
其中,tA表示会话发起方A的临时私钥,zA表示会话发起方A的临时秘密值,xA表示会话发起方A的长期私钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥,TA表示会话发起方A的临时公钥;
S34,会话发起方A通过密钥生成中心KGC获取会话响应方B的完整公钥PKB;
S35,按照下式,会话发起方A设置会话响应方B的身份参数:
hB=H1(IDB,XB,YB)
其中,hB表示会话响应方B的身份参数,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDB表示会话响应方B的身份信息,XB表示会话响应方B的长期公钥,YB表示会话响应方B的第一部分公钥;
S36,按照下式,会话发起方A设置自己的会话密钥参数:
QA=tA(XB+YB+PPubhB)
其中,QA表示会话发起方A的会话密钥参数,tA表示会话发起方A的临时私钥,XB表示会话响应方B的长期公钥,YB表示会话响应方B的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hB表示会话响应方B的身份参数;
S37,会话发起方A将下面这组密钥协商参数通过公开信道发送给会话响应方B:
MAB=<IDA,XA,YA,TA,QA>
其中,MAB表示会话发起方A发送给会话响应方B的密钥协商参数组,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥,TA表示会话发起方A的临时公钥,QA表示会话发起方A的会话密钥参数。
进一步的,在步骤S37中,还包括以下步骤:
S371,会话响应方B接收到会话发起方A发送过来的密钥协商参数组MAB后,判断它们是否满足如下的等式;如果是,则执行步骤S39,,否则会话响应方B退出密钥协商:
QA=(xB+yB)(TA+XAH2(IDA,XA,TA))
其中,QA表示会话发起方A的会话密钥参数,xB表示会话响应方B随机选取的长期私钥,yB表示会话响应方B的第一部分私钥,TA表示会话发起方A的临时公钥,XA表示会话发起方A的长期公钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥;
S372,按照下式,会话响应方B设置自己的临时私钥:
tB=zB+xBH2(IDB,XB,TB)
其中,tB表示会话响应方B的临时私钥,zB表示会话响应方B的临时秘密值,xB表示会话响应方B的长期私钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDB表示会话响应方B的身份信息,XB表示会话响应方B的长期公钥,TB表示会话响应方B的临时公钥。
进一步的,在步骤S3中,还包括以下步骤:
S41,会话响应方B随机选取临时秘密值zB∈Z*p,按照下式设置会话响应方B的临时公钥:
TB=zBP
其中,zB表示会话响应方B的临时秘密值,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,TB表示会话响应方B的临时公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S42,按照下式,会话响应方B设置会话发起方A的身份参数:
hA=H1(IDA,XA,YA)
其中,hA表示会话发起方A的身份参数,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥;
S43,按照下式,会话响应方B设置自己的会话密钥参数:
QB=tB(XA+YA+PPubhA)
其中,QA表示会话响应方B的会话密钥参数,tB表示会话响应方B的临时私钥,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hA表示会话发起方A的身份参数;
S44,会话响应方B将下面这组密钥协商参数通过公开信道发送给会话发起方A:
MBA=<IDB,TB,QB>
其中,MBA表示会话响应方B发送给会话发起方A的密钥协商参数组,IDB表示会话响应方B的身份信息,TB表示会话响应方B的临时公钥,QB表示会话响应方B的会话密钥参数。
进一步的,在步骤S3中,还包括以下步骤:
S45,按照下式,会话响应方B计算自己的第一共享密钥:
K1 B=tB(xB+yB)-1QA
其中,K1 B表示会话响应方B的第一共享密钥,tB表示会话响应方B的临时私钥,xB表示会话响应方B随机选取的长期私钥,yB表示会话响应方B的第一部分私钥,QA表示会话发起方A的会话密钥参数;
S46,按照下式,会话响应方B计算自己的第二共享密钥:
K2 B=(xB+yB)(XA+YA+PPubhA)
其中,K2 B表示会话响应方B的第二共享密钥,xB表示会话响应方B随机选取的长期私钥,yB表示会话响应方B的第一部分私钥,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hA表示会话发起方A的身份参数;
S47,按照下式,会话响应方B计算自己的会话密钥:
KBA=H(IDA,IDB,K1 B,K2 B)
其中,KBA表示会话响应方B的会话密钥,H表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,IDB表示会话响应方B的身份信息,K1 B表示会话响应方B的第一共享密钥,K2 B表示会话响应方B的第二共享密钥;
S48,会话发起方A接收到会话响应方B发送过来的密钥协商参数组MBA后,判断它们是否满足如下的等式;如果是,则执行步骤S50,否则会话发起方A退出密钥协商:
QB=(xA+yA)(TB+XBH2(IDB,XB,TB))
其中,QB表示会话响应方B的会话密钥参数,xA表示会话发起方A随机选取的长期私钥,yA表示会话发起方A的第一部分私钥,TB表示会话响应方B的临时公钥,XB表示会话响应方B的长期公钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDB表示会话响应方B的身份信息,XB表示会话响应方B的长期公钥;
S49,按照下式,会话发起方A计算自己的第一共享密钥:
K1 A=tA(xA+yA)-1QB
其中,K1 A表示会话发起方A的第一共享密钥,tA表示会话发起方A的临时私钥,xA表示会话发起方A随机选取的长期私钥,yA表示会话发起方A的第一部分私钥,QB表示会话响应方B的会话密钥参数;
S50,按照下式,会话发起方A计算自己的第二共享密钥:
K2 A=(xA+yA)(XB+YB+PPubhB)
其中,K2 A表示会话发起方A的第二共享密钥,xA表示会话发起方A随机选取的长期私钥,yA表示会话发起方A的第一部分私钥,XB表示会话响应方B的长期公钥,YB表示会话响应方B的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hB表示会话响应方B的身份参数。
进一步的,在步骤S3中,还包括以下步骤:
S51,按照下式,会话发起方A计算自己的会话密钥:
KAB=H(IDA,IDB,K1 A,K2 A)
其中,KAB表示会话发起方A的会话密钥,H表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,IDB表示会话响应方B的身份信息,K1 A表示会话发起方A的第一共享密钥,K2 A表示会话发起方A的第二共享密钥;
S52,会话发起方A利用会话密钥KAB加密和解密会话消息,完成密钥协商;
S53,会话响应方B利用会话密钥KBA加密和解密会话消息,完成密钥协商。
进一步的,验证密钥协商方法是否有效,若:
K1 A=tA(xA+yA)-1QB=tAtBP=tB(xB+yB)-1QA=K1 B
K2 A=(xA+yA)(XB+YB+PPubhB)=(xA+yA)(xB+yB)P=(xB+yB)(XA+YA+PPubhA)=K2 B
则:
KAB=KBA
故发起方A和响应方B得到一致的会话密钥。
本发明提供一种支持双向认证的无证书密钥协商方法,在用户注册阶段,首先让用户计算自己的第一部分公钥和私钥,然后将公钥和身份信息通过公开信道发送给密钥生成中心KGC。密钥生成中心KGC收到后生成用户的第一部分公钥和第一部分私钥,并通过安全信道将其发送给用户。用户收到后验证这第一部分信息是否正确,通过验证后用户在此基础上获得自己的完整公私钥对。在密钥协商阶段,首先需要通信双方分别选取一个秘密值,计算出四个参数以实现相互之间的身份认证,然后计算出两个共享秘密,从而得到一致的共享会话密钥。预期的技术效果是:得到会话密钥之前减少参数和共享秘密的计算量,提高了计算效率。
在本实施例中的其余技术特征,本领域技术人员均可以根据实际情况进行灵活选用以满足不同的具体实际需求。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的组成,结构或部件,均在本发明的权利要求书请求保护的技术方案限定技术保护范围之内。
在本发明的描述中,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”均是广义含义,本领域技术人员应作广义理解。例如,可以是固定连接,也可以是活动连接,或整体地连接,或局部地连接,可以是机械连接,也可以是电性连接,可以是直接相连,也可以是通过中间媒介间接连接,还可以是两个元件内部的连通等,对于本领域的技术人员来说,可以根据具体情况理解上述术语在本发明中的具体含义,即,文字语言的表达与实际技术的实施可以灵活对应,本发明的说明书的文字语言(包括附图)的表达不构成对权利要求的任何单一的限制性解释。
本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。在以上描述中,为了提供对本发明的透彻理解,阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的技术,例如具体的施工细节,作业条件和其他的技术条件等。
Claims (9)
1.一种支持双向认证的无证书密钥协商方法,其特征在于,包括以下步骤:
S1,建立密钥生成中心KGC并完成各类公开参数设置;
S2,用户注册:用户计算自己的第一部分公钥和第一部分私钥,将第一部分公钥、第一部分私钥和身份信息通过安全信道发送至用户,用户收到后验证信息是否正确,通过验证后,用户在此基础上获得自己的完整公私钥对;
S3,密钥协商:通信双方分别选取至少一个秘密值,计算出至少四个参数以实现相互之间的身份认证,然后计算出两个共享秘密,从而得到一致的共享会话密钥。
2.根据权利要求1所述的支持双向认证的无证书密钥协商方法,其特征在于,在步骤S1中,所述各类公开参数设置步骤具体包括:
S11,密钥生成中心KGC选择整数k作为安全参数,选择阶为p(p>2k)的加法循环群Gp,P是群Gp的一个生成元,其中p表示密钥生成中心KGC选取的大素数,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S12,KGC选择安全抗碰撞的单向哈希函数H0:{0,1}L×Gp→Z*p,H1:{0,1}L×Gp×Gp→Z*p,H2:{0,1}L×Gp×Gp→Z*p,H:{0,1}*→{0,1}k,其中L为用户身份标识的长度,Z*p表示基于大素数p构成的非零乘法群;
S13,KGC随机选择主密钥s∈Z*p,计算系统公钥PPub=sP,其中s由KGC负责秘密保存,最终KGC公开以下系统参数:params={p,Gp,P,PPub,H0,H1,H2,H}。
3.根据权利要求1所述的支持双向认证的无证书密钥协商方法,其特征在于,在步骤S2中,包括以下步骤:
S21,用户i随机选取秘密值xi∈Z*p作为自己的长期私钥,根据下式计算出自己的长期公钥:
Xi=xiP
其中,xi表示用户U随机选取的长期私钥,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,Xi表示用户i的长期公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S22,用户i将自己的身份信息IDi和长期公钥Xi通过公开信道发送给密钥生成中心KGC,密钥生成中心KGC收到用户i的身份信息IDi和长期公钥Xi后,随机选取一个秘密值ri∈Z*p,按照下式设置用户i的第一部分公钥:
Yi=riP
其中,IDi表示用户i的身份信息,Xi表示用户i的长期公钥,ri表示密钥生成中心KGC随机选取的一个整数,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,Yi表示用户i的第一部分公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S23,按照下式,密钥生成中心KGC设置用户i的第一部分私钥:
yi=ri+sH1(IDi,Xi,Yi)
其中,yi表示用户i的部分私钥,ri表示密钥生成中心KGC为用户i随机选取的秘密值,s表示密钥生成中心KGC选取的系统主密钥,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDi表示用户i的身份信息,Xi表示用户i的长期公钥,Yi表示用户i的第一部分公钥;
S24,密钥生成中心KGC通过公开信道将用户i的第一部分公钥Yi和第一部分私钥yi发送给用户i;
S25,用户i接收到密钥生成中心KGC发送过来的第一部分公钥Yi和第一部分私钥yi后,判断它们是否满足如下的等式;如果是,则执行步骤八,否则用户i向密钥生成中心KGC报错,并重新提交用户注册申请:
yiP=Yi+PPubH1(IDi,Xi,Yi)
其中,yi表示用户i的第一部分私钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为p的有限域,p表示密钥生成中心KGC选取的大素数,Yi表示用户i的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDi表示用户i的身份信息,Xi表示用户i的长期公钥,Yi表示用户i的第一部分公钥,H0表示密钥生成中心KGC选取的抗碰撞的单项哈希函数,xi表示用户U随机选取的长期私钥;
S26,按照下式,用户i得到自己的完整私钥SKi:
SKi=<xi,yi>
其中,SKi表示用户i的完整私钥,xi表示用户U的长期私钥,yi表示用户i的第一部分私钥;
S27,按照下式,用户i得到完整公钥PKi:
PKi=<Xi,Yi>
其中,PKi表示用户i的完整公钥,Xi表示用户i的长期公钥,Yi表示用户i的第一部分公钥;
S28,用户i将自己的完整公钥PKi通过公开信道发送给密钥生成中心KGC,并由密钥生成中心KGC对外公布用户i的完整公钥PKi,用户i安全地保存自己的完整私钥SKi,之后退出用户注册过程。
4.根据权利要求1所述的支持双向认证的无证书密钥协商方法,其特征在于:在步骤S3之前,还包括以下步骤:
S31,会话发起方A判断自己是否已经执行了用户注册过程;若是,则执行步骤S30,否则,会话发起方A执行用户注册过程获取自己的公钥PKA和私钥SKA后,再执行步骤S30;
S32,会话发起方A随机选取临时秘密值zA∈Z*p,按照下式设置会话发起方A的临时公钥:
TA=zAP
其中,zA表示会话发起方A的临时秘密值,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,TA表示会话发起方A的临时公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域。
S33,按照下式,会话发起方A设置自己的临时私钥:
tA=zA+xAH2(IDA,XA,TA)
其中,tA表示会话发起方A的临时私钥,zA表示会话发起方A的临时秘密值,xA表示会话发起方A的长期私钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥,TA表示会话发起方A的临时公钥;
S34,会话发起方A通过密钥生成中心KGC获取会话响应方B的完整公钥PKB;
S35,按照下式,会话发起方A设置会话响应方B的身份参数:
hB=H1(IDB,XB,YB)
其中,hB表示会话响应方B的身份参数,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDB表示会话响应方B的身份信息,XB表示会话响应方B的长期公钥,YB表示会话响应方B的第一部分公钥;
S36,按照下式,会话发起方A设置自己的会话密钥参数:
QA=tA(XB+YB+PPubhB)
其中,QA表示会话发起方A的会话密钥参数,tA表示会话发起方A的临时私钥,XB表示会话响应方B的长期公钥,YB表示会话响应方B的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hB表示会话响应方B的身份参数;
S37,会话发起方A将下面这组密钥协商参数通过公开信道发送给会话响应方B:
MAB=<IDA,XA,YA,TA,QA>
其中,MAB表示会话发起方A发送给会话响应方B的密钥协商参数组,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥,TA表示会话发起方A的临时公钥,QA表示会话发起方A的会话密钥参数。
5.根据权利要求4所述的支持双向认证的无证书密钥协商方法,其特征在于:在步骤S37中,还包括以下步骤:
S371,会话响应方B接收到会话发起方A发送过来的密钥协商参数组MAB后,判断它们是否满足如下的等式;如果是,则执行步骤S39,,否则会话响应方B退出密钥协商:
QA=(xB+yB)(TA+XAH2(IDA,XA,TA))
其中,QA表示会话发起方A的会话密钥参数,xB表示会话响应方B随机选取的长期私钥,yB表示会话响应方B的第一部分私钥,TA表示会话发起方A的临时公钥,XA表示会话发起方A的长期公钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥;
S372,按照下式,会话响应方B设置自己的临时私钥:
tB=zB+xBH2(IDB,XB,TB)
其中,tB表示会话响应方B的临时私钥,zB表示会话响应方B的临时秘密值,xB表示会话响应方B的长期私钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDB表示会话响应方B的身份信息,XB表示会话响应方B的长期公钥,TB表示会话响应方B的临时公钥。
6.根据权利要求1所述的支持双向认证的无证书密钥协商方法,其特征在于:在步骤S3中,还包括以下步骤:
S41,会话响应方B随机选取临时秘密值zB∈Z*p,按照下式设置会话响应方B的临时公钥:
TB=zBP
其中,zB表示会话响应方B的临时秘密值,∈表示限定域符号,Z*p表示基于大素数p构成的非零乘法群,p表示密钥生成中心KGC选取的大素数,TB表示会话响应方B的临时公钥,P表示密钥生成中心KGC选取的加法循环群Gp上的生成元,Gp表示密钥生成中心KGC选取的椭圆曲线E上的加法循环群,E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域;
S42,按照下式,会话响应方B设置会话发起方A的身份参数:
hA=H1(IDA,XA,YA)
其中,hA表示会话发起方A的身份参数,H1表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥;
S43,按照下式,会话响应方B设置自己的会话密钥参数:
QB=tB(XA+YA+PPubhA)
其中,QA表示会话响应方B的会话密钥参数,tB表示会话响应方B的临时私钥,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hA表示会话发起方A的身份参数;
S44,会话响应方B将下面这组密钥协商参数通过公开信道发送给会话发起方A:
MBA=<IDB,TB,QB>
其中,MBA表示会话响应方B发送给会话发起方A的密钥协商参数组,IDB表示会话响应方B的身份信息,TB表示会话响应方B的临时公钥,QB表示会话响应方B的会话密钥参数。
7.根据权利要求6所述的支持双向认证的无证书密钥协商方法,其特征在于:在步骤S3中,还包括以下步骤:
S45,按照下式,会话响应方B计算自己的第一共享密钥:
K1 B=tB(xB+yB)-1QA
其中,K1 B表示会话响应方B的第一共享密钥,tB表示会话响应方B的临时私钥,xB表示会话响应方B随机选取的长期私钥,yB表示会话响应方B的第一部分私钥,QA表示会话发起方A的会话密钥参数;
S46,按照下式,会话响应方B计算自己的第二共享密钥:
K2 B=(xB+yB)(XA+YA+PPubhA)
其中,K2 B表示会话响应方B的第二共享密钥,xB表示会话响应方B随机选取的长期私钥,yB表示会话响应方B的第一部分私钥,XA表示会话发起方A的长期公钥,YA表示会话发起方A的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hA表示会话发起方A的身份参数;
S47,按照下式,会话响应方B计算自己的会话密钥:
KBA=H(IDA,IDB,K1 B,K2 B)
其中,KBA表示会话响应方B的会话密钥,H表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,IDB表示会话响应方B的身份信息,K1 B表示会话响应方B的第一共享密钥,K2 B表示会话响应方B的第二共享密钥;
S48,会话发起方A接收到会话响应方B发送过来的密钥协商参数组MBA后,判断它们是否满足如下的等式;如果是,则执行步骤S50,否则会话发起方A退出密钥协商:
QB=(xA+yA)(TB+XBH2(IDB,XB,TB))
其中,QB表示会话响应方B的会话密钥参数,xA表示会话发起方A随机选取的长期私钥,yA表示会话发起方A的第一部分私钥,TB表示会话响应方B的临时公钥,XB表示会话响应方B的长期公钥,H2表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDB表示会话响应方B的身份信息,XB表示会话响应方B的长期公钥;
S49,按照下式,会话发起方A计算自己的第一共享密钥:
K1 A=tA(xA+yA)-1QB
其中,K1 A表示会话发起方A的第一共享密钥,tA表示会话发起方A的临时私钥,xA表示会话发起方A随机选取的长期私钥,yA表示会话发起方A的第一部分私钥,QB表示会话响应方B的会话密钥参数;
S50,按照下式,会话发起方A计算自己的第二共享密钥:
K2 A=(xA+yA)(XB+YB+PPubhB)
其中,K2 A表示会话发起方A的第二共享密钥,xA表示会话发起方A随机选取的长期私钥,yA表示会话发起方A的第一部分私钥,XB表示会话响应方B的长期公钥,YB表示会话响应方B的第一部分公钥,Ppub表示密钥生成中心KGC生成的系统公钥,hB表示会话响应方B的身份参数。
8.根据权利要求7所述的支持双向认证的无证书密钥协商方法,其特征在于:在步骤S3中,还包括以下步骤:
S51,按照下式,会话发起方A计算自己的会话密钥:
KAB=H(IDA,IDB,K1 A,K2 A)
其中,KAB表示会话发起方A的会话密钥,H表示密钥生成中心KGC选取的抗碰撞单项哈希函数,IDA表示会话发起方A的身份信息,IDB表示会话响应方B的身份信息,K1 A表示会话发起方A的第一共享密钥,K2 A表示会话发起方A的第二共享密钥;
S52,会话发起方A利用会话密钥KAB加密和解密会话消息,完成密钥协商;
S53,会话响应方B利用会话密钥KBA加密和解密会话消息,完成密钥协商。
9.根据权利要求4-8所述的支持双向认证的无证书密钥协商方法,其特征在于:验证密钥协商方法是否有效,若:
K1 A=tA(xA+yA)-1QB=tAtBP=tB(xB+yB)-1QA=K1 B
K2 A=(xA+yA)(XB+YB+PPubhB)=(xA+yA)(xB+yB)P=(xB+yB)(XA+YA+PPubhA)=K2 B
则:
KAB=KBA
故发起方A和响应方B得到一致的会话密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010240896.6A CN111314076B (zh) | 2020-03-31 | 2020-03-31 | 一种支持双向认证的无证书密钥协商方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010240896.6A CN111314076B (zh) | 2020-03-31 | 2020-03-31 | 一种支持双向认证的无证书密钥协商方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111314076A true CN111314076A (zh) | 2020-06-19 |
CN111314076B CN111314076B (zh) | 2023-04-21 |
Family
ID=71162314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010240896.6A Active CN111314076B (zh) | 2020-03-31 | 2020-03-31 | 一种支持双向认证的无证书密钥协商方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111314076B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740828A (zh) * | 2020-07-29 | 2020-10-02 | 北京信安世纪科技股份有限公司 | 一种密钥生成方法以及装置、设备、加密方法 |
CN111769937A (zh) * | 2020-06-24 | 2020-10-13 | 四川大学 | 面向智能电网高级测量体系的两方认证密钥协商协议 |
CN112015814A (zh) * | 2020-08-26 | 2020-12-01 | 深圳壹账通智能科技有限公司 | 基于区块链网络的数据生成方法、设备、节点及存储介质 |
CN112054898A (zh) * | 2020-08-27 | 2020-12-08 | 中信银行股份有限公司 | 用户私钥的备份与恢复方法、装置及电子设备 |
CN112564923A (zh) * | 2021-03-01 | 2021-03-26 | 南京信息工程大学 | 一种基于无证书的安全网络连接握手方法 |
CN112713992A (zh) * | 2020-12-22 | 2021-04-27 | 湖北工业大学 | 一种基于无证书的抗泄露认证与密钥协商方法及系统 |
CN113179153A (zh) * | 2021-03-22 | 2021-07-27 | 淮阴工学院 | 一种基于无证书的用户认证和密钥协商方法 |
CN113301520A (zh) * | 2021-05-21 | 2021-08-24 | 国网四川省电力公司电力科学研究院 | 一种无线传感器网络安全通信的方法 |
CN113572603A (zh) * | 2021-07-21 | 2021-10-29 | 淮阴工学院 | 一种异构的用户认证和密钥协商方法 |
CN114007220A (zh) * | 2021-10-20 | 2022-02-01 | 武汉大学 | 短期阶段会话密钥生成方法、认证密钥协商方法及系统 |
CN114024668A (zh) * | 2021-10-18 | 2022-02-08 | 武汉大学 | 高效的无双线性对运算的无证书认证密钥协商方法及系统 |
CN114070549A (zh) * | 2020-07-31 | 2022-02-18 | 马上消费金融股份有限公司 | 一种密钥生成方法、装置、设备和存储介质 |
CN114070550A (zh) * | 2020-07-31 | 2022-02-18 | 马上消费金融股份有限公司 | 一种信息处理方法、装置、设备和存储介质 |
CN114095151A (zh) * | 2020-07-31 | 2022-02-25 | 马上消费金融股份有限公司 | 一种加解密方法、认证方法、装置、设备和存储介质 |
CN114666381A (zh) * | 2022-03-11 | 2022-06-24 | 浙江国盾量子电力科技有限公司 | 基于拉格朗日插值的变电站巡检机器人安全通信系统及方法 |
CN115484033A (zh) * | 2022-09-13 | 2022-12-16 | 南京邮电大学 | 基于国密算法的pmu电力系统通信方法 |
WO2024114205A1 (zh) * | 2022-11-30 | 2024-06-06 | 大唐移动通信设备有限公司 | 密钥协商方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889433A (zh) * | 2006-07-20 | 2007-01-03 | 上海交通大学 | 基于隐式公钥证书的双方认证密钥协商方法及系统 |
CN102594569A (zh) * | 2012-03-24 | 2012-07-18 | 成都大学 | 一种建立Tor匿名通道时所采用的无证书密钥协商方法 |
WO2017202161A1 (zh) * | 2016-05-26 | 2017-11-30 | 中兴通讯股份有限公司 | 基于无证书两方认证密钥协商方法、装置和存储介质 |
-
2020
- 2020-03-31 CN CN202010240896.6A patent/CN111314076B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889433A (zh) * | 2006-07-20 | 2007-01-03 | 上海交通大学 | 基于隐式公钥证书的双方认证密钥协商方法及系统 |
CN102594569A (zh) * | 2012-03-24 | 2012-07-18 | 成都大学 | 一种建立Tor匿名通道时所采用的无证书密钥协商方法 |
WO2017202161A1 (zh) * | 2016-05-26 | 2017-11-30 | 中兴通讯股份有限公司 | 基于无证书两方认证密钥协商方法、装置和存储介质 |
CN107437993A (zh) * | 2016-05-26 | 2017-12-05 | 中兴通讯股份有限公司 | 一种基于无证书两方认证密钥协商方法和装置 |
Non-Patent Citations (3)
Title |
---|
LIU WENHAO等: ""Certificateless Two Party Key Agreement Protocol"", 《2010 INTERNATIONAL CONFERENCE ON MULTIMEDIA INFORMATION NETWORKING AND SECURITY》 * |
周彦伟等: "一种改进的无证书两方认证密钥协商协议", 《计算机学报》 * |
郭松辉等: "一种基于椭圆曲线的轻量级身份认证及密钥协商方案", 《计算机科学》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111769937A (zh) * | 2020-06-24 | 2020-10-13 | 四川大学 | 面向智能电网高级测量体系的两方认证密钥协商协议 |
CN111740828A (zh) * | 2020-07-29 | 2020-10-02 | 北京信安世纪科技股份有限公司 | 一种密钥生成方法以及装置、设备、加密方法 |
CN114070549A (zh) * | 2020-07-31 | 2022-02-18 | 马上消费金融股份有限公司 | 一种密钥生成方法、装置、设备和存储介质 |
CN114095151A (zh) * | 2020-07-31 | 2022-02-25 | 马上消费金融股份有限公司 | 一种加解密方法、认证方法、装置、设备和存储介质 |
CN114070550A (zh) * | 2020-07-31 | 2022-02-18 | 马上消费金融股份有限公司 | 一种信息处理方法、装置、设备和存储介质 |
CN112015814A (zh) * | 2020-08-26 | 2020-12-01 | 深圳壹账通智能科技有限公司 | 基于区块链网络的数据生成方法、设备、节点及存储介质 |
CN112015814B (zh) * | 2020-08-26 | 2022-10-04 | 深圳壹账通智能科技有限公司 | 基于区块链网络的数据生成方法、设备、节点及存储介质 |
CN112054898A (zh) * | 2020-08-27 | 2020-12-08 | 中信银行股份有限公司 | 用户私钥的备份与恢复方法、装置及电子设备 |
CN112054898B (zh) * | 2020-08-27 | 2022-10-25 | 中信银行股份有限公司 | 用户私钥的备份与恢复方法、装置及电子设备 |
CN112713992A (zh) * | 2020-12-22 | 2021-04-27 | 湖北工业大学 | 一种基于无证书的抗泄露认证与密钥协商方法及系统 |
CN112564923A (zh) * | 2021-03-01 | 2021-03-26 | 南京信息工程大学 | 一种基于无证书的安全网络连接握手方法 |
CN113179153A (zh) * | 2021-03-22 | 2021-07-27 | 淮阴工学院 | 一种基于无证书的用户认证和密钥协商方法 |
CN113179153B (zh) * | 2021-03-22 | 2022-07-15 | 淮阴工学院 | 一种基于无证书的用户认证和密钥协商方法 |
CN113301520A (zh) * | 2021-05-21 | 2021-08-24 | 国网四川省电力公司电力科学研究院 | 一种无线传感器网络安全通信的方法 |
CN113301520B (zh) * | 2021-05-21 | 2023-02-28 | 国网四川省电力公司电力科学研究院 | 一种无线传感器网络安全通信的方法 |
CN113572603A (zh) * | 2021-07-21 | 2021-10-29 | 淮阴工学院 | 一种异构的用户认证和密钥协商方法 |
CN113572603B (zh) * | 2021-07-21 | 2024-02-23 | 淮阴工学院 | 一种异构的用户认证和密钥协商方法 |
CN114024668A (zh) * | 2021-10-18 | 2022-02-08 | 武汉大学 | 高效的无双线性对运算的无证书认证密钥协商方法及系统 |
CN114024668B (zh) * | 2021-10-18 | 2023-01-31 | 武汉大学 | 高效的无双线性对运算的无证书认证密钥协商方法及系统 |
CN114007220A (zh) * | 2021-10-20 | 2022-02-01 | 武汉大学 | 短期阶段会话密钥生成方法、认证密钥协商方法及系统 |
CN114007220B (zh) * | 2021-10-20 | 2023-12-08 | 武汉大学 | 短期阶段会话密钥生成方法、认证密钥协商方法及系统 |
CN114666381A (zh) * | 2022-03-11 | 2022-06-24 | 浙江国盾量子电力科技有限公司 | 基于拉格朗日插值的变电站巡检机器人安全通信系统及方法 |
CN115484033A (zh) * | 2022-09-13 | 2022-12-16 | 南京邮电大学 | 基于国密算法的pmu电力系统通信方法 |
WO2024114205A1 (zh) * | 2022-11-30 | 2024-06-06 | 大唐移动通信设备有限公司 | 密钥协商方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111314076B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111314076A (zh) | 一种支持双向认证的无证书密钥协商方法 | |
Krawczyk | SKEME: A versatile secure key exchange mechanism for internet | |
CN102318258B (zh) | 基于身份的认证密钥协商协议 | |
US8930704B2 (en) | Digital signature method and system | |
US20030182554A1 (en) | Authenticated ID-based cryptosystem with no key escrow | |
CN108667616A (zh) | 基于标识的跨云安全认证系统和方法 | |
Cao et al. | Identity-based anonymous remote authentication for value-added services in mobile networks | |
CN110489982B (zh) | 一种具有前向安全性的智能电网数据聚合和加密方法 | |
CN1889433A (zh) | 基于隐式公钥证书的双方认证密钥协商方法及系统 | |
CN107659395A (zh) | 一种多服务器环境下基于身份的分布式认证方法及系统 | |
CN112039660B (zh) | 一种物联网节点群组身份安全认证方法 | |
WO2006070682A1 (ja) | 制限付ブラインド署名システム | |
CN113162773B (zh) | 一种可证安全的异构盲签密方法 | |
CN113572603A (zh) | 一种异构的用户认证和密钥协商方法 | |
CN111586685B (zh) | 一种基于格的匿名漫游认证方法 | |
Wang et al. | An authenticated key agreement protocol for cross-domain based on heterogeneous signcryption scheme | |
Zhang et al. | Attack on two ID-based authenticated group key agreement schemes | |
CN110943845A (zh) | 一种轻量级两方协同产生sm9签名的方法及介质 | |
CN112564923B (zh) | 一种基于无证书的安全网络连接握手方法 | |
Yongliang et al. | Elliptic curve cryptography based wireless authentication protocol | |
Shim | Cryptanalysis of two identity-based authenticated key agreement protocols | |
KR20040013966A (ko) | 이동 통신망에서의 인증 및 키 합의 방법 | |
Xia et al. | Breaking and repairing the certificateless key agreement protocol from ASIAN 2006 | |
CN113014376B (zh) | 一种用户与服务器之间安全认证的方法 | |
CN106330430B (zh) | 一种基于ntru的第三方移动支付方法 |
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 |