APP下载

动态密钥机制AES算法在汽车门禁系统中的应用

2015-01-16蒋少华丁志中

关键词:随机性加密算法密文

蒋少华, 丁志中

(合肥工业大学 计算机与信息学院,安徽 合肥 230009)

动态密钥机制AES算法在汽车门禁系统中的应用

蒋少华, 丁志中

(合肥工业大学 计算机与信息学院,安徽 合肥 230009)

针对传统汽车无钥门禁系统中AES加密算法固定初始密钥存在密钥管理难度问题,文章提出一种基于动态密钥机制下的AES算法。实验结果表明该算法不仅可以实时有效地更新管理AES算法的初始密钥,而且对系统中身份认证过程中的数据安全防盗性有较好的改善,在一定程度上消除了该系统密钥泄露的安全隐患,对无钥门禁系统中身份认证协议的设计具有一定的参考价值。

汽车无钥门禁系统;AES算法;动态密钥机制;单向散列函数

0 引 言

汽车无钥门禁(passive keyless entry,PKE)系统是指当携带钥匙的驾驶员靠近汽车时,无需拿出钥匙,只要按下车门把手上的微触开关,便可自动开锁,其以使用便捷性和安全防盗性在汽车配置市场获得了广泛的应用,逐渐代替无线遥控钥匙系统(remote keyless entry,RKE)成为中高端车型的标准配置。

PKE系统的安全性一直是人们关注的焦点。PKE作为双频段的双向通信系统,其通信安全协议中最重要的就是对高频信号的加密。因此PKE系统中高频通信的加密算法,也就成为了PKE系统研究的重点和难点。早先Microchip公司提出基于滚动码Keeloq技术的PKE系统方案,采用Keeloq加密算法对高频通信中指令帧信号加密,在当时被称为最安全的算法[1]。随着信息技术的发展,Keeloq技术渐渐显现出密钥长度短,抗“暴力”搜索攻击能力有限等不足,最终Keeloq算法被破解。其后NEC公司提出基于数据加密算法(Data Encryption Standard,DES)的PKE系统,DES算法的密钥长度短和存在弱密钥问题也为整个系统的安全带来隐患。Atmel公司提出了基于高级加密算法标准(Advanced Encryption Standard,AES)的PKE系统。AES算法无论在密钥长度上还是在抗密码分析攻击能力上,都比Keeloq算法和DES加密算法强很多[2]。然而对于整个系统的安全性而言,除了加密算法外,密钥的分配和管理对系统的安全性影响也很重要。由于PKE中初始固定密钥在出厂时统一配置,因此存在密钥泄露的风险,同时也加大了密钥管理和分配的难度,给系统的安全性带来隐患。

本文针对PKE系统初始固定密钥易泄露的问题,提出了基于动态密钥机制的AES算法,在每次加密过程中,初始密钥都会更新,有效防范了密钥泄露攻击;另一方面,对数据帧采用有效的纠错和检码机制,保证了系统的可靠性[3]。

1 动态密钥机制原理

1.1 AES算法描述

高级加密标准,通常称为AES算法,是由美国国家标准技术研究所(NIST)通过公开招标并从众多候选算法中选出的一种效率高且加密强度大的对称加密算法。AES是一个迭代分组算法且明文块和密钥块取值都可变,分别规定为128、192、256 bits,使算法的安全性和高效性得到很好的保证[4]。

由于对称性,AES的解密过程就是其逆操作。AES加密算法的具体流程如图1所示。

图1 AES加密算法流程图

AES算法的设计基于宽轨迹策略并采用SPN结构,因此AES的一次加密过程由多轮迭代组成,其每轮操作有4种:字节替换、行位移、列混合和轮密钥加。根据数据和密钥长度,AES算法有不同的轮数[5],见表1所列。

表1 128AES、192AES的参数

