AES加密在无人机数据链上的设计与应用

2021-09-29 14:45天津航天中为数据系统科技有限公司张志科张晓君
电子世界 2021年14期
关键词:加解密数据链字节

天津航天中为数据系统科技有限公司 张志科 杨 晨 张晓君

为了解决无人机数据链传输过程中的数据安全问题,采用AES算法对数据进行加解密。加解密采用单独板卡设计,介绍了AES加密四种变换和密钥扩展算法在FPGA上的实现方法,并根据无人机数据链数据帧格式的特点,设计了一种适合无人机数据链数据帧特点的AES加解密方案,最后在上位机上编写自收发测试软件,搭建系统回环测试环境,在明态和密态下进行对比。系统测试结果表明,加解密过程运行稳定,由加解密带来的系统延时只占数据链本身延时的3%。

无人机数据链是实现无人机与地面站之间双向传输信息的无线通信系统, 主要完成机载视频的实时下传、载荷控制及状态回报和遥控遥测信息的分发。目前无人机与地面站的数据通信大多以明文形式传输,一旦数据链通信体制被人了解,就可以很轻松的共享无人机飞行数据,甚至劫持无人机,使我们不得不关注无人机数据链数据安全问题。在数据编码调制之前对数据进行加密,可有效防止数据链数据被截获和篡改,即使被截获,截获者也无法在可见的时间内将其破译。

针对数据链的加密研究很早已经开始,张兴凯等人总结了无人机信息传输系统的体系结构和特点,采用一种混合加密体制实现了对无人机上行数据链加密;张兴凯等人在无人机遥控指令加密方式的研究中设计了一种基于序列密码的一次一密加密方案;王剑等人设计了一种基于国密SM4算法的ACARS数据链信息的加密方案,实现了对报文的加密;胡子杰等人提出一种针对民用无人机的遥控数据保护方法,并从安全性和实现性方面对AES、PRESENT和RC4这3种加密算法的可行性进行了分析,得出AES算法易实现、安全性高。上述研究都是对上行遥控低速数据的加密方案,而对下行视频和载荷等高速复合数据的加密有些力不从心,并且没有对加解密系统引入的延时进行分析,本文提出一种基于AES算法的无人机数据链加密方案,该方案可实现对上行遥控和下行复合数据加密,并且加密速率快、安全性高,系统延时只增加3%。

1 系统总体方案

无人机数据链的数据以帧的形式传输,数据帧的帧头、帧长在一般是确定不变的,所以分组密码十分适合无人机数据加密;在分组密码中Rijndael算法以其安全性、速度性能、实现的方便实用性、通用性和灵活性被选为AES标准(高级加密标准),并被广泛应用。

无人机数据链分为地面终端和机载终端,地面终端完成上行遥控帧的加密和下行复合帧的解密,机载终端完成上行遥控帧的解密和下行复合帧的加密。加解密框图如图1所示。

图1 加解密框图

加解密采用单独的板卡设计,增强通用性;AES算法在加解密板的FPGA上采用verilog语言实现,加密向量、密钥和S盒存放在加解密板的flash中,可定期修改,保证安全性;加解密板和收发终端之间采用LVDS接口进行数据交互,目前无人机数据链数据速率一般在64M以下,LVDS接口足以满足无人机数据链速率的要求。加解密板原理框图如图2所示。

图2 加解密板框图

2 AES加密算法的FPGA实现

AES是一种基于替换和置换的迭代对称密钥分组加密算法。置换是数据的重新排列,而替换是用一个单元数据替换另一个。AES使用了几种不同的技术来实现置换和替换,包括:字节替换(SubBytes),行移位(ShiftRows),列混合(MixColumn),密钥加(AddRoundKey),这种替换、置换和迭代算法十分适合FPGA实现。AES的数据和密钥分组长度可分为128bits、129bits和256bits,本设计中选择128bits。AES128算法中数据和密钥都可以看作是一个以字节为单位的4X4的矩阵,经过10轮变换后得到密文数据。

2.1 四种变换

(1)字节替换(SubBytes)

