王剑锋, 林永峰
(国网天津市电力公司,天津 300010)
目前,越来越多的产业都选择利用网络技术提高自身的工作效率。其中,电力网络的覆盖面积广,其中包含的电力从站数量多,因此,电力公司对网络的使用要求格外严格[1-2]。电网的正常运行离不开电力调度信息的有效、可靠传输。为提高电网的使用安全,对于电力调度信息的安全传输越来越重要[3]。因此,为实现电力调度信息的安全传输,需应用有效的电力调度信息加密传输方法。
目前,常应用HTTPS加密协议实现电力信息安全传输,或者应用电力信息超轻量级流加密方法[4]保证传输过程的安全性。这2种信息加密传输均采用HTTPS加密协议,在设计一个独特密钥的基础上设置电力调度信息的传输机制,从而实现对电力调度信息的加密传输。但经过具体实践发现,这2种传统的加密传输方法存在一定弊端,其保持密钥新鲜性的能力较弱,难以有效保证电网安全。
为此,本研究基于神经网络具有自学习和自适应的性质,设计一种新的面向电力调度信息的加密传输方法。神经网络是一种通过模仿动物神经网络行为特征而设计的人工神经网络,对于复杂的系统、海量的信息都有极高的学习能力和自适应能力。本研究设计的加密传输方法就是通过充分发挥神经网络的特点实现信息加密传输的目的,为维护电网的安全、稳定提供更强有力的技术支持。
采用混沌系统生成电力调度信息的混沌序列,然后将混沌理论与信息加密相结合[5]。现将复合混沌序列密码定义如下。
(1)
根据神经网络生成混沌随机码的基本原理[7],假设Xi=(x1,x2,…,xi,…,xn}表示n维二进制向量,Yi=(y1,y2,…,yi,…,yn)表示n维双极向量[7],且i=1,2,…,n。假设存在M个二进制向量δc(c=1,2,3,…,M)存储于网络吸引子上,则相邻的神经元节点之间的连接权如式(2),
(2)
式中,wij表示节点i和节点j之间的连接权,γc表示二进制向量δc的双极性系数[8]。函数σ的定义如式(3),
(3)
则可得到连接权矩阵T如式(4),
(4)
式中,C表示γc的存储模式[9]。
根据神经网络的学习规则得到神经网络的连接权矩阵,丰富神经网络中待输入的电力调度信息,实现对电力调度信息混沌序列的优化设置。
由于设置的混沌序列中数据量较大,因此,将密钥长度设置为128位。选用的加密算法执行变换任务时,用4行N列的矩阵,表示128位加密长度的状态。同时,密钥可类似表示4行N1列的矩阵,其中N1=128/32。则分组长度为128位的密钥矩阵,可得到一个4行4列的新矩阵,新矩阵中的16个数据可表示不同的电力调度信息[10]。
该过程的变换轮数N2由N和N1共同决定。而128位的密钥长度共需10次序列变换。在变换的过程中,需要通过字节代换、行移代换、列混合变换,加密电力调度序列的基本信息。字节代换本质上就是替换操作,即将状态矩阵中的元素替换成新的字节。行移代换是一种线性变换,按照加密规则实现[11]。该规则为:在状态矩阵中,令第a行的字节向下移动,与d1交换;而列混合变换,就是令第b列的字节向左移动,与d2交换,其过程如图1所示。
(a)行代换
根据上述提到的三类代换规则,置乱序列信息,利用加密函数对混沌序列信息加密,该函数见式(5),
CEi=f(IEi,counti,SK}
(5)
式中,CEi表示对第i个序列的加密结果,IEi表示第i个序列的明文,counti表示信息的初始化向量,SK表示共享密钥[12]。通过上述公式,完成对电力调度信息序列的加密。
为保持密钥的新鲜性,提升电力传输网络的安全性和自愈性,设计一个动态加密传输方案,将加密信息在加密信道中安全传输。设计的加密传输方案共需要满足3个必要条件:数据加密模块、动态密钥生成模块以及共享密钥更新模块。其中,数据加密模块的作用是对待传输的电力调度信息进行加密,该步骤已经在上一节实现,此节就不再进行说明;动态密钥生成模块要求在信息传输过程中,电力主站设备和从站设备之间,生成一个动态密钥,保持两端一致性;共享密钥更新模块利用加密传输中的动态密钥,对共享密钥进行实时更新[13]。
根据加密函数可知,SK是加密的关键组件,利用动态密钥DS,设置共享密钥SK的更新条件。已知传统的加密传输中涉及到DNP3和Modbus两种协议,其中Modbus协议使用最为广泛,因此,在本文中不再详细介绍该协议的特点与规则,而是从DNP3协议规则入手。DNP3协议信息传输规则:在规定时间内,电力调度信息发出控制指令的一方,如果没有收到预期应答,则重新发送应用层调度信息,若多次重发后依旧无法收到响应,则认为信息传输失败。本研究设计的预期动态密钥通过监听正确传输的信息产生,在解析数据链路不会出现额外的开销,因此可将传输随机数作为产生新动态密钥的依据。动态密钥的生成过程如图2所示。
图2 动态密钥生成过程
根据图2可知,传输电力调度信息需要在发送密文时附加一个利用共享密钥加密的随机数,其中DS_keySet_CN和DS_keySet_SN分别表示从站设备CN、主站设备SN的随机数序列,并用N控制密钥更新频率;counter表示计数值。
图2所示的动态密钥生成过程是根据从站设备CN向主站设备SN发送的E(rand_num1,Ksc},预先设置时间阈值,当到达时间阈值时,若一直不能接受响应消息,则需要重新发送;主站设备SN利用共享密钥解密,将产生的随机数串暂存,并向从站设备CN发送响应消息;CN收到响应消息后,自动更新DS_keySet_CN、增加counter,继续向SN发送E(rand_num2,Ksc}。主站设备利用共享密钥Ksc得到随机数,向从站设备发送消息,然后和上次暂存的随机数比较,当二者完全一致时,则表示重复数据;否则更新DS_keySet_SN、增加counter。当counter=N时,重新计算从站设备的动态密钥DS,将该密钥作为电力传输网络中的动态密钥。此时主站设备和从站设备持续更新动态密钥,而共享密钥需要与DS保持一致,因此计算从站设备CN的哈希值,并发送cipher,如式(6),
(6)
利用H(Ir}函数检索共享密钥SK和预先定义好的Str值,判断数据完整性,t表示时间。则共享密钥的更新方程为式(7),
SKt=DSt+SKt-1
(7)
该方案实现了数据加密模块、动态密钥生成模块以及共享密钥更新模块3个环节,从而完成了对动态加密传输方案的设计。至此,基于神经网络的电力调度信息动态加密传输方法设计完毕。
为验证本研究提出的基于神经网络的电力调度信息加密传输方法的可靠性,设计如下对比实验。将本文方法作为测试A组,将传统的利用HTTPS加密协议实现电力信息安全传输的方法作为测试B组,将传统的电力信息超轻量级流加密方法作为测试C组。通过比较应用不同的信息加密传输方法后电力网络的安全性和自愈性,来判断不同方法的有效性。
选择某省份的国家电网数据作为测试对象,模拟设置不同类别的网络攻击类型。该电网管理平台的显示页面如图3所示。
图3 测试对象使用界面
实验中模拟的攻击类型包括窃听攻击、恶意注入攻击以及假冒攻击,3种攻击的基本信息如表1所示。
表1 不同攻击特征统计
在电网传输电力调度信息时,同时注入上述3类攻击,3类攻击对从站与主站之间的不同信息传输攻击位置如图4所示。
图4 多重攻击下的电力网络示意图
结合上述测试环境,检验应用不同加密方法后,电力网络的安全性和自愈能力,从而判断不同的应用性能。
首先检验应用不同加密传输方法后,电网的安全性。将电网接入情况、及时性、完整性和准确性作为测试指标,测试存在窃听攻击、恶意注入攻击以及假冒攻击的情况下,应用不同加密传输方法后,不同月份中上述4种指标的信息传输反馈结果,如图5所示。
(a)测试A组实验结果
根据图5所示结果可知,测试A组中的电力网络只在4月份发生了一次及时性的传输失误,而测试B组和测试C组在信息及时性、完整性以及准确性方面均发生了多次数据传输失误。由此可见,传统的2种方法的抗攻击性较差,而本文利用神经网络设计的电力调度信息加密传输方法,可以有效抵抗传输过程中存在的攻击行为,使得电网信息传输的安全性更高。
在此基础上,测试应用不同加密传输方法后,电网在多重攻击下的自愈能力。测试过程中,利用不同的加密传输方法传输电力调度信息,完成数据传输后模拟此时的电网状态,得到如图6所示的电网状态模拟图。
(a)测试A组实验结果
根据图6可知,测试A组内的电网在经受多种攻击行为后可以迅速自愈,恢复到无攻击时的运行状态;而测试B组和测试C组中的电网,存在多个未自愈的路径和区域,难以恢复到无攻击时的运行状态。
综合上述2次实验对比结果可知,应用本研究设计的基于神经网络的电力调度信息加密传输方法后,电网的安全性和自愈性更强,充分证明了该方法的有效性。
以传统的信息加密传输方法保持密钥新鲜性能力差的问题作为研究要点,利用神经网络的高强学习能力,设计一种适用于实时动态变化的加密传输方案,有效保证电网传输数据过程的安全性,并当存在攻击时,通过极高电网自愈能力为信息加密传输提供可靠的保护手段。