基于隐式公钥证书的双方认证密钥协商方法及系统的制作方法

文档序号:7965017阅读:661来源:国知局
专利名称:基于隐式公钥证书的双方认证密钥协商方法及系统的制作方法
技术领域
本发明涉及一种基于隐式公钥证书的双方认证密钥协商方法及系统,可应用于大型分布式网络环境(如国际互联网Internet)下的安全通信,属于网络通信技术领域。
背景技术
随着网络信息技术应用的日渐普及,网络信息安全越来越成为一个倍受关注的课题。一方面,网络信息技术使世界范围的信息交流日益方便快捷,同时给人们带来了更多的商业和科学研究的机会。而在另一方面,一旦网络上传递的重要信息(如国家机密、商业机密或个人隐私等)被截获或篡改,国家、企业或个人将蒙受巨大损失。另外,以非法入侵和非法获利为目的的信息犯罪日益增多,也对网络的安全运行和进一步发展提出了挑战。人们对信息安全的要求越来越强烈,这一迫在眉睫的现实需求成为推动信息安全理论与技术研究的能动力。
在解决网络信息安全问题的所有机制与方案当中,用户身份认证(Authentication)通常是最基本的一步。通过身份认证,系统可以由此决定是否提供服务或者开放什么样的权限。进一步,还可以由此来为特定的用户进行访问控制、实时计费等管理。而在身份验证通过之后,接下来的问题是如何保护通信双方所互相传送的数据。目前解决这一问题最有效的方式就是为通信的双方分配一个共享的会话密钥(Session key),然后他们以此会话密钥来加密传送的数据以防止窃听,并产生消息认证码以防止数据被篡改。所以,一个能同时提供用户身份认证和密钥生成的安全协议,才能满足上述安全需求,这一类安全协议通常被称为认证密钥生成协议(Authenticated key establishmentprotocol),它将认证和密钥生成紧密结合在一起,是网络通信中应用最普遍的安全协议之一。认证密钥生成协议一般可分为认证密钥传输(Key transport)协议与认证密钥协商(Key agreement)协议两大类。在认证密钥协商协议中,最终会话密钥的生成,需要用到通信各方贡献的信息。
通过认证密钥协商协议,通信双方可以在公开的网络环境里建立共享的会话密钥,从而保证了后续通信会话中消息的机密性和完整性。尽管认证密钥协商协议是几乎所有上层应用协议(如电子商务协议、安全文件传输协议等)的必要条件,但安全认证密钥协商协议的设计仍然是一个十分困难的问题。
一、认证密钥协商协议密钥协商协议与加密、数字签名是最基本的3个密码原语(Cryptographicprimitive)。密钥协商协议允许两个或者两个以上的用户在由敌手完全控制的开放式网络环境下通过交换信息,协商完成一个共享的密钥。这一密钥将用于这些用户之间的后续安全通信。因此,安全密钥协商协议是更加复杂的高层协议(如电子商务协议、电子选举协议等)的最基本模块。
设计在通信和计算负荷方面拥有高效率,并且安全的密钥协商协议,一直受到了密码学界的广泛重视。第一个开创性的密钥协商协议由Diffie和Hellman于1976年在他们的标志着公钥密码学诞生的经典文献(见W.Diffie and M.Hellman.New directions incryptography.IEEE Trans.Inform.Theory 22(1976),pp.472-492)中提出,它被称作指数密钥交换协议。然而,经典Diffie-Hellman密钥协商协议不提供认证机制,因此在开放式网络环境中使用时,它不能抵抗中间人(Man-in-the-middle)攻击。
如果一个密钥协商协议能够允许一组用户在开放式网络环境下协商达成一个共享密钥,并确保只有指定的用户有可能获得这一共享密钥。这样的性质叫做隐式密钥认证(Implicit key authentication),进一步,这样的密钥协商协议叫做认证密钥协商协议。另外,如果该协议还能够确保指定的用户确实计算、拥有了某个共享密钥,这样的属性叫做显式密钥认证,提供显式密钥认证的密钥协商协议叫做带密钥确认(Keyconfirmation)的认证密钥协商协议。近20年以来,多种多样的安全属性被发现是一个安全的密钥协商协议所必需达到的。人们开发了不同的方法来研究如何获得这些安全属性。密钥抽取函数、消息认证码(MAC)、数字签名方案等等,是认证密钥协商协议的基本工具。
基于公钥密码技术的双方密钥协商协议是最基本的一类密钥协商协议。它大体上可被分为两大类传统显式证书基协议与隐式证书基协议。在传统显式证书基密钥协商协议中,协议通信的双方需要首先获得对方的长期公钥,而这样的公钥是经过公钥证书中心CA认证过的,因此这种显式证书基公钥在使用的过程中,不可避免的牵涉到CA数字签名的验证,这大大增加了用户的计算负荷,降低了协议的运行效率。而在隐式认证公钥框架下,例如身份基密钥协商协议中,用户的公钥是一些例如姓名、家庭住址或者电子邮件等身份信息,这样的公钥在使用时,不需要验证它的真实性。
二、认证密钥协商协议的安全目标一个安全的密钥协商协议需要能够抵抗各种被动或者主动攻击。下面列举了一些密钥协商协议被期望达到的安全属性1.已知会话密钥安全(Known Session Key Security)如果一个敌手已经获取了一些先前的会话密钥,仍然不能取得当前会话的密钥,那么这个协议是已知会话密钥安全的。
2.前向安全性(Forward Secrecy)如果一个或多个通信实体的长期私钥(或秘密)被暴露,先前生成的会话密钥的安全性仍然不受影响。
3.抗密钥泄漏伪装攻击(Key-compromise Impersonation Resistance)假设实体A的长期私钥(或秘密)被暴露了。显然,获得该密钥(或秘密)的敌手因为知道了这个私钥值就可以向任何其他实体冒充A参与一些协议。这里,要求敌手除了冒充A之外,不可以去冒充其它人。并且,最重要的,要求敌手不能向A(长期密钥被暴露者)成功冒充为其他通信实体。
4.未知密钥共享(Unknown Key-share Resistance)在没有被实体A知晓的情况下,它不可以被敌手强制地与另外一个实体B共享一个会话密钥。
5.密钥不可控制(No Key Control)对于通信的任何一方,包括敌手,不可以将会话密钥强制设置为一个预先选择的值。
三、公钥证书(Public-key Certificates)公钥证书是所有用户公钥的载体,它可以在不安全的介质上存储、分发或者传递,而不必担心被恶意篡改。公钥证书的目的是使得用户的公钥在被使用的时候,可以验证其真实性。
公钥证书分为两大类显式公钥证书(Explicit public-key certificates)和隐式公钥证书(Implicit public-key certificates)。公钥证书的不同生成、使用方式与方法,确定了公钥密码系统的不同使用模式(Model of use for public-keycryptography).
显式公钥证书是基于传统公钥基础设施PKI的公钥证书,包含两个部分数据部分与签名部分。数据部分至少包含某个用户的身份信息以及该用户的公钥;签名部分包含证书权威中心(CA)对数据部分的签名。CA在对该用户的身份进行过认证之后,通过这样的一个签名,来将该用户与其公钥进行绑定。这样,当第三方用户在使用该用户的公钥之前,通过验证其公钥证书中的CA的签名,即可以判断公钥的真实性与有效性。
隐式公钥证书的一个最基本的属性是,系统内某一用户的公钥在被其他用户使用之前,后者不需要通过验证证书中心CA的签名来检验长期公钥的真实有效性。由隐式公钥证书“隐式认证”的公钥包括身份基公钥、自认证公钥、Gentry隐式证书公钥,以及所谓的无证书公钥。注意,这里我们将身份基密码当中由私钥生成中心(PKG,privatekey generator)为每个生成的私钥也看作公钥证书(并且是一种隐式公钥证书)。这样做的理由是,正是PKG在行使了如同传统PKI中CA的使命——检验用户的公钥——之后,再为它发布某种格式的“证书”,用以认证该用户的公钥。
四、现有的两种典型的密钥协商协议1.基于显式公钥证书的密钥协商协议--MIT协议MTI协议族是一组Diffie-Hellman密钥协商协议的变体的总称,他们由三位日本著名密码学学者于1986年提出,详见T.Matsumoto,Y.Takashima,and H.Imai.Onseeking smart public-key distribution systems.The Transactions of the IECE ofJapan,E6999-106,1986。这些协议能够通过两次消息传递(不需要签名),为通信的双方产生能够抵抗被动敌手攻击的双向(隐式)认证的会话密钥。这里仅给出MTI/A0协议,做举例说明。
MTI/A0协议简介概要说明两次消息传递的Diffie-Hellman密钥协商,其安全性能够抵抗被动敌手攻击。
运行结果A和B都能够计算共享密钥K。
a)系统设置。选择并公布一个合适的大素数p以及Zp*上的生成元g,2≤g≤p-2。A随机选择一个整数a,2≤a≤p-2,作为长期私钥,并计算相应的长期公钥A=gamod p(B生成类似的长期密钥b和B)。A和B分别获得对方真实的长期公钥的副本(通过公钥证书)。
b)协议消息。同经典Diffie-Hellman密钥协商协议。
c)协议执行步骤1A选择一个随机数x,2≤x≤p-2,被给B发送X=gx;步骤2B选择一个随机数y,2≤y≤p-2,被给B发送Y=gy;步骤3A计算共享密钥K=KAB=YaBx=gay+bx;步骤4B计算共享密钥K=KBA=XbAy=gbx+ay。
表1总结了MTI/A0协议以及其它三个相关协议。所有这四个MTI协议都提供双向的隐式密钥认证,且满足角色对称的性质协议的每一参与方都执行完全类似的操作,通信与计算负荷完全相同。并且,这些协议中的消息都是相互独立的,即双方在发送自已的消息(临时公钥)之前都不需要接收对方的消息。MTI/A0协议甚者不需要预先得到对方的长期公钥,长期公钥可以与消息的同时被发送,因此,在MTI/A0协议中,发送的消息也独立于预定的消息接收方(协议的另一参与方),这使得MTI/A0协议比其它三个协议具有更大的灵活性。
表1MTI协议族

