传感器网络中安全可验证的连续数据收集方法与流程

文档序号:11710282阅读:144来源:国知局
传感器网络中安全可验证的连续数据收集方法与流程

本发明涉及无线传感器网络安全技术领域,尤其涉及一种传感器网络中安全可验证的连续数据收集方法。



背景技术:

无线传感器网络由大量部署在野外的传感器节点组成,在环境监控、事件监测和医疗卫生等领域具有广泛的应用。在很多应用场景,节点需要将感知数据周期性的报告给sink节点,由于传感器节点能量、计算等资源受限,且不可维护,因此节省能耗、延长网络使用寿命是无线传感器网络面临的重要挑战。同时,无线传感器网络以多跳和无线通信的自组织网络,使得无线传感器网络面临严重的隐私泄露问题,隐私保护是拓展无线传感器网络应用的重要影响因素之一。

目前,现有很多无线传感器网络中的数据收集方法主要通过时间或空间的相关性来减少数据通信量而没有考虑感知数据的隐私性。虽然通过加解密技术能够保证感知数据的机密性和真实性,但被捕获的传感器节点可进行丢弃或重复传输等攻击很难被监测,所以sink节点需要能够对收集到的数据进行完整性验证是必要的。现有研究安全的可验证的数据收集方法基本处于空白状态,因此,需要对无线传感器网络中安全可验证数据收集方法进行针对性的研究。

此外,为了使得sink节点能够对收集到的感知数据进行完整性验证,传感器节点在传输感知数据的同时需要传输“证据”。由于传输1bit数据所需能耗与执行800条指令的能耗相当,所以减少通信量是节省能耗是关键所在,因此,传感器节点传输的“证据”的通信量不能太大。同时,传感器节点一般通过多跳的形式将数据传输给sink节点,所以节点需要考虑传输感知数据“证据”的跳数。



技术实现要素:

本发明所要解决的技术问题是实现一种在保证节点感知数据隐私性的基础上,能够连续高效收集感知数据的传感器网络中安全可验证的收集方法。

为了实现上述目的,本发明采用的技术方案为:传感器网络中安全可验证的连续数据收集方法,包括以下阶段:

前期准备阶段:对所有传感器节点部署与sink节点共享的秘钥;

收集树构建阶段:以sink节点为根节点构建收集树,使得传感器网络由sink节点、中间节点和叶子节点构成;

数据收集请求阶段:sink根据应用需要确定需要收集感知数据的区域和时间段,sink将收集请求发送给相应收集区域的传感节点,收集请求包括收集请求开始和结束周期,并将公钥传输给该区域传感器节点;

数据处理阶段:传感器节点收到数据请求后,判断自身是否属于数据收集区域,当属于收集区域,节点从开始周期对采集到的感知数据进行处理;

验证阶段:sink节点接收到整个收集区域感知数据集和“指纹”后,对数据进行验证。

所述前期准备阶段在传感器节点向sink节点传输数据之前,每个传感器节点均部署传输密钥元组。

所述收集树构建阶段sink节点向其邻居节点广播“child”,接收到“child”信息的节点ni如果没有父节点,则将发送“child”消息的节点作为父节点,并发送“parent”消息,节点ni继续广播“child”消息,直至所有节点都有父节点,收集树构造完成。

所述数据处理阶段传感器节点进行重构并生成相应的“指纹”,再对重构的数据进行加密,最后将密文和“指纹”传输给父节点,中间节点对收集到的孩子节点“指纹”进行融合操作,再将所有节点密文数据及融合后的“指纹”传输给父节点,如此继续,直至sink节点得到所有节点的加密后的感知数据和融合后的“指纹”。

所述数据处理阶段,传感器节点对感知数据的重构、“指纹”的生成以及传输的过程具体为:

步骤1:假设每个时间段感知1个数据,传感器节点每采集到p个数据对数据进行整体处理,其中p为系统参数,则p个数据为d={d0,d1,...,dp-1};

步骤2:重构感知数据,节点求出p个数据中最小数dmin=min(d),min为求最小值函数;然后求每个数与最小值之间的差值rdi=(di-dmin)r,其中i=0,...,p-1,r为固定的位数,从而保证所有rdi的数据位数相同,不够前面补0,并对数据进行加密得到e=(enck(dmin),enck(rd0||rd1||...||rdp-1)),其中||为连接符;

步骤3:构造“指纹”,传感器节点根据传输感知数据来构造对应的“指纹”,指纹为fp=xmodp,其中x为传输的数字串,p为节点n与sink共享的素数,并对“指纹”加密以防止被篡改或伪造,加密后的指纹为efp=encrypt(fp);

