一种无线传感器网络中消息认证的方法与流程

文档序号:13950153阅读:140来源:国知局
一种无线传感器网络中消息认证的方法与流程

本发明涉及信息安全的技术领域,尤其涉及一种无线传感器网络中消息认证的方法。



背景技术:

无线传感器网络(wirelesssensornetwork,wsn)可以实时监测、感知和采集网络所监控区域内的各种环境或者监测对象的信息,并最终把这些信息发送给终端用户,在工业、农业、交通、军事、安全、医疗、空间探测以及家庭和办公环境等众多领域都有着广泛的应用,该技术促进经济发展的同时,也引起了用户对信息安全方面的关注。

由于采用的是无线传输信道,同时,其节点能量有限,相比于其它网络,wsn所存在的窃听、恶意路由、消息篡改等安全问题更加突出,其安全问题的解决已成为当前研究的热点和难点。在各种感知信息发送给终端用户之前,往往要经历多跳传递,才会最终到达接收端节点。在这个过程中,如何确保报文发送者和接收者的真实性以及完整性,阻止对手的主动攻击,如冒充、篡改、重放等,是wsn应用系统中安全保护的第一道防线,是一个亟待解决的问题。

目前,消息认证仍然是确保报文发送者和接收者的真实性以及完整性的常用技术。如图1所示,由消息的发送方产生消息认证码(messageauthenticationcode,mac)附加在消息后传递给接收方,接收方则根据这个认证符来对接收到的消息及来源方的身份进行鉴别。其中,mac是将密钥k和需要认证的消息作为参数,采用mac函数,计算出的一个固定长度的短数据块。接收方收到消息后,根据密钥k以及mac函数重新计算出mac,并检查是否等于传过来的mac。该方法之所以能保证报文发送者和接收者的真实性以及完整性的重要原因是密钥k为发送方和接收方所共享、其它人并不知道该密钥k。

如果在wsn中直接应用mac机制来保证安全性,将付出较大的能量代价,特别是当网络中节点数目较大或者通信较频繁时,会导致节点死亡从而大大降低网络的工作寿命。怎么能够降低wsn中mac机制的能量消耗、提高网络的工作寿命、提高协议的执行效率,同时降低攻击者攻击信息的概率,是非常必要的。



技术实现要素:

针对无线传感器网络中mac机制的能量代价较大、工作寿命低的技术问题,本发明提出一种无线传感器网络中消息认证的方法,具有能耗低、计算量小、安全性高的优点。

为了达到上述目的,本发明的技术方案是这样实现的:一种无线传感器网络中消息认证的方法,无线传感器网络中包括一个基站b、一个汇聚节点u0和至少一个采集节点,汇聚节点u0是与基站b进行通信的唯一节点,所有的采集节点均可通过多跳无线网络将数据发送给汇聚节点u0,节点ui要发送给基站b的信息包为mi,节点ui与基站b之间的密钥为ki,i=0,1,……,m,m+1为节点的个数;其步骤如下:

步骤1:判断节点ui当前无线接收缓冲器中是否已经存在一个或者多个需要中转的数据包或者节点ui是否有信息包需要发送给基站b;

步骤2:如果没有,则延迟一段时间τ后跳转到步骤1;否则继续执行步骤3;

步骤3:如果节点ui有信息包mi需要发送给基站b,需要发送的数据包数目为z,采用mac算法利用密钥ki和信息包mi信息生成mac标签maci,mac标签maci附加在其信息包mi后构成数据包di={mi,maci};如果节点ui当前无线接收缓冲器中有一个或者多个需要中转的数据包,需要中转的数据包数目为x;

步骤4:判断(x+z)是否大于1,如果否,则新的标签就是标签maci或者需要中转的数据包中所包含的标签,新的信息包就是信息包mi或者需要中转的数据包中的信息包;

若(x+z)>1,在节点ui处采用聚合mac算法对标签进行处理,生成新的聚合标签,并按照标签聚合的先后顺序将参与聚合的数据包中的信息与该节点ui的信息包mi依次排列,组成一个新的信息包mi’;

步骤5:将节点ui所生成的新的标签附加到其新的信息包后生成新的数据包di’,判断此节点ui是否为汇聚节点u0,如果是,则将新的数据包di’直接发送给基站b,并跳转至步骤8;否则,则将新的数据包di’无线发送出去;

步骤6:节点ui无线发送出的数据包di’通过其它节点经过多跳网络中转给汇聚节点u0,在每个参与中转的节点处的处理同在节点ui处的处理过程完全相同;

步骤7:在汇聚节点u0处的处理同在节点ui处的处理过程完全相同;

步骤8:基站b对接收到的数据包采用认证算法进行鉴别。

所述mac算法生成的标签其中,节点ui要发送给基站b的信息包为mi,节点ui与基站b之间的密钥为ki,i=0,1,……,m,且ki∈{0,1}n,n为密钥长度,信息包mi∈{0,1}*,mac()是公开函数、可以产生定长的值,tagi为mac标签。

所述聚合mac算法的输入为一个以上的mac标签tagi、……、tagn、……、tagj,输出为tagij,即聚合标签macij,且为异或运算;

所述聚合mac算法的输入为一个或一个以上的mac标签tagi、……、tagn、……、tagj和一个或一个以上的聚合标签tagpq、……、taguw、……、tagrs,输出为标签tag1s,即聚合标签为:

