APP下载

针对车联网信息安全的加密引擎芯片设计

2020-03-07

网络安全技术与应用 2020年2期
关键词:应用层字节解密

(中国电子科技集团公司第五十八研究所 江苏 214072)

据公安部交管局统计,我国汽车拥有量超1.5亿,销售量跃居世界第一。随着汽车网络化程度的提高,车联网采用各种通信技术实现汽车控制、导航定位、联网应用、车地通信(汽车与路边设备通信)、车车通信、车人通信等功能。

车联网主要包含4个部分,主机、汽车T-BOX、手机APP 及后台系统。其中汽车T-BOX 主要用于和后台系统、手机APP 互联通信,实现车辆的信息显示和控制[1]。

车联网的发展的同时,也隐含了汽车被远程攻击的威胁。汽车内部存在很多安全缺口,如OBD 故障检测接口、数字门锁、胎压监测系统、WIFI/蓝牙、2G/3G/4G/5G通信设备等。这些漏洞一旦被攻击,车辆存在着被监听和被劫持的可能性[2]。

本文从车联网信息安全分析,提出设计一种基于AES算法的新安全应用机制的数字信号处理器设计方案,通过实验证明该方案的有效性。

1 车联网系统概述

1.1 车联网系统构架

车联网体系构架分为应用层、传输层和采集层[3],如图1所示。

应用层,应用层主要是针对汽车用户,通过手机或者移动终端,为用户提供智能服务。应用层主要实现路况分析、车辆状态分析和车辆故障分析等功能,在此过程中与城市交通中心达到信息共享,对用户提供便捷服务的同时,也为城市交通提供协助。

传输层,传输层是通过4G、蓝牙、RFID 等手段,将信息采集的数据传输给应用层。

采集层,采集层主要是利用汽车传感器、视频采集器、音频采集器等,获取汽车自身状态信息和路况等信息,通过传输层再到应用层。

现阶段车联网功能还处于监控阶段,未能有效实现人、车、路的统一。

图1 车联网系统构架

1.2 车联网的安全现状分析

近年来网络安全研究人员针对车联网的攻击测试案例,反映了车联网在应用中面临的巨大安全威胁:

2013年召开的拉斯韦加斯黑客大会上,两位黑客演示了如何攻击丰田普锐斯和福特翼虎汽车的控制系统,从而实现包括高速行驶时突然制动、使车辆刹车失灵、猛打方向盘等一系列操作。2015年,两位安全研究人员演示了利用克莱斯勒公司Jeep Cherokee的车联网“Uconnect”功能的漏洞,远程入侵并控制目标车辆,自由操控汽车上的娱乐系统、雨刷、方向盘、引擎等。

车联网络通过RFID、移动通信网(2G/3G/4G/5G)、WIFI 等无线通信手段与云平台和手机APP相连,存在通讯信息暴露的安全风险。黑客通过信息数据规律,攻击车辆,控制车辆非法加速、减速、开门和关门等危险操作。传输信息加密势在必行。

2 AES算法

AES算法是基于Rijndael 结构的迭代对称分组密码算法,分组长度为固定128Bit,可支持128Bit、192Bit和256Bit 长度的密钥,转换的轮数由密钥长度和分组长度共同决定。128Bit的AES算法加密流程如图2所示,在第一轮密钥加变换后进入10 轮迭代,前9 轮完全相同,一次经过字节替代,行位移、列混合、轮密钥加,最后一轮不同,跳过了列混合运算。与之对应的解密流程是加密流程的逆运算,每一步操作都是可逆的,按相反的顺序进行完成解密流程,需要注意的是,二者轮密钥的顺序也正好相反[4]。

图2 AES加解密流程图

字节变换(SubByte)的主要功能是通过使用S盒完成一个字节到另外一个字节的映射。S盒是一个大小16*16 矩阵,完成一个8 比特输入到8 比特的输出的映射,输入的高4 位的值是位行标,低4位的值是列标,其本质是一个查表过程[5]。

