基于AES算法的滚码技术在汽车防盗系统中的应用*

2014-09-14 01:24张向文任风华
计算机工程与科学 2014年2期
关键词:加密算法解密字节

黄 友,张向文,许 勇,潘 明,任风华

(桂林电子科技大学电子工程与自动化学院,广西 桂林 541004)

基于AES算法的滚码技术在汽车防盗系统中的应用*

黄 友,张向文,许 勇,潘 明,任风华

(桂林电子科技大学电子工程与自动化学院,广西 桂林 541004)

滚动编码技术以其多变性、抗截获、安全性和可靠性较高等特点,广泛应用于车辆防盗报警系统中。基于AES加密算法,结合系统实际应用特点进行优化设计,提出了一种滚动编码的方法,并将其运用到汽车防盗系统中。实验测试分析表明,该设计具有安全可靠性高、资源消耗小、执行效率高等特点。

滚动编码; AES;汽车防盗系统

1 引言

车辆防盗是车辆安全的一个重要方面,车辆防盗系统则是车辆安全的坚实保障。滚动编码(以下简称滚码)技术是一种多变性、抗截获、安全性和可靠性较高的非线性加密解密技术[1]。每一次发送的代码都是唯一的、不规则的,且不重复,使得所有非法捕捉和扫描跟踪等破译手段都无法有效实施。滚码技术作为RKE(Remote Keyless Entry)系统的基本组成部分,广泛应用于车辆防盗报警系统。美国Microchip公司的专利技术KEELOQ滚动码是目前汽车防盗报警系统中最常用的滚码技术[2],其利用集成电路设计的优势,把这项技术封装在芯片里。运用硬件实现加密滚码,效率较高,但也存在成本高、可扩展功能弱、配钥匙过程复杂及系统灵活性差等缺陷。

本文主要基于AES(Advanced Encryption Standard)加密算法,结合系统实际应用特点进行优化设计,提出了一种滚动编码的方法并运用到汽车防盗系统中。

2 汽车RKE系统的组成及原理

2.1 汽车RKE系统的结构组成

RKE系统由安装于车内的主控单元和车主随身携带的无线钥匙模块组成,其基本结构见图1。

Figure 1 RKE system basic structure图1 RKE系统基本结构

如图1所示,安装于车内的主控单元主要由主控MCU、无线收发模块、车门电子锁控制单元组成;车主终端为无线钥匙模块,其主要组成部分为微控制器、无线收发器及相关功能按键。

2.2 工作原理

无线钥匙模块实现对钥匙功能按键数据的处理及数据的发送;主控单元实现对无线钥匙数据的接收,根据接收的数据识别无线钥匙的按键功能(配钥匙、关锁或者开锁)。当接收到的是配钥匙数据,主控单元的微控制器运算单元对配钥匙数据进行处理,并通过无线收发器实现与无线钥匙的双向无线通信握手协议,最终完成配钥匙的机制;当接收到的是开锁或关锁的滚码数据,主控单元通过控制无线收发器接收来自无线钥匙的密文数据,使用配钥匙时记录的解密密钥对密文进行解密,通过对解密数据中无线钥匙序列号和滚码计数值的验证及按键功能码的识别,进而控制车门电子锁继电器的通或断操作。

3 AES加密算法的优化设计

AES是美国联邦政府采用的一种区块加密标准,用来替代原先的DES(Data Encryption Algorithm)[3]。AES因其密钥的无限制、不存在弱密钥、能有效抵抗目前已知的多种攻击方法(如差分攻击、相关密钥攻击、插值攻击等)等优点,已经被广泛使用[4]。

一轮AES由四步组成:字节替代、行移变换、列混合变换、轮密钥加变换[5]。AES算法的一次迭代流程如图2所示。其中,字节替代可以单独完成,形成一个16*16的列表并存储到运算程序中[6]。通过替代前字节1的高四位对应列表的行,低四位对应列表的列进行查找,相应行列交汇表中的字节便是该字节1经过字节替代运算后的字节,而该列表简称S盒。每一次迭代所使用的子密钥,其扩展运算主要通过GF(28)域运算来完成[5]。

