一种无线传感器网络同态加密隐私保护方法与流程

文档序号:11158040阅读:430来源:国知局
一种无线传感器网络同态加密隐私保护方法与制造工艺

本发明涉及一种应用于无线传感器网络的隐私保护技术方案,针对基于分片技术的隐私保护算法对丢包敏感的问题,具体是通过线性还原算法保证数据的冗余性和使同态加密保证数据的隐私性,从而保证数据在传输过程中对丢包具有还原功能。本技术属于无线传感器网络隐私保护领域。



背景技术:

随着物联网的不断发展,作为物联网的重要组成部分,无线传感网的研究也在不断的深入,其应用已经从国防军事领域,航空领域拓展到环境监测、交通管理、医疗卫生、智能家居、抗灾等诸多领域,显示了其巨大的应用前景。2013年,中国报告大厅发布的《2013-2017年中国传感器行业竞争格局分析及发展趋势研究报告》指出,无线传感器网络的逐渐普及,促进了信息家电、网络技术的快速发展,家庭网络的主要设备已由单一机向多种家电设备扩展,基于无线传感器网络的智能家居网络控制节点为家庭内、外部网络的连接及内部网络之间信息家电和设备的连接提供了一个基础平台。近年来,无线传感器网络的研究不断的深入,其应用已经从国防军事领域,航空领域拓展到环境监测、交通管理、医疗卫生、智能家居、抗灾等诸多领域,显示了其巨大的应用前景。

无线传感器络是一种可以大规模分布式部署的网络,由无线传感器组成,具有自组织,多跳和以数据为中心等特征,经常部署于无人维护、条件恶劣的环境当中。在无线传感网中,一个无线传感器的主要任务是采集数据和转发数据,由于经常放置在无人区域中,这些数据面临着被攻击者物理俘获,破解和篡改的诸多安全威胁,导致自身的许多隐私信息数据暴露和窃取。这个问题正在变得日益突出,在现有的无线传感器网络中,隐私保护技术主要分为数据隐私保护技术和位置信息隐私保护技术两个方面。位置隐私保护技术是防止攻击者通过通信模式监测分析获取目标位置。

数据隐私保护技术是防止攻击者通过链路层窃听传感器节点获取有效信息 目前针对数据隐私保护和位置隐私保护所采用的技术和方案主要分为三类,分别是基于扰动技术,基于分片技术和基于同态加密。基于扰动技术的隐私保护算法CPDA(cluster-base private data aggregation),其思想是利用簇协议和多项式的代数进行数据聚合隐私保护。其主要优点是实现精确聚合,但是CPDA的计算和通信开销都很大,且只提供一种级别保护。而基于分片技术的隐私保护算法SMART协议,主要是通过将原始数据进行分片、混合、聚合,通过多条路径传输达到隐私保护,其主要优点是精确聚集和提供完整性验证,SMART协议所带来的问题是对丢包十分敏感基于同态加密的隐私保护协议AHE协议可以有效应对共谋攻击,但是对于数据的完整性无法保证。然而这些协议都无法保证数据分片在丢失的情况下,保证数据的完整性。



技术实现要素:

技术问题:本发明旨在研究无线传感网的隐私保护算法,在总结和分析各种隐私保护算法的缺点和隐私攻击窃取的基础上,使用理论分析和实践相结合的研究方法。针对基于分片技术的隐私保护算法对丢包敏感的问题,采用每个分片数据包都携带部分其他分片信息的方法,从而达到即使在源节点未收到部分分片的情况下,仍然还原出完整的数据的效果。

