最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

【豆丁推荐】-一种蓝牙传输加密方案的设计与实现

IT圈 admin 28浏览 0评论

2024年4月26日发(作者:戚冰枫)

豆 丁 推 荐

精 品 文 档

计 算 机 工 程

35

卷 第6期

Vol.35 No.6

Computer Engineering

·安全技术·

文章编号:1000—3428(2009)06—0183—03

文献标识码:A

2009年3月

March 2009

中图分类号:TP309.1

一种蓝牙传输加密方案的设计与实现

郁 滨,李颖川

(解放军信息工程大学电子技术学院,郑州 450004)

摘 要:针对蓝牙协议的基带层加密方案在密钥方面易受穷尽攻击、中间人攻击和E0算法容易受到代数攻击的问题,根据蓝牙设备的特

点提出一种基于主机控制器接口层的加密方案,利用改进的ECDH协议保护密钥的安全性。实验表明,该方案能有效提供安全保护机制,

解决蓝牙在可靠传输模式下影响传输速度的问题,其AES对蓝牙设备的传输速率影响较小。

关键词:蓝牙安全;加密方案;AES算法

Design and Implementation of Encryption Scheme

of Bluetooth Communication

YU Bin, LI Ying-chuan

(Institute of Electronic Technology, PLA Information Engineering University, Zhengzhou 450004)

【Abstract】Aiming at the exhaustive attack and Man in The Middle attack on the key, algebra attack on E0 algorithm of the baseband encryption

scheme, this paper proposes a new encryption scheme on the HCI layer, based on the features of Bluetooth devices. It protects the security of key

with improved ECDH protocol. Experiment demonstrates the scheme provides more security mechanism and solves the impact on communication

under reliable transmission, and the style of improved AES algorithm has less impact on communication.

【Key words】Bluetooth security; encryption scheme; AES algorithm

1 概述

蓝牙是一种短距离无线数据与语音通信的开放性全球规

范,它的主要特性为健壮性、低功率和低价格,并以一种极

为经济的形式解决了无线通信“最后10米”的问题,对人类

的生产生活产生了不可估量的影响。随着蓝牙技术的普及,

蓝牙的安全性成为业界关注的热点。蓝牙规范

[1]

定义了基带

层的安全,首先利用PIN码的变化产生加密密钥,然后用E0

算法对数据进行加密保护。文献[2]给出对蓝牙PIN码的攻击,

可以在

1 s内攻破4位的短PIN码,攻击者利用PIN码可以

获得加密密钥,从而进行窃听攻击。蓝牙简单配对白皮书

[3]

的发布使PIN码的攻击难度增加,但是仍不能完全避免中间

人攻击

[4]

。文献[5]对E0算法进行了分析,指出E0流密码算

法主要的缺点是线性反馈寄存器

(LFSR)的资源能力有限,如

果密钥流产生器中某个

LFSR(共有4个LFSR)产生的序列周

期比密钥短,则存在分别征服破译攻击(Divide-and-Conquer)

的威胁。文献[6]提出用一种基于DES的分组密码算法来取代

E0算法,但目前DES算法的安全强度已不能满足需要。另

外,当蓝牙工作在重传和流控模式时,就会对数据进行重复

加密

[1]

,从而降低传输速率。因此,蓝牙规范的基带层加密

方案在密钥生成、密码算法方面都存在不安全的问题,在传

输速率方面也得不到保证。

新进行加解密,在信道干扰严重的情况下,就会影响传输速

度。为了解决这个问题,本文将传输加密方案设计在

HCI层,

对要传输的已加密数据进行缓存。

2.1 加密密钥的安全获取

为了抵抗在加密密钥的生成过程中存在的穷尽攻击和中

间人攻击,本文采用ECDH密钥交换方案抵抗穷尽攻击,同

时利用文献[4]提出的预共享秘密信息的方法防止中间人攻

击,协议流程如图1所示,其中,HMAC-SHA-256算法保护

数据的完整性和新鲜性,协议中用

Hx表示。

#

发起设备A

PKa

响应设备B

PKb

DHKey=P

192

(SKa,PKb)DHKey=P

192

(SKa,PKb)

准备过程

令Ra = 0

s=H

0

(PKb,PKa,P)

令Rb = 0

s=H

0

(PKb,PKa,P)

选择随机数Na

Ca=H

1

(PKa,PKb,Na,s)

Ca

Cb

Na

选择随机数Nb

Cb=H

1

(PKa,PKb,Nb,s)

1

A→BCa

2

B→ACb

3

A→BNa

4

B→ANb

认证过程

Cb'=H

1

(PKb,PKa,Nb,s)

Ca'=H

1

(PKa,PKb,Na,s)

Nb

验证

Ca=Ca'

验证

Cb=Cb'

LK=H

2

(DHkey,Na,Nb,ADDRa,ADDRb)

K

cipher

=E

3

(LK,Na,Nb,ACO)

LK=H

2