Figure 2 An AES algorithm iterative process图2 AES算法一次迭代流程

无线终端由于其计算能力弱及存储量小等特点,使其对于复杂运算及数据处理比较敏感[7]。为了使AES算法能更好地应用于嵌入式系统中,在保证数据安全性的同时,应尽量压缩运算机制,提高运算效率[8]。在本系统的实际应用过程中,对AES加密运算过程进行一定的优化,以适应运算微控制器的特点。具体优化思路如下:

(1)确定迭代的轮数为11,即从第0~第10次进行迭代。钥匙模块使用的微控制器RAM仅有6 KB,无法满足加密运算过程大量数据的缓存。对于具有其唯一序列号的无线钥匙,其对应的数据加密密钥也具有唯一性,因此子密钥的扩展运算可以单独完成。将运算得到的子密钥固化到程序中,在实际使用时,每次只读出一个子密钥进行迭代运算,这样会大大减少MCU内部RAM的使用。

(2)在11轮的迭代运算过程中,每一次迭代运算使用的中间变量在完成本次迭代运算后全部清零,只保留本轮迭代的最终密文。这样可降低MCU的转换运算难度,提高整体的运算效率,同时也能尽量的减少对MCU内部RAM的使用率。

(3)为了保证加密、解密密钥的安全性,在配钥匙的过程中,使用密钥加密密钥对配钥匙数据进行AES加密运算,得到的最终密文作为该钥匙的数据加密与解密密钥。

4 滚动编码技术的实现

(1) 配钥匙过程:无线钥匙初始化。

首先,在无线钥匙端,当微控制器程序固化后,会将本钥匙的序列号(8字节)固化到程序中。使用主控单元具有的一组固定码(8字节),组合本钥匙的序列号,得到一组16字节的数据,经过密钥加密密钥(只有主控单元知道)的AES加密算法优化运算得到一组与本钥匙唯一配套的密文(16字节)作为本钥匙的加密密钥。至此,无线钥匙的加密密钥形成,与无线钥匙的序列码一同固化到该钥匙的微控制器程序中。当车主按下无线钥匙的配钥匙专用按键,向主控单元发送一组配钥指令、滚码计数初始值及本钥匙的序列号并将滚码计数初始值保存到EEPROM存储单元中。主控单元处理配钥匙的过程如图3所示。

Figure 3 Master unit processing for the key图3 主控单元处理配钥匙过程

如图3所示,主控单元无线收发器接收到配钥匙指令后,识别钥匙序列号的有效性,保存滚码计数初始值,提取钥匙序列码(8字节)与其自身的一组固定码(8字节)组合得到一组16字节的数据,经过密钥加密密钥(固化于程序中,只有主控单元知道)的AES加密算法优化运算得到一组与本钥匙唯一配套的密文(16字节)作为当前配备钥匙的数据加密密钥,配钥完成后,主控单元将确认信息发回到无线钥匙端,确定使用新的密钥,同时将旧的密钥注销。

(2) 正常工作过程:滚码技术的实现。

在新的无线钥匙配备并启用后,无线钥匙可进入到正常工作过程。当车主按下无线钥匙的开、关锁相关按键,无线钥匙的微控制器将保存于EEPROM中的滚码计数值读出,并将当前计数值加1保存回EEPROM中。将读出的当前计数值与无线钥匙序列码、按键功能码组合成一组16字节的数据,使用本钥匙的加密密钥对该组16字节的数据进行AES加密算法优化运算得出相应的16字节的密文数据,通过控制无线收发器将密文发出。

主控单元接收到来自无线钥匙的加密数据,将保存于主控单元EEPROM中的无线钥匙的解密密钥、无线钥匙序列码及滚码计数值读出。使用读出的解密密钥对接收到的密文进行解密,提取无线钥匙的序列号与滚码计数值与自身读出的序列码和滚码计数初始值进行验证比较,当确认获得的序列号与滚码计数值有效后,提取解密数据的按键功能码,通过按键功能码识别是开锁数据还是关锁数据,并通过电子锁的继电器控制单元对车门电子锁执行相关的操作[9],如图4所示。

