一种无线传感器网络安全数据融合方法与流程

文档序号:12479490阅读:301来源:国知局
一种无线传感器网络安全数据融合方法与流程
本发明提出一种无线传感器网络安全数据融合方法,涉及无线传感器网络安全及数据融合等
技术领域

背景技术
:无线传感器网络(WirelessSensorNetwork,WSN)是一种典型的分布式网络,它包含大量的传感器节点,通常被部署在各种环境下以收集信息。无线传感器网络中的数据融合技术主要用来处理来自不同信息源的数据,通过数据压缩等手段去除冗余的信息,减小数据传输量,从而达到降低网络能耗,延长网络生命周期和提高数据收集效率的目的。然而数据融合面临着隐私暴露的风险:区域内的其它节点可能会尝试获取某个节点的隐私信息,攻击者也有可能对某个或某些节点进行侦听以获取隐私数据等。这就要求在数据融合的过程中,对节点的隐私数据进行保护。同时数据融合还面临着完整性的问题,攻击者俘获某个节点后,可能篡改其数据,欺骗传感网中的基站节点接收非法的数据。目前,常见的数据融合隐私保护技术可大致分为四类:数据扰动、安全多方计算、同态加密和多项式回归。然而,以上的这些方案需要对数据进行频繁的加密,且需要消耗大量的能量,存在较大的计算开销,这对于能量和计算能力有限的无线传感器网络来说是不合适的。常见的数据融合完整性保护技术有数字签名、模式识别码、监督、概率、信誉、同态技术、数字水印等,但这些方案开销都相对较高,保护了完整性的代价是较多的能量消耗,不具备很好的实用性。而同时保护数据隐私性和完整性,进行安全数据融合,也是目前具有挑战性的难题。技术实现要素:本发明的目的在于提出一种新的安全数据融合方法,以解决传统方法中存在的能量消耗过高、计算开销较大等弊端。本发明能够有效地同时保护数据的隐私性和完整性,易于部署且具备较好的实用性。本发明设计了一类特殊的传感器节点。这一类节点不需要对区域内的数据进行采集,大部分时间它处于休眠状态,它有较大的存储空间和较强的计算能力且是完全可信的。将这一类节点命名为可信的第三方节点(TrustedThirdNode,TTN)。这些节点的存储模块用来记录普通节点的历史数据和特征信息。为了以示区别,采集数据的节点称之为普通节点。为此,本发明提出如下的技术方案,以保护数据融合的隐私性和完整性,具体流程步骤如下:步骤1:在某一特定的检测区域内,普通节点随机分布,而第三方可信节点则根据区域大小和普通节点的密度均匀分布,普通节点之间共享密钥对,所有的节点都部署完成后,开始分簇的过程。步骤2:根据LEACH算法进行分簇并选举簇头,每个簇拥有一个簇头负责数据融合并将数据发送给基站节点,分簇结束后,每个簇获得簇ID,簇内每个普通节点开始寻找离它距离最近的可信第三方节点,每个普通节点找到最近的可信第三方节点后,依据某种对称密钥算法与其建立密钥对,密钥对建立完成后,开始可信第三方节点的初始化。步骤3:可信第三方节点开始初始化。对于每个可信第三方节点,它使用先前的密钥对以加密的形式向与其建立密钥对的普通节点发送随机数,普通节点收到后将其解密,可信第三方节点依次存储与它建立连接的普通节点的ID以及发送给该节点的随机数。步骤4:普通节点确定自己发送数据包的隐私数据位位置和完整性校验数据位位置,包含隐私数据位和完整性校验数据位的是一个1*n的矩阵,n定义为该节点所在簇内节点的个数加1,所有隐私数据位置“1”,所有完整性校验数据位置“x”,x是之前可信第三方节点发送给该普通节点的随机数。步骤5:普通节点再构建一个n*1的矩阵,其中的数据随机生成,将n*1的矩阵和1*n的矩阵进行乘法操作,得到一个n*n的矩阵,并把这个矩阵发送给与其建立连接的可信第三方节点。步骤6:可信第三方节点收到各个普通节点发来的矩阵后,根据普通节点的ID找到先前存储的发送给该节点的随机数,使用该随机数分解收到的n*n的矩阵,分解成功后,1*n的矩阵中的置“1”的数据位即为普通节点的隐私数据位,其余的位置为完整性校验位置,可信第三方节点将这一信息进行存储且只需要存储隐私数据位即可。步骤7:可信第三方节点根据各普通节点的ID,存储其对应的随机数和隐私数据位位置以及该节点所在的簇ID,可信第三方节点初始化完毕,随即进入休眠状态,等待数据融合过程的开始。步骤8:普通节点对周围的数据进行采集,采集完毕后,每个节点将隐私数据值分片,隐藏在之前确定的隐私数据位中,完整性数据的值定义为可信第三方节点发送的随机数的m倍,m是该普通节点历史采集数据被发送的次数,普通节点同样将完整性数据值分片,隐藏在完整性校验数据位中,最后,把构造好的1*n的矩阵发送给可信第三方节点。步骤9:可信第三方节点收到各普通节点的数据后,从休眠状态切入工作状态,对于每一个1*n的矩阵,先在存储模块中查询该普通节点隐私数据位位置,提取每一位置的隐私数据求和后得到原始数据,接着,查询该普通节点发送历史数据的次数m,若之前没有发送过数据,就查不到这一记录,于是为其开辟新的存储区域,作为计数区,并初始化m=1,再查询与该普通节点共享的随机数,用随机数乘以m,计算出当前的完整性校验值W,可信第三方节点对矩阵中剩余的元素求和,得到实际收到的完整性校验值W’,将W’与本地计算得到的值W进行比对,若一致则确认本次数据包的完整性,并将历史数据记录次数值加1,但首次发送数据的普通节点不做加1操作;若不一致则抛弃该数据包不再做其它操作。步骤10:可信第三方节点对处在同一个簇的通过完整性验证后的普通节点的隐私数据求和,以加密的形式发送给该簇的簇头。步骤11:簇头确认收到了所有可信第三方节点发送的数据后,解密进行最终的融合,算出融合结果,将数据融合的结果加密后向该簇的所有节点进行广播,并将其发送给基站。步骤12:可信第三方节点再次进入休眠状态,等待下一次数据融合的开始。步骤13:普通节点可对自己的隐私数据位和完整性校验的数据位进行更新,只需要发送新的n*n矩阵给可信第三方节点,可信第三方节点分解该矩阵后,则对存储模块中该节点的隐私数据位进行更新。进一步,步骤1中普通节点之间共享密钥对是依据某种对称密钥算法。进一步,步骤2中,簇内每个普通节点是通过收发信号测距方法寻找到离它距离最近的可信第三方节点的。进一步,步骤3中,所述随机数的数值应当相对较小且为整数,以方便计算和减小通信开销。进一步,步骤8中,如果是首次发送数据,则m的值为1。可信第三方节点存储数据包含节点ID、节点所属的簇、节点的随机数、节点的隐私数据位以及节点历史发送数据次数。本发明的有益效果在于:1、采用轻量级的矩阵分解和数据分片技术,同时提供了数据隐私性保护和完整性保护,与传统技术相比,加解密次数少,能耗低,计算复杂度低,通信开销小。2、本方法简单易实现,具有较好的实用性,易于在实际环境中部署。3、节点的隐私信息可以实时地更新。附图说明图1为区域内所有节点的分布的示意图。图2为可信第三方节点存储数据的示意图。图3为本发明的具体流程图。具体实施方式下面结合附图1、2和3及实例对本发明的具体实施方式做进一步的说明,其中图3为整体流程图。步骤1:在某一特定的检测区域内,普通节点随机分布,而第三方可信节点则根据区域大小和普通节点的密度均匀分布,普通节点之间依据AES对称密钥算法共享密钥对。所有的节点都部署完成后如图1所示,开始分簇的过程。步骤2:根据经典的LEACH算法进行分簇并选举簇头,每个簇拥有一个簇头负责数据融合并将数据发送给基站节点,图1分簇的结果为每个簇的簇内节点个数大于等于3。分簇结束后,每个簇获得簇ID。通过经典的RSSI(ReceivedSignalStrengthIndication)测距方法,簇内每个普通节点开始寻找离它距离最近的可信第三方节点。每个普通节点找到最近的可信第三方节点后,依据AES对称密钥算法与其建立密钥对。密钥对建立完成后,开始可信第三方节点的初始化(步骤3-步骤6)。步骤3:可信第三方节点开始初始化。对于每个可信第三方节点,它使用先前的密钥对以加密的形式向与其建立密钥对的普通节点发送随机数(本着方便计算和减小通信开销的原则,该随机数的数值应当相对较小且为整数)。普通节点收到后将其解密。可信第三方节点依次存储与它建立连接的普通节点的ID以及发送给该节点的随机数。现假设来自簇A的节点P收到了可信第三方节点发来的随机数,设该随机数为7。对于可信第三方节点,它记录下节点P的ID,节点P所在的簇A,以及发送给节点P的随机数7。步骤4:设节点P所在的簇A中共有4个节点,则数据位的个数n为节点数加1,即为5。节点P开始设置自己的隐私数据位位置和完整性校验数据位位置。节点P初始化自己的隐私数据位位置为0、2和3,剩下的数据位为完整性校验数据位即1和4。隐私数据位置“1”,完整性校验数据位置为随机数“7”,则该1*5的矩阵可表示为:17117步骤5:随后,节点P构建一个5*1的矩阵,矩阵内数据随机选取,则该矩阵可表示为254911将这两个矩阵进行乘法操作,得到一个5*5的矩阵,如下所示:21422145355535428442896399631177111177节点P把这个矩阵发送给可信第三方节点。步骤6:可信第三方节点收到矩阵后,它先根据该节点的ID找到它的随机数7。对于可信第三方节点来说,它知道该矩阵的构成,即一个5*1矩阵与一个1*5矩阵相乘,且这个1*5的矩阵中的数由1和7构成,所以可信第三方节点可以较轻易的将该矩阵分解。分解后,分析这个1*5的矩阵,该矩阵中置“1”的数据位即为节点P的隐私数据位。可信第三方节点将隐私数据位信息进行存储。步骤7:可信第三方节点根据各普通节点的ID,存储其对应的随机数和隐私数据位位置以及该节点所在的簇ID,可信第三方节点的存储数据如图2所示。可信第三方节点初始化完毕,随即进入休眠状态,等待数据融合过程的开始(步骤8-步骤11)。步骤8:节点开始采集数据。设节点P采集的数据为20。节点P将该隐私数据值分片,其先前设置的隐私数据位共3位,于是节点P可将20随机分解为5、7和8(也可以是其它),分别置于隐私数据位0、2和3中。由于当前节点P是第一次采集并发送数据,根据要求,完整性数据的数据值应当是随机数乘历史采集数据被发送的次数m=1,即7*1为7。此时还剩下完整性校验数据位1和4,节点P将完整性数据值随机分为3和4,置于该1*5的矩阵中,即得到53784节点P把这个矩阵发送给可信第三方节点。该矩阵不需要加密,因为隐私数据都被分片处理,且与同样被分片的完整性数据混杂在一起,隐私数据得到了很好的保护。对于完整性而言,如果攻击者试图对数据包进行篡改,那么完整性验证的数据就会被破坏,这样就无法通过可信第三方节点的完整性校验。步骤9:可信第三方节点收到普通节点发来的数据包后,进入工作状态,开始提取隐私数据并进行完整性验证。对于节点P发来的数据包(1*5的矩阵),可信第三方节点先在自己的存储模块中进行查询,查到节点P的隐私数据位位置为0、2和3,提取0、2和3数据位中的数据,进行求和运算,得到节点P的隐私数据20。接着,可信第三方节点查询节点P的历史数据次数,由于这是节点P第一次发送数据,所以不存在对应的记录,可信第三方节点开辟新的区域,并初始化其历史数据次数m值为1。最后查询节点P的随机数为7,计算出当前的完整性校验值W=1*7=7。提取节点P的矩阵中的剩余位的数据,即完整性验证数据位1和4的数值求和得到W’=7,并与本地计算的值进行比对。此时W=W’,则可以通过对P的完整性验证。若不一致则抛弃该数据包不再做其它操作。步骤10:假设可信第三方节点还收到了来自簇A的节点R和节点Q的数据。这两个节点的数据均通过完整性验证后,可信第三方节点把来自相同簇的P、R、Q的数据进行融合操作,并以加密的方式发送给簇A的簇头。步骤11:对于簇A的簇头,假设其收到了来自若干个可信第三方节点发送的融合结果,簇头把这些数据分别进行解密后做最终的融合操作。融合完毕后,簇头把融合结果加密后向该簇的所有节点进行广播,并将其发送给基站。步骤12:可信第三方节点再次进入休眠状态,等待下一次数据融合的开始。步骤13:普通节点可对自己的隐私数据位和完整性校验的数据位进行更新,只需要发送新的n*n矩阵给可信第三方节点,可信第三方节点分解该矩阵后,则对存储模块中该节点的隐私数据位进行更新。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1