电力系统控制保护程序的加密方法、装置和存储介质与流程

文档序号:18755930发布日期:2019-09-24 22:22阅读:187来源:国知局
电力系统控制保护程序的加密方法、装置和存储介质与流程

本发明属于加密方法领域,特别是电力系统控制保护程序的加密方法、装置和存储介质。



背景技术:

当前,电力系统中经常使用结构与运算非常直观的控制保护程序。这种控制保护程序的编程、调试、修改非常简便。

但是随着应用的深入,也面临了一些新的难题:由于程序设计变更、用户需求以及误操作等原因,导致程序在传输中关键数据的丢失、被恶意修改甚至是感染病毒,造成工程现场实际下载到装置中的控制保护程序错误,影响电力系统运行的安全与稳定。因此需要进行加密计算,通过对目标程序进行加密计算,确定在工程现场运行的程序是否被改变,从而保证数据在传输过程中更加地安全和准确。

然而,其他领域的加密过程并不适用于电力系统控制保护程序。例如,在其他领域中,可以通过对存储文件进行比较可以判断程序的修改。但是,电力系统控制保护程序中,非常关键的是控制保护逻辑。但是存储文件无法分析出数据流连接关系之间的差异;而且控制保护程序当中,不论是控制保护逻辑的变化,还是模块位置调整,或者变量的前后顺序调整,都会导致存储内容变化;也就是说通过存储文件进行比较无法准确判断是否存在逻辑性的差异。因此,现有方法无法保证控制保护程序的准确性。

因此,为了对电力系统控制保护程序进行加密,必须对其进行适当处理,以适应电力系统的要求。



技术实现要素:

本发明的目的在于提供一种适应于电力系统控制保护程序的加密方法、装置和存储介质,用于解决现有技术无法保证电力系统控制保护程序准确性的问题。

为解决上述技术问题,本发明的技术方案为:

电力系统控制保护程序的加密方法,步骤如下:

读取控制保护程序的程序文件,进行解析,获得其中所有模块、所有变量和所有连接线的信息;

对于一个程序页面的所有模块,根据模块对应的输入/输出变量:确定每个终止模块,所述终止模块为输出变量是全局变量的模块,对每个终止模块进行遍历,得到通过连接线达到该终止模块的各个分支路径;或者确定每个起始模块,所述起始模块为输入变量是全局变量的模块,对每个起始模块进行遍历,得到通过连接线达到该起始模块的各个分支路径;

将全部分支路径按照设定的顺序进行排列得到一条数据链;

至少为所述数据链添加相关模块、输入/输出变量的必要属性配置信息,得到程序页面的数据信息字符串;所述必要属性配置信息为与程序页面的逻辑运算信息相关的属性配置信息;

对于控制保护程序的所有程序页面,得到相应的数据信息字符串后,通过加密算法进行加密处理。

本发明的方法具有如下有益效果:在每个程序页面中,从起始模块开始或者从终止模块开始遍历,从而能够分析出数据流连接关系,确定在工程现场运行的程序是否被改变,从而保证数据在传输过程中更加地安全和准确从而保证数据在传输过程中更加地安全和准确。通过选择必要属性配置信息,能够有效过滤程序中模块位置改变、注释信息、外部连接顺序等无关逻辑运算信息的差异,从而提高了控制保护工程实施的可靠性,确保了程序在传输过程中的有效性、一致性。本发明最终能够保证装置的安全稳定运行,降低调试验收人员的工作量,避免出现遗漏和出错,提高了相关工作的准确性和效率。

进一步的,读取控制保护程序的程序文件,进行解析包括:导入控制保护程序的cfc文件,其中包括输入变量、输出变量、函数模块、连接线数据,并将相应的数据转换为xml格式。xml格式更易于后续处理。

进一步的,将全部分支路径按照每个分支路径中第一个变量的字母顺序进行降序排列,得到一条数据链。

进一步的,通过广度优先遍历方法对所述每个终止模块进行回溯。

进一步的,所述必要属性配置信息仅包括模块的名称和功能、输入/输出变量类型和输入/输出变量初始值;或者仅包括模块的名称和功能、输入/输出变量类型、输入/输出变量初始值、参数设置名和参数设置值。

本发明还提供了一种电力系统控制保护程序的加密装置,包括:处理器和存储器;所述处理器执行存储在存储器中的程序,以实现如上述方法。

本发明还提供了一种计算机存储介质,其存储有实现如上述方法的计算机程序。

附图说明

图1为本发明实施例的程序流程图;

图2是本发明实施例的程序页面图。

具体实施方式

本发明的加密方法,加密的对象是电力系统控制保护程序,是指在电力系统中常见的、结构与运算非常直观的控制保护程序。这种控制保护程序的编程、调试、修改非常简便。

为了清楚说明本发明的电力系统控制保护程序的加密方法,下面以用于特高压直流输电工程的hcm3000平台以为例,说明该平台的控制保护程序的加密过程。hcm3000平台是嵌入式高端工业控制系统软硬件平台。该平台在高压、特高压直流输电等电力系统领域有广泛的应用。该平台的控制保护程序就采用结构与运算相对直观的编程方式,非常便于调试和修改程序。

为了保证控制保护程序准确无误地下载到装置中,结合图1和图2所示,具体实施步骤如下:

1)导入控制保护程序的cfc文件(cfc文件为hcm3000平台所使用的程序文件格式,作为其他实施方式,对于非hcm3000平台,应当导入相应格式的程序文件),包括输入变量、输出变量、函数模块、连接线等数据,并将相应的数据转换为xml格式。转换为xml格式是为了便于后续处理,作为其他实施方式,也可以转换为其他便于处理的格式。

控制保护程序包括多个程序页面,下面对一个程序页面进行说明。

