数据融合中隐私保护完整性验证算法研究
2018-08-21王军号
黄 娟,王军号,杜 朋
(安徽理工大学 计算机科学与工程学院,安徽 淮南 232001)
0 引 言
无线传感器网络(wireless sensor networks,WSN)是由许多传感器节点组成的,而每个节点的能量、存储、感应以及计算能力是有限的。为了进一步降低通信开销和延长网络寿命,传感器节点在传输过程中对原始数据进行融合处理。数据融合能够去除数据冗余,减少数据的传输量,从而节省传感器节点能量,延长无线传感器网络的生命周期。文献[1]指出了CPDA协议在隐私保护方面的脆弱性,对恶意节点的攻击给出了解决办法,保证了数据的隐私性,但无法检测数据的完整性。Mahimker等[2]提出了安全数据融合与认证方案,该方案设置阈值,只是把一部分签名和加密融合值发给基站,节点碰撞率高,通信量大,不适合大规模网络。因此,如何在保证数据融合传输安全性的同时确保数据的完整性,成为无线传感器网络的研究热点之一。
针对攻击者捕获或者伪造传感器节点等手段对网络实行内部攻击,对数据进行恶意插入、修改或者删除的行为,文献[3-4]分别提出了iCPDA和iPDA为传输数据提供了隐私保护性和完整性检测,但算法复杂度和完整性方面仍存在局限,而且一般适用于传感器节点部署稠密地区。针对该问题,文中设计了一种基于数据融合隐私保护完整性验证算法(PPIA)。该算法采用明码和密码对数据进行加密运算,而且利用节点产生的密码对数据签名,提高了数据的安全性;通过密码签名的方式对融合数据节点进行有效监督,防止恶意节点对有效数据进行非法篡改,有效地保证了数据的隐私性和完整性。
1 完整性验证方案
文献[5]中提出了一种融合方案,通过红黑簇头的互相通信,验证数据的完整性,使用逐条加解密的方式保护数据隐私,这种分布式验证的方案能够及早监测并丢弃错误数据。在网络部署过程中,无线传感器网络一般部署在无人看守的偏远区域。因此,为了获得安全可靠的数据,在传输过程中使信息不被泄露,文献[6]设计了一种ESIPPA方案。该方案在保护隐私的基础上可以侦测信息被非法篡改的情况,而且通过加权方式隐私传送ID号,实现了完整性验证。而文献[7]设计了PPFDT算法,该算法通过添加随机噪声的方法对数据加以保护,具有一定的隐私保护程度。文中提出的PPIA算法使用密码对和签名的方式对数据进行处理,实现了数据融合过程中隐私保护和完整性验证的目的,避免了传输过程中恶意节点的破坏、篡改等非法操作。
1.1 准备阶段
在该算法中,假设每个传感器节点Ai和它的所有子节点创建密码对(即私有密码d和公开明码e),密码d用于数据加密和对数据签名,而明码e发布给基站,用于验证数据传输过程中的完整性。
为了得到安全可靠的密码d,假设随机选择两个大素数p和q,两个素数长度接近,而且是1 024位。设n为公开的,而n=p*q,欧拉函数φ(n)=(p-1)(q-1),随机选取整数e(1 在无线传感器网络中,为了使数据在传输过程中不被攻击者篡改或伪造,需要对采集的数据进行保护。He等在文献[8]提出了PDA算法,该算法是源节点将采集数据进行切片后加密发送,中间节点无法获得完整数据,因而实现了数据的隐私性。但是PDA算法只支持SUM聚集操作,而且使用逐跳加密机制,导致计算量和通信代价较高。文献[9]中的数据聚合方案采用了数据扰动技术和分片技术,利用二元数据间的关联性进行数据隐私保护和数据完整性验证,但安全性较弱。而文中提出的PPIA算法采用明密码加密获得的有效数据进行保护,从而实现数据隐私保护的目的,降低网络的计算代价。 假设传感器节点为Ai,Ai的父节点为Af,Ai的ni个子节点为{A1,A2,…,Ai}。为了保护数据的安全性,Ai对采集到的数据M进行加密计算,加密公式为:C=Mpmodn,从而得到密文C。在进行加密之前,该算法利用单向Hash函数获取固定长度的消息摘要Hash(M),再利用密码对消息摘要进行加密签名运算,详细加密签名过程如下: s=Sign(M)=Hash(M)dmodn (1) Ci=Enc(Mi,di,n)=Enc(Mi+di(modN))+ Enc(Mi+di(modN))i= (Mi+di(modN))+(Mi+di(odN))i (2) 其中,在节点数为n的网络中,N可取为2「ln(max(Mi)*n)⎤,max(Mi)表示原始数据可能取的最大值。 PPIA算法通过加密签名后,数据就具有了保密性和标记性,从而实现了WSN数据融合隐私保护的目的。 在数据融合阶段,文献[10]提出了SPPDA方案,描述了建立数据融合树的方法对数据进行融合。文献[11]提出了iPPHA算法,在直方图融合基础上,构建另一棵融合树传输冗余信息,在基站处对数据完整性进行验证。而PPIA算法采用Bayes有向图形式,对签名后的数据进行融合。为了保证数据在融合过程中不被泄露或者伪造,该算法采用密码对数据进行签名。文献[12]采用了复数的可加性实现了数据融合的完整性,但该算法增加了数据的运算量,从而使得算法的计算开销和通信开销较大。 为了降低网络开销,PPIA算法在传输过程中对数据签名结果进行融合,从而解决传感器能耗问题,能够在传输过程中节约电池能量,降低通信开销和计算代价,进而延长网络的使用寿命。 (3) (4) 为了使得融合效果较高,最大限度地降低冗余,建立一种Bayes网络的有向无环图。采用联合概率公式(见式5)可以简化数据冗余,减少计算的复杂度,从而解决了采集数据量大的问题。对于任意一个节点Ai,可找到与之条件不独立的最小子集θi∈{A1,A2,…,Ai-1},从而得到联合概率函数。 P(Ai/A1,A2,…,An)=∏P(Ai/θi) (5) 通过联合概率函数对数据进行融合,采用Bayes图形来捕获监测区域的数据,实现对数据的融合,具体的融合过程如图1所示。 图1 融合过程 文献[13]提出了一种CBIPDA算法,利用复数的虚实部关联特性保护数据完整性,但是在基站统一验证,使得网络只能在基站发现恶意数据,一旦发现就会丢弃整个融合结果。而文中设计PPIA算法的目的是为了确保数据的隐私性和验证数据在融合过程中具有完整性,因此该算法对节点采集的数据单元添加一部分数据标记,该标记能够验证数据融合中的完整性。为了满足完整性验证,提出两个假设:密码是安全的,只有拥有者才能获得;产生签名的惟一途径是使用密码。 为了验证数据的完整性,具体步骤如下: (1)将接收到的数据进行分离,即融合结果和签名两个数值分离; (2)利用发送方的公开明码解密数字签名,从而得到摘要信息; (3)使用与发送方相同的散列Hash函数重新计算原消息的摘要信息; (4)利用发送方的明码解密得到的摘要信息与Hash函数计算原消息信息进行比较,若二者相等,则说明消息在传输过程中没有被篡改或者伪造;否则,消息签名不可靠,应当丢弃该数据融合结果。 由式4可得融合结果,基站需对融合结果进行数据还原,从而得到真实的数据融合结果M。具体验证如下: 若 d*e=1(modφ(n))s=Hash(M)dmodn (6) semodn=Hash(M)edmodn=Hash(M)φ(n)+1modn=Hash(M)*Hash(M)φ(n)modn=Hash(M) (7) 还原融合函数: (8) 则完整性验证有效;否则,验证无效。 PPIA算法对数据进行隐私保护完整性验证是通过密码签名的方式实现的,利用密码加密和签名,在基站使用明码进行完整性验证,从而实现了数据融合隐私保护完整性验证的功能。 具体算法流程如图2所示。 图2 算法流程 PPIA算法执行过程如下: Step1:初始化节点,构造密码对,即Public_Key,Private_Key; Step2:签名,节点使用私有密码对数据签名,把明码公布;加密Enc(sign);数字签名; Step4:完整性验证,基站获得明码generate_Public_Key;解密Drc(sign_Public_Key),还原融合函数,见式8;判断解密函数与Hash函数计算结果:如果二者相等,验证有效;否则,验证无效。 对PPIA算法的安全性分析主要是针对算法的签名这一过程进行的。数字签名的安全性要求签名是可以被验证的,而且是不可伪造的。当某个节点被攻击者捕获时,可能获得该节点的敏感信息,而且也可伪造虚假信息。为了鉴别伪造数据还是真实融合数据结果,使用密码签名,可以在基站检测出伪造信息并丢弃。通过实验仿真,比较了PPIA方案和文献[14]中的PDI算法的安全性能,如图3所示。 图3 安全性比较 在实验中,传感器节点数目m取6。由图3可知,当消息长度为100时,PDI算法小于500 ms,该算法的运行时间较短,未能及时进行签名运算;而PPIA算法的运行时间较长,能够在有效的时间内计算签名。所以,PPIA算法的安全性相对较高。 PPIA算法采用密码方式对获得的数据进行加密,若伪造者想要获得密码,则需要对p和q进行计算,而它们是两个长度接近的大素数,这是很难实现;另一方面,该算法采用了欧拉函数,对于e和d的获得以及密码的计算量相对而言较为繁琐,使得该算法隐私效果更显著。 在签名之前,使用单向Hash函数生成固定长度的消息摘要,它采用自己的密码加密消息摘要,得到签名,从而增加了数据的隐私性。若不使用Hash函数,那么对消息m的签名为s,假如攻击者获得了这个签名,就可以伪造消息m的有效签名s。所以,该算法使用Hash函数提高了数据的隐私保护性,而且也大大提高了签名和验证的效率。图4比较了PPIA算法和文献[8]中的SMART方法的隐私保护性。可知,当节点间被破解的概率低于6%时,SMART的隐私保护数据被暴露的概率低于0.4%,而PPIA算法低于0.2%,因此,PPIA算法的隐私保护性能更好。 图4 隐私保护性比较 针对SPPDA方案使用复数的可加性融合数据和完整性验证方法,如果恶意节点破坏复数的实部和虚部,那么SPPDA方案无法保证数据融合结果的完整性。而PPIA算法在加密算法的基础上使用密码签名的方式,对数据进行签名,相当于对每个数据做标记,再对数据融合。如果恶意节点注入虚假信息,基站必然会检测出伪造数据。图5比较了SPPDA方案和PPDA算法的完整性。 图5 完整性比较 由图5可知,当节点之间的通信数据量低于100时,SPPDA方案比PPIA算法的完整性要好,但高于100时,PPIA算法的完整性要高于SPPDA方案。一般而言,WSN网络部署过程中存在许多节点,以至于PPIA算法的完整性和可靠性更高。因此,文中方案更适合WSN数据融合网络。 提出了一种基于数据融合的隐私保护完整性验证算法,采用密码对方式对传感器节点获得的数据进行加密,保证了数据隐私性。为了使融合结果具有完整性和安全性,利用密码签名在实现数据隐私保护的基础上验证数据是否被篡改或伪造。该算法实现了WSN中数据隐私保护和完整性验证的有机结合,能够有效地保证数据在传输过程中不被破坏和基站接收到的数据是有效的。从安全性、隐私性、完整性三个方面分析验证了该算法的性能,证明该算法在这三个方面具有一定的优越性,能够实现数据融合隐私保护完整性验证的功能。1.2 隐私保护阶段
1.3 数据融合阶段
1.4 完整性验证阶段
2 具体实现
3 性能分析
3.1 安全性分析
3.2 隐私性分析
3.3 完整性分析
4 结束语