字节替换是一种非线性的变换,也称为S盒变换,将数据以查表方式替换为S盒中的数据。S盒的设计是AES安全性中很重要的一环,它的强度决定了AES加密算法的强度。许多学者对AES算法的改进主要体现在S盒算法的研究上,本设计中不讨论S盒的生成,但为了适应后续S盒技术的升级,将S盒存放在flash中,可根据S盒技术的最新研究成果修改AES算法所使用的S盒,而不必修改程序。每次上电后,将S盒数据从flash中读出,在加密过程中进行字节替换,S盒变换过程如图3所示。

图3 字节替换

(2)行移位(ShiftRows)

在行循环移位变换中,AES128算法第一行不变,第二行循环移位1个字节,第三行循环移位2个字节,第四行循环移位3个字节,生成新的矩阵。

(3)行移位(ShiftRows)

列混合运算在数学上可以看作是数据矩阵a(x)的每一列与多项式矩阵c(x)的乘法,结果对x4+1取模,即:b(x)=c(x) * a(x)(mod x4+1);

矩阵展开:

由上式可以看出,与02相乘相当于左移1位,矩阵乘法可以拆分为加法、异或和移位运算。

(4)密钥加(AddRoundKey)

轮密钥加是将种子密钥扩展出的密钥与数据矩阵按位异或,无特殊变换。

可以看出AES四种变换的实质就是简单的查表、移位、相加和异或运算,易于FPGA实现。

2.2 密钥扩展

在AES128中,种子密钥为一个4X4矩阵,记作ω[0:3],ω[0]为第一列,密钥扩展就是将矩阵ω扩展40个新列,构成4X44的扩展密钥矩阵,扩展矩阵按照以下方式递归产生:

其中T变换,由三种变换组成:字节循环移位、字节替换和轮常量异或:

(1)字节循环移位:将ω[i-1]中的4个字节循环移位1个字节,即将[b0,b1,b2,b3]变换为[b1,b2,b3,b0]。

(2)字节替换:字节循环移位后的结果使用S盒进行字节替换。

(3)轮常量异或:将前两步的结果同轮常量Rcon[j]进行异或,j表示轮数。

表1 轮常量Rcon[j]

可见,密钥扩展算法也是一些简单的移位、替换和异或,易于FPGA实现。

3 AES在无人机数据链的应用

为解决无人机数据链数据安全问题,发送端在数据发送之前对数据采用AES算法加密,接收端接收到数据后再对数据进行解密,实现数据加密传输。无人机数据链数据以帧的形式进行数据传输,接收端需要通过帧头和帧长进行数据同步,所以无人机数据链的AES加密要做到以下几点:

(1)数据帧的帧头不加密,且可以适应不同帧头;(2)数据传输中不能传输密钥,保证安全性;(3)每个数据帧使用不同的密钥加密;(4)可对帧长不是128bits帧数倍的数据帧加密,且不增加数据量;(5)低延时。

3.1 无人机数据链帧格式

为满足无人机数据链数据加密需求,需对无人机数据链帧格式作详细定义。无人机数据链数据帧包括:帧头、密钥同步字和待加解密数据三部分。帧头的内容和长度一般固定;密钥同步字长度固定,在固定位置存放加密向量编号、密钥编号和待加解密数据的长度。帧长存放在密钥同步字中兼容不同帧长的数据格式,加密向量和密钥存放在加解密板的flash中,在数据链中只传输编号,保证安全性。在本设计中,flash中存放着256组加密向量和密钥,每帧随机取一组加密向量和密钥对数据进行加密,保证每帧使用不同的密钥加密。

3.2 收发终端和加解密板之间的数据交互

无人机收发终端和加解密板之间的也是以帧的形式进行数据交互,由图1所示,收发终端和加解密板之间每个通道有6对LVDS线,收发各3对,发送和接收的3对LVDS线分别传输:时钟、帧头指示和数据,数据传输帧格式如图4所示。

图4 数据传输格式

