叶木林
(湖北省鄂州市气象局湖北鄂州436000)
无线传感器网络[1-3](Wireless Sensor Networks,WSN)作为物联网的重要组成部分,是一种新的信息获取与处理技术,被广泛应用于智能生活、医疗改革、国防事业和环境检测等领域[4-6]。WSN通常是由诸多遵循多跳路由协议的传感器节点,构成的一个拓扑结构的簇状网络[7]。然而,节点间的信息存在冗余,若将每一个节点所采集的数据单独发送给传感器查询节点,不仅会占用更多的通信带宽,且还将消耗大量的能量,妨碍信息采集的效率和速度[8]。因此,需要使用数据聚合技术[9]压缩各个节点所采集的信息。并去除冗余和不重要成分,聚合出更精确、有效及满足需求的信息[10-13]。数据聚合技术不仅能减少数据通信量及网络开销,且还能提高数据采集效率并延长WSN的生存时间。
同时,WSN具有开放性的特点[14],容易受到各种攻击的干扰。因此,需要在进行数据聚合的同时加入隐私保护方案,以保障数据的安全性[15]。WSN所遭受的攻击通常包括内部攻击和外部攻击[16]两种,内部攻击即攻击者利用一个或多个节点的合法解密来获取私密信息,抵抗这种攻击通常需要防止攻击者捕获传感器节点;外部攻击通常通过监听节点间的通信链路来窃取信息,抵抗该种攻击只需对信息进行加密即可。
然而,WSN通常是资源受限的,频繁的数据加密与解密操作需要消耗大量的能量,这将大幅减少WSN的使用寿命。针对这一问题,国内外学者提出了众多解决方案,如文献[12]指出使用秘密同态技术实现不需要解密的数据聚合过程;文献[13]提出了一种基于树拓扑结构的TAG算法在WSN内进行数据聚合,以减少网络的通信量;文献[14]提出了一种安全保护与入侵检测相结合的数据聚合方式;文献[15]提出了一种基于分布式的数据聚合方法SMART和一种基于加密秘钥分布与分簇的数据聚合方法CPDA算法,CPDA算法采用矩阵运算来隐藏原始信息以保证内部敏感信息的安全性。
CPDA算法包括簇的形成、簇内数据串通和簇头数据聚合3个步骤组成。并由查询服务器、簇头和簇的成员构成一个自下而上的信息流动树。该网络通常使用SUM、COUNT和AVERAGE等方式进行数据聚合,本文使用SUM操作定义了如式(1)所示的数据融合函数:
假设Di为传感器节点i所采集的数据,其融合精度为p,则根节点Dr最后得到的融合数据的精度为:
1)簇的形成:即构造簇,该算法定义了一个簇大小mc≥3的聚合树。首先,查询节点Q向周围节点广播Hello信息(图1(a)),收到该信息的节点将有概率p成为簇头,并向其周围节点广播Hello信息(图1(b));然后,接收到多个Hello信息的传感器节点会随机选择一个广播信息的簇头作为其自身的簇头,并Join该簇头(图1(c));最后,重复上述过程建立多个簇,并形成融合树(图1(d))。
2)簇内数据串通:假设有如图2(a)所示的包含一个簇头A和两个成员B、C大小为3的簇,各传感器节点的私有数据为a,b和c,公共信息为x,y,z。CPDA算法采用矩阵运算来隐藏原始信息,以保证内部敏感信息的安全性。同时,各传感器节点通过数据交换来获取各自所需的信息,其数据交换过程如图2所示。
图1 簇的形成流程
图2 节点间的数据交换过程
首先,各传感器节点分别产生随机数,并计算得到扰动数据V。其中,节点A的扰动数据为:
节点B生成的扰动数据为:
节点C生成的扰动数据为:
当所有节点计算得到其扰动数据后,各节点保存其自身的扰动数据并利用其他节点的共享秘钥分别发送其他扰动数据的加密结果,如图2(b)所示。
节点A得到的全部信息为:
节点A的融合结果为:
同理,有:
由图2(c)可知,此时节点A得到了该簇所有节点的数据聚合结果为:
使用行列式表示式(11)所示的方程组有:
由于各传感器节点的公共信息x,y和z各不相等且不为零。则由式(12)可知,方程的解为U=G-1F。
3)簇头数据聚合:该步骤的目的是实现所有簇头数据的融合,将每一个簇头得到的数据层层向上传递,直到查询节点Q。
从上述步骤可看出,CPDA算法在保证各节点所感知数据的隐私性的基础上实现了数据聚合的准确性,但CPDA算法仍存在数据通信效率和融合精度低的问题。该算法需要将簇中每一个节点的信息加密后传播给簇的其他成员,若簇的成员数过少将达不到预期的数据聚合精度;若成员过多则将降低通信效率。同时,在数据串通过程中,若通信时延较长将导致数据碰撞丢失,并进一步影响数据的安全性。而簇的规模越大,数据碰撞的情况也将更为频繁,从而影响聚合结果的精度。
基于上文分析,本部分从减少通信开销和降低数据碰撞率两方面改进CPDA算法以提高了数据聚合的准确性与效率。具体的改进框架,如图3所示。
图3 改进的CPDA算法框架
从图3可知,本文采用部分数据交换策略来减少信息发送量以降低通信量。采用随机发送策略降低数据碰撞的几率,以提高数据聚合的精度。如图4所示,比较了CPDA算法与本文改进算法的数据包发送时刻。从图中可以看出,CPDA算法在固定时刻发送数据包。而改进算法在时间间隔ts的任一随机时刻均可发送数据包,来防止形成通信高峰,从而降低数据碰撞的几率。
图4 数据发送时刻对比
改进算法的具体实现如下所述:
1)簇的形成:改进算法与原CPDA算法的形成流程一致。
2)簇内数据串通:改进算法在一定的时间间隔内进行数据串通,并尽可能地接收全部扰动数据包,传感器节点j的数据聚合结果为:
式中,||Ci为簇j中节点的数。对所有节点执行相同的数据融合过程后,簇头节点的融合结果为:
在上述过程中,数据的具体发送时刻为:
T1:0~ts间的随机值;
T2:ts~2*ts间的随机值;
T3:2*ts~3*ts间的随机值;
……
Tm:(m-1)*ts~m*ts间的随机值。
3)簇头数据聚合:改进算法与原CPDA算法的数据聚合流程一致,并采用TAG算法构造数据融合树。
文中使用TinyOS的事件仿真模拟器——TOSSIM工具进行仿真测试。该工具可以让用户在一个能重复使用操控的环境中进行调试与检测数据。
测试系统为一个400×400的区域随机布置了600个传感器节点的无线传感器网络,节点间的最大传输距离与最大传输速度分别为50 m和1 Mbps。具体的仿真流程,如图5所示。
图5 算法仿真流程
文中分别从数据通信量、隐私性和数据聚合精度3个方面比较了CPDA算法与改进算法。
如图6所示为10次仿真测试得到的两种算法的数据通信量大小。从图中可看出,改进算法的数据包数量比CPDA算法的少。当网络中含有相同数量的传感器节点时,簇的规模越小,改进算法中的失败节点数量就越少。
如图7所示为,两种算法的数据聚合精度的比较结果。从图中可以看出,随着时间间隔的增大,各节点发生数据碰撞的可能性将逐渐降低,数据聚合的精度则将逐渐提高。同时,还可以看出,改进算法数据发送的时刻更加随机,能大幅减少数据碰撞发生的几率。
如图8所示为,不同节点链路间发生数据窃听的概率比较结果。从图中可以看出,CPDA算法被窃听的概率更高。当概率小于0.02时,改进算法的隐私泄露概率极低,满足隐私保护的目的。
图6 网络中数据通信量的比较
图7 数据聚合精度比较比较
图8 节点间链路被窃听的概率比较
文中基于CPDA算法提出了一种改进算法,以解决原始算法的隐私保护性较低和需要大量通信量的问题。提出的算法一方面使用部分数据交换策略以减少数据串通阶段不必要的数据交换,另一方面使用随机发送策略以提高数据聚合和的精度。使用TOSSIM测试工具在数据通信量、隐私性和数据聚合精度三方面的测试结果表明,所提出的算法具有更高的通信效率、更精确的数据聚合结果。并能满足隐私保护的要求,具有一定的实用性和有效性。