APP下载

基于AES算法改进的蓝牙安全机制研究

2013-08-13杨晓非

电视技术 2013年5期
关键词:鉴权加密算法蓝牙

杨晓非,赵 婷

(重庆邮电大学电工理论与新技术实验室,重庆 400065)

蓝牙技术的应用层出不穷,但与所有的有线和无线网络通信一样,蓝牙技术也面临着各种安全方面的攻击和威胁,由于其无线通信的特征,蓝牙数据较容易被窃听,数据包中携带的安全因子成分不能过高,合法用户的认证难度较大[1]。由于蓝牙设备的硬件性能有限,其运算的速度较低,存储空间较小,决定了其安全措施必须要简洁和高效。虽然可以通过提高硬件性能的方法达到使用复杂加密算法的目的,但这一途径要增加大量的成本[2]。因此,将复杂的加密算法进行消减,使之能够应用于蓝牙鉴权过程中的数据加密是一种行之有效的方法。

AES(Advanced Encryption Standard)加密算法[3]是一种安全性较高的算法,目前,256位的AES算法尚未有破解的方法。AES算法的高安全性对硬件有着较高的要求[4],而自组网方式的蓝牙移动系统[5]显然无法满足其要求。针对这一情况,采用经典的客户端/服务器(C/S)方式为网络架构,服务器端采用固定设备,客户端即为蓝牙移动设备。

为了更好地使AES加密算法应用于蓝牙的鉴权过程,还需要从数学理论和具体程序实现两个角度对算法进行改进,目的是尽量减少计算的复杂度和时间,降低系统对存储空间的需求,从而使蓝牙移动设备的硬件条件能够支持AES算法的运行。

1 蓝牙鉴权过程中的安全隐患分析

蓝牙系统中的鉴权过程是保证系统安全性的重要步骤和机制,为了获取通信信息,对于鉴权过程的攻击也较多,主要包括以下4 种[6]:

1)跳频攻击。这一攻击方式是指攻击者利用在蓝牙网络中可得到的节点移动身份号(MIN)和电子序列号(ESN),将自身伪装成安全的授权节点,将通过MIN和ESN与蓝牙节点建立连接,从而获取该节点的数据信息,并可以对节点现有的数据进行破坏。

2)链路密钥攻击。蓝牙设备在原始链路密钥阶段时,采用的PIN码为4个自然数,采用暴力破解的方式可以较容易地得到正确的PIN码,从而在蓝牙系统处于设备密钥产生阶段时,对整个蓝牙系统的安全体系进行破解。同时,由于链路密钥的共享性,这一破解方式可能会造成整个安全系统的失效。

3)对加密算法实施攻击。蓝牙系统中的加密算法一般是采用序列密码的方式,这一方式的优点在于其运算的速度较快,算法的结构简洁,有利于硬件方法的实现。但这一加密算法的安全性不高,较容易被反射方法实施攻击。

4)基于基带频率的攻击。蓝牙系统在大多数情况下是一种自组网的系统,为了保证正常通信,使用了跳频技术。这一技术规范要求在通信双方在实现跳频操作时,对时钟进行同步的校准。而攻击者只需要利用物理方法对基带的时钟进行干扰,就可以使通信发生故障。

针对以上在蓝牙鉴权过程中存在的4个主要隐患分属于不同的研究领域,本文重点针对其中对加密算法实施攻击的手段进行研究,提出将高安全性的AES加密算法经过改进后,应用于蓝牙的鉴权过程,以提高蓝牙鉴权过程中加密算法的安全性。

2 鉴权过程中的一般防范措施

蓝牙系统鉴权过程中的防范措施主要从硬件和软件两个角度进行考虑[7]。

硬件方面:

1)在蓝牙系统中使用授权认证以及授权发布中心的功能。采用以上两种方法后,一方面可以确保合法用户身份的安全性,另一方面也可以保证非授权的用户无法使用合法身份进行网络连接,并能够及时地发现网络中的非法入侵者。

