基于国密算法的安全通信方法及装置与流程
未命名
08-29
阅读:101
评论:0

1.本技术涉及dcs实时通信安全领域,具体涉及一种基于国密算法的安全通信方法、一种基于国密算法的安全通信装置、一种处理器及一种机器可读存储介质。
背景技术:
2.工业控制系统(industrial control system,ics)包括集散控制系统(distributed control systems,dcs),监控和数据采集系统(supervisory control and data acquisition,scada)等,是工业控制领域的关键一环,ics的安全、稳定运行是正常生产活动的前提。ics广泛应用于火电、水电、核电、新能源等关键基础设施中。随着工业化和信息化的推进,有许多新技术已经应用到了工业控制系统中,在提高了生产效率的同时,也不可避免的增加了系统的复杂度,引入了更多的网络安全问题。ics系统的安全、稳定运行关乎正常的生产活动,一旦ics系统遭到攻击或入侵,极易引起重大的生产安全事故,带来巨大人员、财产损失。
3.dcs是ics系统中一种常用于火电的工业控制系统,dcs通信协议工作在tcp/ip的应用层,主要应用于封闭的局域网络中,协议设计之初以实时性和稳定性为首要目标,对信息安全问题考虑较少。dcs各站间相互通信时使用明文传输数据,不进行身份认证,也不会对数据的完整性进行检测。从协议可以分析出其存在以下缺陷:1、易形成重放攻击:攻击者可重复发送监听到的数据包给接收端,从而影响运行稳定性。2.易泄露:数据包无加密机制,攻击者可直接获取dcs系统通信数据。3.易被篡改、伪造:攻击者通过监听获取到的数据包,分析伪造数据包或将其数据部分篡改,然后发送到dcs网络中,扰乱正常数据,实现攻击目的。现有的dcs系统多采用明文通信安全性差,且加密方案实时性差不能满足dcs毫秒级的要求。
技术实现要素:
4.本技术实施例的目的是提供一种基于国密算法的安全通信方法及装置,对dcs通信协议进行安全防护,在对通信速度影响不大的前提下,能够从协议的源头防止协议数据被伪造及窃取。
5.为了实现上述目的,本技术第一方面提供一种基于国密算法的安全通信方法,应用于发送端,所述方法在自定义协议的头部增加验证字段,所述方法包括:
6.获取待发送通信数据和所述待发送通信数据的第一标识字段;
7.使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值;
8.将所述第一标识字段摘要值填充到验证字段,获得验证数据;
9.使用第二国密算法的第一设定工作模式对所述待发送通信数据进行第一加密运算处理,获得第一密文;
10.使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所
述第一密文进行第二加密运算处理,获得第二密文;
11.将第二密文发送给接收端。
12.在本技术实施例中,所述方法还包括:
13.若在设定时间内未收到接收端返回的应答包,则将第二密文重新发送给接收端;
14.若重新发送第二密文的次数超过设定次数但仍未收到接收端返回的应答包,则转入异常处理流程。
15.在本技术实施例中,所述使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值,包括:
16.使用sm3算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值。
17.在本技术实施例中,所述使用第二国密算法的第一设定工作模式对所述待发送通信数据进行第一加密运算处理,获得第一密文,包括:
18.使用sm4算法的cbc工作模式对待发送通信数据进行第一加密运算处理,获得第一密文。
19.在本技术实施例中,使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文,包括:
20.使用sm4算法的ctr工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文。
21.在本技术实施例中,使用sm4算法的cbc工作模式对待发送通信数据进行第一加密运算处理,获得第一密文,包括:
22.获取来自于密钥分配中心分发的第一共享密钥k1;
23.对所述第一共享密钥k1进行解密,获得解密后的第一初始密钥k1’;
24.对所述解密后的第一初始密钥k1’进行密钥扩展运算,得到第一初始扩展密钥sk1;
25.对所述待发送通信数据和所述第一初始扩展密钥sk1进行轮函数运算,获得第一密文。
26.在本技术实施例中,使用sm4算法的ctr工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文,包括:
27.获取来自于密钥分配中心分发的第二共享密钥k2;
28.对所述第二共享密钥k2进行解密,获得解密后的第二初始密钥k2’;
29.对所述解密后的第二初始密钥k2’进行密钥扩展运算得到第二初始扩展密钥sk2;
30.对所述第一标识字段、所述验证数据、所述第一密文和所述第二初始扩展密钥sk2进行轮函数运算,获得第二密文。
31.本技术第二方面提供一种基于国密算法的安全通信方法,应用于接收端,所述方法包括:
32.使用第二国密算法的第二设定工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文;
33.使用第一国密算法对第二标识字段进行计算,获得第二标识字段摘要值;
34.判断所述第二标识字段摘要值与所述验证数据是否相等;若不相等,则丢弃所述
第二标识字段、验证数据和第一密文;若相等,则使用第二国密算法的第一设定工作模式对所述第一密文进行第二解密运算处理,获得通信数据。
35.在本技术实施例中,所述使用第二国密算法的第二设定工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文,包括:
36.使用sm4算法的ctr工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文。
37.在本技术实施例中,所述若相等,所述使用第二国密算法的第一设定工作模式对所述第一密文进行第二解密运算处理,获得通信数据,包括:
38.使用sm4算法的cbc工作模式对所述第一密文进行第二解密运算处理,获得通信数据。
39.本技术第三方面提供一种基于国密算法的安全发送端,所述发送端包括:
40.获取模块,用于获取待发送通信数据和所述待发送通信数据的第一标识字段;
41.第一计算模块,用于使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值;
42.填充模块,用于将所述第一标识字段摘要值填充到验证字段,获得验证数据;
43.第一加密模块,用于使用第二国密算法的第一设定工作模式对所述待发送通信数据进行第一加密运算处理,获得第一密文;
44.第二加密模块,用于使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文;
45.发送模块,用于将第二密文发送给接收端。
46.本技术第四方面提供一种基于国密算法的安全接收端,所述接收端包括:
47.第一解密模块,用于使用第二国密算法的第二设定工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文;
48.第二计算模块,用于使用第一国密算法对第二标识字段进行计算,获得第二标识字段摘要值;
49.第二解密模块,用于判断所述第二标识字段摘要值与所述验证数据是否相等;若不相等,则丢弃所述第二标识字段、验证数据和第一密文;若相等,则使用第二国密算法的第一设定工作模式对所述第一密文进行第二解密运算处理,获得通信数据。
50.本技术第五方面提供一种处理器,被配置成执行上述的基于国密算法的安全通信方法。
51.本技术第六方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行上述的基于国密算法的安全通信方法。
52.与现有技术相比,本发明的上述技术方案具有如下有益效果:
53.本技术提供一种基于国密算法的安全通信方法及装置,所述方法通过在dcs自定义协议中增加安全验证字段,设计数据确认及重发机制来验证信息的完整性及防止重放攻击;采用国产密码算法对通信数据进行双重加密,保证通信数据的机密性。从而保障了工业控制系统可用性、完整性、机密性。
54.本技术实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
55.附图是用来提供对本技术实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本技术实施例,但并不构成对本技术实施例的限制。在附图中:
56.图1示意性示出了根据本技术实施例的基于国密算法的安全通信方法的dcs加密通信应用环境示意图;
57.图2示意性示出了根据本技术实施例的dcs三层防护结构示意图;
58.图3示意性示出了根据本技术实施例的基于国密算法的安全通信方法发送端的流程示意图;
59.图4示意性示出了根据本技术实施例的基于国密算法的安全通信方法接收端的流程示意图;
60.图5示意性示出了根据本技术实施例的基于国密算法的安全发送端的结构框图;
61.图6示意性示出了根据本技术实施例的基于国密算法的安全接收端的结构框图。
具体实施方式
62.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本技术实施例,并不用于限制本技术实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
63.需要说明,若本技术实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
64.dcs通信协议工作在tcp/ip的应用层,主要应用于封闭的局域网络中。本技术提供的基于国密算法的安全通信方法,可以应用于如图1所示的应用环境中。发送端与接收端通过网络进行通信。其中,发送端可以是上位机或者控制器,接收端也可以是上位机或者控制器。
65.图3示意性示出了根据本技术实施例的基于国密算法的安全通信方法发送端的流程示意图。如图3所示,在本技术一实施例中,提供了一种基于国密算法的安全通信方法,本实施例主要以该方法应用于上述图1中的发送端来举例说明,包括以下步骤:
66.步骤110,获取待发送通信数据和所述待发送通信数据的第一标识字段。
67.步骤120,使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值。
68.dcs通信采用udp协议,udp是osi(open system interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的不可靠信息传输服务,具有协议简单,传输开销小,吞吐效率高的特征,适合于局域网的通信环境。dcs厂商大多数采用此通
信协议,但此协议还存在丢包和乱序的可能,因此需要具备一些安全机制。
69.本实施例在自定义协议中增加了验证字段,验证字段用于各站对通信数据的校验。在自定义协议中增加验证字段能够在一定程度上防止篡改和重放攻击。在本实施例中,第一国密算法指的是sm3算法。如图2所示,待发送通信数据(即dcs数据包)分为头部和载荷两部分,在数据包的头部增加验证字段,验证字段存储第一标识字段摘要值;其中,第一标识字段包括发送端信息、接收端信息、发送时间(时间戳)、序号、随机数等信息。发送端采用摘要算法对第一标识字段进行计算,获得第一标识字段摘要值;其中,摘要算法使用安全性相对较高的sm3算法。采用sm3算法对第一标识字段进行计算,能够保证计算效率和完整性。
70.步骤130,将所述第一标识字段摘要值填充到验证字段,获得验证数据。
71.在本实施例中,发送端将步骤110计算得到的第一标识字段摘要值填充到验证字段,验证字段内填充的第一标识字段摘要值即验证数据。
72.步骤140,使用第二国密算法的第一设定工作模式对所述待发送通信数据进行第一加密运算处理,获得第一密文。
73.在本实施例中,第二国密算法指的是sm4算法,第一设定工作模式指的是cbc工作模式。使用sm4算法的cbc工作模式对待发送通信数据进行第一加密运算处理,获得第一密文。
74.示例性地,待发送通信数据可以是通信指令,例如:dcs操作指令。通信指令作为工业系统中的关键信息,一旦被获取篡改下发到控制器,将造成极其严重的后果。本实施例选取操作系统资源开销较小且自主可控的国密sm4算法,对dcs操作指令进行对称加密,实现保密传输。对比sm4算法的五种工作模式的优缺点,结合被加密数据特征,选取cbc模式作为此层数据加密算法的工作模式,增加了破解难度。
75.步骤150,使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文。
76.在本实施例中,第二国密算法指的是sm4算法,第二设定工作模式指的是ctr工作模式。使用sm4算法的ctr工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文。
77.在本实施例中,使用sm4算法的ctr工作模式对udp通信协议载荷部分(第一标识字段、验证数据和第一密文)进行加密,能够保证通信过程中密文传输的可靠性,能够保护重要信息,防止被破解,进一步提高了dcs的通信安全性。
78.步骤160,将第二密文发送给接收端。在本实施例中,发送端将步骤140得到的第二密文发送给接收端。
79.图3为一个实施例中基于国密算法的安全通信方法发送端的流程示意图。应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
80.在一个实施例中,所述方法还包括:
81.若发送端在设定时间内未收到接收端返回的应答包,则将第二密文重新发送给接收端;若发送端重新发送第二密文的次数超过设定次数但仍未收到接收端返回的应答包,则发送端转入异常处理流程。
82.在本实施例中,增加返回确认和超时重发机制,能够保证传输的可靠性。通信失败时进行数据重发,既解决了udp不可靠传输的问题,还保证了发送速率。
83.在一个实施例中,使用sm4算法的cbc工作模式对待发送通信数据进行第一加密运算处理,获得第一密文,包括:
84.获取来自于密钥分配中心分发的第一共享密钥k1;
85.对所述第一共享密钥k1进行解密,获得解密后的第一初始密钥k1’;
86.对所述解密后的第一初始密钥k1’进行密钥扩展运算得到第一初始扩展密钥sk1;
87.对所述待发送通信数据和所述第一初始扩展密钥sk1进行轮函数运算,获得第一密文。
88.在一个实施例中,使用sm4算法的ctr工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文,包括:
89.获取来自于密钥分配中心分发的第二共享密钥k2;
90.对所述第二共享密钥k2进行解密,获得解密后的第二初始密钥k2’;
91.对所述解密后的第二初始密钥k2’进行密钥扩展运算得到第二初始扩展密钥sk2;
92.对所述第一标识字段、所述验证数据、所述第一密文和所述第二初始扩展密钥sk2进行轮函数运算,获得第二密文。
93.通信加密可采用非对称加密算法实现,但能不满足dcs系统毫秒级通信要求。本实施例采用国密sm4算法对称密码算法,几乎不影响通信时效性。
94.图4示意性示出了根据本技术实施例的基于国密算法的安全通信方法接收端的流程示意图。如图4所示,在本技术一实施例中,提供了一种基于国密算法的安全通信方法,本实施例主要以该方法应用于上述图1中的接收端端来举例说明,包括以下步骤:
95.步骤210,使用第二国密算法的第二设定工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文。
96.在本实施例中,第二国密算法指的是sm4算法,第二设定工作模式指的是ctr工作模式。使用sm4算法的ctr工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文。
97.步骤220,使用第一国密算法对第二标识字段进行计算,获得第二标识字段摘要值。
98.在本实施例中,第一国密算法指的是sm3算法。接收端收到来自发送端的第二密文,经过步骤210处理之后,基于第二标识字段采用sm3算法计算得到第二标识字段摘要值。
99.步骤230,判断所述第二标识字段摘要值与所述验证数据是否相等;若不相等,则丢弃所述第二标识字段、验证数据和第一密文;若相等,则使用第二国密算法的第一设定工作模式对所述第一密文进行第二解密运算处理,获得通信数据。
100.在本实施例中,第二国密算法指的是sm4算法,第一设定工作模式指的是cbc工作模式。步骤220计算出的第二标识字段摘要值用于和接收到的验证数据进行比较,若步骤220计算出的第二标识字段摘要值和接收到的验证数据不相等,那么验证失败,进入丢弃流
程。若步骤220计算出的第二标识字段摘要值和接收到的验证数据相等,那么验证成功,验证成功之后下一步使用sm4算法的cbc工作模式对所述第一密文进行第二解密运算处理,获得通信数据。
101.图4为一个实施例中基于国密算法的安全通信方法接收端的流程示意图。应该理解的是,虽然图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
102.下面以上位机下发操作指令到控制器为例,介绍其加解密流程。上位机与控制器得到由kdc分发的第二层共享密钥k1,第三层共享密钥k2后,利用共享密钥k1,k2分别对操作指令、明文数据包进行加密,实现密文传输:
103.(一)上位机发送密文操作指令过程如下:
104.(1)数据产生
105.操作员使用上位机操作产生控制命令,控制命令包含标识flag、操作指令cmdnum等明文数据。
106.(2)验证字段填充
107.第一层防护是将标识flag作为输入,运用sm3算法进行摘要运算得到摘要值,填充验证字段。
108.(3)自定义协议载荷加密
109.a.共享密钥k1通过上位机内置的主密钥key解密得到解密后的初始密钥分别为k1’。
110.b.k1’作为输入参数进行密钥扩展运算得到sk1。
111.c.第二层防护将操作指令cmdnum和sk1作为输入参数进行轮函数运算得到操作指令cmdnum’。对自定义协议载荷部分进行加密处理,即对控制指令加密,保证数据通信过程的保密性。
112.(4)udp协议载荷加密
113.a.共享密钥k2通过上位机内置的主密钥key解密得到解密后的初始密钥分别为k2’。
114.b.k2’作为输入参数进行密钥扩展运算得到sk2。
115.c.第三层防护将m=flag||hashvalue||cmdnum’和sk2作为输入参数进行轮函数运算得到密文m’。对udp协议载荷部分进行加密处理,保证数据密文传输。
116.(5)密文发送
117.将密文m’发送至控制器。
118.(二)控制器解密密文操作指令过程如下:
119.(1)udp协议载荷解密
120.a.控制器使用收到m’,使用获得的共享密钥k2,经过主密钥key解密后得到k2’。
121.b.k2’作为输入参数进行密钥扩展运算得到sk2。
122.c.将m’和sk2作为输入进行解密运算得到明文m。
123.(2)验证字段校验
124.得到标识flag及验证字段hashvalue,使用sm3算法计算hashvalue摘要值为hashvalue’,将hashvalue’与接收到的hashvalue比较,校验无误则进行步骤(3),否则进入丢弃流程。
125.(3)自定义协议载荷解密
126.a.使用获得的共享密钥k1,经过主密钥key解密后得到k1’。
127.b.k1’作为输入参数进行密钥扩展运算得到sk1。
128.c.由步骤(2)可知数据未被破坏,从而获得操作指令cmdnum’,将操作指令cmdnum’和sk2作为输入参数进行解密运算,从而获得明文操作指令cmdnum。
129.(4)控制器执行操作指令。
130.本实施例提供的基于国密算法的安全通信方法,解决了网络传输过程中数据完整性、机密性等问题。一是在dcs自定义协议中增加安全验证字段,设计数据确认及重发机制来验证信息的完整性及防止重放攻击。二是采用国产密码sm4算法对通信数据进行双重加密,保证通信数据的机密性。从而保障了工业控制系统可用性、完整性、机密性。
131.在一个实施例中,如图5所示,提供了一种基于国密算法的安全发送端,包括获取模块310、第一计算模块320、填充模块330、第一加密模块340、第二加密模块350以及发送模块360,其中:
132.获取模块310,用于获取待发送通信数据和所述待发送通信数据的第一标识字段;
133.第一计算模块320,用于使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值;
134.填充模块330,用于将所述第一标识字段摘要值填充到验证字段,获得验证数据;
135.第一加密模块340,用于使用第二国密算法的第一设定工作模式对所述待发送通信数据进行第一加密运算处理,获得第一密文;
136.第二加密模块350,用于使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文;
137.发送模块360,用于将第二密文发送给接收端。
138.在一个实施例中,如图6所示,提供了一种基于国密算法的安全接收端,包括第一解密模块410、第二计算模块420以及判断及第二解密模块430,其中:
139.第一解密模块410,用于使用第二国密算法的第二设定工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文;
140.第二计算模块420,用于使用第一国密算法对第二标识字段进行计算,获得第二标识字段摘要值;
141.第二解密模块430,用于判断所述第二标识字段摘要值与所述验证数据是否相等;若不相等,则丢弃所述第二标识字段、验证数据和第一密文;若相等,则使用第二国密算法的第一设定工作模式对所述第一密文进行第二解密运算处理,获得通信数据。
142.所述基于国密算法的安全发送端以及接收端包括处理器和存储器,上述获取模块310、第一计算模块320、填充模块330、第一加密模块340、第二加密模块350、发送模块360、第一解密模块410、第二计算模块420和第二解密模块430等均作为程序单元存储在存储器
中,由处理器执行存储在存储器中的上述程序模块中实现相应的功能。
143.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现基于国密算法的安全通信方法。
144.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
145.本技术实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述基于国密算法的安全通信方法。
146.本技术实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,对于发送端,处理器执行程序时实现以下步骤:
147.步骤110,获取待发送通信数据和所述待发送通信数据的第一标识字段;
148.步骤120,使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值;
149.步骤130,将所述第一标识字段摘要值填充到验证字段,获得验证数据;
150.步骤140,使用第二国密算法的第一设定工作模式对所述待发送通信数据进行第一加密运算处理,获得第一密文;
151.步骤150,使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文;
152.步骤160,将第二密文发送给接收端。
153.在一个实施例中,所述方法还包括:
154.若发送端在设定时间内未收到接收端返回的应答包,则将第二密文重新发送给接收端;
155.若发送端重新发送第二密文的次数超过设定次数但仍未收到接收端返回的应答包,则发送端转入异常处理流程。
156.在一个实施例中,所述使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值,包括:
157.使用sm3算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值。
158.在一个实施例中,所述使用第二国密算法的第一设定工作模式对所述待发送通信数据进行第一加密运算处理,获得第一密文,包括:
159.使用sm4算法的cbc工作模式对待发送通信数据进行第一加密运算处理,获得第一密文。
160.在一个实施例中,使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文,包括:
161.使用sm4算法的ctr工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文。
162.在一个实施例中,使用sm4算法的cbc工作模式对待发送通信数据进行第一加密运算处理,获得第一密文,包括:
163.获取来自于密钥分配中心分发的第一共享密钥k1;
164.对所述第一共享密钥k1进行解密,获得解密后的第一初始密钥k1’;
165.对所述解密后的第一初始密钥k1’进行密钥扩展运算得到第一初始扩展密钥sk1;
166.对所述待发送通信数据和所述第一初始扩展密钥sk1进行轮函数运算,获得第一密文。
167.在一个实施例中,使用sm4算法的ctr工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文,包括:
168.获取来自于密钥分配中心分发的第二共享密钥k2;
169.对所述第二共享密钥k2进行解密,获得解密后的第二初始密钥k2’;
170.对所述解密后的第二初始密钥k2’进行密钥扩展运算得到第二初始扩展密钥sk2;
171.对所述第一标识字段、所述验证数据、所述第一密文和所述第二初始扩展密钥sk2进行轮函数运算,获得第二密文。
172.本技术实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,对于接收端,处理器执行程序时实现以下步骤:
173.步骤210,使用第二国密算法的第二设定工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文;
174.步骤220,使用第一国密算法对第二标识字段进行计算,获得第二标识字段摘要值;
175.步骤230,判断所述第二标识字段摘要值与所述验证数据是否相等;若不相等,则丢弃所述第二标识字段、验证数据和第一密文;若相等,则使用第二国密算法的第一设定工作模式对所述第一密文进行第二解密运算处理,获得通信数据。
176.在一个实施例中,所述使用第二国密算法的第二设定工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文,包括:
177.使用sm4算法的ctr工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文。
178.在一个实施例中,所述若相等,所述使用第二国密算法的第一设定工作模式对所述第一密文进行第二解密运算处理,获得通信数据,包括:
179.若相等,使用sm4算法的cbc工作模式对所述第一密文进行第二解密运算处理,获得通信数据。
180.本技术针对udp通信的不足,结合dcs自身特性,设计了三层安全防护方案,既保留了udp无需建立连接,传输快的特性,又从多维度保障通信安全可靠。
181.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
182.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
183.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
184.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
185.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
186.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
187.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
188.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
189.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种基于国密算法的安全通信方法,应用于发送端,其特征在于,所述方法在自定义协议的头部增加验证字段,所述方法包括:获取待发送通信数据和所述待发送通信数据的第一标识字段;使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值;将所述第一标识字段摘要值填充到验证字段,获得验证数据;使用第二国密算法的第一设定工作模式对所述待发送通信数据进行第一加密运算处理,获得第一密文;使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文;将第二密文发送给接收端。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若在设定时间内未收到接收端返回的应答包,则将第二密文重新发送给接收端;若重新发送第二密文的次数超过设定次数但仍未收到接收端返回的应答包,则转入异常处理流程。3.根据权利要求1所述的方法,其特征在于,所述使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值,包括:使用sm3算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值。4.根据权利要求1所述的方法,其特征在于,所述使用第二国密算法的第一设定工作模式对所述待发送通信数据进行第一加密运算处理,获得第一密文,包括:使用sm4算法的cbc工作模式对待发送通信数据进行第一加密运算处理,获得第一密文。5.根据权利要求1所述的方法,其特征在于,使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文,包括:使用sm4算法的ctr工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文。6.根据权利要求4所述的方法,其特征在于,使用sm4算法的cbc工作模式对待发送通信数据进行第一加密运算处理,获得第一密文,包括:获取来自于密钥分配中心分发的第一共享密钥k1;对所述第一共享密钥k1进行解密,获得解密后的第一初始密钥k1’;对所述解密后的第一初始密钥k1’进行密钥扩展运算,得到第一初始扩展密钥sk1;对所述待发送通信数据和所述第一初始扩展密钥sk1进行轮函数运算,获得第一密文。7.根据权利要求5所述的方法,其特征在于,使用sm4算法的ctr工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文,包括:获取来自于密钥分配中心分发的第二共享密钥k2;对所述第二共享密钥k2进行解密,获得解密后的第二初始密钥k2’;对所述解密后的第二初始密钥k2’进行密钥扩展运算,得到第二初始扩展密钥sk2;对所述第一标识字段、所述验证数据、所述第一密文和所述第二初始扩展密钥sk2进行
轮函数运算,获得第二密文。8.一种基于国密算法的安全通信方法,应用于接收端,其特征在于,所述方法包括:使用第二国密算法的第二设定工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文;使用第一国密算法对第二标识字段进行计算,获得第二标识字段摘要值;判断所述第二标识字段摘要值与所述验证数据是否相等;若不相等,则丢弃所述第二标识字段、验证数据和第一密文;若相等,则使用第二国密算法的第一设定工作模式对所述第一密文进行第二解密运算处理,获得通信数据。9.根据权利要求8所述的方法,其特征在于,所述使用第二国密算法的第二设定工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文,包括:使用sm4算法的ctr工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文。10.根据权利要求8所述的方法,其特征在于,所述若相等,所述使用第二国密算法的第一设定工作模式对所述第一密文进行第二解密运算处理,获得通信数据,包括:使用sm4算法的cbc工作模式对所述第一密文进行第二解密运算处理,获得通信数据。11.一种基于国密算法的安全发送端,其特征在于,所述发送端包括:获取模块,用于获取待发送通信数据和所述待发送通信数据的第一标识字段;第一计算模块,用于使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值;填充模块,用于将所述第一标识字段摘要值填充到验证字段,获得验证数据;第一加密模块,用于使用第二国密算法的第一设定工作模式对所述待发送通信数据进行第一加密运算处理,获得第一密文;第二加密模块,用于使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文;发送模块,用于将第二密文发送给接收端。12.一种基于国密算法的安全接收端,其特征在于,所述接收端包括:第一解密模块,用于使用第二国密算法的第二设定工作模式对接收到的第二密文进行第一解密运算处理,获得第二标识字段、验证数据和第一密文;第二计算模块,用于使用第一国密算法对第二标识字段进行计算,获得第二标识字段摘要值;第二解密模块,用于判断所述第二标识字段摘要值与所述验证数据是否相等;若不相等,则丢弃所述第二标识字段、验证数据和第一密文;若相等,则使用第二国密算法的第一设定工作模式对所述第一密文进行第二解密运算处理,获得通信数据。13.一种处理器,其特征在于,被配置成执行权利要求1至7中任一项所述的基于国密算法的安全通信方法,或权利要求8至10中任一项所述的基于国密算法的安全通信方法。14.一种机器可读存储介质,该机器可读存储介质上存储有指令,其特征在于,该指令在被处理器执行时使得所述处理器被配置成执行权利要求1至7中任一项所述的基于国密算法的安全通信方法,或权利要求8至10中任一项所述的基于国密算法的安全通信方法。
技术总结
本申请实施例提供一种基于国密算法的安全通信方法及装置,属于DCS实时通信安全领域。对于发送端,所述方法包括:使用第一国密算法对待发送通信数据的第一标识字段进行计算,获得第一标识字段摘要值;将第一标识字段摘要值填充到验证字段,获得验证数据;使用第二国密算法的第一设定工作模式对待发送通信数据进行第一加密运算处理,获得第一密文;使用第二国密算法的第二设定工作模式对所述第一标识字段、所述验证数据和所述第一密文进行第二加密运算处理,获得第二密文;将第二密文发送给接收端。本申请通过在DCS自定义协议中增加安全验证字段以及采用国产密码算法对通信数据进行双重加密,从而保障了工业控制系统可用性、完整性、机密性。机密性。机密性。
技术研发人员:杨立业 王朝辉 刘利 翟婉波 袁富 姚慧卿 常伟
受保护的技术使用者:国能智深控制技术有限公司
技术研发日:2023.04.19
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/