一种基于身份可认证两方密钥协商方案
曹 阳, 邓方安, 陈 涛, 潘 平
【摘 要】[摘要] 为了降低计算开销,提高安全性,通过Diffie-Hellman协议建立密钥共享, 结合用户身份信息,以VBNN_IBS签名思想作为基础,提出了一种可认证的两方密钥协商方案。密钥生成中心KGC结合用户身份信息仅为用户生成部分私钥和公钥,其完整的私钥和公钥由用户结合自己的长期私钥生成,安全性基于椭圆曲线离散对数问题。方案中无双线性对运算,只需椭圆曲线上4次点乘运算、1次模运算、3次哈希运算,通信双方只需2次通信就可实现双方认证和密钥协商,提高了密钥产生的效率。分析表明,该方案具有完美前向保密性、抗密钥泄露伪装攻击、已知会话密钥通信安全、非密钥控制、抗重放攻击等安全属性。性能及安全性比较表明,该方案在安全性和性能方面具有较大的优势,适用于资源受限的无线网络通信环境中。 【期刊名称】成都理工大学学报(自然科学版) 【年(卷),期】2016(043)006 【总页数】5
【关键词】[关键词] 签名方案;椭圆曲线;身份认证;密钥协商
密钥协商[1-2]是密钥管理的重要组成部分,通过密钥协商可使多个用户在不安全信道上通信协商生成安全共享会话密钥。密钥协商设计思想提出以来,针对其安全性问题,大量学者对其进行研究,并取得了很多成果。如:基于传感器网络提出了一种密钥管理方案[3];为了降低公钥加密的计算开销提出了无双线性对的无证书密码体制[4],但运算量较大;无双线性对的认证密钥协商方案[5-6];利用身份加密建立了无线网络密钥协商方案[7-8],但计算开销较大;无证
书两密钥协商方案除去了双线性对运算[9],但该方案不能实现双向认证;协商方案无双线性对运算[10],但每次协商需要4次通信;文献[11]提出的方案效率虽然提高了,但每次协商需要3次通信;无证书密钥协商方案[12]存在双线性对运算。本文基于认证、通信等问题,基于用户身份,以椭圆曲线离散对数问题(elliptic curve discrete logarithm problem[13])的安全性作为保证,通过Diffie-Hellman协议建立密钥共享,以BNN-IBS[14]的变形方案VBNN-IBS[15]为基础,结合用户身份信息,提出了一种可认证的两方密钥协商方案。本方案的运算量低,通信双方只需2次通信就可实现双向认证和密钥协商,具有完美前向保密性、抗密钥泄露伪装攻击、已知会话密钥通信安全等安全属性。
1 背景知识
定义1(椭圆曲线):有限域Fq上的椭圆曲线[13,16]E(Fq)是满足a,b∈Fq,Δ=4a3+27b2≠0 modq的曲线:y2=x3+ax+b。无穷远点o与E(Fq)上的点构成n阶群,G为E(Fq)上的基点,p为G的阶,p为大素数,满足p2不被n整除,G1为由G生成的循环群。
定义2(椭圆曲线离散对数问题[13]):如果存在整数l (0 定义4(抗密钥泄露伪装攻击[3]):获得了用户UIDA的长期私钥xA和临时私钥aA的攻击者只具有冒充用户UIDA的能力,即攻击者不能伪造其他用户与用户UIDA生成会话密钥[3]。 定义5(已知密钥安全[3]):每一次密钥协商过程中,密钥协商双方都能独立生成唯一的共享会话密钥[3],即其他会话密钥的泄露不会影响密钥的安全性。 定义6(非密钥控制[3]):任何用户都不能强制会话密钥是一个预先确定的值。 定义7(未知密钥共享[3]):在用户UIDA不知道的情况下,不能强制用户UIDA与用户UIDB共享一个会话密钥。 2 VBNN_IBS签名方案 Bellar等[14]利用椭圆曲线上的点乘运算,基于身份信息,提出了一种签名方案——BNN_IBS[14]签名方案,并对其安全性作了证明。CAO 等[15]为了将BNN_IBS签名方案的签名长度由105 byte减少到83 byte,提出了BNN_IBS的变形方案——VBNN_IBS[15]签名方案。VBNN_IBS方案描述如下。 a.选取系统参数 在有限域Fq上选取椭圆曲线[13,16]E(Fq),G为E(Fq)上的基点,p为G的阶,且p为大素数,G1为由G生成的循环群;选取2个哈希函数H1和H2,其中;选取随机数为系统的私钥,K=kG为系统的公钥;公开参数〈E(Fq),G,p,K,H1,H2〉。 b.生成用户密钥 根据用户身份信息UIDi∈{0,1}*,密钥生成中心KGC选取随机数,计算R=rG, c=H1(UIDi‖R),d=r+ck modp,将私钥(R,d)通过安全信道发送给用户UIDi。 c.签名 用户UIDi选取随机数,计算Y=aG,h=H2(UIDi,m,R,Y),Q=a+hd,对消息m的签名为〈R,h,Q〉。 d.验证 根据公开参数、用户UIDi、消息m的签名〈R,h,Q〉,计算c=H1(UIDi‖R),验证h=H2(UIDi,m,R,QG-h(R+cK))是否成立。若成立,则接收消息,否则放弃。 3 密钥协商方案 方案主要包括初始化、用户密钥生成、密钥协商3个部分。为了进一步增加方案的安全性,在用户密钥生成时增加了长期私钥和临时私钥。 3.1 初始化 在有限域Fq上选取椭圆曲 E(Fq),G为E(Fq)上的基点,p为G的阶,且p为大素数,G1为由G生成的循环群;选取2个哈希函数H1和H2,其中;选取随机数作为系统的私钥,K=kG作为系统的公钥;公开〈E(Fq),G,p,K,H1,H2〉。 3.2 用户密钥生成 根据用户身份信息UIDi∈{0,1}*,KGC选取随机数,计算Ri=riG, ci=H1(UIDi‖Ri),di=ri+cik modp,将部分私钥(Ri,di)通过安全信道发送给用户UIDi。 用户UIDi选取随机数作为长期私钥,作为临时私钥,生成完整私钥si=xidi,验证等式Ri+H1(UIDi‖Ri)K=diG是否成立,如果成立,则KGC分配给自己的部分私钥(Ri,di)有效,并计算Si=xiRi,Ci=Rici。 3.3 密钥协商 a.用户UIDA选取随机数,计算YA=aAG,EA=bAG,hA=H2(UIDA,EA,SA,YA),QA=aA+hAsAmodp , fA=SA⊕UIDA⊕nonce , SA=xARA , 将 〈UIDA,EA,hA,QA,SA,fA〉发送给用户UIDB,其中sA=xAdA,dA=rA+CAkmodp,cA=H1(UIDA‖SA),CA=RAcA,nonce为用户选取的新 鲜数。 b.用户UIDB收到〈UIDA,EA,hA,QA,SA,fA〉后,计算nonce=fA⊕SA⊕UIDA,判断nonce的有效性,若nonce有效,计算cA=H1(UIDA‖SA),验证hA=H2(UIDA,EA,QA,QAG-hA(SA+SAcAK))是否成立。如果成立,说明用户UIDA的身份合法,并选取随机数,计算YB=aBG,EB=bBG,hB=H2(UIDB,EB,SB,YB),QB=aB+hBsBmodp,fB=SB⊕UIDB⊕nonce,SB=xBRB,将〈UIDB,EB,hB,QB,SB,fB〉发送给用户UIDA,其中sB=xBdB,dB=rB+CBk modp,CB=RBcB,cB=H1(UIDB‖SB)。计算KBA=bBEA,会话密钥为SKAB=H2(UIDA‖UIDB‖KBA)。 c.用户UIDA收到〈UIDB,EB,hB,QB,SB,fB〉后,判断nonce是否是自己发送给用户UIDB的,nonce=fB⊕SB⊕UIDB。如果是,则计算cB=H1(UIDB‖SB),并验证hB=H2(UIDB,EB,QB,QBG-hB(SB+SBcBK))是否成立。如果成立,说明用户 UIDB 的身份合法。计算 KAB=bAEB,会话密钥为 SKAB=H2(UIDA‖UIDB‖KAB)。 4 方案分析 4.1 正确性分析 证明1: Ri+H1(UIDi‖Ri)K =Ri+H1(UIDi‖Ri)kG =riG+H1(UIDi‖Ri)kG =(ri+cik)G =diG 证明2:
一种基于身份可认证两方密钥协商方案



