应用于智能电网数据传输安全的数字水印方法

文档序号:7709115阅读:233来源:国知局
专利名称:应用于智能电网数据传输安全的数字水印方法
技术领域
本发明属于一种数据安全传输领域,特别是一种应用于智能电网数据传输安全的数字水印方法。
背景技术
智能电网的安全主要包含物理安全、网络安全、数据安全及备份恢复等方面,其中数据安全主要指的是网络中所传输的数据包的真实性。目前针对数据安全的研究主要是基于密钥策略。密钥管理与密钥算法对处理器与存储器都有一定的要求。智能电网的数据传输包括有线网络与无线传感器网络,后者是由大量的传感器节点构成,其能量以及存储容量都非常有限,使得密钥策略并不能很好地应用于智能电网的数据传输安全。数字水印技术是当前信息安全的常用技术,它主要用于数字产品(如多媒体、文档、软件)的合法性保护。数字水印的优点是它并不占用额外的存储空间,只要算法设计得简洁,在无线传感器网络数据安全中将有非常好的应用价值。

发明内容
本发明目的是提供一种用数字水印技术解决智能电网下无线传感器网络部分的数据传输的应用于智能电网数据传输安全的数字水印方法,以克服现有技术的不足。为了实现上述目的,本发明所采用的技术方案是一种应用于智能电网数据传输安全的数字水印方法,包括三个基本方面水印信息的生成、水印信息的嵌入、水印信息的提取与检测,其方法是水印信息的生成基于交变电流时刻变化的特性,使用电流来生成水印信息,对于要发送的数据包中的每一个数据项,根据事先设定的密钥Key和采集时刻的正向电流或反向电流I,利用单项哈希函数hsh[i] =Hash(Key, I)运算,取运算结果hsh[i]的最高有效位上的Num位与电流I的高Num位进行异或运算,其结果作为数据项的水印信息;水印信息的生成包括如下步骤步骤Si,如果数据项的电流信息为正向电流,则直接采集电流信息的值,转向步骤 S3 ;若电流信息为反方向的电流,则转向步骤S2 ;步骤S2,将采集到的反方向的电流信息进行处理,例如将电流取反同时扩大常数倍或者取电流的平方值等(这样可以避免采集到的电流信息重复,便于生成多样化的水印),得到新的电流信息的值;步骤S3,根据密钥和采集的电流值,利用单项哈希函数运算,得出一个哈希值;步骤S4,利用哈希值的部分最高有效位的二进制位作异或运算,得出数据项的水印信息;步骤S5,将数据项的水印信息标志位置0(表示该数据项还未嵌入水印);水印的嵌入过程传感器节点是能量受限的,嵌入过程要避免繁琐,采取的做法是只对部分数据项嵌入水印。同时为了最大程度地保证原有数据的真实性,水印的嵌入位置选择在数据项中核心数据的最低有效位,嵌入水印后的数据项标志位Flag值为1。部分数据项的选取依据真实场合中的安全程度的要求,安全性越高,所要选取数据项的数量越大,反之越小。基于此,引入标度参数U,它的作用是控制一个数据包中嵌入水印的数据项所占的比例。根据密钥、数据项中的电流值、核心数据的最低有效位为参数的随机函数生成随机数rd,只有rd可以被u整除的数据项嵌入水印。u在宏观上反映一个数据包中含有水印信息的数据项的稀疏程度,u的值越小,该数据项被嵌入水印的机率越大,反之则越小,当u值为1时,数据包中所有的数据项都加入水印。水印信息的嵌入包括如下步骤步骤Si,根据水印信息的生成算法产生数据项的水印信息;步骤S2,取数据项中核心数据的最高有效位;步骤S3,根据密钥,数据项中包含的电流值以及最高有效位的值,利用随机函数运算,得出随机值;步骤S4,如果所得的随机数能被u整除,则转向步骤S5 ;否则,转向步骤S6 ;步骤S5,选取最低有效位的某些固定为作为嵌入位,嵌入水印信息,置水印信息标志位为1 (表示该数据项已嵌入水印),转向步骤S6.步骤S6,读取下一个数据项,转向步骤Sl ;水印检测过程接收节点检索数据包中的每一个数据项的标志位Flag,如果是1说明含有水印, 因此作水印的提取,提取后作合法性检测,即比较接受数据项的水印信息与由水印生成算法产生的水印信息是否相等。如果相等则说明水印在数据传输的过程中没有发生改变,因此该数据项是安全的。数据包是众多的数据项组成,网络数据传输安全主要是以数据包为单位。为了检测数据包的安全,引入阈值参数P,它表示一个数据包中安全数据项的所占的比例。在概率学上它表示被检测数据包中所有数据项的真实性程度。P是根据场所要求人为设定,如果数据项检测合法的概率大于P,说明数据包的安全性符合要求,是合法的,可以接收并转发,反之丢包。水印信息的提取和检测具体步骤如下步骤Si,检测数据项的水印标志位信息,如果为1,则该数据项嵌入了水印,则数据包中含有水印信息的数据项的总数目增加1,转向步骤S2 ;否则,转向步骤S6,;步骤S2,获取接受到的数据项的水印信息(即提取数据项中核心数据的最低有效位);步骤S3,根据数据项信息和密钥,利用水印信息生成算法,得出水印信息;步骤S4,如果接受的数据项的水印信息与利用水印生成算法产生的水印信息相同,则该数据项的水印信息正确,则数据包中正确水印信息的数据项的总数目增加1,然后转向步骤S5 ;否则,直接转向步骤S5 ;步骤S5,如果数据包未检测完,则读取下一个数据项,然后转向Sl ;否则转向S6 ;步骤S6,如果数据包中正确水印信息的数据项的总数目与数据包中含有水印信息的数据项的总数目的比值大于P,表示该数据包可信,则接受该数据包,否则,丢弃该数据
4包。与现有技术相比,本发明应用于智能电网数据传输安全的数字水印方法具有如下优点(1)应用于智能电网的数字水印技术,能保证电网中的传感器接收到的数据是传感器节点发送的原始数据,是没有被恶意篡改的,保证了数据传输的安全。(2)数字水印方法利用水印信息置换载体信息中最不重要的数据部分,只是置换, 并不在原有数据基础上额外加入数据,所以数字水印技术能较好地保持原有网络的吞吐量,并不增加网络传输数据的负担。(3)数字水印算法在实现上力求简洁,最多只用了单层循环,它的复杂度与节点一次性传输的数据项有关,传感器节点在处理水印的生成、嵌入、提取与检测时,不会明显地增加能量的损耗,因此,数字水印技术可以较好地适应WSN节点能量受限的制约。


