梯级电站一键顺控操作全流程加密方法
2022-03-26顾发英贺增良
尤 渺, 顾发英, 贺增良, 罗 旋
(1.国能大渡河流域水电开发有限公司,成都 610041; 2.国能大渡河流域生产指挥中心,成都 610041)
为安全管理梯级电站,集中管理式的运营调度方式成为研究的对象[1],在一键顺控[2]的操作控制下,能够将大量、繁杂的人工处理步骤固化到运行计算机上,通过调度运行计算机上的功能模块,实现对梯级电站内设备的远程遥控[3].但在遥控过程中含有不同流程指令的传输信号,易受外部环境的干扰.
为此,在多种外部环境下,研究了多种加密算法,保证了实际操作流程的安全性[4-5].文献[6]采用了SMPP协议编码的方式,在每个操作内部配置了一个加密响应,但实际构建的加密响应任务存在较多的自定义字符,增加了加密前搜索数据的数量,导致加密后的流程数据精度较小.文献[7]采用了可搜索式加密技术,在对应的操作流程数据上,标记索引参数,但该参数容易导致标记索引参数出现不统一的数据主体,导致最终加密后公钥尺寸过大.
针对上述问题,本文提出基于SOA的梯级电站一键顺控操作全流程加密方法.SOA又称面向服务的架构,是一种组件模型,能够将实际应用程序中的功能单元拆分处理后与支持协议相连接.采用定义后的中立方式后,将其独立于服务的硬件平台,形成一种统一以及通用的服务方式.通过模拟梯级电站调度,利用SOA 处理为不同的电力调度数据集,抽取有效数据并选取数据集聚类中心,在此基础上累加处理非中心数据,实现数据格式的统一,采用哈希函数结合碰撞参数得到加密半同态参数,此时构建公钥与私钥的关系,排除数据间的干扰,完成梯级电站一键顺控操作全流程加密.
1 基于SOA的梯级电站一键顺控操作全流程加密方法
1.1 利用SOA构建模拟梯级电站发电调度流程
在利用SOA模拟梯级电站发电调度流程时,以ASP.NET MVC 4结构作为基础,在该层次结构之间设定对应的调用接口,降低层级之间的依赖性.相同梯度的电站上,采用Repository模式在各个梯度电站间创建抽象层,生成操作网页,控制电站业务逻辑层调度电站数据,并通过数据存储组件与组成数据源层的数据类型形成一个对应关系,存储到数据库中.获取梯级电站发电操作流程数据过程,如图1所示.
在图1所示获取电站发电调度数据过程下,采用计算机中可拓展的组件,将固定式的电网发电调度流程转化为持久化的框架,并使用SOA将呈梯级形式的组件,开发成为多层的发电调控模式,针对单一的调控模式设定一个调度与数据集的对应关系,并采用SOA中的组件式的框架,处理为不同的发电调度数据集.标记该数据集为不同的识别属性,在数据集与识别属性之间建立一个映射关系,计算得到属性对应的标记参数,属性标记参数可计算得到:
图1 获取电网调度流程数据过程Fig.1 Process of obtaining data of power grid dispatching process
其中:c表示属性标记参数;y={1,2,…,i,…, }u表示电网发电调度数据集合;w表示调度关键词个数.其中,调度关键词个数通过向量空间模型提取,处理该属性参数为多个字段,选择关键字段后,将该字段重新映射到承载服务器的节点上[8],形成一个梯度式的发电调度处理过程,如图2所示.
在图2 所示的发电调度流程下,利用关键字段从梯度电站中提取出属性1,由此继续在下一梯度电站中映射,并进一步提取出属性2,发送到下一梯度电站中实现数据调度.针对一键顺控调度操作过程,设定操作过程的数据格式.
图2 梯度式发电调度流程Fig.2 The dispatching flow of gradient power generation
1.2 统一一键顺控操作数据格式
在上述梯度式调度流程控制下,引用支持梯级电站的服务器上层应用,在一键顺控操作发生时,针对不同的数据包,遵循配置梯级电站的数据包[9],不断抽取操作有效数据,形成一个有效数据抽取过程,如图3所示.
图3 有效数据抽取过程Fig.3 Effective data extraction process
在图3所示的数据抽取过程下,将抽取得到的数据集整合为X,选定某个数据作为数据集聚类中心[10],在统一一键顺控操作格式时,以该中心作为标准,累加处理非中心数据,累加处理可表示为
其中:H表示一键顺控操作数据数量;Xˉ表示流程数据的均值;p表示标准参数数值;A表示聚类参数;i为幂指数.其余参数含义不变.在该累加处理后,统一操作数据过程就可表示为
其中:Bi表示梯级电站调度数据函数,其余参数含义不变.在统一不同梯级电站数据格式后[11],将其整合为待处理的对象,设计一个全流程加密算法,实现对操作流程的加密.
1.3 设计全流程加密算法
使用上述统一后的倒闸操作数据格式,将集控数据作为数据全域,采用哈希函数将集控数据映射到顺控主机服务器的节点上,将映射的集控数据定义为一个随机变量[12],计算数据与服务器间的碰撞数量,可表示为
其中:y表示碰撞参数;Ti表示哈希参数;m表示对应的键参数;Cy表示服务器节点函数.当上述键参数为一个固定的质数k时,将上述碰撞参数分解为多个加密位,此时该质数与键参数间的数值关系可表示为
其中:n表示顺控主机服务器节点的数量,其余参数含义不变.不断汇总符合上述数值关系的键参数,对应得到实际加密时数据期望值,可表示为
其中:ti表示服务器碰撞参数形成的时间节点函数,其余参数含义保持不变.选取上述计算得到的期望数值作为加密时使用的素数,计算素数的半同态参数[13-14],函数计算公式就可表示为
其中:v表示半同态参数;N表示加密时的素数.根据该半同态参数,使用Paillier算法构建一个公钥与私钥数值关系,可表示为
其中:pk 表示公钥;sk 表示私钥;g表示加密拟合参数;l表示Paillier算法参数;a、b表示加密时使用的素数.将公钥作为初始加密的对象,将私钥作为次级加密的对象[15-16],形成的加密过程如图4所示.
在图4 所示的加密过程下,使用公钥与私钥之间的数值关系[17-18],形成一个加密过程,可表示为
图4 加密过程Fig.4 Encryption process
其中:M表示最终构建得到的加密函数.使用该加密函数,不断替换加密过程中的整数数值[19-21],对信号进行加密传输,实现隔离开关分合位置的远程操控.最终完成对梯级电站一键顺控全流程加密方法的构建.
2 仿真实验
2.1 实验准备
采用操作系统为Windows 10的计算机作为加密工具,使用Java 与Python(V3.5)作为实际的开发语言,采集梯级电站中操作流程的数据,数据采集过程如图5所示.
图5 流程数据采集过程Fig.5 Process data acquisition process
在上图所示的流程数据采集过程下,将十次采集得到的流程数据,整理为待加密数据集,整理结果如表1所示.
表1 采集得到的流程数据集Tab.1 Collected process data sets
在表1所示的数据集下,分别准备传统流程加密方法1(文献[6]方法)、传统流程加密方法2(文献[7]方法)以及设计的加密方法进行实验,对比三种加密方法的性能.
2.2 结果及分析
2.2.1 加密执行时间 基于上述实验准备,控制三种加密方法处理上表采集得到的数据集,并进行了对比测试.测试对加密数据集的写入、读取、重命名、截断和删除的执行时间,最后还测试将所有流程都执行一遍使用的总时间.以上所有测试都对所有过程执行了10次,取其平均数,最终三种加密方法加密的执行时间结果如图6所示.由图6所示的加密效率结果可知,传统加密方法1在执行加密的各个环节消耗的执行时间最长.传统加密方法2所需的时间较长,要远远小于传统加密方法1所需的时间,而设计得到的流程加密方法的执行时间最短,总执行时间平均为280 ms,与两种传统加密方法相比,该种加密方法能够缩短加密过程中各个执行任务的时间,时效性较强.
图6 三种加密方法加密执行时间结果Fig.6 Encryption execution time results of three encryption methods
2.2.2 解密耗时 保持上述实验环境不变,汇总数据集中的数据指令后,以加密处理后的数据集作为处理对象,以解密三种流程加密方法下数据集的耗时作为对比指标,结果如表2所示.
分析表2 所示结果,解密处理三种加密方法同时处理加密后的流程数据集,根据统计得到的损耗时间结果可知,传统加密方法1 产生的损耗结果最大,所需的解密时间在0.8~0.9 s 之间,所需的解密时间较长;传统加密方法2 产生的损耗结果较大,解密时所需的时间在0.4~0.56 s 之间,占用的处理进程时间较短;而设计得到的加密方法产生的损耗最小,在解密加密流程时,所需的时间在0.2~0.3 s 之间,与两种传统加密方法相比,设计得到的加密方法占用最小的处理流程,实际产生的耗时最小.
表2 三种加密方法数据集解密耗时结果Tab.2 Decryption time-consuming results of data sets by three encryption methods
2.2.3 公钥尺寸 在上述实验环境下,三种加密方法同时加密的数据集(表1),记录三种加密方法下密钥的长度,结果如表3 所示.
根据表3所示的实验结果可知,传统加密方法1的平均公钥尺寸为940 bit,传统加密方法2的平均公钥尺寸为876 bit,而设计的加密方法得到的平均公钥尺寸为632 bit左右,与前两种流程加密方法相比,该种加密方法的公钥尺寸最小,具有较好的应用性能.
表3 三种加密方法的密钥长度Tab.3 Key lengths of three encryption methods
3 结语
本文设计了一种梯级电站一键顺控操作全流程加密方法,利用SOA模拟电网调度并建立一键调度有效数据集,选取数据集中心并处理非中心数据,使数据格式达到统一,解决了公钥尺寸较大的问题,实现了梯级电站一键顺控操作全流程的快速加密.通过实验验证了设计方法具有较好的应用性能,能够改善传统加密方法的不足.但本文研究还存在一定的不足,在应用时采用的数据量较小,在未来研究中,应当以实际梯级电站的数据作为研究对象进行验证,以提高设计方法的适用性,为加密研究提供一定的支持.