(DHkey,Na,Nb,ADDRa,ADDRb)

2 传输加密方案设计

主机控制器接口层(HCI)处在L2CAP层与基带层之间,

是主机与设备通信的通道。通常在

L2CAP层会将长的服务数

据包

(SDU)拆分成短的协议数据包(PDU),然后通过HCI层传

到基带层。流量控制和重传机制都在L2CAP进行设定,通过

HCI进行管理和数据缓存。如果设置了流量控制和重传机制

并出现了传输错误的问题,在基带层传输敏感数据时必须重

密钥生成

K

cipher

=E

3

(LK,Na,Nb,ACO)

图1 密钥安全获取协议

作者简介:郁 滨(1964-),男,教授、博士、博士生导师,主研方

向:信息安全,蓝牙技术,视觉密码;李颖川,硕士研究生

收稿日期:2008-08-20 E-mail:***************

—183—

协议双方经过图1所示的认证过程后,就可以生成此次

的会话密钥

LK,然后按照蓝牙协议中规定的方法将鉴权密码

偏移(Authentication Cipher Offset, ACO)、当前的会话密钥和

在加密协商过程中交换的随机数送入E3算法,从而获得安

全的加密密钥。本协议的安全性主要取决于认证过程的安全

性,它的证明参见文献[4]。

2.2 HCI层的加密流程

2000年10月美国国家标准和技术研究所正式宣布选择

Rijndael作为AES算法,成为一种正式的商业加密标准。业

界认为AES算法是足够安全的,因此,本文采用AES作为

敏感数据的加密传输算法,对数据流进行机密性保护。加解

密方案如图2所示。

HCI

获得蓝牙分组类型

其他

数据

SCO

数据

ACL数

其他

数据

AES解密模块

AES加密模块

加密后的

敏感数据

获得蓝牙分组类型

蓝牙射频接收

ACL

数据

SCO

数据

HCI

(2)列混淆变换与逆列混淆变换

列混淆变换是AES算法中最复杂的过程,它涉及字节乘

和异或,由于蓝牙设备本身的计算能力有限,因此利用文

献[7]提出的建议对列混淆进行重写,并使用查表的方式取代

乘法操作。其中,列混淆变换如下:

Tmp

=

s

0,j

s

1,j

s

2,j

s

3,j

'

s

0,j

=

s

0,j

Tmp

X2[s

0,j

s

1,j

]

'

s

1,j

=

s

1,j

Tmp

X2[s

1,j

s

2,j

]

'

s

2,j

=

s

2,j

Tmp

X2[s

2,j

s

3,j

]

'

s

3,j

=

s

3,j

Tmp

X

2[

s

3,j

s

0,j

]

逆列混淆变换如下:

Tmp1

=

X2[X2(s

0,j

s

2,j

)],

Tmp2

=

X2[X2(s

1,j

s

3,j

)]

''

s

0,j

=

s

0,j

Tmp1,

s

2,j

=

s

2,j

Tmp1

''

s

1,j

=

s

1,j

Tmp2,

s

3,j

=

s

3,j

Tmp2

综上可知,实现AES算法需要3张表以及存储这些表所

需的756 Byte的存储空间。

3.2 基于32位RISC处理器的实现改进

对于32位RISC处理器,可以将操作定义在32位的字

上。根据文献[7]的建议,首先利用代数形式定义一轮的4个

变换,变换表示如下:

e

0,j

02030101

S[a

0,j

]

⎤⎡

k

0,j

e

⎥⎢⎥

1,j

=

01020301

S[a

1,j

]

k

1,j

=

e

2,j

01010203

S[a

2,j

]

⎥⎢

k

2,j

⎢⎥

⎥⎢⎥

eS[a]

03010102

⎢⎥⎢⎥

3,j3,j

⎣⎦

⎣⎦⎣⎦

k

3,j

02

⎞⎛

03

⎞⎛

01

⎢⎥

⎟⎜

⎢⎥

⎟⎜

⎢⎥

03

01

02

⎜⎟⎜⎟⎜

⎢⎢⎢

S[a

0,j

]

⊕⋅

S[a

0,j

]

⊕⋅

S[a

0,j

]

01

⎟⎜

01

⎟⎜

02

⎢⎥

⎟⎜

⎢⎥

⎟⎜⎟

03

⎟⎜

01

⎟⎜

01

⎣⎦⎣⎦⎣⎦

⎝⎠⎝⎠⎝⎠

01

k

0,j

⎢⎥

⎢⎥

k

1,j

01

S

[

a

0,j

]

⎢⎥

03

k

2,j

⎜⎟

02

k

3,j

⎣⎦

⎝⎠

蓝牙射频发送

图2 加密解密流程

可以看到,敏感数据通过HCI进入蓝牙设备,根据蓝牙

的分组类型将不同的蓝牙数据分类。把ACL分组数据和SCO

分组数据送入AES加密模块,然后通过蓝牙射频发送到接收

