一种野战环境中士兵信息的隐私保护方法

文档序号:7802838阅读:297来源:国知局
一种野战环境中士兵信息的隐私保护方法
【专利摘要】本发明针对这一问题提出了一种野战环境中保护士兵的信息和位置安全的隐私保护方法,利用区域密钥在相邻节点间建立安全路径来保护士兵的体征等个人信息;步骤一、密钥初始化阶段。整个网络划分为较小的区域,密钥池同样划分为与各区域相对应的子集,相邻节点直接共享密钥,形成一条安全路径。步骤二、网络初始化阶段。数据包从源节点到基站的多跳路由过程中,为了完成到基站的寻路,每个节点需要建立一个动态的路由表。步骤三、数据传输阶段。引入了一种定向随机的路由方案,方案中利用代理源节点和伪基站分别隐藏真实的源节点和基站的位置,代理源节点在转发数据时会产生一定数量的虚假包,以此来误导攻击者,延长攻击者找到士兵位置的时间。
【专利说明】一种野战环境中士兵信息的隐私保护方法
【技术领域】
[0001]本发明提出了一种野战环境中士兵信息与位置的隐私保护方法,属于信息安全和无线传感器网络技术的交叉领域。
【背景技术】
[0002]无线传感器网络(WSN, WirelessSensorNetworks)综合了分布式计算、传感器、网络及通信、嵌入式系统等多种技术,具有多学科高度交叉的特性。无线传感器网络由大量的传感器节点组成,节点比较廉价,布置在监控区域内,传感器节点之间通过无线信号相互交换数据,自组织的形成网络,各节点互相合作,感知物理信息(如温度、湿度、速度等),最后通过多跳路由的方式将采集到的被检测对象的相关信息发送给基站。相对于传统的无线通信网络以及移动Ad-hoc网络,无线传感器网络具有自我组织、相互合作等特性,这些特性使得无线传感器网络可以布置在特殊环境下获取重要信息,如森林、沙漠、战场等。
[0003]正是无线传感器网络所展现出的可观的应用前景,使无线传感器网络的研究最先开始于军事领域。在野战环境中,每个士兵携带一个无线传感器节点,随时监测士兵的信息,例如体征数据——体温、心率、血压等等,位于基站的野战后勤人员可以根据节点传送的数据信息定位需要援救的士兵并且分配医疗小组前去营救。整个野战环境构成了一个无线传感器网络,而每个士兵可以看成一个源节点,基站即为作战指挥中心。
[0004]无线传感器网络的安全问题也是近年来无线传感器网络研究的热点,位置隐私保护是无线传感器网络安全的一个重要分支。主要表现在以下两个方面。
[0005]“源节点”是传感器网络中所有节点距离被监测目标、事件最近的节点。一旦传感器网络中源节点的位置隐私被暴露,将不可避免地威胁所监测目标的安全性,因此,源节点的位置隐私保护十分重要。共享的无线传输媒介使得攻击者很容易定位数据包发送者的位置,虽然攻击者不能获取加密后数据包的具体内容,却能够通过逆向、逐跳追踪的方式找到真实的源节点,最终将目标对象捕获。例如,当无线传感器网络散布于战场中用于获取军队的实时信息。在对作战人员的监测过程中,要在获取其有效信息的前提下保护其安全。若攻击者能够发现数据源节点的位置,则作战士兵将被捕获或遭到毁灭性打击。
[0006]基站的位置隐私保是另一个重要方面。首先,无线传感器网络中,基站负责从其他传感器节点收集数据,因此是整个网络中的核心节点;其次,由于网络中所有节点收集到的信息最终将被逐跳传送至基站,因此基站的失效将导致整个网络的瘫痪。攻击者攻击基站主要有两种方式,逐跳追踪数据包的方式以及全局流量分析的方式。网络中可能同时有多个源节点采集、发送数据,多个源节点同时向基站发送信息时,越是靠近基站的节点越是具有更高的通信流量,,攻击者可以利用“流量不平衡”这个特点,分析网络中各节点的通信流量快速定位基站的位置。在野战环境中,作战指挥中心(即基站)是整个战场最重要的一个部分。
[0007]目前,由于传感器网络采用无线通信,数据在节点之间传输时攻击者可能通过链路层窃听敏感数据,这种攻击模式称为外部攻击,应对外部攻击主要采用数据加密和数据扰动等技术。进行内部攻击时,攻击者通过俘获或复制传感器节点等手段成为网络的参与者,能够获取被俘获传感器节点的所有数据,并且能够获取密钥从而具有解密能力。鉴于内部攻击者具有一定的解密能力,单独采用逐跳加密方式(hop-by-hopencryption)将不再有效,传感器节点和基站共享密钥的端到端加密方式(end-to-endencryption)又给网内数据聚集和查询带来困难。这些问题同样存在于部署了无线传感器网络的野战环境中。