说明表中X和Y表示双方分别向对方发送的消息(临时公钥)MTI协议的缺点首先来分析MTI/A0协议。虽然协议的双方A和B在向对方发送协议消息(X和Y)之前,不需要预先获得对方的长期公钥。但是,当双方需要计算共享会话密钥的时候,就需要获得并检验对方的长期公钥了。比如,A在计算共享密钥KAB前,需要首先检验B的长期公钥B的真实性及有效性A首先从B的公钥证书(显式证书)中提取出长期公钥B,然后利用证书中心CA的公钥(系统内公开参数之一),检验公钥证书中CA对长期公钥B的签名。
完全类似的,B在计算共享会话密钥KBA之前,需要检验A的长期公钥A的真实性与有效性。
而对于MTI/B0、MTI/C0及MTI/C1协议,协议的双方在计算协议消息(X和Y)之前,就需要验证相应公钥证书中的CA的签名,以检验对方长期公钥的真实性和有效性。
2.身份基双方密钥协商协议-Smart协议Smart提出了第一个使用双线性配对的身份基双方密钥协商协议-Smart协议,详见N.P.Smart.An identity based authenticated key agreement protocol based onthe Weil pairing.Electronics Letters,volume 38(13)630-632,June 2002。这一协议要求协议的参与方同处于一个域,即双方都是同一个私钥生成中心(PKG)的客户。
为说明方便,这里先简要介绍双线性配对的一些基本概念。
令G1是一个阶为素数q的加法群,G2是乘法群,阶也为q。假定这两个群上的离散对数问题都是困难的。一个双线性配对e:G1×G1→G2是满足下面3条性质的映射1)双线性如果P,Q∈G1且a,b∈Zq*,]]>则e(aP,bQ)=e(P,Q)ab;2)非退化性存在一个P∈G1,使得e(P,P)≠1;3)可计算性对于P,Q∈G1,存在有效算法计算e(P,Q)。
满足上述条件的群G1叫做双线性群。有限域上的奇异或者超奇异椭圆曲线上的点组成的某类群可作为双线性群的例子,而这些群上的Weil配对或者Tate配对,可很容易的被转化来构造双线性配对。
Smart协议简介系统建立假设e是群G1和G2上的双线性配对,PKG选择一个密钥s∈Zq*,]]>并计算PPub=sP。哈希函数H1将任意长的比特串映射到群G1上。系统公开参数为e、G1、G2、P以及PPub。
私钥抽取对于任意身份ID,PKG计算QID=H1(ID)∈G1,进而计算其相应私钥dID=sQID。最后,PKG通过安全信道将用户私钥传送给特定用户。
密钥协商假设用户A与B欲生成共享会话密钥。二者执行以下步骤步骤1.A选择一个临时私钥x∈RZq*,]]>计算临时公钥TA=xP并将TA发送给B;步骤2.B选择一个临时私钥y∈RZq*,]]>计算临时公钥TB=yP并将TB发送给A;步骤3.A计算共享密钥K=KAB=e(xQB,PPub)·e(dA,TB);步骤4.B计算共享密钥K=KBA=e(yQA,PPub)·e(dB,TA)。
Smart协议所需通信带宽为群G1的两个成员。在计算方面,每个用户需计算1个群G1上的标量乘法,2个配对计算,G2上的一个乘法以及一个“映射到点”操作。
Smart通过非形式化的方法分析了该协议的安全性它满足的安全属性包括双向隐式密钥认证、己知密钥安全、半前向安全、抗密钥泄露伪装攻击以及抗未知密钥共享攻击等。Smart并给出了一个3次消息传递的带密钥确认的协议版本。
虽然Smart协议采用身份基公钥,具有身份基密码方案的所有优点,然而它天然的继承了身份基密码带来的密钥托管属性。如前所述,这一性质在许多情况下,却只能被看作一种缺点。Smart协议中,协议双方A和B得到的共享密钥K=e(dB,TA)·e(dA,TB)。因为A和B的私钥dA、dB是由他们的PKG生成,所以PKG在获得公开信道上的TA和TB后,即可计算出共享密钥K。
进一步,由于拥有系统主密钥的PKG能够轻而易举的计算出运行Smart协议的任何双方之间的共享密钥,所以若PKG的主密钥在某一时刻被泄漏,则之前整个系统内的产生的所有会话密钥将被暴露。也就是说,Smart协议不提供PKG前向安全。
最后,若协议的双方A和B由于操作不当,导致他们的长期私钥dA、dB在某一时刻泄漏,则由共享密钥K=e(dB,TA)·e(dA,TB)知,在长期密钥泄漏之前产生的共享密钥K的安全性将完全失去。因此,Smart协议达不到完全前向安全(Full Forward Secrecy)。