设备。接收方将收到的蓝牙分组后,首先判断蓝牙分组类型,

如果为ACL分组或SCO分组,则利用AES算法模块进行解

密,如果为其他分组,则直接交给主机。

2.3 加密方案实现方式

传输加密方案有2种实现方式:(1)在蓝牙设备外实现;

(2)在蓝牙设备上实现。方式(1)的优点是数据处理速度快,缺

点是需要添加其他应用程序或硬件加密设备的支持。方式(2)

的优点是不需要添加其他硬件设备支持,缺点是对蓝牙设备

内部处理器的要求较高,可能影响数据传输速率。

本文采用方式(2),它能使设备本身具有安全性,是其他

方式不可替代的。考虑到数据的传输速率问题,需要根据蓝

以获

牙设备内部微控制器特点对

AES的实现方式进行优化,

得更好的效果。

上述方程用向量的线性组合表示矩阵的乘法。定义4个

256字的表:

02

⎞⎛

03

⎢⎥

⎟⎜

⎢⎥

01

02

⎜⎟⎜

⎢⎢

T

0

[

x

]

=⋅

S

[

x

]

,

T

1

[

x

]

=⋅

S

[

x

]

01

⎟⎜

01

⎜⎟⎜⎟

⎢⎥⎢⎥

03

⎟⎜

01

⎣⎦

⎠⎝

⎣⎦

01

⎞⎛

01

⎢⎥

⎟⎜

⎢⎥

03

01

⎜⎟⎜

⎢⎢

T

2

[

x

]

=⋅

S

[

x

]

,

T

3

[

x

]

=⋅

S

[

x

]

02

⎟⎜

03

⎜⎟⎜⎟

01

⎟⎜

02

⎣⎦

⎠⎝

⎣⎦

3 关键模块AES的固件实现

由于蓝牙设备资源的限制,在蓝牙设备上实现AES算

法,需要对它的实现方式进行改进,尽量提高算法的加解密

速度。主要考虑以下2个方面:(1)蓝牙主机控制器主要分为

2类:ARM7TDMI 32位RISC和XAP2 16位 RISC处理器。

(2)蓝牙设备的存储空间为4 MB~8 MB,RAM大小为32 KB~

64 KB,必须考虑代码的大小。因此,将AES算法进行数学

变换,把操作定义为字节或字上的操作,就能执行非常有效

的操作。

3.1 基于16位RISC处理器的实现改进

对于16位RISC处理器,只能将其操作定义在8位的字

节上。

(1)字节代换与行移位

用查表操作代替了基于矩阵乘法的复杂仿射变换。其中,

'

字节代替变换为

s

i,j

=SBox[s

i,j

]

,逆字节代替变换为

每个表接受一个字节的输入,同时输出一个列向量。因

此,基于上述等式的实现仅需4张表、每轮每列的4次异或

以及存储这些表所需的4 KB的存储空间。同理,对于解密

操作,也可以将一轮的

4个运算变换为上面方程的形式。

综上可知,实现AES算法需要8张表及存储这些表所需

的8 KB存储空间。

4 实验及结果分析

本文通过在CSR公司的BC04芯片和RF Micro Devices

公司的SiW4000芯片上编写了固件程序,并利用它们传输了

长度为1 MB的文件,然后对密钥生成速度和安全性、数据

加解密速度等测试结果进行了分析。

s

i

,

j

=iSBox[s

i

,

j

]

'

——184

4.1 密钥生成分析

密钥生成测试结果如图3所示。新的密钥生成方案采用

改进的ECDH协议,安全强度明显优于蓝牙规范

[1]

中简易的

DH协议方案,而密钥生成速度则比原来略慢。

安全措施

ARM7TDMI

32位RISC

(SiW4000)

获取密钥

代码大小

本文方案

改进的ECDH协议

102 ms

3 200 Byte

113 ms

3 420 Byte

协议方案

简易的DH协议

71 ms

80 ms

4.3 整体性能分析

通过以上2项分析可以得出如下结论:(1)与蓝牙规范提

出的基带层加密方案相比,本方案的优点是加密密钥更加安

全,能够抵抗以前的攻击。(2)加密算法采用了AES分组密码

算法,相对于E0算法或DES算法,其安全性更高。(3)加密

的位置处于HCI层,在流量控制和重传机制下,可以避免多

次加密无用的数据。

(4)针对性更强,对不需要加密的数据进

行了过滤,如命令分组、事件分组。

非ARM7TDMI

获取密钥

16位RISC

代码大小

(BC04)

5 结束语

本文对蓝牙协议中的基带层传输加密方案进行了深入研

究,指出了该方案在密钥管理和加密算法上存在的问题,进

而提出了一种基于

HCI层的加密传输方案。本方案具有足够

高的安全强度,并且能在重传模式下保证较高的数据速率。

参考文献

[1] Bluetooth SIG. Specification of the Bluetooth System: Core Package

Version 2.0+EDR[Z]. [2008-01-30]. .