【发明内容】

[0008]技术问题:本发明提出了一种野战环境中保护士兵的信息和位置安全的隐私保护方法,利用区域密钥在相邻节点间建立安全路径来保护士兵的体征等个人信息,同时提出了一种改进的随机路由转发方式,在数据传输的过程中适当的注入了假数据包混淆攻击者,并且利用伪装的源节点和基站来隐藏并且保护真实的源节点和基站。最终目标是克服目前无线传感器网络用于野外战场时外部攻击和内部攻击存在的问题。
[0009]技术方案:
[0010]重要术语及约束:
[0011]密钥池:包含若干密钥的集合。
[0012]近邻居集合:相对于当前节点,到基站的跳数更少的邻居节点的集合。
[0013]远邻居集合:相对于当前节点,到基站的跳数更多的邻居节点的集合。
[0014]代理源节点:虚假的源节点,出于某种安全性考虑,真实的源节点在向基站发送信息之前,先将信息通过一定的方法发送给代理源节点。
[0015]伪基站:虚假的基站,出于某种安全性考虑,节点发送的信息先经过这些伪基站聚合之后传送到真实的基站。
[0016]为了保护野战环境下士兵的信息与位置的安全,本发明采用的技术方案如下:
[0017]为了保护士兵传送的体征等的个人信息,防止攻击者威胁士兵的安全,本方案改进了现有的随机密钥预分配方案。把大的网络覆盖范围划分为较小的区域,密钥池同样划分为与区域相对应的子集,传感器节点从相应的密钥子集中选取密钥,然后按照划分的区域部署,可以使得同一区域内节点的共享密钥概率提高。每个区域中的节点具有不同的区域标识。利用区域信息,则可以减少广播信息数量。网络中士兵要发送信息时,则通过建立起来的安全路径逐步传送至基站。
[0018]为了保护士兵的位置信息,士兵携带的源节点并不是单纯地沿着固定的路由或者按照最小路径路由协议传送。本方案引入了一种定向随机的安全路由方案,也就是每个节点建立起两个集合:近邻居集合和远邻居集合,节点以一定的概率选择两个集合中的节点,并且随机选择集合中的节点作为下一跳目标。同时,利用代理源节点和伪基站分别隐藏真实的源节点和基站的位置,代理源节点在转发数据时会产生一定数量的虚假包,以此来误导攻击者,延长攻击者找到士兵位置的时间。
[0019]本发明方法,包括以下三个步骤:
[0020]步骤一、密钥初始化阶段。整个网络划分为较小的区域,密钥池同样划分为与各区域相对应的子集,相邻节点直接共享密钥,形成一条安全路径。
[0021]步骤二、网络初始化阶段。数据包从源节点到基站的多跳路由过程中,为了完成到基站的寻路,每个节点需要建立一个动态的路由表。[0022]步骤三、数据传输阶段。引入了一种定向随机的路由方案,方案中利用代理源节点和伪基站分别隐藏真实的源节点和基站的位置,代理源节点在转发数据时会产生一定数量的虚假包,以此来误导攻击者,延长攻击者找到士兵位置的时间。
[0023]该方法采用如下步骤:
[0024]一、密钥初始化阶段:由于传感器节点能源有限,通信覆盖范围小,节点通常只与邻居节点直接通信,首先把整个无线传感器网络覆盖范围划分为较小的区域,密钥池同样划分为与该区域相对应的子集,传感器节点从相应的密钥子集中选取密钥,然后按照划分的区域部署,使得同一区域内节点的共享密钥概率提高,相邻区域之间的节点通过密钥子集的重叠达到所设定的共享概率,
[0025]整个无线传感器网络被划分为多个区域后,每个区域中的传感器节点具有不同区域标识,把自身获得的信息与所在区域的地理位置相关联,基站节点发布控制命令时,利用特定的区域信息,减少广播信息数量,
[0026]在野战的军事场景下,对消息中记录士兵具体信息的字段进行加密,
[0027]具体分配过程如下:
[0028]步骤1、网络管理者根据任务需求把整个无线传感器网络覆盖范围划分为多个六边形区域domain(i,j),其中1、j分别代表区域的横坐标和纵坐标位置,网络中的各个节点将被随机划分到这些区域中;
[0029]步骤2、网络管理者生成密钥总数为N的大密钥池以及为每个密钥分配一个密钥标识;
[0030]步骤3、网络管理者把大密钥池分成不同的密钥数均为M的子密钥空间subset (i, j),每一个子密钥空间与一个六边形区域domain (i, j)对应;
[0031]步骤4、处于区域domain(i, j)中的节点从其对应的子密钥空间subset(i, j)中随机选取m个不同密钥作为该区域节点共享的密钥链K1, K2,, Km,密钥链中每个密钥都有唯一的标识IDKi ;
[0032]步骤5、各个士兵按照其自身的地理位置,加入到划分的各个区域;
[0033]步骤6、每个节点广播它所持有的密钥链中的m个密钥标识,寻找和自己有部分或者全部相同密钥的邻居节点;
[0034]步骤7、邻居节点收到广播后,与自己密钥链中的密钥标识比对,寻找有相同标识的密钥,若找到至少一个,则跳至步骤9执行;
[0035]步骤8、如果邻居节点间没有找到任何一个相同标识的密钥,则与发出广播的节点进行协商,从广播节点的密钥链中选取一个密钥作为共享密钥,从而建立安全通信;
[0036]步骤9、确定两者之间的一条安全路径,即邻居节点与发出广播的节点协商利用已有的任一相同密钥建立安全通信;
[0037]步骤10、广播节点反复执行步骤8)与步骤9),直至与其所有邻居节点建立安全通?目路径;
[0038]步骤11、整个无线传感器网络中共享密钥的邻居节点间的安全链路组成,相邻节点间通过共享的密钥进 行安全的通信;
[0039]二、网络初始化阶段:源节点采集到数据包之后,并不是沿最短路径直接将数据包传送给基站,数据包在到达某个节点之后,首先确定其邻居节点集合,其后随机从该集合中选择一个节点作为下一跳中继,而不是总是选择距离基站最近的节点,数据包从源节点到基站的多跳路由过程中,为了完成到基站的寻路,每个节点需要建立一个动态的路由表维护其邻居信息,
[0040]为了方便描述,定义如下:
[0041]基站:Sink,源节点:S,伪基站:DSink,代理源节点:DS,虚拟汇聚节点:Fsink ;基站一跳范围内的节点:Nsink ;中间节点:Mnode ;真实消息:RM,虚假消息:FM ;
[0042]步骤21、Sink向其一跳范围内的节点发送一个消息,消息中的跳数记录字段值设为O ;
[0043]步骤22、其一跳范围内的邻居节点NSink收到该消息后,记录该消息当前已经传输的跳数,并存储该消息及其跳数,以此来判断节点距离基站的远近;
[0044]步骤23、节点NSink存储了跳数字段之后,向自己的所有邻居节点继续发送修改跳数后的消息;
[0045]步骤24、在此过程中的任一中间节点,比如MNode,收到消息后会将消息中的跳数字段加I并存储,然后继续向其邻居节点发送;
[0046]步骤25、步骤24将重复执行,直至全网所有节点都接收到该消息,可能每个节点会收到多个来自于不同的邻居的该消息的副本,节点将其中跳数最少的一个作为自己距离基站的跳数;
[0047]步骤26、此时,整个网络中的节点都知道了自己距离基站的跳数距离,每个节点逐一比较其所有邻居节点距离基站的跳数与该节点本身距离基站的跳数,将反复执行步骤27-步骤29,直至比较完所有邻居节点;
[0048]步骤27、如果该邻居节点距离基站的跳数大于当前节点距离基站的跳数,则执行步骤28,如果该邻居节点距离基站的跳数小于等于当前节点距离基站的跳数,则执行步骤29 ;
[0049]步骤28、将该邻居节点加入到当前节点的远邻居集合;
[0050]步骤29、将该邻居节点加入到当前节点的近邻居集合;
[0051]步骤210、整个网络中每一节点都完成并确定了远邻居集合和近邻居集合;
[0052]三、数据传输阶段:在数据传输阶段,网络中的源节点即野战环境中士兵携带的节点采集到数据包之后,并不是沿最短路径直接将数据包传送给基站,在数据包从源节点到基站的路由过程中引入一个随机选择路由过程,从而使外部攻击者无法通过反向逐跳追踪无线信号的方式来定位网络中源节点的位置,
[0053]步骤31、源节点S准备发送消息,节点S利用公式dMnd = dminX (|x|+l)计算代理源节点DS的位置,其中,dmin为DS距离S的最短距离,X为一随机数,服从X?Ν(0,σ )的正态分布;
[0054]步骤32、源节点S将drand值记录在消息的末尾字段内,依此作为标识某一 DS位置的依据;
[0055]步骤33、源节点S以概率P选择远邻居集合,概率1-P选择近邻居集合,0〈P〈0.5,若选择的集合为远邻居集合,则执行步骤34,否则执行步骤35 ;
[0056]步骤34、源节点S从远邻居集合中随机选取一个节点作为下一跳,将节点号写入要发送的消息内,跳过步,35执行步骤36 ;[0057]步骤35、源节点S从近邻居集合中随机选取一个节点作为下一跳,将节点号写入要发送的消息内;
[0058]步骤36、源节点S将预发送消息的跳数字段值置0,使用该节点与下一跳邻居节点的共享密钥将消息中记录士兵的信息字段加密后发送出去,同时该消息中记录了所使用的共享密钥的ID ;
[0059]步骤37、网络中收到消息的节点,比如中间节点MNode,查看消息中的下一跳字段值,若该字段值与自身节点号不相等,则不需要转发此消息,将此消息丢弃,回归到等待接收消息的状态,否则执行步骤38 ;
[0060]步骤38、节点MNode接收此消息,在自身存储的密钥中查找与该消息的密钥ID匹配的共享密钥,并使用该密钥将消息中记录士兵信息的字段解密;
[0061]步骤39、节点MNode将消息中的跳数字段加1,并存储在一个临时变量count中;
[0062]步骤310、节点MNode查看消息中末尾字段值drand,将其与count比较大小;若drand=count,则节点MNode为临时的代理源节点DS,跳转执行步骤312,否则该节点为普通的中间节点,继续执行步骤311 ;
[0063]步骤311、节点MNode选择了下一跳之后,设置下一跳字段值,选择一个共享密钥,对消息中的士兵信息字段加密后将该消息转发,并回归到等待接收消息的状态,此时被选中的下一跳节点将重复执行步骤39— 311,直到某个MNode’成为DS ;
[0064]步骤312、代理源节点DS先将真实消息RM缓存;
[0065]步骤313、代理源节点DS产生一个虚假包FM并将其广播发送出去,FM中的士兵信息字段值为一随机选择的数,并设置一个字段来记录跳数限制;
[0066]步骤314、代理源节点DS采用最短路径的方式将真实消息RM加密后发送至处于工作状态的任意一个伪基站Dsink ;
[0067]步骤315、接收到FM的节点判断消息中跳数限制字段值,若跳数限制字段值不为0,则将消息中跳数限制字段值减I并且转发,回归到等待接收消息的状态,否则将FM丢弃,回归到等待接收消息的状态;
[0068]步骤316、伪基站DSink接收真实消息RM后,为了减少网络中消息的数量,节约能量,DSink将固定的一段时间内收到的真实消息RM进行数据融合,即将这些不同的真实消息中的士兵信息字段融合成一个总的消息,形成一个新的士兵信息字段,然后加上其他字段形成新的真实的消息RM发送至基站;
[0069]步骤317、结束。
[0070]有益效果:
[0071]1、节能效果好。该方案对网络进行分区,在覆盖全网的同时有效地减少了重叠区域。节点仅需预分配数量较少的密钥,就能够以很高的慨率建立共享密钥,即使存在大量的移动节点仍能保持较高的连通概率。减少了节点存储的密钥数量,从而节约了能量。
[0072]2、节点选择下一跳的随机性使得节点监测到网络信号的时间跨度增大了。源节点采集到数据包之后,并不是沿最短路径直接将数据包传送给基站。数据包在到达某个节点之后,首先确定其邻居节点集合,其后随机从该集合中选择一个节点作为下一跳中继,而不是总是选择距离基站最近的节点。节点发送到基站的每个数据包分别选择不同的路径,原本的关键节点(如最短路径上的节点)发送数据包的频繁程度相应的降低,这样就给攻击者的追踪增加了难度。
[0073]3、网络的安全周期得到了延长。本方案在网络中注入了虚假的数据包,由于外部攻击者不能破解数据包的内容,也就不能区分真实的数据包与假的数据包,攻击者在追踪数据包的过程中可能会被引到错误的路径。为了确认数据包的真实性,攻击者需要持续监测多个数据包,持续监测更长的时间。注入假数据包的方式增加了攻击者攻击成功的时间开销,网络的安全周期相应的延长。
[0074]4、网络中源节点和基站的位置得到了双重的保护。在网络中加入了假的源节点和基站,也就是代理源节点和伪基站,将攻击者吸引到假的节点上,保护了真实节点的位置。同时本方案中选择的代理源节点并不是固定的,而是源节点根据公式动态计算而得,从而增大了攻击者找到真实源节点和基站位置的难度。
【专利附图】

