无线传感器网络中基于零知识证明的节点身份认证方法

文档序号:7554871阅读:88来源:国知局
专利名称:无线传感器网络中基于零知识证明的节点身份认证方法
技术领域
本发明属于无线传感器网络安全领域,涉及一种基于零知识证明的节点身份认证的方法。
背景技术
在无线传感器网络中,攻击者可以伪装成合法节点发起篡改和选择性转发等攻击,因此对节点的身份认证时必须的。与传统网络不通,无线传感器网络节点的能量、存储能力和计算能力等资源非常有限,所以传统网络的安全机制不能完全应用到无线传感器网络中。近年来,无线传感器网络中节点身份认证的方法很多,如:第一,在整个网络中,每个节点具有一个密钥,每个节点预先保存网络中其他节点的密钥,节点之间的身份认证采用了基于对称密钥加密的认证方法。这种方法虽然可以有效的对节点身份的合法性进行认证,但是由于传感器节点本身资源受限的特点,使得该方法不适用于大型的无线传感器网络;第二,在传感器节点部署之前,每个节点预先存储共享的全局密钥K,节点之间通过全局密钥K进行身份认证,这种认证方法简单,而且网络的扩展性较好,但一旦全局密钥被捕获,整个网络将被攻击;第三,采用基站控制的方法,在网络节点部署之后,所有节点将其自身和其邻居节点的信息发送到基站,基站对网络中所有节点的身份进行认证,这种方法虽然可以有效的实现节点之间身份的认证,但对于资源受限的传感器节点而言,这种认证方式的通信开销太大。