[2] Shaked Y, Wool A. Cracking the Bluetooth PIN[Z]. [2008-03-10].

/_yash/shaked-wool-mobisys05/.

[3] Bluetooth SIG. Simple Pairing White Paper[Z]. [2008-02-14].

/.

[4]

李颖川

,

.

蓝牙简单配对协议的安全性改进

[C]//

全国第

18

届计算机技术与应用学术会议

.

合肥

:

中国科学技术大学出

版社

, 2007.

图3 安全获取密钥时间测试结果

4.2 加解密处理速度分析

加解密处理速度测试结果如图4所示。可以发现,本方

案的加密速度在非重传模式下低于蓝牙规范的基带层传输加

密方案,而在重传模式下接近甚至等于协议的传输加密方案。

另外,AES加密算法的安全强度远远高于E0算法。

非重传模式/

(Byte·s

-1

)

重传模式/

(Byte·s

-1

)

代码大小

非重传模式/

(Byte·s

-1

)

重传模式/

(Byte·s

-1

)

代码大小

加密

解密

加密

解密

本文方案

198 070

176 891

195 070

174 508

协议方案

205 840

ARM7TDMI

32位RISC

(Siw4000)

197 408

202 780

14 500 Byte

加密

解密

加密

解密

187 562

164 891

185 084

163 860

[5] Janssens S. Attacking Bluetooth Device[D]. Brussel, Belgium:

Brussel University, 2005-08.

[6]

郑之光

,

杨红丽

.

DES

为基础的蓝牙加密算法的研究与实

[J].

小型微型计算机系统

, 2005, 26(2): 318-320.

非ARM7TDMI

16位RISC

(BC04)

193 780

[7] Daemen J, Rijmen V. AES Proposal: Rijndael, Version2[Z].

[2008-02-03]. /encryptions/aes.

7 248 Byte

图4 加解密处理速度测试结果

编辑 张 帆

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(上接第182页)

(3)对t=0~79,按式(2)、式(3)、式(5)~式(8)进行计算,得

(2004-10-21). Http:///2004/.

到如表

1所示的16进制码表。

[2] Rivest R L. The MD4 Message Digest Algorithm, Request for

表1 16进制码表

t A B C D E F

0 25a4584b 6a09e667 6ed9eba13c6ef372 a54ff53a 510e527f

1 83dbbde7 25a4584b da8279996ed9eba1 3c6ef372a54ff53a

2 02931ade 83dbbde7 c9691612da827999 6ed9eba13c6ef372

… … … … … … …

79

aaae3dc7 b82ddb2d 47286e005b9bbf33 7bde3835a7a7c1b6

Comments, Internet Activities Board, Internet Privacy Task

Force[S]. RFC 1320, 1992-04.

[3] Rivest R L. The MD5 Message Digest Algorithm, Request for

Comments, Internet Activities Board, Internet PrivacZ Task

Force[S]. RFC 1321, 1992-04.

[4] National Institute of Standards and Technology(NIST). Secure Hash

Standard[S]. FIPS 180, US Department of Commerce, 1993-05.

[5] National Institute of Standards and Technology(NIST). Secure Hash

Standard[S]. VA22161, Springfield National Technical Information

Service, 2002.

[6] Stallings W. Cryptography and Network Security: Principles and

Practice[M]. [S. 1.]: Prentice Hall, 2001: 216-237.

[7]

肖皇培

,

张国基

.

基于

Hash

函数的报文鉴别方法

[J].

计算机工

, 2007, 33(6): 101-103.

(4)按式(8)、式(9)计算得到192 bit消息摘要M为

(1)

H

0

=

0

x

14

b

8242

eH

1

(1)

=

0

x

739589

b

2

(1)(1)

H

2

=

0

x

83976172

H

3

=

0

x

00

ebb

46

d

H

(1)

=

0

xccec

8

ab

4

H

(1)

=

0

x

42

ad

2

a

42

5

4

(12)

5 结束语

面对MDx, SHA-0等杂凑算法被攻陷的危机,本文提出

一类较SHA-1更为安全,同时不过分减慢加密速度的改进杂

凑算法。改进算法将杂凑函数输出消息摘要的长度从SHA-1

的160 bit提高到192 bit,以获得较SHA-1更高的安全性。

同时保留了SHA-1模2

32

加法的计算特性,从而保证了新算

法同

SHA-1在数量级上一致的加密速度。

参考文献

[1] Wang Xiaoyun, Feng Dengguo, Lai Xuejia, et al. Collisions for

Hash Functions MD4, MD5, HAVAL-128 and RIPEMD[Z].

[8] Yuval G. How to Swindle Rabin[J]. Cryptologia, 1979, 3(3):

187-189.

[9] Bellare M, Rogaway P. Collision-resistant Hashing: Towards

Making UOWHF’s Practical[C]//Proc. of CRYPTO'97. Santa

Barbara, CA, USA: [s. n.], 1997: 470-484.