所述聚合mac算法的输入为一个以上的聚合标签tagpq、……、taguw、……、tagrs,输出为tagps,即聚合标签为:

为异或运算。

基站b的认证算法为:

计算:

判断如果tagiy'=tagiy,即maciy'=maciy,输出为1,否则输出为0;

其中,基站b接收的数据包为d’={mi,……,mj,……,mp,……,my,tagiy},mac()是公开函数、可产生定长的值。

一种无线传感器网络中消息认证的方法,其步骤如下:

步骤301:判断节点u0当前无线接收缓冲器中已经存在一个需要中转的来自于节点u1的数据包d1={m1,mac1},节点u0有信息包需要发送给基站b;

步骤302:继续执行步骤303;

步骤303:节点u0有信息包m0需要发送给基站b,需要发送的数据包数目z=1,同时,采用mac算法生成信息包m0信息的mac标签mac0,mac标签mac0附加在信息包m0后构成其数据包d0={m0,mac0};节点u0当前无线接收缓冲器中有一个需要中转的数据包d1,需要中转的数据包数目x=1;

步骤304:判断x+z=2>1,则继续执行步骤305;

步骤305:将需要中转的数据包d1中的消息认证标签mac1与节点u0的消息认证标签mac0采用聚合mac算法进行聚合后生成新的聚合标签mac10,并按照标签聚合的先后顺序将参与聚合的数据包中的信息包m1与采集节点u0的信息包m0依次排列,组成一个新的信息包m0’={m1,m0};

步骤306:将节点u0处生成的聚合标签mac10附加到其新的信息包m0’后生成新的数据包d0’={m1,m0,mac10},判断该节点u0就是汇聚节点,则将新数据包d0’直接发送给基站b,并跳转至步骤307;

步骤307:基站b对接收到的数据包d0’={m1,m0,mac10}采用认证算法进行鉴别;基站b接收到数据包d0’后,根据本身与节点u1、节点u0分别共享的密钥k1、k0代入mac函数重新计算标签mac1’和标签mac0’,然后对计算得到的标签mac0’和标签mac1’进行异或操作得到mac10’,并将计算得到的mac10’与接收到的数据包d0’中的聚合标签mac10进行比较;如果二者相同,则接收者基站b可确信该数据包d0’的消息未被篡改,并且接收者基站b可确信数据包d0’消息来自所声称的发送者节点u1和节点u0;否则,则接收者基站b不能确认数据包d0’消息未被篡改,不能确信数据包d0’消息来自所声称的发送者节点u1和节点u0。

一种无线传感器网络中消息认证的方法,其步骤如下:

步骤401:判断节点u0当前无线接收缓冲器中已经存在一个需要中转的来自于节点ur的数据包dr’={m1,m2……mr,mac1r},同时节点u0有信息包m0需要发送给基站b;

步骤402:继续执行步骤403;

步骤403:节点u0有信息包m0需要发送给基站b,需要发送的数据包数目z=1,同时,采用mac算法生成信息包m0信息的mac标签mac0,mac标签mac0附加在其信息包m0后构成其数据包d0={m0,mac0};节点u0当前无线接收缓冲器中有一个需要中转的数据包dr’,该需要中转的数据包数目x=1;

步骤404:判断x+z=2>1,继续执行步骤405;

步骤405:在节点u0处采用聚合mac算法对标签进行处理,将需要中转的数据包dr’中的聚合标签mac1r与节点u0的消息认证mac标签mac0采用聚合mac算法进行聚合后生成聚合标签mac10,并按照标签聚合的先后顺序将参与聚合的数据包中的信息与节点u0的信息包m0依次排列,组成一个新的信息包m0’={m1,m2,……,mr,m0};

步骤406:将节点u0处所生成的新的标签mac10附加到其新的信息包m0’后生成新的数据包d0’={m1,m2,……,mr,m0,mac10},此节点u0就是汇聚节点,则将新的数据包d0’直接发送给基站b,并跳转至步骤407;

步骤407:基站b对接收到的数据包d0’={m1,m2,……,mr,m0,mac10}采用认证算法进行鉴别;基站b接收到该数据包后,根据本身与节点u1、节点u2、……、节点ur、节点u0分别共享的密钥k1、k2、……、kr、k0代入mac函数重新计算标签mac1’、mac2’、……、macr’、mac0’,然后对计算得到的标签mac1’、mac2’、……、macr’、mac0’进行异或操作得到标签mac10’,并将计算得到的标签mac10’与接收到的数据包d0’中的聚合标签mac10进行比较;如果二者相同,则接收者基站b可确信数据包d0’消息未被篡改,并且接收者基站b可确信数据包d0’消息来自所声称的发送者节点u1、u2、……、ur、u0;否则,则接收者基站b不能确认数据包d0’消息未被篡改,不能确信数据包d0’消息来自所声称的发送者节点u1、u2、……、ur、u0。

一种无线传感器网络中消息认证的方法,其步骤如下:

步骤501:判断节点u0当前无线接收缓冲器中已经存在2个需要中转的数据包,分别为来自于节点up的数据包dp’={mi,……,mp,macip}和来自于节点uq的数据包dq’={mq,macq},同时节点u0有信息包m0需要发送给基站b;