发明内容
技术问题:本发明在于为无线传感器网络提供一种可抵抗来自网络外部的攻击、综合性能较高的轻量级零知识证明的入侵容忍路由方法。技术方案:本发明的一种无线传感器网络中基于零知识证明的节点身份认证方法,其特征在于,该方法包括以下步骤:I)建立所有节点与其邻居节点之间的广播密钥;2)根据步骤I)中得到的广播密钥,所有节点分别与其邻居节点建立共享密钥;步骤I)中建立广播密钥的具体方法为:11)节点A产生一个广播密钥大随机数X并计算y = x4mod nA,同时节点A获取自身的广播密钥KAy其中KA,*=X2mod nA,其中,化表示节点A的公开信息,公开信息为两个大素数的乘积,y表示广播密钥建立过程中的一个中间参数;然后节点A向其邻居节点发送应答数据包ECHO,应答数据包至少包括节点A的节点号IDa和广播密钥建立过程中的中间参数y ;节点A的公开信息nA的获取方法为:a)对节点A的节点号IDa进行移位运算,获得一个因子a;b)按照产生素数的三次多项式f (a) =a3+20687a+600601,求取f (a);
c)判断步骤b)求得的f (a)是否为素数;如是,则令P=f (a);否则令a=a+l后回到步骤b),P为产生节点A公开信息nA的一个素因子;d)对节点A的节点号IDa进行异或运算,获得一个因子b ;e)按照产生素数的三次多项式f (b) =b3+20687b+600601,求取f (b);f)判断步骤e)求得的f (b)是否为素数;如是,则令Q=f (b);否则令b=b+l后回到步骤e),Q为产生节点A公开信息nA的一个素因子;g)根据步骤c)和步骤f)求取的P和Q,求得节点A的公开信息nA=PXQ ;12)邻居节点B接收到节点A发送的应答数据包ECHO后,按照与所述步骤11)中相同方法,邻居节点B获取节点A的公开信息nA,根据Z2 = y mod nA计算出z, z表示节点B用于计算节点A广播密钥的密钥参数;然后节点B获取节点A的广播密钥其中KA,*=Z mod nA,最后节点B根据所述节点A的广播密钥KA,*,向节点A返回响应数据包ECH0_BACK,所述响应数据包至少包括节点B的节点号IDb和采用节点A的广播密钥Kp加密后的节点B的节点号IDb;13)节点A接收到节 点B发送的响应数据包ECH0_BACK后,首先获取响应数据包ECH0_BACK中明文传输的节点B的节点号IDb,然后用自身的广播密钥KA,*对响应数据包中加密部分进行解密,获得解密后的节点B的节点号IDb’,如果IDb’ =IDb,则节点A与节点B建立共享密钥,否则节点A认为节点B是非法节点,忽略该响应数据包,结束节点A与节点B之间的身份认证流程;所述步骤2)中建立共享密钥的具体方法为:21)节点A产生一个共享密钥大随机数xA,B,然后按照与所述步骤11)中相同方法,节点A根据节点B的节点号IDb获取节点B的公开信息nB,节点A获取自身与节点B之间的共享密钥KA,B,KA,B=(xA,B)2mod nB ;然后计算yA,B= (xA,B) 4mod nB, yA,B表示建立共享密钥过程中的中间参数,最后节点A向节点B发送建立共享密钥数据包SK,所述建立共享密钥数据包至少包括节点A的节点号IDa、建立共享密钥过程中的中间参数yA,B、采用节点A的广播密钥加密后的节点A的节点号IDa和节点A的广播密钥加密后的建立共享密钥过程中的中间参数 yA’B ;22)邻居节点B接收到节点A发送的建立共享密钥数据包SK后,首先获取建立共享密钥数据包中明文传输的节点A的节点号IDa和明文传输的建立共享密钥过程中的中间参数I,,,然后用节点A的广播密钥Kp进行解密,获取解密后的节点A的节点号ID/和解密后的建立共享密钥过程中的中间参数yA,B’,如果ID/ =104且7;^=7;^’,则按照与所述步骤11)中相同方法,节点B获取自身的公开信息nB,根据(zA,B)2=yA,B mod nB,计算zA,B,其中,zA,B表示计算节点A与节点B之间共享密钥的密钥参数,最后计算节点A和节点B的共享密钥KA,B,KA;B=ZA;B mod nB ;否则,丢弃该数据包,结束身份认证流程。有益效果:本发明与现有技术相比,具有以下优点:本发明的无线传感器网络中基于零知识证明的节点身份认证方法,传感器节点在部署之前,除节点号以外,节点无需预先存储任何秘密信息,每个节点与其邻居节点之间的广播密钥以及每对邻居节点之间的共享密钥是在节点部署完成以后动态建立的。与节点预先存储全局共享密钥的方法相比,本发明方法在身份认证过程中引入了随机数,使得每一个节点的广播密钥以及每一对邻居节点之间的共享密钥都不相同,这样攻击者即使获取网络中某一个节点与其邻居节点的广播密钥和其与其他节点的共享密钥,攻击者也无法对整个网络发动攻击。随机数的引用,有效的抵抗了无线传感器网络中的重放攻击。与基站控制的方法相比,本发明方法的身份认证过程是在两个节点之间进行,基站不参与其中,减少了节点与基站的通信开销。而且,本发明可以有效的抵抗无线传感器网络中的女巫攻击。本发明方法综合考虑了网络的安全和能量消耗等要素,其综合性能较高。