技术方案:在无线传感网中,传感器包含了数据采集、传输、处理和应用的全过程,并且由于无线传感器的传输方式是无线的,也造成了无线传感网的数据传输的不安全,容易被窃取和攻击,因此对于数据传输的隐私保护十分重要。并且由于无线传感器的本身的特点,限制了在无线传感器上的计算量和存储量,也就导致在无线传感器上的程序时间复杂度和空间复杂度不能太高。本方案通过数据分片实现了无线传感器网络中数据传输的安全性,并且通过对数据分片加入冗余还原算法保证数据的完整性。有利于数据的有效传输,对数据的完整性提供保护,并且对计算量和存储空间要求相对较小。

本发明针对基于分片技术的数据隐私保护算法对丢包敏感性的问题,提出了在目标节点丢失部分数据包的情况下,通过线性的冗余算法,仍能还原出全部数据。在源节点分片的过程中,加入同态加密,主要利用同态加密的特点,即对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同 一方法处理未加密的原始数据得到的输出结果是一样的。可以与之前的线性的冗余算法很好的结合。

方法流程

步骤1、首先将写好的程序烧写进所有的节点,然后开启所有的节点。等待所有源节点和目标节点之间用来转发数据的节点生成传送数据树和信息反馈树,使源节点和目标节点建立连接。

步骤2、当源节点和目标节点都确认传送数据树和信息反馈树已经生成后,源节点上的光照采集模块开始采集数据,每当读取到10个传感数据时,源节点开始对采集到的光照数据进行处理,对源节点采集到的数据进行切片处理,生成分片信息,以及计算出每个分片信息要携带的隐藏信息数据。

步骤3、对源节点生成的分片信息和隐藏信息进行同态加密,然后源节点将同态加密好的分片信息和隐藏信息分发给自己传送数据树中的父节点。源节点进行下一次数据采集。

步骤4、传送数据树中的父节点通过各自的父节点逐跳将源节点发送的数据转发至目标节点,如果目标节点确认数据分片未丢失,则进行数据解密,然后根据收到的分片信息进行重组,得到与源节点采集到的光照数据一样的原始数据。如果发现有丢包,那么就要对已经收到的分片数据进行线性还原,还原出同态加密后的数据分片信息,再一次性的进行同态解密算法,解密出整个完整的原始数据。目标节点会根据收到的数据包数量进行计算,计算传送数据树的丢包情况。

步骤5,如果目标节点发现传送数据树的丢包情况与上一次数据接收到的丢包情况不同,则将这一次数据发送的丢包情况通过信息反馈树发送给目标节点。让目标节点即时的调整分片策略。

有益效果:本发明是一种基于分片技术的无线传感器网络数据隐私保护研究方案,具体是通过线性还原算法保证数据的冗余性和使同态加密保证数据的隐私性。本发明有如下优点:

1、数据的冗余性:通过隐私保护的冗余算法,在数据分片的时候,加入了其余分配数据包的信息,即使在部分丢包的情况下,通过线性的还原算法可以还原出全部的报文信息。如图1所示,使用了具有我们可以看到由于使用了CTP协议作为中间节点的传输协议,以及CTP本身得消息队列机制,所以丢包率较 小,加上MS协议的数据还原性,即使在碰撞的情况下源节点对收到信息的丢包,也可以很好的还原出整个数据。所以对比于CDPA和SMART具备有很好的数据精确性。

2、数据隐私保护性:通过对原始数据进行分片处理和所有的分片数据进行同态加密处理,加强数据隐私保护性。如表1所示,MS方案的隐私保护性能对比于SMART协议和CDPA协议在精确性和计算性方面有很好的表现。

3、效率:由于使用了同态加密,而且还原算法是线性的,所以数据的还原效率很高,速度快,十分适合无线传感器计算能力弱的特点。

4、可靠性:由于转发节点都采用了CTP协议,所以信息报转发的可靠性很高。

5、动态调整:通过信息反馈树反馈丢包信息,即时的调整分批策略,有效提高信息发送的效率。由图2可见,目标节点反馈丢包率后,源节点在也会相应的改变携带隐藏分片数量,一方面有效地降低了网络带宽,另一方面有效地保证数据分片的到达。

