本发明属于风力发电技术领域,涉及一种风电机组中央监控系统数据安全传输方法。
背景技术:
风力发电机组作为一种电力生产设备,其运行数据的安全性举足轻重。风力发电机组的监控数据在分发给本地工作站或者异地工作站的传输过程中若不进行加密和校验,则在系统受攻击时很容易被窃听解析甚至篡改,若窃听成功则造成信息泄露,若篡改成功则造成系统运行的安全隐患。目前有专门的加解密设备,但是使用专门的加解密设备造成成本大幅度抬高,且增加系统安装调试难度,且这些设备普遍对数据流量有限制,不一定完全满足监控数据传输性能要求。因此,需要提出一种适用于风电机组中央监控系统的数据传输的加密方法。
技术实现要素:
为了解决风电机组中央监控系统数据传输的安全问题,本发明提供一种采用对称加密和校验的数据安全传输方法。
本发明的技术解决方案是:
一种风电机组中央监控系统数据安全传输方法,使用对称加密技术和校验技术,在数据发送端对传输的数据进行加密,并置入表示数据有效性的校验信息,在接收端做解密并按照校验规则做有效性检查。
该方法的具体技术措施是,设计一种独有的32字节加密因子作为密钥,对传输的数据进行编码,在数据发送端计算数据流的长度,并放入数据流头部,在数据流的尾部加入根据校验规则产生的校验数据;在数据接收端利用同样的32字节密钥进行反向编码,解析数据;用实际接收到的数据长度与从数据流中提出数据信息;按照检验规则得出校验信息与收到的数据流尾部的校验信息对比。
该方法的具体步骤是:
一、数据发送端步骤:
步骤1:生成32字节的加密因子作为密钥。
步骤2:对数据流按照32字节长度按顺分块,并逐块与32位的密钥进行编码,对于不足32个字节的,与私钥从低到高对应字节编码,编码就是32字节的数据与32字节的密钥一一对应按位异或,累加编码前后每个字节的数值差的绝对值;对所有数据块以同种方式编码,累加所有数据块编码前后的数值差绝对值,作为校验数据以8个字节方式放入要发送的数据流尾部。
步骤3:计算不包括校验数据的数据流的字节数作为数据长度,以4个字节放置在数据流头部。
步骤4:对包括数据长度、数据内容和校验数据的整块数据流对半分为l1和r1,若字节数是奇数则在数据内容后校验数据前补0x00。并将l1和r1互相交换形成新的数据流。
步骤5:统计即将发送的数据以字节为单位的长度并以4个字节的长度放入要发送的数据流头部。形成最后的数据包发送出去。
二、数据接收端步骤:
步骤1:获得与发送端一致的32字节密钥置入系统中。
步骤2:从接收到的数据流提取前面4个字节,获得数据包长度。然后提取这个长度的数据。
步骤3:对步骤2得到的数据对半分为l1和r1,并将l1和r1互相交换形成新的数据。
步骤4:从步骤3得到的数据中取前面4个字节的数据,获得实际数据长度。从步骤3得到的数据中取最后面的8个字节最为校验数据。从步骤3得到的数据中第5个字节开始取出实际数据长度的数据为准备解码的数据。
步骤5:将准备译码的数据按照32个字节长度按顺分块。并逐块与32位的密钥进行按位异或,对于不足32个字节的,与私钥从低到高对应字节异或;累加解码前后每个字节数值差的绝对值;对所有数据块以同种方式解码,累加所有数据块解码前后的数值差绝对值。
步骤6:对累加所得数值差绝对值与从数据流中直接读取的校验数据比较,完全一致判定数据有效,不一致则判定数据无效。
本发明的有益效果:
通过快速的对称加密和校验技术对风机监控数据在传输过程中进行保护。因其加解密过程的快速性满足了风电场数据传输的实时性要求,因此可以应用于风电场监控系统。采用的密钥为私钥且个性化设计的加密过程,使数据短期内被解析和渗入的可能性极低,可以确保数据的安全性和系统运行的安全性。本发明集成于监控系统,不需要增加独立的加解密设备,减少了系统采购和安装调试费用,也减少系统间互相配合可能出现的问题。为风电场监控系统提供了一种简单高效的数据安全传输方法。
附图说明
图1是数据发送流程图
图2是数据接收流程图。
具体实施方式
在满足风电机组监控实时性的要求下,使用对称加密技术和校验技术,在数据发送端对传输的数据进行加密,并置入表示数据有效性的校验信息,在接收端做解密并按照校验规则做有效性检查。
风力发电机组监控实时性高,要求加解密过程耗时少。风力发电机组监控数据发送端和接收端均为站内同一系统产品,确保了密钥的可获得性,因此对称加密方法很适合应用于风力发电机组的数据传输,结合数据校验技术,形成一种解决风电场监控系统数据安全传输的方法。
设计一种独有的32字节加密因子作为密钥,对传输的数据进行编码,在数据发送端计算数据流的长度,并放入数据流头部,在数据流的尾部加入根据校验规则产生的校验数据。在数据接收端利用同样的32字节密钥进行反向编码,解析数据。用实际接收到的数据长度与从数据流中提出数据信息。按照检验规则得出校验信息与收到的数据流尾部的校验信息对比。
下面结合附图以一个实例来详细说明本发明。
参见图1,数据发送端具体步骤为:
步骤1:生成32字节的加密因子作为密钥;假设加密因子如下:
{0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x0a,0x03,0x01,0x08,0x07,0x00,0x02,0x08,0x05,0x02,0x05,0x02,0x01,0x0c,0x0a,0x0d,0x0d,0x0e,0x0c,0x01,0x09,0x08,0x03}
步骤2:对数据流按照32字节长度按顺分块。并逐块与32位的密钥进行异或操作,对于不足32个字节的,与私钥从低到高对应字节操作。累加编码前后每个字节的数值差的绝对值;对所有数据块以同种方式编码,累加所有数据块编码前后的数值差绝对值,作为校验数据以8个字节方式放入要发送的数据流尾部。假设数据流为
{0x01,0x02,0x03,0x04},0x01与0x04按位异或为0x05数值差绝对值为4,0x02与0x02按位异或为0x00数值差绝对值为2,0x03与0x06按位异或为0x05数值差绝对值为2,0x04与0x05按位异或为0x01数值差绝对值为3,即与秘钥编码后结果为{0x05,0x00,0x05,0x01},累加编码前后每个字节的数值差的绝对值为11即0x0b,crc码为{0x000000000000000b}。
步骤3:计算不包括校验数据的数据流的字节数作为数据长度,以4个字节放置在数据流头部。形成如下数据流{0x0000000405000501000000000000000b}。
步骤4:对包括数据长度、数据内容和校验数据的整块数据流对半分为l1和r1,若字节数是奇数则在数据内容后校验数据前补0x00。并将l1和r1互相交换形成新的数据流,如下{0x000000000000000b0000000405000501}。
步骤5:统计即将发送的数据以字节为单位的长度并以4个字节的长度放入要发送的数据流头部。形成最后的数据包如下
{0x00000010000000000000000b0000000405000501}然后发送出去。
参见图2,数据接收端步骤:
步骤1:接收到数据流如下{0x00000010000000000000000b0000000405000501},获得与发送端一致的32字节密钥并置入系统中。
步骤2:从接收到的数据流提取前面4个字节为0x10,即数据包内容长度为16字节。然后提取后面16字节的数据。取得的数据流如下
{0x000000000000000b0000000405000501}。
步骤3:对步骤2得到的数据对半分为l1和r1,并将l1和r1互相交换形成新的数据。形成的数据流如下{0x0000000405000501000000000000000b}。
步骤4:从步骤3得到的数据中取前面4个字节的数据0x04,获得实际数据长度为4个字节。从步骤3得到的数据中取最后面的8个字节{0x000000000000000b}最为校验数据即11。从步骤3得到的数据中第5个字节开始取出实际数据长度的数据为准备解码的数据即{0x05,0x00,0x05,0x01}。
步骤5:0x05与0x04按位异或后为0x01,数值差绝对值为4,其他同理操作,译码后结果为{0x01,0x02,0x03,0x04},数值差绝对值累加为11。
步骤6:数值差绝对值累加为11,与前面步骤4得到的校验数据11一致,数据有效。
1.一种风电机组中央监控系统数据安全传输方法,使用对称加密技术和校验技术,在数据发送端对传输的数据进行加密,并置入表示数据有效性的校验信息,在接收端做解密并按照校验规则做有效性检查。
2.如权利要求1所述的风电机组中央监控系统数据安全传输方法,其特征在于,该方法的具体技术措施是,设计一种独有的32字节加密因子作为密钥,对传输的数据进行编码,在数据发送端计算数据流的长度,并放入数据流头部,在数据流的尾部加入根据校验规则产生的校验数据;在数据接收端利用同样的32字节密钥进行反向编码,解析数据;用实际接收到的数据长度与从数据流中提出数据信息;按照检验规则得出校验信息与收到的数据流尾部的校验信息对比。
3.如权利要求2所述的风电机组中央监控系统数据安全传输方法,其特征在于,该方法的具体步骤是:
一、数据发送端步骤:
步骤1:生成32字节的加密因子作为密钥;
步骤2:对数据流按照32字节长度按顺分块,并逐块与32位的密钥进行编码,对于不足32个字节的,与私钥从低到高对应字节编码,编码就是32字节的数据与32字节的密钥一一对应按位异或,累加编码前后每个字节的数值差的绝对值;对所有数据块以同种方式编码,累加所有数据块编码前后的数值差绝对值,作为校验数据以8个字节方式放入要发送的数据流尾部;
步骤3:计算不包括校验数据的数据流的字节数作为数据长度,以4个字节放置在数据流头部;
步骤4:对包括数据长度、数据内容和校验数据的整块数据流对半分为l1和r1,若字节数是奇数则在数据内容后校验数据前补0x00;并将l1和r1互相交换形成新的数据流;
步骤5:统计即将发送的数据以字节为单位的长度并以4个字节的长度放入要发送的数据流头部;形成最后的数据包发送出去;
二、数据接收端步骤:
步骤1:获得与发送端一致的32字节密钥置入系统中;
步骤2:从接收到的数据流提取前面4个字节,获得数据包长度;然后提取这个长度的数据;
步骤3:对步骤2得到的数据对半分为l1和r1,并将l1和r1互相交换形成新的数据;
步骤4:从步骤3得到的数据中取前面4个字节的数据,获得实际数据长度;步骤3得到的数据中取最后面的8个字节最为校验数据;从步骤3得到的数据中第5个字节开始取出实际数据长度的数据为准备解码的数据;
步骤5:将准备译码的数据按照32个字节长度按顺分块;并逐块与32位的密钥进行按位异或,对于不足32个字节的,与私钥从低到高对应字节异或;累加解码前后每个字节数值差的绝对值;对所有数据块以同种方式解码,累加所有数据块解码前后的数值差绝对值;
步骤6:对累加所得数值差绝对值与从数据流中直接读取的校验数据比较,完全一致判定数据有效,不一致则判定数据无效。
技术总结