(1)算法初始化。AES算法的输入和输出都是以字节为最小单位,输入时把数据帧进行束分割,把数据块按每8 bits为1束,按列填充到矩阵A中(也称为状态)。标准算法中所用到的2个矩阵分别为:

其中,ai,j=0或1。下面以A128为例阐述后续算法步骤。

(2)字节替换。字节替换是一个非线性变换,对元素起到混淆的作用。它对每个元素的操作都是独立的,是一个砖匠变换,又称S盒变换:

S盒变换过程为:aij根据下标在S中找到相应位置的元素进行替换。在解密时对逆S盒进行同样的操作。

S盒变换是AES唯一的非线性步骤,关系到整个算法的抗差分密码和线性密码分析能力。所以S盒和逆S盒的构造要遵循非线性度和数复杂度等准则,利用有限域GF(28)中求元素的逆和可逆仿射变换2个过程来实现,以保证差分均匀性和线性偏差达到最佳。

(3)行位移。行位移是一种线性变换,其作用是确保多轮后数据高度扩散。行位移在状态的每行间进行,其操作是将第m行进行偏移量为m字节的循环左移,即

解密时进行循环右移。

(4)列混合。列混合变换也属于线性变换,在列混合操作中,状态矩阵的每一列看成是有限域GF(28)上的多项式。然后与固定多项式03x3+02x2+01x+02(系数为十六进制数)相乘,模x4+1可表示为:

其中,a0、a1、a2、a3是经过行位移后的状态列。列混合的逆操作只要把列混合变换中的c(x)换成它的逆多项式d(x)即可。逆多项式满足:

(5)轮密钥加。把每轮的轮密钥(AES算法中每一轮操作所用密钥,其中每轮密钥各不相同,是从初始的固定密钥中由密钥扩展算法获得)与列混合操作后的状态矩阵异或,它本身也是逆操作。

1.2 动态密钥机制的建立

单向散列函数可以将任意长度的数据块压缩到某一固定长度。例如散列函数MD5,可以由任意长度的消息输入压缩得到128 bits长度的散列值,且具有良好的随机性[6]。

MD5函数的模型为:h=H(M)。其中,M 可以为任意长度;h为固定128 bits的长度散列值。H具有以下性质:① 给定H 和M,很容易计算h;② 给定h和H,很难计算M;③ 给定H,要找到2个不同的M1和M2,使得H(M1)=H(M2)在计算上是不可行的。其流程如图2所示。

图2 MD5流程图

利用单向函数这一性质得到PKE系统初始动态密钥,过程如下:

其中,M 由同步码、汽车ID、钥匙ID、厂商代码、固定初始密钥构成。

把128 bits散列值作为系统的动态密钥(DK),每次同步码的变更会引起M 的变化,从而带动DK的更新(M的长度不受限制,可以兼容不同厂家代码格式),这样可以满足产生动态密钥所要求的2个看似矛盾的性质,即变化随机性和固定唯一性,但它们又是辩证统一的关系。变化随机性表现为每次加密前产生的动态密钥在每位上的变化都有高随机性,固定唯一性是指若M固定,则DK就唯一。这样不仅可以抵抗密钥泄露攻击,又确保加解密时系统所用动态密钥的同步。

在动态密钥机制中,遵循先产生后分配再验证的顺序步骤。具体过程在系统安全通信协议的应用中描述。

2 基于动态密钥机制的汽车安全通信协议

PKE系统由车载基站和智能钥匙2部分构成,2者之间通过125 k Hz低频信道和433 MHz高频信道完成双向通信过程,如图3所示。车载基站的低频发射器在车门附近约1~2 m距离的范围内形成电磁场,作为搜索该区域内钥匙的信号,接收到搜索信号后的钥匙通过高频信道向车载基站发送相应的指令[7]。其中高频信道中指令帧包含了用户指令(功能码)和同步码等重要信息,一旦泄漏或被拦截后破解,对整个汽车的安全性存在很大威胁。

