CN103746962B - 一种goose电力实时报文加解密方法 - Google Patents
一种goose电力实时报文加解密方法 Download PDFInfo
- Publication number
- CN103746962B CN103746962B CN201310681672.9A CN201310681672A CN103746962B CN 103746962 B CN103746962 B CN 103746962B CN 201310681672 A CN201310681672 A CN 201310681672A CN 103746962 B CN103746962 B CN 103746962B
- Authority
- CN
- China
- Prior art keywords
- message
- goose
- goose message
- domain
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种GOOSE电力实时报文加解密方法,包括:提取GOOSE报文中的关键信息;计算关键信息的长度,根据长度对关键信息进行ECB分组,得到预处理报文;发送端和接收端约定好密钥种子,以密钥种子为初始参数通过Rijndael算法的密钥扩展函数KeyExpansion()产生其余的子密钥,得到密钥;对预处理报文进行Rijndael加密,得到关键信息的密文;将密文回置原GOOSE报文,对于经过加密而多出来的数据域,放置到填充域,得到加密的GOOSE报文;对加密的GOOSE报文中的密文和填充域进行Rijndael解密,并将解密的内容依次回置到GOOSE报文中,得到解密后的GOOSE报文;对解密后的GOOSE报文进行CRC校验、T域、StNum、SqNum域检验,如果正确,接收该GOOSE报文,完成加解密。本发明实现了GOOSE报文传输中的实时性、完整性和保密性。
Description
技术领域
本发明涉及电力***信息安全技术领域,具体涉及一种GOOSE电力实时报文加解密方法。
背景技术
在电力***通信网络中,面向通用对象的变电站事件(GOOSE,Generic ObjectOriented Substation Event)报文主要用于表征断路器的跳、合闸等操作命令和断路器位置信息等重要场合,其安全性、准确性、实时性很大程度上影响着电力***运行的可靠性。
而且,在以数字化变电站为代表的智能电网中得到越来越广泛的应用的背景下,GOOSE电力报文有可能跨区域、跨电网传输,使得其更可能遭受窃听、攻击、篡改等入侵事件,其在电力信息安全方面的重要性愈发突出。
然而,现有技术中缺乏对实时性要求很高的GOOSE报文信息进行加密的有效方法。因此,亟需采用加解密技术加强GOOSE电力报文的保密性;但报文加解密一般需要较大耗时,而GOOSE报文具有严格的实时性要求。根据IEC 61850标准的规定,GOOSE信号的通信延迟应小于4ms。如何在满足GOOSE报文实时性的基础上,实现GOOSE报文的完整性和保密性成为了问题的关键。
发明内容
本发明的目的在于克服上述缺陷,提供一种保密程度高、加解密耗时少和硬件适应性强的GOOSE电力实时报文加解密方法。
为了达到上述目的,本发明采用的技术方案是,一种GOOSE电力实时报文加解密方法,包括以下步骤:
S1、加密
S11、提取GOOSE报文中的关键信息;
S12、计算所述关键信息的长度,根据所述长度对所述关键信息进行ECB分组,得到预处理报文;
S13、发送端和接收端首先约定好长度为128、192或256比特的密钥种子,以密钥种子为初始参数通过Rijndael算法的密钥扩展函数KeyExpansion()产生密钥;
S14、利用S13的密钥对所述预处理报文进行Rijndael算法加密,得到所述关键信息的密文;
S15、将所述密文回置原GOOSE报文,对于经过加密而多出来的数据域,放置到填充域,得到加密的GOOSE报文;
S2、解密
S21、对加密的GOOSE报文中的密文和填充域进行Rijndael算法解密,并将解密的内容依次回置到GOOSE报文中,得到解密后的GOOSE报文;
S22、对解密后的GOOSE报文进行CRC校验,如果CRC校验通过,转入S23;否则,丢弃所述GOOSE报文;
S23、检验解密后的GOOSE报文的T域是否正确,如果正确,转入S24;否则,丢弃所述GOOSE报文;
S24、检验解密后的GOOSE报文的StNum、SqNum域是否正确,如果正确,接收该GOOSE报文,完成加解密;否则,丢弃所述GOOSE报文。
更具体的,所述GOOSE报文中的关键信息是GOOSE报文的StNum、SqNum、T、AllData域中的数据。
在加密算法和密钥长度一定时,降低加解密GOOSE报文耗时的核心在于减少所需加密的报文长度。通过分析GOOSE报文各个域的信息,提取报文的关键信息,在其实时性和保密性中取得平衡。根据IEC 61850标准,GOOSE报文在数据链路层采用ISO/IEC 802.3协议,由MAC地址域、TPID(标志协议标识)域、TCI(标识控制信息)域、EtherType(以太网报文类型)域、APPID(应用标识)域、Length(长度)域、Reserved1(保留1)域、Reserved2(保留2)域和APDU(应用协议数据单元,即报文内容)域组成。GOOSE的帧结构,如表1所示。MAC地址域、TPID域、TCI域、EtherType域、APPID域、Length域、Reserved1、Reserved2域的内容主要表征GOOSE报文的通信信息和报文长度等通信相关的基础内容,并不包含GOOSE报文反映的断路器位置状态和解、闭锁,跳、合闸操作命令等实质内容,因此保持这些内容域的内容不变,不进行加密处理。
表1 GOOSE报文的帧结构
反映电力***开关状态和控制命令等实质性信息的内容主要集中在APDU域。APDU域由GoCBReference(GOOSE控制块引用名)、TimesAllowedtoLive(允许生存时间)、DataSet(数据集引用名)、GoID(GOOSE标识符)、Test(检修位)、ConfRev(配置版本号)、NdsCom(需要重新配置标识)、NumDatSetEntries(数据集成员个数)、Security(加密信息)数据内容和多个AllData(应用服务数据单元)组成,其帧结构如表2所示。
表2 GOOSE报文APDU结构
StNum(状态号计数器),在数据集成员值发生变化时,该值加1;T(Utc时间),是在状态号StNum加1时的时间;SqNum(顺序号计数器),在状态号StNum加1时置零时,该值置为0,在每重发一次GOOSE报文时,该值加1。因此,StNum、SqNum、T是保持GOOSE报文收发双方同步的信息,可以有效防止外界对报文的恶意重发攻击。AllData表征了GOOSE报文所包含的开关量和操作命令等实质内容,其保密性直接决定了GOOSE报文整体的保密性。而GoCBReference、TimesAllowedtoLive、DataSet、GoID、Test、ConfRev、NdsCom、NumDatSetEntries等数据内容并不涉及电力***开关状态和控制命令等实质性信息,而且占据了很大的长度。所以只对StNum、SqNum、T、AllData这四个影响GOOSE报文的数据内容进行加密处理。
更具体的,所述ECB分组是指电码本(Electronic Codebook)分组,具体步骤:计算GOOSE报文关键信息的长度,并分别跟长度为128、192与256比特的基准长度相比较,若明文长度大于256比特时,以256比特为基准长度不断分组直至长度小于256比特;再找到最接近但小于或等于上述基准长度的分组长度,并填充明文内容直至长度为该基准长度;若明文长度小于256比特,则找到小于或等于128或192比特的分组长度,并填充明文内容直至长度为该基准长度。
更具体的,所述Rijndael算法属高级加密标准(Advanced Encryption Standard,AES)算法,同时是对称加密算法,既保证了加密强度,又保证了加解密的时耗达到GOOSE报文的通信延迟性能标准。
更具体的,所述CRC校验是循环冗余校验码(Cyclic Redundancy Check,CRC)校验。
相对于现有技术,本发明的有益效果是:
(1)本发明通过分析GOOSE报文特点,提取GOOSE报文的关键信息,仅对关键信息加解密,在不降低报文信息保密性的前提下,避免对整个GOOSE报文的加解密,减少加解密算法的耗时。
(2)本发明采用Rijndael算法加解密报文,既保证了加密强度,又保证了加解密的时耗达到GOOSE报文的通信延迟性能标准。
(3)本发明充分利用GOOSE报文的CRC校验码域来保证GOOSE报文的完整性。
附图说明
图1为本发明GOOSE电力实时报文发送方加密方法的流程图。
图2为本发明GOOSE电力实时报文接收方解密方法的流程图。
具体实施方式
下面结合附图和实施例进一步说明本发明,但本发明要求保护的范围并不限于实施例表述的范围。对本领域的技术人员在不背离本发明的精神及保护范围的情况下做出的其它的变化和修改,仍包括在权利要求书保护的范围内。
实施例
本实施例,一种GOOSE电力实时报文加解密方法,步骤包括:
如图1所示,GOOSE电力实时报文发送方加密方法有以下具体步骤:
S‐1、加密
S‐11、提取GOOSE报文中的StNum、SqNum、T、AllData这四个关键数据内容作为待加密处理的明文内容,而忽略了GoCBReference、TimesAllowedtoLive、DataSet、GoID、Test、ConfRev、NdsCom、NumDatSetEntries、Security这些不影响报文安全性的非关键信息报文内容,组成关键报文数组PlainText1[length1],其中length1为报文的长度,单位为字节;
S‐12、计算明文长度length2,单位为比特,采用ECB分组方式:分别跟长度为128、192与256比特的基准长度相比较,若明文长度大于256比特时,以256比特为基准长度不断分组直至长度小于256比特,再找到最接近而且小于或等于128、192比特的分组长度,并填充明文内容直至长度等于该基准长度;若明文长度小于256比特,则找到最接近而且小于或等于128或192比特的分组基准长度,并填充明文内容直至长度为该基准长度。得到新的数组PlainText2[length3],长度为length3,单位字节;
S‐13、发送端和接收端首先约定好长度为128、192或256比特的密钥种子;
1)根据明文的分组长度,如果明文的分组长度为128比特,则随机产生长度为4×4个字节的密钥种子,作为初始密钥;如果明文的分组长度为192比特,则随机产生长度为6×6个字节的密钥种子,作为初始密钥;如果明文的分组长度为256比特,则随机产生长度为8×8个字节的密钥种子,作为初始密钥;
2)定义一个(Nr+1)×Nb个字的一维数组K[(Nr+1)×Nb]。其中,Nr为从明文转换为密文所需要的变换轮数,其值依据分组长度和密钥长度来确定,当密钥长度为128比特时,Nr为10;当密钥长度为192比特时,Nr为12;当密钥长度为256比特时,Nr为14。当密钥分组为128、192或256比特时,对应的Nb分别为4、6、8;
3)将密钥种子赋值到K[0],K[1],…,K[Nk‐1],得到密钥种子数组K[Nk],当密钥分组为128、192或256比特时,对应的Nk分别为4、6、8;
4)从K[Nk]开始到K[Nb×(Nr+1)]依次生成轮密钥所需的字:用密钥扩展函数KeyExpansion()通过密钥种子产生的其余的子密钥,并赋值到K[Nk]到K[Nb×(Nr+1)],从而生成了密钥K[Nb×(Nr+1)];
S‐14、采用由S‐13产生的密钥对PlainText2[length3]进行Rijndael算法加密,得到密文CipherText[length3];
S‐15、将CipherText[length3]按照T、StNum、SqNum、AllData在报文的数据空间排列顺序,依次放置回原GOOSE报文,如果length2大于原T、StNum、SqNum、AllData所占数据空间的大小,多出来的加密内容,放置到填充域;
如图2所示,GOOSE电力实时报文接收方解密方法有以下具体步骤:
S‐2、解密
S‐21、对GOOSE报文的StNum、SqNum、T、AllData和填充域进行Rijndael解密,并将解密后的内容按照这些域的顺序回置到GOOSE报文中,得到解密后的GOOSE报文;
S‐22、对解密后的GOOSE报文进行CRC校验,并与CRC校验码域进行比较,如果CRC校验通过,转入S‐23;否则,认为GOOSE报文不具有完整性,丢弃所述GOOSE报文;
S‐23、检查GOOSE报文的T域是否比上一个GOOSE报文的T域大且在报文允许时间范围内,如果是,转入S‐24;否则,认为GOOSE报文受到攻击,丢弃所述GOOSE报文;
S‐24、检验解密后的GOOSE报文的StNum、SqNum域是否正确,包括以下步骤:
S‐241、重发GOOSE报文的合法性检验:如果这个GOOSE报文的StNum域和上一个GOOSE报文的StNum域相等(即该GOOSE报文是重发报文),就检查SqNum域是否比上一个GOOSE报文的SqNum域大1,如果是,就认为这个GOOSE报文没受到攻击,接收该GOOSE报文;否则,就认为报文受到攻击,不接收该GOOSE报文。如果这个GOOSE报文的StNum域与上一个GOOSE报文的StNum域不相等(即该GOOSE报文不是重发报文),转入步骤S‐242;
S‐242、非重发GOOSE报文的合法性检验:如果这个GOOSE报文的StNum域比上一个GOOSE报文的StNum域大1,继续判断SqNum域是否为0,如果是,就认为GOOSE报文没受到攻击,接收该GOOSE报文;否则,就认为GOOSE报文受到攻击,丢弃该GOOSE报文;如果这个GOOSE报文的StNum域比上一个GOOSE报文的小,就认为报文受到攻击,丢弃该GOOSE报文。
本实施例工作原理:
提取GOOSE报文中的StNum、SqNum、T、AllData这四个关键数据内容进行加解密,加密采用Rijndael算法,并使用CRC技术对GOOSE报文进行校验。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (6)
1.一种GOOSE电力实时报文加解密方法,其特征在于,包括以下步骤:
S1、加密
S11、提取GOOSE报文中的关键信息;
S12、计算所述关键信息的长度,根据所述长度对所述关键信息进行ECB分组,得到预处理报文;
S13、发送端和接收端首先约定好长度为128、192或256比特的密钥种子,以密钥种子为初始参数通过Rijndael算法的密钥扩展函数KeyExpansion()产生密钥;
S14、利用S13的密钥对所述预处理报文进行Rijndael算法加密,得到所述关键信息的密文;
S15、将所述密文回置原GOOSE报文,对于经过加密而多出来的数据域,放置到填充域,得到加密的GOOSE报文;
S2、解密
S21、对加密的GOOSE报文中的密文和填充域进行Rijndael算法解密,并将解密的内容依次回置到GOOSE报文中,得到解密后的GOOSE报文;
S22、对解密后的GOOSE报文进行CRC校验,如果CRC校验通过,转入S23;否则,丢弃所述GOOSE报文;
S23、检验解密后的GOOSE报文的T域是否正确,如果正确,转入S24;否则,丢弃所述GOOSE报文;
S24、检验解密后的GOOSE报文的StNum、SqNum域是否正确,如果正确,接收该GOOSE报文,完成加解密;否则,丢弃所述GOOSE报文。
2.根据权利要求1所述的一种GOOSE电力实时报文加解密方法,其特征在于:所述GOOSE报文中的关键信息是GOOSE报文的StNum、SqNum、T、AllData域中的数据。
3.根据权利要求1所述的一种GOOSE电力实时报文加解密方法,其特征在于:所述ECB分组是指电码本分组,具体步骤:计算GOOSE报文关键信息的长度,并分别跟长度为128、192与256比特的基准长度相比较,若明文长度大于256比特时,以256比特为基准长度不断分组直至长度小于256比特;再找到最接近但小于或等于上述基准长度的分组长度,并填充明文内容直至长度为该基准长度;若明文长度小于256比特,则找到小于或等于128或192比特的分组长度,并填充明文内容直至长度为该基准长度。
4.根据权利要求1所述的一种GOOSE电力实时报文加解密方法,其特征在于:采用GOOSE报文的CRC校验域来保证GOOSE报文的完整性。
5.根据权利要求1所述的一种GOOSE电力实时报文加解密方法,其特征在于,S23包括以下步骤:
检查GOOSE报文的T域是否比上一个GOOSE报文的T域大且在报文允许时间范围内,如果是,转入S24;否则,认为GOOSE报文受到攻击,丢弃所述GOOSE报文。
6.根据权利要求1所述的一种GOOSE电力实时报文加解密方法,其特征在于,S24包括以下步骤:
S‐241、重发GOOSE报文的合法性检验:如果这个GOOSE报文的StNum域和上一个GOOSE报文的StNum域相等,就检查SqNum域是否比上一个GOOSE报文的SqNum域大1,如果是,就认为这个GOOSE报文没受到攻击,接收该GOOSE报文;否则,就认为报文受到攻击,不接收该GOOSE报文;如果这个GOOSE报文的StNum域与上一个GOOSE报文的StNum域不相等,转入步骤S‐242;
S‐242、非重发GOOSE报文的合法性检验:如果这个GOOSE报文的StNum域比上一个GOOSE报文的StNum域大1,继续判断SqNum域是否为0,如果是,就认为GOOSE报文没受到攻击,接收该GOOSE报文;否则,就认为GOOSE报文受到攻击,丢弃该GOOSE报文;如果这个GOOSE报文的StNum域比上一个GOOSE报文的小,就认为报文受到攻击,丢弃该GOOSE报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310681672.9A CN103746962B (zh) | 2013-12-12 | 2013-12-12 | 一种goose电力实时报文加解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310681672.9A CN103746962B (zh) | 2013-12-12 | 2013-12-12 | 一种goose电力实时报文加解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103746962A CN103746962A (zh) | 2014-04-23 |
CN103746962B true CN103746962B (zh) | 2017-01-25 |
Family
ID=50503949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310681672.9A Active CN103746962B (zh) | 2013-12-12 | 2013-12-12 | 一种goose电力实时报文加解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103746962B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506500A (zh) * | 2014-12-11 | 2015-04-08 | 广东电网有限责任公司电力科学研究院 | 一种基于变电站的goose报文认证方法 |
CN104639328B (zh) * | 2015-01-29 | 2018-04-13 | 华南理工大学 | 一种goose报文认证方法及*** |
CN104639330B (zh) * | 2015-02-04 | 2018-01-16 | 华南理工大学 | 一种goose报文完整性认证方法 |
CN106452684A (zh) * | 2016-12-08 | 2017-02-22 | 广州科腾信息技术有限公司 | 一种iec61850报告数据传输报文的自校验方法 |
CN110138773B (zh) * | 2019-05-14 | 2022-01-11 | 北京天地和兴科技有限公司 | 一种针对goose攻击的防护方法 |
CN110224823B (zh) * | 2019-06-12 | 2021-02-23 | 湖南大学 | 变电站报文安全防护方法、装置、计算机设备和存储介质 |
CN112738023B (zh) * | 2020-12-08 | 2022-02-18 | 广州地铁集团有限公司 | 轨道交通变电所跨所域goose报文的安全传输方法 |
CN113489794A (zh) * | 2021-07-07 | 2021-10-08 | 智洋创新科技股份有限公司 | 一种变电站智能识别主站与智能站端设备的通信交互方法 |
CN113922945A (zh) * | 2021-08-27 | 2022-01-11 | 天津七所精密机电技术有限公司 | 一种基于关键信息的报文完整性认证方法 |
WO2024045095A1 (zh) * | 2022-08-31 | 2024-03-07 | 西门子股份公司 | 数据处理方法、电子设备及存储介质 |
CN115580557A (zh) * | 2022-09-22 | 2023-01-06 | 国家电网有限公司 | 一种基于计数序列分析的goose异常报文检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102315985A (zh) * | 2011-08-30 | 2012-01-11 | 广东电网公司电力科学研究院 | 采用ieee1588协议的智能装置时间同步精度测试方法 |
CN103036893A (zh) * | 2012-12-21 | 2013-04-10 | 国电南瑞科技股份有限公司 | 一种适用于智能变电站的一层网络数据处理方法 |
CN103096302A (zh) * | 2011-10-27 | 2013-05-08 | 华为技术有限公司 | 一种加密方法、解密方法和相关装置 |
CN103116940A (zh) * | 2013-01-24 | 2013-05-22 | 东南大学 | 一种跟踪数据加密方法及其传输*** |
CN103152322A (zh) * | 2013-01-28 | 2013-06-12 | 中兴通讯股份有限公司 | 数据加密保护方法及*** |
-
2013
- 2013-12-12 CN CN201310681672.9A patent/CN103746962B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102315985A (zh) * | 2011-08-30 | 2012-01-11 | 广东电网公司电力科学研究院 | 采用ieee1588协议的智能装置时间同步精度测试方法 |
CN103096302A (zh) * | 2011-10-27 | 2013-05-08 | 华为技术有限公司 | 一种加密方法、解密方法和相关装置 |
CN103036893A (zh) * | 2012-12-21 | 2013-04-10 | 国电南瑞科技股份有限公司 | 一种适用于智能变电站的一层网络数据处理方法 |
CN103116940A (zh) * | 2013-01-24 | 2013-05-22 | 东南大学 | 一种跟踪数据加密方法及其传输*** |
CN103152322A (zh) * | 2013-01-28 | 2013-06-12 | 中兴通讯股份有限公司 | 数据加密保护方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN103746962A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103746962B (zh) | 一种goose电力实时报文加解密方法 | |
Tsang et al. | YASIR: A low-latency, high-integrity security retrofit for legacy SCADA systems | |
Xin | A mixed encryption algorithm used in internet of things security transmission system | |
CN103841118B (zh) | 基于tcp有效载荷构建可靠双向隐蔽信道的方法 | |
CN111245862A (zh) | 一种物联网终端数据安全接收、发送的*** | |
Ji et al. | A novel covert channel based on length of messages | |
CN110224823B (zh) | 变电站报文安全防护方法、装置、计算机设备和存储介质 | |
CN107483192A (zh) | 一种基于量子通讯的数据传输方法及装置 | |
CN112511304A (zh) | 一种基于混合加密算法的电力数据隐私通信方法 | |
CN113312608B (zh) | 一种基于时间戳的电力计量终端身份认证方法及*** | |
CN103457939B (zh) | 一种实现智能密钥设备双向认证的方法 | |
CN105516204A (zh) | 一种高安全性网络数据存储方法 | |
CN104639328B (zh) | 一种goose报文认证方法及*** | |
WO2023236551A1 (zh) | 一种面向蜂窝基站的去中心化可信接入方法 | |
CN104010310B (zh) | 基于物理层安全的异构网络统一认证方法 | |
CN108650096A (zh) | 一种工业现场总线控制*** | |
CN113591109B (zh) | 可信执行环境与云端通信的方法及*** | |
CN109040120A (zh) | 一种基于iec61850标准的sv报文加密及解密方法 | |
CN111131213B (zh) | 一种r-goose电力报文的实现方法 | |
CN109995519A (zh) | 一种量子密钥流量服务方法与*** | |
CN107231628A (zh) | 一种适用于多应用场景的安全数据融合方法 | |
CN112039654A (zh) | 一种抵御中间人攻击的电表数据安全采集方法 | |
CN114826748B (zh) | 基于rtp、udp及ip协议的音视频流数据加密方法和装置 | |
CN110417804A (zh) | 一种适于单片机实现的双向身份认证加密通信方法及*** | |
CN116132156A (zh) | 一种面向智慧灯杆的可信认证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |