一种实时以太网总线式工控系统的数据加密通信方法技术方案

技术编号:33710051 阅读:19 留言:0更新日期:2022-06-06 08:41
本发明专利技术提供了一种实时以太网总线式工控系统的数据加密通信方法,基于实时以太网通信链路层通信协议及CANopen通信规范,对主站模块和各个从站模块中的对象字典数据采用Blowfish数据加密算法进行加密后形成加密数据帧,再由以太网总线进行数据传输。该方法对主站而言包括主站向从站发送控制指令的加密过程和从站向主站反馈状态数据的解密过程两个方面;对从站而言,相应的也分成指令的解密和反馈数据的加密两个方面。该加密通信方法可在满足总线式工控系统主从站间OD数据映射的实时性、同步性的基础上,提高工控系统实时数据传输的信息安全水平,保证数控机床、机器人等关键智能制造装备的信息安全防护性能。等关键智能制造装备的信息安全防护性能。等关键智能制造装备的信息安全防护性能。

【技术实现步骤摘要】
一种实时以太网总线式工控系统的数据加密通信方法


[0001]本专利技术涉及工业控制及数控
,涉及智能制造系统中数控机床、机器人、自动化生产线等装备的总线式控制系统应用,特别地,涉及一种实时以太网总线式工控系统的数据加密通信方法。

技术介绍

[0002]由于以太网通信技术在工业控制领域的渗透,基于总线式工控系统架构的通信问题得到广泛研究,从工业控制系统的控制性能、安全性以及可靠性等方面逐步改善。实时以太网总线的引入也使得系统的安全性和安全性要求高于普通总线式系统。目前,实时以太网工业控制系统已成为工控领域的主流控制系统。传统总线式工业控制系统中总线数据的传输主要以控制命令、实时位置状态等设备运行数据为主,很少考虑这些运行数据传输的安全加密问题。
[0003]随着网络攻击行为的不断加剧,如何在确保总线式工业控制系统主从站间通信的实时性、同步性等功能的基础上,提高工业控制系统总线数据传输的安全防护性能,保证以“互联网+制造”为特点的智能制造系统中数控机床、机器人等自动化设备的安全运行,已成为智能制造装备研发与应用企业面临的主要问题。

技术实现思路

[0004]基于此,本专利技术提供了一种适用于总线式工业控制系统的高速高安全数据加密通信方法。该数据加密通信方法施加于系统各节点间的总线通信过程之中,将CANopen通信协议与实时以太网总线相结合,能够保证总线数据传输性能实时性、同步性的同时,提高系统通信的整体安全性及可靠性。
[0005]为实现上述目的,本专利技术提供了一种实时以太网总线式工控系统的数据加密通信方法,适用于总线式工业控制系统中主站模块和各个从站模块之间的以太网总线实时数据传输,基于实时以太网通信链路层通信协议及CANopen通信规范,对主站模块和各个从站模块中的对象字典数据采用Blowfish数据加密算法进行加密后形成加密数据帧,再由以太网总线进行数据传输;
[0006]对主站模块,包括主站模块向各个从站模块发送控制指令的加密过程和各个从站模块向主站模块发送反馈状态数据的解密过程两个方面;对各个从站模块而言,相应的也包括主站模块向各个从站模块发送控制指令的解密和各个从站模块向主站模块发送反馈数据的加密过程两个方面;
[0007]采用Blowfish数据加密算法对主站模块和各个从站模块之间需要总线传输的对象字典数据进行实时加密,包括加密过程的和解密过程;Blowfish数据加密是按照密钥KEY生成子密钥,再按子密钥对原始数据xl和xr进行处理,最后生成加密数据xl*和xr*的过程;其中,密钥KEY由用户设置,子密钥由迭代计算产生,以两个32位的一维和二维数组pbox[round+2]、sbox[4][256]的加密盒形式表示,round表示加密轮次数;
[0008]S1、加密过程包括:
[0009]S11、按照密钥KEY对pbox加密盒进行初始化;
[0010]S12、数据加密:当pbox初始化完成之后,将该需要加密的数据分为两组,并合成两个32位数据xl和xr;
[0011]利用pbox和sbox对xl与xr进行每轮的加密运算,得到每轮加密的中间数据;
[0012]当xl和xr所有轮次的加密处理完成之后,再将其与pbox进行运算,并将生成的xl*与xr*组合为原始data数组对应的元素,即得到最终的密文data*;
[0013]S2、解密过程包括:
[0014]S21、按照密钥KEY对pbox加密盒进行初始化;
[0015]S22、对接收到的的密文进行数据解密:将步骤S12生成的密文data*中的元素分解为两个32位数据xl*和xr*;
[0016]利用pbox和sbox对xl*与xr*进行每轮的解密运算,得到每轮解密的中间数据;
[0017]当xl*和xr*的所有轮次解密处理完成之后,再将其与pbox进行相关运算,并将最终得到的xl*与xr*还原为原data*数组对应个数的元素,即得到最终解密之后的8字节(64位)明文数据data。
[0018]进一步的,步骤S11和步骤S21中对主站、从站内部的pbox加密盒初始化采用相同的处理方法,具体为:
[0019]对于长度为N个字节(8位/字节)的密钥KEY的,先用密钥KEY对pbox进行轮次数为round的初始化运算,计算公式如式(1)所示:
[0020][0021]其中,i表示pbox的元素顺序号,j表示KEY中元素的顺序号,data1、data2、data3、data4为中间变量。
[0022]进一步的,在步骤S12数据加密过程中,符合CANopen协议的对象字典数据帧data由data[0]、data[1]、data[2]、data[3]、data[4]、data[5]、data[6]、data[7]等8个字节(64位)数据组成,且为需要加密的8字节数据,首先将该8字节数据分解为两个32位数据xl和xr,具体如式(2)所示:
[0023][0024]利用数据盒pbox和sbox对两个32位数据xl和xr按式(3)进行多轮加密运算:
[0025][0026]其中,i表示当前加密轮次,变化范围从0累加到round