发明内容
本发明的目的在于解决现有技术中存在的密钥托管问题,并减轻用户端的计算负担,本发明提供了一种基于隐式公钥证书的双方认证密钥协商方法,包括以下步骤步骤A可信机构利用随机生成的系统主密钥生成并公布系统参数;用户端A和B根据各自随机生成的部分私钥得到相应的部分公钥,并分别向可信机构提交身份信息及相应部分公钥;步骤B所述可信机构核实用户端A和B的真实身份后,根据用户端A和B的身份信息及其各自部分公钥得到隐式公钥证书,并相应地分发给用户端A和B;步骤C用户端A和B分别利用随机生成的临时私钥得到相应的临时公钥,并分别根据对方的临时公钥、双方的部分公钥及系统参数,并利用各自的部分私钥、临时私钥及隐式公钥证书,获得共享密钥。
所述步骤B中的得到隐式公钥证书具体包括根据用户端A和B的身份信息及其各自部分公钥,分别为用户端A和B计算一个哈希值QID,并利用系统主密钥对哈希值QID进行签名得到隐式公钥证书。
所述用户端A和B通过公开目录分别将他们的部分公钥公布出去。
所述可信机构通过检查身份信息核实用户端A和B的真实身份。
所述方法还包括利用密钥抽取函数kdf对共享密钥进行处理,获取共享会话密钥的步骤。
所述方法还包括利用密钥抽取函数kdf对共享密钥进行处理,并将用户端A和B的身份信息作为密钥抽取函数kdf输入值,获取共享会话密钥的步骤。
通过公开信道分别将隐式公钥证书分别发送给用户A和用户B。
本发明还提供了一种基于隐式公钥证书的双方认证密钥协商方法的系统,所述系统包括需要进行认证密钥协商的双方用户端,及为双方生成隐式公钥证书的可信机构,
所述可信机构包括系统参数生成模块,用于随机生成系统主密钥,生成并公布系统参数;身份核实模块,用于核实用户端身份;隐式公钥证书生成模块,用于利用主密钥进行签名得到隐式公钥证书,并将隐式公钥证书发给用户端;所述用户端均包括部分公钥/私钥对生成模块,用于根据随机生成的用户端部分私钥得到相应的部分公钥,并将相应部分公钥及用户端身份信息发送给所述可信机构;临时公钥/私钥对生成模块,用于根据随机生成临时私钥,得到相应的临时公钥,并将该临时公钥发送给另一用户端;共享密钥生成模块,用于根据所述临时公钥/私钥对生成模块发来的临时公钥进行计算,得到共享密钥。
本发明同Smart身份基协议相比,都采用了椭圆曲线上的双线性配对,因此下文将主要通过与Smart协议的比较,来分析本发明的优点。
1.协议的安全性由Gentry的安全加密方案可知,KAB的计算式中的第一个双线性配对值,只能由用户端B利用其部分私钥sB计算出来。而KBA计算式中的第一个双线性配对值,也只能由用户端A利用其部分私钥sA计算出来。因此,KAB与KBA的值不可能被任何第三方获得。这也就表明了协议的安全性。
2.运行性能首先,从计算负荷上来看,本发明满足“角色对称”性质,即用户端A和B在协议的运行过程中,计算负荷完全相同。同Smart协议,本发明的每一方也只需要计算两个双线性配对,也就是说本发明在计算上同Smart协议一样高效。
其次,在通信带宽方面,第一,本发明满足“消息独立”性质,即用户端A和B所发送的协议消息,不依赖于他们所接收到的协议消息。第二,在发送的数据量上,本发明完全等同于Smart协议,即协议的总共通信数据量为群G1上的两个群元素(即TA和TB)。
综上所述,本发明所述方法的主要有益技术效果有以下3点第一,采用Gentry隐式公钥证书,避免了协议的双方在使用对方的公钥时,对TA签名的验证,大大提高了用户端的计算效率。
第二,消除了身份基密钥协商协议中的会话密钥托管问题。由于TA无法得到用户端的部分私钥,所以它不能计算出系统内任何两个用户端之间的共享会话密钥。
第三,隐式公钥证书的分发相对于身份基协议来说,除去了对安全信道的需求,大大降低了分发难度,提高了系统整体效率。