编辑 索书志

—185—

2024年4月26日发(作者:戚冰枫)

豆 丁 推 荐

精 品 文 档

计 算 机 工 程

35

卷 第6期

Vol.35 No.6

Computer Engineering

·安全技术·

文章编号:1000—3428(2009)06—0183—03

文献标识码:A

2009年3月

March 2009

中图分类号:TP309.1

一种蓝牙传输加密方案的设计与实现

郁 滨,李颖川

(解放军信息工程大学电子技术学院,郑州 450004)

摘 要:针对蓝牙协议的基带层加密方案在密钥方面易受穷尽攻击、中间人攻击和E0算法容易受到代数攻击的问题,根据蓝牙设备的特

点提出一种基于主机控制器接口层的加密方案,利用改进的ECDH协议保护密钥的安全性。实验表明,该方案能有效提供安全保护机制,

解决蓝牙在可靠传输模式下影响传输速度的问题,其AES对蓝牙设备的传输速率影响较小。

关键词:蓝牙安全;加密方案;AES算法

Design and Implementation of Encryption Scheme

of Bluetooth Communication

YU Bin, LI Ying-chuan

(Institute of Electronic Technology, PLA Information Engineering University, Zhengzhou 450004)

【Abstract】Aiming at the exhaustive attack and Man in The Middle attack on the key, algebra attack on E0 algorithm of the baseband encryption

scheme, this paper proposes a new encryption scheme on the HCI layer, based on the features of Bluetooth devices. It protects the security of key

with improved ECDH protocol. Experiment demonstrates the scheme provides more security mechanism and solves the impact on communication

under reliable transmission, and the style of improved AES algorithm has less impact on communication.

【Key words】Bluetooth security; encryption scheme; AES algorithm

1 概述

蓝牙是一种短距离无线数据与语音通信的开放性全球规

范,它的主要特性为健壮性、低功率和低价格,并以一种极

为经济的形式解决了无线通信“最后10米”的问题,对人类

的生产生活产生了不可估量的影响。随着蓝牙技术的普及,

蓝牙的安全性成为业界关注的热点。蓝牙规范

[1]

定义了基带

层的安全,首先利用PIN码的变化产生加密密钥,然后用E0

算法对数据进行加密保护。文献[2]给出对蓝牙PIN码的攻击,

可以在

1 s内攻破4位的短PIN码,攻击者利用PIN码可以

获得加密密钥,从而进行窃听攻击。蓝牙简单配对白皮书

[3]

的发布使PIN码的攻击难度增加,但是仍不能完全避免中间

人攻击

[4]

。文献[5]对E0算法进行了分析,指出E0流密码算

法主要的缺点是线性反馈寄存器

(LFSR)的资源能力有限,如

果密钥流产生器中某个

LFSR(共有4个LFSR)产生的序列周

期比密钥短,则存在分别征服破译攻击(Divide-and-Conquer)

的威胁。文献[6]提出用一种基于DES的分组密码算法来取代

E0算法,但目前DES算法的安全强度已不能满足需要。另

外,当蓝牙工作在重传和流控模式时,就会对数据进行重复

加密

[1]

,从而降低传输速率。因此,蓝牙规范的基带层加密

方案在密钥生成、密码算法方面都存在不安全的问题,在传

输速率方面也得不到保证。

新进行加解密,在信道干扰严重的情况下,就会影响传输速

度。为了解决这个问题,本文将传输加密方案设计在

HCI层,

对要传输的已加密数据进行缓存。

2.1 加密密钥的安全获取

为了抵抗在加密密钥的生成过程中存在的穷尽攻击和中

间人攻击,本文采用ECDH密钥交换方案抵抗穷尽攻击,同

时利用文献[4]提出的预共享秘密信息的方法防止中间人攻

击,协议流程如图1所示,其中,HMAC-SHA-256算法保护

数据的完整性和新鲜性,协议中用

Hx表示。

#

发起设备A

PKa

响应设备B

PKb

DHKey=P

192

(SKa,PKb)DHKey=P

192

(SKa,PKb)

准备过程

令Ra = 0

s=H

0

(PKb,PKa,P)

令Rb = 0

s=H

0

(PKb,PKa,P)

选择随机数Na

Ca=H

1

(PKa,PKb,Na,s)

Ca

Cb

Na

选择随机数Nb

Cb=H

1

(PKa,PKb,Nb,s)

1

A→BCa

2

B→ACb

3

A→BNa

4

B→ANb

认证过程

Cb'=H

1

(PKb,PKa,Nb,s)

Ca'=H

1

(PKa,PKb,Na,s)

Nb

验证

Ca=Ca'

验证

Cb=Cb'

LK=H

2

(DHkey,Na,Nb,ADDRa,ADDRb)

K

cipher

=E

3

(LK,Na,Nb,ACO)

LK=H

2

(DHkey,Na,Nb,ADDRa,ADDRb)

2 传输加密方案设计

