APP下载

基于国密SM4算法的ACARS数据链信息加密

2018-03-22韩绍程

中国民航大学学报 2018年1期
关键词:数据链密文字符

王 剑 ,宋 阳 ,韩绍程

(中国民航大学a.电子信息与自动化学院;b.基础实验中心,天津 300300)

飞机通信寻址与报告系统(ACARS,aircraft communication addressing and reporting sstem)[1],是一种空地双向数据通信系统,目前广泛应用于民用航空飞行器与地面系统的数据通信。ACARS系统通过VHF甚高频进行传输,自动报告飞机起飞、降落时间以及其他飞行数据,以便减少语音通话,是当前民航部门控制飞机和地面传输信息的主要手段之一。ACARS系统利用机载设备和数据链路服务提供商之间的通信网络,实现航空飞行器与地面之间的实时信息传输,保障航空飞行安全。

ACARS系统的正常使用,保证了全球民用航空的顺利运行。民航系统使用ACARS对雷达无法覆盖的海洋区域进行空中交通管制,弥补了雷达数据不能到达航空公司的不足。

在航空器飞行过程中,ACARS可自动向航空公司发送航空器当前的数据参数,这些飞行数据可使管制员准确监控航空飞行器的运行状态。另外,管制员可通过ACARS系统向飞行员发送信息指令,实现空地双向通信。

ACARS系统对航空器安全飞行至关重要,但安全性却不尽如人意。由于越来越多的航空器在飞行过程中选择自动操作,航空公司和民航部门也越来越依靠ACARS系统进行空中交通管理和操作控制。如果不能保证ACARS系统的安全性,那么飞机飞行的安全性就无从谈起。特别是近年来一系列空难事件的发生,ACARS系统安全性更是引发了国际社会和航空界的广泛关注。因此,本文将对ACARS数据链安全隐患进行分析并给出具体的信息加密方案。

1 ACARS数据链的安全隐患

ACARS数据链属于无线传输网络,虽然相比基于语音的系统有较好的安全性,但目前ACARS系统的安全性还是存在较多问题。由于ACARS报文在空地通信时采用明文传输,因此任何人都可以通过普通的RF收发装置获取ACARS报文,通过简单的解析即可得到报文的真实内容,存在着极大的安全隐患,很可能给航空器安全飞行造成严重后果。国际民航组织已认定了4种ACARS安全隐患,分别是数据泄露、数据欺骗、实体伪装和拒绝服务攻击[2]。在商业领域中,竞争对手通过分析ACARS报文可得到飞机的飞行数据、货物内容以及航班操作等重要信息,一些公司为防止这种数据泄露,利用简单的字符替换算法对ACARS报文进行了加密处理,但这些加密技术只能阻挡无意的入侵者,对熟练的攻击者来说效果甚微。

ACARS数据通信是面向字符进行传输的,其中有些特殊字符作为协议分隔符不能出现在传输的数据流中,因此限制了ACARS数据链传输数据信息的类型。为了确保ACARS数据链在传输面向比特的用户数据时不会传输这些特殊字符,ACARS针对这些字符定义了一些编码方案和转码规则。对于面向比特的数据来说,编码方案提高了有效载荷的大小。

2 ACARS数据链信息加密方法

由于ACARS系统存在数据泄露等安全隐患,而防止数据泄露最常用的方法就是对数据进行加密。数据加密可有效保护ACARS数据链信息,未授权的用户无法访问并获取信息。一般加密方法分为对称(私钥)加密和非对称(公钥)加密,非对称加密的算法复杂度较高、加密速度较慢;对称加密算法相对简单,加密速度较快[3]。考虑到ACARS系统存储资源和数据链带宽的有限性,并且保证加密信息的时效性,对称加密算法更适用于ACARS系统。

2.1 载荷编码

由于ACARS数据传输是面向字符的,所使用的字符为非控制字符,来源于ISO-5字符集[4],很少使用小写字母,并且在后续的信息编码过程中可能会增加报文长度。因此,为保证ACARS数据链的传输速率,需要对报文进行载荷编码,降低有效载荷。

