[发明专利]一种GOOSE报文认证方法及系统有效
申请号: | 201510047772.5 | 申请日: | 2015-01-29 |
公开(公告)号: | CN104639328B | 公开(公告)日: | 2018-04-13 |
发明(设计)人: | 梁梅;黎永昌;王智东 | 申请(专利权)人: | 华南理工大学 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L1/00 |
代理公司: | 广州市华学知识产权代理有限公司44245 | 代理人: | 罗观祥 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 goose 报文 认证 方法 系统 | ||
1.一种GOOSE报文认证方法,其特征在于,所述GOOSE报文认证方法将可变的数据放在待运算数据末端,包括下列步骤:
创建GOOSE认证报文,判断当前GOOSE报文与前一GOOSE报文中应用协议数据单元APDU的非关键信息是否一致,其中,所述非关键报文信息指的是GOOSE报文中应用协议数据单元APDU除了顺序计数sqNum域以外的所有信息,若一致则直接引用前一GOOSE报文中应用协议数据单元APDU的非关键信息的对应认证码配合当前GOOSE报文中应用协议数据单元APDU的关键信息通过HMAC运算生成整体认证码,其中,所述关键信息指的是GOOSE报文中应用协议数据单元APDU的顺序计数sqNum域,若不一致则首先生成当前GOOSE报文中应用协议数据单元APDU的非关键信息对应认证码,随后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码;将所述整体认证码作循环冗余校验后生成校验码填充于当前GOOSE报文的帧校验码域后完成GOOSE认证报文创建;
验证GOOSE认证报文,首先生成当前GOOSE报文中应用协议数据单元APDU的非关键信息对应认证码,然后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码,将整体认证码做循环冗余检验生成校验码后与当前GOOSE报文帧校验码域内容进行对比,若二者一致则认证通过,否则认证失败;所述创建GOOSE认证报文的步骤具体为:
S11、提取当前GOOSE报文中应用协议数据单元APDU的关键信息,生成第一关键信息报文段P2;
S12、删除所述当前GOOSE报文中的所述关键信息,生成第一非关键信息报文段P1;
S13、判断所述第一非关键信息报文段P1是否与前一GOOSE报文中应用协议数据单元APDU的非关键信息一致,若一致则跳至S15,否则转入步骤S14;
S14、利用事先选定的密钥及哈希函数,对所述第一非关键信息报文段P1进行HMAC运算得到第一认证码C1,将所述第一关键信息报文段P2附加到所述第一认证码C1末端形成第二认证码C2,利用所述密钥及哈希函数对所述第二认证码C2进行HMAC运算得到第一整体认证码C01,跳至步骤S16;
S15、将所述第一关键信息报文段P2附加到前一GOOSE报文中应用协议数据单元APDU的非关键信息报文段进行HMAC运算所得第三认证码C3末端形成第四认证码C4,利用步骤S14中所述密钥及哈希函数对所述第四认证码C4进行HMAC运算得到第一整体认证码C01,跳至步骤S16;
S16、将所述第一整体认证码C01作循环冗余校验,并将所得校验码K01填充于所述GOOSE报文的帧校验码域,完成GOOSE认证报文的创建;所述验证GOOSE认证报文的步骤具体为:
S21、提取待验证的GOOSE认证报文中应用协议数据单元APDU的所述关键信息,生成第二关键信息报文段P4;
S22、删除所述待验证的GOOSE认证报文中的所述关键信息,生成第二非关键信息报文段P3;
S23、利用步骤S14中所述密钥及哈希函数,对所述第二非关键信息报文段P3进行HMAC运算得到第五认证码C5,将第二关键信息报文段P4附加到所述第五认证码C5末端形成第六认证码C6,利用步骤S14中所述密钥及哈希函数对所述第六认证码C6进行HMAC运算得到第二整体认证码C02;
S24、将所述第二整体认证码C02做循环冗余校验得校验码K02,校验码K02与所述待验证的GOOSE认证报文的帧校验码域进行对比,若二者一致则验证成功,否则验证失败。
2.根据权利要求1所述的一种GOOSE报文认证方法,其特征在于,所述密钥是长度在16至128Byte之间的字符串。
3.根据权利要求1所述的一种GOOSE报文认证方法,其特征在于,所述哈希函数是MD2或MD4或MD5或SHA-1或SHA-224或SHA-256或SHA-384或SHA-512。
4.一种GOOSE报文认证系统,其特征在于,所述GOOSE报文认证系统将可变的数据放在待运算数据末端,包括下列模块:
创建GOOSE认证报文模块,该模块用于判断当前GOOSE报文与前一GOOSE报文中应用协议数据单元APDU的非关键信息是否一致,其中,所述非关键报文信息指的是GOOSE报文中应用协议数据单元APDU除了顺序计数sqNum域以外的所有信息,若一致则直接引用前一GOOSE报文中应用协议数据单元APDU的非关键信息的对应认证码配合当前GOOSE报文中应用协议数据单元APDU的关键信息通过HMAC运算生成整体认证码,其中,所述关键信息指的是GOOSE报文中应用协议数据单元APDU的顺序计数sqNum域;若不一致则首先生成当前GOOSE报文中应用协议数据单元APDU的非关键信息对应认证码,随后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码;将所述整体认证码作循环冗余校验后生成校验码填充于当前GOOSE报文的帧校验码域后完成GOOSE认证报文创建;
验证GOOSE认证报文模块,该模块首先生成当前GOOSE报文中应用协议数据单元APDU的非关键信息对应认证码,然后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码,将整体认证码做循环冗余检验生成校验码后与当前GOOSE报文帧校验码域内容进行对比,若二者一致则认证通过,否则认证失败;
所述创建GOOSE认证报文模块包括:
第一关键信息报文段生成单元,该单元用于提取当前GOOSE报文中应用协议数据单元APDU的关键信息,生成第一关键信息报文段P2;
第一非关键信息报文段生成单元,该单元用于删除所述当前GOOSE报文中的所述关键信息,生成第一非关键信息报文段P1;
第一判断单元,该单元用于判断所述第一非关键信息报文段P1是否与前一GOOSE报文中应用协议数据单元APDU的非关键信息一致,若一致则跳至整体认证码第二生成单元,否则转入整体认证码第一生成单元;
整体认证码第一生成单元,该单元利用事先选定的密钥及哈希函数,对所述第一非关键信息报文段P1进行HMAC运算得到第一认证码C1,将所述第一关键信息报文段P2附加到所述第一认证码C1末端形成第二认证码C2,利用所述密钥及哈希函数对所述第二认证码C2进行HMAC运算得到第一整体认证码C01,跳至校验码填充单元;
整体认证码第二生成单元,该单元用于将所述第一关键信息报文段P2附加到前一GOOSE报文中应用协议数据单元APDU的非关键信息报文段进行HMAC运算所得第三认证码C3末端形成第四认证码C4,利用所述密钥及哈希函数对所述第四认证码C4进行HMAC运算得到第一整体认证码C01,跳至校验码填充单元;
校验码填充单元,该单元用于将所述第一整体认证码C01作循环冗余校验,并将所得校验码K01填充于所述GOOSE报文的帧校验码域,完成GOOSE认证报文的创建;
所述验证GOOSE认证报文模块包括:
第二关键信息报文段生成单元,该单元用于提取待验证的GOOSE认证报文中应用协议数据单元APDU的所述关键信息,生成第二关键信息报文段P4;
第二非关键信息报文段生成单元,该单元用于删除所述待验证的GOOSE认证报文中的所述关键信息,生成第二非关键信息报文段P3;
整体认证码第三生成单元,该单元利用所述密钥及哈希函数,对所述第二非关键信息报文段P3进行HMAC运算得到第五认证码C5,将第二关键信息报文段P4附加到所述第五认证码C5末端形成第六认证码C6,利用中所述密钥及哈希函数对所述第六认证码C6进行HMAC运算得到第二整体认证码C02,
第二判断单元,该单元用于将所述第二整体认证码C02做循环冗余校验得校验码K02,校验码K02与所述待验证的GOOSE认证报文的帧校验码域进行对比,若二者一致则验证成功,否则验证失败。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510047772.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车保险杠的制备方法
- 下一篇:一种防治心血管病的组合物