主机控制器接口层(HCI)处在L2CAP层与基带层之间,

是主机与设备通信的通道。通常在

L2CAP层会将长的服务数

据包

(SDU)拆分成短的协议数据包(PDU),然后通过HCI层传

到基带层。流量控制和重传机制都在L2CAP进行设定,通过

HCI进行管理和数据缓存。如果设置了流量控制和重传机制

并出现了传输错误的问题,在基带层传输敏感数据时必须重

密钥生成

K

cipher

=E

3

(LK,Na,Nb,ACO)

图1 密钥安全获取协议

作者简介:郁 滨(1964-),男,教授、博士、博士生导师,主研方

向:信息安全,蓝牙技术,视觉密码;李颖川,硕士研究生

收稿日期:2008-08-20 E-mail:***************

—183—

协议双方经过图1所示的认证过程后,就可以生成此次

的会话密钥

LK,然后按照蓝牙协议中规定的方法将鉴权密码

偏移(Authentication Cipher Offset, ACO)、当前的会话密钥和

在加密协商过程中交换的随机数送入E3算法,从而获得安

全的加密密钥。本协议的安全性主要取决于认证过程的安全

性,它的证明参见文献[4]。

2.2 HCI层的加密流程

2000年10月美国国家标准和技术研究所正式宣布选择

Rijndael作为AES算法,成为一种正式的商业加密标准。业

界认为AES算法是足够安全的,因此,本文采用AES作为

敏感数据的加密传输算法,对数据流进行机密性保护。加解

密方案如图2所示。

HCI

获得蓝牙分组类型

其他

数据

SCO

数据

ACL数

其他

数据

AES解密模块

AES加密模块

加密后的

敏感数据

获得蓝牙分组类型

蓝牙射频接收

ACL

数据

SCO

数据

HCI

(2)列混淆变换与逆列混淆变换

列混淆变换是AES算法中最复杂的过程,它涉及字节乘

和异或,由于蓝牙设备本身的计算能力有限,因此利用文

献[7]提出的建议对列混淆进行重写,并使用查表的方式取代

乘法操作。其中,列混淆变换如下:

Tmp

=

s

0,j

s

1,j

s

2,j

s

3,j

'

s

0,j

=

s

0,j

Tmp

X2[s

0,j

s

1,j

]

'

s

1,j

=

s

1,j

Tmp

X2[s

1,j

s

2,j

]

'

s

2,j

=

s

2,j

Tmp

X2[s

2,j

s

3,j

]

'

s

3,j

=

s

3,j

Tmp

X

2[

s

3,j

s

0,j

]

逆列混淆变换如下:

Tmp1

=

X2[X2(s

0,j

s

2,j

)],

Tmp2

=

X2[X2(s

1,j

s

3,j

)]

''

s

0,j

=

s

0,j

Tmp1,

s

2,j

=

s

2,j

Tmp1

''

s

1,j

=

s

1,j

Tmp2,

s

3,j

=

s

3,j

Tmp2

综上可知,实现AES算法需要3张表以及存储这些表所

需的756 Byte的存储空间。

3.2 基于32位RISC处理器的实现改进

对于32位RISC处理器,可以将操作定义在32位的字

上。根据文献[7]的建议,首先利用代数形式定义一轮的4个

变换,变换表示如下:

e

0,j

02030101

S[a

0,j

]

⎤⎡

k

0,j

e

⎥⎢⎥

1,j

=

01020301

S[a

1,j

]

k

1,j

=

e

2,j

01010203

S[a

2,j

]

⎥⎢

k

2,j

⎢⎥

⎥⎢⎥

eS[a]

03010102

⎢⎥⎢⎥

3,j3,j

⎣⎦

⎣⎦⎣⎦

k

3,j

02

⎞⎛

03

⎞⎛

01

⎢⎥

⎟⎜

⎢⎥

⎟⎜

⎢⎥

03

01

02

⎜⎟⎜⎟⎜

⎢⎢⎢

S[a

0,j

]

⊕⋅

S[a

0,j

]

⊕⋅

S[a

0,j

]

01

⎟⎜

01

⎟⎜

02

⎢⎥

⎟⎜

⎢⎥

⎟⎜⎟

03

⎟⎜

01

⎟⎜

01

⎣⎦⎣⎦⎣⎦

⎝⎠⎝⎠⎝⎠

01

k

0,j

⎢⎥

⎢⎥

k

1,j

01

S

[

a

0,j

]

⎢⎥

03

k

2,j

⎜⎟

02

k

3,j

⎣⎦

⎝⎠

蓝牙射频发送

图2 加密解密流程

可以看到,敏感数据通过HCI进入蓝牙设备,根据蓝牙

的分组类型将不同的蓝牙数据分类。把ACL分组数据和SCO

分组数据送入AES加密模块,然后通过蓝牙射频发送到接收

设备。接收方将收到的蓝牙分组后,首先判断蓝牙分组类型,