2)增强加密变换的安全性。蓝牙系统的安全机制中,包括在跳频时,使用产生的伪随机序列对数据进行加密操作。在对数据进行加密的操作上,可以使用两次加密的方式,在伪随机数序列的使用方面,可以采用不同伪随机序列的异或及其他计算方法,从而使加密的效果更好。

3)优化频率管理。蓝牙系统是通过无线网络实现数据通信,具有一定的频率,而该频率对蓝牙系统的跳频工作机制影响较大,同时也会影响到蓝牙系统的性能发挥。优化频率管理,不仅可以使不同设备之间的负载得到更好的平衡,也可以通过限制最大频率,防止干扰频率攻击。优化频率管理可以在保证正常通信的前提下,使基带范围减小,从而降低被窃听的可能性。

4)蓝牙协议的优化。对链路层协议进行改进,使其能够保证数据信息的分组安全和完整性,也可以在蓝牙产品中提高数据干扰码的质量,加大移位寄存器的位数。

软件方面:

1)优化加密资源管理方法。一是强制增加PIN码的长度,并在蓝牙应用程序中提供对长PIN码的支持。增强PIN码的随机性和不可预测性,使PIN码的取值范围扩大到暴力破解不具有意义的程度。为PIN码设置有效期限。设备密钥应通过数据加密后才能在不同的蓝牙设备之间传递,链路密钥也应定期更改。

2)提高整个软件系统的安全性。加强系统服务安全性的管理,由于系统服务中的信息数据较为重要,其中还包括分组的密钥等加密资源,因此在一般安全措施的前提下,一旦发现是系统服务,则应立即提升安全保护的级别。

3)利用高安全性加密算法。由于蓝牙系统的硬件限制,复杂的、需要大量运算和存储空间的数据加密算法无法直接应用于蓝牙系统,但可以通过软件处理的方式,设计合适的网络架构方案,并对加密算法进行改进,使之能够为蓝牙系统提供更好的安全保护。

3 AES加密算法应用于蓝牙系统的改进

AES加密算法是目前使用的最为安全的数据加密方式,一般用于对安全具有特殊要求的领域,如金融系统,军事系统等[8]。对于自组网方式的蓝牙系统而言,AES加密算法的高性能要求无法应用其中,因此必须要在系统网络架构和算法的具体实现方法上进行改进。

3.1 系统架构设计

系统架构分为服务器端和客户端两个部分,其中服务器端的组成结构如图1所示。

图1 AES加密系统服务器端架构图

服务器端主要是由固定服务器设备构成,图1中大箭头表示数据缓冲区。有线网络模块向服务器发出数据传输的请求,服务器调用AES解密模块对数据信息进行处理,解析数据发送者的身份信息,根据解析的结果决定是否允许数据传输进程的开始。其中的扩展模块可以增加运算处理单元,从而提高AES算法的处理能力和效率。

服务器端的这一结构可以控制数据的输入和输出端,抵御冒认攻击。由于该架构采用类存储器的设计方式,有较地降低了上下文的相关性,从而抵御利用网络数据统计信息进行的攻击。服务器端的所有功能都采用模块化的设计方式,各模块的内部结构与功能对外界透明,增加了攻击的难度。

客户端的架构如图2所示。客户端同样是一个总线模式的架构。从外部看,客户端部署于蓝牙系统的移动终端上,与服务器端是C/S的网络拓扑结构关系。当需要进行数据的传输时,客户端生成授权身份号,并通过AES加解密模块处理后提交给服务器进行验证,并由服务器确定该客户端的操作权限。考虑到蓝牙移动设备的硬件性能有限,客户端所需要进行的AES复杂运算都以数据包的形式发送到服务器端进行处理。

图2 AES加密系统客户端架构图

3.2 AES加密算法的改进

与IDEA、DES等分组加密算法不同,AES加密算法中的乘法和加法操作都是在域上实现的,也就是一个典型的交换环结构[7]。AES算法是在有限域GF(28)上实现的,对于加法操作而言,由于需要处理的数值只有256个,且都是在GF(28)有限域上进行操作,其运算量较小,速度也较快,但对于乘法而言,则需要消耗大量的计算资源和时间。