附图说明

图1 MS协议,CDPA(pc=0.3)协议和SMART(J=3)协议之间的数据精确性比较,

图2 目标节点反馈丢包率后,携带隐藏分片数量,

图3 网络模型,

图4 源节点的工作流程图,

图5 目标节点的工作流程图,

图6 源节点的分片数据的帧格式,

图7 数据分片参照图。

具体实施方式

在如图3所示的网络模型中,从源节点到目标节点建立了两颗路由树,分别是用CTP协议生成信息反馈树和传送数据树。由于设计的线性冗余算法可以动态的调整冗余度,也就是说可以根据丢包率调整分片策略,改变冗余度,所以建立了以源节点为根节点的信息反馈树,目标节点通过将丢包的情况通过信息反馈树反馈给源节点。传送数据树是以目标节点为根节点的数据传送树,任务比较简 单,就是简单的将源节点分片数据转发到目标节点。

源节点首先发生测试数据包,用来测试网络的丢包情况和拓朴树的建立情况,当收到目标节点的反馈数据后才开始采集数据,否则就一直等待,源节点采集数据到默认的数量时,根据收到目标节点反馈信息中的丢包率情况,根据算法制定分片策略,然后进行同态加密,分发数据给源节点的父节点。

源节点采集数据的速度相对于传输数据到目标节点的速度较快,对每次采集的数据都进行传输会极大的增加能量损耗,所以对采集到的数据不进行每次都发送,而是先将采集到的数据储存起来,放在一个堆栈中,当数据存储到一定数量时,再进行发送,通过这种方式提高数据传输效率。

通过信息反馈树反馈的信息丢包率,调整分片策略,将采集到的数据进行分片,然后对每个分片数据进行同态加密,在每个数据包中加入其余的分片信息。然后将整个数据报分发到以源节点为根节点的传送数据树中的各个父节点。

中间节点包括了信息反馈树的转发节点和数据传送树的转发节点,这些节点的工作主要是转发,并不进行解密和加密工作,它们都采用CTP协议来生成树。

目标节点首先等待转发节点建立CTP树,然后等待源节点发送过来的测试数据包,计算丢包率,然后将计算得到的丢包率反馈给源节点,然后再进行正常的收包工作,否则就一直等待源节点的数据。当目标节点收到分片数据时,会首先判是否是与堆栈里的相同数据分片,不是则对已有的数据分片进行数据重组、还原、解密,同时计算丢包率,通过信息反馈树发送丢包信息给源节点。然后自动释放堆栈里的数据资源,更新COUNT位,将新的数据分片加入堆栈之中。当收到的数据分片达到了规定的数量时,根据各自分片数据的位置进行数据重组、解密,计算丢包率,发送丢包信息给源节点。

在源节点进行分片,目标节点进行数据还原。源节点S将数据帧分片给各个节点,由这些节点通过CTP树转发给目标节点。假设采集到的原始数据是m个字节,则共有8m的比特位需要分割。

令M=8m,设A为每个节点分到的比特位数,N为总节点数,则n满足

其中A必须为整数,n=1,2,3……

n为满足条件的最大整数值。

设计在源节点的帧格式如图6所示,

-标记有效位:8个比特位,如果标记有效位大于100,则该数据分片有效,否则无效,目标节点丢弃该数据分片。

-计数位:16个比特位,用来记录此次分片是第几次分片。

-分片总数位:16个比特位,用来记录此次分片总共有多少数据分片。

-位置位:16个比特位,记录每个节点的分片数据处于总分片的位置。

-信息位:A个比特位,每个节点从源节点得到的分片数据的信息。

-隐藏的其他分片信息:比特位由源节点根据收到的丢包率决定,是动态决定的。

源节点采集数据后,对采集到的数据进行分片。如图7所示

设在N个节点中,第i个节点会的得到自身的有效分片数据Xi,以及部分其余

