APP下载

基于蓝牙技术的加密算法研究

2010-09-08杨志和王岳斌胡虚怀

关键词:加密算法蓝牙密钥

杨志和, 王岳斌, 胡虚怀

(湖南理工学院 计算机学院, 湖南 岳阳 414006)

基于蓝牙技术的加密算法研究

杨志和, 王岳斌, 胡虚怀

(湖南理工学院 计算机学院, 湖南 岳阳 414006)

讨论了蓝牙技术中的加密算法和安全措施, 分析了蓝牙加密算法存在的问题, 提出了基于对称密钥系统密码体制的替代方案, 并给出了软、硬件实现的基本思路. 同时介绍了对称密钥系统算法.

蓝牙技术; 流加密算法; 对称密钥系统

Abstract:The paper mainly discussed the encryption arithmetic and safety precautions of Bluetooth technology, and analyzed some problems of it. The substitute scheme based on DES cryptosystem was proposed and the basic implementation method with software and hardware is given. Finally, the DES arithmetic was introduced.

Key words:Bluetooth technology; streaming-encryption arithmetic; symmetric key system

引言

随着计算机网络技术的迅速发展, 网络中的信息安全问题越来越受到广泛关注. 信息安全主要涉及到用户身份验证、访问控制、数据完整性、数据加密等问题. 网络安全产品大量涌现. 虽然各种网络安全产品的功能多种多样, 但它们无一例外地要使用加密技术. 一个好的加密算法首先表现在它的安全性上,一个不安全的算法会使使用它的网络变得更加脆弱; 其次要考虑它在软硬件方面实现的难易度, 不易实现的加密算法是不现实的; 第三要看使用此加密算法会不会降低数据传输速率.

蓝牙技术是一种无线数据与语音通信的开放性全球规范, 它以低成本的近距离无线连接为基础, 为固定与移动设备通信环境建立一个特别连接的短程无线电技术. 它是针对目前近距离的便携式器件之间的红外线链路而提出的. 蓝牙技术的目的是简化小型网络设备(如移动PC、掌上电脑和手机)之间以及这些设备与Internet之间的通信, 免除在无绳电话或移动电话、调制解调器、头套式送/受话器、PDA、计算机、打印机、幻灯机、局域网等之间加装电线、电缆和连接器, 在近距离内实现无缝的资源共享. 此外, 蓝牙无线技术还为已存在的数字网络和外设提供通用接口以组建一个远离固定网络的个人特别连接设备群.

蓝牙标准定义了一系列安全机制, 从而为近距离无线通信提供了基本的保护. 它要求每个蓝牙设备都要实现密钥管理、认证以及加密等功能. 认证和加密服务一般由链路层提供, 认证采用口令—应答方式进行. 链路层使用4个实体提供安全性: 一个公开的蓝牙设备地址, 长度为48bit; 认证密钥, 长度为128bit; 加密密钥, 长度为8~128bit; 随机数, 长度为128bit. 以下重点分析蓝牙安全机制及所采用的算法,以求建立更安全、更高效的算法.

1 蓝牙加密机制研究

1.1 密钥生成与初始化

链路密钥是一个128位随机数, 为通信双方或多方共享的临时性或半永久性密钥. 蓝牙标准定义了四种链路密钥: (1)联合密钥KAB; (2)单元密钥KA; (3)临时密钥Kmoster; (4)初始化密钥Kinit. 此外还定义了加密密钥Kc, 由当前链路密钥生成. 对蓝牙单元来说, 单元密钥KA在单元A中生成, 依赖于该单元, 很少改变. 联合密钥KAB. 由单元A、B方共同生成. 临时密钥Kmoster仅在当前会话中使用, 也称主单元密钥. 初始化密钥Kinit是蓝牙初始化过程中使用的链路密钥. 该密钥由一个随机数、一个通常为十进制的PIN码以及发起单元的蓝牙设备地址BD_ADDR生成. PIN码可由用户选择, 也可以是随蓝牙一起提供的固定数. 随机数由一个伪随机数发生器产生. 目前, 线性同余发生器(Linear Congruential Generator)的研究与使用最广泛. 其表达式为:

