一种适用于大规模传感器网络的认证密钥协商方法

文档序号:7796790阅读:184来源:国知局
一种适用于大规模传感器网络的认证密钥协商方法
【专利摘要】本发明是一种适应于大规模无线传感器网络的基于身份的认证密钥协商方法(TinyIBAK),解决大规模传感器网络中密钥的分发,建立,更新和撤销。TinyIBAK同时具有身份认证和密钥确认机制,能够在密钥协商过程中认证协议参与者的身份,并能确认协议双方最终共享了相同的密钥,从而有效抵御中间人攻击。同时该算法能有效抵御主动和被动攻击,具有良好的安全性。TinyIBAK在传感器网络硬件平台进行了实现,验证了在实际传感器网络部署中算法的运行性能。通过分析协议的内存占用,执行时间和能量消耗,并与现有同类算法进行比较,TinyIBAK在安全强度,扩展性,通信、计算、存储开销方面都具有显著优势。
【专利说明】一种适用于大规模传感器网络的认证密钥协商方法
【技术领域】
[0001]本发明是一种针对大规模无线传感器网络的认证密钥协商方法,能够保护数据传输的机密性、安全性和隐私性。属于信息安全领域。
【背景技术】
[0002]相比于传统网络,无线传感器网络具有通信介质开放、网络拓扑变化频繁、控制结构松散、终端系统资源严重受限等固有特性,非常容易受到窃听、重放、节点俘获等多种类型的攻击,系统安全极其脆弱。为了提高传感器网络的安全性,研究者致力于将现有的网络安全研究成果应用于传感器网络领域,并作出了有益的尝试,如TinySec (TinyOS操作系统中实现的一种无线传感器网络链路层安全机制),Zigbee (一种由IEEE803.15工作组提出的低速短距离无线通信协议)等。然而这些研究大多从资源效率考虑,采用简单的基于对称密钥的安全机制,在全网中部署同一密钥,且不支持密钥更新。这就使得此类安全机制难以长时间保障系统安全,同时网络中任意一个节点被攻击者俘获都将导致全网安全的崩溃。因此,如何在规模传感器网络中构建合理高效的密钥管理机制,寻求安全性和资源效率的平衡,传感器网络安全研究中亟待解决的问题。
[0003]在大规模传感器网络中部署密钥管理机制存在三个挑战:(I)传感器网络缺少公钥基础设施(PKI),没有可信第三方,难以实现密钥的安全签发、更新和撤销;(2)传感器网络拓扑结构变化频繁,密钥更新频繁,使用现有的密钥管理机制将引发大范围的数据交互,进而带来大量的通信和能量开销;(3)传统的密钥管理机制未在密钥协商过程中无法确认参与协商的双方的身份,也无确认双方最终共享统一密钥。易受中间人攻击和节点俘获攻击。
[0004]为了应对这些挑战,从效率和安全两个维度出发,目前解决方案可分为两类,即密钥预分配方法和基于公钥密码学的方法。其中密钥预分配根据其是否支持密钥更新,又可分为静态密钥预分配和动态密钥预分配。静态方法的缺陷在于不支持网络部署之后的密钥更新和新节点加入,难以适应持续动态变化的传感器网络。
[0005]动态密钥预分配方法克服了静态方法的缺点,然而,基于密钥预分配方法存在一个共同缺点:网络中每个节点必须预置大量的密钥才能保证网络的密钥连通性,而且随着网络规模的扩大,节点的存储开销将急剧上升,无法适应大规模的网络部署。
[0006]为了解决密钥存储开销的问题,一些研究者将目光转向了公钥密码学领域,探索将公钥密码学技术应用到资源受限的传感器网络的可能性。然而,基于公钥密码学的算法在抵抗中间人攻击、计算和存储成本等方面还存在诸多问题。

【发明内容】

