一种隐私保护的两层传感器网络范围查询系统及方法

文档序号:7782427阅读:306来源:国知局
一种隐私保护的两层传感器网络范围查询系统及方法
【专利摘要】一种隐私保护的两层传感器网络范围查询系统及方法,为了解决现有的两层传感网络的通信量大,消耗能量大,生存时间短的缺陷,该系统包括Sink节点、存储节点和传感节点;Sink节点发送查询请求给存储节点,Sink节点对存储节点返回的查询结果进行完整性验证;存储节点用于响应Sink节点的查询请求,存储传感节点传输的数据,根据查询范围将相应的传感节点的数据返回给Sink节点;传感节点用于感知数据并对数据加密,并将数据传输给存储节点。该系统在保证传感节点数据机密性,能够有效对存储节点返回的查询结果进行完整性检测,同时,该方法能够有效减少数据传输量,延长了无线传感器网络的使用寿命。
【专利说明】一种隐私保护的两层传感器网络范围查询系统及方法
【技术领域】
[0001]本发明涉及无线传感器网络通信【技术领域】,尤其涉及一种隐私保护的两层传感器网络范围查询方法。
【背景技术】
[0002]无线传感器网络(Wireless Sensor Networks)是当前的热点研究领域。它由大量资源受限的传感器节点构成,通过数据聚集和查询等操作实现监控和侦查等功能,具有广泛的应用场景。由于无线传感器网络往往部署在动物栖息地或战争区域等野外地区,难以维护,且传感节点之间通过无线进行通信。使得无线传感器网络应用面临严重的安全问题,研究和解决这类安全问题,对拓展无线传感器网络的应用领域具有重要的意义。
[0003]由于Sink节点可能只对部分节点的部分时段感知数据感兴趣,因此传感节点没必要实时将感知数据传输给Sink节点,这种传输机制也是不可行的。同时,传感节点的资源有限性,使得传感节点没有足够的空间存储其所感知的所有数据以等待查询。基于上述情况,产生了两层传感器网络,其下层由大量资源受限的传感节点构成负责感知数据,上层由少量具有较大容量、资源相对丰富存储节点构成,负责存储传感节点的感知数据和响应处理Sink节点的查询请求。
[0004]一方面,传感节点负责感知数据并将数据传输给离其最近的存储节点进行存储(跳数较少),能量消耗较小。另一方面,虽然存储节点需要存储大量数据并进行大量操作,但存储节点相较于传感节点具有较大的存储空间、较强的计算能力,更多的能量,因此两层传感器网络相比较一般传感器网络具有更长的使用寿命,具有重要的研究价值。但两层传感器网络也面临严重的安全问题。特别当攻击者俘获到存储节点后,能够获得大量的感知数据,并可能进行如返回伪造数据、不准确数据或部分数据等恶意行为。因此,保证感知数据的机密性、真实性、正确性和完整性是非常重要的,研究者提出了很多解决方法。通常,力口密感知数据能够保证数据的机密性和真实性,且Sink节点通过解密能够容易判断出查询结果的准确性,因此,查询结果完整性检测是各解决方案的研究重点。
[0005]目前已有的解决方法存在安全性、通信量和计算量等问题。比如,采用桶技术的方法,由于将每个数据都贴上其所在的桶标签,攻击者能够将感知数据确定在很小的范围内,没有实现数据的零泄漏。另外,通过验证码来检测查询结果完整性的方法需要进行大量加解密或Hash计算,或者在验证码里面添加大量额外信息,极大的增加了通信量,两种情况都消耗大量能量,缩短了传感器网络的生存时间。

【发明内容】