时钟以固定的速率不间断发送;帧头指示拉高标识此时的数据为帧头,表示加解密板不需要加密的数据,以便接收端做数据同步和数据提取;密钥同步字是加解密板要解析的内容,加解密板从中提取加密向量的编号、密钥的编号和待加解密数据长度,对数据数据进行加密。最后将帧头、密钥同步字和加解密数据发送给收发终端,完成加解密。

3.3 数据加解密过程

采用AES算法的输出反馈模式(OFB)对数据进行加解密,可有效解决待加解密数据不是128帧数倍的问题,该模式下加密和解密过程相同。

加解密板提取待加密向量编号、密钥编号和待加解密数据长度后,开始对数据进行加解密,加密过程如图5所示。

图5 AES加密过程

由图5所示,加解密板收到加密向量编号和密钥编号后,开始生成向量密文;AES实际是对加密向量进行加密,加密生成向量密文,待加密分组数据和向量密文进行异或后输出密文数据;本设计中每组加密向量生成一组向量密文后,加密向量向左循环移位1bit,保证每帧中不同分组数据异或的向量密文不同;对于最后不是128bits帧数倍的分组数据根据待加密数据长度,将后面超出部分舍弃,保证加密不增加数据量,实现帧长自适应。

解密的过程和加密过程是相同,接收端根据加密向量编号和密文编号生成与发送端相同的向量密文,再和密文数据异或,即可得到明文数据。

4 系统测试

系统测试基于一套上行速率为51.2Kbps的无人机数据链,上位机模拟无人机遥控数据,遥控数据帧长为128B,每帧数据中包含帧计数和CRC校验,在上位机上编写自收发测试软件,测试软件通过UART接口将遥控数据发送给地面终端,并记录遥控数据帧发送时间,地面终端通过无线将数据发送给机载终端,然后机载终端接收到遥控数据后再通过UART接口发送给上位机的测试软件,上位机接收到完整遥控数据帧后通过帧计数和CRC校验判断遥控帧的连续性和正确性,并通过帧计数记录接收到遥控帧的时间,与发送时间对比得出系统延时,完成回环测试环境,测试软件统计发送帧数、接收帧数、误码率和延时,测试系统框图如图6所示。

图6 系统测试框图

在明态和密态下分别测试15万帧数据,在明态下测试软件统计15万帧遥控数据的误码率和平均延时,密态下测试软件同样统计15万帧遥控数据的误码率和平均延时,通过明态平均延时和密态平均延时对比得出由于加解密带来的系统延时,测试结果如图7、8所示,明态和密态结果对比见表2所示。

表2 测试结果分析

图7 明态测试结果

图8 密态测试结果

由测试结果,15万数据误帧率为0%,平均延时密态比明态增加1.017ms,测试结果表明,加解密运行稳定,由加解密过程带来的延时占系统延时不到3%。

结论:本设计首先讨论了AES四种变换和密钥扩展算法的结构特点,经分析AES算法结构简单,非常适合在FPGA上实现;然后详细讨论了无人机数据链数据特点,根据无人机数据链的数据特点,提出无人机数据加密的要求;最后根据无人机数据链数据加密要求,设计了一种基于AES的无人机数据链数据加密方案。本设计中解决了无人机数据链数据帧长不是128bits整数倍,加密不增加数据量和低延时等问题;加密向量和密钥存放在flash中,数据帧中只传输编号,保证安全性,并实现一次一密;S盒存放在flash中,可以随着S盒技术的进步升级S盒,而不必修改FPGA程序,增强通用性。本设计经过长时间拷机测试,加解密运行稳定,延时满足无人机数据链数据要求。

猜你喜欢
加解密数据链字节
No.8 字节跳动将推出独立出口电商APP
多平台通用数据链助力未来战场
高速公路工程项目实施中数据链应用探析
基于深度学习的无人机数据链信噪比估计算法
No.10 “字节跳动手机”要来了?
一种无人机数据链信道选择和功率控制方法
简谈MC7字节码
PDF中隐私数据的保护方法
电子取证中常见数据加解密理论与方法研究
基于FPGA的LFSR异步加解密系统