通过对ACARS信息的分析得到,除去不能出现在用户数据流中的控制字符,ACARS报文中常见的ASCII字符有64个,用6 bit数据流就可以完全表示64个ASCII字符。因此可以将8 bit字符编码转化成6 bit并组成编码表,如图1所示[5]。这样编码可以降低25%的有效载荷。若出现编码表之外的字符,将8 bit的字符转化成7 bit数据流即可满足编码要求。但为保证能将比特流正常加密,编码后的比特流长度一定为8的整数倍,当出现不足时,需自动按位进行补充。

在接收方,用户要想读取原始的ACARS信息,同样要将解密后的比特流依照编码表进行反编码。这种编码方式不仅将面向字符的ACARS报文转化为面向比特的数据,而且提高了编码效率。

图1 6 bit有效载荷编码Fig.1 6 bit payload coding

2.2 SM4算法

SM4分组对称加密算法在2006年被国家密码管理局公布用于无线局域网产品,并于2012年被批准为行业标准。其密钥长度为128 bit,数据分组长度为128 bit[6]。由于SM4密码算法结构和设计较为简洁,使用方便灵活、安全高效,并且由专业密码机构设计,且进行了充分测试,算法一经公布就引起密码界的广泛关注。针对ACARS系统资源和带宽有限的特点,本文采用SM4分组加密算法对ACARS信息进行加密。

1)参数设置

SM4算法所使用的密码部件以及符号惯例如下所示:

a)基本运算

SM4算法使用⊕表示32位异或运算,<<<i表示32位字循环左移i位。

b)密钥参数

密钥长度为 128 bit,可表示为 MK=(MK0,MK1,MK2,MK3),其中MKi(i=0,1,2,3)为字。轮密钥表示为 rki,i=0,1,…,31,轮密钥由加密密钥生成。

c)S盒

S盒输入输出均为8字节,是一种非线性的置换,目的就是起到混淆作用。设输入为a,输出为b,S盒运算可表示为:b=Sbox(a)。

d)非线性变换τ

非线性变换τ由4个并行S盒构成,设输入为A=(a0,a1,a2,a3),输出为 B=(b0,b1,b2,b3),则 B=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))。

e)线性变换L

线性变换部件L的输入为非线性变换τ的输出。设输出为 C,则 C=L(B)=B⊕(B<<<2)⊕(B<<<10)⊕(B <<< 18)⊕(B <<< 24)。

f)合成变换T

T为一个合成置换,由非线性变换τ和线性变换L 复合而成。可表示为 T()=L(τ())。

2)轮函数

3)加解密算法

SM4算法的加解密均采用了32轮迭代结构,每一轮只使用一个轮密钥。经过载荷编码的ACARS报文作为明文输入,设明文为共128 bit。轮密钥输入为最终得到的比特流密文为也是 128 bit[6]。具体的加密算法为

为了得到与解密算法一致的排列顺序,在对ACARS报文转化的比特流数据加密之后还需对密文进行反序处理R,即

具体的加密算法框图如图2所示。

由图2可以看出,SM4加密一次处理4个字的经ACARS报文转换的比特流数据,产生一个字的新比特流密文,新密文结合前3个字进行新一轮加密处理,迭代处理32轮并反序操作之后产生最终的4个字比特流密文,再经过处理后即得到所需要的ACARS密文。解密算法同加密算法的结构相同,只是轮密钥的使用顺序相反[7]。加密时轮密钥使用顺序为(rk0,rk1,…,rk31),解密时使用顺序为(rk31,rk30,…,rk0)。

图2 SM4加密过程Fig.2 SM4 encryption process

2.3 信息编码