步骤502:继续执行步骤503;

步骤503:节点u0有信息包m0需要发送给基站b,需要发送的数据包数目z=1,同时,采用mac算法生成信息包m0信息的mac标签mac0,标签mac0附加在信息包m0后构成数据包d0={m0,mac0};节点u0当前无线接收缓冲器中有2个需要中转的数据包dp’和dq’,该需要中转的数据包数目x=2;

步骤504:判断x+z=3>1,继续执行步骤505;

步骤505:在节点u0处采用聚合mac算法对标签进行处理,将需要中转的数据包dp’和dq’中的聚合标签mac1p、消息认证标签macq与节点u0的消息认证标签mac0采用聚合mac算法进行聚合后生成聚合标签maci0,并按照标签聚合的先后顺序将参与聚合的数据包中的信息与节点u0的信息包m0依次排列,组成一个新的信息包m0’={mi,……,mp,mq,m0};

步骤506:将节点u0处生成的聚合标签maci0附加到其新的信息包m0’后生成新的数据包d0’={mi,……,mp,mq,m0,maci0},此节点u0就是汇聚节点,则将新数据包d0’直接发送给基站b,并跳转至步骤507;

步骤507:基站b对接收到的数据包d0’={mi,……,mp,mq,m0,maci0}采用认证算法进行鉴别;基站b接收到数据包的消息后,根据本身与节点ui、……、节点up、节点uq、节点u0分别共享的密钥ki、……、kp、kq、k0代入mac函数重新计算标签maci’、macp’、……、macq’、mac0’,然后对计算得到的标签maci’、macp’、……、macq’、mac0’进行异或操作得到标签maci0’,并将计算得到的标签maci0’与接收到的数据包d0’中的聚合标签maci0进行比较;如果二者相同,则接收者基站b可确信数据包d0’消息未被篡改,并且接收者基站b可确信数据包d0’消息来自所声称的发送者节点ui、……、节点up、节点uq、节点u0;否则,则接收者基站b不能确认数据包d0’消息未被篡改,不能确信数据包d0’消息来自所声称的发送者节点ui、……、节点up、节点uq、节点u0。

一种无线传感器网络中消息认证的方法,其步骤如下:

步骤601:判断节点u0当前无线接收缓冲器中已经存在多个需要中转的数据包,分别为来自于节点ua的数据包da’={md,……,ma,macda}、……、来自于节点ue的数据包de’={mh,……,me,mache}、来自于节点uj的数据包dj’={mj,macj}、……、来自于节点us的数据包ds’={ms,macs},同时节点u0有信息包m0需要发送给基站b;

步骤602:继续执行步骤603;

步骤603:节点u0有信息包m0需要发送给基站b,该需要发送的数据包数目z=1,同时采用mac算法生成信息包m0信息的mac标签mac0,标签mac0附加在其信息包m0后构成其数据包d0={m0,mac0};节点u0当前无线接收缓冲器中有多个需要中转的数据包,需要中转的数据包数目x>2;

步骤604:判断x+z>3,继续执行步骤605;

步骤605:在节点u0处采用聚合mac算法对标签进行处理,将需要中转的数据包中da’、……、de’、dj’、……、ds’的聚合标签macda、……、mache以及消息认证标签macj、……、macs与采集节点u0的消息认证标签mac0采用聚合mac算法进行聚合后生成聚合标签macd0,并按照标签聚合的先后顺序将参与聚合的数据包中的信息与节点u0的信息包m0依次排列,组成一个新的信息包m0’={md,……,ma,……,mh,……,me,mj,……,ms,m0};

步骤606:将节点u0处所生成的新的标签macd0附加到其新的信息包m0’后生成新的数据包d0’={md,……,ma,……,mh,……,me,mj,……,ms,m0,macd0},此节点u0就是汇聚节点,则将新数据包d0’直接发送给基站b,并跳转至步骤607;

步骤607:基站b对接收到的数据包d0’={md,……,ma,……,mh,……,me,mj,……,ms,m0,macd0}采用认证算法进行鉴别;基站b接收到数据包d0’的消息后,根据本身与节点ud、……、节点ua、……、节点uh、……、节点ue、节点uj、……、节点us、节点u0分别共享的密钥kd、……、ka、……、kh、……、ke、kj、……、ks、k0代入mac函数重新计算标签macd’、……、maca’、……、mach’、……、mace’、macj’、……、macs’、mac0’,然后对计算得到的标签macd’、……、maca’、……、mach’、……、mace’、macj’、……、macs’、mac0’进行异或操作得到标签macd0’,并将计算得到的标签macd0’与接收到的数据包d0’中的聚合标签macd0进行比较;如果二者相同,则接收者基站b可确信数据包d0’消息未被篡改,并且接收者基站b可确信数据包d0’消息来自所声称的发送者节点ud、……、节点ua、……、节点uh、……、节点ue、节点uj、……、节点us、节点u0;否则,则接收者基站b不能确认数据包d0’消息未被篡改,不能确信数据包d0’消息来自所声称的发送者节点ud、……、节点ua、……、节点uh、……、节点ue、节点uj、……、节点us、节点u0。

一种无线传感器网络中消息认证的方法,其步骤如下:

步骤701:判断节点ui当前无线接收缓冲器中不存在需要中转的数据包,但节点ui有信息包mi需要发送给基站b;