图3 PKE系统框架图

该协议分为出厂阶段、学习阶段和应用阶段。学习模式是在指定的安全环境下才可被激活,这一环境下的数据交换用固定密钥FK做192AES加解密算法。学习结束后,钥匙端含有跟基站端相同的信息参数,如图4所示。

图4 PKE系统工作图

随后直接用(7)式产生动态密钥DK,并保存等待调用。

在应用阶段中,加密过程是在接收到车载基站的搜索信号后触发。表2、表3所列为A帧和B帧的数据帧格式,A帧包含功能码和同步码信息等核心重要信息,长度为64 bits,经过1∶2卷积编码后长度变成128 bits,不仅可以满足AES算法对待加密数据帧格式的要求,同时加入纠错检码机制,确保了数据的传输可靠性。加密过程如图5所示。

对经过卷积编码后的A帧用动态密钥DK作为128AES的初始密钥进行一次加密后,再结合B帧进行初始密钥为FK的192AES进行二次加密,这时采用的是消息鉴别加密模式,B帧携带验证信息充当 MAC报文[8]。

双重加密不仅增加了同步码和指令码等钥匙中核心数据的安全性,还提高了无线传输的可靠性和有效性。

表2 A帧数据格式 bit

表3 B帧数据格式 bit

图5 钥匙端加密过程

车载基站端在接收到加密后的指令帧时,先进行FK下192AES解密,如图6所示,一次解密后对MAC帧(B帧)进行验证,22 bits汽车ID和30 bits钥匙ID作为一次验证码。考虑到算法的时效性,一次验证成功后则直接用MAC帧携带的同步码低10位对原同步码进行同位代替,从而快速产生动态密钥DK,再用DK进行128AES进行二次解密。利用A帧的身份码进行二次验证,主要是对DK进行检验,确保数据的有效传输。

图6 基站端解密验证过程

考虑到误操作等情况(钥匙不在基站范围内触发微触按钮激活系统),二次验证中同步码的值不要求完全相同,这里采用同步窗口机制:当比对后同步码差值在(0,16)时,属于单操作窗口,直接执行功能码;差值在(16,1 000)属于双操作窗口,则暂存当前同步码,等待下次解密获取同步码,若值连续,则执行功能码。余下为拒绝操作窗口,拒绝执行功能码[9]。

同时这一机制还能保证第1次验证后同步码低10位同步代换的准确性。由于38位的同步码中,低10位码的范围是[0,210],也就是说如果同步码不在双操作窗口的范围内,即使同位替换后,也无法产生正确的DK。

3 协议性能实验分析

为了测试该通信协议的安全性和可靠性,用Matlab编程对动态密钥生成随机性和明密文相关性进行测试。

(1)动态密钥生成随机性测试。在协议中,保证其他参数不变,随机设定同步码初始值后令其自加100次,得出密钥发生变化的情况。试验结果如图7所示。

图7 同步码自加时的密钥变化率

其中变换率是指与原码比较变动的位数所占码数的比率,动态密钥更新后的变化率越接近0.5,则说明其随机性越高。由图7可以得出,随着同步码自加,密钥变化率在0.5附近。这说明该协议生成的动态初始密钥满足随机性要求,可以有效抵抗密钥猜测攻击。

(2)动态密钥机制下的密文生成随机性测试。动态密钥机制下改变AES算法中的初始密钥,产生的密文是否也像标准AES中一样满足随机性要求也是衡量该协议安全性的一项重要指标。保证其他参数不变,令密钥发生变化,得出动态密钥机制下生成密文情况。

在实验中,控制密钥变化率从0到1时,得出密文的变化率如图8所示。理论上不管密钥改变多少位,密文的变化率越接近0.5,则生成密文的随机性越好。图8中的密文变化率集中在0.4~0.65之间,说明基本能满足密文生成的随机性要求,可以有效抵抗重发攻击和唯密文攻击。

