ModbusRTU报文的加密方法和装置制造方法及图纸

技术编号:37319370 阅读:12 留言:0更新日期:2023-04-21 23:00
本发明专利技术提供一种Modbus RTU报文的加密方法和装置,采用目前的高级加密标准AES加密算法对Modbus RTU报文进行加密,由于AES加密算法在加密时需要对特定的数据位长度进行加密,本方法不对Modbus RTU报文进行扩充至字节数与AES加密算法在加密时需要的数据位长度一致后,从每个字节中提取位数据进行加密,而是从Modbus RTU报文已有的数据中提取位数据进行加密,以每个字节的中间位向两边依次提取的方式提取位数据,直到提取的位数据的长度达到所述AES加密算法加密对应的数据位长度;减少了AES加密算法的运算量,提升了加密的效率,加密安全性强。安全性强。安全性强。

【技术实现步骤摘要】
Modbus RTU报文的加密方法和装置


[0001]本专利技术涉及Modbus RTU报文
,特别涉及一种Modbus RTU报文的加密方法和装置。

技术介绍

[0002]随着电力物联网的快速发展,在信息流通过程中电力报文的信息安全就逐渐变成一个重要的研究方向,而密码安全作为信息安全的基石,其算法被学术界广泛研究。但由于电力报文的实时性要求非常苛刻,如何实现电力报文的高效性和安全性,是电力报文安全应用的难点。
[0003]Modbus RTU报文作为电力行业一种广泛使用的报文,当前Modbus RTU报文多只有CRC验证码作为安全防御手段,但Modbus RTU报文的CRC验证码没有抵御第三方恶意攻击的能力。由于当前智能电子设备多采用嵌入式硬件结构,性能相对有限,而一般的加解密方法较为耗时,当前还鲜见高效的Modbus RTU报文的加解密方法。

技术实现思路