图1为本发明所述的第一阶段系统初始化及用户端注册的流程图;图2为本发明所述的第二阶段隐式公钥证书生成及分发的流程图;图3为本发明所述的第三阶段认证密钥协商的流程图;图4为本发明所述系统的方框图。
具体实施例方式
下面结合附图来进一步说明本发明。
基于传统公钥基础设施PKI的公钥,用户端在使用前,例如向某个用户端发送加密消息或者验证其签名之前,要对该用户端的公钥进行验证。而这样的验证过程,必将包括对证书授权中心CA签名的验证。但签名的验证一般是一个计算量较大的计算过程。
本发明所述方法在密钥协商协议的过程中,采用隐式认证公钥,使得用户端在使用公钥之前,不需要进行显示的公钥认证(即CA签名的验证),这大大减轻了用户端的计算负担,提高了用户端在进行密钥协商时的计算效率。本发明采用的隐式认证公钥在被使用的过程,其真实性及有效性同时得以验证。
在基于身份的密码体制中,无论对私钥生成中心(Private key generator)采用层次式或者分散式的管理模式,都不可能完全消除密钥托管这一难题。在某些应用场合,比如一个集中管理下的公司或者部门,密钥托管是一个很好的属性。但是,对于另外的一些应用场合,例如电子邮件系统、安全文件传输系统,密钥托管却变得让人无法接受。
本发明采用Gentry在2003年欧洲密码学会议上首次提出的一种全新隐式认证公钥,构造了一个全新的密钥协商协议,既解决了密钥托管问题,又使得用户端避免了对公钥进行验证,减轻了用户端的计算负担。Gentry的新型隐式公钥证书的具体细节可参见文献(C.Gentry.Certificate-based encryption and the certificate revocationproblem,Proc.of Eurocrypt’03,LNCS 2656,Springer-Verlag,pp.272-293,2003)。
本发明所述的基于Gentry隐式公钥证书的双方认证密钥协商方法,包括三方用户端A和B以及一个可信机构(Trusted Authority,TA)。其中用户端A和B可以是能够执行相应软件程序的普通计算机或具有类似信息处理功能的装置,如笔记本电脑、PDA等,可信机构TA一般由执行相应服务程序的服务器来实现,它为协议双方生成隐式公钥证书。
具体说来,本发明所述方法可分为以下三个阶段第一阶段,系统初始化及用户端注册令e是群G1和G2上的双线性配对,q是一个素数,为两个群的阶。
可信机构TA执行以下步骤,参见图111)随机选择群G1的一个生成元P,一个主密钥s,s∈Zq*,]]>并计算系统公钥PPub=sP;12)选择一个密码哈希函数H1满足H1:{0,1}*→G1;13)最后,TA公布系统参数params,params=<G1,G2,e,P,PPub,H1>。
设用户端A和B的身份信息分别为IDA和IDB。A和B执行以下步骤14)分别随机生成自己的部分私钥sA,sB∈Zq*,]]>并计算相应的部分公钥PA=sAP,PB=sBP;15)分别将他们的部分公钥公布出去,例如通过公开目录公布出去;16)分别向可信机构TA提交身份信息IDA和IDB及相应部分公钥PA,PB,以申请隐式公钥证书。
第二阶段,隐式公钥证书生成及分发可信机构TA执行下列步骤,为用户端A和B生成并分发隐式公钥证书,参见图221)核实用户端A和B的真实身份(可通过检查身份信息,例如身份证件实现),若核实过程通过,可信机构TA计算哈希值QID=H1(ID,PID)∈G1,其中ID∈{IDA,IDB};22)利用主密钥s对哈希值QID进行签名,得到隐式公钥证书CertID(CertID=sQID);23)通过公开信道,分别将CertID相应的发送给用户端A和B。
由此,用户端A和B的隐式公钥证书分别为CertA、CertB。注意,这里的证书发送过程,同传统PKI中的显式公钥证书的发送一样,不需要安全信道。而在身份基密码体制中,隐式公钥证书(也即用户端的私钥)在发送过程中,需要用到用户端与PKG之间的安全信道。而安全信道的建立,是一件不容易的事情。
第三阶段,认证密钥协商在进行密钥协商之前,用户端A和B也分别计算哈希值QID=H1(ID,PID)∈G1,其中ID∈{IDA,IDB}。接着,他们分别利用自己的部分私钥sA和sB计算sAQA和sBQB。为了生成一个共享的会话密钥,用户端A和B首先分别随机生成一个临时私钥a和b(a,b∈Zq*),]]>并计算相应的临时公钥TA与TB,其中TA=aP,TB=bP。用户端A和B执行以下步骤,参见图331)用户端A将TA通过公丌信道发送给用户端B;32)用户端B将TB通过公丌信道发送给用户端A;33)在收到TB之后,用户端A计算共享密钥KAB如下KAB=e(aQB,PPub+PB)·e(TB,CertA+sAQA);34)完全类似地,用户端B在收到用户端A发来的TA之后,计算共享密钥KBA如下KBA=e(bQA,PPub+PA)·e(TA,CertB+sBQB)。
容易验证,e(aQB,PPub+PB)=e(aQB,sP+sBP)=e(QB,(s+sB)aP)=e(aP,(s+sB)QB)=e(TA,CertB+sBQB)。
即,KAB中的第一个双线性配对值等于KBA中的第二个双线性配对值。完全类似地,可验证KAB中的第二个配对值等于KBA中的第一个配对值。所以,可以得出结论KAB=KBA,也就是说,在通过执行一次上述协商过程之后,用户端A和B确实协商获得了一个共享密钥。
在实际应用过程当中,为了消除共享密钥KAB、KBA中可能存在的一些弱比特位,可以利用一个密钥抽取函数(Key Derivation Function,kdf)对共享密钥KAB和KBA进行处理,由公式sk=kdf(KAB)=kdf(KBA)计算出最终的共享会话密钥sk。
另外,为了防止某些可能的攻击(如未知密钥共享攻击),还可以将用户端A和B的身份信息作为密钥抽取函数kdf输入值。这样,最终的共享会话密钥sk由下式计算得出sk=kdf(IDA,IDB,KAB)=kdf(IDA,IDB,KBA)。
另外,基于在本发明所述的双方认证密钥协商方法,利用目前文献中比较通用的办法,采用一个报文认证函数(MAC,message authentication code)(一般由一个带密钥的密码哈希函数来构造),本发明所述方法还可以容易被转化为一个带消息确认(KeyConfirmation)的三次消息传递方法,这里就不再赘述。
另外,本发明还提供了一种基于隐式公钥证书的双方认证密钥协商方法的系统,如图4所示,所述系统包括需要进行认证密钥协商的用户端A和用户端B,以及为双方生成隐式公钥证书的可信机构。
所述可信机构包括系统参数生成模块,用于首先随机生成系统主密钥,然后生成并公布系统参数;身份核实模块,用于核实用户端A和用户端B的身份;隐式公钥证书生成模块,用于利用主密钥进行签名得到隐式公钥证书,并通过公开信道分别将隐式公钥证书发给用户端A和用户端B。所述的系统公钥生成模块、身份核实模块和隐式公钥证书生成模块。
所述用户端A包括部分公钥/私钥对生成模块,用于首先随机生成用户端A的自选部分私钥,然后根据这一部分私钥计算相应的部分公钥,并将相应部分公钥及用户端A的身份信息发送给所述可信机构;临时公钥/私钥对生成模块,用于首先随机生成临时私钥,然后根据这一临时私钥计算相应的临时公钥,并将它通过公开信道发送给用户端B;共享密钥生成模块,用于根据用户端B发来的临时公钥进行计算,得到共享密钥。
所述用户端B也包括部分公钥/私钥对生成模块,用于首先随机生成用户端B的自选部分私钥,然后根据这一部分私钥计算相应的部分公钥,并将相应部分公钥及用户端B的身份信息发送给所述可信机构;临时公钥/私钥对生成模块,用于首先随机生成临时私钥,然后根据这一临时私钥计算相应的临时公钥,并将它通过公开信道发送给用户端A;共享密钥生成模块,用于根据用户端A发来的临时公钥进行计算,得到共享密钥。
对本技术领域的普通技术人员来说,根据上述典型实施例可以很容易地联想到其他的优点和变形。因此,本发明并不局限于上述实施例,该实施例仅是对本发明的一种形态进行详细、示范性的说明。在不背离本发明宗旨的范围内,本领域普通技术人员可以通过各种等同替换得到类似的技术方案,但是这些技术方案均应该包含在本发明的权利要求的范围及其等同的范围之内。
权利要求
1.基于隐式公钥证书的双方认证密钥协商方法,其特征在于,包括以下步骤步骤A可信机构利用随机生成的系统主密钥生成并公布系统参数;用户端A和B根据各自随机生成的部分私钥得到相应的部分公钥,并分别向可信机构提交身份信息及相应部分公钥;步骤B所述可信机构核实用户端A和B的真实身份后,根据用户端A和B的身份信息及其各自部分公钥得到隐式公钥证书,并相应地分发给用户端A和B;步骤C用户端A和B分别利用随机生成的临时私钥得到相应的临时公钥,并分别根据对方的临时公钥、双方的部分公钥及系统参数,并利用各自的部分私钥、临时私钥及隐式公钥证书,获得共享密钥。
2.根据权利要求1所述的基于隐式公钥证书的双方认证密钥协商方法,其特征在于所述步骤B中的得到隐式公钥证书具体包括根据用户端A和B的身份信息及其各自部分公钥,分别为用户端A和B计算一个哈希值QID,并利用系统主密钥对哈希值QID进行签名得到隐式公钥证书。
3.根据权利要求1所述的基于隐式公钥证书的双方认证密钥协商方法,其特征在于所述用户端A和B通过公开目录分别将他们的部分公钥公布出去。
4.根据权利要求1所述的基于隐式公钥证书的双方认证密钥协商方法,其特征在于所述可信机构通过检查身份信息核实用户端A和B的真实身份。
5.根据权利要求1所述的基于隐式公钥证书的双方认证密钥协商方法,其特征在于所述方法还包括利用密钥抽取函数kdf对共享密钥进行处理,获取共享会话密钥的步骤。
6.根据权利要求1所述的基于隐式公钥证书的双方认证密钥协商方法,其特征在于所述方法还包括利用密钥抽取函数kdf对共享密钥进行处理,并将用户端A和B的身份信息作为密钥抽取函数kdf输入值,获取共享会话密钥的步骤。
7.根据权利要求1所述的基于隐式公钥证书的双方认证密钥协商方法,其特征在于,通过公开信道分别将隐式公钥证书分别发送给用户A和用户B。
8.基于隐式公钥证书的双方认证密钥协商方法的系统,其特征在于,所述系统包括需要进行认证密钥协商的双方用户端,及为双方生成隐式公钥证书的可信机构,所述可信机构包括系统参数生成模块,用于随机生成系统主密钥,生成并公布系统参数;身份核实模块,用于核实用户端身份;隐式公钥证书生成模块,用于利用主密钥进行签名得到隐式公钥证书,并将隐式公钥证书发给用户端;所述用户端均包括部分公钥/私钥对生成模块,用于根据随机生成的用户端部分私钥得到相应的部分公钥,并将相应部分公钥及用户端身份信息发送给所述可信机构;临时公钥/私钥对生成模块,用于根据随机生成临时私钥,得到相应的临时公钥,并将该临时公钥发送给另一用户端;共享密钥生成模块,用于根据所述临时公钥/私钥对生成模块发来的临时公钥进行计算,得到共享密钥。
全文摘要
基于隐式公钥证书的双方认证密钥协商方法及系统,属于网络通信技术领域。为了解决现有技术中的公钥验证问题和密钥托管问题,本发明公开了一种基于隐式公钥证书的双方认证密钥协商方法,该方法通过系统初始化及用户端注册,隐式公钥证书生成及分发,认证密钥协商三个阶段,综合利用传统PKI和身份基的密码方案,一方面消除不必要的密钥托管性质,另一方面又能保持部分身份基密码的优点。另外,本发明还公开了一种实现基于隐式公钥证书的双方认证密钥协商方法的系统。
文档编号H04L9/30GK1889433SQ200610103340
公开日2007年1月3日 申请日期2006年7月20日 优先权日2006年7月20日
发明者曹珍富, 董晓蕾, 王圣宝, 郑志彬, 位继伟 申请人:上海交通大学, 华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1