2)获取其中的模块、变量和连接线的信息,为后续确定终止模块、回溯路径做准备。

一种方式为:首先对于每条连接线,确定其起始端变量名、终止端变量名,进而确定初始端变量的数据指针、终止端变量的数据指针;然后对于每个模块,根据其连接的连接线,确定其具有相应个数的数据指针,即输入/输出变量。

图2中模块add8f_0001具有5个数据指针,即5个输入/输出变量,其他模块均具有2个数据指针,即两个输入/输出变量。例如,模块add8f_0001具有5个输入/输出变量可以表示为add8f_0001.x1,add8f_0001.x2,add8f_0001.x3,add8f_0001.x4,add8f_0001.y。模块ava_0001的2个输入/输出变量可表示为ava_0001.x,ava_0001.y。

3)对于程序页面中的所有模块,确定一个终止模块;终止模块的输出变量作为一条数据链的终止端。

具体方式包括:遍历所有模块的数据指针,若某一模块的数据指针对应的是输出变量且为全局变量,则将该模块作为终止模块。对于图2中6个模块,遍历它们所有的数据指针,可知仅有模块ava_0001的一个数据指针ava_0001.y指向外部输出变量,而其他模块的数据指针指向外部输入变量或者指向内部的局部变量。因此,将模块ava_0001确定为终止模块。

若有两个以上的终止模块,则以每个终止模块分别进行遍历。

对一个终止模块进行遍历(优选为广度优选遍历),回溯通过连接线达到该终止模块的各个分支路径,每个分支路径上具有相应的模块,这些模块都称为输入模块。广度优先遍历算法是通过与模块相连接的连线信息,获取连接线的初始端变量、终止端变量,对于第一级的输入模块层级为1,第m级的输入模块层级为m。对于相同层级的模块,则按照输入模块在界面中的位置从上到下的顺序遍历,如图2所示从add2_0001到add2_0004的顺序为从上到下的顺序。

从模块ava_0001开始进行回溯,得到四条分支路径,本实施例中,分支路径按照各模块的输入变量、输出变量进行表示:

epu10a_1\cp1cfc(2)\add2_0005\y——add2_0001.x1——add2_0001.y——add8f_0001.x1——add8f_0001.y——ava_0001.x——ava_0001.y——epu10a_1\cp1cfc(2)\opr\x;

epu10a_1\cp1cfc(2)\add2_0006\y——add2_0002.x1——add2_0002.y——add8f_0001.x2——add8f_0001.y——ava_0001.x——ava_0001.y——epu10a_1\cp1cfc(2)\opr\x;

epu10a_1\cp1cfc(2)\add2_0007\y——add2_0003.x1——add2_0003.y——add8f_0001.x3——add8f_0001.y——ava_0001.x——ava_0001.y——epu10a_1\cp1cfc(2)\opr\x;

epu10a_1\cp1cfc(2)\add2_0008\y——add2_0004.x1——add2_0004.y——add8f_0001.x4——add8f_0001.y——ava_0001.x——ava_0001.y——epu10a_1\cp1cfc(2)\opr\x;

作为其他实施方式,也可以用其他方式进行表示。

4)将同一终止模块的所有分支路径按照设定的顺序进行排列(例如,按照每个分支路径中第一个变量的字母顺序进行降序排列)得到一条数据链。

可见,一个完整的数据链,其内容应当包括起始模块(第一级的输入模块)的输入链接和终止模块的输出链接,即:对于每条分支路径,从第一级的输入模块的输入变量到终止模块的输出变量。

对于有多个终止模块的情况,也可以按照类似方法进行排序。

上述从终止模块进行遍历的过程,相对于对于一个多叉树进行遍历。同理,作为其他实施方式,也可以首先找到起始模块,然后再从起始模块进行遍历以得到分支路径,起始模块为输入变量是全局变量的模块。

5)将数据链与数据链相关(即所涉及的)模块、输入/输出变量的必要属性配置信息,可得到程序页面的数据信息字符串。所谓必要属性配置信息必要属性配置信息仅包括模块的名称和功能、输入/输出变量类型和输入/输出变量初始值。作为其他实施方式,若某些输入变量作为参数输入(例如add2_0001.x1也可以作为参数输入),则必要属性配置信息仅包括模块的名称和功能、输入/输出变量类型、输入/输出变量初始值、参数设置名和参数设置值。这些信息均是与控制保护程序的逻辑运算信息密切相关的,而与逻辑运算信息无关的位置坐标信息、备注信息、创建修改时间、页码信息等均被剔除。与逻辑运算信息无关信息被剔除的越多,则数据链越精简。

6)最后遍历控制保护程序中所有程序页面的cfc文件,得到多个数据链的多个数据信息字符串,将这些数据信息字符串进行散列算法(作为其他实施方式,也可以采用其他的现有加密算法),利用移位和异或来充分的混合输入元素,最后变换成固定长度的输出从而完成加密。

上述方法能够法分析出数据流连接关系,确定在工程现场运行的程序是否被改变,从而保证数据在传输过程中更加地安全和准确;同时能够有效过滤程序中模块位置改变、注释信息、外部连接顺序等无关逻辑运算信息的差异,从而提高了控制保护工程实施的可靠性,确保了程序在传输过程中的有效性、一致性。保证装置的安全稳定运行,降低调试验收人员的工作量,避免出现遗漏和出错,提高了相关工作的准确性和效率。

上述方法以计算机程序的形式实现,由相应的计算机设备中的存储介质进行存储和运行,所谓计算机设备至少具备处理器和存储器(可以采用现有技术的任意存储介质)。这种计算机设备可以是上述hcm3000平台本身,即hcm3000平台本身作为一种加密装置;这种计算机设备也可以是hcm3000平台的外部接入设备,即一种专门的加密装置。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1