标准的AES算法的乘法运算元使用的是0x01,0x02,0x03,0x09,0x0b,0x0d,0x0e。所有的乘法运算定义域和结果域均为GF(28)有限域。由以上的分析可知,AES算法是一种完全依赖于数学的算法,利用运算元的特性来进行数域变换,这也是AES算法区别于其他算法的一个重要特点。

GF(28)有限域对于乘法是封闭的,利用这一特点,对各运算元进行分析。

对于0x01运算元,GF(28)有限域中的数与之相乘,等于与乘法群的单位元进行运算,所以在域中的运算结果,与群中的运算结果相同。

对于0x02运算元,如果基数小于0x80,与0x02相乘,只需要将该数左移1位;如果基数大于或者等于0x80,则是该数与0x1b异或所得到的值再左移1位。

对于其他的乘法运算元,可以将其分解为0x01和0x02运算元的组合,以简化乘法运算的过程。以0x03运算元为例,可将其分解为如下形式(设p为基数):p×0x03=(p×0x01)+(k×0x02)。其他的运算元也可以做类似的分解处理。

经过以上的算法优化,虽然简化了AES算法中乘法的运算流程,但效果并不明显。为了更好地加快AES算法中乘法的运算速度,在硬件存储条件允许的情况下,可通过查表的方式来实现快速运算。AES算法的正向表如表1所示。

表1 AES正向乘法表(乱序)

AES逆向乘法表如表2所示。

表2 AES逆向乘法表

对于m=i·j的运算,首先在表1中找到i和j,一定可以在表2中找到a和b,以满足m=i·j=g-1{256(a+b)}这一公式关系。由此,可以将AES乘法运算转换为加法运算,可以极大地提高算法的运算效率。

以上,采用以空间换时间的方法,在蓝牙设备的存储器中设置两个乘法查询表,将传统AES算法中代数运算转换为查表运算,从而可以大幅提高处理的效率。由于这一方法在减少运算量的情况下,仍然覆盖了整个GF(28)有限域,因此,其安全性并没有受到损失。

上述对AES算法的改进,是在不改变AES安全性的前提下提高其运算的效率。而AES加密算法中的轮变化和密钥扩展是其安全性的关键之处。其中,在轮变化过程中,包括了非线性变换、线性混合变换、密钥加层3个流程。通过对轮变化过程的分析,改进后的初始密钥生成过程如图3所示。

图3 蓝牙AES加密算法初始密钥的生成过程图

以上设计的算法流程,引入了RSA算法的思想,也就是通过随机选择运算函数,或者采用伪随机数异或运算操作的方法,在保证密码强度不变的前提下,缩短了密钥的预处理时间。具体的方法是通过一个素数与初始密钥的异或操作来确定密钥的随机空间,在保证随机空间不减少的情况下,降低了计算量。

密钥的扩展是AES加密算法中另一个关键的步骤。密钥扩展函数以原始密钥为基础,生成一个新的密钥表。采用密钥表中的多个密钥对数据进行分段加密,从而提高数据的安全性。

在加密的过程中,针对蓝牙网络和设备的特点,主要作了如下改进:

1)利用不同长度的子密钥有针对性地对不同长度的分组数据进行加密操作。

2)改变AES中原来的列混合变换。

3)在AES算法最后一轮函数中去除列混合变换的操作,在保证安全性的前提下,加快系统的计算速度。

对应地,对于蓝牙系统中AES解密过程的改进包括以下几点:

1)利用不同的子密钥对不同长度的分组报文进行解密操作。

2)利用查表的方式实现解密过程中的乘法运算。

3)设计逆移位模块与逆替代模块之间的可互换性。

3.3 适用于蓝牙的AES算法

