ETCS系统密钥管理体系及安全通信加密技术简介

2020-08-22 06:48郭军强
铁路通信信号工程技术 2020年8期
关键词:加密算法密钥加密

郭军强

(1.北京全路通信信号研究设计院集团有限公司,北京 100070;2.北京市高速铁路运行控制系统工程技术研究中心,北京 100070)

ERTMS/ETCS列车控制系统中加密技术主要防护EN50159中列出的7种安全通信威胁中的损坏和伪装威胁,保证铁路运输管理系统中的安全信号设备能与一个已授权的安全信号设备建立通信,并确保安全信号设备之间交互的所有信息的真实性和完整性。本文将对ERTMS/ETCS中相关协议中密钥管理体系及算法进行归纳总结,以便研发人员系统掌握ERTMS/ETCS安全通信协议中密钥相关内容。

1 ERTMS/ ETCS密钥管理体系

ERTMS/ETCS关于密钥管理体系的具体规定在Subset-038、Subset-114及Subset-137中详细说明。本章节主要阐述ERTMS/ETCS密钥管理的相关设备关系、密钥管理体系内所有密钥分级及各个层级的密钥的作用及产生方法。

1.1 密钥管理设备及接口标准

ERTMS/ETCS密钥管理涉及的设备包括密钥管理中心(即KMC)和所有使用密钥管理中心管理密钥的安全信号设备(即KMAC实体);每个安全信号设备仅能由一个KMC为其管理密钥。KMC只管理车载和轨旁两类安全信号设备的密钥。

ERTMS/ETCS密钥管理包括离线和在线两种方式。在线密钥管理在Subset-137接口规范中描述,值得注意的是Subset-137规定KMS设备间应采用基于公钥基础设施(PKI)或预共享密钥(PSK)实现身份验证的TLS传输协议保证密钥的机密性、真实性与完整性。离线密钥管理在Subset-038 和Subset-114中描述,两个规范分别描述KMC-KMC接口及KMC-安全信号设备间接口。ERTMS/ETCS密钥管理体系中涉及的设备及使用标准,如图1所示。

图1 ERTMS/ETCS密钥管理体系示意Fig.1 Schematic diagram of ERTMS/ETCS key management system

1.2 密钥分级

Subset-038中定义的密钥可划分3个等级,如表1所示。

表 1 密钥等级表Tab.1 Table for key levels

其中3级传输密钥分为K-KMC和KTRANS两 类。K-KMC密钥 由K-KMC1和K-KMC2组成,K-KMC1负责保证KMC之间交互消息的真实性和完整性(使用Subset-037提供的CBC-MAC码),K-KMC2负责加密(ECB模式的3DES算法)KMC之间交互的KMAC。KTRANS由KTRANS1和KTRANS2组成,KTRANS1负责KMC与安全信号设备之间交互消息的真实性和完整性(使用CBC-MAC码),KTRANS2负责加密(ECB模式的3DES算法)KMC与安全信号设备之间交互的KMAC。

2级验证密钥应由KMC负责将其分配且安装在安全信号设备中,在MASL安全连接建立过程中,验证对等安全信号设备。

1级会话密钥在对等实体验证过程中由验证密钥生成,在连接建立和数据传输期间用于保护双向通信的数据保护(使用CBC-MAC码)。会话密钥专属于某一个特定的安全连接并且只能由具有同一个KMAC密钥的安全信号设备双方共享。

3个等级的密钥是ERTMS/ETCS体系规范对密钥描述的基础。各种类型密钥使用场景总结如图2所示。

2 密钥算法

2.1 CBC-MAC算法

如上章所述,KMC-KMC、KMC-安全信号设备及安全信号设备-安全信号设备使用CBC-MAC码保证数据正确且未经篡改,本节将详细说明CBC-MAC算法。

图2 密钥使用场景Fig.2 Usage scenario of keys

2.1.1 CBC-MAC介绍

CBC-MAC算法是密码学中最为广泛使用的消息认证算法之一,同时它也是一个ANSI标准(ANSI X9.17)。字面上可分为CBC和MAC两部分, Message Authentication Code(MAC) 为消息认证码,通信实体双方使用的一种验证机制用于保证消息数据的真实性和完整性;Cipher Block Chaining(CBC)为密码分组链接模式,在CBC模式中,每个明文块(m1、m2…mx)先与前一个密文块进行异或后,再使用E加密算法进行加密。CBC-MAC实际上就是对消息使用CBC模式进行加密,取密文的最后一块作为认证码,CBC-MAC基本原理如图3所示。

图3 CBC-MAC算法原理Fig.3 CBC-MAC algorism principle

2.1.2 DES算法

数据加密标准DES是应用最广泛的数据加密算法,也是密码史上第一个公开的加密算法。DES算法明文处理的经过了3个阶段:首先64 bit的明文经过初始置换进行比特重排;然后经过16次的与密钥相关的乘积变换;最后一次循环的结果64 bit经过逆初始置换IP-1产生64 bit的密文,如图4所示。