[0006]为了克服以上现有技术的不足,本发明提出一种隐私保护的两层传感器网络范围查询系统及方法,该方法在保证传感节点数据机密性、真实性和准确性的基础上,能够有效对存储节点返回的查询结果进行完整性检测,同时,该方法能够有效减少数据传输量,延长了无线传感器网络的使用寿命。[0007]本发明的技术方案是:一种隐私保护的两层传感器网络范围查询系统,该系统包括Sink节点、存储节点和传感节点:
[0008]Sink节点,发送查询请求给存储节点,发送查询范围信息给存储节点,Sink节点对存储节点返回的查询结果进行完整性验证;
[0009]存储节点,用于响应Sink节点的查询请求,存储传感节点传输的数据,根据查询范围将相应的传感节点的加密数据和保序编码集返回给Sink节点;
[0010]传感节点,用于感知数据并对数据加密,构建加密数据集和保序编码集,并将加密数据集和保序编码集传输给存储节点。
[0011]一种隐私保护的两层传感器网络范围查询系统的方法,该方法包括以下阶段:
[0012]前期准备阶段:Sink节点与每个传感节点共享密钥和保序函数;
[0013]网络拓扑结构构建阶段:将两层传感器网络划分为多个单元,每个单元包括一个存储节点和多个传感节点,每个单元内部节点构成一个路由树,其中存储节点为根节点;
[0014]数据存储阶段:传感节点对一个周期内感知到的数据进行排序,并对数据加密构成加密数据集;将原始数据构造成新数据,并通过保序函数对新数据进行编码,形成保序编码集;最后通过多跳的方式将加密数据集和保序编码集传输至所在单元的存储节点;
[0015]范围查询请求阶段:Sink节点将查询请求发送给每个单元的存储节点,Sink节点通过生成下上限多项式将查询范围对应到每个传感节点,查询范围包括通周期号t、下上限多项式和单元的ID号。
[0016]范围查询返回阶段:当存储节点接收到Sink节点的查询请求,根据下上限多项式和每个传感节点的ID号求出每个传感节点对应的查询范围;然后将每个传感节点的保序编码集中的编码与其对应的查询范围进行比较,如果编码在查询范围内,则存储节点将该编码以及对应的加密数据分别放入返回编码集和返回加密数据集,存储节点还需要将查询范围内两端的前驱和后继数据及对应的编码放入相应的集合中;如果没有数据符合范围查询,则将范围查询两端最近的两个数据放入相应的集合中,最后将返回编码集和返回加密数据集传输给Sink节点。
[0017]查询结果验证阶段:Sink收到存储节点的返回结果后,检测结果的准确性、真实性和完整性。
[0018]所述数据存储阶段,将原数据构造成新数据的具体过程为:新数据包括两部分,左半部分是原数据,右半部分是原数据与其下一个原数据之差值,且每个传感节点生成两个随机的下限和上限数据;为了保证新的数据仍然是有序的,将所有右半部分的数据的位数设置成相同的。
[0019]所述范围查询阶段中,Sink节点传输给存储节点的查询范围的下上限多项式,其构建过程为:在一个单元内,Sink节点首先根据该单元的每个传感节点的保序函数求出每个传感节点对应的查询范围(a” bj,其中%和匕分别表示查询范围的下限和上限a和b经保序函数计算后的结果,Sink节点构造下上限两个二元组集,并通过计算求出二元组集对应的下上限多项式。
[0020]所述验证阶段的具体过程为:Sink节点通过与传感节点共享的密钥对加密数据集进行解密获得原数据,根据解密得到的原数据,判断出返回数据的准确性和真实性;Sink节点再通过与传感节点共享的保序函数对原数据集重构保序编码集,通过比较生成的编码集与存储节点传输过来的保序编码集,来判断查询结果的完整性。
[0021]与现有隐私保护的两层传感器网络范围查询方法相比较,本发明具有以下优点:
1.传感节点除了对原始数据进行加密操作外,没有其他额外的加解密操作,节省了大量由于运算而消耗的能量。同时,传感节点只需要额外传输保序编码集,极大的降低了通信量,延长了网络生命周期。2.存储节点只需进行多项式运算和比较运算,避免了存储节点由于大量的加解密运算和传输大量的密文而消耗大量能量,并减少了时间延迟。虽然相比较传感节点,存储节点拥有更丰富的资源,但超量的运算和传输也可能极大影响网络的功能和寿命。因此,本发明使得存储节点不会成为网络的瓶颈。3.本发明设计的保序编码集具有更好的完整性检测性能。
【专利附图】

【附图说明】
[0022]图1为本发明的系统结构框图;
[0023]图2为本发明中隐私保护的两层传感器网络范围查询过程图;
[0024]图3为本发明中设计的传感节点保序编码集生成过程流程图;
[0025]图4为本发明中设计的Sink下上限查询多项式生成过程流程图。
【具体实施方式】
[0026]下面对照附图,通过对实施例的描述,本发明的【具体实施方式】如所涉及的各构件的构造、各部分之间的连接关系、各部分的作用及工作原理、制造工艺及操作使用方法等,作进一步详细的说明,以帮助本领域技术人员对本发明的发明构思、技术方案有更完整、准确和深入的理解。
[0027]所述两层传感器网络包括Sink节点101、上层的存储节点102和下层的传感节点103 ;所述Sink节点101用于发送查询请求和对存储节点返回的结果进行完整性检验,所述存储节点102用于存储传感节点数据103和响应Sink节点101的查询请求,所述传感节点103用于构建加密数据集和保序编码集,并将数据传输给存储节点102,Sink节点101将查询请求发送给存储节点102,存储节点102根据查询请求中的查询范围将传感节点103相应的加密数据集和保序编码集返回给Sink节点101, Sink节点101通过与传感节点103共享的密钥和保序函数对返回结果进行准确性和真实性判断和完整性验证。所述范围查询方法包括前期准备、网络拓扑结构构建、数据存储、范围查询请求、范围查询返回和查询结果验证阶段:
[0028]前期准备阶段:Sink节点101与每个传感节点103共享数据加密密钥用以保证传感数据的机密性和真实性,同时共享保序函数使得存储节点102能够准确返回查询结果。Sink节点101与每个传感节点103SU共享加解密密钥其中j表示节点所在单元的ID,i表示单元内节点的ID,同时还共享保序函数Fy(X)。因为Sink节点101对每个单元操作是相同的且所有操作都是在同一个单元内进行的,所以密钥和保序函数分别简写为Ki和Fi(X)。
[0029]网络拓扑结构构建阶段:两层传感器网络被划分为若干个单元,每个单元由一个存储节点102和若干个传感节点103构成。每个单元内部节点构成一个路由树,其中存储节点102为根节点。构建过程为:存储节点102向其邻居节点发送广播消息“HELL0”,如果没有父节点的传感节点103接收到消息“HELLO”,则向发送“HELLO”消息的节点发送“PARENT”消息,并将该节点设为父节点。确定父节点的传感节点103继续向外发送“HELLO”消息,直到整个单元内节点都有父节点,路由树构造完成。
[0030]数据存储阶段:传感节点103对一个周期内感知到的数据进行排序303,并按数据升(降)序的顺序对数据加密构成加密数据集(不失一般性,本发明都是进行升序排序)。同时,通过保序函数对新数据进行编码形成保序编码集306。为了实现完整性检测,传感节点103在对感知数据进行保序编码之前,需将原数据构造成新数据305。具体方法为:新数据由两部分组成,左半部分是原数据,右半部分是原数据与其下一个原数据之差值,且每个传感节点103生成两个随机的下限和上限数据,满足条件为所有感知数据一定大于下限数且小于上限数。例如,传感节点103有两个传感数据X1和X2 (χι〈χ2),并生成下上限数Xtl和X3,则构造的新数据为:XQ| I XfXc^X11 X2-X1, X2 I X3-X2, X31 I Random,其中 | | 为连接符。为了保证新的数据仍然有序,将所有右半部分数据的位数设置成相等的,例如假设所有数据之间最大差值为31 (5位二进制数据),X2-X1和X3-X2值分别为5和2,则两差值分别表示为00101和00010。传感节点103将新数据通过保序函数转换成编码306,最后通过多跳的方式将加密数据集和保序编码集传输至所在单元的存储节点102。传感节点103感知数据302,假设传感节点103每10秒感知一次(如温度、湿度等),每分钟为一个周期,即每隔一分钟传感节点103感知6个数据,节点对这6个数据进行排序303,同时随机生成下限(!。(〈屯)和上限d7(>d6) 304,并将这8个数据传输给存储节点102进行存储。例如传感节点103Si在周期t结束后,传输给存储节点102的加密数据集为:
[0031]Ehl={uA(djlJ = 0.,J)}:}AF,(d, - rf ) Ji j = O-AFlId11 (roefcn),)}}其中 r 表示将所有差值转换为r位二进制。
[0032]范围查询请求阶段:Sink节点101进行查询操作Q= (C,T,D) 402,其中C表示单元ID、T表示周期号和D表示查询范围,即查询的是C单元t周期查询范围为D=(a,b)的查询请求。Sink将查询请求分别发送给每个单元的存储节点102。因为存储在存储节点102上的信息为加密数据集和保序编码集,为了使得存储节点102能够准确返回每个传感节点103的加密数据,Sink节点101需要通过保序函数将查询范围对应到每个传感节点103,即需要对查询范围进行转换403。转换规则如下:在一个单元内,Sink节点101首先根据该单元的每个传感节点103的保序函数求出每个传感节点103对应的查询范围(a^bi),其中Bi和匕分别表示查询范围的下限和上限a和b经保序函数计算后的结果,Sink根据单元内每个传感节点103的保序函数得到两个二元组集404:下限二元组集LD1=Ki, Fi (a | (0..0)r)) |i=l…N}和上限二元组集UD1= KtFiOD I I (1..l)r)) I i=l…N},其中N为单元内传感节点103个数。Sink节点101根据这两个集合通过克莱姆等法则求出下上限多项式405LFc(x)和UFe(x),并将查询请求(t,LFe(X),UFe(x))传输给对应单元内的存储节点102。因此Sink节点101传输给存储节点102的查询范围包括通周期号t和上下限多项式。
[0033]范围查询返回阶段:当存储节点102接收到Sink节点101的查询请求,存储节点102对每个传感节点103数据进行如下操作:根据下上限多项式和传感节点103的ID号求出每个传感节点103对应的查询范围403。然后将传感节点103中的保序编码集中的编码与其对应的查询范围进行比较,如果编码在查询范围内,则存储节点102将该编码以及对应的加密数据分别放入返回编码集和返回加密数据集。另外,为了实现完整性验证,存储节点102还需要将查询范围内两端的前驱和后继数据及对应的编码放入相应的集合中,如果查询结果为空,则将范围查询两端最近的两个数据放入相应的集合中,最后将返回编码集和返回加密数据集传输给Sink节点101。攻击者有可能俘获存储节点102,被俘获的存储节点102可进行如下恶意行为,如返回不符合查询范围的数据、返回伪造数据或返回部分结果(不完整)。例如,存储节点102收到Sink查询请求后,根据查询请求信息计算出单元内每个传感节点103对应的查询范围403,即
【权利要求】
1.一种隐私保护的两层传感器网络范围查询系统,其特征在于:该系统包括Sink节点、存储节点和传感节点: Sink节点,发送查询请求给存储节点,Sink节点对存储节点返回的查询结果进行完整性验证; 存储节点,用于响应Sink节点的查询请求,存储传感节点传输的数据,根据查询范围将相应的传感节点的加密数据和保序编码集返回给Sink节点; 传感节点,用于感知数据并对数据加密,构建加密数据集和保序编码集,并将加密数据集和保序编码集传输给存储节点。
2.根据权利要求1所述的隐私保护的两层传感器网络范围查询方法,其特征在于,该方法包括以下阶段: 前期准备阶段=Sink节点与每个传感节点共享密钥和保序函数; 网络拓扑结构构建阶段:将两层传感器网络划分为多个单元,每个单元包括一个存储节点和多个传感节点,每个单元内部节点构成一个路由树,其中存储节点为根节点; 数据存储阶段:传感节点对一个周期内感知到的数据进行排序,并对数据加密构成加密数据集;将原始数据构造成新数据,并通过保序函数对新数据进行编码,形成保序编码集;最后通过多跳的方式将加密数据集和保序编码集传输至所在单元的存储节点; 范围查询请求阶 段:Sink节点将查询请求发送给每个单元的存储节点,Sink节点通过生成下上限多项式将查询范围对应到每个传感节点,查询范围包括通周期号t、下上限多项式和单元的ID号。 范围查询返回阶段:当存储节点接收到Sink节点的查询请求,根据下上限多项式和每个传感节点的ID号求出每个传感节点对应的查询范围;然后将每个传感节点的保序编码集中的编码与其对应的查询范围进行比较,如果编码在查询范围内,则存储节点将该编码以及对应的加密数据分别放入返回编码集和返回加密数据集,存储节点还需要将查询范围内两端的前驱和后继数据及对应的编码放入相应的集合中;如果没有数据符合范围查询,则将范围查询两端最近的两个数据放入相应的集合中,最后将返回编码集和返回加密数据集传输给Sink节点。 查询结果验证阶段:Sink收到存储节点的返回结果后,检测结果的准确性、真实性和完整性。
3.根据权利要求2所述的隐私保护的两层传感器网络范围查询方法,其特征在于:所述数据存储阶段,将原数据构造成新数据的具体过程为:新数据包括两部分,左半部分是原数据,右半部分是原数据与其下一个原数据之差值,且每个传感节点生成两个随机的下限和上限数据;为了保证新的数据仍然是有序的,将所有右半部分的数据的位数设置成相同的。
4.根据权利要求2所述的隐私保护的两层传感器网络范围查询方法,其特征在于:所述范围查询阶段中,Sink节点传输给存储节点的查询范围的下上限多项式,其构建过程为:在一个单元内,Sink节点首先根据该单元的每个传感节点的保序函数求出每个传感节点对应的查询范围(a” bj,其中%和匕分别表示查询范围的下限和上限a和b经保序函数计算后的结果,Sink节点构造下上限两个二元组集,并通过计算求出二元组集对应的下上限多项式。
5.根据权利要求2所述的两层传感器网络范围查询方法,其特征在于:所述验证阶段的具体过程为=Sink节点通过与传感节点共享的密钥对加密数据集进行解密获得原数据,根据解密得到的原数据,判断出返回数据的准确性和真实性;Sink节点再通过与传感节点共享的保序函数对原数据集重构保序编码集,通过比较生成的编码集与存储节点传输过来的保序编码集,来判断查询结果的完整性。
【文档编号】H04W12/10GK103763702SQ201310737605
【公开日】2014年4月30日 申请日期:2013年12月27日 优先权日:2013年12月27日
【发明者】王涛春, 罗永龙, 郭良敏, 左开中, 陈付龙 申请人:安徽师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1