步骤4:传输数据,数据收集区域以树结构收集数据,节点接收孩子节点数据处理并传输给父节点,中间节点对孩子节点的“指纹”进行融合;

步骤5:节点将感知数据集和“指纹”上传给其父节点,如此继续,直到收集到整个收集区域数据.

步骤6:收集区域根节点利用位置路由协议将聚集结果传回给sink,或通过移动sink节点到根节点区域接收收集数据。

所述步骤4中,根据节点在收集树的位置,节点分为两种情况:

1)叶子节点,得到感知数据,重构感知数据和“指纹”,分别加密并传输给其父节点;

2)中间节点,对所有孩子节点的感知数据集进行并集操作,并对所有“指纹”进行融合操作,得到加密的感知数据集和融合后的“指纹”。

所述验证阶段sink节点对每个收集到的传感器节点的密文数据进行解密获得原始感知数据并构造该数据集的“指纹”,同时,sink节点从融合的“指纹”中提出对应传感器节点的“指纹”,当重构的“指纹”与传输的“指纹”是否相等来判断收集到的感知数据是否被删除、伪造、篡改或被重复攻击,不相等则将该传感器节点id放入到数据有问题的节点集,当有问题的节点集为空则收集的数据是正确的,否则该节点中的传感器节点感知数据被攻击。

所述验证阶段具体执行过程:

步骤a:解密感知数据集,得到每个节点重构后的感知数据x′;

步骤b:通过解密的感知数据x′计算出对应的“指纹”fp′;

步骤c:利用同态加密技术从接收到的“指纹”中抽取出每个节点的“指纹”fp″;

步骤d:判断是否存在计算的“指纹”和抽取的“指纹”是否不想等,如果存在则感知数据被丢弃或被重复攻击,否则是真实完整的。

本发明与现有的无线传感器网络数据收集方法相比,具有以下优点:

本发明与现有的无线传感器网络数据收集方法相比,具有以下优点:

1)高效:本方法利用感知数据具有时间相关性特点,对周期内感知数据进行重构,能够有效地降低了数据通信量、节省了通信能耗。假设收集区域中存在n个感知节点,每个感知节点在整个收集期间产生m个感知数据(每个周期产生m个感知数据,所以有m/m个周期)。每个周期,感知节点需要对2个数据(基本数据、差值数据链)进行加密并上传给其父节点。同时,节点根据感知数据生成“指纹”,并上传给父节点,单位密文数据和“指纹”长度分别为传输和接收1bit的能耗分别为et和er。假设个传感器节点到sink的平均路径长度(跳数)为l,传感节点id和时间周期数据长度分别为lid和lt。由于传感器节点对“指纹”密文能够进行融合,即密文为一跳,所以该方法的通信能耗为

2)隐私性:通过对感知数据进行加密,能够保证感知数据的机密性和真实性;

3)可验证性:且给感知数据添加“指纹”,使得sink能够叶子节点对感知数据进行切片操作,使得感知数据不仅能防窃听攻击,且能够防内部攻击,本发明具有较高的数据隐私性;

4)由于传感器节点之间提前部署共有信息,因此本发明具有较好的网络扩展性。

附图说明

下面对本发明说明书中每幅附图表达的内容作简要说明:

图1为连续数据收集方法网络构建示意图;

图2为传感器网络中安全可验证的连续数据收集方法流程图;

图3为图2中数据处理阶段流程图;

图4为图2中验证阶段流程图.

具体实施方式

本发明利用感知数据的时间相关性,用基本数据和差值数据链来表示一个周期内的多个数据,并对数据加密后传输给sink节点,在保证数据隐私性的情况下有效地减少数据通信量。同时,sink节点利用传感器节点发送“指纹”对感知数据进行验证,由于“指纹”位数远短于感知数据位数,该方法在增加少量通信量的情况下,实现了对感知数据的完整性验证。

即通过加密技术保证数据的安全性,并利用时间相关性对一个周期内的感知数据进行重构,有效地减少数据的通信量;传感器节点生成感知数据的“指纹”,使得sink能够对收集到的感知数据进行验证,由于“指纹”位数远短于感知数据位数,且能够融合,所以“指纹”通信代价较低。

如图2所示,连续数据聚集方法包括前期准备阶段、收集树构建阶段、网数据收集请求阶段、数据处理阶段和验证阶段:

前期准备阶段:每个传感器节点ni需要提前部署于sink节点共享的秘钥ki。为了保证感知数据的机密性,节点ni向sink节点传输数据之前用秘钥ki对感知数据加密。同时,为了能够验证收集的感知数据的正确性和完整性,节点在传输感知数据的同时传输“证据”,因此,需要给每个节点部署秘钥元组(ui,qi)用来对“证据”进行加密,其中qi为椭圆曲线点。