图1为获取节点A的流程框图。图2为本发明方法的流程框图。
具体实施例方式下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。本发明的具体实施例如下:I)建立所有节点和其邻居节点之间的广播密钥,具体的方法为:11)节点A产生一个广播密钥大随机数X并计算y = x4mod nA,同时节点A获取自身的广播密钥KAy其中KA,*=X2mod nA,其中,化表示节点A的公开信息,公开信息为两个大素数的乘积,y表示广播密钥建立过程中的一个中间参数;然后节点A向其邻居节点发送应答数据包ECHO,应答数据包至少包括节点A的节点号IDa和广播密钥建立过程中的中间参数y ;节点A的公开信息nA的获取方法为:a)对节点A的节点号IDa进行移位运算,获得一个因子a ;b)按照产生素数的三次多项式f (a) =a3+20687a+600601,求取f (a);c)判断步骤b)求得的f (a)是否为素数;如是,则令P=f (a);否则令a=a+l后回到步骤b),P为产生节点A公开信息nA的一个素因子;d)对节点A的节点号IDa进行异或运算,获得一个因子b ;e)按照产生素数的三次多项式f (b) =b3+20687b+600601,求取f (b);f)判断步骤e)求得的f (b)是否为素数;如是,则令Q=f (b);否则令b=b+l后回到步骤e),Q为产生节点A公开信息nA的一个素因子;在本发明方法中,每个节点的节点号大小为3个字节,24位,a=(IDA》12)modl000,a表示整个过程中的一个因子;判断f (a)是否为素数,如果f (a)不是素数,则a=a+l,重新计算f (a),直至f (a)为素数,则P=f (a),P是公开信息%的一个素因子,f (X)是一个产生素数的三次多项式,在本发明方法中,f (x)=x3+20687x+600601,该多项式在
中可以产生60个素数,在[O, 999]中可以产生413个素数;b= (IDA&4095)modl000,b表示整个过程中的一个因子,判断f (b)是否为素数,如果f (b)不是素数,则b=b+l,重新计算f (b),直至f (b)为素数,则Q=f (b),Q为公开信息化的另一个素因子,节点A的公开信息 nA=P X Q ;12)邻居节点B接收到节点A发送的应答数据包ECHO后,按照与所述步骤11)中相同方法,邻居节点B获取节点A的公开信息nA,根据Z2 = y mod nA计算出z, z表示节点B用于计算节点A广播密钥的密钥参数;然后节点B获取节点A的广播密钥其中KA,*=Z mod nA,最后节点B根据所述节点A的广播密钥KA,*,向节点A返回响应数据包ECH0_BACK,所述响应数据包至少包括节点B的节点号IDb和采用节点A的广播密钥Kp加密后的节点B的节点号IDb;13)节点A接收到节点B发送的响应数据包ECH0_BACK后,首先获取响应数据包ECH0_BACK中明文传输的节点B的节点号IDb,然后用自身的广播密钥KA,*对响应数据包中加密部分进行解密,获得解密后的节点B的节点号IDb’,如果IDb’ =IDb,则节点A与节点B建立共享密钥,否则节点A认为节点B是非法节点,忽略该响应数据包,结束节点A与节点B之间的身份认证流程;所述步骤2)中建立共享密钥的具体方法为:21)节点A产生一个共享密钥大随机数xA,B,然后按照与所述步骤11)中相同方法,节点A根据节点B的节点号IDb获取节点B的公开信息nB,节点A获取自身与节点B之间的共享密钥KA,B,KA,B=(xA,B)2mod nB ;然后计算yA,B= (xA,B) 4mod nB, yA,B表示建立共享密钥过程中的中间参数,最后节点 A向节点B发送建立共享密钥数据包SK,所述建立共享密钥数据包至少包括节点A的节点号IDa、建立共享密钥过程中的中间参数yA,B、采用节点A的广播密钥加密后的节点A的节点号IDa和节点A的广播密钥加密后的建立共享密钥过程中的中间参数 yA’B ;22)邻居节点B接收到节点A发送的建立共享密钥数据包SK后,首先获取建立共享密钥数据包中明文传输的节点A的节点号IDa和明文传输的建立共享密钥过程中的中间参数I,,,然后用节点A的广播密钥Kp进行解密,获取解密后的节点A的节点号ID/和解密后的建立共享密钥过程中的中间参数yA,B’,如果ID/ =104且7;^=7;^’,则按照与所述步骤11)中相同方法,节点B获取自身的公开信息nB,根据(zA,B)2=yA,B mod nB,计算zA,B,其中,zA,B表示计算节点A与节点B之间共享密钥的密钥参数,最后计算节点A和节点B的共享密钥KA,B,KA;B=ZA;B mod nB ;否则,丢弃该数据包,结束身份认证流程。
权利要求
1.一种无线传感器网络中基于零知识证明的节点身份认证方法,其特征在于,该方法包括以下步骤: 1)建立所有节点与其邻居节点之间的广播密钥; 2)根据步骤1)中得到的广播密钥,所有节点分别与其邻居节点建立共享密钥; 所述步骤1)中建立广播密钥的具体方法为: 11)节点A产生一个广播密钥大随机数X并计算y= x4mod nA,同时节点A获取自身的广播密钥KAy其中KA,*=X2mod nA,其中,化表示节点A的公开信息,所述的公开信息为两个大素数的乘积,y表示广播密钥建立过程中的一个中间参数; 然后节点A向其邻居节点发送应答数据包ECHO,所述应答数据包至少包括节点A的节点号IDa和广播密钥建立过程中的中间参数y ; 所述节点A的公开信息nA的获取方法为: a)对节点A的节点号IDa进行移位运算,获得一个因子a; b)按照产生素数的三次多项式f(a) =a3+20687a+600601,求取f (a); c)判断所述步骤b)求得的f(a)是否为素数;如是,则令P=f (a);否则令a=a+l后回到步骤b),P为产生节点A公开信息nA的一个素因子; d)对节点A的节点号IDa进行异或运算,获得一个因子b; e)按照产生素数的三次多项式f(b) =b3+20687b+600601,求取f (b); f)判断所述步骤e)求得的f(b)是否为素数;如是,则令Q=f (b);否则令b=b+l后回到步骤e),Q为产生节点A公开信息nA的一个素因子; g)根据所述步骤c)和步骤f)求取的P和Q,求得节点A的公开信息nA=PXQ; 12)邻居节点B接收到节点A发送的应答数据包ECHO后,按照与所述步骤11)中相同方法,邻居节点B获取节点A的公开信息nA,根据Z2 = y mod nA计算出z, z表示节点B用于计算节点A广播密钥的密钥参数; 然后节点B获取节点A的广播密钥KA,*,其中KA,*=Z mod nA,最后节点B根据所述节点A的广播密钥KA,*,向节点A返回响应数据包ECH0_BACK,所述响应数据包至少包括节点B的节点号IDb和采用节点A的广播密钥Kp加密后的节点B的节点号IDb; 13)节点A接收到节点B发送的响应数据包ECH0_BACK后,首先获取响应数据包ECH0_BACK中明文传输的节点B的节点号IDb,然后用自身的广播密钥Kp对响应数据包中加密部分进行解密,获得解密后的节点B的节点号IDb’,如果IDb’ =IDb,则节点A与节点B建立共享密钥,否则节点A认为节点B是非法节点,忽略该响应数据包,结束节点A与节点B之间的身份认证流程; 所述步骤2)中建立共享密钥的具体方法为: 21)节点A产生一个共享密钥大随机数xA,B,然后按照与所述步骤11)中相同方法,节点A根据节点B的节点号IDb获取节点B的公开信息nB,节点A获取自身与节点B之间的共享密钥KA,B,KA,B=(xA,B)2mod nB ;然后计算yA,B= (xA,B) 4mod nB, yA,B表示建立共享密钥过程中的中间参数,最后节点A向节点B发送建立共享密钥数据包SK,所述建立共享密钥数据包至少包括节点A的节点号IDa、建立共享密钥过程中的中间参数yA,B、采用节点A的广播密钥加密后的节点A的节点号IDa和节点A的广播密钥加密后的建立共享密钥过程中的中间参数Ya, B ;22)邻居节点B接收到节点A发送的建立共享密钥数据包SK后,首先获取建立共享密钥数据包中明文传输的节点A的节点号IDa和明文传输的建立共享密钥过程中的中间参数yA;B,然后用节点A的广播密钥KA;*进行解密,获取解密后的节点A的节点号ID/和解密后的建立共享密钥过程中的中间参数yA,B’,如果ID/=IDa且yA,B=yA,B’,则按照与所述步骤11)中相同方法,节点B获取自身的公开信息nB,根据(zA,B)2=yA,B mod nB,计算zA,B,其中,zA,B表示计算节点A与节点B之间共享密钥的密钥参数,最后计算节点A和节点B的共享密钥KA,B,KA;B=zA;B m od nB ;否则,丢弃该数据包,结束身份认证流程。
全文摘要
本发明公开了一种无线传感器网络中基于零知识证明的节点身份认证方法。除节点号,节点无需预先存储任何秘密信息就能产生与其邻居节点的组密钥和节点之间的共享密钥。本发明中引入了随机数,使得攻击者即使窃听到合法节点之间身份认证的所有信息,也无法伪装成合法节点,可以有效的抵抗无线传感器网络中的女巫攻击。而且,本发明中的认证方法采用了双向认证,可以有效的抵抗无线传感器网络中的HELLO泛洪攻击。
文档编号H04W12/04GK103179562SQ201310119570
公开日2013年6月26日 申请日期2013年4月8日 优先权日2013年4月8日
发明者黄杰, 陈磊, 王恩飞, 张莎, 梁莉, 谢启辉 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1