基于以上对AES加密算法的改进,设计了一套适用于蓝牙系统的AES加密算法,该算法基于目前AES标准中定义的类型和数据长度,并对其中的加解密环节进行了优化,删除了计算复杂但对安全性影响较小的模块,并利用C语言实现了公共模板类。以加密过程为例,利用C语言在硬件层实现了数据加密密钥的生成以及传输数据的读取;利用C++语言实现了网络层的数据包传输;利用C#语言在应用层实现了对数据的校验操作。蓝牙系统中AES加密模板类定义如下:

class AESClass{//定义AES模板类

void AESClass::AES_Encrypt() {//加密操作

Receive_Text_Message();//预处理明文数据

Expand_Key(UserKey);//扩展密钥操作

Init_Key(0);

for(int i=1;i<Round-2;++i);//轮变化处理

{Round(i);}

Last_Round();

Send_Encryped_Message();

}

void AESClass::AES_Decrypt() {//AES的解密过程

Receive_Code_Message();//预处理密文数据

Expand_Key(UserKey);//扩展密钥操作

InvLast_Round(); //Last_Round()的逆函数

for(int i=1;i<Round-2;++i);//轮变化处理

{

InvRound(i);}

InvInit_Key(0);

Send_Decryped_Message();

}

}

在该AES加密算法过程中,主要的思想是利用增加存储空间的方式来获取更快的运算处理速度。

3.4 仿真测试

为了验证基于AES改进算法蓝牙安全机制的有效性,以蓝牙1.0版本作为研究工具,将蓝牙的调频模式设置为标准的连续模式,并指定AES加密密钥的位数为128位,分别对3段报文采用非加密和AES加密两种方式进行传输,得到的结果如表3所示。

表3 两种加密模式传输时间仿真测试结果

由以上的仿真测试结果可以看出,将改进的AES算法应用于蓝牙的安全保护,在提高安全防护能力的同时,并不会对传输的性能产生较大的影响。

4 结论

蓝牙无线网络在鉴权过程中的数据加密,是其安全机制的重要组成部分。目前采用序列密码方式的加密过程存在着易被攻击的缺陷,而采用分组密码的方式可以有效地提高系统的安全性,但对于硬件的要求较高,不适用于蓝牙网络环境。以AES加密算法为例,利用查表的方式加快其运算速度,以空间换时间的方式,设计了AES加密算法的改进方案,使其更适合于蓝牙无线网络的应用环境。

[1]NAFIE S M,DABAK A G,SCHMIDL T M,et al.Enhancements to the Bluetooth specification[J].Systems and Computers,2010,35(2):1591-1595.

[2]LANSFORD J,STEPHENS A,NEVO R.WiFi and Bluetooth:enabling coexistence[J].IEEE Network,2011,15(5):33-34.

[3]LI Xuemei,OU Haiwen,LU Erhong,et al.The implementation of AES algorithm IP core in FPGA [J].Computer Engineering and Applications,2006,24(24):84-86.

[4]ZHANG Qitao.On a hardware implementing method of the optimized AES encryption algorithm[C]//Proc.2010 Second International Conference on Multimedia and Information Technology(MMIT).[S.l.]:IEEE Press,2010:82-84.

[5]张毅,叶天翔,马子超.面向移动终端的蓝牙网关设计与实现[J].电视技术,2012,36(5):41-43.

[6]SHEPHERD R.Bluetooth wireless technology in the home[J].Electronics Communication Engineering Journal,2011,13(5):195-198.

[7]宣善立,吴永忠,韩江洪,等.蓝牙技术安全研究[J].计算机工程,2009,28(9):93-95.

[8]王莹,何大军.AES加密算法的改进与实现[J].电脑编程技术与维护,2010(17):83-84.

猜你喜欢

鉴权加密算法蓝牙
蓝牙音箱的直线之美
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
混沌参数调制下RSA数据加密算法研究
紧急:蓝牙指尖陀螺自燃!安全隐患频出
HES:一种更小公钥的同态加密算法
基于小波变换和混沌映射的图像加密算法
移动网络用户频繁鉴权问题的优化方案探讨
对称加密算法RC5的架构设计与电路实现
USIM卡的鉴权需求对GSM/TD-SCDMA/TD-LTE融合网络影响