铁路信号系统中基于安全通信密文传输的通信方法及装置与流程

文档序号:31834431发布日期:2022-10-18 20:38阅读:45来源:国知局
铁路信号系统中基于安全通信密文传输的通信方法及装置与流程

1.本技术涉及通信技术领域,特别涉及一种铁路信号系统中基于安全通信密文传输的通信方法及装置。


背景技术:

2.随着信息技术的发展,网络攻击手段和病毒种类也愈发繁多,数据篡改和数据窃听等针对业务数据的攻击手段层出不穷,使得铁路信号系统在保障行车数据完整性和保密性方面面临新的挑战,因此,数据保密性、数据传输使用密文传输也迫在眉睫。


技术实现要素:

3.本技术提供一种铁路信号系统中基于安全通信密文传输的通信方法、装置、电子设备及存储设备,以解决相关技术中铁路信号系统的加密方式单一,导致数据的保密性较差,降低通信的安全性等问题。
4.本技术第一方面实施例提供一种铁路信号系统中基于安全通信密文传输的通信方法,包括以下步骤:获取铁路信号系统待传输的目标数据;根据第一预设置换加密策略对所述目标数据进行置换加密,得到第一加密结果,且对所述第一加密结果以预设分组加密策略进行分组加密,得到第二加密结果,并对所述第二加密结果以第二预设置换加密策略进行所述置换加密,得到第三加密结果;将所述第三加密结果发送至目标接收终端,以在所述目标接收终端依次解密所述第三加密结果、所述第二加密结果和所述第一加密结果后,得到所述目标数据。
5.可选地,所述根据第一预设置换加密策略对所述目标数据进行置换加密,得到第一加密结果,且对所述第一加密结果以预设分组加密策略进行分组加密,得到第二加密结果,并对所述第二加密结果以第二预设置换加密策略进行所述置换加密,得到第三加密结果,包括:初始化预设的会话密钥,并输入所述目标数据,其中,所述会话密钥用于sm4分组加密;利用所述s-box置换盒对所述目标数据进行数据置换,得到所述第一加密结果;利用所述sm4对所述第一加密结果进行分组加密,得到所述第二加密结果;利用所述s-box置换盒对所述第二加密结果进行数据置换,得到所述第三加密结果。
6.可选地,在利用所述s-box置换盒对所述目标数据进行数据置换,得到所述第一加密结果之前,还包括:获取所述目标数据的实际数据长度;判断所述实际数据长度是否满足预设加密条件,如果满足,则对所述目标数据进行置换加密,否则,生成加密故障提示。
7.本技术第二方面实施例提供一种铁路信号系统中基于安全通信密文传输的通信方法,包括以下步骤:接收目标发送终端发送的第三加密结果,其中,所述第三加密结果基于第二加密结果置换加密得到的,所述第二加密结果基于第一加密结果分组加密得到的;根据第一预设反置换解密策略对所述第三加密结果进行反置换解密,得到所述第二加密结果,根据预设分组解密策略对所述第二加密结果进行分组解密,得到所述第一加密结果,并根据第二预设反置换解密策略对所述第一加密结果进行所述反置换解密,得到所述目标数
据。
8.可选地,所述根据第一预设反置换解密策略对所述第三加密结果进行反置换解密,得到所述第二加密结果,根据预设分组解密策略对所述第二加密结果进行分组解密,得到所述第一加密结果,并根据第二预设反置换解密策略对所述第一加密结果进行所述反置换解密,得到所述目标数据,包括:利用预设的s-box置换盒对所述第三加密结果进行数据反置换,得到所述第二加密结果;利用所述sm4对所述第二加密结果进行分组解密,得到所述第一加密结果;利用所述s-box置换盒对所述第一加密结果进行数据反置换,得到所述目标数据。
9.本技术第三方面实施例提供一种铁路信号系统中基于安全通信密文传输的通信装置,包括:获取模块,用于获取铁路信号系统待传输的目标数据;加密模块,用于根据第一预设置换加密策略对所述目标数据进行置换加密,得到第一加密结果,且对所述第一加密结果以预设分组加密策略进行分组加密,得到第二加密结果,并对所述第二加密结果以第二预设置换加密策略进行所述置换加密,得到第三加密结果;发送模块,用于将所述第三加密结果发送至目标接收终端,以在所述目标接收终端依次解密所述第三加密结果、所述第二加密结果和所述第一加密结果后,得到所述目标数据。
10.本技术第四方面实施例提供一种铁路信号系统中基于安全通信密文传输的通信装置,包括:接收模块,用于接收目标发送终端发送的第三加密结果,其中,所述第三加密结果基于第二加密结果置换加密得到的,所述第二加密结果基于第一加密结果分组加密得到的;解密模块,用于根据第一预设反置换解密策略对所述第三加密结果进行反置换解密,得到所述第二加密结果,根据预设分组解密策略对所述第二加密结果进行分组解密,得到所述第一加密结果,并根据第二预设反置换解密策略对所述第一加密结果进行所述反置换解密,得到所述目标数据。
11.本技术第五方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的铁路信号系统中基于安全通信密文传输的通信方法。
12.本技术第六方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现如上述实施例所述的铁路信号系统中基于安全通信密文传输的通信方法。
13.由此,本技术至少具有如下有益效果:
14.通过三重加密技术对铁路信号系统的数据进行加密,可以有效提高加密复杂度,从而可以在保证通信效率和安全的前提下,将明文传输改为密文传输,提高数据的保密性的同时,提升数据通信的安全性,加密方式和配置多样,满足实际使用需要。由此,解决了相关技术中铁路信号系统的加密方式单一,导致数据的保密性较差,降低通信的安全性等技术问题。
15.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
16.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得
明显和容易理解,其中:
17.图1为根据本技术实施例提供的一种铁路信号系统中基于安全通信密文传输的通信方法的流程图;
18.图2为根据本技术实施例提供的rssp-i数据帧结构示意图;
19.图3为根据本技术实施例提供的三重加密的流程图;
20.图4为根据本技术实施例提供的s-box置换反置换函数处理流程图;
21.图5为根据本技术实施例提供的s-box置换盒16*256(16组每组256字节)置换(加密过程)原理示意图;
22.图6为根据本技术实施例提供的使用sm4加密解密函数处理流程示意图;
23.图7为根据本技术实施例提供的基于安全通信系统总体结构中在安全功能模块(采用rssp-i安全协议机制)前增加加解密模块后的结构示意图;
24.图8为根据本技术实施例提供的rssp-i加应用数据加密数据帧结构示意图;
25.图9为根据本技术实施例提供的会话密钥更新流程图;
26.图10为根据本技术实施例提供的一种铁路信号系统中基于安全通信密文传输的通信方法的流程图;
27.图11为根据本技术实施例提供的三重解密流程图;
28.图12为根据本技术实施例提供的s-box置换盒16*256(16组每组256字节)反置换(解密过程)原理示意图;
29.图13为根据本技术实施例的通过wireshark抓取数据示意图;
30.图14为根据本技术实施例的铁路信号系统中基于安全通信密文传输的通信加密装置的结构示意图;
31.图15为根据本技术实施例的铁路信号系统中基于安全通信密文传输的通信解密装置的结构示意图;
32.图16为根据本技术实施例的电子设备的结构示意图。
具体实施方式
33.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
34.下面参考附图描述本技术实施例的铁路信号系统中基于安全通信密文传输的通信方法、装置、电子设备及存储介质。针对上述背景技术中提到的相关技术中,相关技术中铁路信号系统的加密方式单一,导致数据的保密性较差,降低通信的安全性的问题,本技术提供了一种铁路信号系统中基于安全通信密文传输的通信方法,在该方法中,可以通过三重加密技术对铁路信号系统的数据进行加密,可以有效提高加密复杂度,从而可以在保证通信效率和安全的前提下,将明文传输改为密文传输,提高数据的保密性的同时,提升数据通信的安全性,加密方式和配置多样,满足实际使用需要。由此,解决了相关技术中铁路信号系统的加密方式单一,导致数据的保密性较差,降低通信的安全性等问题。
35.具体而言,图1为本技术实施例所提供的一种铁路信号系统中基于安全通信密文传输的通信方法的流程示意图。
36.如图1所示,该铁路信号系统中基于安全通信密文传输的通信方法包括以下步骤:
37.在步骤s101中,获取铁路信号系统待传输的目标数据。
38.其中,目标数据的数据结构可以例如如图2所示的rssp-i数据帧结构,也可以为其他结构等,可以根据实际传输的需求具体选择。以下实施例中,以rssp-i数据帧结构的数据作为待传输的数据,即本技术实施例的数据通信可以基于铁路安全通信rssp-i通信协议。
39.在步骤s102中,根据第一预设置换加密策略对目标数据进行置换加密,得到第一加密结果,且对第一加密结果以预设分组加密策略进行分组加密,得到第二加密结果,并对第二加密结果以第二预设置换加密策略进行置换加密,得到第三加密结果。
40.可以理解的是,本技术实施例可以在保证效率的前提下,使用三重加密技术提高数据的加密复杂度,提升通信的安全性。并为数据密文传输提供了一种可行的、高效的方式。
41.其中,第一设置换加密策略、预设分组加密策略和第二预设置换加密策略均可以通过配置选择,不作具体限定。
42.作为一种可能实现的方式,本技术实施例的根据第一预设置换加密策略对目标数据进行置换加密,得到第一加密结果,且对第一加密结果以预设分组加密策略进行分组加密,得到第二加密结果,并对第二加密结果以第二预设置换加密策略进行置换加密,得到第三加密结果,包括:初始化预设的会话密钥,并输入目标数据,其中,所述会话密钥用于sm4分组加密;利用s-box置换盒对目标数据进行数据置换,得到第一加密结果;利用sm4对第一加密结果进行分组加密,得到第二加密结果;利用s-box置换盒对第二加密结果进行数据置换,得到第三加密结果。
43.其中,sm4为国密sm4算法;预设的会话密钥和预设分组可以根据实际情况进行具体设置,对此不作具体限定。
44.可以理解的是,如图3所示,本技术实施例可以使用s-box置换盒输入数据置换加密,使用sm4进行分组加密,使用s-box置换盒输出数据置换加密,以实现三重加密。其中,由于s-box具有如下作用:第一个将应用数据转换成离散的数据,打破应用数据的规律;第二将相同的应用数据转换成不同的密文,进一步增强了数据的保密性和破解难度,因此,本技术实施例使用s-box盒旨在实现数据的非线性置换,达到快速高效加密的目的。
45.需要说明的是,本技术实施例的加密算法可通过配置选择,不仅可以使用基于sm4分组加密的三重加密方案,也可以使用单独的sm4分组加密,从而提供了多种加密方法,满足不同接口厂家加密算法不同的需要。在本技术实施例中,以三重加密方案为例。
46.具体而言,本技术实施例可以在安全层、应用层将数据打包完成后,在发送以太网数据前,发送方使用s-box盒置换完成第一次加密,加密完成后再使用sm4进行分组加密即第二次加密;使用sm4加密完成后,将输出数据在发送以太网数据前使用s-box置换加密,即将发送的数据进行第三次加密,经过三次加密后,将数据发送出去。
47.由此,本技术实施例将输入数据使用s-box将数据离散,将离散的数据再次使用sm4进一步深度的加密,大大提高了数据的加密强度,数据经过sm4加密后,将加密结果在以太网发送数据前再次使用s-box将数据离散,其中,数据离散的目的在于确保相同的输入明文(比如0x55、0x55等)置换出不同的密文数据。进行这三重加密算法,在没有过多影响效率的前提下,数据保密性和破解难度得到了极大的提高。解密过程是此逆向流程,将在以下实
施例阐述,此处不作过程描述。
48.下面将结合图4至图6对s-box置换盒的置换原理和使用sm4加密的流程进行阐述,具体如下:
49.1、如图4所示,s-box置换盒的置换加密原理如下:
50.数据置换开始;输入需要置换的数据;判断数据是否需要置换,如果不需要置换,则可以进入反置换流程,其中,反置换流程将在以下反置换实施例中进行具体阐述,在此不做过多叙述,因此本技术实施例此时可以设置故障提示码,并结束置换流程;如果需要置换,则可以使用s-box盒进行数据置换;输出置换后的数据,并结束置换流程。
51.在本技术实施例中,利用s-box置换盒对目标数据进行数据置换,得到第一加密结果之前,还包括:获取目标数据的实际数据长度;判断实际数据长度是否满足预设加密条件,如果满足,则对目标数据进行置换加密,否则,生成加密故障提示。
52.其中,预设加密条件可以根据实际情况具体设置或标定,不作具体限定。
53.可以理解的是,本技术实施例可以在加密之前,判断加密长度的合法性,如果不合法,则设置故障提示码,如果合法,则执行上述实施例的加密过程。
54.下面将以s-box置换盒16*256(16组每组256字节)置换加密过程为例,通过举例对置换加密原理进一步阐述,如图5所示,具体如下:
55.(1)s-box置换盒加密流程开始;
56.(2)输入需要加密的数据;
57.(3)判断此时加密数据长度是否合法,如果此时加密数据非法,则设置故障提示码,结束传输数据加密过程;如果此时加密数据合法,则进入步骤(4);
58.(4)执行0~n组循环之后,执行0~16分组循环,其中为x待加密的数据;
59.(5)使用sbox置换盒每16字节一组进行置换加密:
60.n《16组时:
61.第一组:第1字节从sbox(1)(x)开始置换,第2字节从sbox(2)(x)开始置换,直到第16个字节从sbox(16)(x)开始置换;
62.第二组:第1字节从sbox(2)(x)开始置换,第2字节从sbox(3)(x)开始置换,第15个字节从sbox(16)(x)开始置换,第16个字节从sbox(1)(x)开始置换;
63.第三组:第1字节从sbox(3)(x)开始置换,第2字节从sbox(4)(x)开始置换,第14个字节从sbox(16)(x)开始置换,第15个字节从sbox(1)(x)开始置换,第16个字节从sbox(2)(x)开始置换;
64.依次类推,当组数和字节数之和超过16时,开始从第一组sbox(1)(x)重新置换。
65.n》=16*n(1,2,3,,)组时:用16对n取余,按照0-15组进行置换,如第十六组按照第一组进行置换,第十七组按照第二组进行置换。
66.第十六组:第1字节从sbox(1)(x)开始置换,第16字节从sbox(16)(x)开始置换;
67.第n组:从sbox(n-16*n)(x)开始置换,第16-(n-16*n)字节从sbox(1)(x)置换。
68.(6)输出置换后的数据;
69.(7)执行0~16分组循环后,执行0~n组循环,结束传输数据加密过程。
70.基于上述原理,s-box盒置换数据举例如下:
71.输入明文数据为32字节的{0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,
0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67}。
72.s-box盒置换后的密文数据:
73.第0组:0xad,0xc4,0xbb,0x07,0xf3,0x0c,0x35,0xbf,0x03,0x38,0xd7,0x23,0x69,0xf5,0xf8,0xe2。
74.第1组:0xc4,0xbb,0x07,0xf3,0x0c,0x35,0xbf,0x03,0x38,0xd7,0x23,0x69,0xf5,0xf8,0xe2,0xad。
75.s-box盒反置换后的明文数据:
76.第0组:0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67。
77.第1组:0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67。
78.2、如图6所示,使用sm4加密的流程包括:
79.流程开始;输入需要加密或解密的数据;判断是否需要加密,如果不需要加密,则可以进入解密流程,其中,解密流程将在以下解密实施例中进行具体阐述,在此不做过多叙述;如果需要加密,则可以使用sm4对数据进行加密;得到加密后的数据并输出数据,流程结束。
80.由此,本技术实施例使用三重加密技术提高数据的加密复杂度,在保证安全和效率的前提下,将明文传输改为密文传输,提高数据的保密性;相同的输入明文或应用数据,每周期加密得到的密文数据也是在不断变化的,进一步提高数据的保密性以及破解的难度。
81.在具体应用时,以图2所示的rssp-i数据帧结构为例,本技术实施例可以将上述实施例的加密技术应用于图7所示的基于安全通信系统总体结构中在安全功能模块(采用rssp-i安全协议机制)前增加加解密模块后的结构示意图中,可以实现对图2所示数据帧结构的数据的加密与通信,且对rssp-i数据帧结构加密后的数据加密数据帧结构如图8所示。由此,本技术实施例可以应用于联锁系统中,基于铁路安全通信rssp-i通信协议应用基础上增加应用数据的加密,使得联锁系统与联锁系统间、联锁与列控系统间数据交互使用密文的传输,提高数据的保密性。其中,图8中的应用帧头格式共16字节,如表1所示:
82.表1
[0083][0084]
在步骤s103中,将第三加密结果发送至目标接收终端,以在目标接收终端依次解密第三加密结果、第二加密结果和第一加密结果后,得到目标数据。
[0085]
可以理解的是,本技术实施的解密过程是上述加密过程的逆向运算过程,将在以下实施例中进行具体解释或阐述,此处不作过多阐述。
[0086]
在本技术实施例中,在初始化预设的会话密钥之前,还包括:在检测处于会话密钥
更新阶段时,获取当前会话密钥,以及目标接收终端发送的第一序列号和第二序列号;判断当前会话密钥是否满足密钥更新条件;如果不满足,则使用当前会话密钥作为预设的会话密钥,否则,根据第一序列号和第二序列号按照预设组合策略组合得到新序列号;利用新序列号与当前会话密钥进行异或运算,得到新会话密钥,并使用新会话密钥作为预设的会话密钥。
[0087]
可以理解的是,本技术实施例可以采用一种会话密钥更新的方法,其更新时机是在两系统间通过传输的32位序列号及16位序列号不断变化中,将会话密钥周期性更新,正常通信过程中不会传递会话密钥。这样处理的优点是:首先,即使第三方窃取方抓取到两系统交互的数据,由于交互数据中没有会话密钥,也很难将数据破译;其次,即便窃取了两系统初始化时的会话密钥,由于正常交互的序号也是在不断变化的,序号通过一定的运算规则与初始的会话密钥进行运算得到新的会话密钥,新的会话密钥参与数据的加密,即会话密钥是周期性变化的;由此,对于窃听者来说,即便窃取到了数据,也很难将数据破译,且随系统重启、中断等时机的不同,会话密钥也会不断的更新,即便窃取到了初始化的会话密钥,解析出加密数据的可能性也很小。
[0088]
具体而言,如图9所示,本技术实施例的会话密钥更新过程如下:会话密钥更新过程开始,获取初始化的会话密钥,进一步获取当前32位系统运行周期流水号,并获取16位的数据打包序号,此时根据配置数据判断是否需要更新会话密钥,如果不更新,本技术实施例可以直接使用初始化的会话密钥,更新过程结束;如果需要更新,本技术实施例可以取32位序号低16位,取16位序号,组合出新的32位序号,接着使用组合,需要与初始会话密钥进行异或逻辑运算,运算后输出更新的会话密钥,使用更新后的会话密钥进行后续加密,至此会话密钥更新过程结束。
[0089]
需要说明的是,加密算法可通过配置选择:接收和发送(密钥不独立)使用相同的加密密钥或接收和发送(各自密钥相互独立)使用不同的加密密钥,满足对接收发送使用相同或不同加密密钥的需要;可以通过配置不同的通信id,选取不同的会话密钥对多个设备进行加密通信,满足多个通信设备通信时,使用不同的密钥通信的需要;可以使用固定的加密密钥或者使用可变的加密密钥,满足不同场景下加密强度要求的需要。
[0090]
根据本技术实施例提出的铁路信号系统中基于安全通信密文传输的通信方法,可以通过三重加密技术对铁路信号系统的数据进行加密,有效提高加密复杂度,从而可以在保证通信效率和安全的前提下,将明文传输改为密文传输,提高数据的保密性的同时,提升数据通信的安全性,加密方式和配置多样,满足实际使用需要。
[0091]
基于上一实施例,本技术实施例提供另一种铁路信号系统中基于安全通信密文传输的通信方法,用以说明如何进行数据解密,本实施例和上一实施例在描述内容上各有侧重,各实施例之间对于未尽述步骤可相互参考。
[0092]
如图10所示,该铁路信号系统中基于安全通信密文传输的通信方法包括以下步骤:
[0093]
在步骤s201中,接收目标发送终端发送的第三加密结果,其中,第三加密结果基于第二加密结果置换加密得到的,第二加密结果基于第一加密结果分组加密得到的。
[0094]
可以理解的是,如图4所示,本技术实施例的解密对象可以是上述三重加密后的加密结果;本技术实施例可以通过至少一种方式接收目标发送终端发送的第三加密结果,比
如本技术实施例可以基于铁路安全通信rssp-i通信协议接收等,对此不做具体限定。
[0095]
在步骤s202中,根据第一预设反置换解密策略对第三加密结果进行反置换解密,得到第二加密结果,根据预设分组解密策略对第二加密结果进行分组解密,得到第一加密结果,并根据第二预设反置换解密策略对第一加密结果进行反置换解密,得到目标数据。
[0096]
其中,预设分组可以根据实际情况进行具体设置等,对此不作具体限定。
[0097]
可以理解的是,如图11所示,本技术实施例可以提供一种逆向解密的方式,分别对应接收的第一重、第二重和第三重加密结果进行解密。
[0098]
具体而言,如图11所示,本技术实施例可以在传输数据解密开始,输入需要解密的数据;判断解密数据长度是否合法,如果解密数据长度非法,本技术实施例可以设置故障提示码,并结束传输数据解密流程;如果解密数据长度合法,本技术实施例可以使用s-box置换盒进行第一次解密;输出置换后的数据,使用sm4进行分组解密,即第二次解密;使用s-box置换盒输出sm4解密的数据进行置换解密,即第三次解密;传输数据解密结束。
[0099]
在本技术实施例中,根据第一预设反置换解密策略对第三加密结果进行反置换解密,得到第二加密结果,根据预设分组解密策略对第二加密结果进行分组解密,得到第一加密结果,并根据第二预设反置换解密策略对第一加密结果进行反置换解密,得到目标数据,包括:利用预设的s-box置换盒对第三加密结果进行数据反置换,得到第二加密结果;利用sm4对第二加密结果进行分组解密,得到第一加密结果;利用s-box置换盒对第一加密结果进行数据反置换,得到目标数据。
[0100]
下面将结合图4、图6和图12对s-box置换盒的反置换解密原理和使用sm4解密的流程进行阐述,具体如下:
[0101]
1、如图4所示,s-box置换盒的反置换解密原理如下:
[0102]
流程从数据置换流程开始,其中,置换加密流程可以如上述置换加密实施例所示,为避免冗余,不再赘述。本技术实施例的解密反置换流程可以判断输入数据是否需要解密反置换,如果此时不需要进行解密反置换,则设置故障提示码,结束流程;如果此时需要进行解密反置换,则使用s-box盒进行数据反置换,输出置换后的数据,结束流程。
[0103]
需要说明的是,如图4所示,本技术实施例可以在判断是否需要加密置换后进一步判断是否需要解密置换,以完成对两个流程的判断,输出数据,提升效率。
[0104]
下面将以s-box置换盒16*256(16组每组256字节)反置换解密过程为例,通过举例对反置换解密原理进一步阐述,如图12所示,具体如下:
[0105]
(1)传输数据解密开始;
[0106]
(2)输入需要解密的数据;
[0107]
(3)判断此时解密数据长度是否合法,如果数据非法,则设置故障提示码,结束过程;如果数据合法,则进入步骤(4);
[0108]
(4)执行0~n组循环和进一步执行0~16分组循环之后,进一步进入0~256循环;
[0109]
(5)使用sbox置换盒每16字节一组进行反置换解密:
[0110]
n《16组时:
[0111]
第一组:第1字节从sbox(1)(1)开始查找最大查询256次,查找成功并反置换;
[0112]
第二组:第1字节从sbox(2)(1)、第16字节从sbox(1)(1)开始查找并反置换;
[0113]
第三组:第1字节从sbox(3)(1)、第15字节从sbox(1)(1)、第16字节从sbox(2)(1)
开始查找并反置换;
[0114]
依次类推,当组数和字节数之和超过16时,开始从第一组sbox(1)(1)重新反置换。
[0115]
当n》=16*n(1,2,3,,)组时:用16对n取余,按照0-15组进行反置换,如第十六组按照第一组进行查找并置换,第十七组按照第二组进行查找反置换。
[0116]
第十六组:第1字节从sbox(1)(1)开始查找,查找成功并反置换;
[0117]
第n组:从sbox(n-16*n)(1)始查找,第16-(n-16*n)字节从sbox(1)(1)查找并反置换。
[0118]
(6)将置换后的数据输出;
[0119]
(7)执行输出后的数据进入0~256循环并进一步执行0~16分组循环之后,执行0~n组循环,结束数据解密过程。
[0120]
基于上述原理,s-box盒置换加密后的数据以及反置换解密后的数据示例如下:
[0121]
输入明文数据为32字节的{0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99}。
[0122]
置换加密后的数据以及反置换解密后的数据如下:
[0123]
s-box置换后的数据:
[0124]
第0组:0xed,0xe8,0x71,0x62,0xef,0x9e,0x6d,0x36,0xb6,0xeb,0x82,0x63,0x05,0x88,0x2d,0xd0。
[0125]
第1组:0xe8,0x71,0x62,0xef,0x9e,0x6d,0x36,0xb6,0xeb,0x82,0x63,0x05,0x88,0x2d,0xd0,0xed。
[0126]
反置换后的数据:
[0127]
第0组:0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99。
[0128]
第1组:0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99。
[0129]
输入数据为32字节{0x01,0x23,0x45,0x67,0x89,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35,0x36}。
[0130]
s-box置换后的数据:
[0131]
第0组:0x0e,0x26,0x79,0x07,0xd1,0x9c,0xcf,0x21,0x87,0x72,0xbe,0xb4,0x31,0x49,0x9b,0x7b。
[0132]
第1组:0x5a,0x29,0x25,0xad,0xad,0xdc,0xen,0xa0,0xfe,0xf2,0x6e,0xef,0xn8,0x05,0xa7,0xf8。
[0133]
反置换后的数据:
[0134]
第0组:0x01,0x23,0x450x67,0x89,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20。
[0135]
第1组:0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35,0x36。
[0136]
2、如图6所示,使用sm4解密的流程包括:
[0137]
数据加密解密开始,判断输入数据不需要加密,其中,加密流程可以如上述加密实施例所示,在此不做具体阐述;本技术实施例使用sm4分组解密流程可以进一步判断输入数据是否需要解密,此时如果需要解密,则使用sm4对数据进行解密,输出解密后的数据,结束流程;如果此时不需要解密,则设置故障提示码,结束流程。
[0138]
根据本技术实施例提出的铁路信号系统中基于安全通信密文传输的通信方法,可以对使用三重加密技术得到的加密数据进行依次解密,在保证通信效率和安全的前提下,将密文解密为明文,保证了数据的保密性和完整性,提升数据通信的安全性,满足实际使用需要。
[0139]
基于上述实施例的加密和解密过程,下面将对加密和解密的实施例中应用的相关函数进行阐述,具体如下:
[0140]
1、函数定义:uint8_td sm4_ssencodeordecode(const uint8_td pu8datain[],uint16_td u16len,uint8_td pu8dataout[],const bool_td bencode,uint8_td u8commid,bool_td bsbox,bool_td bsend,uint32_td u32seq,bool_td bupdatamk)
[0141]
功能:数据加密或解密处理
[0142]
参数:pu8datain[in]:输入数据
[0143]
u16len[in]:输入数据长度
[0144]
pu8dataout[out]:输出数据
[0145]
bencode[in]:加密、解密标志
[0146]
u8commid[in]:输入通信id 0~15
[0147]
bsbox[in]:是否需要置换加密true:三重置换加解密,false:一重加解密
[0148]
bsend[in]:接收还是发送true:发送,false:接收
[0149]
u32seq[in]:序列号
[0150]
bupdatamk[in]:是否更新会话密钥true:更新,false:不更新接收
[0151]
2、函数定义:static void getframeetsm4(uint8_td pu8input[],uint8_td pu8output[],uint8_td u8gourpsum,const bool_td bencode,uint8_td u8commid,bool_td bsbox)
[0152]
功能:使用sm4分组算法数据加密或数据解密
[0153]
参数:pu8datain[in]:输入数据
[0154]
u8gourpsum[in]:数据分组数,16字节一组
[0155]
pu8output[out]:输出数据
[0156]
bencode[in]:加密、解密标志
[0157]
u8commid[in]:输入通信id 0~15
[0158]
bsbox[in]:三重置换或一重加密true:三重置换加解密,false:一重加解密
[0159]
bsend[in]:接收还是发送true:发送,false:接收
[0160]
u32seq[in]:序列号
[0161]
bupdatamk[in]:是否更新会话密钥true:更新,false:不更新接收
[0162]
3、函数定义:static uint8_p sm4_getcalinputdata(const uint8_td pu8datain[],uint16_td u16len,uint8_p pu8groupsum)
[0163]
功能:计算分组数
[0164]
参数:pu8datain[in]:输入数据
[0165]
u16len[in]:输入数据长度
[0166]
u8gourpsum[out]:数据分组数,16字节一组
[0167]
4、函数定义:uint8_td sm4_sssboxorfsbox(const uint8_td pu8datain[],uint16_td u16len,uint8_td pu8dataout[],constbool_td bencode)
[0168]
功能:s-box置换或s-box反置换处理
[0169]
参数:pu8datain[in]:输入数据
[0170]
u16len[in]:输入数据长度
[0171]
pu8dataout[out]:输出数据
[0172]
bencode[in]:加密还是解密true:加密,false:解密
[0173]
5、函数定义:void sm4_sssboxencode(const uint8_td pu8datain[],uint8_td pu8dataout[],uint8_td u8groupsum,bool_td bencode)
[0174]
功能:数据置换处理
[0175]
参数:pu8datain[in]:输入数据
[0176]
pu8dataout[out]:输出数据
[0177]
pu8groupsum[in]:分组数
[0178]
bencode[in]:加密还是解密true:加密,false:解密
[0179]
6、函数定义:void sm4_sssboxdecode(const uint8_td pu8datain[],uint8_td pu8dataout[],uint8_td u8groupsum,bool_td bencode)
[0180]
功能:数据反置换处理
[0181]
参数:pu8datain[in]:输入数据
[0182]
pu8dataout[out]:输出数据
[0183]
pu8groupsum[in]:分组数
[0184]
bencode[in]:加密还是解密true:加密,false:解密
[0185]
在一些实施例中,本技术实施例还可以对上述实施例的加密以及解密过程进行封装成库,保留一个接口函数,方面工程化快速开发、移植和维护,缩短信号系统开发周期和系统维护成本。其中,封装库示例如下:
[0186]
(1)、代码文件封装为sm4模块:
[0187]
sm4.c文件:sm4加密算法的封装;
[0188]
sm4app.c文件:加密、解密处理,置换、反置换处理,数据长度分组计算;
[0189]
sm4.h文件:内部函数声明;
[0190]
sm4_api.h文件:接口函数声明;
[0191]
sbox.h文件:s-box盒定义。
[0192]
(2)、window版单机版封装结果:et_sm4.lib。
[0193]
(3)、现场板卡真实机器版封装结果:libilc_sm4.a、libilc_sm4app.a。
[0194]
由此,本技术实施例的加密和解密方案具有如下有益效果:
[0195]
1、为数据密文传输提供了一种可行的、高效的解决方案。
[0196]
2、在保证安全和效率的前提下,将明文传输改为密文传输,提高数据的保密性;相同的输入明文或应用数据,每周期加密得到的密文数据也是在不断变化的,进一步提高数
据的保密性,提高了数据可破解的难度。
[0197]
3、在保证效率的前提下,使用三重加密技术,大大提高了数据的可破解难度,保证了数据安全。
[0198]
4、本发明应用于联锁系统中,在基于铁路安全通信rssp-i通信协议应用基础上增加应用数据的加密,使得联锁系统与联锁系统间、联锁系统与列控系统间数据交互使用密文的传输,提高数据的保密性。
[0199]
5、加密算法可通过配置选择:使用单独的sm4分组加密或使用基于sm4分组加密的三重加密方案,提供了多种加密方法,满足不同接口厂家加密算法不同的需要。
[0200]
6、加密算法可通过配置选择:接收和发送(密钥不独立)使用相同的加密密钥或接收和发送(各自密钥相互独立)使用不同的加密密钥,满足对接收发送使用相同或不同加密密钥的需要。
[0201]
7、加密算法可通过配置选择:通过配置不同的通信id,选取不同的会话密钥对多个设备进行加密通信,满足多个通信设备通信时,使用不同的密钥通信的需要。
[0202]
8、加密算法可通过配置选择:使用固定的加密密钥或者使用可变的加密密钥,满足不同场景下加密强度要求的需要。
[0203]
9、封装成库,仅保留一个接口函数,方面工程化快速开发、移植和维护,缩短信号系统开发周期和系统维护成本。
[0204]
基于上述实施例的加密和解密方案,下面将通过一个具体应用实例进行进一步阐述:
[0205]
1、交互过程:
[0206]
发送方发送密文报文,通过以太网传输密文数据;接收方接收到以太网传输密文数据,对接收数据进行解密,解密完成后校验数据,数据校验成功解析出应用数据。
[0207]
2、发送方发送的应用数据:
[0208]
原始数据:{0x55u,0x23u,0x45u,0x67u,0x89u,0xabu,0xcdu,0xefu,0xfeu,0xdcu,0xbau,0x98u,0x76u,0x54u,0x32u,0x10u}。
[0209]
3、发送方发送的通信数据通过wireshark抓取数据如图13所示,此时的传输的密钥数据:
[0210]
0000 01,80,02,d6,02,d4,4c,07,00,00,28,00,17,80,5b,40。
[0211]
0010 0f,11,34,ed,00,20,11,11,00,00,00,00,15,e5,f5,7d。
[0212]
0020 d4,62,ff,ff,2b,86,c9,98,2c,49,df,a6,49,da,fb,f3。
[0213]
0030 75,a4,00,57,f6,0c。
[0214]
对以上数据的解析如下表2所示。
[0215]
表2
[0216][0217]
4、接收方对接收到的数据进行解析,解密出原始数据。以下是不同周期的数据,其中表红框的为其中举例中一个周期的数据,序号为:15、e5、f5、7d、d4、62。对密文数据2b,86,c9,98,2c,49,df,a6,49,da,fb,f3,75,a4,00,57进行解析,解析出的明文数据:{0x55u,0x23u,0x45u,0x67u,0x89u,0xabu,0xcdu,0xefu,0xfeu,0xdcu,0xbau,0x98u,0x76u,0x54u,0x32u,0x10u}。
[0218]
图14是本技术实施例的铁路信号系统中基于安全通信密文传输的通信加密装置的方框示意图。
[0219]
如图14所示,该铁路信号系统中基于安全通信密文传输的通信加密装置10包括:获取模块110、加密模块120和发送模块130。
[0220]
其中,获取模块110用于获取铁路信号系统待传输的目标数据;加密模块120用于根据第一预设置换加密策略对目标数据进行置换加密,得到第一加密结果,且对第一加密结果以预设分组加密策略进行分组加密,得到第二加密结果,并对第二加密结果以第二预设置换加密策略进行置换加密,得到第三加密结果;发送模块130用于将第三加密结果发送至目标接收终端,以在目标接收终端依次解密第三加密结果、第二加密结果和第一加密结果后,得到目标数据。
[0221]
需要说明的是,前述对铁路信号系统中基于安全通信密文传输的通信方法的加密过程的实施例的解释说明也适用于该实施例的铁路信号系统中基于安全通信密文传输的通信加密装置,此处不再赘述。
[0222]
根据本技术实施例提出的铁路信号系统中基于安全通信密文传输的通信加密装置,可以通过三重加密技术对铁路信号系统的数据进行加密,有效提高加密复杂度,从而可以在保证通信效率和安全的前提下,将明文传输改为密文传输,提高数据的保密性的同时,提升数据通信的安全性,加密方式和配置多样,满足实际使用需要。
[0223]
基于上一实施例,本技术实施例提供另一种铁路信号系统中基于安全通信密文传输的通信装置,用以说明如何进行数据解密,本实施例和上一实施例在描述内容上各有侧重,各实施例之间对于未尽述步骤可相互参考。
[0224]
图15是本技术实施例的铁路信号系统中基于安全通信密文传输的通信解密装置的方框示意图。
[0225]
如图15所示,该铁路信号系统中基于安全通信密文传输的通信解密装置20包括:接收模块210和解密模块220。
[0226]
其中,接收模块210用于接收目标发送终端发送的第三加密结果,其中,第三加密结果基于第加密结果置换加密得到的,第二加密结果基于第一加密结果分组加密得到的;
解密模块220用于根据第一预设反置换解密策略对第三加密结果进行反置换解密,得到第二加密结果,根据预设分组解密策略对第二加密结果进行分组解密,得到第一加密结果,并根据第二预设反置换解密策略对第一加密结果进行反置换解密,得到目标数据。
[0227]
需要说明的是,前述对铁路信号系统中基于安全通信密文传输的通信方法的解密过程的实施例的解释说明也适用于该实施例的铁路信号系统中基于安全通信密文传输的通信解密装置,此处不再赘述。
[0228]
根据本技术实施例提出的铁路信号系统中基于安全通信密文传输的通信装置,可以通过三重加密技术对铁路信号系统的数据进行加密,有效提高加密复杂度,从而可以在保证通信效率和安全的前提下,将明文传输改为密文传输,提高数据的保密性的同时,提升数据通信的安全性,加密方式和配置多样,满足实际使用需要。
[0229]
图16为本技术实施例提供的电子设备的结构示意图。该电子设备可以包括:
[0230]
存储器1601、处理器1602及存储在存储器1601上并可在处理器1602上运行的计算机程序。
[0231]
处理器1602执行程序时实现上述实施例中提供的铁路信号系统中基于安全通信密文传输的通信方法。
[0232]
进一步地,电子设备还包括:
[0233]
通信接口1603,用于存储器1601和处理器1602之间的通信。
[0234]
存储器1601,用于存放可在处理器1602上运行的计算机程序。
[0235]
存储器1601可能包含高速ram(random access memory,随机存取存储器)存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
[0236]
如果存储器1601、处理器1602和通信接口1603独立实现,则通信接口1603、存储器1601和处理器1602可以通过总线相互连接并完成相互间的通信。总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component,外部设备互连)总线或eisa(extended industry standard architecture,扩展工业标准体系结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图16中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0237]
可选的,在具体实现上,如果存储器1601、处理器1602及通信接口1603,集成在一块芯片上实现,则存储器1601、处理器1602及通信接口1603可以通过内部接口完成相互间的通信。
[0238]
处理器1602可能是一个cpu(central processing unit,中央处理器),或者是asic(application specific integrated circuit,特定集成电路),或者是被配置成实施本技术实施例的一个或多个集成电路。
[0239]
本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的铁路信号系统中基于安全通信密文传输的通信方法。
[0240]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的
技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0241]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0242]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0243]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列,现场可编程门阵列等。
[0244]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0245]
尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1