其中α和c为常量, m为模数, 均为正整数. αXn+ c对m作模运算后得到Xn+ 1. 开始时以某种方式给出一个种子数X0; 然后使用前一个随机整数Xn生成下一个随机整数Xn+ 1, 由此产生整数随机数列{Xn}.

任一对需要加密的蓝牙单元都需要进行初始化, 过程如下:

(1)生成初始化密钥Kinit. 该密钥为初始化过程中临时使用的链路密钥.

(2)认证. 如果两个单元没有发生过通信联系, 则使用初始化密钥作为链路密钥. 在相互认证中, 首先在一个方向执行认证规程, 成功后再反向执行认证. 认证成功将得到一个辅助参数ACO, 即认证加密偏移量. 它将用于生成加密密钥.

(3)生成单元密钥. 单元密钥在蓝牙单元首次运行时生成.

(4)生成联合密钥. 联合密钥是分别在A单元与B单元中生成的两个数字的组合. 生成过程是: 每个单元生成随机数LK_RANDA与LK_RANDB, 采用E21算法与各自的随机数、蓝牙地址分别生成另一个随机数LK_KA与LK_KB, 并通过其他操作后两个单元得出联合密钥. 然后开始互相认证过程以确认交互过程成功. 联合密钥交换分配成功后将放弃使用原链路密钥.

(5)生成加密密钥. 加密密钥Kc由当前链路密钥、96bit“加密偏移数”COF和一个128bit随机数导出.

(6)点对多点配置情况. 实际应用中, 主单元通知几个从单元使用一个公共链路密钥(称为Kmoster)广播加密消息. Kmoster被从单元接收后便可用它替代原链路密钥. Kmoster的产生过程为: 首先由2个128bit的随机数RAND1与RAND2生成新链路密钥Kmoster. 然后将第3个随机数RAND发往从单元, 主、从单元根据E22、当前链路密钥及RAND计算出128bit扰乱码overlay, 主单元将overlay与新链路密钥按位“异或”结果发送给从单元, 再计算出Kmoster.

1.2 蓝牙加密规程

加密规程使用流密码加密, 流密码与有效载荷同步, 加密原理如图1所示. 流密码系统由三部分组成: 执行初始化、生成密钥流比特、执行加密或解密. 有效载荷密钥生成器将输入比特流以恰当顺序进行组合并移入密钥流生成器使用的4个线性反馈移位寄存器LFSR. 第二部分是主要部分, 密钥流比特根据Massey与Rueppel提出的方法生成.

图1 蓝牙加密规程

1.3 流加密算法

图2 流加密算法

加密系统使用线性反馈移位寄存器(LFSRs), 寄存器系统输出由具有16状态的有限状态机进行组合, 状态机输出或是密钥流序列, 或是初始化阶段的随机初始值. 加密算法需要提供加密密钥、48bit蓝牙地址、主单元时钟比特与128bit随机数RAND, 加密算法如图2所示.

其中, 有4个LFSR(LFSR1,…, LFSR4), 比特长度分别为L1=25, L2=31, L3=33, L4=39, 反馈多项式(抽头多项式, 特征多项式). 4个寄存器长度之和是128bit.

这些多项式都是本原多项式,汉明重量都为5, 可以兼顾生成序列具有良好的统计特性与减少硬件实现所需要的异或门数两方面的要求.

加法生成器输出由下述方程给出:

式中, T1[.]与T2[.]是GF(4)上两个不同的线性双射.

密钥流生成器工作前需要为4个LFSR(总共128bit)装载初始值, 这些132bit初始值使用密钥流生成器由规定的输入量导出, 输入量分别为密钥Kc、48bit蓝牙地址和26bit主单元时钟CLK26-1.

加密算法初始化过程如下:

(1)由128bit加密密钥Kc生成有效加密密钥, 记为K'c, 令L(1≤L≤16)为用8bit组数目表示的有效密钥长度, 则K'c(x)= g2(L)(x)(Kc(x)modg1(L)(x)).

(2)将K'c、蓝牙地址、时钟以及6bit常数111001移入LFSR.

加密算法初始化完成后, 从加法组合器输出密钥流用于加密/解密.

1.4 几点问题

蓝牙所采用的流密码算法主要的缺点在于:

(1)若一个伪随机序列发生错误便会使整个密文发生错误, 致使在解密过程中无法还原回明文.

(2)流加密算法系统的安全完全依靠密钥流发生器的内部机制. 如果它的输出是无穷无尽的0序列,那么密文就是明文, 这样整个系统就一文不值; 如果它的输出是一个周期性的16-位模式, 那么该算法仅是一个可忽略安全性的异或运算; 如果输出的是一系列无尽的随机序列(是真正的随机, 非伪随机), 那么就有一次一密乱码本和非常完美的安全. 实际的流密码算法的安全性依赖于简单的异或运算和一次一密乱码本. 密钥流发生器产生的看似随机的密钥流实际上是确定的, 在解密的时候能很好的将其再现. 密钥流发生器输出的密钥越接近于随机, 对密码分析者来说就越困难. 然而, 这种随机的密钥流却不容易得到.在蓝牙E0流加密中用到的 LFSR易受到相关攻击和分割解决攻击, 且用软件实现效率非常低. 在实现过程中要避免稀疏的反馈多项式, 因为它们易遭到相关攻击, 但稠密的反馈多项式效率也很低. 事实上, LFSR算法用软件实现并不比对称密钥系统快.

2 对称密钥系统设计

上面的分析会让人认为蓝牙的安全体系是高度不可靠的, 然而一个不可忽略的事实是: 通过蓝牙连接传输的数据一般来说并不是非常重要的. 目前蓝牙标准考虑到的安全技术只适用于规模较小的网络,如果网络结点较多, 拓扑复杂(如Ad Hoc网络), 现有的基于点对点的密钥分配和认证机制不能满足需求. 蓝牙所提供的数据安全性措施对小型应用来说看起来已足够了, 但任何敏感数据或会产生问题的数据都不应直接通过蓝牙传输. 所以,对于大多数需要将保密放在首位来考虑的应用来说, 仅仅采用蓝牙提供的数据安全性是不够的. 而对称密钥系统和RSA算法相对来说更安全. 但对无线应用环境, RSA算法并不适合, 限于篇幅, 这里不作讨论. 因此, 为了使蓝牙技术应用得更广泛, 可将对称密钥系统(Data Encryption Standard)作为EO流密码替代算法.

2.1 对称密钥系统设计思路

它用于对64位的数据进行加密和解密. 无论硬件还是软件, 对称密钥系统加密方案都易于实现, 采用的加密方法是一次加密一位或一个字节, 形成密码流. 密码流具有自同步的特点, 被传送的密码文本中发生错误和数据丢失, 将只影响最终的明码文本的一小段(64位), 这称为密码反馈. 与蓝牙流密码算法不同, 数学上可以证明分组加密算法是完全安全的. 对称密钥系统块密码是高度随机的、非线性的, 生成的加密密文与明文和密钥的每一位都相关. 对称密钥系统的可用加密密钥数量多达72×1015个. 应用于每一明文信息的密钥都是从这一巨大数量的密钥中随机产生的. 对称密钥系统算法已被广泛采用并被认为是非常可靠的. 硬件加密方案采用低成本的可编程逻辑器件和现成可用的用于高级加密处理的智力产权(IP)产品实现. 这些器件还允许在设计中增加其它功能, 如高级错误纠正. 因此可编程逻辑器件可大幅度降低系统级的成本. 若将此加密算法嵌入蓝牙协议中的基带部分以取代E0流密码算法, 可允许蓝牙技术安全地应用到范围广泛的安全性具有最重要地位的应用中去, 如金融电子交易(ATM、智能卡)、安全电子商务交易、安全办公通信、安全视频监视系统、数字机顶盒、高清晰度电视(HDTV)和其它消费电子设备等领域.