分片的隐藏信息。假设在某一时刻,源节点收到目标节点反馈的丢包率为

PLR(Packet Loss Rate),那么计算HSC(Hide Slice Count)

HSC为满足条件的的最小正整数,Xi所携带的分片信息为

S(i+HSC)%N=X(i+HSC)%N-X(i+HSC+1)%N

源节点对采集到的原始数据进行切片,加入其余分片的隐藏信息后发送到目标节点,目标节点收到数据时,读取标记有效位,判断是否是与堆栈里的相同数据分片,不是则对已有的数据分片进行数据重组,然后自动释放堆栈里的数据资源,更新计数位,将新的数据分片加入堆栈之中。当收到的数据分片达到了分片总数位的数量时,根据各自分片数据的位置进行数据重组。

1.丢失的情况下数据还原

如果超过时限或者提前收到了下一个数据包的分片数据,那么就要对已经收到的分片数据进行重组。现在假设分片数据在没有丢失的情况下,得到全部的原始数据。那么我们就可以的得到的所有的S数据包数据。列出相应的方程式,可以得到一个(N×N)线性矩阵,如下图所示

由线性代数的变换可知,R(Matrix_C)=N-1,通过线性变换可以得到

根据上述矩阵,只要得到其中一个解,那么就可以通过计算,得到全部的解。假设目标节点未收到节点i的数据包Xi,那么我们可以根据公式

Xi=Si+Xi+1

由此我们可以假设,如果我们只收到一个分片数据包Xj。那么根据该数据包所携带的S集合就可以列出一个(HSC×N)的矩阵Matrix_Lack,通过线性变换可得

容易得到R(Matrix_Lack)=HSC,当接受第二个分片数据时,如果是第(j+HSC)%N个分片数据,那么将得到两个矩阵,将两个矩阵合并,其秩至少为N-1。就可以立即解得整体的数据。如果得到的是第(j+1)%N或者(j-1)%N个分片数据。那么矩阵的秩将增加1,即HSC+1。由此我们可以推出当接受到第二个分片数据时,至少可以矩阵的秩将增加1。

所以,由上述可知,当矩阵的秩

HSC+n-1=N-1

可以解出所有的解,即n=N-HSC时,就可以还原出矩阵Matrix_Comp’。也就是说在这当前的情形下,最多只需要接收到N-HSC个分片数据就可以还原出原始数据。而HSC是根据目标节点反馈的丢包信息计算得到的,所以目标节点在丢包率PLR的条件下,至少可以收到(1-PLR)×N个数据分片,只要

(1-PLR)×N≥N-HSC

所以肯定可以还原出原始的数据。并且当得到完整的举证之后,只需要遍历矩阵一次就可以得到所有的解。

现在已知矩阵Matrix_C’,假设要还原出数据Xx,设所有已知的解的集合为,ASW={Xa,Xb…Xm};先从这些集合中找出距离x最近的那个数,以此来降低时间复杂度。即

Distance=Min|r-x|,Xr∈ASW

找到已知最近的解Xr,可以解Xx,当r<x时

当r>x

根据上述的公式,可以得到要解出任意一个解的最好时间复杂度为O(1),平均时间复杂度为O(HSN/4),最差时间复杂度为O(HSN/2)。而要解出所有解的平均时间复杂度为O(HSN)。

2.分片数据的同态加密

同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。同态加密的思想起源于私密同态,代数同态和算术同态是私密同态的子集。R和S是域,称加密函数E:R→S为:

如果存在有效算法⊕,E(x+y)=E(x)⊕E(y)或者x+y=D(E(x)⊕E(y))成立,并且不泄漏x和y,则称为加法同态。

如果存在有效算法,E(x×y)=E(x)y或者xy=D(E(x)y)成立,并且不泄漏x和y,则称混合乘法同态,

