一种goose报文完整性认证方法

文档序号:8322041阅读:625来源:国知局
一种goose报文完整性认证方法
【技术领域】
[0001]本发明属于电力系统信息安全领域,具体涉及一种高效的GOOSE报文完整性认证方法。
【背景技术】
[0002]电力通信网络从独立的封闭系统,逐步发展为广域互联的开放系统,其边界范围和地理分布不断扩大,接入方式更加灵活,报文数据的安全性问题也日趋突出。尤其像GOOSE这类直接影响电力系统状态的重要报文,当其报文受到篡改时,可能带来灾难性的后果O
[0003]在电力系统通信网络中,面向通用对象的变电站事件(GOOSE, Generic ObjectOriented Substat1n Event)报文主要用于表征断路器的跳、合闸等操作命令和断路器位置信息等重要场合,其安全性、准确性、实时性很大程度上影响着电力系统运行的可靠性。而且,在以数字化变电站为代表的智能电网中得到越来越广泛的应用的背景下,G00SE电力报文有可能跨区域、跨电网传输,使得其更可能遭受窃听、攻击、篡改等入侵事件,其在电力信息安全方面的重要性愈发突出。
[0004]电力信息安全标准IEC62351建议对G00SE报文采用HMAC认证或数字签名以保障G00SE报文的完整性。但结合当前智能电子设备实际的运算和存储能力,基于非对称加密环节的数字签名方法难以满足G00SE等电力报文的4ms延时要求。因此,目前的G00SE安全算法研宄主要选择采用HMAC认证保障完整性。
[0005]HMAC认证算法通过引入密钥并设置两轮Hash运算实现认证运算,可有效保障报文的完整性,但对G00SE这类短报文而言效率并不高,并非最优的选择。不同于一般的网络报文,G00SE报文定义了严格的帧结构,包括细致的帧格式、APDU中所具有的显性长度域和同步性参数等。G00SE报文独特的报文结构,有助于避免一般带密钥HASH算法遭受长度扩展等攻击。结合G00SE报文域的特点以及表征的意义,寻求一种G00SE报文更有效的认证方法具有重要研宄价值。

【发明内容】

[0006]本发明的目的在于克服现有技术的缺点与不足,提供一种G00SE报文完整性认证方法,以提高认证效率,更好地适应电力系统高实时性要求。本发明方法基于选定的HASH函数(SHA256或MD5等函数),以密钥和消息作为输入,直接HASH运算生成消息摘要输出作为认证码。算法中只用到密钥和带认证消息的HASH运算,效率比HMAC更高。
[0007]为了达到上述目的,本发明采用的技术方案是:一种G00SE报文完整性认证方法,包括以下步骤:
[0008]S1、G00SE报文发送端认证过程:
[0009]S11、提取 G00SE 报文 APDU 中的 UtcTime、stNum、sqNum 关键信息,根据 UtcTime、stNum、sqNum顺序依次连接,形成关键信息报文段P2 ;
[0010]S12、删除GOOSE报文APDU中的UtcTime、stNum, sqNum关键信息以及CRC校验码域,形成非关键信息报文段Pl ;
[0011]S13、判断非关键信息报文段Pl是否与前一 GOOSE报文非关键信息一致,若一致则跳至步骤S15,否则执行步骤S14 ;
[0012]S14、利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对步骤S12所述报文段Pl进行Hash运算得Hash码Cl,将步骤Sll所述报文段P2附加到Cl末端,并再次进行Hash运算,得到最终Hash认证码C2,然后执行步骤S16 ;
[0013]S15、将步骤Sll所述报文段P2附加到前一 GOOSE报文APDU认证计算所得Hash码Cl'末端,利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对其进行Hash运算得到最终Hash认证码C2,然后执行步骤S16 ;
[0014]S16、将Hash认证码C2作循环冗余校验CRC32运算,得到32比特长度的循环冗余校验码,将其填充于GOOSE报文的CRC校验码域;
[0015]S2、GOOSE报文接收端认证过程:
[0016]S21、提取 GOOSE 报文 APDU 中的 UtcTime、stNum, sqNum 关键信息,根据 UtcTime、stNum、sqNum顺序依次连接,形成关键信息报文段P4 ;
[0017]S22、删除GOOSE报文APDU中的UtcTime、stNum, sqNum关键信息以及CRC校验码域,形成非关键信息报文段P3;
[0018]S23、利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对步骤S22所述报文段P3进行Hash运算得Hash码C3,将步骤S21所述报文段P4附加到C3末端,并再次进行Hash运算,得到最终Hash认证码C4 ;
[0019]S24、将步骤S23所得Hash认证码C4作循环冗余校验CRC32运算,得到32比特长度的循环冗余校验码,将其与接收到的GOOSE报文的CRC校验码域进行对比,若二者一致则认证成功,否则认证失败。
[0020]具体的,所述GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息是时间以及报文发送序号相关信息。
[0021]在认证算法和密钥长度一定时,降低GOOSE报文认证运算耗时的核心在于减少所需进行加密运算的报文的长度。分析GOOSE报文发送机制,GOOSE报文需重复、不定间隔发送,其中除了 stNum、sqNum等参数,GOOSE报文其他数据不变。再结合HASH运算算法按512bit长度对待运算数据进行分组,固定输入情况下输入不变,因此,可将变化的数据放与待运算数据末端,即可避免前面相同数据的HASH运算过程。
[0022]具体的,所述步骤S14中,得到最终Hash认证码C2的计算过程是:
[0023]Cl = Hash (key, PI);
[0024]C2 = Hash (Cl, P2);
[0025]其中,key表示发送端和接收端预先约定好的任意长度的密钥。
[0026]具体的,所述步骤S15中,得到最终Hash认证码C2的计算过程是:
[0027]C2 = Hash (Cl',P2);
[0028]其中,Cl'是前一 GOOSE报文非关键信息段Pl对应的Hash运算结果。
[0029]具体的,所述步骤S23中,得到最终Hash认证码C4的计算过程是:
[0030]C3 = Hash (key, P3);
[0031]C4 = Hash (C3, P4);
[0032]其中,key表示发送端和接收端预先约定好的任意长度的密钥。
[0033]本发明与现有技术相比,具有如下优点和有益效果:
[0034]本发明通过分析GOOSE报文特点以及发送机制,提取GOOSE报文APDU的UtcTime、stNum, sqNum关键信息,判断APDU其余非关键信息是否与前一 GOOSE报文APDU非关键信息一致,若一致,则根据前一 GOOSE报文APDU的非关键信息Hash结果,仅对上述关键信息进行Hash运算,在不降低报文信息安全性的前提下,避免对整个GOOSE报文的加解密,减少加解密算法的耗时。
【附图说明】
[0035]图1是本发明GOOSE报文发送端认证过程流程图。
[0036]图2是本发明GOOSE报文接收端认证过程流程图。
[0037]图3是GOOSE报文结构示意图。
【具体实施方式】
[0038]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0039]实施例1
[0040]GOOSE报文结构如图3所示,本实施例一种高效的GOOSE报文认证方法是针对GOOSE报文APDU域的认证,其余报文域不属于认证内容,此方法包括GOOSE报文发送端认证过程以及GOOSE报文接收端认证过程,下面分别结合图1、2对其进行具体说明。
[0041 ] 1、GOOSE报文发送端认证过程
[0042]参见图1,包括步骤如下:
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1