对称密钥系统算法利用多次组合替代算法和换位算法,分散和错乱的相互作用, 把明文编制成密码强度很高的密文.它的加密和解密用的是同一算法.

图3 对称密钥系统算法

2.2 对称密钥系统算法

(1)对称密钥系统对64位的明文分组进行操作. 通过一个初始置换, 将明文分组分成左半和右半部分, 各32位长.

(2)然后进行16轮完全相同的运算, 如图3(a)所示, 这些运算被称为函数f, 在运算过程中数据与密钥结合. 在每一轮(图3(b))中, 密钥位移位, 然后再从密钥的56位中选出48位. 通过一个扩展置换将数据的右半部分扩展成48位密钥结合, 通过8个S盒将这48位替换成新的32位数据, 再将其置换一次. 这四步运算构成了函数f. 然后通过另一个异或运算, 函数f的输出与左半部分结合, 其结果即成为新的右半部分, 原来的右半部分成为新的左半部分. 将该操作重复16次, 便实现了对称密钥系统的16轮运算.

假设Bi.是第i 次迭带的结果, Li和Ri是Bi的左半部分和右半部分, Ki是第i 轮的48位密钥, 且f 是实现代替、置换及密钥异或等运算的函数, 那么每一轮就是:

(3)经过16轮后, 左、右半部分合在一起经过一个末置换(初始置换的逆置换), 这样该算法就完成了.

3 结束语

蓝牙是一项改变我们通信方式的新技术. 然而, 蓝牙技术在标准化过程中都未曾完整地考虑安全问题. 作为以无线信道为传输媒体的通信网络, 蓝牙网络相对于固定网络更容易受到攻击. 对于数据安全性处于首要地位的应用来说, 实现高水平的数据安全性是必须的.

[1] 金 纯, 许光辰. 蓝牙技术[M]. 北京: 电子工业出版社, 2001

[2] 于 跃, 韩永飞. 蓝牙技术的安全性[J]. 电信技术. 2001, (9)

[3] 赖溪松, 韩 亮, 张真诚. 计算机密码学及其应用[M]. 北京: 国防工业出版社, 2001

[4] 卢铁城. 信息加密技术[M]. 成都: 四川科学技术出版, 1989

[5] Tara M.Swaminatha,Charles R.Elden. Wireless Security and Privacy [M]. 北京: 清华大学出版社, 2003

[6] Andrew. Computer Network[M]. S.Tanenbaun Prentice Hall, 1998

[7] VainioJ, Bluetooth Security, http://www.niksula.cs.hut.fi/~jiitv/bluesec.html05-25-2000

[8] Bluetooth, The Bluetooth Specification, v.1.0B http://www.bluetooth.com/developer/specification/specification.asp

Research on the Encryption Arithmetic Based on Bluetooth Technology

YANG Zhi-he, WANG Yue-bin, HU Xu-huai
(College of Computer Science, Hunan Institute of Science and Technology, Yueyang 414006, China)

TP393.08

A

1672-5298(2010)01-0031-04

2010-12-10

湖南省自科基金项目资助(07JJ6114); 湖南省教育厅基金项目资助(09C473)

杨志和(1975- ), 男, 湖南岳阳人, 硕士, 湖南理工学院计算机学院副教授. 主要研究方向: 网格计算和智能计算

猜你喜欢

加密算法蓝牙密钥
蓝牙音箱的直线之美
密码系统中密钥的状态与保护*
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
TPM 2.0密钥迁移协议研究
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
一种对称密钥的密钥管理方法及系统
紧急:蓝牙指尖陀螺自燃!安全隐患频出
HES:一种更小公钥的同态加密算法
基于小波变换和混沌映射的图像加密算法
对称加密算法RC5的架构设计与电路实现