蓝牙的信息安全机制及密钥算法改进
DES的一次乘积变换运算步骤为:(1)把64bit输入码分成左右两组,每组32位比特,分别用Li-1和Ri-1代表。其中i代表第i次乘积变换,i=1~16。(2)把该次乘积变换输入分组的右组32位比特变为输出分组的左组32位比特,即Li=Ri-1。(3)输入分组右组32位比特经过扩展操作变为48位比特码组。(4)扩展变换输出的48位比特与子密钥Ki的48位比特按模2相加,输出的48位比特分为8组,每组6位。(5)把每组6位比特进行密表(S-盒)替代,产生4位比特。输入的6位比特的第1、6两位决定密表内所要选择的行数,其余4位决定密表内的列数。(6)把8组密表输出合并为32位比特,然后与本次乘积变换输入左组Ci-1按位模2相加,即可得到第i次乘积变换的右32位输出Ri。
2.2 DES算法的特点
DES算法具有以下特点:
(1)DES的保密性仅仅取决于对密钥的保密,算法公开。
(2)在目前水平下,不知道密钥而在一定的时间内要破译(即解析出密钥K或明文)是不可能的,至少要建立2 56或2 64个项的表,这是现有资源无法实现的。
(3)由于“雪崩效应”,无法分而破之,一位的变化将引起若干位同时变化。
综上所述,由DES算法构建的蓝牙安全机制是可靠的,采用穷举方式攻击是不现实的。假设有一台每秒完成一次DES加密的机器要用将近1000年的时间才能破译这个密码。
以上算法能够保持数据加密过程中与蓝牙标准所需参数的一致性,它与蓝牙算法产生的单元密钥在时间实现上同处一个数量级别,符合蓝牙规范要求。
本文首先重点讨论了蓝牙信息安全的机制构成,对其各部分的算法及实现步骤进行了详细说明。然后对现有蓝牙规范安全性做了一定的评估,并根据其不足提出了由DES算法构建新的安全方案,能够给蓝牙在安全性要求较高的应用上提供一个安全设计的改进参考。
《蓝牙的信息安全机制及密钥算法改进(第4页)》