法律状态公告日
法律状态信息
法律状态
2018-08-24
授权
授权
2015-12-16
实质审查的生效 IPC(主分类):H04W12/10 申请日:20150717
实质审查的生效
2015-11-18
公开
公开
技术领域
本发明属于无线传感器网络数据安全领域,具体涉及一种无线传感器网络中基于校验 码的数据可靠性保护方法。
背景技术
无线传感器网络(WirelessSensorNetwork,WSN)是由大量传感器节点组成,协作 地感知、采集、处理和传输数据,完成各项预定任务。网络中由于能量有限、环境变化、 冲突干扰等众多因素都可能导致无法获得可靠数据。但无线传感器网络主要以数据为中 心,通过对数据的分析,得到事件处理结果,因此数据的准确和可靠与否将直接影响是否 做出正确决策。如何针对无线传感器网络构建一个可靠性模型是保证无线传感器网络安全 需要解决的首要问题。
针对无线传感器网络所具有的可靠性问题,现有的技术主要有以下几种方案:
PurohitN,VaradwajP,TokekarS.Reliabilityanalysisofwirelesssensor network[C]//Proceedingof16thIEEEInternationalConferenceonNetworks,2008. 假定了一个具有n个相同传感器节点和一个Sink节点的无线传感器网络,每个传感器节 点都配有X只传感器。文中定义一个时间A,表示至少一个传感器节点的至少一只传感器 可以感知环境并可以将感知到的数据通过Sink节点传输到服务器,事件A发生的概率就 是该无线传感器网络的可靠性。不过此文只考虑了无线传感器网络节点间的连通性,而没 有考虑到无线传感器网络的覆盖下问题。
ShresthaA,LiudongX,HongL.Modelingandevaluatingthereliabilityof wirelesssensornetworks[C]//ProceedingsofReliabilityandMaintainability Symposium,RAMS’07,2007:186-191.考虑了一种簇结构的无线传感器网络,定义无线 传感器网络的可靠性是监控区域内的每一个点至少被K个节点覆盖,并且,这K个节点中 的每一个都至少存在一条通往Sink节点的路径概率。在可靠模型建立过程中考虑了共因 失效因素,使用了简化二元决策图方法。虽然本人考虑了无线传感器网络的节点间连接线 和节点覆盖性,但最终只是给出了基于覆盖簇结构的无线传感器网络可靠性模型。
YousefiH,MizanianK,JahangirAH.Modelingandevaluatingthereliability ofcluster-basedwirelesssensornetworks[C]//Proceedingof24thIEEE InternationalConferenceonAdvancedInformationNetworkingandApplication(AINA), 2010:827-834.建立基于K节点覆盖、节点间连接失效和路径失效的可靠性模型。文中定 义无线传感器网络的可靠性是Sink节点成功探测事件的概率,也就是各个簇头节点探测 事件的概率与簇头节点聚合的数据成功传输到Sink节点的概率乘积,而簇头节点探测事 件本身是与覆盖有关的函数,被定义为源簇是K节点覆盖,并且簇头成功收到至少K个包 的概率。文中分别求出了以上3个部分的函数表达式,并最终得到基于簇的无线传感器网 络可靠性模型。
上述方法可以有效地无线传感器网络的可靠性,提高网络的安全性,不过针对具体数 据很难保证安全,但在实际运用中很难做到低消耗和低延时。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种无线传感器网络中基于 校验码的数据可靠性保护方法,既能通过水印技术准确提供数据完整性,又能利用校验码 根据数据实际信任度验证数据可靠性,从而更加精确地了解数据的正确性,且数据信任度 可接受范围内,能减少网络开销,起到节约耗能的作用。
本发明的目的通过以下的技术方案实现:一种无线传感器网络数据中基于校验码的数 据可靠性保护方法,其特征在于,所述的无线传感器网络中设有若干个传感器节点,所述 传感器节点分为基站节点和源节点,均在其可通信范围内,基站节点中预设信任度阈值Y 及源节点中预存数据特征码;
一、数据生成步骤如下:
1)每个源节点向其周围采集数据;
2)根据采集数据,以每两个字符为一个字符分组的方式进行分组,并将采集数据与 预存数据特征码对比,得其相应1位重要程度布尔值(1代表重要、0代表不重要);
3)根据采集数据,以去除每字符所对应8位二进制数首位冗余0的方式进行优化,即 每个字符表示为7位二进制数;
4)根据每个字符分组,将其相应1位重要程度布尔值存于分组后面,生成15位字符 分组二进制数串group_binstr;
5)根据分组二进制数串group_binstr,将所有字符分组二进制数串合并,生成字符 二进制数串char_binstr=∑group_binstr;
二、校验码生成步骤如下:
1)根据步骤一中生成的字符分组二进制数串group_binstr,利用校验数计算公式, 可得每个字符分组所相应的校验数groupchecknum。所述校验数计算公式如下:
其中groupchecknum表示字符分组二进制数串所相应的校验数,Weight表示字符权值, CharNum表示校验数集;
2)根据每个字符分组所相应的校验数groupchecknum,以每个校验数用相应4位二进 制数替换的方式,生成相应校验码二进制数串groupcheck_binstr;
三、水印生成步骤如下:
1)根据步骤一中的字符分组二进制数串group_binstr和步骤二中相应的校验码二进 制数串groupcheck_binstr,合并成链接二进制数串mergegroup_binstr={group_binstr, groupcheck_binstr};
2)根据链接二进制数串mergegroup_binstr,将所有字符分组链接二进制数串 mergegroup_binstr合并,生成合并二进制数串merge_binstr=∑mergegroup_binstr;
3)根据合并二进制数串merge_binstr,利用哈希函数F(merge_binstr)生成16位水 印信息二进制数串wminfo_binstr;
四、字符转换步骤如下:
1)根据步骤三中合并二进制数串merge_binstr和步骤三中水印信息二进制数串 wminfo_binstr,合并成数据二进制数串data_binstr={merge_binstr,wminfo_binstr};
2)根据数据二进制数串data_binstr,以在其尾部补足{8-strlen(data_binstr)MOD8} 个1的方式,生成安全二进制数串security_binstr;
3)根据安全二进制数串security_binstr,以每8位二进制数转换为1个无符号字符 方式,生成安全字符串security_uchar;
五、数据分离步骤如下:
1)基站节点接收每个源节点发送的安全字符串,将其转换为接收二进制数串 receive_binstr;
2)根据接收二进制数串receive_binstr,利用数据分离算法,可得分离字符二进制 数串sepchar_binstr,分离重要程度二进制数串sepimport_binstr,分离校验码二进制 数串sepcheck_binstr及分离水印信息二进制数串sepwminfo_binstr。其中数据分离算法 如下:
3)根据分离字符二进制数串sepchar_binstr,分离重要程度二进制数串 sepimport_binstr和分离校验码二进制数串sepcheck_binstr,合并成分离数据二进制数 串sepdata_binstr;
4)根据分离数据二进制数串sepdata_binstr,利用哈希函数F(sepdata_binstr)生成 16位数据水印二进制数串datawminfo_binstr;
六、数据校验步骤如下:
1)根据步骤五中数据水印二进制数串datawminfo_binstr和据步骤五中分离水印信息 二进制数串sepwminfo_binstr进行对比验证,若完全相同,则接收数据可靠无误,否则 接收数据不可靠有误;
2)若接收数据无误,则根据步骤五中分离字符二进制数串sepchar_binstr,以在每7 位之前添加1位0的方式还原字符ASCII码,并由此还原数据;
3)若接收数据有误,则根据步骤五中分离字符二进制数串sepchar_binstr及步骤五 中分离重要程度二进制数串sepimport_binstr,以每7位字符二进制数串尾随1位重要二 进制数串的方式,生成待校验二进制数串waitcheck_binstr;
4)根据待校验二进制数串waitcheck_binstr,以每15字符为一组的方式进行分组, 得到分组待检验二进制数串groupwaitcheck_binstr,即waitcheck_binstr= ∑groupwaitcheck_binstr;
5)根据分组待检验数据groupwaitcheck_binstr,利用步骤二中校验数计算公式,可 得每个分组所相应的校验数groupwaitchecknum;
6)根据每个字符分组所得到的校验数groupwaitchecknum,以每个校验数用相应4位 二进制数替换的方式,生成校验码二进制数串groupfinishcheck_binstr;
7)根据校验码二进制数串groupfinishcheck_binstr、步骤五中分离校验码二进制数 串sepcheck_binstr及步骤五中分离重要程度二进制数串sepimport_binstr,利用信任度 计算算法,计算出信任度X。信任度计算算法如下:
8)根据计算出信任度X和预存信任度阈值Y,若X不小于Y,则数据被破坏的影响程 度不大,且可靠性在可接受范围内,根据步骤五中分离字符二进制数串sepchar_binstr, 以在每7位之前添加1位0的方式还原字符ASCII码,并由此还原数据,否则丢弃该数据。
与现有技术相比,本发明的有益效果是:本发明主要针对无线传感器网络中的数据完 整性和可靠性,提出了一种基于校验码的数据可靠性保护方法。本发明将数字水印技术和 校验码技术相结合,形成一个高效的数据安全保障算法,能判断出在任何情况下的数据是 否丢失或窜改,从而保证数据的正确可靠。本发明在数据有误的情况下,可根据预存数据 特征码和信任度阈值,结合数据实际情况,计算出数据信任度,若高于预存阈值,则还原 数据信息,有效地避免了重发,起到节约耗能的作用,延长了网络的生命周期。
附图说明
图1是本发明中源节点数据处理过程流程图;
图2是本发明中基站节点数据处理过程流程图;
图3是本发明中源节点嵌入水印和校验码过程示意图;
图4是本发明中基站节点在无数据破坏的情况下验证及还原数据过程示意图;
图5是本发明中基站节点在有数据破坏的情况下验证及还原数据过程示意图。
具体实施方式
下面将结合本发明实施例及附图,对本发明实施例中的技术方案进行清楚、完整地描 述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发 明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
请参阅图1和图2,本发明实施例中,一种无线传感器网络数据中基于校验码的数据 可靠性保护方法,其特征在于,所述的无线传感器网络中设有若干个传感器节点,所述传 感器节点分为基站节点和源节点,均在其可通信范围内,基站节点中预设信任度阈值Y及 源节点中预存数据特征码;
一、数据生成步骤如下:
1)每个源节点向其周围采集数据;
2)根据采集数据,以每两个字符为一个字符分组的方式进行分组,并将采集数据与 预存数据特征码对比,得其相应1位重要程度布尔值(1代表重要、0代表不重要);
3)根据采集数据,以去除每字符所对应8位二进制数首位冗余0的方式进行优化,即 每个字符表示为7位二进制数;
4)根据每个字符分组,将其相应1位重要程度布尔值存于分组后面,生成15位字符 分组二进制数串group_binstr;
5)根据分组二进制数串group_binstr,将所有字符分组二进制数串合并,生成字符 二进制数串char_binstr=∑group_binstr;
二、校验码生成步骤如下:
1)根据步骤一中生成的字符分组二进制数串group_binstr,利用校验数计算公式, 可得每个字符分组所相应的校验数groupchecknum。所述校验数计算公式如下:
其中groupchecknum表示字符分组二进制数串所相应的校验数,Weight表示字符权值, CharNum表示校验数集;
2)根据每个字符分组所相应的校验数groupchecknum,以每个校验数用相应4位二进 制数替换的方式,生成相应校验码二进制数串groupcheck_binstr;
三、水印生成步骤如下:
1)根据步骤一中的字符分组二进制数串group_binstr和步骤二中相应的校验码二进 制数串groupcheck_binstr,合并成链接二进制数串mergegroup_binstr={group_binstr, groupcheck_binstr};
2)根据链接二进制数串mergegroup_binstr,将所有字符分组链接二进制数串 mergegroup_binstr合并,生成合并二进制数串merge_binstr=∑mergegroup_binstr;
3)根据合并二进制数串merge_binstr,利用哈希函数F(merge_binstr)生成16位水 印信息二进制数串wminfo_binstr;
四、字符转换步骤如下:
1)根据步骤三中合并二进制数串merge_binstr和步骤三中水印信息二进制数串 wminfo_binstr,合并成数据二进制数串data_binstr={merge_binstr,wminfo_binstr};
2)根据数据二进制数串data_binstr,以在其尾部补足{8-strlen(data_binstr)MOD8} 个1的方式,生成安全二进制数串security_binstr;
3)根据安全二进制数串security_binstr,以每8位二进制数转换为1个无符号字符 方式,生成安全字符串security_uchar;
五、数据分离步骤如下:
1)基站节点接收每个源节点发送的安全字符串,将其转换为接收二进制数串 receive_binstr;
2)根据接收二进制数串receive_binstr,利用数据分离算法,可得分离字符二进制 数串sepchar_binstr,分离重要程度二进制数串sepimport_binstr,分离校验码二进制 数串sepcheck_binstr及分离水印信息二进制数串sepwminfo_binstr。其中数据分离算法 如下:
3)根据分离字符二进制数串sepchar_binstr,分离重要程度二进制数串 sepimport_binstr和分离校验码二进制数串sepcheck_binstr,合并成分离数据二进制数 串sepdata_binstr;
4)根据分离数据二进制数串sepdata_binstr,利用哈希函数F(sepdata_binstr)生成 16位数据水印二进制数串datawminfo_binstr;
六、数据校验步骤如下:
1)根据步骤五中数据水印二进制数串datawminfo_binstr和据步骤五中分离水印信 息二进制数串sepwminfo_binstr进行对比验证,若完全相同,则接收数据可靠无误,否 则接收数据不可靠有误;
2)若接收数据无误,则根据步骤五中分离字符二进制数串sepchar_binstr,转换为 字符串,即还原数据;
3)若接收数据有误,则根据步骤五中分离字符二进制数串sepchar_binstr及步骤五 中分离重要程度二进制数串sepimport_binstr,以每7位字符二进制数串尾随1位重要二 进制数串的方式,生成待校验二进制数串waitcheck_binstr;
4)根据待校验二进制数串waitcheck_binstr,以每15字符为一组的方式进行分组, 得到分组待检验二进制数串groupwaitcheck_binstr,即waitcheck_binstr= ∑groupwaitcheck_binstr;
5)根据分组待检验数据groupwaitcheck_binstr,利用步骤二中校验数计算公式,可 得每个分组所相应的校验数groupwaitchecknum;
6)根据每个字符分组所得到的校验数groupwaitchecknum,以每个校验数用相应4位 二进制数替换的方式,生成校验码二进制数串groupfinishcheck_binstr;
7)根据校验码二进制数串groupfinishcheck_binstr、步骤五中分离校验码二进制数 串sepcheck_binstr及步骤五中分离重要程度二进制数串sepimport_binstr,利用信任度 计算算法,计算出信任度X。信任度计算算法如下:
8)根据计算出信任度X和预存信任度阈值Y,若X不小于Y,则数据被破坏的影响程 度不大,且可靠性在可接受范围内,根据步骤五中分离出的字符二进制数串 sepchar_binstr,转换为字符串,即还原数据,否则丢弃该数据。
请参阅图3,本发明实施例中,源节点数据处理过程,具体步骤为:
1)源节点采集数据为helloworld,以每两个字符为一个字符分组的方式进行分组, 即为{he,ll,ow,or,ld},与预存数据特征码对比,其相应重要程度布尔值为{1,1, 1,1,1};
2)采集数据转换为二进制数串{01101000,01100101,01101100,01101100,01101111, 01110111,01101111,01110010,01101100,01100100},以去除每字符所对应8位二进 制数首位冗余0的方式进行优化,并将其相应1位重要程度布尔值存于分组后面,生成15 位字符分组二进制数串,再把所有字符分组二进制数串合并,生成字符二进制数串 char_binstr={110100011001011,110110011011001,110111111101111, 110111111100101,110110011001001};
3)根据步骤一中生成的字符分组二进制数串group_binstr,利用校验数计算公式, 可得每个字符分组所相应的校验数{6,7,1,4,3},以每个校验数用相应4位二进制 数替换的方式,生成相应校验码二进制数串groupcheck_binstr={0110,0111,0001, 0100,0011};
4)根据字符分组二进制数串group_binstr和相应的校验码二进制数串 groupcheck_binstr,合并成链接二进制数串mergegroup_binstr={110100011001011 0110,1101100110110010111,1101111111011110001,1101111111001010100, 1101100110010010011};
5)根据合并二进制数串merge_binstr,利用哈希函数MD5()生成16位水印信息二进 制数串wminfo_binstr={0000100010100000};
6)根据合并二进制数串merge_binstr和水印信息二进制数串wminfo_binstr,合并 成数据二进制数串data_binstr={1101000110010110110,1101100110110010111, 1101111111011110001,1101111111001010100,1101100110010010011, 0000100010100000};
7)根据数据二进制数串data_binstr,补齐8位,生成安全二进制数串 security_binstr={11010001,10010110,11011011,00110110,01011111,01111111, 01111000,11101111,11100101,01001101,10011001,00100110,00010001,01000001};
8)根据安全二进制数串security_binstr,以每8位二进制数转换为1个无符号字符 方式,生成安全字符串security_uchar={褨?_x镥M?A};
9)源节点将安全字符串发送给基站节点。
请参阅图4,本发明实施例中,基站节点在数据无破坏的情况下验证及还原数据过程, 具体步骤如下:
1)基站节点接收数据,将其转换为接收二进制数串receive_binstr={11010001, 10010110,11011011,00110110,01011111,01111111,01111000,11101111,11100101, 01001101,10011001,00100110,00010001,01000001};
2)根据接收二进制数串receive_binstr,利用数据分离算法,可得分离字符二进制 数串sepchar_binstr={1101000,1100101,1101100,1101100,1101111,1110111,1101111, 1110010,1101100,1100100},分离重要程度二进制数串sepimport_binstr={1,1, 1,1,1},分离校验码二进制数串sepcheck_binstr={0110,0111,0001,0100,0011} 及分离水印信息二进制数串sepwminfo_binstr={0000100010100000};
3)根据分离字符二进制数串sepchar_binstr,分离重要程度二进制数串 sepimport_binstr和分离校验码二进制数串sepcheck_binstr,合并成分离数据二进制数 串,利用哈希函数MD5()生成16位数据水印二进制数串datawminfo_binstr= {0000100010100000};
4)根据对数据水印二进制数串datawminfo_binstr和分离水印信息二进制数串 sepwminfo_binstr进行验证,发现两者完全相同,则通过分离字符二进制数串 sepchar_binstr,以在每7位之前添加1位0的方式还原字符ASCII码,并由此还原数据 为{helloworld}。
请参阅图5,本发明实施例中,基站节点在数据有破坏的情况下验证及还原数据过程, 具体步骤如下:
1)基站节点接收数据,将其转换为接收二进制数串receive_binstr={11010101, 10011110,11011011,00110110,01011111,01111111,01111000,11101111,11100101, 01001101,10011001,00100110,00010001,01000001};
2)根据接收二进制数串receive_binstr,利用数据分离算法,可得分离字符二进制 数串sepchar_binstr={1101010,1100111,1101100,1101100,1101111,1110111, 1101111,1110010,1101100,1100100},分离重要程度二进制数串sepimport_binstr= {1,1,1,1,1},分离校验码二进制数串sepcheck_binstr={0110,0111,0001, 0100,0011}及分离水印信息二进制数串sepwminfo_binstr={0000100010100000};
3)根据分离字符二进制数串sepchar_binstr,分离重要程度二进制数串 sepimport_binstr和分离校验码二进制数串sepcheck_binstr,合并成分离数据二进制数 串,利用哈希函数MD5()生成16位数据水印二进制数串datawminfo_binstr= {1010101000001000};
4)根据对数据水印二进制数串datawminfo_binstr和分离水印信息二进制数串 sepwminfo_binstr进行验证,发现两者不相同,则接收数据有误,则分离字符二进制数串 sepchar_binstr及分离重要程度二进制数串sepimport_binstr,以每7位字符二进制数 串尾随1位重要二进制数串的方式,生成待校验二进制数串waitcheck_binstr= {110101011001111,110110011011001,110111111101111,110111111100101, 110110011001001};
5)根据待校验二进制数串waiteheck_binstr,以每15字符为一组的方式进行校验数 计算公式,可得每个分组所相应的校验数{3,7,1,4,3},再以每个校验数用相应4 位二进制数替换的方式,生成校验码二进制数串groupfinishcheck_binstr={0011,0111, 0001,0100,0011};
6)根据校验码二进制数串groupfinishcheck_binstr、分离校验码二进制数串 sepcheck_binstr及分离重要程度二进制数串sepimport_binstr,利用信任度计算算法, 计算出信任度X为85%;
7)根据计算出信任度X和预存信任度阈值Y为75%,可知X大于Y若X不小于Y,则 数据被破坏的影响程度不大,且可靠性在可接受范围内,通过分离字符二进制数串 sepchar_binstr,以在每7位之前添加1位0的方式还原字符ASCII码,并由此还原数据 为{jglloworld}。
本发明主要针对无线传感器网络中的数据完整性和可靠性,提出了一种基于校验码的 数据可靠性保护方法。本发明将数字水印技术和校验码技术相结合,形成一个高效的数据 安全保障算法,能判断出在任何情况下的数据是否丢失或窜改,从而保证数据的正确可靠。 本发明在数据有误的情况下,可根据预存数据特征码和信任度阈值,结合数据实际情况, 计算出数据信任度,若高于预存阈值,则还原数据信息,有效地避免了重发,起到节约耗 能的作用,延长了网络的生命周期。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背 离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从 哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权 利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有 变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含 一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将 说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可 以理解的其他实施方式。
机译: 无线传感器网络中的拥塞控制系统及其方法,能够保证无线传感器网络中重要事件的可靠性
机译: 利用自适应保护方法实现无线传感器网络的可靠性
机译: 无线传感器网络中位置保密性的保护方法,无线传感器网络系统及其记录介质