行位移(ShiftRows)是在字节变换的基础上,仅对状态矩阵的每个横行进行向左循环移位操作[6]。其中,128Bit的AES算法经过该变换后,状态矩阵第1 行不移位,第2、3、4 行分别向左循环移位1、2、3个字节,如公式(1)表示。

逆向行移位即是相反的操作,如下式(2)所示。

列混淆(MixColumn)是对状态矩阵逐列进行变换,状态矩阵的每列可以看作是系数来自有限域GF(25)且次数小于4的多项式a(x),在取模x4下与多项式cc(x)相乘[7],如式(3)(4)所示:

写成矩阵形式为式(5):

与行移位的作用一样,列混淆同样是确保AES算法多轮运算之后获得高度的扩散特性。

轮密钥加(AddRoundKey)是将轮密钥按位异或到中间数据。轮密钥与初始密钥相关,由密钥编排算法计算和分配,且轮密钥长度等于分组长度。

3 电路设计验证

3.1 电路设计

加密引擎芯片设计在芯片内部集成了AES算法加解密模块。基于AES算法的原理分析,行移位运算不需要逻辑门,轮密钥加运算只涉及异或门逻辑,预先将11 轮解密轮密钥存储到寄存器组中可代替密钥扩展功能,相比之下,字节变换和列混淆的实现比较复杂。以AES解密模块中的逆字节变换和逆列混淆为例:逆字节变换其实是一个S盒查表的过程,借助S盒查找并替换字节来掩盖明文和密文之间的关系,是AES轮变换中一个非线性操作环节,也是保证AES安全的设计关键。常见的实现方法有查找表和有限域运算,相比查找表法,有限域运算实现S盒操作会节约一定的面积开销,同时也会增加字节替换的运算复杂度,降低算法的运算效率。而查找表的硬件电路简单,易于实现,且每个时钟周期就能完成一次S盒运算让查找表形式的S盒比有限域形式的S盒有着更高的系统吞吐率[8]。本电路设计采用case 语句完成S盒的查表替换操作,以AES解密算法为例。

由AES算法原理可知,逆列混淆可用有限域GF(28)GF(28)的矩阵形式表示如下:

每个元素变换后如下式所示:

公式(7)表示的是逆列混淆运算,由有限域运算法则可知,公式(7)是多次乘2 运算和异或操作的组合运算,调用xtime函数可以完成乘2 运算的逻辑实现,其运算过程如式(8)所示。

逆列混淆运算公式可以转化为基于xtimextime 函数的运算。基于上述AES解密模块的硬件设计思路,采用Verilog HDL语言完成电路加解密的功能描述,其逻辑结构如图3所示:

图3 AES解密模块电路图

3.2 仿真验证

电路的功能仿真采用Cadence 公司的NC Verilog软件,用128bit位密钥进行实验,其中AES加密结果如图4,128bit 密钥128bit 明文加密需要14个时钟周期[9-10]。

密钥/明文/数据如下:

KEY=00000000000000000000000000000000

数据输入:

f34481ec,3cc627ba,cd5dc3fb,08f273e6,

密文输出:

0336763e,966d9259,5a567cc9,ce537f5e

图4 AES加密结果

AES解密结果如图5所示:

图5 AES解密结果

KEY=00000000000000000000000000000000

输入密文:

0336763e,966d9259,5a567cc9,ce537f5e

输出明文:

f34481ec,3cc627ba,cd5dc3fb,08f273e6

4 结束语

本文基于车联网的系统构架,针对车联网数据安全性过低,提出了加密引擎芯片设计。从芯片自身入手,添加了AES加解密模块。最后,通过实验结果证明,使用AES加密算法可以有效地对传输控数据进行保护。

猜你喜欢

应用层字节解密
No.8 字节跳动将推出独立出口电商APP
炫词解密
解密“一包三改”
炫词解密
炫词解密
No.10 “字节跳动手机”要来了?
轻量级分组密码Midori64的积分攻击
传输层和应用层的隧道技术
基于分级保护的OA系统应用层访问控制研究
物联网技术在信息机房制冷系统中的应用