【技术实现步骤摘要】
本专利技术属于工业监控领域,涉及数据加解密并行处理,特别涉及一种基于Modbus协议的数据并行加密通信方法和系统。
技术介绍
随着物联网的发展,将不同厂商生产的设备连成工业网络,进行集中数据监控的需求日益增长,并且对工业网络传输的实时性要求也日益提升。Modbus总线协议由于其协议开放、实施简便、可靠性高的特点,已经成为一种工业标准,也得到了各设备厂商的产品支持。Modbus通信采用主从通信方式,主站发出数据请求信息,从站接收到正确的消息后就可以发送数据到主站以响应请求;主站也可以直接发消息修改从站的数据,实现双向读写。目前工业中常用的Modbus通信方式是通过以太网结合TCP/IP协议组成ModbusTCP/IP网络进行通信。然而,当设备数据监控系统与互联网相结合时,由于互联网的开放性,一旦监控数据被截获并被加以用进行破坏活动,其带来的损失是非常严重的。因而,对传输的监控信息进行加密,同时又保证监控数据传输的实时性是非常重要的。SM4(原SMS4)是国家密码局公布的分组密码算法,其分组长度和密钥长度均为128bit。加解密算法都采用32轮非线性迭代结构。算法的加密变换主要包含异或运算和合成变换T(·)运算。其中,T(·)是由非线性变换τ和线性变换L复合而成,即T(·)=L(τ(·))。非线性变换τ由4个并行的S盒变换构成,S盒是固定8比特输入8比特输出的变换;线性变换L主要包含异或运算和左移运算 ...
【技术保护点】
基于Modbus协议的数据并行加密通信方法,其特征是,包括如下步骤:步骤1、配置应用程序,即根据数据采集站点的实际需求,产生配置信息表;步骤2、根据配置信息表里的信息对数据采集站点的设备运行信息进行采集,所采集到的数据为明文数据;步骤3、利用基于GPU的动态选择的改进SM4并行加密法对采集到的明文数据进行加密;即步骤3.1、利用AES‑128密钥扩展法生成SM4加密法所需的32个扩展密钥;步骤3.2、随机生成1个32位的随机数G;步骤3.3、利用GPU进行并行SM4加密,即将明文数据分成每块128比特的数据分组,一个数据分组的加密任务分配给一个的GPU线程;每个GPU线程再进行32轮循环迭代加密处理,在每轮循环迭代加密处理时,根据迭代的轮数确定随机数G的对应位置,并根据随机数G的该位置上的取值选取加密轮函数;步骤3.4、将各个GPU线程加密输出的数据按分块的前后顺序进行组合后形成密文数据;步骤4、将数据采集站点的密文数据发送给中心监控系统;步骤5、中心监控系统接收到数据采集站点发送的密文数据;步骤6、利用基于GPU的动态选择的改进SM4并行解密法对密文数据进行解密;即步骤6.1、利用G ...
【技术特征摘要】
1.基于Modbus协议的数据并行加密通信方法,其特征是,包括如下
步骤:
步骤1、配置应用程序,即根据数据采集站点的实际需求,产生配置
信息表;
步骤2、根据配置信息表里的信息对数据采集站点的设备运行信息进
行采集,所采集到的数据为明文数据;
步骤3、利用基于GPU的动态选择的改进SM4并行加密法对采集到的
明文数据进行加密;即
步骤3.1、利用AES-128密钥扩展法生成SM4加密法所需的32个扩展
密钥;
步骤3.2、随机生成1个32位的随机数G;
步骤3.3、利用GPU进行并行SM4加密,即将明文数据分成每块128
比特的数据分组,一个数据分组的加密任务分配给一个的GPU线程;每个
GPU线程再进行32轮循环迭代加密处理,在每轮循环迭代加密处理时,根
据迭代的轮数确定随机数G的对应位置,并根据随机数G的该位置上的取
值选取加密轮函数;
步骤3.4、将各个GPU线程加密输出的数据按分块的前后顺序进行组
合后形成密文数据;
步骤4、将数据采集站点的密文数据发送给中心监控系统;
步骤5、中心监控系统接收到数据采集站点发送的密文数据;
步骤6、利用基于GPU的动态选择的改进SM4并行解密法对密文数据
进行解密;即
步骤6.1、利用GPU进行并行SM4解密,即将密文数据分成每块128
比特的数据分组,每个GPU线程解密一个数据分组;每个GPU线程再进行
32轮循环迭代解密处理,在进行32轮循环迭代解密处理时,根据随机数
G对应位置上的取值,动态选择解密的轮函数;
步骤6.2、将各个GPU线程解密输出的数据按分块的前后顺序进行组
合后获得明文数据;
步骤7、将解密所得的明文数据进行显示,以获得数据采集站点的设
备运行信息。
2.根据权利要求1所述基于Modbus协议的数据并行加密通信方法,
其特征是,步骤3.1中,扩展密钥只需要产生一次,该扩展密钥在各个GPU
线程加密过程中循环使用。
3.根据权利要求1或2所述基于Modbus协议的数据并行加密通信方
\t法,其特征是,步骤3.1中所述密钥扩展的具体过程为:
步骤3.1.1、将128bit的初始密钥按照列顺序组成4个32bit的字,
分别记为w0-w3;
步骤3.1.2、在初始密钥的基础上依次新增31个字wj,每一个新增
的字wj的值依赖于wj-1和wj-4,即:
当j除以4的余数不为0时,当j除以4的余数为0时,wj=wj-4⊕g(wj-1);]]>步骤3.1.3、利用上述产生的字生成SM4加密算法中用到的扩展密钥,
即扩展密钥rki=wj+4;
上述j=4,5,6……35;,i=0,1,...,31;g()是一个复杂函数。
4.根据权利要求3所述基于Modbus协议的数据并行加密通信方法,
步骤3.1.2中,复杂函数g()的计算过程如下:
步骤3.1.2.1、将字wj-1以字节为单位,排列表示成[B0,B1,B2,B3]的
形式,并将[B0,B1,B2,B3]循环左移一个字节,变换成[B1,B2,B3,B0];
步骤3.1.2.2、利用AES的S盒对输入字的每个字节进行字节替换,
变为[B’1,B’2,B’3,B’0];
步骤3.1.2.3、将产生的结果[B’1,B’2,B’3,B’0]与轮常数进行异或输出;
上述j=4,5,6……35。
5.根据权利要求1所述的基于Modbus协议的数据并行加密通信方法,
其特征是,
步骤3.3中,进行并行SM4加密时,根据迭代的轮数确定随机数G对
应位置,该随机数G的每一位作为每一轮迭代时动态选择的依据,即:
当随机数G的对应的位置的数值为0时,选择使用:Xi+4=]]>F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)]]>作为轮
函数;
当随机数G的对应的位置的数值为1时,选择使用:Xi+4=]]>F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1+Xi+2+Xi+3⊕rki)]]>作为轮函
数;
其中,Xi-Xi+3表示第i轮输入的明文数据,F()表示轮函数,T()表示
合成变换函数,rki表示第i轮加密使用的扩展密钥,i=0,1,...,31;
步骤6.1中,进行并行SM4解密时,根据迭代的轮数确定随机数G对
应位置,该随机数G的每一位作为每一轮迭代时动态选择的依据,即:
当随机数G的对应的位置的数值为0时,选择使用:Xi+4=]]>F(Xi,Xi+1,Xi+2,Xi+3,rk31-i)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rk31-i)]]>作
为轮函数;
当随机数G的对应的位置的数值为1时,选择...
【专利技术属性】
技术研发人员:张红梅,黄剑,张向利,陈俊彦,李世文,刘国良,
申请(专利权)人:桂林电子科技大学,
类型:发明
国别省市:广西;45
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。