图8 密钥变化时的密文变化率

(3)动态密钥机制下明密文相关性测试。协议中,保证其他参数不变,令其固定密钥发生改变,得出动态密钥机制下产生的密文与明文对比的情况,如图9所示。

图9 密钥变化时的明密文对比变化率

理论上,不管密钥变化多少位,明密文比较变化率越接近0.5,则说明该动态密钥机制下明密文的相关性越小,则抗选择明文攻击能力越强。图9中明密文比较变化率在0.45~0.6之间比较密集,说明该动态密钥机制下的AES算法满足明密文相关性小的要求。

4 结束语

本文利用动态密钥机制下的AES算法改进汽车PKE系统高频通信协议,形成一次一密、动态密钥和固定密钥相结合、2次认证的高安全性系统。在PC机上用Matlab仿真,实验结果表明,该协议可以在低时耗和高可靠性的前提下有效提高PKE系统的密钥抗攻击性和安全可靠性。

[1]张俊林.滚动码技术在汽车防盗系统中的应用[J].工业控制计算机,2010,23(6):111-113.

[2]魏嘉银,吕 红,秦永彬.一种基于AES算法的通信信息加密传 输 方 案 [J].计 算 机 与 数 字 工 程,2011,39(10):121-123.

[3]韩 德,张 倩.基于Rijndael算法的动态密钥和算法实现[J].信息工程,2013,3(1):8-12.

[4]Daemen J,Rijmen V.高级加密标准AES算法Rijndael的设计[M].谷大武,徐胜波.译.北京:清华大学出版社,2003:128-130.

[5]韩 雯.AES加密算法及其IC设计方法研究[D].青岛:青岛科技大学,2008.

[6]闫 浩.AES加密算法的无钥匙进入系统[J].单片机与嵌入式系统应用,2011,33(2):65-67.

[7]闫 浩.基于AES的汽车无钥匙门禁系统的研究与实现[D].郑州:郑州大学,2011.

[8]汤鹏志,陈仁群,张庆兰.对一类基于身份签密方案的分析及改进[J].合肥工业大学学报:自然科学版,2014,37(8):938-943.

[9]程和生.被动门禁系统的设计及其关键技术的研究[D].合肥:合肥工业大学,2010.

Application of dynamic key mechanism of AES algorithm in passive keyless entry system

JIANG Shao-hua, DING Zhi-zhong
(School of Computer and Information,Hefei University of Technology,Hefei 230009,China)

In order to solve the key management problem of advanced encryption standard(AES)algorithm in the traditional passive keyless entry(PKE)system,an AES algorithm based on dynamic key mechanism is proposed.The experimental results show that the algorithm can not only update and manage the initial key of AES algorithm in a real-time and effective way,but also improve the data security identity in the system certification process.The hidden danger of the key disclosure in the PKE system is eliminated to a certain extent.The proposed method provides a reference for the design of identity authentication protocol in the PKE system.

passive keyless entry(PKE)system;advanced encryption standard(AES)algorithm;dynamic key mechanism;one-way hash function

TP309.7;U463.676

A

1003-5060(2015)02-0199-05

10.3969/j.issn.1003-5060.2015.02.013

2014-02-13;

2014-03-05

合肥工业大学昌辉汽车技术研究所资助项目(12-075)

蒋少华(1989-),男,安徽合肥人,合肥工业大学硕士生;

丁志中(1962-),男,安徽芜湖人,博士,合肥工业大学教授,硕士生导师.

(责任编辑 何晓雄)

猜你喜欢

随机性加密算法密文
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
混沌参数调制下RSA数据加密算法研究
浅析电网规划中的模糊可靠性评估方法
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*
HES:一种更小公钥的同态加密算法
考虑负荷与分布式电源随机性的配电网无功优化
适用于随机性电源即插即用的模块化储能电池柜设计
基于小波变换和混沌映射的图像加密算法