由于ACARS数据链传输的信息是面向字符的,而通过SM4加密后得到的密文是比特流数据,因此在加密后还需要进行信息编码。同载荷编码表大致相同,信息编码使用的是64 bit字符的编码表。其中不同的是,载荷编码表中的字符 LF(0x0A)和 CR(0x0D),在信息编码中被替换成“[”(0x5B)和“]”(0x5D)[4]。

为保证ACARS数据链能传输正常密文,对加密后的比特流进行信息编码。首先从高位截取前8 bit数据,判断是否为ACARS可传输字符。若不是,则依据信息编码表将前6 bit数据编码成新的8 bit字符;若是,则进行下一步判断,判断字符是否在信息编码表中。若该字符在信息编码表中,则选取前6 bit转化成8 bit字符;若该字符不在表中,则将该字符直接进行编码。按照上述步骤从比特流高位到低位依次编码,直至得到最终的密文。当编码过程中出现比特数小于6 bit时,则对剩余比特进行补0,达到6 bit后再进行编码。

经过信息编码后,最终得到的密文都是可传输且不可读的ACARS字符,然后再利用ACARS数据链将密文传递到目的用户,完成对ACARS报文内容的加密。

3 实现及测试分析

本文利用SM4算法对ACARS报文进行加密,并通过实际ACARS数据报文的测试验证加密效果。

3.1 测试环境搭建

为保证数据通信的安全性,测试采用基于数据链服务提供商(DSP,data link service provider)的安全模式,作为连接飞机和地面用户终端的中介,DSP负责分发密钥,保障地空链路安全,这样外界的攻击者就不能从网络中截获并分析报文信息。具体环境如图3所示。

图3 仿真测试环境Fig.3 Simulation test environment

PC1模拟航空器终端,在飞行过程中向地面发送ACARS报文。PC2包括远端地面站RGS、DSP以及报文解析器等模块,模拟地空通信,该模块接收ACARS报文并对其加解密处理。PC3模拟航空公司等终端用户,读取经过解密后的ACARS报文信息。机载设备与远端地面站通过RS232串口相连,其他模块通过TCP/IP协议实现数据通信。

3.2 编程实现

为了验证ACARS报文的加密效果,将基于SM4算法的ACARS数据链加密方法通过软件编程实现,并进一步分析算法的安全性能,加密流程如图4所示。

图4 ACARS数据加密流程图Fig.4 ACARS data encryption flowchart

首先将ACARS报文进行载荷编码,按照载荷编码表,调用载荷编码函数将8 bit字符转化为6 bit数据流[5]。设明文长度为n字符,则编码后的比特流长度为6nbit,将编码后的比特流用SM4算法进行数据加密。

SM4加密算法利用加密密钥key,在ECB工作模式下对明文进行加密,每一轮得到的128 bit密文作为下一步的输入,循环直至得到最终结果。

对加密后的结果进行信息编码,调用信息编码函数将加密后的比特流数据转换为可传输的密文,通过ACARS数据链进行传输。

3.3 数据测试

在对ACARS报文进行加密测试前,首先对报文数据进行载荷编码,将编码后的数据流利用SM4算法进行加密,再通过信息编码得到最终密文并通过ACARS数据链进行传输,得到的密文应不具备可读性。在无SM4密钥的情况下无法得到ACARS报文中的原始内容,且最终结果全部为可传输的ACARS字符,密文长度不大于原有的明文长度[5]。

1)测试数据——起飞报

结果分析:密文为26个可传输的ACARS字符,与明文的长度相同,可通过ACARS数据链进行传输,且密文不具可读性。

2)测试数据——位置报

报文:M44AMU0721POSCAS 175,LAT N24.216,LON E108.253,ALT4124,UTC082513

密文:A#H3&”S8AHX2)D*SFS34C4SJ:^-DF4!S^W3#%W&B’H73S*HN@QW!98SD”(D

结果分析:密文为62个可传输的ACARS字符,长度与明文相比减少一个字符,可通过ACARS网络进行传输,且密文不具可读性。

3.4 性能分析

