工业数据加密传输方法与流程

文档序号:13763408阅读:1164来源:国知局
工业数据加密传输方法与流程

本发明涉及一种数据加密传输方法,尤其是一种基于uc/OS_II系统及总线协议的工业数据加密传输方法,属于工业控制领域。



背景技术:

RTU(远程终端单元),英文全称Remote Terminal Unit,其主要功能是完成遥测、遥信、遥控的端口采集与命令执行,并将信息或结果组装成报文上送至SCADA系统,是工业以太网、DCS及现场总线控制系统的重要组成部分。

为应对针对工业控制网络和现场总线的攻击,保证数据传输的安全性,需要对传输的工业数据进行加密。然而,目前的RTU都不具有数据加密传输功能。



技术实现要素:

为保证工业数据的传输安全,本发明提出了一种工业数据加密传输方法,其步骤为:

(1)创建通讯协议存储区,将工业现场所用的通讯协议驱动内置于该通讯协议存储区,使用该通讯协议存储区中的通讯协议驱动进行数据传输;

(2)创建一个通讯指令发送存储区,使用数据解密方法对接收到的读写工业现场设备的指令进行解密,并将解密后的指令存入通讯指令发送存储区;

(3)创建一个数据接收缓冲区,用于接收工业现场设备对读写指令的响应数据;

(4)对工业现场设备发送解密后的读写指令,将接收到的工业现场设备的响应数据存入数据接收缓冲区并使用数据加密方法进行加密;

所述数据加密方法的步骤包括:

(A-1)创建一个用于存储网络明文报文数据的明文缓冲区,并记录明文缓冲区的首指针;

(A-2)创建一个明文分组队列一,对明文缓冲区中的明文报文数据进行分组,明文分组队列一中的各明文分组成员与明文缓冲区中各明文分组报文一一对应并记载所对应的明文分组报文的首指针和报文长度;

(A-3)创建密文存储区,所述密文存储区中各密文分组成员用于与明文分组队列一中的各明文分组成员相对应;

(A-4)创建明文读指针指向明文分组队列一的第一个成员,并创建密文写指针指向密文存储区的第一个成员;

(A-5)定义数据加密函数:使用明文读指针读取明文缓冲区中的各明文分组报文,使用国密SM4算法、通过密钥对各明文分组报文分别进行加密,将加密后的数据通过密文写指针存入密文存储区的各密文分组成员中;

(A-6)创建总线数据通讯协议,并将该协议绑定到系统的数据链路层;

所述数据解密方法的步骤包括:

(B-1)创建一个用于存储网络密文报文数据的密文接收缓冲区,并记录密文接收缓冲区的首指针;将收到的密文报文数据进行分组,然后检查密文接收缓冲区是否有空间存储,如果有空间则将密文报文数据存储到密文接收缓冲区中;

(B-2)创建一个密文接收分组队列,密文接收分组队列中的各密文分组成员与密文接收缓冲区中各密文分组报文一一对应并记载所对应的密文分组报文的首指针和报文长度;

(B-3)创建明文分组队列二,所述明文分组队列二中各明文分组成员用于与密文接收分组队列中的各密文分组成员相对应;

(B-4)创建密文读指针指向密文接收分组队列的第一个成员,并创建明文写指针指向明文分组队列二的第一个成员;

(B-5)定义数据解密函数:使用密文读指针读取密文接收缓冲区中各密文分组报文,通过密钥对各密文分组报文分别进行解密,将解密后的数据使用明文写指针存入明文分组队列二的各明文分组成员中。

相对于现有技术,本发明的积极效果在于:(1)本方法将多种工业现场通讯协议内置在通讯协议存储区,实现了对现场多类设备数据寄存器的读写,降低了对设备底层的操作的复杂性;(2)本方法通过SM4加密算法对传输前的数据进行加密,并对接收到的数据进行解密,提高了数据传输的安全性能;(3)本发明使用分组的方式进行加密解密,一方面便于实现并行化加密解密,提高加密解密效率和传输的速度,另一方面通过分组拆装的方式可以提高在传输过程中破解加密数据的难度,进一步提升了数据传输的安全性。

附图说明

图1为本发明中数据加密的流程示意图。

图2为本发明中数据解密的流程示意图。

具体实施方式

下面结合附图详细说明本发明的技术方案:

一种工业数据加密传输方法,应用在基于uc/OS_II系统的RTU。uc/OS_II是一个完整的、可移植、可固化、可剪裁的占先式实时操作系统,适用于工业控制中的实时监控。将uc/OS_II实时操作系统进行移植、嵌入到RTU,并根据实际硬件设备和需求开发底层驱动程序,实现仪表、Modbus、RTU等协议的通信,不仅能够对所连接的被测设备进行控制信息的输入输出控制,还能够实现对其它RTU采集模块和输出模块的控制。

该工业数据加密传输方法的步骤为:

(1)创建通讯协议存储区,将工业现场所用的通讯协议驱动内置于该通讯协议存储区,使用该通讯协议存储区中的通讯协议驱动进行数据传输;

(2)创建一个通讯指令发送存储区,使用数据解密方法对接收到的读写工业现场设备的指令进行解密,并将解密后的指令存入通讯指令发送存储区;

(3)创建一个数据接收缓冲区,用于接收工业现场设备对读写指令的响应数据;

(4)对工业现场设备发送解密后的读写指令,将接收到的工业现场设备的响应数据存入数据接收缓冲区并使用数据加密方法进行加密;

如图1,所述数据加密方法的步骤包括:

(A-1)创建一个用于存储网络明文报文数据即待加密数据的明文缓冲区,并记录明文缓冲区的首指针;

(A-2)创建一个明文分组队列一,对明文缓冲区中的明文报文数据进行分组,明文分组队列一中的各明文分组成员与明文缓冲区中各明文分组报文一一对应并记载所对应的明文分组报文的首指针和报文长度;

(A-3)创建密文存储区,所述密文存储区中各密文分组成员用于与明文分组队列一中的各明文分组成员相对应;

(A-4)创建明文读指针指向明文分组队列一的第一个成员,并创建密文写指针指向密文存储区的第一个成员;

(A-5)定义数据加密函数:使用明文读指针读取明文缓冲区中的各明文分组报文,使用国密SM4算法、通过密钥对各明文分组报文分别进行加密,将加密后的数据通过密文写指针存入密文存储区的各密文分组成员中;密文存储区中的数据即为加密后的数据;

(A-6)创建总线数据通讯协议,并将该协议绑定到系统的数据链路层;

如图2,所述数据解密方法的步骤包括:

(B-1)创建一个用于存储网络密文报文数据即待解密数据的密文接收缓冲区,并记录密文接收缓冲区的首指针;将收到的密文报文数据进行分组,然后检查密文接收缓冲区是否有空间存储,如果有空间则将密文报文数据存储到密文接收缓冲区中;

(B-2)创建一个密文接收分组队列,密文接收分组队列中的各密文分组成员与密文接收缓冲区中各密文分组报文一一对应并记载所对应的密文分组报文的首指针和报文长度;

(B-3)创建明文分组队列二,所述明文分组队列二中各明文分组成员用于与密文接收分组队列中的各密文分组成员相对应;

(B-4)创建密文读指针指向密文接收分组队列的第一个成员,并创建明文写指针指向明文分组队列二的第一个成员;

(B-5)定义数据解密函数:使用密文读指针读取密文接收缓冲区中各密文分组报文,通过密钥对各密文分组报文分别进行解密,将解密后的数据使用明文写指针存入明文分组队列二的各明文分组成员中,明文分组队列二中数据的集合即为解密后的数据。

数据传输时,RTU根据解密后的指令,在自定义协议中调用相应的数据传输函数,进行加密数据传输。

本发明使用分组的方式进行加密解密,一方面便于实现并行化加密解密,提高加密解密效率和传输的速度,另一方面通过分组拆装的方式可以对数据进行混淆,并可对不同组的数据实行不同的加密方式,提高在传输过程中破解加密数据的难度,进一步提升了数据传输的安全性。

本方法还完善并优化了DES及SM4加密算法,提高了加密速率,使之能够适用于工业信息数据的加密传输。同时,开发人员还研究并利用了数字证书的加密原理对传输之前的数据进行密钥绑定,确保对设备的合法访问,且公钥和私钥可根据实际需要灵活设置。

基于本方法的RTU以标准的ModBusRTU协议、ModBusASCⅡ协议和Ethernet协议为基础,集成了各种工业仪表、智能模块、变频器等设备多达27种工业场合常用设备的通讯协议,建立了设备内置通讯协议库,使RTU通过简单的配置即既可作为数据采集终端直接与上位机SCADA系统软件进行数据通讯,又能作为其它数据采集终端与上位机SCADA系统软件进行加密数据通讯的通道,实现了SCADA与终端设备的无缝链接和数据透穿,适应不同的应用需求,解决了RTU通讯协议单一和适用性差的缺点,提高了设备的通用性。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1