步骤702:继续执行步骤703;

步骤703:节点ui有信息包mi需要发送给基站b,该需要发送的数据包数目z=1,同时采用mac算法,生成mi信息的mac标签maci,附加在其信息包mi后构成其数据包di={mi,maci};节点ui当前无线接收缓冲器中没有需要中转的数据包,该需要中转的数据包数目x=0;

步骤704:判断x+z=1,则说明该节点ui处只有1个标签,不需要采用聚合算法进行处理,则新的标签就是maci,新的信息包就是mi;

步骤705:将节点ui处所生成的新的标签maci附加到其新的信息包mi’={mi}后生成新的数据包di’=di={mi,maci},此节点ui不是汇聚节点,则将该新数据包di’无线发送出去;

步骤706:节点ui无线发送出的数据包被其下一跳节点uj所中转,在节点uj节点处的处理同在ui节点的处理过程完全相同;

步骤707:节点ui无线发送出的数据包通过多个其它节点经过多跳网络中转给汇聚节点u0,在每个中转节点处的处理同在ui节点的处理过程完全相同;

步骤708:在汇聚节点u0处的处理同在节点ui处的处理过程完全相同,步骤转至701’;

步骤701’:判断节点u0当前无线接收缓冲器中存在需要中转的来自于节点ux的数据包dx’={mi,mj,mq,……,mp,mx,macix},同时节点u0有信息包m0需要发送给基站b;

步骤702’:继续执行步骤703’;

步骤703’:节点u0有信息包m0需要发送给基站b,该需要发送的数据包数目z=1,同时采用mac算法生成信息包m0信息的mac标签mac0,标签mac0附加在其信息包m0后构成其数据包d0’={m0,mac0};节点u0当前无线接收缓冲器中有需要中转的数据包dx’,该需要中转的数据包数目x=1;

步骤704’:判断x+z=2>1,则说明该节点u0处有2个标签,需要采用聚合算法进行处理,继续执行步骤705’;

步骤705’:x+z=2>1说明有2个标签可以采用聚合算法进行处理,则在该节点u0处采用聚合mac算法对标签进行处理,生成新的聚合标签maci0,并按照标签聚合的先后顺序将参与聚合的数据包中的信息与该节点u0的信息包m0依次排列,组成一个新的信息包m0’={mi,mj,mq,……,mp,mx,m0};则新的标签就是maci0,新的信息包就是m0’={mi,mj,mq,……,mp,mx,m0},并跳转至步骤706’;

步骤706’:将节点u0处所生成的新的标签maci0附加到其新的信息包m0’后生成新的数据包d0’={mi,mj,mq,……,mp,mx,m0,maci0},此节点u0是汇聚节点,将新数据包d0’直接发送给基站b,并跳转至步骤710;

步骤710:基站b对接收到的数据包d0’={mi,mj,mq,……,mp,mx,m0,maci0}采用认证算法进行鉴别;即基站b接收到该消息后,根据本身与节点ui、节点uj、节点uq、……、节点up、节点ux、节点u0分别共享的密钥ki、kj、kq、……、kp、kx、k0代入mac函数重新计算标签maci’、macj’、macq’、……、macp’、macx’、mac0’,然后对计算得到的标签maci’、macj’、macq’、……、macp’、macx’、mac0’进行异或操作得到标签maci0’,并将计算得到的标签maci0’与接收到的数据包d0’中的标签maci0进行比较;如果二者相同,则接收者基站b可确信数据包d0’消息未被篡改,并且接收者基站b可确信数据包d0’消息来自所声称的发送者节点ui、节点uj、节点uq、……、节点up、节点ux、节点u0;否则,则接收者基站b不能确认数据包d0’消息未被篡改,不能确信数据包d0’消息来自所声称的发送者节点ui、节点uj、节点uq、……、节点up、节点ux、节点u0。

本发明的有益效果:

1)降低能量消耗、提高网络工作寿命:不同发送节点根据要发送的信息计算出多个mac消息认证标签,将这些mac消息认证标签在多跳中转的节点上聚合成一个短的标签附加在消息后转发出去;采用聚合mac算法需要耗费一定时间,但是耗时相对较小,计算量小,使得整个网络中无线发送的数据包负荷大大减少,从而大大降低无线发送数据所耗费的能量和带宽,延长节点生存时间,延长网络的寿命,特别是在节点数目较多时,其能效优势则更加明显。

2)更好的安全性:本发明接收节点与多个发送节点之间分别共享不同的密钥,密钥长度为n,由于其它节点并不知道该密钥,从攻击者的角度来看,mac消息认证标签是随机的,而将随机的一串值与任何其它不相关的随机的值进行异或操作,仍然会产生一个随机的一串值;敌手对其进行攻击的概率不会高于2-n,即采用聚合mac算法所生成的短标签仍然可以被接收节点用于对接收到的消息及来源方的身份进行鉴别。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中mac消息认证信息流的示意图。

图2为网络拓扑结构示意图。

图3为本发明在汇聚节点u0处本节点mac标签与1个mac标签聚合从而实现消息认证的消息流示意图。

图4为本发明在汇聚节点u0处本节点mac标签与1个聚合标签进行聚合从而实现消息认证的消息流示意图。