如果为ACL分组或SCO分组,则利用AES算法模块进行解

密,如果为其他分组,则直接交给主机。

2.3 加密方案实现方式

传输加密方案有2种实现方式:(1)在蓝牙设备外实现;

(2)在蓝牙设备上实现。方式(1)的优点是数据处理速度快,缺

点是需要添加其他应用程序或硬件加密设备的支持。方式(2)

的优点是不需要添加其他硬件设备支持,缺点是对蓝牙设备

内部处理器的要求较高,可能影响数据传输速率。

本文采用方式(2),它能使设备本身具有安全性,是其他

方式不可替代的。考虑到数据的传输速率问题,需要根据蓝

以获

牙设备内部微控制器特点对

AES的实现方式进行优化,

得更好的效果。

上述方程用向量的线性组合表示矩阵的乘法。定义4个

256字的表:

02

⎞⎛

03

⎢⎥

⎟⎜

⎢⎥

01

02

⎜⎟⎜

⎢⎢

T

0

[

x

]

=⋅

S

[

x

]

,

T

1

[

x

]

=⋅

S

[

x

]

01

⎟⎜

01

⎜⎟⎜⎟

⎢⎥⎢⎥

03

⎟⎜

01

⎣⎦

⎠⎝

⎣⎦

01

⎞⎛

01

⎢⎥

⎟⎜

⎢⎥

03

01

⎜⎟⎜

⎢⎢

T

2

[

x

]

=⋅

S

[

x

]

,

T

3

[

x

]

=⋅

S

[

x

]

02

⎟⎜

03

⎜⎟⎜⎟

01

⎟⎜

02

⎣⎦

⎠⎝

⎣⎦

3 关键模块AES的固件实现

由于蓝牙设备资源的限制,在蓝牙设备上实现AES算

法,需要对它的实现方式进行改进,尽量提高算法的加解密

速度。主要考虑以下2个方面:(1)蓝牙主机控制器主要分为

2类:ARM7TDMI 32位RISC和XAP2 16位 RISC处理器。

(2)蓝牙设备的存储空间为4 MB~8 MB,RAM大小为32 KB~

64 KB,必须考虑代码的大小。因此,将AES算法进行数学

变换,把操作定义为字节或字上的操作,就能执行非常有效

的操作。

3.1 基于16位RISC处理器的实现改进

对于16位RISC处理器,只能将其操作定义在8位的字

节上。

(1)字节代换与行移位

用查表操作代替了基于矩阵乘法的复杂仿射变换。其中,

'

字节代替变换为

s

i,j

=SBox[s

i,j

]

,逆字节代替变换为

每个表接受一个字节的输入,同时输出一个列向量。因

此,基于上述等式的实现仅需4张表、每轮每列的4次异或

以及存储这些表所需的4 KB的存储空间。同理,对于解密

操作,也可以将一轮的

4个运算变换为上面方程的形式。

综上可知,实现AES算法需要8张表及存储这些表所需

的8 KB存储空间。

4 实验及结果分析

本文通过在CSR公司的BC04芯片和RF Micro Devices

公司的SiW4000芯片上编写了固件程序,并利用它们传输了

长度为1 MB的文件,然后对密钥生成速度和安全性、数据

加解密速度等测试结果进行了分析。

s

i

,

j

=iSBox[s

i

,

j

]

'

——184

4.1 密钥生成分析

密钥生成测试结果如图3所示。新的密钥生成方案采用

改进的ECDH协议,安全强度明显优于蓝牙规范

[1]

中简易的

DH协议方案,而密钥生成速度则比原来略慢。

安全措施

ARM7TDMI

32位RISC

(SiW4000)

获取密钥

代码大小

本文方案

改进的ECDH协议

102 ms

3 200 Byte

113 ms

3 420 Byte

协议方案

简易的DH协议

71 ms

80 ms

4.3 整体性能分析

通过以上2项分析可以得出如下结论:(1)与蓝牙规范提

出的基带层加密方案相比,本方案的优点是加密密钥更加安

全,能够抵抗以前的攻击。(2)加密算法采用了AES分组密码

算法,相对于E0算法或DES算法,其安全性更高。(3)加密

的位置处于HCI层,在流量控制和重传机制下,可以避免多

次加密无用的数据。

(4)针对性更强,对不需要加密的数据进

行了过滤,如命令分组、事件分组。

非ARM7TDMI

获取密钥

16位RISC

代码大小

(BC04)

5 结束语

本文对蓝牙协议中的基带层传输加密方案进行了深入研

究,指出了该方案在密钥管理和加密算法上存在的问题,进

而提出了一种基于

HCI层的加密传输方案。本方案具有足够

高的安全强度,并且能在重传模式下保证较高的数据速率。

参考文献

[1] Bluetooth SIG. Specification of the Bluetooth System: Core Package

Version 2.0+EDR[Z]. [2008-01-30]. .

[2] Shaked Y, Wool A. Cracking the Bluetooth PIN[Z]. [2008-03-10].