Figure 4 Normal work flow of the system图4 系统正常工作流程图

5 系统的硬件设计

本系统采用的微控制器主要为基于Cortex-M3内核的ARM微控制器STM32,其具有低成本、低功耗等特点。其他组成部分为433 MHz无线收发器nRF905、EEPROM存储器AT24C04、车门电子锁继电器控制单元及按键,系统的硬件连接如图5和图6所示。

Figure 5 Wireless key hardware logic图5 无线钥匙硬件

Figure 6 Master unit hardware logic图6 主控单元硬件

6 AES算法的软件设计及系统调试

6.1 AES算法的加密与解密程序

由第2节内容可知,对于 AES加密算法的优化运算,首先子密钥的扩展单独完成后以数字表W的形式固化到程序中,在使用时程序直接调用W[i]即可。使用的迭代轮数为11次, AES加密算法的加密程序流程图如图7所示。

Figure 7 AES encryption process图7 AES加密程序流程

首先,原始密钥作首轮加入密钥异或运算,初始化迭代计数值;其次,按照字节替代、行移变换、列混合、加入子密钥运算的循环步骤进行10次迭代运算,其中第10次迭代运算不用进行列混合运算;最后,获得最终加密密文,退出加密程序。

AES的解密为AES加密的逆运算过程,程序流程图如图8所示。

Figure 8 AES decryption process图8 AES解密实现程序流程

首先,加入第10次的子密钥异或运算并对迭代计数值进行初始化设置;其次,解密过程主要按照加入子密钥运算、列混合、行移变换、字节替代的顺序进行迭代逆运算,其中,最后一次不用进行列混合运算;最后,由传入的密文进行解密运算后还原出明文数据。

6.2 系统测试及结果分析

无线钥匙发送的开关锁滚码数据报文共16字节,其报文结构如图9所示。其中,报头为1个字节,在此设定为0x11;无线钥匙序列码为8个字节,在此设为0xfe,0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,0xfe;功能码占1个字节,关锁设定为0xff,开锁设定为0xee;计数值占5个字节,计数范围从0到1 099 511 627 776;校验码占1个字节,设定为0x08。

Figure 9 Code rolling message
图9 滚码数据报文

在测试过程中,在无线钥匙端发送配钥、开关锁数据,在主控端接收数据并通过串口终端打印接收和处理的数据,通过对打印数据的分析,验证滚码数据的加密及解密的配对性及滚动性,如图10所示。

Figure 10 Data from serial port terminal图10 串口终端打印数据

在此,从主控端串口终端打印的数据中选取连续三次按键计数值0x00000000ff、0x0000000100、0x0000000101发送滚码密文分析,结果如表1所示。由表1可知,使用改进AES加密算法实现对无线钥匙滚码数据的加密,滚码前后两次密文位数变化量分别为78位和65位,占128位总位数的61%和51%,前后密文位变化率较大。由此可见,本文对AES加密算法的优化设计具有较强的加密安全性,实现了滚码的应用要求。

7 结束语

本文重点讨论了汽车防盗系统中无线钥匙滚码技术的实现,设计了一种AES加密算法的优化运算方法,并运用到汽车安全防盗系统中。通过对硬件与软件的设计及大量的实验调试,验证了整个系统的可行性。虽然本设计是在MCU有限的资源下实现的,但所选MCU本身具有较高的执行效率,通过对滚码数据的对比及系统功能的实现分析,验证了该加密算法的可行性及安全可靠性,说明该算法具有资源消耗小、执行效率高等特点。

Table 1 Contrast of roll code testing data表1 滚码测试数据对比

[1] Yuan Gang,Hou Zheng-feng.Software implementation of code hopping[J]. Journal of Hefei University of Technology,2009,32(12):1859-1862.(in Chinese)

[2] Cheng He-sheng,Ding Lu,Wang Dan-dan. Microchip passive keyless entry system reference design[J]. Computer of Technology and Development,2011,21(4):171-174.

