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算法相对来说更安全,而且较易实现。
参考文献
[1] 金纯 许光辰 等编著 《蓝牙技术》[M] (北京)电子工业出版社 2001年3月
[2] 于跃 韩永飞 蓝牙技术的安全性[J]《电信技术》2001年第9期
[3] Andrew 《Computer Network》[M]S.Tanenbaun Prentice Hall 1998
[4] Vainio J., Bluetooth Security, ~jiitv/bluesec.html05-25-2000
[5] Bluetooth, The Bluetooth Specification, v.1.0B
[6] 赖溪松 韩亮 张真诚 著《计算机密码学及其应用》[M](北京)国防工业出版社 2001年7月
[7] 卢铁城 编著《信息加密技术》[M](成都)四川科学技术出版 1989年10月