如果存在有效算法,E(x-y)=E(x)○-E(y)或者x-y=D(E(x)○-E(y))成立,并且不泄漏x和y,则称E为减法同态。

除法同态,如果存在有效算法○/,E(x/y)=E(x)○/E(y)或者x/y=D(E(x)○/E(y))成立,并且不泄漏x和y,则称E为减法同态。

如果E既是加法同态又是乘法同态。则称为代数同态,算术同态,如果E同时为加法同态、减法同态、乘法同态和除法同态。

同态加密方案在没有解密密钥时,却需要进行一些算数操作的时候特别有用。在一个同态加密的算法里面,一般来说的描述如下所示。

enc()表示加密方案,Me表示明文空间,C表示密文空间。先假设存在加法同态加密算法Enc(),对于任何一个明文m1、m2,m1、m2分别为Me明文空间的子集,那么根据加法同态加密算法Enc(),就可以得到一个密文空间的子集c1=Enck1(m1)、c2=Enck2(m2),其中K为密钥。同时存在一个有效的密文c3∈C,c3满足

换句话说,如果我们解密C3就可以得到

在上述的冗余算法中,分片数据是以明文的形式传送的,很容易遭到窃取和破解,所以需要加强数据的隐私性。根据上述算法的线性特性,通过线性矩阵的证明可以知道,整个还原算法是线性的,即只需要通过加减就可以还原出整个数据,那么根据同态加密的特性,即经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。那么如果找到一个加密算法同时满足加法同态和减法同态,然后将找到的隐私加密算法与线性还原算法结合,那么就可以在不加大还原数据时间复杂度的前提下,还原出整个数据。这与无线传感器计算能力相对较弱,能量有限的特性十分符合。既提高了数据的隐私保护,又不大幅度的增加计算量。所以隐私同态十分适合与之前的隐私保护算法结合。

现在根据之前分片的冗余算法设计在源节点的同态加密算法公式如下

加密算法中的参数

①m是要加密的明文信息

②k是源节点与目标节点的共享密钥

③b是每个分片数据与目标节点的共享密钥

④M是系统固定的参数

⑤rand是随机产生的任意正整数

⑥p是系统的参数,并且

p为满足条件的最小素数

加密公式

E(m,k,b,M,p)=(k×m+b+rand×p)mod(p×M)=C

解密算法为

其中k是源节点与目标节点的共享密钥,b是每个分片数据与目标节点的共享密钥,当所有的节点在网络拓扑生成好之后,源节点会发送一些测试数据用来测试整个网络的丢包情况,当目标节点收到这些测试的数据包时,会根据收到数据包的多少情况计算整个网络的丢包率,然后计算源节点应该在分片数据之后加入多少隐藏的分片数据分片,然后根据数据分片的数量计算源节点与目标节点的共享密钥k,所以k只有一个。以及每个分片数据与目标节点的共享密钥b,所以b有很多个。然后通过信息反馈树,将信息反馈给源节点。源节点根据反馈给的信息进行分配和数据隐藏工作,当网络稳定时,目标节点每过一段时间就会发送信息 给源节点,而当网络拓扑发生变化时,标结也会发送信息给源节点,让源节点调整分配和加密策略。

现在假设有n个信息需要进行加密,则每个要加密的明文信息为m={m1,m2,m3…mn},则

对之求和,因为的最小素数,所以

同时,如果我们对明文信息m={m1,m2,m3…mn},先进行求和则

那么相应的b的和就是

对msum进行csum=Enc ksum(msum),就会变成

其中randsum为一个数,将其展开来,那么就会得到,

因为的最小素数,所以不会大于p,最终在解密的时候,在目标节点先对解密Csum,可以得到

现在对C’sum进行解密,可以得到

由此可见

msum=m’sum

所以该算法是满足加法同态加密,当目标节点得到加密过的分片数据后,只需要对这些数据进行线性处理,然后将的得到的结果进行解密,即满足加法同态。而减法本质上也是加法,在这里不做多余论述。