[3] Wang Xian-pei, Zhang Ai-ju, Xiong Ping, et al. A new advanced encryption standard-AES[J]. Computer Engineering,2009,29(3):69-70.(in Chinese)

[4] Han Wen. Analysis and its safety research of AES encryption algorithm[J]. Computer Application of Petroleum,2008,16(2):2-5.

[5] Yu Gong, Niu Qiu-na, Zhu Xi-jun,et al. Theory and practice of modern cryptography[M]. Xi’an:Xidian University Press,2009.(in Chinese)

[6] Hu Wei, Mu De-jun, Liu Hang, et al. Design and implementation of encrypted mobile hard disk drive[J]. Computer Engineering and Applications,2010,46(22):62-64.(in Chinese)

[7] Fu Jie,Lu Jian-zhu,Zheng Xuan. Efficient interleaved encryption scheme in wireless sensor networks[J]. Computer Engineering and Applications,2010,46(18):119-124.

[8] Canright D, Qsrik D A. A more compact AES[C]∥Proc of SAC’09,2009:157-16.

[9] Huang He,Liu Yin-feng,Li Hui. Research on automobile anti-theft system[J]. Microcomputer Applications,2002, 23(1):28-30.(in Chinese)

附中文参考文献:

[1] 袁刚,侯整风.PKE系统中滚码技术的软件实现[J].合肥工业大学学报,2009,32(12):1859-1862.

[2] 程和生,丁路,王丹丹.基于Microchip公司的被动门禁系统分析与设计[J]. 计算机技术与发展,2011,21(4):171-174.

[3] 王先培,张爱菊,熊平,等.新一代数据加密标准-AES[J].计算机工程,2009,29(3):69-70.

[4] 韩雯.AES加密算法分析及其安全性研究[J].石油工业计算机应用,2008,16(2):46-48.

[5] 于工,牛秋娜,朱习军,等.现代密码学原理与实践[M].西安:西安电子科技大学出版社,2009.

[6] 胡伟,慕德俊,刘航,等.移动硬盘硬件加密的设计与实现[J].计算机工程与应用,2010,46(22):62-64.

[7] 付杰,卢建朱,郑旋.一种改进的高效无线传感器网交叉加密方案[J].计算机工程与应用,2010,46(18):119-124.

[9] 黄河,刘银峰,李辉.汽车防盗系统研究[J].微计算机应用,2002,23(1):28-30.

HUANGYou,born in 1987,MS candidate,his research interest includes automobile electronics.

AnAESbasedcoderollingtechnologyanditsapplicationinvehicleanti-theftsystem

HUANG You,ZHANG Xiang-wen,XU Yong,PAN Ming,REN Feng-hua

(School of Electronic Engineering and Automation,Guilin University of Electronic Technology,Guilin 541004,China)

The code rolling technology has the characteristics of variability, intercept resisting, higher security and higher reliability, and it is widely used in vehicle anti-theft alarm system. Based on AES (Advanced Encryption Standard) encryption algorithm and considering the actual application of the system, a code rolling method is proposed and applied in vehicle anti-theft system. The tests prove that the method is safe and reliable, and has lower resource consumption and higher efficiency.

code rolling;AES;vehicle anti-theft system

2012-08-13;

:2012-12-06

国家自然科学基金资助项目(60804059);广西省自然科学基金资助项目(2010GXNSFA013130)

1007-130X(2014)02-0376-05

TP277

:A

10.3969/j.issn.1007-130X.2014.02.030

黄友(1987-),男,广西南宁人,硕士生,研究方向为汽车电子。E-mail:ktomrz.2007@163.com

通信地址:541004 广西桂林市桂林电子科技大学电子工程与自动化学院Address:School of Electronic Engineering and Automation,Guilin University of Electronic Technology,Guilin 541004,Guangxi,P.R.China

猜你喜欢
加密算法解密字节
No.8 字节跳动将推出独立出口电商APP
炫词解密
解密“一包三改”
炫词解密
No.10 “字节跳动手机”要来了?
简谈MC7字节码
基于小波变换和混沌映射的图像加密算法
Hill加密算法的改进
解密“大调解”
对称加密算法RC5的架构设计与电路实现