收集树构建阶段:以sink节点为根节点构建收集树,使得传感器网络由sink节点、中间节点和叶子节点构成。构建过程为:sink节点向其邻居节点广播“child”,接收到“child”信息的节点ni如果没有父节点,则将发送“child”消息的节点作为父节点,并发送“parent”消息,节点ni继续广播“child”消息,直至所有节点都有父节点,收集树构造完成。

数据收集请求阶段:在实际应用过程中,sink节点不需要对无线传感器网络中所有传感器节点所有时间段的感知数据进行收集操作,而是根据应用需要收集部分区域和时间段,因此,sink将收集请求发送给相应收集区域的传感节点,收集请求包括收集请求开始和结束周期,并将公钥传输给该区域传感器节点。sink将收集请求传输给对应的区域的传感节点,收集请求x模型形式化表示为x=(area=a)∧(tsta≤epoch≤tend),其中a为收集区域,tsta和tend分别为收集的开始和结束周期。同时,sink将公钥πk=(n/q0,e,h)传输给查询区域的传感节点,其中n=q1q2…qk+1。

数据处理阶段:传感器节点ni收到数据请求后,判断自身是否属于数据收集区域,当属于收集区域,节点ni从时间ts开始对采集到的感知数据进行处理。利用感知数据的时间相关性,为了降低传输感知数据的通信量,节点对感知数据进行重构。此外,节点ni产生“指纹”,使得sink节点能够对感知数据得真实性和完整性进行检测。如图3所示,具体执行过程如下:

步骤1:节点ni每采集到p个数据,其中p为系统参数,由感知数据相关度及明文长度确定。假设每个时间段感知1个数据,从周期t开始,则p个数据为di={di,t,di,t+1,...,di,t+p-1}.

步骤2:重构感知数据,求出p个数据中最小数dmin=min(di),min为求最小值函数;然后求每个感知数与最小值之间的差值rdi,j=(di,j-dmin)r,其中j=t,...,t+p-1,r为固定的位数,即保证所有rdi,j的位数相同,位数不够前面补0。并对数据进行加密得到其中||为连接符。

步骤3:构造“指纹”,对重构的感知数据xi=di,t||di,t+1||...||di,t+p-1生成相应的“指纹”。节点ni得到的指纹为fpi=ximodpi,其中为节点ni与sink共享的素数。为了防止“指纹”被篡改或伪造,用秘钥元组(ui,qi)对“指纹”加密得到

步骤4:传输数据,数据收集区域以树结构收集数据,节点接收孩子节点数据处理并传输给父节点。同时为了降低"指纹"通信量,中间节点对孩子节点的“指纹”进行融合,假设eti和etifp分别为以节点ni为根节点子树中所有加密的感知数据集合和融合后的“指纹”。

根据节点在收集树的位置,节点分为两种情况:

1)叶子节点:节点ni的感知数据集和“指纹”为其自身数据,即eti=ei,

2)中间节点:节点ni收集其所有孩子节点数据,对孩子节点的感知数据集进行并集操作,并对孩子节点“指纹”进行融合操作(包括自身数据),得到其中childi为节点ni的孩子节点集合.

步骤5:节点ni将感知数据集eti和“指纹”上传给其父节点,如此继续,直到收集到整个收集区域数据。

步骤6:收集区域根节点利用位置路由协议将聚集结果传回给sink,或通过移动sink节点到根节点区域接收收集数据.

验证阶段:sink节点接收到整个收集区域感知数据集和“指纹”后,对数据进行验证以确定是否存在被捕获节点进行丢弃或重复传输等攻击。假设ns表示收集到的数据有问题的节点集合,且初始化为如图4所示,具体执行过程如下:

步骤a:sink节点通过感知数据集得到收集区域每个节点ni密文数据ei。

步骤b:利用密钥ki并还原得到每个节点ni的感知数据x′,具体为

ifei存在

其中q=1,…,p-1

fpi′=xi′modpi

else//不ei存在

fpi′=0

步骤c:利用同态加密技术从接收到的“指纹”efp中抽取出每个节点ni的“指纹”fpi″=decrypt(σki,efp),其中(k是同态密钥元组数)。

步骤d:sink节点判断每个节点ni的“指纹”fpi′和抽取的“指纹”fpi″是否相等来确定节点ni的数据是否被丢弃或被重复攻击,具体为:

对收集区域每个节点ni

iffpi′!=fpi″

ns=ns∪{i}

步骤5:如果则收集的数据是正确的;否则集合ns中的节点数据被丢弃或重复传输。

上面结合附图对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。

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