[0004]本专利技术提供一种Modbus RTU报文的加密方法、装置、计算机设备和存储介质,旨在提升Modbus RTU报文的加密力度的同时保障加密效率。
[0005]第一方面,本专利技术提出一种Modbus RTU报文的加密方法,包括:
[0006]获取Modbus RTU报文的字节长度;
[0007]从所述Modbus RTU报文的每个字节的中间位置提取位数据得到所述字节长度数量的位数据,若所述位数据的长度不足AES加密算法加密对应的数据位长度,从所述每个字节中最接近所述中间位置的旁边位置提取位数据,直到提取的位数据的长度达到所述AES加密算法加密对应的数据位长度;
[0008]对提取的位数据进行AES加密,得到加密后的位数据;
[0009]用所述加密后的位数据替代原来的位数据,得到加密后的Modbus RTU报文。
[0010]在其中一个实施例中,所述从所述Modbus RTU报文的每个字节的中间位置提取位数据得到所述字节长度数量的位数据,若所述位数据的长度不足AES加密算法加密对应的数据位长度,从所述每个字节中最接近所述中间位置的旁边位置提取位数据,直到提取的位数据的长度达到所述AES加密算法加密对应的数据位长度包括:
[0011]从所述Modbus RTU报文的每个字节的第四位提取位数据得到所述字节长度数量的位数据;
[0012]若从第四位提取的位数据的长度不足AES加密算法加密对应的数据位长度,从所述每个字节的第五位提取位数据;
[0013]若提取的位数据的长度仍然不足所述AES加密算法加密对应的数据位长度,依次从第三位、第六位、第二位、第七位、第一位、第八位提取位数据,直到提取的位数据的长度达到所述AES加密算法加密对应的数据位长度。
[0014]在其中一个实施例中,所述获取Modbus RTU报文的字节长度之后,还包括:
[0015]判断所述Modbus RTU报文的字节长度与所述AES加密算法加密对应的字节长度以及数据位长度的大小;
[0016]若所述Modbus RTU报文的字节长度小于所述AES加密算法加密对应的字节长度,不对所述Modbus RTU报文进行加密处理;
[0017]若所述Modbus RTU报文的字节长度等于所述AES加密算法加密对应的字节长度,对所述Modbus RTU报文的所有数据位按照所述AES加密算法进行加密;
[0018]若所述Modbus RTU报文的字节长度大于所述AES加密算法加密对应的字节长度,小于所述AES加密算法加密对应的数据位长度,执行步骤“从每个字节的中间位置提取位数据得到所述字节长度数量的位数据,若所述位数据的长度不足AES加密算法加密对应的数据长度,从所述每个字节中最接近所述中间位置的旁边位置提取位数据,直到提取的位数据的长度达到所述AES加密算法加密对应的数据长度”;
[0019]若所述Modbus RTU报文的字节长度大于所述AES加密算法加密对应的数据位长度,按照多个AES加密算法加密对应的数据位长度从所述Modbus RTU报文中提取对应长度的位数据进行加密。
[0020]在其中一个实施例中,所述AES加密算法加密对应的数据位长度为128个数据位。
[0021]在其中一个实施例中,所述获取Modbus RTU报文的字节长度之前,还包括:
[0022]获取Modbus RTU报文;
[0023]除去所述Modbus RTU报文的1个字节的地址域、1个字节的功能码、2个字节的校验码以及两个字节的长度数据,得到所述Modbus RTU报文的正文;
[0024]所述获取Modbus RTU报文的字节长度具体为,获取Modbus RTU报文的正文的字节长度。
[0025]在其中一个实施例中,还包括:
[0026]按照时间顺序依次获取若干个Modbus RTU报文;
[0027]对每个所述Modbus RTU报文进行加密处理。
[0028]在其中一个实施例中,所述用所述加密后的位数据替代原来的位数据,得到加密后的Modbus RTU报文之后,还包括:
[0029]将所述加密后的Modbus RTU报文通过电力物联网发送出去。
[0030]第二方面,本专利技术提出一种Modbus RTU报文的加密装置,包括:
[0031]字节长度获取单元,用于获取Modbus RTU报文的字节长度;
[0032]位数据提取单元,用于从所述Modbus RTU报文的每个字节的中间位置提取位数据得到所述字节长度数量的位数据,若所述位数据的长度不足AES加密算法加密对应的数据位长度,从所述每个字节中最接近所述中间位置的旁边位置提取位数据,直到提取的位数据的长度达到所述AES加密算法加密对应的数据位长度;
[0033]加密单元,用于对提取的位数据进行AES加密,得到加密后的位数据;
[0034]替换单元,用于用所述加密后的位数据替代原来的位数据,得到加密后的Modbus RTU报文。
[0035]第三方面,本专利技术提出一种计算机设备,所述计算机设备包括处理器和存储器,所述存储其中存储有计算机程序,所述计算机程序在由所述处理器加载并执行时,实现如上
述任意一项所述的方法。
[0036]第四方面,本专利技术提出一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被执行时,实现如上述任意一项所述的方法。
[0037]本专利技术一种Modbus RTU报文的加密方法、装置、计算机设备和存储介质,采用目前的高级加密标准AES加密算法对Modbus RTU报文进行加密,由于AES加密算法在加密时需要对特定的数据位长度进行加密,本方法不对Modbus RTU报文进行扩充至字节数与AES加密算法在加密时需要的数据位长度一致后,从每个字节中提取位数据进行加密,而是从Modbus RTU报文已有的数据中提取位数据进行加密,以每个字节的中间位向两边依次提取的方式提取位数据,直到提取的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Modbus RTU报文的加密方法,其特征在于,包括:获取Modbus RTU报文的字节长度;从所述Modbus RTU报文的每个字节的中间位置提取位数据得到所述字节长度数量的位数据,若所述位数据的长度不足AES加密算法加密对应的数据位长度,从所述每个字节中最接近所述中间位置的旁边位置提取位数据,直到提取的位数据的长度达到所述AES加密算法加密对应的数据位长度;对提取的位数据进行AES加密,得到加密后的位数据;用所述加密后的位数据替代原来的位数据,得到加密后的Modbus RTU报文。2.根据权利要求1所述的方法,其特征在于,所述从所述Modbus RTU报文的每个字节的中间位置提取位数据得到所述字节长度数量的位数据,若所述位数据的长度不足AES加密算法加密对应的数据位长度,从所述每个字节中最接近所述中间位置的旁边位置提取位数据,直到提取的位数据的长度达到所述AES加密算法加密对应的数据位长度包括:从所述Modbus RTU报文的每个字节的第四位提取位数据得到所述字节长度数量的位数据;若从第四位提取的位数据的长度不足AES加密算法加密对应的数据位长度,从所述每个字节的第五位提取位数据;若提取的位数据的长度仍然不足所述AES加密算法加密对应的数据位长度,依次从第三位、第六位、第二位、第七位、第一位、第八位提取位数据,直到提取的位数据的长度达到所述AES加密算法加密对应的数据位长度。3.根据权利要求1所述的方法,其特征在于,所述获取Modbus RTU报文的字节长度之后,还包括:判断所述Modbus RTU报文的字节长度与所述AES加密算法加密对应的字节长度以及数据位长度的大小;若所述Modbus RTU报文的字节长度小于所述AES加密算法加密对应的字节长度,不对所述Modbus RTU报文进行加密处理;若所述Modbus RTU报文的字节长度等于所述AES加密算法加密对应的字节长度,对所述Modbus RTU报文的所有数据位按照所述AES加密算法进行加密;若所述Modbus RTU报文的字节长度大于所述AES加密算法加密对应的字节长度,小于所述AES加密算法加密对应的数据位长度,执行步骤“从每个字节的中间位置提取位数据得到所述字节长度数量的位数据,若所述位数据的长度不足AES加密算法加密对应的数据长度,从所述每个字节中最接近所述中间位置的旁边位置提取位...

【专利技术属性】
技术研发人员:黄欢蒙浩然刘彬吴宜聪覃思师张华英刘绍建钟朝晖
申请(专利权)人:中国能源建设集团广西电力设计研究院有限公司
类型:发明
国别省市:

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

1