图5为本发明在汇聚节点u0处本节点mac标签与1个mac标签1个聚合标签进行聚合从而实现消息认证的消息流示意图。

图6为本发明在汇聚节点u0处本节点mac标签与多个mac标签多个聚合标签进行聚合从而实现消息认证的消息流示意图。

图7为本发明多跳路径在多个中转节点处采用聚合mac算法的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的设计思想是:在无线传感器网络中,同一个节点(例如基站)与不同的发送节点中每一个发送节点都共享一个不同的密钥。不同发送节点根据要发送的信息计算出多个mac标签,这些mac标签在多跳中转的节点上被聚合成一个短标签附加在消息后转发出去,此短标签可以被接收节点用于对接收到的消息及来源方的身份进行鉴别。

一种无线传感器网络中消息认证的方法,无线传感器网络中包括一个基站b、一个汇聚节点u0和至少一个采集节点,汇聚节点u0是与基站b进行通信的唯一节点,所有的采集节点均可通过多跳无线网络将数据发送给汇聚节点u0,节点ui要发送给基站b的信息包为mi,节点ui与基站b之间的密钥为ki,i=0,1,……,m,m+1为节点的个数,如图2所示,节点ui有数据需要发送给基站b,则在某一次通信过程中,路径可能为:ui→uj→uq→…→up→ux→u0,即从节点ui点发送的无线数据包,依次经由节点uj、uq、……up、ux到达汇聚节点u0,然后发送给基站b。

实施例一:

一种无线传感器网络中消息认证的方法,其步骤如下:

步骤1:判断节点ui当前无线接收缓冲器中是否已经存在一个或者多个需要中转的数据包或者节点ui是否有信息包需要发送给基站b;

步骤2:如果没有,则延迟一段时间τ后跳转到步骤1;否则继续执行步骤3;

步骤3:如果节点ui有信息包mi需要发送给基站b,需要发送的数据包数目使用z来表示,采用mac算法利用密钥ki和信息包mi信息生成mac标签maci,标签maci附加在其信息包mi后构成数据包di={mi,maci};如果节点ui当前无线接收缓冲器中有一个或者多个需要中转的数据包,需要中转的数据包数目用x来表示。

mac算法生成的标签其中,ki为密钥,n为密钥长度,ki∈{0,1}n,信息包mi∈{0,1}*,mac()是公开函数,指常规的加密或者散列函数,由它可以产生定长的值,tagi是mac标签。

步骤4:判断(x+z)是否大于1,如果否,说明该节点ui处只有1个标签,不需要采用聚合算法进行处理,则新的标签就是标签maci或者需要中转的数据包中所包含的标签,新的信息包就是信息包mi或者需要中转的数据包中的信息包;

若(x+z)>1,在节点ui处采用聚合mac算法对标签进行处理,生成新的聚合标签,并按照标签聚合的先后顺序将参与聚合的数据包中的信息与该节点ui的信息包mi依次排列,组成一个新的信息包mi’。

聚合mac算法根据输入的不同,可以分成三种情况:聚合mac算法的输入为一个以上的mac标签tagi、……、tagn、……、tagj,输出为tagij,即聚合标签macij,且为异或运算;

聚合mac算法的输入为一个或者一个以上的mac标签tagi、……、tagn、……、tagj和一个或一个以上的聚合标签tagpq、……、taguw、……、tagrs,输出为tag1s,即聚合标签为:

聚合mac算法的输入为一个以上的聚合标签tagpq、……、taguw、……、tagrs,输出为tagps,即聚合标签为:

为异或运算。

步骤5:将节点ui所生成的新的标签附加到其新的信息包mi’后生成新的数据包di’,如果此节点ui是汇聚节点u0,则将新的数据包di’直接发送给基站b,并跳转至步骤8;否则,则将新的数据包di’无线发送出去;

步骤6:节点ui无线发送出的数据包di’通过其它节点经过多跳网络中转给汇聚节点u0,在每个参与中转的节点处的处理同在节点ui节点的处理过程完全相同;

节点ui无线发送出的数据包di’被其下一跳节点uj所中转,在节点uj处的处理同在节点ui节点的处理过程完全相同。节点ui无线发送出的数据包di’通过0个或者多个其它节点经过多跳网络中转给汇聚节点u0。

步骤7:在汇聚节点u0处的处理同在节点ui处的处理过程完全相同,重复步骤1-5将数据包发送给基站b;

步骤8:基站b对接收到的数据包采用认证算法进行鉴别。

基站b的认证算法为:

计算:

判断如果tagiy'=tagiy,即maciy'=maciy,输出为1,否则输出为0;

其中,基站b接收的数据包为d’={mi,……,mj,……,mp,……,my,tagiy},节点ui要发送给基站b的信息包为mi,节点ui与基站b之间的密钥为ki,i=0,1,……,m,n为密钥长度,ki∈{0,1}n,信息包mi∈{0,1}*,mac()是公开函数,指常规的加密或者散列函数,由它可以产生定长的值。

实施例二

一种无线传感器网络中消息认证的方法,在汇聚节点u0处本节点mac标签与1个mac标签聚合实现消息认证的消息流示意图,如图3所示,其步骤如下:

步骤301:判断节点u0当前无线接收缓冲器中已经存在一个需要中转的数据包,即来自于节点u0前端的节点u1的数据包d1={m1,mac1},节点u0有信息包需要发送给基站b;

