蓝牙的信息安全机制及密钥算法改进

时间:2020-10-06 13:39:37 理工毕业论文 我要投稿

蓝牙的信息安全机制及密钥算法改进

摘要:重点分析了蓝牙的信息安全机制,对其各部分的算法及实现步骤进行了详细讨论。并对现有蓝牙规范安全性做了一定的评估,根据其不足提出了由DES算法构建的一种新的安全机制,能够满足安全性要求较高的蓝牙应用。

蓝牙作为一种新兴的短距离无线通信技术已经在各个领域得到广泛应用,它提供低成本、低功耗、近距离的无线通信,构成固定与移动设备通信环境中的个人网络,使得近距离内各种信息设备能够实现无缝资源共享。

由于蓝牙通信标准是以无线电波作为媒介,第三方可能轻易截获信息,所以蓝牙技术必须采取一定的安全保护机制,尤其在电子交易应用时。为了提供使用的'安全性和信息的可信度,系统必须在应用层和链路层提供安全措施。

本文重点讨论了蓝牙信息安全机制的构成原理及相关算法,并指出其在安全性方面存在的不足与问题。因为对于大多数需要将保密放在首位来考虑的应用来说,蓝牙现行标准所提供的数据安全性是不够的。蓝牙现行规范采用的128位密钥长度的序列的加密在某些情况下可以被破解。本文同时提出了一种蓝牙安全机制的改进方案,即采用DES加密体制构建强健的加钥算法,能够在计算上证明此加密算法是安全可靠的。

1 蓝牙的安全机制

蓝牙采取的安全机制适用于对等通信情况,即双方以相同方式实现认证与加密规程。链路层使用4个实体提供安全性:一个公开的蓝牙设备地址,长度为48bit;认证密钥,长度为128bit;加密密钥,长度为8~128bit;随机数,长度为128bit。以下重点讨论蓝牙安全机制的组成及相关算法。

1.1 随机数发生器

随机数发生器在蓝牙标准中有重要应用,例如在生成认证密钥和加密密钥中以及查询-应答方案中等。产生随机数的理想方法是使用具有随机物理特性的真实随机数·发生器,例如某些电子器件的热噪声等,但是在实际应用中通常利用基于软件实现的伪随机数发生器。蓝牙系统对于随机数的要求是“随机生成”和“非重复性”。“随机生成”是指不可能以明显大于零的概率(对于长度为L位的蓝牙加密密钥,概率大于1/2L)估计出随机数值。

目前在众多类型的伪随机数发生器中,线性同余发生器(Linear Congruential Generator)被最广泛地研究与使用。其表达式为:

Xn 1=αXn c(modm) n≥0。

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

1.2 密钥管理

蓝牙单元密钥长度不能由单元制造者预置,不能由用户设置。蓝牙基带标准规定不接收由高层软件给出的加密密钥以防止使用者完全控制密钥长度。

1.2.1 密钥类型

链路密钥是一个128位随机数,为通信双方或多方共享的临时性或半永久性密钥。半永久性链路密钥可以用于共享链路单元之间的几个相继认证过程中。临时密钥的典型应用是:在点对多点通信情况下,同一信息需要安全地发往多个接收端,这时采用主单元密钥取代当前链路密钥。蓝牙标准定义了四种链路密钥:①联合密钥KAB;②单元密钥KA;③临时密钥Kmoster;④初始化密钥Kinit。此外还定义了加密密钥Kc,由当前链路密钥生成。对蓝牙单元来说,单元密钥KA在单元A中生成,依赖于该单元,很少改变。联合密钥KAB。由单元A、B方共同生成。临时密钥Kmoster仅在当前会话中使用,也称主单元密钥。初始化密钥Kinit是蓝牙初始化过程中使用的链路密钥。该密钥由一个随机数、一个通常为十进制的PIN码以及发起单元的蓝牙设备地址BD_ADDR生成。PIN码可由用户选择也可以是随蓝牙一起提供的固定数。目前大多数应用中PIN码为4位的10进制数,无法提供较高的安全性。蓝牙基带标准要求PIN码长度为1~16位,因此建议尽量使用较长的PIN码以增强安全性。