/_yash/shaked-wool-mobisys05/.

[3] Bluetooth SIG. Simple Pairing White Paper[Z]. [2008-02-14].

/.

[4]

李颖川

,

.

蓝牙简单配对协议的安全性改进

[C]//

全国第

18

届计算机技术与应用学术会议

.

合肥

:

中国科学技术大学出

版社

, 2007.

图3 安全获取密钥时间测试结果

4.2 加解密处理速度分析

加解密处理速度测试结果如图4所示。可以发现,本方

案的加密速度在非重传模式下低于蓝牙规范的基带层传输加

密方案,而在重传模式下接近甚至等于协议的传输加密方案。

另外,AES加密算法的安全强度远远高于E0算法。

非重传模式/

(Byte·s

-1

)

重传模式/

(Byte·s

-1

)

代码大小

非重传模式/

(Byte·s

-1

)

重传模式/

(Byte·s

-1

)

代码大小

加密

解密

加密

解密

本文方案

198 070

176 891

195 070

174 508

协议方案

205 840

ARM7TDMI

32位RISC

(Siw4000)

197 408

202 780

14 500 Byte

加密

解密

加密

解密

187 562

164 891

185 084

163 860

[5] Janssens S. Attacking Bluetooth Device[D]. Brussel, Belgium:

Brussel University, 2005-08.

[6]

郑之光

,

杨红丽

.

DES

为基础的蓝牙加密算法的研究与实

[J].

小型微型计算机系统

, 2005, 26(2): 318-320.

非ARM7TDMI

16位RISC

(BC04)

193 780

[7] Daemen J, Rijmen V. AES Proposal: Rijndael, Version2[Z].

[2008-02-03]. /encryptions/aes.

7 248 Byte

图4 加解密处理速度测试结果

编辑 张 帆

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(上接第182页)

(3)对t=0~79,按式(2)、式(3)、式(5)~式(8)进行计算,得

(2004-10-21). Http:///2004/.

到如表

1所示的16进制码表。

[2] Rivest R L. The MD4 Message Digest Algorithm, Request for

表1 16进制码表

t A B C D E F

0 25a4584b 6a09e667 6ed9eba13c6ef372 a54ff53a 510e527f

1 83dbbde7 25a4584b da8279996ed9eba1 3c6ef372a54ff53a

2 02931ade 83dbbde7 c9691612da827999 6ed9eba13c6ef372

… … … … … … …

79

aaae3dc7 b82ddb2d 47286e005b9bbf33 7bde3835a7a7c1b6

Comments, Internet Activities Board, Internet Privacy Task

Force[S]. RFC 1320, 1992-04.

[3] Rivest R L. The MD5 Message Digest Algorithm, Request for

Comments, Internet Activities Board, Internet PrivacZ Task

Force[S]. RFC 1321, 1992-04.

[4] National Institute of Standards and Technology(NIST). Secure Hash

Standard[S]. FIPS 180, US Department of Commerce, 1993-05.

[5] National Institute of Standards and Technology(NIST). Secure Hash

Standard[S]. VA22161, Springfield National Technical Information

Service, 2002.

[6] Stallings W. Cryptography and Network Security: Principles and

Practice[M]. [S. 1.]: Prentice Hall, 2001: 216-237.

[7]

肖皇培

,

张国基

.

基于

Hash

函数的报文鉴别方法

[J].

计算机工

, 2007, 33(6): 101-103.

(4)按式(8)、式(9)计算得到192 bit消息摘要M为

(1)

H

0

=

0

x

14

b

8242

eH

1

(1)

=

0

x

739589

b

2

(1)(1)

H

2

=

0

x

83976172

H

3

=

0

x

00

ebb

46

d

H

(1)

=

0

xccec

8

ab

4

H

(1)

=

0

x

42

ad

2

a

42

5

4

(12)

5 结束语

面对MDx, SHA-0等杂凑算法被攻陷的危机,本文提出

一类较SHA-1更为安全,同时不过分减慢加密速度的改进杂

凑算法。改进算法将杂凑函数输出消息摘要的长度从SHA-1

的160 bit提高到192 bit,以获得较SHA-1更高的安全性。

同时保留了SHA-1模2

32

加法的计算特性,从而保证了新算

法同

SHA-1在数量级上一致的加密速度。

参考文献

[1] Wang Xiaoyun, Feng Dengguo, Lai Xuejia, et al. Collisions for

Hash Functions MD4, MD5, HAVAL-128 and RIPEMD[Z].

[8] Yuval G. How to Swindle Rabin[J]. Cryptologia, 1979, 3(3):

187-189.

[9] Bellare M, Rogaway P. Collision-resistant Hashing: Towards

Making UOWHF’s Practical[C]//Proc. of CRYPTO'97. Santa

Barbara, CA, USA: [s. n.], 1997: 470-484.

编辑 索书志

—185—

发布评论

评论列表 (0)

  1. 暂无评论