步骤302:继续执行步骤303;

步骤303:节点u0有信息包m0需要发送给基站b,需要发送的数据包数目z=1,同时,采用mac算法生成信息包m0信息的mac标签mac0,标签mac0附加在信息包m0后构成其数据包d0={m0,mac0};节点u0当前无线接收缓冲器中有一个需要中转的数据包d1,需要中转的数据包数目x=1;

步骤304:判断x+z=2>1,则继续执行步骤305;

步骤305:x+z=2>1说明有2个标签可以采用聚合算法进行处理,将需要中转的数据包d1中的消息认证标签mac1与节点u0的消息认证标签mac0采用聚合mac算法进行聚合后生成新的聚合标签mac10,并按照标签聚合的先后顺序将参与聚合的数据包中的信息包m1与采集节点u0的信息包m0依次排列,组成一个新的信息包m0’={m1,m0};

步骤306:将节点u0处生成的聚合标签mac10附加到其新的信息包m0’后生成新的数据包d0’={m1,m0,mac10},判断该节点u0就是汇聚节点,则将新数据包d0’直接发送给基站b,并跳转至步骤307;

步骤307:基站b对接收到的数据包d0’={m1,m0,mac10}采用认证算法进行鉴别;基站b接收到数据包d0’后,根据本身与采集节点u1、汇聚节点u0分别共享的密钥k1、k0代入mac函数重新计算标签mac1’和标签mac0’,然后对计算得到的标签mac0’和标签mac1’进行异或操作得到mac10’,并将计算得到的mac10’与接收到的数据包d0’中的聚合标签mac10进行比较;如果二者相同,则接收者基站b可确信该数据包d0’的消息未被篡改,并且接收者基站b可确信数据包d0’消息来自所声称的发送者节点u1和节点u0;否则,则接收者基站b不能确认数据包d0’消息未被篡改,不能确信数据包d0’消息来自所声称的发送者节点u1和节点u0。

实施例三

一种无线传感器网络中消息认证的方法,在汇聚节点u0处本节点mac标签与1个聚合标签进行聚合实现消息认证的消息流示意图,如图4所示,其步骤如下:

步骤401:判断节点u0当前无线接收缓冲器中已经存在一个需要中转的数据包,即来自于节点u0前的节点ur的数据包dr’={m1,m2,……,mr,mac1r},同时节点u0有信息包m0需要发送给基站b;

步骤402:继续执行步骤403;

步骤403:采集节点u0有信息包m0需要发送给基站b,需要发送的数据包数目z=1,同时,采用mac算法生成信息包m0信息的mac标签mac0,标签mac0是将信息包m0和密钥k0带入mac函数得到;标签mac0附加在其信息包m0后构成其数据包d0={m0,mac0};节点u0当前无线接收缓冲器中有一个需要中转的数据包dr’,该需要中转的数据包数目x=1;

步骤404:判断x+z=2>1,继续执行步骤405;

步骤405:x+z=2>1说明有2个标签可以采用聚合算法进行处理,在节点u0处采用聚合mac算法对标签进行处理,将需要中转的数据包dr’中的聚合标签mac1r与节点u0的消息认证mac标签mac0采用聚合mac算法进行聚合后生成聚合标签mac10,并按照标签聚合的先后顺序将参与聚合的数据包中的信息与节点u0的信息包m0依次排列,组成一个新的信息包m0’={m1,m2,……,mr,m0};

步骤406:将节点u0处所生成的新的标签mac10附加到其新的信息包m0’后生成新的数据包d0’={m1,m2,……,mr,m0,mac10},此节点u0就是汇聚节点,则将新的数据包d0’直接发送给基站b,并跳转至步骤407;

步骤407:基站b对接收到的数据包d0’={m1,m2,……,mr,m0,mac10}采用认证算法进行鉴别;基站b接收到该数据包后,根据本身与节点u1、节点u2、……、节点ur、节点u0分别共享的密钥k1、k2、……、kr、k0代入mac函数重新计算标签mac1’、mac2’、……、macr’、mac0’,然后对计算得到的标签mac1’、mac2’、……、macr’、mac0’进行异或操作得到标签mac10’,并将计算得到的标签mac10’与接收到的数据包d0’中的聚合标签mac10进行比较;如果二者相同,则接收者基站b可确信数据包d0’消息未被篡改,并且接收者基站b可确信数据包d0’消息来自所声称的发送者节点u1、u2、……、ur、u0;否则,则接收者基站b不能确认数据包d0’消息未被篡改,不能确信数据包d0’消息来自所声称的发送者节点u1、u2、……、ur、u0。

实施例四

一种无线传感器网络中消息认证的方法,在汇聚节点u0处本节点mac标签与1个mac标签1个聚合标签进行聚合实现消息认证的消息流示意图,如图5所示,其步骤如下:

步骤501:判断节点u0当前无线接收缓冲器中已经存在2个需要中转的数据包,即来自于节点u0前面的节点up和uq的数据包分别为dp’={mi,……,mp,macip}、dq’={mq,macq},同时节点u0有信息包m0需要发送给基站b;

步骤502:继续执行步骤503;