通过对比明文和测试得到的密文可以看出,基于SM4算法的ACARS数据链信息加密不仅对报文内容进行了加密,而且没有增加基于字符的数据内容,降低了ACARS系统的运行成本,增加了ACARS系统的存储容量。对数据进行加密时,使用的是SM4分组加密算法,当对加密数据进行解密时只需改变轮密钥的使用顺序即可,简单高效且易于实现。此外,对ACARS数据流进行处理的过程中,还可以增加对数据的压缩和解压缩能力,不仅缩短了密文长度,还提高了信息的隐蔽性,从而有效地缓解了ACARS数据链频带有限的问题,在保证数据信息安全的基础上,提高了ACARS的可用性。

从安全性的角度分析,针对分组密码算法的各种攻击,SM4算法有一定抵抗能力[8]。SM4的密钥长度为128 bit,按照目前密钥的搜索速度,在短时间内是无法完成破解的。因此,SM4算法可有效抵抗穷举攻击。此外,SM4算法对于线性攻击和差分攻击等也具有一定有效的抵抗能力。

目前国际上常见的对称加密算法有DES、AES加密算法。DES算法的分组明文长度为64 bit,有效的密钥长度仅为56 bit,加密过程也只需16次迭代。由于DES密钥长度较短,加密过程过于简单,密钥容易被破解,安全性较差。AES算法同SM4算法类似,都是基于S盒的非线性以及线性变换保证算法安全性,AES算法的密钥长度也为128 bit,可以保证抵抗穷举攻击,但由于AES算法的密钥生成较为繁琐,且解密算法需重新编写,影响在加解密过程中的速度。而SM4算法的密钥生成和加密算法基本一致,并且不需要重新编写解密算法,提高了加解密效率。

综上所述,对于资源和带宽受限的ACARS系统来说,SM4算法计算开销小、加密速度快,具备一定的安全性优势,可使整个系统工作效果达到最佳。

4 结语

针对目前ACARS数据链通信中存在的数据泄漏问题,本文结合面向字符的数据编码,提出了基于SM4算法的ACARS数据链信息加密方案。通过编程实现了SM4算法对ACARS报文信息的加密,并利用ACARS真实报文进行测试,验证得到密文数据的安全性。测试结果证实了SM4加密算法在有限的频带资源下可以保证ACARS系统的安全通信。SM4密码算法是中国第一次由专业密码机构公布并设计的商用密码算法,到目前为止,尚未发现有任何攻击方法对SM4算法的安全性产生威胁。因此,基于SM4算法的ACARS加密技术保护了对现有ACARS的投资,满足了用户对信息安全的需要。

[1]ARINC.ARINC Specification 618-5,Air/Ground Character-Oriented Protocol specification[S].Annapolis:Aeronautical Radio,Inc,2000.

[2]吴志军,贾悦霖.ACARS地-空数据链中数字证书的应用研究[J].中国民航大学学报,2013,31(3):23-26.

[3]王晓琳,张学军,何 葭.ACARS数据链中的安全通信[J].航空电子技术.2003(S1):95-100.

[4]ARINC. ARINC Specification 823P1, Data Link Security Part1-ACARS Message Security[S]. Annapolis: Aeronautical Radio, Inc, 2007.

[5]吴志军,刘玉麟.ACARS数据链信息加密方法的研究[J].计算机应用研究,2017,27(s):280-282.

[6]张焕国,唐 明.密码学引论[M].武汉:武汉大学出版社,2015.

[7]孙翠玲,卫宏儒.SMS4算法的不可能差分攻击研究[J].计算机科学,2015,42(7):191-193.

[8]吕述望,苏波展,王 鹏,等.SM4分组密码算法综述[J].信息安全研究,2016,2(11):995-1007.

猜你喜欢

数据链密文字符
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
多平台通用数据链助力未来战场
高速公路工程项目实施中数据链应用探析
基于网络报文流量的协议密文分析方法
论高级用字阶段汉字系统选择字符的几个原则
密钥共享下跨用户密文数据去重挖掘方法*
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画