PB375A U盘读写芯片
单片机读写U盘模块
单片机读写SD卡模块
BF3040蓝牙4.0模块
  DBF10A低成本蓝牙模块
  BF10蓝牙模块
  BF10-A 蓝牙模块(AT)
  BF10-I 蓝牙模块(IO)
BF10-SC 蓝牙模块(扫描)
  BF10-H蓝牙模块(HCI)
RS232 蓝牙串口
USB蓝牙模块<ARM>
蓝牙串口适配器
BT1800远距离蓝牙模块
RS232远距离蓝牙串口
  USB 蓝牙服务器
10米蓝牙适配器
  100米蓝牙适配器
  其它定制方案
   
 
 


业务销售1 点击这里给我发消息

业务销售2 点击这里给我发消息<已满>

技术支持 点击这里给我发消息

MSN:xiaowuyeah@163.com

地址:深圳南山高新园高新中四道龙泰利科技大厦304室

电话:(86)755-29739852

蓝牙保密性探讨

深圳蓝色飞舞蓝牙模块BF10可以被android蓝牙手机进行串口数据传输,具体请和我们联系。更多技术支持QQ:923920247 www.lanwind.com 

该文章转载于互联网,谢谢作者对这方面的探讨,该文章知识产权归该作者所有。


关键字 蓝牙 流加密 分组加密 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的输出结果输入

到一个有限状态机中,经有限状态机的组合运算输出密钥流序列,若在初始化阶段则输出一个随机的初始化值。加密算法使用Kc、BD_ADDR、主时钟 CLK26-1及RAND这些参数。时钟CLK26-1按时隙递增,在任两次发送中,CLK26-1至少有一位是不同的,因此在每次初始化后都将产生新的 密钥流。对占用多个时隙的分组来说,CLK26-1为分组所占的第一个时隙的时钟值。
第二部分是该密码系统的主要部分,并也将用于初始化过程中。密钥流取自于Massey和Rueppel流密码发生器的方法来生成。
最 后就是流加密算法的加密过程。将数据流与密码算法生成二进制流比特 进行异或运算。对于加密规则,流密码算法用于将加密位按位模2并加到数据流上,然后通过无线接口进行传输。对每一分组的有效载荷的加密是单独进行的,它发 生在CRC校验之后,FEC编码之前。由于加密是对称的,解密使用完全和加密相同的密钥和相同的方法实现。
4 蓝牙标准中加密算法存在的问题
蓝 牙所采用的E0流密码算法的本身就有一些弱点。流密码算法主要的缺点在于若一个伪随机序列发生错误便会使整个密文发生错误,致使在解密过程中无法还原回明 文。流加密算法系统的安全完全依靠密钥流发生器的内部机制。如果它的输出是无穷无尽的0序列,那么密文就是明文,这样整个系统就一文不值;如果它的输出是 一个周期性的16-位模式,那么该算法仅是一个可忽略安全性的异或运算;如果输出的是一系列无尽的随机序列(是真正的随机,非伪随机),那么就有一次一密 乱码本和非常完美的安全。实际的流密码算法的安全性依赖于简单的异或运算和一次一密乱码本。密钥流发生器产生的看似随机的密钥流实际上是确定的,在解密的 时候能很好的将其再现。密钥流发生器输出的密钥越接近于随机,对密码分析者来说就越困难。然而,这种随机的密钥流却不容易得到。
在蓝牙E0流加密中用到的 LFSR易受到相关攻击和分割解决攻击,且用软件实现效率非常低。在实现过程中要避免稀疏的反馈多项式,因为它们易遭到相关攻击,但稠密的反馈多项式效率也很低。事实上LFSR算法用软件实现并不比DES快。
以上的这些问题会让人认为蓝牙的安全体系是高度不可靠的,然而一个不可忽略的事实是:通过蓝牙连接传输的数据一般来说并不是非常重要的。目前蓝 牙标准考虑到的安全技术只适用于规模较小的网络,如果网络结点较多,拓扑复杂(如Ad Hoc网络),现有的基于点对点的密钥分配和认证机制不能满足需求。蓝牙所提供的数据安全性措施对小型应用来说看起来已足够了,但任何敏感数据或会产生问 题的数据都不应直接通过蓝牙传输。为了使蓝牙技术应用得更广泛,我们可采用另外更强劲的加密算法,如DES算法。