1;d[0]‑
d[3]、temp以及Dk(xl)表示用于计算的中间变量;当xl和xr所有轮次的加密处理完成之后;按照下式(4)再将其与pbox进行运算,将xl与xr组合为与原数据帧data所对应的8个字节元素,得到加密后原对象字典数据帧密文data*;该密文经主站、从站链路层软件组合后即形成标准的以太网数据帧;
[0027][0028]式(4)中的tdata[0]、tdata[1]、tdata[2]、tdata[3]、tdata[4]、tdata[5]、tdata[6]、tdata[7]为8个字节组合得到的64位数据data*,即为用于总线传输的数据密文。
[0029]进一步的,按照步骤S22对主站、从站总线接口接收的加密数据帧报文data*进行解密;data*为8字节(64位)数据,其由tdata[0]、tdata[1]、tdata[2]、tdata[3]、tdata[4]、tdata[5]、tdata[6]、tdata[7]这8个加密数据字节组成;解密前,按照下式(5),先将该8个加密数据字节分为两个32位的数据xl和xr;
[0030][0031]利用初始化后的数据盒pbox和sbox对两个32位数据xl和xr按式(6)进行多轮解密运算:
[0032][0033]其中i表示当前解密运算的轮次,d[0]‑
d[3]、temp以及Dk(xl)表示用于计算的中间变量;每经过一轮解密,i值加1,当i与轮次数round相等时解密完成;
[0034]当xl和xr的所有轮次解密处理完成之后,再按照下式(7)将其与数据盒pbox进行解密运算,并将xl与xr分解为与原加密数据data*数组所对应的8个字节元素,得到最终解密之后8字节(64位)明文数据d本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实时以太网总线式工控系统的数据加密通信方法,其特征在于,适用于总线式工业控制系统中主站模块和各个从站模块之间的以太网总线实时数据传输,基于实时以太网通信链路层通信协议及CANopen通信规范,对主站模块和各个从站模块中的对象字典数据采用Blowfish数据加密算法进行加密后形成加密数据帧,再由以太网总线进行数据传输;对主站模块,包括主站模块向各个从站模块发送控制指令的加密过程和各个从站模块向主站模块发送反馈状态数据的解密过程两个方面;对各个从站模块而言,相应的也包括主站模块向各个从站模块发送控制指令的解密和各个从站模块向主站模块发送反馈数据的加密过程两个方面;采用Blowfish数据加密算法对主站模块和各个从站模块之间需要总线传输的对象字典数据进行实时加密,包括加密过程的和解密过程;Blowfish数据加密是按照密钥KEY生成子密钥,再按子密钥对原始数据xl和xr进行处理,最后生成加密数据xl*和xr*的过程;其中,密钥KEY由用户设置,子密钥由迭代计算产生,以两个32位的一维和二维数组pbox[round+2]、sbox[4][256]的加密盒形式表示,round表示加密轮次数;S1、加密过程包括:S11、按照密钥KEY对pbox加密盒进行初始化;S12、数据加密:当pbox初始化完成之后,将该需要加密的数据分为两组,并合成两个32位数据xl和xr;利用pbox和sbox对xl与xr进行每轮的加密运算,得到每轮加密的中间数据;当xl和xr所有轮次的加密处理完成之后,再将其与pbox进行运算,并将生成的xl*与xr*组合为原始data数组对应的元素,即得到最终的密文data*;S2、解密过程包括:S21、按照密钥KEY对pbox加密盒进行初始化;S22、对接收到的的密文进行数据解密:将步骤S12生成的密文data*中的元素分解为两个32位数据xl*和xr*;利用pbox和sbox对xl*与xr*进行每轮的解密运算,得到每轮解密的中间数据;当xl*和xr*的所有轮次解密处理完成之后,再将其与pbox进行相关运算,并将最终得到的xl*与xr*还原为原data*数组对应个数的元素,即得到最终解密之后的明文数据data。2.根据权利要求1所述的一种实时以太网总线式工控系统的数据加密通信方法,其特征在于,步骤S11和步骤S21中对主站、从站内部的pbox加密盒初始化采用相同的处理方法,具体为:对于长度为N个字节的密钥KEY的,先用密钥KEY对pbox进行轮次数为round的初始化运算,计算公式如式(1)所示:
其中,i表示pbox的元素顺序号,j表示KEY中元素的顺序号,data1、data2、data3、data4为中间变量。3.根据权利要求1所述的一种实时以太网总线式工控系统的数据加密通信方法,其特征在于,在步骤S12数据加密过程中,符合CANopen协议的对象字典数据帧data由data[0]、data[1]、data[2]、data[3]、data[4]、data[5]、data[6]、data[7]需要加密的8字节数据,首先将该8字节数据分解为两个32位数据xl和xr,具体如式(2)所示:利用数据盒pbox和sbox对两个32位数据xl和xr按式(3)进行多轮加密运算:其中,i表示当前加密轮次,变化范围从0累加到round

1;d[0]

d[3]、temp以及Dk(xl)表示用于计算的中间变量;当xl和xr所有轮次的加密处理完成之后;按照下式(4)再将其与pbox进行运算,将xl与xr组合为与原数据帧d...

【专利技术属性】
技术研发人员:范大鹏陈凌宇朱文亮何爱华范世珣任广安张连超谢馨
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1