一种基于身份的认证密钥协商方法

文档序号:7890752阅读:196来源:国知局
专利名称:一种基于身份的认证密钥协商方法
技术领域
本发明涉及信息安全与通信技术领域,特别涉及一种基于身份公钥密码体制和使用椭圆曲线双线性映射、针对两方实体、分布式环境的认证密钥协商方法。
背景技术
认证密钥协商是密码学中的基本原语,通过协商会话密钥可实现多种功能,如身份认证、密钥确认、数据加密等,研究高效可行的安全认证密钥协商协议也是分布式网络安全重要成分。基于公钥基础设施(PKI)的密码系统存在计算成本高、存储开销大的缺点,为了简化PKI,Shamir提出了基于身份(ID)密码系统的概念,用户使用自己的ID信息如电子邮件、电话号码、办公室地址、IP地址等生成公钥。基于椭圆曲线的密码系统使用小密钥,就能得到与RSA加密算法和ELGamal加密算法相同的安全级别。目前,基于身份的认证密钥协商协议(IBAKA)都具有隐式认证性,即参与方能确保除了另一个参与方以外其它实体无法计算出会话密钥,满足已知会话密钥安全、前向安全、未知密钥共享等安全属性。但协议的设计者通常不考虑拒绝服务的问题,即任何遵守协议的非法实体都能向合法实体发起会话,虽然非法实体无法计算出会话密钥,但合法实体却无法拒绝会话请求。由于合法实体不具有拒绝非法实体的能力,有可能存在拒绝服务攻击的风险。合法实体虽然可以通过协商后的会话密钥进行身份验证或密钥确认,以拒绝非法实体,但通信参与方需要至少三次的消息交互,通信开销较大,所以研究需要两次消息交互并具有拒绝非法用户功能的IBAKA协议对于安全通信具有重要的理论价值和实际意义。2007年,Chen等改进了 CK协议(Chen,Kudla等提出的认证密钥协商协议),并提出了一种增强型的CK协议(简称eCK),该协议不仅满足密钥协商协议所有的安全属性,而且可以拒绝不遵守协议的非法实体,但对了解协议的攻击者却无能为力。2008年,孙纪敏等在Zheng等签密方案的基础上设计了一个基于身份的认证及密钥协商协议(简称为IBAKA-S),该协议不仅具有完美前向保密性,还节省了建立和管理公钥基础设施的代价。然而该方案存在遭受密钥泄露伪装攻击和临时密钥泄露攻击的风险。2009年,曹天杰等基于保护用户隐私的考虑,提出了一个增强用户隐私的认证密钥协商协议,该协议满足双向身份认证、用户身份前向匿名、不可关联和否认性等安全属性,但该协议需要三次消息的交互,通信成本较高。2011年,Holbl等基于Hess的签名方案设计了一个更安全的认证密钥协商方案,该协议满足基本的安全属性,能抵抗密钥泄露伪装攻击,但该方案也存在着临时密钥泄露攻击的威胁。IBAKA-S协议是在Zheng签密方案的基础上,基于ID公钥密码体制提出的认证及密钥协商协议。IBAKA-S协议需要一个可信的密钥生成中心(KGC),通信实体A和通信实体B。协议过程由系统参数初始化阶段、认证与密钥协商阶段组成。系统参数初始化具体为KGC构建阶为q,且满足以下映射关系^G1XG1 46,的加法群G1和乘法群Gt,其中,q是一个预先设置的大素数,G1的生成元是P。随机选取私钥%口:7,其中,口:7={1,2,...4-1},是非零的整数群。KGC生成不带密钥的单向哈希函数Htl: {O,1}* —G1和尽{0,1广4^,{0,1}*是指非零的字符串。Hk(·)是一个带密钥k的单向哈希函数,计算公钥Ppub = sP。实体A的公钥Qa = H0 (IDa),其中,IDa是实体A的身份信息,实体A的私钥Sa = sQa。实体B的公钥Qb = H0 (IDb),其中,IDb是实体B的身份信息,实体B的私钥Sb = sQb图I是现有技术提供的认证与密钥协商阶段的流程图,如图I所示,该流程包括以下步骤步骤SlOl :实体A生成签名信息、临时公钥并发送给实体B。实体A随机选取临时私钥计算哈希密钥A =尽( 低,i^)a),其中Qb e G1,Ppub e G1, : G1 XG1 4 Gr,a是临时密钥,用临时私钥a对Gt群的元素进行指数运算,再进行哈希运算。临时公钥Ta = aP,字符串签名信息Ssig_A = aPpub-SA e G1,点值签名信息Ia =Hk(TA Il Ssig_A),并将临时公钥、字符串签名信息、点值签名信息<TA,Ssig_A,IA>发送给实体B。步骤S102,实体B根据收到的消息计算点值签名信息/二。实体B收到消息后,根据消息中携带的字符串签名信息Ssig_A计算实体B的哈希密钥V =尽( 低(仏, )),并根据消息中携带的临时公钥Ta及字符串签名信息Ssig_A计算点值签名信息< =Hk(TA ||&—J。其中,Qa是实体A的公钥,KGC下所有用户都知道其他用户的公钥,这是基于身份的密码体制的优点,即不需要PKI中的证书传输用户的公钥,任何用户都可以利用已知算法计算出其他用户的公钥。步骤S103,实体B验证实体A身份是否合法。实体B根据公式/』=/〗是否成立验证实体A的身份是否合法,如果成立则实体A身份合法,执行步骤S104,否则终止协议。步骤S104,实体B生成实体B的临时公钥、签名信息并发送给实体A。实体B随机选取临时私钥k □;,并根据临时私钥计算哈希密钥l = H](e(QB,Ppub)b)、临时公钥Tb = bP、字符串签名信息Ssig_B = bPpub_SB e G”点值签名信息Ib = H1 (TB Il Ssig_B),并将实体B的临时公钥、字符串签名信息、点值签名信息<TB,Ssig_B,IB>发送给实体A。步骤S105,实体A根据收到的消息计算签名信息。实体A收到消息后,根据消息中携带的实体B的信息计算实体A的哈希密钥i = H\(e(QA,SMg_B)-e(QB,SA)),并根据消息中携带的实体B的临时公钥Tb及字符串签名信息Ssig-B计算实体B的点值签名彳目息A = Hr(TB I) Ssig_B)。步骤S106,实体A验证实体B身份是否合法。实体A验证& = /〗是否成立,如果成立则实体B身份合法,执行步骤S107,否则终止协议。步骤S107,实体A计算会话密钥。由于Β)· 低, )= 低,所以当交换完信息后,实体A可以计算出会话密钥K = aTB = abPo
步骤S108,实体B计算会话密钥。实体B计算会话密钥K = bTA = abPo 0028]IBAKA-S协议在会话密钥计算中使用临时密钥与对方临时公钥进行点乘,所以能够满足会话密钥完美前向安全性;然而,Hou等2010年提出了临时密钥泄露攻击的安全属性通信双方的临时密钥的泄露不能泄露会话密钥,而IBAKA-S协议的会话密钥决定于临时密钥,因此无法抵抗这种攻击。除此之外,经分析还可以发现,如果攻击者拥有了一个实体的长期私钥,便可以伪装成其它用户与此用户通信,即IBAKA-S不具有密钥泄露伪装攻击安全属性。图2是IBAKA-S密钥泄露伪装攻击的流程图。密钥泄露伪装攻击是假定攻击者C知道实体A的私钥,那么攻击者C就可以伪装成任何一个可信实体主动与A建立会话,或被动接受A建立的会话。但无论哪种情况,A都能成功认证C,C也会计算出会话密钥。例如,C想伪装成B被动的与A建立通信,当A向B发出消息,C就截取消息进行攻击,如图2所示,伪装攻击的流程为步骤S201 :攻击者C计算临时公钥、签名信息并发送给实体A。 攻击者C随机选择临时私钥 e □:,和随机数V e □:,计算哈希密钥/ =,计算临时公钥Tb = bP,字符串签名信息Ssig_B = vQa e G1,点值
签名信息Ib = H1 (TB Il Ssig_B),并将临时公钥、字符串签名信息、点值签名信息<TB,Ssig_B,IB>发送给实体A并执行步骤S205。步骤S202 :实体A计算点值签名信息。实体A收到消息后,计算实体A的哈希密钥=&)),并进一步计算4=^(7; Il J。步骤S203,实体A验证攻击者C的身份信息。实体A根据公式是否成立验证攻击者C的身份信息,由于/'=丑间=低A)) = /,4 =A,因此,实体 A 验证攻击者C的身份通过,执行步骤S204。步骤S204 :实体A计算会话密钥K = aTB = abP。步骤S205 :攻击者C计算会话密钥K = bTA = abP。

发明内容
本发明的目的在于提供一种基于身份的认证密钥协商方法,能更好地解决IBAKA协议存在的拒绝服务攻击、密钥泄露伪装攻击或临时密钥泄露攻击风险问题。根据本发明的一个方面,提供了一种基于身份的认证密钥协商方法,所述方法包括发送端用户生成用于验证发送端用户身份的第一验证数据,并将所述第一验证数据发送给所述接收端用户;所述接收端用户根据所接收到的第一验证数据对发送端用户身份进行合法性验证;如果接收端用户验证发送端用户身份合法,则生成不包含发送端用户私钥信息的第二验证数据,并将所述第二验证数据发送给所述发送端用户,同时生成接收端的会话密钥;所述发送端用户根据所接收到的第二验证数据对接收端用户身份进行合法性验证,如果发送端用户验证接收端用户身份合法,则生成发送端的会话密钥。其中,生成第一验证数据的步骤之前还包括密钥中心KGC生成公共参数,其中,所述公共参数包括计算用户公钥的哈希函数Hl {O, I}*-G1、计算会话密钥的哈希函数^ =RirXG1XG1XGr 、计算签名信息的哈希函数I3: G1XG1 ;、KGC的公钥Ppub、双线性对 : G1XG1 Gr、阶数为q的加法群G1、阶数为q的乘法群GpG1的生成元P,其中,{1,2,3,...,g}是非零的整数群;发送端用户向KGC发送询问公共参数和申请私钥的请求; KGC接收到所述发送端用户的请求后生成发送端用户的私钥Sa并将所述公共参数和发送端用户私钥Sa发送给发送端用户。其中,生成并发送第一验证数据的步骤包括发送端用户选取随机数X,并根据所述随机数X、所接收到的公共参数和发送端用户私钥Sa计算第一临时公钥Ta = xP、第二临时公钥Ua = XH1 (IDa)、发送端用户的签名信息Va = xPpub+SAH3(TA, UA),其中IDa是发送端用户的身份ID ;发送端用户将所述第一临时公钥Ta、第二临时公钥Ua、发送端用户的签名信息Va发送给接收端用户。其中,接收端用户验证发送端用户身份的步骤包括接收端用户接收到发送端用户发送的第一临时公钥Ta、第二临时公钥Ua、发送端用户的签名信息Va;接收端用户根据兴5,巧=汉2^+0#3(2^凡),/^)验证发送端用户的身份是否合法,其中Qa = H1(IDa)是发送端用户的公钥。其中,生成第二验证数据的步骤之前还包括接收端用户向KGC发送询问公共参数和申请私钥的请求;KGC接收到所述接收端的请求后生成接收端用户的私钥Sb并将所述公共参数和接收端用户私钥Sb发送给接收端用户。其中,接收端用户验证发送端用户身份合法后生成并发送第二验证数据的步骤包括接收端用户选取接收端的随机数y,并根据所述接收端随机数y、所接收到的公共参数和接收端用户私钥Sb计算第三临时公钥Tb = yP、第四临时公钥Ub = YH1 (IDb)、接收端用户的签名信息Vb = yPpub+SBH3(TB, UB),其中IDb是接收端用户的身份ID ;接收端用户将所述第三临时公钥TB、第四临时公钥Ub、接收端用户的签名信息Vb发送给发送端用户。其中,发送端用户验证接收端用户身份是否合法的步骤包括发送端用户接收到接收端用户发送的第三临时公钥TB、第四临时公钥Ub、接收端用户的签名信息Vb;发送端用户根据公式汉匕,巧=汉2;+込年(7;,173),/^)验证接收端用户的身份是否合法,其中Qb = H1(IDb)是接收端用户的公钥。其中,发送端用户验证接收端用户身份合法后还包括发送端用户根据公式=H2H Dj,IDb,Uj,Ub,e(SA, xt/B))计算会话密钥;接收端用户根据公式SKba = H1 (IDa , IDb ,Ua,Ub, e(yUA, Se ))计算会话密钥。其中,所述第一验证数据根据KGC的公钥、发送端用户的私钥、发送端用户的临时私钥、发送端用户的公钥生成;所述第二验证数据根据KGC的公钥、接收端用户的私钥、接收端用户的临时私钥、接收端用户的公钥生成。其中,所述接收端用户根据所接收到的第一验证数据及所述发送端用户的公钥对发送端用户身份进行合法性验证;所述发送端用户根据所接收到的第二验证数据及所述接收端用户的公钥对接收端用户身份进行合法性验证。与现有技术相比较,本发明的有益效果在于具有已知密钥安全、完美密钥前向安全、抗未知密钥共享、抗密钥泄露伪装攻击、抗中间人攻击、抗被动攻击、抗临时密钥泄露攻击、抗拒绝服务攻击的有益效果。


图I是现有技术提供的认证与密钥协商阶段的流程图;图2是IBAKA-S密钥泄露伪装攻击的流程图;图3是本发明实施例提供的认证密钥协商阶段的流程图。
具体实施例方式以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。本发明实施例提供的一种基于身份的认证密钥协商过程包括三个阶段,系统初始化阶段、密钥提取阶段、认证密钥协商阶段。系统初始化阶段具体为KGC产生签名方案的公共参数和私钥,然后公开公共参数并保留私钥。KGC构建阶为q,且满足双线性对 : G1 XG1 4 67的加法群G1和乘法群GT,其中,q是一个预先设置的大素数,G1的生成元是P。随机选取私钥其中,0:=(1,2,
是非零的整数群,根据私钥s和生成元P计算公钥Ppub = sP。KGC选择用于计算用户公钥的哈希函数H1 : {0,1}* — G1、用于计算会话密钥的哈希函数^XG1 XGr;和
用于计算签名信息的哈希函数I3 =G1XG1 其中H2( ·)是一个单向的密钥生成函数。KGC 公开公共参数< P,,G1,Gr,S,i^,ii2,ii3 >,保留私钥 S。密钥提取阶段具体为当用户i入网时,向KGC提交身份标识IDit5 KGC计算用户i的公钥Qi =H1 (IDi),私钥Si = SQi,并将生成的公共参数和用户的私钥通过安全信道发送给用户i。具体到发送端用户A,在入网时向KGC发送询问公共参数和申请私钥的请求,KGC接收到所述发送端用户A的请求后生成发送端用户的私钥Sa = sQa并将所述公共参数和发送端用户私钥Sa发送给发送端用户,其中Qa是发送端用户A的公钥,Qa = H1 (IDa),IDa是发送端用户A的身份ID。具体到接收端用户B,在入网时向KGC发送询问公共参数和申请私钥的请求,KGC接收到所述接收端的请求后生成接收端用户的私钥Sb = sQb并将所述公共参数和接收端用户私钥Sb发送给接收端用户。其中Qb是接收端用户B的公钥,Qb =H2(IDb),IDb是接收端用户B的身份信息。 图3是本发明实施例提供的认证密钥协商阶段的流程图,如图3所示,所述流程包括步骤S301,发送端用户A生成第一临时公钥、第二临时公钥、签名信息并发送给接收端用户B。发送端用户A获得公共参数和发送端用户A的私钥Sa后,随机选取随机数xe □;作为临时私钥,然后,根据所选取的临时私钥X、发送端用户A的私钥Sa和公钥Qa以及公共参数计算第一临时公钥、第二临时公钥及发送端用户A的签名信息。具体地说,根据临时私钥X、公共参数中的生成元P计算第一临时公钥Ta = xP,根据临时私钥X、公共参数中的H1以及接收端用户A的身份ID计算第二临时公钥Ua = xQa = XH1 (IDa),根据公共参数中的H3以及第一临时公钥Ta、第二临时公钥Ua计算哈希值h = H3 (TA, Ua),根据公共参数中的公钥Ppub、临时密钥X、发送端用户A的私钥Sa以及哈希值h计算签名信息Va = xPpub+hSA。最后,将包括第一临时公钥Ta、第二临时公钥Ua、发送端用户A的签名信息Va的第一验证数据<TA,UA, Va>发送给接收端用户B。步骤S302,接收端用户B验证发送端用户A的身份是否合法。接收端用户B接收到发送端用户A的第一验证数据后,根据该数据中的Ta和Ua计算哈希值h = H3 (TA, Ua),^eD;。接收端用户B根据是否成立验证发送端用户A的身份是否合法,如果上述公式成立则发送端用户A的身份合法,执行步骤S303,否则结束流程。步骤S303 :接收端用户B生成第三临时公钥、第四临时公钥、接收端用户B的签名信息并发送给发送端用户Α。接收端用户B随机选取随机数Je □;作为临时私钥,计算第三临时公钥Tb = yP,第四临时公钥Ub = yQB,哈希值h = H3 (TB, Ub),接收端用户B的签名信息Vb = yPpub+hSB,并将包括第三临时公钥TB、第四临时公钥Ub、接收端用户B的签名信息Vb的第二验证数据<TB,UB, Vb>发送给发送端用户A。接收端用户B执行步骤S306。步骤S304 :发送端用户A验证接收端用户B的身份。发送端用户A接收到接收端用户B的消息后,根据消息中携带的第三临时公钥TB、第四临时公钥Ub计算哈希值h = H3 (TA,Ua)。发送端用户A根据公式兴匕巧=是否成立验证接收端用户B的身份是否合法,如果上述公式成立则接收端用户B的身份合法,执行步骤S305,否则终止流程。步骤S305 :发送端用户A生成会话密钥。发送端用户A 计算& =e(SA,xUB),生成会话密钥 SKab = H2 (IDa, IDb, Ua, Ub, Kab)。
步骤S306 :接收端用户B生成会话密钥。接收端用户B 计算,生成会话密钥SKBA = H2(IDa, IDb, Ua, Ub,Kba)。 综上所述,本发明通过生成不包含对端私钥的身份验证数据和利用本端私钥、临时密钥、对端公钥使用双线性映射的会话密钥协商算法,解决了 IBAKA协议存在的拒绝服务攻击、密钥泄露伪装攻击或临时密钥泄露攻击风险问题,具有已知密钥安全、完美密钥前向安全、抗未知密钥共享、抗密钥泄露伪装攻击、抗中间人攻击、抗被动攻击、抗临时密钥泄露攻击、抗拒绝服务攻击的有益效果。尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。
权利要求
1.一种基于身份的认证密钥协商方法,其特征在于,所述方法包括发送端用户生成用于验证发送端用户身份的第一验证数据,并将所述第一验证数据发送给所述接收端用户;所述接收端用户根据所接收到的第一验证数据对发送端用户身份进行合法性验证;如果接收端用户验证发送端用户身份合法,则生成不包含发送端用户私钥信息的第二验证数据,并将所述第二验证数据发送给所述发送端用户,同时生成接收端的会话密钥;所述发送端用户根据所接收到的第二验证数据对接收端用户身份进行合法性验证,如果发送端用户验证接收端用户身份合法,则生成发送端的会话密钥。
2.根据权利要求I所述的方法,其特征在于,生成第一验证数据的步骤之前还包括密钥中心KGC生成公共参数,其中,所述公共参数包括计算用户公钥的哈希函数H1 {0,1}* —G1、计算会话密钥的哈希函数足{O,If计算签名信息的哈希函数巧.-G1XG1Wl、KGC的公钥Ppub、双线性对 : G1XG1 ^Gr、阶数为q的加法群G1、阶数为q的乘法群GpG1的生成元P,其中,={U,3,…,的是非零的整数群;发送端用户向KGC发送询问公共参数和申请私钥的请求;KGC接收到所述发送端用户的请求后生成发送端用户的私钥Sa并将所述公共参数和发送端用户私钥Sa发送给发送端用户。
3.根据权利要求2所述的方法,其特征在于,生成并发送第一验证数据的步骤包括发送端用户选取随机数X,并根据所述随机数X、所接收到的公共参数和发送端用户私钥Sa计算第一临时公钥Ta = xP、第二临时公钥Ua = XH1 (IDa)、发送端用户的签名信息Va =xPpub+SAH3 (TA,UA),其中IDa是发送端用户的身份ID ;发送端用户将所述第一临时公钥Ta、第二临时公钥Ua、发送端用户的签名信息Va发送给接收端用户。
4.根据权利要求3所述的方法,其特征在于,接收端用户验证发送端用户身份的步骤包括接收端用户接收到发送端用户发送的第一临时公钥Ta、第二临时公钥Ua、发送端用户的签名信息Va ;接收端用户根据汾= +0^3(2^,验证发送端用户的身份是否合法,其中Qa = H1(IDa)是发送端用户的公钥。
5.根据权利要求4所述的方法,其特征在于,生成第二验证数据的步骤之前还包括接收端用户向KGC发送询问公共参数和申请私钥的请求;KGC接收到所述接收端的请求后生成接收端用户的私钥Sb并将所述公共参数和接收端用户私钥Sb发送给接收端用户。
6.根据权利要求5所述的方法,其特征在于,接收端用户验证发送端用户身份合法后生成并发送第二验证数据的步骤包括接收端用户选取接收端的随机数1,并根据所述接收端随机数y、所接收到的公共参数和接收端用户私钥Sb计算第三临时公钥Tb = yP、第四临时公钥Ub = YH1 (IDb)、接收端用户的签名信息Vb = yPpub+SBH3(TB, UB),其中IDb是接收端用户的身份ID ;接收端用户将所述第三临时公钥TB、第四临时公钥Ub、接收端用户的签名信息Vb发送给发送端用户。
7.根据权利要求6所述的方法,其特征在于,发送端用户验证接收端用户身份是否合法的步骤包括发送端用户接收到接收端用户发送的第三临时公钥Tb、第四临时公钥Ub、接收端用户的签名信息Vb ;发送端用户根据公式^;,Ρ) = (ΓΒ+ρ#3(ΓΒ,Ι7Β),/^)验证接收端用户的身份是否合法,其中Qb = H1(IDb)是接收端用户的公钥。
8.根据权利要求7所述的方法,其特征在于,发送端用户验证接收端用户身份合法后还包括发送端用户根据公式1#=馬XCZb))计算会话密钥;接收端用户根据公式SKm = H2 (IDa,IDb ,Ua,Ub, e(yUA,Se ))计算会话密钥。
9.根据权利要求I所述的方法,其特征在于,所述第一验证数据根据KGC的公钥、发送端用户的私钥、发送端用户的临时私钥、发送端用户的公钥生成;所述第二验证数据根据KGC的公钥、接收端用户的私钥、接收端用户的临时私钥、接收端用户的公钥生成。
10.根据权利要求9所述的方法,其特征在于,所述接收端用户根据所接收到的第一验证数据及所述发送端用户的公钥对发送端用户身份进行合法性验证;所述发送端用户根据所接收到的第二验证数据及所述接收端用户的公钥对接收端用户身份进行合法性验证。
全文摘要
本发明公开了一种基于身份的认证密钥协商方法,该方法包括发送端用户生成用于验证发送端用户身份的第一验证数据,并将第一验证数据发送给接收端用户;接收端用户根据所接收到的第一验证数据对发送端用户身份进行合法性验证;如果接收端用户验证发送端用户身份合法,则生成不包含发送端用户私钥信息的第二验证数据,并将第二验证数据发送给发送端用户,同时生成接收端的会话密钥;发送端用户根据所接收到的第二验证数据对接收端用户身份进行合法性验证,如果发送端用户验证接收端用户身份合法,则生成发送端的会话密钥。本发明解决了IBAKA协议存在的拒绝服务攻击、密钥泄露伪装攻击或临时密钥泄露攻击的风险问题。
文档编号H04L9/32GK102624528SQ20121005426
公开日2012年8月1日 申请日期2012年3月2日 优先权日2012年3月2日
发明者倪评福, 吴作顺, 张建中, 徐启建 申请人:中国人民解放军总参谋部第六十一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1