5 DES解决方案
5.1 DES简介
1977年1月,美国政府采纳了由IBM研制的作为非绝密信息的正式标准乘积密码。这激 励了一大批生产厂家实现这个在保密产业中成为数据加密标准DES(data encrytion standard)的加密算法。此算法有一个64比特的密钥作为参数。明文按64比特分组加密,生成64比特的密文。
由于DES是一种块加密方 法,这意味着加密过程是针对一个数据块一个数据块地进行的。在DES算法中,原始信息被分成64位的固定长度数据块,然后利用56位的加密密钥通过置换和 组合方法生成64位的加密信息。解密用的密钥与加密密钥相同,只是解密步骤正好相反。DES传送数据的一般形式是以代入法密码格式按块传送数据。DES采 用的加密方法,一次加密一位或一个字节,形成密码流。密码流具有自同步的特点,被传送的密码文本中发生错误和数据丢失,将只影响最终的明码文本的一小段(64位),这称为密码反馈。
与 蓝牙流密码算法不同,数学上可以证明分组加密算法是完全安全的。DES块密码是高度随机的、非线性的,生成的加密密文与明文和密钥的每一位都相关。DES 的可用加密密钥数量多达72 x 1015个。应用于每一明文信息的密钥都是从这一巨大数量的密钥中随机产生的。DES算法已被广泛采用并被认为是非常可靠的。
5. 2蓝牙中用DES取代E0流密码
如 图1,在两个蓝牙设备经过认证并已生成了加密密钥Kc后就可进行加密了。因为Kc可在8~128比特变化,而DES加密算法使用长度为56比特的密钥加密 长度为64比特的明文从而获得64比特的密文,所以这里可取Kc的长度为56比特。用DES加密蓝牙数据分组的过程如下:
a) 将来自蓝牙分组分割成64比特的明文段。其中的一段记为x=DIN[63:0],先通过一个固定的初始置换IP,将x的比特置换为x0。即:x0=IP(x)=L0R0,这里L0是x0的前32比特,R0是x0的后32比特。
b) 进行16轮完全相同的运算,在这里是数据与密钥相结合,例计算LiRi, 。
Li=Ri-1
Ri=Li f(Ri-1,Ki)
其中Ki是来自密钥Kc=Key[63:0]的比特的一个置换结果。而f函数是实现代替、置换及密钥异或的函数。
c) 对R16L16进行初始置换IP的逆置换IP ,获得密文y=DOUT[63:0],即y= IP (R16L16)。最后一次迭代后,左边和右边未交换,将R16L16作为IP 的输入,目的是使算法可同时用于加密和解密。
无 论是硬件还是软件,此DES加密方案都易实现。其中DES的硬件实现如图3。此硬件加密方案采用低成本的可编程逻辑器件和现成可用的用于高级加密处理的智 力产权(IP)产品实现。目前,大批量时只用10美元即可购买到10万系统门的可编程逻辑器件。这些器件还允许在设计中增加其它功能,如高级错误纠正。因 此可编程逻辑器件可大幅度降低系统级的成本。

用软件(这里选用C语言)来实现该加密算法。为了算法实现的方便,这里删去了初始置换和末置换。

将此加密算法嵌入蓝牙协议中的基带部分以取代E0流密码算法,可允许蓝牙技术安全地应用到范围广泛的安全性具有最重要地位的应用中去。这些应用包括:金融电子交易:ATM、智能卡 ,安全电子商务交易 ,安全办公通信 ,安全视频监视系统 ,数字机顶盒 ,高清晰度电视(HDTV) ,其它消费电子设备等领域。
另外,对蓝牙加密这个过程中,可发现DES加密算法在近距离无线局域网的特定环境下存在一些问题。进而优化算法,最终可为应用于各种近距离无线网络通信的加密算法的选择提供有实际意义的参考依据。
6 结束语
蓝牙是一项将会改变我们通信方式的令人激动的新技术。然而,蓝牙技术在标准化过程中都未整地考虑安全问题。作为以无线信道为传输媒体的通信网络,蓝牙网络相对于固定网络更容易受到攻击。对于数据安全性处于首要地位的应用来说,实现高水平的数 据安全性是必须的。目前蓝牙标准所采用的E0流密码算法存在着很多弊端,而DES和RSA算法相对来说更安全,而且较易实现。

BF10 蓝牙模块

 



zoom of kinect 物联网解决方案 U盘电子称方案 单片机读写U盘 体感放大器单片机读写SD卡

蓝牙4.0模块 无线门铃 门铃 不用电池的无线门铃Copyright © 深圳蓝色飞舞科技有限责任公司 All Right Reserved