蓝牙的信息安全机制及密钥算法改进
令xit表示LFSRit时刻输出状态比特,由四元组(x1t,…,x4t)得Yt为:
,式中Yt为整数,取值为0,1,2,3或4。加法生成器输出由下述方程给出:
式中,T1[.]与T2[.]是GF(4)上两个不同的线性双射。
密钥流生成器工作前需要为4个LFSR(总共128bit)装载初始值并且确定C0与C-14bit值,这些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.3.2 认证
蓝牙技术认证实体使用所谓查验-应答方案。通过“两步”协议,申请者是否知道秘密密钥使用对称密钥进行证实。这意味着,一个正确的申请者/证实者对,在查验-应答方案中将共享相同密钥Kc,证实者对于申请者是否能够认证算法K1认证随机数AU_RANDA,并返回认证结果SERS,进行查验。其认证及加密密钥生成函数可以参考相关资料,此处略。?
2 蓝牙安全机制的方案改进
现有蓝牙安全机制主要存在两个主要问题。一个是单元密钥的使用问题:在鉴权和加密过程中,由于单元密钥没有改变,第三方利用此密钥来窃取信息。128位密钥长度的E0序列加密在某些情况下可通过不是很复杂的方法破解。另一个是蓝牙单元提供的个人识别码(PIN码)的不安全问题:由于大多数应用中PIN码是由4位十进制数组成,所以采用穷举法很容易攻击成功。
克服这些安全性问题的解决方法除了增加PIN码长度外,关键是要采取更为强健的加密算法,如用数字加密标准DES代替序列加密算法。DES是一种块加密方法,加密过程是针对一个个数据块进行的。在DES算法中,原始信息被分为64位的固定长度数据块,然后利用56位的加密密钥通过置换和组合方法生成64位的加密信息。与蓝牙序列的加密算法不同,数学上可以证明块加密算法是完全安全的。DES块密码是高度随机和非线性的,其产生的密文和明文与密钥的每一位都相关。DES的可用加密密钥数量非常庞大,应用于每一位明文信息的密钥都是从这个庞大数量的密钥中随机产生的。DES算法已经被广泛采用并认为非常可靠。采用DES加密算法的蓝牙技术可以将蓝牙应用到安全性较高的应用中去,例如电子金融交易、ATM等。
2.1 DES算法
1977年美国国家标准局公布了联邦数据加密标准DES。由于DES算法保密性强,迄今尚无切实可行的破译方法,所以DES得到了广泛地应用。DES是一种分组密码体制,它将明文按64位一组分成若干组,密钥长为56位。其基本思想是采用变换的组合与迭代,将明文中的各组变为密文组。
在DES系统中,乘积变换是加密过程的核心,连续进行16次操作,每次更新一组密钥。移位变换B是移位变换A的逆变换。图4为DES体制加密流程,图的右侧表示DES系统的密钥生成过程。初始密钥是一串64bit的随机序列。经过反复移位变换,产生16组子密钥(K1~K16),每组子密钥用于一次乘积变换。所谓初始重排(IP)就是打乱输入分组内比特原有排列次序,重新排列,排列方式是固定的。
《蓝牙的信息安全机制及密钥算法改进(第3页)》