一种对数据帧加密的方法、解密的方法及装置
技术领域
本发明属于铁路通信领域,特别涉及一种对数据帧加密的方法、解密的方法及装置。
背景技术
CTCS是Chinese Train Control System的英文缩写,中文意为中国列车运行控制系统。该系统有两个子系统,即车载子系统和地面子系统。CTCS根据功能要求和设配置划分应用等级,分为0~4级。
CTCS应用等级0(CTCS-0):由通用机车信号+列车运行监控装置组成。
CTCS应用等级1(CTCS-1):由主体机车信号+安全型运行监控记录装置组成,点式信息作为连续信息的补充,可实现点连式超速防护功能。
CTCS应用等级2(CTCS-2):是基于轨道传输信息并采用车-地一体化系统设计的列车运行控制系统。可实现行指-联锁-列控一体化、区间-车站一体化、通信-信号一体化和机电一体化。
CTCS应用等级3(CTCS-3):是基于无线传输信息并采用轨道电路等方式检查列车占用的列车运行控制系统。点式设备主要传送定位信息。
CTCS应用等级4(CTCS-4):是完全基于无线传输信息的列车运行控制系统。地面可取消轨道电路,由RBC和车载验证系统共同完成列车定位和完整性检查,实现虚拟闭塞或移动闭塞。
其中,CTCS-1由主体机车信号+加强型运行监控装置组成,面向160km/h及以下的区段,在既有设备基础上强化改造,达到机车信号主体化要求,增加点式设备,实现列车运行安全监控功能。利用轨道电路完成列车占用检测及完整性检查,连续向列车传送控制信息。
1级的控制模式为目标距离式,采取大贮存的方式把线路数据全部贮存在车载设备中,靠逻辑推断地址调取所需的线路数据,结合列车性能计算给出目标距离式制动曲线。在车站附近增加点式信息设备,传输定位信息,以减少逻辑推断地址产生错误的可能性。
1级与0级的差别在于全面提高了系统的安全性,是对0级的全面加强,可称为线路数据全部贮存在车载设备上的列车运行控制系统。
传统的CTCS-1中,车地信息是地面子系统通过GSM-R(Global System for MobileCommunications–Railway,是一项用于铁路通信及应用的国际无线通信标准)向车载子系统发送报文,属于公网传输。信息的格式、内容或编码不受限制,没有考虑到信息传输的私密性和网络负载攻击等信息安全问题,在信息传输的时候仅仅通过数据帧的帧头、帧尾进行防护,对所传输的具体信息没有特殊的防护,导致信息的安全得不到保障;而且现有技术中的报文信息传输的效率较慢,会产生延迟的现象,影响信息的及时传递。
基于此,本方案提出一种对数据帧加密的方法及装置、解密的方法及装置。
发明内容
针对上述问题,本发明提供了:
一种对数据帧加密的方法,所述方法包括:
对数据帧的部分字段通过加密算法进行加密形成密文区,其中,
所述数据帧包括帧头、密文区、密文循环冗余校验码。
进一步地,所述密文区包括报文信息和明文循环冗余校验码。
进一步地,所述密文区还包括预留区。
进一步地,所述加密算法包括国密算法的SM4算法或三重数据加密算法。
进一步地,所述对数据帧加密包括:
将待加密的字段通过SM4算法的密钥规则进行加密,得到密文区;
在密文区前面添加帧头;
在密文区后面添加密文循环冗余校验码。
一种对数据帧加密的装置,所述装置包括:
加密部件,用于对数据帧的部分字段通过加密算法进行加密形成密文区,其中,
所述数据帧包括帧头、密文区、密文循环冗余校验码。
进一步地,所述密文区包括报文信息和明文循环冗余校验码。
进一步地,所述密文区还包括预留区。
进一步地,所述加密算法包括国密算法的SM4算法或三重数据加密算法。
进一步地,所述加密部件对所述数据帧加密包括:
将待加密的字段通过SM4算法的密钥规则进行加密,得到密文区;在密文区前面添加帧头;
在密文区后面添加密文循环冗余校验码。
一种对数据帧解密的方法,所述方法包括:
对数据帧的密文区解密形成明文,其中,
所述数据帧包括帧头、密文区、密文循环冗余校验码。
进一步地,所述密文区包括报文信息和明文循环冗余校验码。
进一步地,所述密文区还包括预留区。
进一步地,所述解密算法包括国密算法的SM4算法或三重数据加密算法。
进一步地,所述对加密后的数据帧解密包括:
读取所述数据帧的帧头;
判断密文循环冗余校验码是否符合预设;
如果是,则通过SM4算法的密钥规则进行解密,得到明文;
判断明文循环冗余校验码是否符合预设;
如果是,则获得报文信息。
一种对数据帧解密的装置,所述装置包括:
解密部件,用于对数据帧的密文区解密形成明文,其中,
所述数据帧包括帧头、密文区、密文循环冗余校验码。
进一步地,所述密文区包括报文信息和明文循环冗余校验码。
进一步地,所述密文区还包括预留区。
进一步地,所述解密算法包括国密算法的SM4算法或三重数据加密算法。
进一步地,所述解密部件对加密后的数据帧解密包括:
读取所述数据帧的帧头;
判断密文循环冗余校验码是否符合预设;
如果是,则通过SM4算法的密钥规则进行解密,得到明文;
判断明文循环冗余校验码是否符合预设;
如果是,则获得报文信息。
本发明的一种对数据帧加密的方法、解密的方法及装置,通过对通信数据帧结构的重新设计,使通信数据帧结构包括明文循环冗余校验码和密文循环冗余校验码,并使用特定的算法对通信数据帧进行加密、解密,使通信数据帧在进行报文信息传输的过程中具有多重安全防护,且效率高,保证了信息传递的即时性。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据现有技术的数据帧结构;
图2示出了本发明的通信数据帧结构;
图3示出了根据本发明实施例加密完成的通信数据帧结构;
图4示出了根据本发明实施例报文信息加密传输流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
CTCS是Chinese Train Control System的英文缩写,中文意为中国列车运行控制系统。该系统有两个子系统,即车载子系统和地面子系统。传统的CTCS-1中,车地信息是地面子系统通过GSM-R(Global System for Mobile Communications–Railway,是一项用于铁路通信及应用的国际无线通信标准)向车载子系统发送报文,所传输的报文是直接使用3DES(是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称,它相当于是对每个数据块应用三次DES加密算法)算法加密,属于公网传输。而且CTCS-1单元所采用车地通信机制属于EN50159-2和国标GB24339.2标准规定的开放式传输系统。信息的格式、内容或编码不受限制,现有技术中的报文传输的通信数据结构为如图1所示的帧头、报文和帧尾的结构,其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包。在发送设备将数据帧发送出去之后,接受设备只需要验证帧头和帧尾的信息就可以读取到报文数据的具体内容,没有考虑到信息传输的私密性和网络负载攻击等信息安全问题,而且现有技术中的报文信息传输的效率较慢,会产生延迟的现象,影响信息的及时传递。
为此需要对CTCS-1中车地信息的高效传输的同时进行有效的安全防护。
为了解决上述问题,本发明提出一种对数据帧加密的方法、解密的方法及装置,以保证在车载子系统和地面子系统传输报文信息时的信息安全。
所述方法包括:
步骤一:重新设计通信数据帧结构。
具体来说,如图2所示,重新设计后的通信数据帧结构为:帧头,密文区,密文循环冗余校验码;
其中,密文区具体包括报文信息和明文循环冗余校验码。
更进一步的,密文区还包括预留区。预留区主要作用是扩展或者扩充,
SM4算法长度为128bit,若待传输的通信数据帧的密文区中的报文信息长度不足128bit时,则由预留区补充。即使补充也是为全零的数据,没有实际作用,仅为满足128bit,进行传输。同时预留区的作用也为以后的开发作预留区域。
如图2所示,重新设计后的通信数据帧的结构为帧头,密文区,密文循环冗余校验码;其中密文区的两端分别为帧头和密文区循环冗余校验码,密文区内部为通过选定的加密算法加密之后的报文信息、明文循环冗余校验码和预留区。
步骤二:对通信数据帧的密文区进行加密并发送。
具体来说,对通信数据帧的加密是通过三重数据加密算法或国密算法完成的,此步骤中的对数据帧的加密的执行主体是加密部件,所述加密部件设置于CTCS-1单元中地面子系统中。
密码学中,三重数据加密算法(英语:Triple Data Encryption Algorithm,缩写为TDEA,Triple DEA),或称3DES(Triple DES),是一种对称密钥加密块密码,相当于是对每个数据块应用三次数据加密标准(DES)算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击。
3DES使用“密钥包”,其包含3个DES密钥,K1,K2和K3,均为56位(除去奇偶校验位)。加密算法为:
密文=EK3(DK2(EK1(平文)))
也就是说,使用K1为密钥进行DES加密,再用K2为密钥进行DES“解密”,最后以K3进行DES加密。
国密即国家密码局认定的国产密码算法,即商用密码。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。
SM4.0(原名SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。相关标准为“GM/T 0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。
在商用密码体系中,SM4主要用于数据加密,其算法公开,是一种分组算法,其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字为单位进行加密运算,每轮使用一个轮密钥。
SM4算法由32次迭代运算和1次反序变换R组成。
加密算法的运算过程如下:
(1)32次迭代运算:Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki),i=0,1,…31;
(2)反序变换:(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=(X35,X34,X33,X32)。
在实际使用的过程中因为国密算法的安全性本身较高的特点,同时因为国密算法中SM4算法本身的优点:设计简沽,处理速度快、安全高效,则优选国密算法的SM4算法对重新设计的通信数据帧的密文区进行加密。
选择SM4算法更加能够体现传输安全,且延时小、实现简单的特点。
同时,本申请也是首次将国密算法对报文进行加密,并应用在车载子系统和地面子系统的信息传输过程中。
示例性的,采用国密算法中的SM4对密文区进行加密,即通过选定完成的加密算法SM4对传输数据进行加密,加密完成的通信数据帧结构如图3所示,包括帧头、密文区和密文循环冗余校验码。
其中,帧头和密文循环冗余校验码为不加密的明文状态输出,帧头中设计有序列号和地址标识,可对重复、删除、插入、重排序等安全通信问题进行防护,密文区为加密状态,对所要传输的报文数据进行加密防护。
通过选定的加密方法对要传输的报文信息进行加密之后,地面子系统中的地面发送部件将具备了重新设计之后的通信数据帧发送给车载子系统,并由车载子系统中的车载接收部件接收通信数据帧。
在原有国密算法的基础上进行改进,在通信数据结构中设计明文循环冗余校验码和密文循环冗余校验码应用于CTCS-1单元,对传输的报文信息进行防护伪装,进一步提高信息传输的安全性。
步骤三:接收通信数据帧并解密。
具体的,车载子系统中的车载接收部件接收由地面子系统中的地面发送部件发送的通信数据帧,并进行解密处理,此步骤中的对数据帧的解密的执行主体是解密部件,所述解密部件设置于CTCS-1单元中车载子系统中。
解密的过程为:先校验通信数据帧的密文循环冗余校验码,校验通过后,根据密钥规则进行SM4解密,得到明文,然后对明文循环冗余校验码进行校验,如果校验通过,则得到了原始要传输的报文信息。
示例性的:
在使用三重数据加密算法进行加密时,解密实则为加密的反过程:
平文=DK1(EK2(DK3(密文)))
即以K3解密,以K2“加密”,最后以K1解密。
每次加密操作都只处理64位数据,称为一块。
无论是加密还是解密,中间一步都是前后两步的逆。这种做法提高了使用密钥选项2时的算法强度,并在使用密钥选项3时与DES兼容。
在使用国密算法中的SM4进行数据帧的密文区进行加密时,解密算法的运算过程则为:解密变换与加密变换结构相同,不同的仅仅是密钥轮的使用顺序。解密时,使用轮密钥序(rk31,rk30,rk29,…,rk0)
为更清晰说明本发明的具体思路,选择以国密算法SM4为加密算法,对通信数据帧的结构、对通信数据帧的加密、传输加密后的通信数据帧以及对通信数据帧的解密进行示例性的描述。
如图4所示,安全传输通信报文数据,选择基于SSL协议的通信过程,具体步骤包括:
步骤S1:地面子系统在进行SSL协议的初始化设置并加载国密算法库后,建立基于国密算法的SSL的服务,并在国密算法库中选择需要使用的加密算法,本实施例选择使用SM4为加密算法,国密算法库为GmSSL国密算法库。
由于GmSSL国密算法库是科研领域对于国密算法进行的较高投入与研究力度所得的成果,所以存在的安全性更能得到保证。
步骤S2:车载子系统加载国密算法库,并与地面子系统建立TCP连接。
传输控制协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。是安全网络传输的基础。
同时,由于国密算法库中提供加密算法与对应的解密算法,所以车载子系统和地面子系统所加载的国密算法库应该是相同的国密算法库,以便于保障加密与解密的快速准确性。
步骤S3:地面子系统建立与车载子系统的SSL会话,并向车载子系统发起连接请求以建立与车载子系统之间的SSL链路连接。
在上一步骤中所建立tcp连接的基础上,地面子系统建立与车载子系统的SSL会话并向地面子系统发起连接请求,目的是与地面子系统开启的SSL服务连接并建立SSL链路连接。
步骤S4:地面子系统中设置的加密部件通过国密算法的SM4算法中的轮秘钥对通信数据帧进行加密,将待传输的报文数据按照本申请所设计的通信数据帧进行加密以得到密文,并将密文发送至车载子系统。
本步骤中,加密之后的密文由帧头,密文区,密文循环冗余校验码组成,其中帧头和密文循环冗余校验码以明文状态输出,密文区包括报文信息,明文循环冗余校验码和预留区。
其中密文循环冗余校验码的意思是针对密文区形成的循环冗余校验码,因此称为密文循环冗余校验码,但实际以明文的形式(不加密)传输;校验过密文循环冗余校验码通过之后,SM4算法解密密文区得到明文,然后再校验明文部分的明文循环冗余校验码,因此密文区的循环冗余校验码称为明文循环冗余校验码,它实际上传输过程中在密文区是被加密的。
步骤S5:车载子系统的解密部件对接收到的密文进行解密,得到报文信息。
解密部件对接收到的密文进行解密时,首先校验密文循环冗余校验码;校验通过后,根据与步骤S4中的SM4算法的密钥规则进行逆序解密,得到密文区解密之后的明文信息;然后对明文循环冗余校验码进行校验;校验通过后,则得到所传输的报文数据信息,完成信息的安全传输。
在CTCS-1单元车载子系统和地面子系统信息传输的过程中使用国密算法对传输信息进行加密:发送方利用密钥和加密算法,对消息明文进行加密后形成密文,用于传输。接收方利用相同的密钥和算法对密文进行逆运算解密,恢复出消息明文。未授权或非法用户不知道密钥和算法,因此无法进行伪装,以此保证传输信息的安全性。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。