将隐私同态算法与上面的线性冗余算法结合,那么在源节点的分片数据进行隐私同态加密。Xi所携带的分片信息就变成为

S'(i+HSC)%N=(k×X(i+HSC)%N+b1+rand1×p)mod(p×N)-(k×X(i+HSC+1)%N+b2+rand2×p)mod(p×N)

而原始数据Xi则变成

X'i=(k×Xi+bi+randi×p)mod(p×M)

当目标节点收到同态加密后的隐藏数据后,并且判断是存在丢包的情况下,开始还原整个数据,当还原出整个矩阵之后,开始遍历的还原数据。现在已知矩阵Matrix_C’,假设要还原出数据X’x,设所有已知的解的集合为,ASW’={X’a,X’b…X’m};先从这些集合中找出距离x最近的那个数,以此来降低时间复杂度。即

Distance=Min|r-x|,Xr∈ASW

找到已知最近的解Xr,可以解Xx,当r<x时

当r>x

由于只要做一次的同态隐私解密,所以可以得到要解出任意一个解的最好时间复杂度仍然为O(1),平均时间复杂度仍然为O(HSN/4),最差时间复杂度仍然为O(HSN/2)。而要解出所有解的平均时间复杂度仍然为O(HSN)。

现在通过举例说明,现在假设原始节点采集到了原始的温度数据,然后将原始数据进行分片,假设分片后的数据有8个数据分片,分别是11℃,12℃,11℃,14℃,12℃,10℃,13℃,10℃.对模拟的网络环境现在设定参数,如下所示

①整个网络的丢包率约为5%。

②k是源节点与目标节点的共享密钥,设定k=5,由每次信息反馈树反馈,约定共同的密钥,一段时间内不会变更。

③b是每个分片数据与目标节点的共享密钥,则b共有8个,设定bi分别是b1=1,b2=12,b3=5,b4=4,b5=13,b6=12,b7=3,b8=8,由每次信息反馈树反馈,约定共同的密钥,一段时间内不会变更。

④M是系统固定的参数,设M=17,M一旦产生,就不会变动。

⑤rand是在源节点随机产生1-20的任意正整数,在此次模拟中,rand共有8个,设定randi分别是rand1=12,rand2=3,rand3=1,rand4=11,rand5=21,rand6=12,rand7=5,rand8=9。

⑥p是系统的参数,并且p满足条件的最大素数,且满足公式(14)

由于所以p就应该是79。

由于分别是m1,m2,m3,m4,m5,m6,m7,m8分别是11,12,11,14,12,10,13,10加密后得到c1,c2,c3,c4,c5,c6,c7,c8分别是6692,1731,613,6157,1179,6698,2833,5965.那么相对应的S’就是S’1,S’2,S’3,S’4,S’5,S’6,S’7,S’8,分别是4961,1118,-5544,4978,-5519,3865,-2232,-1627。

解密数据即可得到所有的解,解出m1,m2,m3,m4,m5,m6,m7,m8分别是11,12,11,14,12,10,13,10。而当目标节点没有收到所有的解,但是根据得到的隐藏数据还原出整个矩阵,那么就可以得到

当目标节点得到了完整的Matrix_Comp’矩阵之后,开始使用解密算法解密数据,由于能够还原出整个矩阵,那么必然会收到一个解,这样就可以根据公式(16)解密数据,如果我们收到的是c2,那么m2的数据就应该是

依次类推,就可以得到所有的解11,12,11,14,12,10,13,10,即采集到的原始温度11℃,12℃,11℃,14℃,12℃,10℃,13℃,10℃。在此过程中,当我们收到一个加密后的ci之后,可以立即通过解密算法,得到mi,然后如果要得到其余的解的话,也只需要对之后的解进行一次遍历,所以时间复杂度仍然是线性的。

表1 隐私保护性

表1 隐私保护性

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