【附图说明】
[0075]图1网络中士兵位置隐私保护场景,
[0076]图2密钥初始化阶段网络区域六边形划分法,
[0077]图3攻击者反向追踪源节点位置示意图,
[0078]图4源节点的消息传送至基站的过程。
【具体实施方式】
[0079]步骤一、密钥初始化阶段
[0080]由于传感器节点能源有限,通信覆盖范围小,节点通常只与邻居节点直接通信。首先把整个无线传感器网络覆盖范围划分为较小的区域,密钥池同样划分为与该区域相对应的子集,传感器节点从相应的密钥子集中选取密钥,然后按照划分的区域部署,使得同一区域内节点的共享密钥概率提高。相邻区域之间的节点通过密钥子集的重叠达到一定的共享概率(该共享概率将依据具体军事场景自行设定)。
[0081]整个无线传感器网络被划分为多个区域后,每个区域中的传感器节点具有不同区域标识,可以把自身获得的信息与所在区域的地理位置相关联。基站节点发布控制命令时,利用特定的区域信息,可以减少广播信息数量。
[0082]在野战的军事场景下,如果对每个节点发送消息的全部进行加密将会大大增加整个网络的能耗。为了更加节能,我们仅仅对消息中记录士兵具体信息的字段进行加密。
[0083]具体分配过程如下:
[0084]步骤1、网络管理者根据任务需求把整个无线传感器网络覆盖范围划分为多个六边形区域domain (i,j),如图2所示,其中1、j分别代表区域的横坐标和纵坐标位置,网络中的各个节点将被随机划分到这些区域中。
[0085]步骤2、网络管理者生成密钥总数为N的大密钥池以及为每个密钥分配一个密钥标识。
[0086]步骤3、网络管理者把大密钥池分成不同的密钥数均为M的子密钥空间subset (i, j),每一个子密钥空间与一个六边形区域domain (i, j)对应。
[0087]步骤4、处于区域domain(i, j)中的节点从其对应的子密钥空间subset(i, j)中随机选取m个不同密钥作为该区域节点共享的密钥链K1, K2,, Km,密钥链中每个密钥都有唯一的标识IDKi。
[0088]步骤5、各个士兵按照其自身的地理位置,加入到划分的各个区域。
[0089]步骤6、每个节点广播它所持有的密钥链中的m个密钥标识,寻找和自己有部分或者全部相同密钥的邻居节点。
[0090]步骤7、邻居节点收到广播后,与自己密钥链中的密钥标识比对,寻找有相同标识的密钥。若找到至少一个,则跳至步骤9执行。
[0091]步骤8、如果邻居节点间没有找到任何一个相同标识的密钥,则与发出广播的节点进行协商,从广播节点的密钥链中选取一个密钥作为共享密钥,从而建立安全通信。
[0092]步骤9、确定两者之间的一条安全路径,即邻居节点与发出广播的节点协商利用已有的任一相同密钥建立安全通信。
[0093]步骤10、广播节点反复执行步骤8)与步骤9),直至与其所有邻居节点建立安全通Ih路径。
[0094]步骤11、整个无线传感器网络中共享密钥的邻居节点间的安全链路组成,相邻节点间通过共享的密钥进行安全的通信。
[0095]步骤二、网络初始化阶段
[0096]源节点采集到数据包之后,并不是沿最短路径直接将数据包传送给基站。数据包在到达某个节点之后,首先确定其邻居节点集合,其后随机从该集合中选择一个节点作为下一跳中继,而不是总是选择距离基站最近的节点。。数据包从源节点到基站的多跳路由过程中,为了完成到基站的寻路,每个节点需要建立一个动态的路由表维护其邻居信息。
[0097]为了方便描述,定义如下:
[0098]基站:Sink,源节点:S,伪基站:DSink,代理源节点:DS,虚拟汇聚节点:FSink。基站一跳范围内的节点:NSink。中间节点:MNode。真实消息:RM,虚假消息:FM。
[0099]步骤1、Sink向其一跳范围内的节点发送一个消息,消息中的跳数记录字段值设为O。
[0100]步骤2、其一跳范围内的邻居节点NSink收到该消息后,记录该消息当前已经传输的跳数(初始值设为0,此时应加I),并存储该消息及其跳数,以此来判断节点距离基站的远近。
[0101]步骤3、节点NSink存储了跳数字段之后,向自己的所有邻居节点继续发送修改跳数后的消息。
[0102]步骤4、在此过程中的任一中间节点,比如MNode,收到消息后会将消息中的跳数字段加I并存储,然后继续向其邻居节点发送。
[0103]步骤5、步骤4将重复执行,直至全网所有节点都接收到该消息。可能每个节点会收到多个该消息的副本(来自于不同的邻居),节点将其中跳数最少的一个作为自己距离基站的跳数。
[0104]步骤6、此时,整个网络中的节点都知道了自己距离基站的跳数距离。每个节点逐一比较其所有邻居节点距离基站的跳数与该节点本身距离基站的跳数,将反复执行步骤7)-步骤9),直至比较完所有邻居节点。
[0105]步骤7、如果该邻居节点距离基站的跳数大于当前节点距离基站的跳数,则执行步骤8,如果该邻居节点距离基站的跳数小于等于当前节点距离基站的跳数,则执行步骤9。[0106]步骤8、将该邻居节点加入到当前节点的远邻居集合。
[0107]步骤9、将该邻居节点加入到当前节点的近邻居集合。
[0108]步骤10、整个网络中每一节点都完成并确定了远邻居集合和近邻居集合。
[0109]步骤三、数据传输阶段
[0110]在数据传输阶段,网络中的源节点(即野战环境中士兵携带的节点)采集到数据包之后,并不是沿最短路径直接将数据包传送给基站。在数据包从源节点到基站的路由过程中引入一个随机选择路由过程,从而使外部攻击者无法通过反向逐跳追踪无线信号的方式来定位网络中源节点的位置。
[0111]虽然引进了随机定向的转发方式,但是一旦攻击者长时间的追踪回退,仍有可能获取源节点的位置。为了隐藏真实的源节点,在网络中设置代理源节点,同时为了保护基站的位置,也设置伪基站。如果选取固定的代理源节点,攻击者也很容易通过流量分析快速找到源节点的位置。源节点在发送消息时,会随机选取一个中间节点作为代理源节点,但是这种随机并不是完全无依据的。收到消息的节点能够判断自身是否为代理源节点。而在网络节点部署时选取一些伪基站,各个伪基站轮流工作,采用唤醒-休眠机制。
[0112]为了进一步的迷惑攻击者,同时权衡保护网络安全与节省网络能量两个方面,代理源节点在转发消息的同时会以一定的概率(该概率将依据具体军事场景自行设定)发送虚假数据包,从而增加攻击者攻击成功的时间开销,延长网络的安全期。
[0113]步骤1、源节点S准备发送消息,节点S利用公式drand = dminX (|x|+l)计算代理源节点DS的位置。其中,dmin为DS距离S的最短距离,X为一随机数,服从X~Ν(0,σ)的正态分布。
[0114]步骤2、源节点S将C^nd值记录在消息的末尾字段内,依此作为标识某一 DS位置的依据。
[0115]步骤3、源节点S以概率P选择远邻居集合,概率1-P选择近邻居集合(0〈P〈0.5可根据应用自行设定)。若选择的集合为远邻居集合,则执行步骤4,否则执行步骤5。
[0116]步骤4、源节点S从远邻居集合中随机选取一个节点作为下一跳,将节点号写入要发送的消息内。跳过步骤5)执行步骤6。
[0117]步骤5、源节点S从近邻居集合中随机选取一个节点作为下一跳,将节点号写入要发送的消息内。
[0118]步骤6、源节点S将预发送消息的跳数字段值置0,使用该节点与下一跳邻居节点的共享密钥将消息中记录士兵的信息字段加密后发送出去,同时该消息中记录了所使用的共享密钥的ID。
[0119]步骤7、网络中收到消息的节点,比如中间节点MNode,查看消息中的下一跳字段值,若该字段值与自身节点号不相等,则不需要转发此消息,将此消息丢弃,回归到等待接收消息的状态,否则执行步骤8。
[0120]步骤8、节点MNode接收此消息,在自身存储的密钥中查找与该消息的密钥ID匹配的共享密钥,并使用该密钥将消息中记录士兵信息的字段解密。
[0121]步骤9、节点MNode将消息中的跳数字段加1,并存储在一个临时变量count中。
[0122]步骤10、节点MNode查看消息中末尾字段值drand,将其与count比较大小。若(Irand=count,则节点MNode为临时的代理源节点DS,跳转执行步骤12,否则该节点为普通的中间节点,继续执行步骤11。
[0123]步骤11、节点MNode选择了下一跳之后,设置下一跳字段值,选择一个共享密钥,对消息中的士兵信息字段加密后将该消息转发,并回归到等待接收消息的状态(此时被选中的下一跳节点将重复执行步骤9一 11,直到某个MNode’成为DS)。
[0124]步骤12、代理源节点DS先将真实消息RM缓存。
[0125]步骤13、代理源节点DS产生一个虚假包FM并将其广播发送出去,FM中的士兵信息字段值为一随机选择的数,并设置一个字段来记录跳数限制。
[0126]步骤14、代理源节点DS采用最短路径的方式将真实消息RM加密后发送至处于工作状态的任意一个伪基站DSink。
[0127]步骤15、接收到FM的节点判断消息中跳数限制字段值,若跳数限制字段值不为0,则将消息中跳数限制字段值减I并且转发,回归到等待接收消息的状态,否则将FM丢弃,回归到等待接收消息的状态。
[0128]步骤16、伪基站DSink接收真实消息RM后,为了减少网络中消息的数量,节约能量,DSink将固定的一段时间内收到的真实消息RM进行数据融合,即将这些不同的真实消息中的士兵信息字段融合成一个总的消息,形成一个新的士兵信息字段,然后加上其他字段形成新的真实的消息RM发送至基站。
[0129]步骤17、结束。
【权利要求】
1.一种野战环境中士兵信息的隐私保护方法,其特征在于该方法采用如下步骤: 一、密钥初始化阶段:由于传感器节点能源有限,通信覆盖范围小,节点通常只与邻居节点直接通信,首先把整个无线传感器网络覆盖范围划分为较小的区域,密钥池同样划分为与该区域相对应的子集,传感器节点从相应的密钥子集中选取密钥,然后按照划分的区域部署,使得同一区域内节点的共享密钥概率提高,相邻区域之间的节点通过密钥子集的重叠达到所设定的共享概率, 整个无线传感器网络被划分为多个区域后,每个区域中的传感器节点具有不同区域标识,把自身获得的信息与所在区域的地理位置相关联,基站节点发布控制命令时,利用特定的区域信息,减少广播信息数量, 在野战的军事场景下,对消息中记录士兵具体信息的字段进行加密, 具体分配过程如下: 步骤1、网络管理者根据任务需求把整个无线传感器网络覆盖范围划分为多个六边形区域domain(i,j),其中1、j分别代表区域的横坐标和纵坐标位置,网络中的各个节点将被随机划分到这些区域中; 步骤2、网络管理者生成密钥总数为N的大密钥池以及为每个密钥分配一个密钥标识;步骤3、网络管理者把大密钥池分成不同的密钥数均为M的子密钥空间subset (i,j),每一个子密钥空间与一个六边形区域domain (i, j)对应; 步骤4、处于区域domain(i, j)中的节点从其对应的子密钥空间subset (i, j)中随机选取m个不同密钥作为该区域节点共享的密钥链K1, K2,, Km,密钥链中每个密钥都有唯一的标识IDKi ; 步骤5、各个士兵按照其自身的地理位置,加入到划分的各个区域; 步骤6、每个节点广播它所持有的密钥链中的m个密钥标识,寻找和自己有部分或者全部相同密钥的邻居节点; 步骤7、邻居节点收到广播后,与自己密钥链中的密钥标识比对,寻找有相同标识的密钥,若找到至少一个,则跳至步骤9执行; 步骤8、如果邻居节点间没有找到任何一个相同标识的密钥,则与发出广播的节点进行协商,从广播节点的密钥链中选取一个密钥作为共享密钥,从而建立安全通信; 步骤9、确定两者之间的一条安全路径,即邻居节点与发出广播的节点协商利用已有的任一相同密钥建立安全通信; 步骤10、广播节点反复执行步骤8)与步骤9),直至与其所有邻居节点建立安全通信路径; 步骤11、整个无线传感器网络中共享密钥的邻居节点间的安全链路组成,相邻节点间通过共享的密钥进行安全的通信; 二、网络初始化阶段:源节点采集到数据包之后,并不是沿最短路径直接将数据包传送给基站,数据包在到达某个节点之后,首先确定其邻居节点集合,其后随机从该集合中选择一个节点作为下一跳中继,而不是总是选择距离基站最近的节点,数据包从源节点到基站的多跳路由过程中,为了完成到基站的寻路,每个节点需要建立一个动态的路由表维护其邻居信息, 为了方便描述,定义如下:基站:Sink,源节点:S,伪基站:DSink,代理源节点:DS,虚拟汇聚节点:Fsink ;基站一跳范围内的节点:Nsink ;中间节点:Mnode ;真实消息:RM,虚假消息:FM ; 步骤21、Sink向其一跳范围内的节点发送一个消息,消息中的跳数记录字段值设为O ;步骤22、其一跳范围内的邻居节点NSink收到该消息后,记录该消息当前已经传输的跳数,并存储该消息及其跳数,以此来判断节点距离基站的远近; 步骤23、节点NSink存储了跳数字段之后,向自己的所有邻居节点继续发送修改跳数后的消息; 步骤24、在此过程中的任一中间节点,比如MNode,收到消息后会将消息中的跳数字段加I并存储,然后继续向其邻居节点发送; 步骤25、步骤24将重复执行,直至全网所有节点都接收到该消息,可能每个节点会收到多个来自于不同的邻居的该消息的副本,节点将其中跳数最少的一个作为自己距离基站的跳数; 步骤26、此时,整个网络中的节点都知道了自己距离基站的跳数距离,每个节点逐一比较其所有邻居节点距离基站的跳数与该节点本身距离基站的跳数,将反复执行步骤27-步骤29,直至比较完所有邻居节点; 步骤27、如果该邻居节点距离基站的跳数大于当前节点距离基站的跳数,则执行步骤.28,如果该邻居节点距离基站的跳数小于等于当前节点距离基站的跳数,则执行步骤29 ;步骤28、将该邻居节点加入到当前节点的远邻居集合; 步骤29、将该邻居节点加入到当前节点的近邻居集合; 步骤210、整个网络中每一节点都完成并确定了远邻居集合和近邻居集合; 三、数据传输阶段:在数据传输阶段,网络中的源节点即野战环境中士兵携带的节点采集到数据包之后,并不是沿最短路径直接将数据包传送给基站,在数据包从源节点到基站的路由过程中引入一个随机选择路由过程,从而使外部攻击者无法通过反向逐跳追踪无线信号的方式来定位网络中源节点的位置, 步骤31、源节点S准备发送消息,节点S利用公式drand = dminX (I X I +1)计算代理源节点DS的位置,其中,dmin为DS距离S的最短距离,X为一随机数,服从X~Ν(0,σ )的正态分布; 步骤32、源节点S将C^nd值记录在消息的末尾字段内,依此作为标识某一 DS位置的依据; 步骤33、源节点S以概率P选择远邻居集合,概率1-P选择近邻居集合,0〈P〈0.5,若选择的集合为远邻居集合,则执行步骤34,否则执行步骤35 ; 步骤34、源节点S从远邻居集合中随机选取一个节点作为下一跳,将节点号写入要发送的消息内,跳过步,35执行步骤36 ; 步骤35、源节点S从近邻居集合中随机选取一个节点作为下一跳,将节点号写入要发送的消息内; 步骤36、源节点S将预发送消息的跳数字段值置0,使用该节点与下一跳邻居节点的共享密钥将消息中记录士兵的信息字段加密后发送出去,同时该消息中记录了所使用的共享密钥的ID ; 步骤37、网络中收到消息的节点,比如中间节点MNode,查看消息中的下一跳字段值,若该字段值与自身节点号不相等,则不需要转发此消息,将此消息丢弃,回归到等待接收消息的状态,否则执行步骤38; 步骤38、节点MNode接收此消息,在自身存储的密钥中查找与该消息的密钥ID匹配的共享密钥,并使用该密钥将消息中记录士兵信息的字段解密; 步骤39、节点MNode将消息中的跳数字段加1,并存储在一个临时变量count中; 步骤310、节点MNode查看消息中末尾字段值C^and,将其与count比较大小;若drand =count,则节点MNode为临时的代理源节点DS,跳转执行步骤312,否则该节点为普通的中间节点,继续执行步骤311 ; 步骤311、节点MNode选择了下一跳之后,设置下一跳字段值,选择一个共享密钥,对消息中的士兵信息字段加密后将该消息转发,并回归到等待接收消息的状态,此时被选中的下一跳节点将重复执行步骤39—311,直到某个MNode’成为DS ; 步骤312、代理源节点DS先将真实消息RM缓存; 步骤313、代理源节点DS产生一个虚假包FM并将其广播发送出去,FM中的士兵信息字段值为一随机选择的数,并设置一个字段来记录跳数限制; 步骤314、代理源节点DS采用最短路径的方式将真实消息RM加密后发送至处于工作状态的任意一个伪基站Dsink ; 步骤315、接收到FM的节点判断消息中跳数限制字段值,若跳数限制字段值不为0,则将消息中跳数限制字段值减I并且转发,回归到等待接收消息的状态,否则将FM丢弃,回归到等待接收消息的状态; 步骤316、伪基站D Sink接收真实消息RM后,为了减少网络中消息的数量,节约能量,DSink将固定的一段时间内收到的真实消息RM进行数据融合,即将这些不同的真实消息中的士兵信息字段融合成一个总的消息,形成一个新的士兵信息字段,然后加上其他字段形成新的真实的消息RM发送至基站; 步骤317、结束。
【文档编号】H04W84/18GK103987034SQ201410182243
【公开日】2014年8月13日 申请日期:2014年4月30日 优先权日:2014年4月30日
【发明者】黄海平, 封娟, 王汝传, 李仕勇, 任玉丰 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1