图1为本发明的流程图。图2为本发明数据包格式示意图。
具体实施例方式下面结合附图和实施例对本发明作进一步的详细描述。本发明利用交变电流生成水印信息,交变电流物理学上是一个矢量,它有两个关键的属性大小与方向,电流I是时间T的单值函数,即在一个周期内电流是唯一的;发送节点将水印嵌入采集的数据项中,然后存储在节点的存储器Buffer,当Buffer满时,也即一个数据包产生,将其在网络中传输;接收节点根据规定的密钥与相关参数对数据包进行水印的提取以及合法性检测。水印提取方法是检索采集的数据项的Flag,若为真则提取水印,否者不做任何操作。水印检测方法是比较提取数据项的水印信息与生成的水印信息是否一致,如果一致,此数据项认为合法,当一定数量的数据项都合法时,此数据包即为有效, 进而可以转发,反之则认为是非法数据包,做丢弃处理。本发明包括三个基本方面水印信息的生成、水印信息的嵌入、水印信息的提取与检测水印信息的生成基于交变电流时刻变化的特性,使用电流来生成水印信息,鉴于电流的周期性特点(不同时刻的电流虽然方向不同,但数值上有可能相等),为了使水印具有多样化,在水印生成前可对反向电流进行特殊处理,比如数值扩大一个倍数,然后再减去
一个常数。水印生成的具体过程描述为对于要发送的数据包中的每一个数据项,根据密钥和采集时刻的正向电流(或者处理后的反向电流),利用单项哈希函数运算,得到运算结果哈希值,从哈希值的最高有效位上取部分二进制位作异或运算,其结果作为数据项的水印 fn息;水印信息的生成包括如下步骤步骤Si,如果数据项的电流信息为正向电流,则直接采集电流信息的值,转向步骤 S3 ;若电流信息为反方向的电流,则转向步骤S2 ;
步骤S2,将采集到的反方向的电流信息进行处理(避免采集到的电流信息重复, 便于生成多样化的水印),得到新的电流信息的值;步骤S3,根据密钥和采集的电流值,利用单项哈希函数运算,得出一个哈希值;步骤S4,利用哈希值的部分最高有效位的二进制位作异或运算,得出数据项的水印信息;步骤S5,将数据项的水印信息标志位置0(表示该数据项还未嵌入水印)。(1)水印的嵌入过程传感器节点是能量受限的,嵌入过程要避免繁琐,采取的做法是只对部分数据项嵌入水印。同时为了最大程度地保证原有数据的真实性,水印的嵌入位置选择在数据项中核心数据的最低有效位,嵌入水印后的数据项标志位Flag值为1。部分数据项的选取依据真实场合中的安全程度的要求,安全性越高,所要选取数据项的数量越大,反之越小。基于此,算法弓I入标度参数U,它的作用是控制一个数据包中嵌入水印的数据项所占的比例。根据密钥、数据项中的电流值、核心数据的最低有效位为参数的随机函数生成随机数rd,只有rd可以被u整除的数据项嵌入水印。u在宏观上反映一个数据包中含有水印信息的数据项的稀疏程度,u的值越小,该数据项被嵌入水印的机率越大,反之则越小,当u值为1时,数据包中所有的数据项都加入水印。水印信息的嵌入包括如下步骤步骤Si,根据水印信息的生成算法产生数据项的水印信息;步骤S2,取数据项中核心数据的最高有效位;步骤S3,根据密钥,数据项中包含的电流值以及最高有效位的值,利用随机函数运算,得出随机值;步骤S4,如果所得的随机数能被u整除,则转向步骤S5 ;否则,转向步骤S6 ;步骤S5,选取最低有效位的某些固定为作为嵌入位,嵌入水印信息,置水印信息标志位为1 (表示该数据项已嵌入水印),转向步骤S6.步骤S6,读取下一个数据项,转向步骤Sl ;(2)水印检测过程水印检测过程是这样的接收节点检索数据包中的每一个数据项的标志位Flag, 如果是1说明含有水印,因此作水印的提取,提取后作合法性检测,即比较接受数据项的水印信息与由水印生成算法产生的水印信息是否相等。如果相等则说明水印在数据传输的过程中没有发生改变,因此该数据项是安全的。数据包是众多的数据项组成,网络数据传输安全主要是以数据包为单位。为了检测数据包的安全,引入阈值参数P,它表示一个数据包中安全数据项的所占的比例。在概率学上它表示被检测数据包中所有数据项的真实性程度。P是根据场所要求人为设定,如果数据项检测合法的概率大于P,说明数据包的安全性符合要求,是合法的,可以接收并转发,反之丢包。水印信息的提取和检测具体步骤如下步骤Si,检测数据项的水印标志位信息,如果为1,则该数据项嵌入了水印,则数据包中含有水印信息的数据项的总数目增加1,转向步骤S2 ;否则,转向步骤S6,;步骤S2,获取接受到的数据项的水印信息(即提取数据项中核心数据的最低有效位);步骤S3,根据数据项信息和密钥,利用水印信息生成算法,得出水印信息;步骤S4,如果接受的数据项的水印信息与利用水印生成算法产生的水印信息相同,则该数据项的水印信息正确,则数据包中正确水印信息的数据项的总数目增加1,然后转向步骤S5 ;否则,直接转向步骤S5 ;步骤S5,如果数据包未检测完,则读取下一个数据项,然后转向Sl ;否则转向S6 ;步骤S6,如果数据包中正确水印信息的数据项的总数目与数据包中含有水印信息的数据项的总数目的比值大于P,表示该数据包可信,则接受该数据包,否则,丢弃该数据包。本发明的详细流程为(1)本发明的数据包的格式如图2所示对数据包的格式说明如下Packet = (Head, Send-Data)Head 数据包的头部,包含路由、数据类型、数据包长度等固定信息。Send-Data 是采集节点一次要发送的数据内容,也是Buffer装满时的数据内容Send-Data 的格式如下Send-Data = (Data[l], Data[2]. . . Data[m]), Data[i] (i = 1. . . m)表示传感节点一个或多个周期内所采集的数据项。Data[i]的格式抽象如下Typedef struct Data_infoI 一数据项采集的时刻的电流,是矢量,既有大小,又有方向;Kernal_data 核心数据,也即受保护数据;Flag =Bool值,表示此数据项是否有水印,有则为1,否则0 ;(2)水印信息生成算法水印的生成过程是基于knd-Data中的单个数据项来进行的,生成算法要用到两个关键的参数密钥Key以及数据项采集时刻的电流I,利用在密码学以及通信领域中广泛有着广泛应用的Hash函数对Key和I进行运算hsh[i] = Hash (Key, Data[i]. I),接着从得到的结果hsh[i]中求最高有效位,然后取最高有效位的部分二进制位与电流值作异或运算,从而生成Data[i]的水印信息w[i],最后初始化数据项的水印状态标志位Flag为0。(3)水印信息的嵌入算法出于最小程度地改变数据的目的,只对数据最低有效位嵌入水印。利用水印生成算法生成的相应的水印,只对数据项的最低有效位的固定位嵌入水印,嵌入水印后的数据项标志位Flag值为1。最低有效位的选取依据真实场合中的安全程度的要求,安全性越高,所要选取数据项的数量越大,反之越小。基于此,引入标度参数U,它的作用是控制一个数据包中嵌入水印的数据项所占的比例。根据密钥Key、数据项中的电流I、最低有效位Msb-Data为参数的随机函数生成随机数rd,只有rd可以被u整除的数据项嵌入水印。u在宏观上反映一个数据包中含有水印信息的数据项的稀疏程度,u的值越小,该数据项被嵌入水印的机率越大, 反之则越小,当u值为1时,数据包中所有的数据项都加入水印。
(4)水印检测算法网络上接收节点的数据包与发送节点的数据包具有一致的结构,出于方便阐述的目的,用Packet-R = (Head,Receive-Data)表示节点接收到的数据包,Receive-Data结构同于%11(1-0站3,也是由众多的数据项构成,包括嵌入水印信息的数据项与未嵌入水印信息的数据项。水印检测的机制是这样的接收节点循环读取Receive-Data的每一个数据项, 同时检索每一个数据项的Flag值,将其与1作比较,若Flag等于0,说明此数据项不含水印信息,因此也不作水印的提取与检测;若Flag等于1,表示此数据项含有水印信息,进而从该数据项中提取水印信息WT ,将其与丽=Generate-W(Receive-Data[i],Key,Num)作比较,若是相等关系,则说明该数据项传输过程中未遭受污染,是安全的。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
权利要求
1. 一种应用于智能电网数据传输安全的数字水印方法,包括水印信息的生成、水印信息的嵌入、水印信息的提取与检测三个部分,其方法是水印信息的生成基于交变电流时刻变化的特性,使用电流来生成水印信息,对于要发送的数据包中的每一个数据项,根据事先设定的密钥Key和采集时刻的正向电流或反向电流I,利用单项哈希函数hsh[i] =Hash(Key, I)运算,取运算结果hsh[i]的最高有效位上的Num位与电流I的高Num位进行异或运算,其结果作为数据项的水印信息; 具体步骤是S11、如果数据项的电流信息为正向电流,则直接采集电流信息的值,转向步骤S3;若电流信息为反方向的电流,则转向步骤S2 ;S12、将采集到的反方向的电流信息进行处理,得到新的电流信息的值;S13、根据密钥和采集的电流值,利用单项哈希函数运算,得出一个哈希值;S14、利用哈希值的部分最高有效位的二进制位作异或运算,得出数据项的水印信息;S15、将数据项的水印信息标志位置0;水印信息的嵌入引入标度参数u,标度参数u的作用是控制一个数据包中嵌入水印信息的数据项所占的比例,水印信息的嵌入包括如下步骤步骤S21,根据水印信息的生成算法产生数据项的水印信息; 步骤S22,取数据项中核心数据的最高有效位;步骤S23,根据密钥,数据项中包含的电流值以及最高有效位的值,利用随机函数运算, 得出随机值;步骤S24,如果所得的随机数能被u整除,则转向步骤S5 ;否则,转向步骤S26 ; 步骤S25,选取最低有效位的某些固定为作为嵌入位,嵌入水印信息,置水印信息标志位为1,转向步骤S6.步骤S26,读取下一个数据项,转向步骤Sl ;水印信息的提取与检测引入阈值参数P,它表示一个数据包中安全数据项的所占的比例;水印信息的提取和检测具体步骤如下步骤S31、检测数据项的水印标志位信息,如果为1,则该数据项嵌入了水印,则数据包中含有水印信息的数据项的总数目增加1,转向步骤S32 ;否则,转向步骤S36 ; 步骤S32、获取接受到的数据项的水印信息;步骤S33、根据数据项信息和密钥,利用水印信息生成算法,得出水印信息; 步骤S34、如果接受的数据项的水印信息与利用水印生成算法产生的水印信息相同,则该数据项的水印信息正确,则数据包中正确水印信息的数据项的总数目增加1,然后转向步骤S35 ;否则,直接转向步骤S35 ;步骤S5、如果数据包未检测完,则读取下一个数据项,然后转向S31 ;否则转向S36 ; 步骤S36,如果数据包中正确水印信息的数据项的总数目与数据包中含有水印信息的数据项的总数目的比值大于P,表示该数据包可信,则接受该数据包,否则,丢弃该数据包。
全文摘要
本发明涉及一种应用于智能电网数据传输安全的数字水印方法,包括水印信息的生成、水印信息的嵌入、水印信息的提取与检测三个部分,其方法是基于交变电流时刻变化的特性,使用电流来生成水印信息;引入标度参数u,根据电流值得出随机值,所得的随机数能被u整除则置水印信息标志位为1;引入阈值参数P,获取接受到的数据项的水印信息,如果数据包中正确水印信息的数据项的总数目与数据包中含有水印信息的数据项的总数目的比值大于P,表示该数据包可信,则接受该数据包,否则,丢弃该数据包。本发明具有在不增加网络传输数据的负担和不明显地增加能量的损耗的前提下,保证数据传输的安全。
文档编号H04W84/18GK102361480SQ20111017884
公开日2012年2月22日 申请日期2011年6月29日 优先权日2011年6月29日
发明者吴洋, 杜加根, 颜昕 申请人:武汉理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1