对蓝牙技术中的加密算法的进一步探讨
摘 要 此文主要讨论蓝牙技术中的加密算法和安全措施,并进一步提出
了对于蓝牙加密算法所存在的问题的解决方案。
关键字 蓝牙 流加密 分组加密 DES AES
1 引言
随着计算机网络技术的迅速发展,网络中的信息安全问题越来越受到广泛关注。信息安全主要涉及到用户身份验证、访问控制、数据完整性、数据加密等问题。网络安全产品大量涌现。虽然各种网络安全产品的功能多种多样,但它们无一例外地要使用加密技术。一个好的加密算法首先表现在它的安全性上,一个不安全的算法会使使用它的网络变得更加脆弱;其次要考虑它在软硬件方面实现的难易度,不易实现的加密算法是不现实的;第三要看使用此加密算法会不会降低数据传输速率。
蓝牙技术是一种新兴的无线网络标准,它基于芯片提供短距离范围的无线跳频通信。它注定会成为一项通用的低成本无线技术,可适用于一系列范围广泛的数据通信应用。蓝牙标准定义了一系列安全机制,从而为近距离无线通信提供了基本的保护。它要求每个蓝牙设备都要实现密钥管理、认证以及加密等功能。此外蓝牙技术所采用的跳频数据通信方式本身也是一个防止窃听的有效安全手段。蓝牙加密过程中所用到的加密算法是E0流密码。但是这种算法存在有一些缺点,128位密钥长度的E0流加密在某些情况下可通过0(2^64)方式破解。所以对于大多数需要将保密放在首位来考虑的应用来说,仅仅采用蓝牙提供的数据安全性是不够的。
2 蓝牙标准中的安全措施
蓝牙技术中,物理层数据的安全性主要是采用了跳频扩展频谱,由于蓝牙技术采用了跳频技术从而使得窃听变得极困难。蓝牙射频工作在2.4Hz频段。在北美和欧洲的大部分国家,蓝牙设备工作与从2.402到2.480Hz的频带,整个频带被分为79个1MHz带宽的子信道。FHSS依靠频率的变化来对抗干扰。如果射频单元在某个频率遇到干扰,则会在下一步跳到另一频率点时重传受到干扰的信号,因此总的干扰可变得很低。
为了得到完整的传输数据,蓝牙技术使用以下三种纠错方案:1/3比例前向纠错码(FEC),2/3比例前向纠错码(FEC),数据的自动重发请求(ARQ)方案。
蓝牙技术产品的认证和加密服务一般由链路层提供,认证采用口令-应答方式进行。在连接过程中往往需要一两次认证。为了确保通信安全,对蓝牙技术产品进行认证是十分必要的,通过认证之后,可以允许用户自行增添可信任的蓝牙技术设备,例如,用户自己的笔记本电脑经过认证之后,能够确保只有用户自己的这台笔记本电脑,才可以借助用户自己的移动电话手机进行通信。
若对于通信有更高的安全要求,那么通信中的蓝牙技术产品就不必局限于采用物理层的提供,还可以采用更高级别的传输层和应用层安全机制,以确保基于蓝牙技术产品的通信更加安全可靠。
3 蓝牙技术中的加密算法
在链路层中,蓝牙系统提供了认证、加密和密钥管理等功能,每一个用户都有一个标识码(PIN),蓝牙设备中所用的PIN码的长度可以在1到16个字节之间变化。通常4个字节的PIN码已经可以满足一般应用,但是更高安全级别的应用将需要更长的码字。PIN码可以是蓝牙设备提供的一个固定码,也可以由用户任意指定,标识码(PIN)会被一个128位链路密钥来进行单双向认证。一旦认证完毕,链路层会以不同长度的密钥来加密。如图1。
PIN PIN
认证
链路密钥
链路密钥
加密
加密密钥Kc
加密密钥Kc
申请者 校验者
图1:蓝牙中链路层的加密过程
蓝牙技术在加密过程中所采用的加密算法如下表1。
表1:蓝牙加密过程中所用的加密算法
3.1认证算法
在认证过程中,用于蓝牙认证的E1认证函数来计算出一个安全认证码或被称为MAC(媒体访问控制地址)。E1所采用的算法是SAFER+,SAFER+算法是参与1997年美国国家标准技术研究所(NIST)征集AES(Advanced Encryption Standard)的候选算法之一。SAFER+是基于现有的64位分组密码的SAFER-SK128,因此它的安全性可以说是经过了时间的考验。
E1函数的输入是link key,AU_RAND及BD_ADDR,它的定义如下:
E1:
在蓝牙技术中,认证采用口令-应答方式。验证方要求申请者鉴别随机数AU_RAND并返回计算结果SRES,若双方的计算结果相等则认证成功,并保留ACO(Authenticated Ciphering Offset)值。 若某次认证失败,则必须等待一定的时间间隔才能进行再次认证
3. 2加密算法
在蓝牙技术中,用户信息可采用分组有效载荷的加密进行保护,但识别码和分组头不加密。有效载荷的加密采用E0流密码来实现。E0将对每一有效载荷重新同步。流密码系统E0由三部分组成。第一部分执行初始化(生成有效载荷字),第二部分生成密钥流,第三部分完成加密和解密,如图2。
有效载荷字 明码文本/密码文本
Kc
地址
时钟 Z 密码文本/明码文本
RAND
图2 蓝牙的E0流加密
有效载荷字发生器非常简单,它仅仅以适当序列对输入的位进行组合,然后将它们转移到用于密钥流发生器的四位LFSR中。加密机采用了四个线性反馈移位寄存器(LFSR),依次为LFSR1、LFSR2、LFSR3、LFSR4,其长度分别为25,31,33,39比特。LFSR的性质: 加密机把四个LFSR的输出结果输入到一个有限状态机