图4 DES算法处理过程Fig.4 Processing procedure of DES algorism

乘积变换是DES的核心,一共进行16次相同函数的作用,每轮作用都有置换和代换。图5给出了一轮变换的内部结构。64位中间数据的左右两部分作为独立的32位数据,分别记为L和R。每轮变换的整个过程可以写为下面公式:

F(Ri-1,Ki)函数首先将R(32 bit)用一个表定义的置换扩展为48 bit。这48 bit与Ki异或,再用一个代换函数作用产生32 bit的输出,最后使用置换P进行作用后输出,如图6所示。

密钥经过初始置换(置换选择1)后,经过循环左移和置换(置换选择2)分别得到子密钥Ki用作每一轮的迭代。每轮的置换函数都一样,但是由于密钥的循环移位使得子密钥互不相同。

图5 乘积变换展开结构Fig.5 Deployable structure of product transformation

图6 乘积变换内部算法Fig.6 Internal algorism of product transformation

3DES是DES加密算法的一种模式,它相当于是对每个数据块应用3次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法,3DES加密过程为:C= DES (DES-1(DES (X)))。

2.1.3 CBC-MAC算法

Subset-037规定了CBC-MAC算法。计算MAC使用的密钥(设为k)为3段长度为64 bit的DES密码,ERTMS/ETCS中密钥k可为K-KMC1、KTRANS1或KSMAC。使用密钥k计算任意数据串X的MAC功能函数CBC-MAC(k,X)应当采取如下定义步骤:

文件内容X=(X1,X2…Xq),每个分组64 bit;设E(Kn,Y)表示采用单DES算法加密,使用密钥Kn(n∈{1,2,3})将数据块Y加密成的密码块的过程。E-1(Kn,Y)是使用DES算法解密,⊕是异或操作。那么校验码Hq计算过程如下,最后的结果Hq即为文件X的校验码(MAC)。

2.2 安全连接建立及通信过程数据算法

Subset-037规定MASL层在安全连接建立及通信过程中,应使用KSMAC进行CBC-MAC算法独立计算接收数据包的MAC数值,并与接收SaPDU中MAC字段进行一致性比较,从而实现MAC校验功能。

注:消息m的MAC应当采取下述过程计算。

1)设置消息m的方向标记(‘0’代表发起者,‘1’代表响应者)。

2)在消息m前添加目标地址(DA):“DA|m”。

3)以字节的方式计算字符串“DA|m”的长度l(2 Byte)并将它添加在MAC计算字符串的前面,也就是:l|DA|m。

4)如果消息(l|DA|m)的长度不是64的倍数,那么按下面的规定填充并添加数据p,变成(l|DA|m|p)。

5)通过CBC-MAC功能和密钥Ks计算字符串“l|DA|m|p”的MAC;

MAC(m)=CBC-MAC(Ks,l|DA|m|p),|表示串联。

在DT SaPDU的情况下,消息m=’000’|M TI|DF|SaUD由指示一个DT SaPDU的消息类型指示符(MTI),方向标记(DF)和安全用户数据SaUD组成。

在AU2 SaPDU的情况下,消息m=ETY|MTI|DF|SA|SaF|auth2由ETCS ID类型,指示AU2 SaPDU的消息类型标记(MTI),方向标记(DF),源地址(SA),安全特征(SaF)和相应的认证信息auth2=”Ra|Rb|B”组成。

在AU3 SaPDU的情况下,消息m=’000’|M TI|DF|auth3由指示AU3 SaPDU的消息类型标志符,方向标记(DF)和相应的认证消息auth3=Rb|Ra组成。

在AR SaPDU的情况下,消息m=’000’|M TI|DF由指示AR SaPDU的消息类型标记(MTI)和方向标记(DF)组成。

2.3 会话密钥KSMAC生成算法

会话密钥的生成方法如下。

在对等实体认证中,一个对话密钥是由两个通信实体使用它们共同的认证密钥KMAC=(k1,k2,k3)产生的。一个192位的KSMAC密钥将由密钥生成程序生成。相应的DES对话密钥的出处按照A与B之间的流向来规定。

随机数Rx(x ∈{A,B})被分为左(RxL)和右(RxR)两个32位的块:

RA=RAL|RAR,RB=RBL|RBR,|表示串联操作。

3个64位的密钥ks1,ks2和ks3通过下面公式计算得出:

|表示串联操作。

3 结语

上述总结了ERTMS/ETCS安全通信协议中伪装威胁防护相关内容,从事ERTMS/ETCS的KMC、车载设备、轨旁设备及安全通信协议开发可根据具体应用需要参考其相关算法及过程。

猜你喜欢
加密算法密钥加密
一种新型离散忆阻混沌系统及其图像加密应用
幻中邂逅之金色密钥
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
DES加密算法的实现
基于整数矩阵乘法的图像加密算法
TPM 2.0密钥迁移协议研究
加密与解密
DES 对称加密和解密算法的安全性应用
基于小波变换和混沌映射的图像加密算法