步骤503:节点u0有信息包m0需要发送给基站b,需要发送的数据包数目z=1,同时,采用mac算法生成信息包m0信息的mac标签mac0,标签mac0是将信息包m0和密钥k0带入mac函数得到,标签mac0附加在信息包m0后构成数据包d0={m0,mac0};节点u0当前无线接收缓冲器中有2个需要中转的数据包dp’和dq’,该需要中转的数据包数目x=2;

步骤504:判断x+z=3>1,继续执行步骤505;

步骤505:x+z=3>1说明有3个标签可以采用聚合算法进行处理,在节点u0处采用聚合mac算法对标签进行处理,将需要中转的数据包dp’和dq’中的聚合标签mac1p、消息认证标签macq与节点u0的消息认证标签mac0采用聚合mac算法进行聚合后生成聚合标签maci0,即并按照标签聚合的先后顺序将参与聚合的数据包中的信息与节点u0的信息包m0依次排列,组成一个新的信息包m0’={mi,……,mp,mq,m0};

步骤506:将节点u0处生成的聚合标签maci0附加到其新的信息包m0’后生成新的数据包d0’={mi,……,mp,mq,m0,maci0},此节点u0就是汇聚节点,则将新数据包d0’直接发送给基站b,并跳转至步骤507;

步骤507:基站b对接收到的数据包d0’={mi,……,mp,mq,m0,maci0}采用认证算法进行鉴别;基站b接收到数据包的消息后,根据本身与节点ui、……、节点up、节点uq、节点u0分别共享的密钥ki、……、kp、kq、k0代入mac函数重新计算标签maci’、macp’、……、macq’、mac0’,然后对计算得到的标签maci’、macp’、……、macq’、mac0’进行异或操作得到标签maci0’,并将计算得到的标签maci0’与接收到的数据包d0’中的聚合标签maci0进行比较;如果二者相同,则接收者基站b可确信数据包d0’消息未被篡改,并且接收者基站b可确信数据包d0’消息来自所声称的发送者节点ui、……、节点up、节点uq、节点u0;否则,则接收者基站b不能确认数据包d0’消息未被篡改,不能确信数据包d0’消息来自所声称的发送者节点ui、……、节点up、节点uq、节点u0。

实施例五

一种无线传感器网络中消息认证的方法,在汇聚节点u0处本节点mac标签与多个mac标签多个聚合标签进行聚合从而实现消息认证的消息流示意图,如图6所示,其步骤如下:

步骤601:判断节点u0当前无线接收缓冲器中已经存在多个需要中转的数据包,分别为来自于节点ua的数据包da’={md,……,ma,macda}、……、来自于节点ue的数据包de’={mh,……,me,mache}、来自于节点uj的数据包dj’={mj,macj}、……、来自于节点us的数据包ds’={ms,macs},同时节点u0有信息包m0需要发送给基站b;

步骤602:继续执行步骤603;

步骤603:节点u0有信息包m0需要发送给基站b,该需要发送的数据包数目z=1,同时采用mac算法生成信息包m0信息的mac标签mac0,标签mac0是将信息包m0和密钥k0带入mac函数得到,标签mac0附加在其信息包m0后构成其数据包d0={m0,mac0};节点u0当前无线接收缓冲器中有多个需要中转的数据包,该需要中转的数据包数目用x来表示,此时x>2;

步骤604:判断x+z>3,继续执行步骤605;

步骤605:x+z>1说明有3个以上标签可以采用聚合算法进行处理,在节点u0处采用聚合mac算法对标签进行处理,将需要中转的数据包中da’、……、de’、dj’、……、ds’的聚合标签macda、……、mache以及消息认证标签macj、……、macs与采集节点u0的消息认证标签mac0采用聚合mac算法进行聚合后生成聚合标签macd0,且并按照标签聚合的先后顺序将参与聚合的数据包中的信息与采集节点u0的信息包m0依次排列,组成一个新的信息包m0’={md,……,ma,……,mh,……,me,mj,……,ms,m0};

步骤606:将节点u0处所生成的新的标签macd0附加到其新的信息包m0’后生成新的数据包d0’={md,……,ma,……,mh,……,me,mj,……,ms,m0,macd0},此节点u0就是汇聚节点,则将新数据包d0’直接发送给基站b,并跳转至步骤607;

步骤607:基站b对接收到的数据包d0’={md,……,ma,……,mh,……,me,mj,……,ms,m0,macd0}采用认证算法进行鉴别;基站b接收到数据包d0’的消息后,根据本身与节点ud、……节点ua、……、节点uh、……节点ue、节点uj、……、节点us、节点u0分别共享的密钥kd、……、ka、……、kh、……、ke、kj、……、ks、k0代入mac函数重新计算标签macd’、……、maca’、……mach’、……mace’、macj’、……、macs’、mac0’,然后对计算得到的标签macd’、……、maca’、……、mach’、……、mace’、macj’、……、macs’、mac0’进行异或操作得到标签macd0’,并将计算得到的标签macd0’与接收到的数据包d0’中的聚合标签macd0进行比较;如果二者相同,则接收者基站b可确信数据包d0’消息未被篡改,并且接收者基站b可确信数据包d0’消息来自所声称的发送者节点ud、……、节点ua、……、节点uh、……、节点ue、节点uj、……、节点us、节点u0;否则,则接收者基站b不能确认数据包d0’消息未被篡改,不能确信数据包d0’消息来自所声称的发送者节点ud、……、节点ua、……、节点uh、……、节点ue、节点uj、……、节点us、节点u0。