[0007]技术问题:本发明的目的是提出一种基于双线性对的带认证密钥协商方法(TinyIBAK),旨在解决大规模传感器网络中密钥的分发,建立,更新和撤销。
[0008]技术方案:本发明在传感器节点中集成了基于身份的带认证密钥协商机制,具有身份认证和密钥确认的功能,能够在密钥协商过程中认证协议参与者的身份,并能确认协议双方最终了共享相同的密钥,从而有效抵御中间人攻击。同时该算法能有效抵御主动和被动攻击,具有良好的安全性。TinyIBAK在传感器网络硬件平台进行了实现。
[0009]英文及符号解释:
[0010]a, b:分别表示节点A和B选择的随机参数
[0011]A, B:表示参与协议的一对节点
[0012]e-.G.xG^ Gr: ?是一个由G1到Gt的双线性映射,也称双线性对
[0013]Enck(m):利用对称密钥k对消息m进行加密
[0014]E/Fq:有限域上Fq的一条超奇异椭圆曲线
[0015]Cl1:节点i的私钥
[0016]Fq:q阶有限域
[0017](G1, +):表示G1是一个加法群
[0018](GT,.):表不Gt是一个乘法群
[0019]H1, H2, H3:分别表示三个不同的安全散列函数
[0020]IBC:基于身份的密码技术
`[0021]ID1:节点i的身份表示
[0022]k:安全参数
[0023]Ic1:用于计算消息验证码的对称密钥
[0024]k2:用于加密消息的对称密钥
[0025]:节点A和节点B协商所得的共享会话密钥
[0026]Kab:节点A计算得出的A与B的共享秘密
[0027]Kba:节点B计算得出的B与A的共享秘密
[0028]KDF ():Keyderivefunction,密钥导出函数
[0029]MACk(m):利用对称密钥k对消息m计算消息验证码
[0030]n =G1和Gt的阶数
[0031]nonce:表示现时的一个随机数
[0032]P =G1的任意生成元
[0033]Ppub:系统公钥
[0034]q:有限域Fq的阶数
[0035]Q1:节点i的公钥
[0036]s:系统主密钥
[0037]tA,tB:分别表示节点A和B计算所得的消息验证码
[0038]\,Wb:分别表示节点A和B的临时公钥
[0039]Z::由正整数构成的η阶有限乘法群
[0040]Π:表示由q, G1, GT, e, P, Ppub, H1, H2构成的系统参数
[0041]I 1:级联符号
[0042]本发明的基于身份的认证密钥协商方法由配置Setup,提取Extract,和密钥协商Key Agreement三个子算法构成;节点部署之前,管理系统离线执行Setup和Extract算法,为每个传感器节点预载节点公私钥对、系统参数信息,节点部署之后,每个节点执行邻居发现,向邻居节点广播其ID,并执行KeyAgreement算法,
[0043]该方法具体为:
[0044]I) Setup子算法,以安全参数k为输入,返回主密钥和系统参数;
[0045]Ia.)选择一条合适的超奇异椭圆曲线E/F,,利用IBC参数产生器生成η阶循环群(G1,+)和(GT,.),G1的任意生成元P,和一个双线性对LG1 X G1 — Gr,其中n为素数;
[0046]Ib.)随机选择s Z:作为主密钥,计算系统公钥Ppub = sP ;
[0047]Ic.)选择密码学安全的散列函数H1: {0,1}* — GjPH2:GT— {O, l}k;
[0048]Id.)保密主密钥S,公开系统参数n = I^GrGl.上山;:):
[0049]2) Extract子算法,以系统参数,主密钥和节点ID为输入,返回节点的基于ID的长期私钥;对于节点i,i对应身份为IDi:
[0050]2a.)计算公钥 Qi = H1 (IDi);
[0051]2b.)计算私钥(Ii = SQi ;
[0052]2c.)将〈ID” Cli, Qi, Π> 载入节点 i ;
[0053]3) KeyAgreement子算 法,用于协商一个认证的共享密钥;
[0054]3a.)发起者节点A选择一个随机数a e, Z;,计算临时公钥Wa = aQA,发送IDa和Wa给节点B ;
[0055]3b.) 一旦接收到发自节点A的发起消息,节点B执行以下步骤:
[0056]3bl.)选择一个随机数6 4 K,计算临时公钥Wb = bQB ;
[0057]3b2.)计算共享秘密=Q,并利用密钥导出函数导出共享秘密匕和k2,gp (k1; k2) -KDF(Kba);
[0058]3b3.)利用 Ii1 计算消息验证码 MAC,即 h = MACki {IDb JD4,WB, Wa );
[0059]3b4.)向节点 A 发送 IDB,WB 和 tB,即 B —A:1DB| |WB| |tB;
[0060]3c.)接收到来自节点B的反馈消息后,节点A执行以下步骤:
[0061]3cl.)计算共享秘密Is =e(dA,WB+aQB),并利用密钥导出函数导出共享秘密Ic1和k2,gp (k1; k2) -KDF(Kab);
[0062]3c2.)验证接收到的MAC,即验证G =MACki (/?/?具U是否成立;
[0063]3c3.)计算 MAC i( = XMCi (IDiJDllJViJVll),并将其发送给节点 B,即 A — B: tA ;
[0064]接收到来自节点A的确认消息后,节点B验证接收到的MAC,即验证t,.= MACi (/D1, IDe,IV,, W11)是否成立,
[0065]若以上验证成立,则节点A与节点B密钥协商成功,二者的共享会话密钥为1? =k2 ;根据双线性映射的性质可知
[0066]KAB=e{dA,WB+aQB) = e{QA,QBfa'b)
[0067]KBJ=e{WA +bQA,db) = e(QA,QBfa+h]
[0068]从而Kab = Kba,因此,节点A和节点B协商得出共享秘密。[0069]执行KeyAgreement子算法后,节点A和节点B协商所得的共享秘密是动态的;每轮密钥协商都使用了随机选择的参数a和b ;TinyIBAK中,使用了两个不同的安全散列函数H2和H3作为密钥导出函数,用于导出两个对称密钥,其中Ic1用于计算MAC,k2作为节点A和B之间安全通信的共享会话密钥。
[0070]有益效果:本发明具有以下优点:
[0071](I)采用基于身份的公钥密码技术,无需PKI即可认证公钥,符合传感器网络的特性。
[0072](2)提供身份认证和密钥确认机制,保证参与密钥协商双方身份的真实性,并确保双方最终共享相同密钥。有效抵抗中间人攻击和节点俘获攻击。
[0073](3)整个密钥协商过程仅引入一次高计算开销的双线性对运算,性能远高于其他同类算法。
[0074](4)当新增/删除节点导致网络结构变化时,只引起局部数据交互,大大降低了通信和计算开销。
【专利附图】

【附图说明】
[0075]图1是TinyIBAK会话密钥协商过程示意图。
【具体实施方式】
[0076]本发明提出一种基于身份的认证密钥协商算法,该算法中包括三种实体,即任何需协商共享秘密的两个节点,以节点A和节点B来表示,以及网络部署者拥有的管理系统,用于担任私钥生成器(PKG`)的角色,如图1所示。本算法由Setup (配置),Extract (提取)和KeyAgreement (密钥协商)三个子算法构成。节点部署之前,管理系统离线执行Setup和Extract算法,为每个传感器节点预载节点公私钥对、系统参数等信息。节点部署之后,每个节点执行邻居发现,向邻居节点广播其ID,并执行KeyAgreement算法。假设攻击者在自展阶段不能俘获节点。
[0077]Setup.以安全参数k为输入,返回主密钥和系统参数。对于给定的安全参数k,管理系统执行以下步骤,
[0078](I)选择一条合适的超奇异椭圆曲线E/F,,利用IBC(基于身份的密码技术)参数产生器生成η阶循环群(G1, +)和(GT,.), G1的任意生成兀P,和一个双线性对dI x G'i — c'.r,其中η为素数;
[0079](2)随机选择Z:作为主密钥,其中Z:表示由正整数构成的η阶有限乘法群,计算系统公钥Ppub = sP ;
[0080](3)选择密码学安全的散列函数H1=UUK^G1和4:&— {O, Ilk;
[0081](4)保密主密钥S,公开系统参数=
[0082]Extract.以系统参数,主密钥和节点ID为输入,返回节点的基于ID的长期私钥。对于节点i (其对应身份为IDi),管理系统执行以下步骤,
[0083](I)计算公钥 Qi = H1 (IDi);
[0084](2)计算私钥(Ii = SQi ;[0085](3)将〈ID” d” Qi, Π> 载入节点 i。
[0086]KeyAgreement.要协商一个认证的共享密钥,节点A和节点B执行以下步骤:
[0087](I)发起者节点A选择一个随机数a e, Z:,计算临时公钥Wa = aQA,发送IDa和Wa给节点B ;⑵一旦接收到来自节点A的发起消息,节点B执行以下步骤:
[0088]a)选择一个随机数6 Z*,计算临时公钥Wb = bQB ;
[0089]b)计算共享秘密KHi =HlVi +hOrdH),并利用密钥导出函数导出共享秘密Ic1和k2,即 Gi1,k2) — KDF(Kba);
[0090]c)利用 Ii1 计算消息验证码(MAC),即 tB = MACli [IDb JDa, WB, Wa );
[0091]d)向节点A发送idb,wb和tB,即B —a:1db| |wB| |tB,其中I表示连接符号。
[0092](3)接收到来自节点B的反馈消息后,节点A执行以下步骤:
[0093]a)计算共享秘密Kis =Kd-^B +?&),并利用密钥导出函数导出共享秘密h和k2,即 Gi1,k2) — KDF(Kab);
[0094]b)验证接收到的MAC,即验证G =MJCti (/Ds,/^,%,%)是否成立;
[0095]c)计算MAC i, = MACi,并将其发送给节点 B,即 A — B: tA。
[0096](4)接收到来自节点A的确认消息后,节点B验证接收到的MAC,即验证
[0097]tA = MACki (/?,/?,%,%)是否成立。
[0098](5)若以上验证成立,则节点A与节点B密钥协商成功,二者的共享会话密钥为kAB=k2。
[0099]根据双线性映射的性质可知
【权利要求】
1.一种基于身份的认证密钥协商方法,其特征在于该方法由配置Setup,提取Extract,和密钥协商KeyAgreement三个子算法构成;节点部署之前,管理系统离线执行Setup和Extract算法,为每个传感器节点预载节点公私钥对、系统参数信息,节点部署之后,每个节点执行邻居发现,向邻居节点广播其ID,并执行KeyAgreement算法, 该方法具体为: 1)Setup子算法,以安全参数k为输入,返回主密钥和系统参数; Ia.)选择一条合适的超奇异椭圆曲线E/F,,利用IBC参数产生器生成η阶循环群(G1,+)和(GT,O^G1的任意生成元P,和一个双线性对,其中η为素数; Ib.)随机选择5? Z:作为主密钥,计算系统公钥Ppub = sP ; Ic.)选择密码学安全的散列函数H1: {O, I}* —GJ H2:GT — {O, l}k; Id.)保密主密钥 s,公开系统参数 11 = (07,//,,//:); 2)Extract子算法,以系统参数,主密钥和节点ID为输入,返回节点的基于ID的长期私钥;对于节点i,i对应身份为IDi: 2a.)计算公钥 Qi = H1 (IDi); 2b.)计算私钥(Ii = SQi ; 2c.)将〈ID” d” Qi, Π> 载入节点 i ; 3)KeyAgreement·子算法,用于协商一个认证的共享密钥; 3a.)发起者节点A选择一个随机数《 e, Z:,计算临时公钥Wa = aQA,发送IDa和Wa给节点B ; 3b.) 一旦接收到发自节点A的发起消息,节点B执行以下步骤: 3bl.)选择一个随机数Z*,计算临时公钥Wb = bQB ; 3b2.)计算共享秘密Am +bQA,dB),并利用密钥导出函数导出共享秘密Ic1和k2,即 Gi1,k2) — KDF(Kba);
3b3.)利用 Ii1 计算消息验证码 MAC, BPifi=-VZzJC; (IDllJDiJrilJVl);
3b4.)向节点 A 发送 IDB,Wb 和 tB,即 B —A:1Db I |ffB tB ; 3c.)接收到来自节点B的反馈消息后,节点A执行以下步骤: 3cl.)计算共享秘密-^Qli),并利用密钥导出函数导出共享秘密Ic1和k2,即 Gi1,k2) — KDF(Kab); 3c2.)验证接收到的MAC,即验证G =M/!C,; (/?,,,/αυ,,)是否成立; 3c3.)计算 MAC tA =MACk' (ID4,IDb,Wa,Wb),并将其发送给节点 B,即 A — B:tA ; 接收到来自节点A的确认消息后,节点B验证接收到的MAC,即验证G = MAC, (!D1JD11JV1U是否成立, 若以上验证成立,则节点A与节点B密钥协商成功,二者的共享会话密钥为1? = k2 ;根据双线性映射的性质可知
KAB=e{dA,WB + aQB) = e(QA,QBfa+b]Kba =印^ + b(J = &(X) 从而Kab = Kba,因此,节点A和节点B协商得出共享秘密。
2.根据权利要求1所述的基于身份的认证密钥协商方法,其特征在于执行KeyAgreement子算法后,节点A和节点B协商所得的共享秘密是动态的;每轮密钥协商都使用了随机选择的参数a和b ;TinyIBAK中,使用了两个不同的安全散列函数H2和H3作为密钥导出函数,用于导出两个对称密钥,其中h用于计算MAC,k2作为节点A和B之间安全通信的共享会话密钥。
【文档编号】H04L9/32GK103825742SQ201410049463
【公开日】2014年5月28日 申请日期:2014年2月13日 优先权日:2014年2月13日
【发明者】吴蒙, 杨立君, 丁超 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1