实施例六

一种无线传感器网络中消息认证的方法,数据包从节点ui出发,历经多个中转节点uj、uq……up、ux,到达汇聚节点u0,在节点ui、uj、uq……up、ux、u0处分别采用聚合mac算法从而实现消息认证的消息流示意图,如图7所示,其步骤如下:

步骤701:判断节点ui当前无线接收缓冲器中不存在需要中转的数据包,但节点ui有信息包mi需要发送给基站b;

步骤702:继续执行步骤703;

步骤703:节点ui有信息包mi需要发送给基站b,该需要发送的数据包数目z=1,同时采用mac算法,生成mi信息的mac标签maci,附加在其信息包mi后构成其数据包di={mi,maci};节点ui当前无线接收缓冲器中没有需要中转的数据包,该需要中转的数据包数目x=0;

步骤704:判断x+z=1,则说明该节点ui处只有1个标签,不需要采用聚合算法进行处理,则新的标签就是maci,新的信息包就是mi;

步骤705:将节点ui处所生成的新的标签maci附加到其新的信息包mi’={mi}后生成新的数据包di’=di={mi,maci},此节点ui不是汇聚节点,则将该新数据包di’无线发送出去;

步骤706:节点ui无线发送出的数据包被其下一跳节点uj所中转,在节点uj节点处的处理同在ui节点的处理过程完全相同;此处不再赘述;

步骤707:节点ui无线发送出的数据包通过多个其它节点经过多跳网络中转给汇聚节点u0,在每个中转节点处即节点uq、……、节点up、节点ux等处的处理同在ui节点的处理过程完全相同,此处不再赘述;

步骤708:在汇聚节点u0处的处理同在节点ui处的处理过程完全相同,如下;

步骤701’:判断节点u0当前无线接收缓冲器中存在需要中转的来自于节点ux的数据包dx’={mi,mj,mq,……,mp,mx,macix},同时节点u0有信息包m0需要发送给基站b;

步骤702’:继续执行步骤703’;

步骤703’:节点u0有信息包m0需要发送给基站b,该需要发送的数据包数目z=1,同时采用mac算法生成信息包m0信息的mac标签mac0,标签mac0附加在其信息包m0后构成其数据包d0’={m0,mac0};节点u0当前无线接收缓冲器中有需要中转的数据包dx’,该需要中转的数据包数目x=1;

步骤704’:判断x+z=2>1,则说明该节点u0处有2个标签,需要采用聚合算法进行处理,继续执行步骤705’;

步骤705’:x+z=2>1说明有2个标签可以采用聚合算法进行处理,则在该节点u0处采用聚合mac算法对标签进行处理,生成新的聚合标签maci0,并按照标签聚合的先后顺序将参与聚合的数据包中的信息与该节点u0的信息包m0依次排列,组成一个新的信息包m0’={mi,mj,mq,……,mp,mx,m0};则新的标签就是maci0,新的信息包就是m0’={mi,mj,mq,……,mp,mx,m0},并跳转至步骤706’;

步骤706’:将节点u0处所生成的新的标签maci0附加到其新的信息包m0’后生成新的数据包d0’={mi,mj,mq,……,mp,mx,m0,maci0},此节点u0是汇聚节点,将新数据包d0’直接发送给基站b,并跳转至步骤710;

步骤710:基站b对接收到的数据包d0’={mi,mj,mq,……,mp,mx,m0,maci0}采用认证算法进行鉴别;即基站b接收到该消息后,根据本身与节点ui、节点uj、节点uq、……、节点up、节点ux、节点u0分别共享的密钥ki、kj、kq、……、kp、kx、k0代入mac函数重新计算标签maci’、macj’、macq’、……、macp’、macx’、mac0’,然后对计算得到的标签maci’、macj’、macq’、……、macp’、macx’、mac0’进行异或操作得到标签maci0’,并将计算得到的标签maci0’与接收到的数据包d0’中的标签maci0进行比较;如果二者相同,则接收者基站b可确信数据包d0’消息未被篡改,并且接收者基站b可确信数据包d0’消息来自所声称的发送者节点ui、节点uj、节点uq、……、节点up、节点ux、节点u0;否则,则接收者基站b不能确认数据包d0’消息未被篡改,不能确信数据包d0’消息来自所声称的发送者节点ui、节点uj、节点uq、……、节点up、节点ux、节点u0。

本发明不同发送节点根据要发送的信息计算出多个mac消息认证标签,通过将这些mac消息认证标签在多跳中转的节点上采用聚合mac算法聚合成一个短的标签附加在消息后转发出去;短标签仍然可以被接收节点用于对接收到的消息及来源方的身份进行鉴别;聚合算法执行异或操作,计算量小却可以使得整个网络中无线发送的数据包负荷大大减少,从而大大降低无线发送数据所耗费的能量和带宽,延长节点生存时间,延长网络的寿命;特别是在节点数目较多或者通信较为频繁时,其能效优势则更加明显。同时,由于接收节点与多个发送节点之间分别共享不同的密钥,而其它节点并不知道该密钥,故接收者可确信消息未被篡改,并且接收者可确信消息来自所声称的发送者。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1