本发明涉及蓝牙技术领域,具体涉及一种基于蓝牙通讯的密钥处理方法及蓝牙终端。
背景技术:
蓝牙技术是以2.4ghz为载波频率的一种无线传输方式,蓝牙技术的应用日趋广泛,如蓝牙耳机、蓝牙键盘、蓝牙鼠标和蓝牙手机等。蓝牙设备具有体积小、功耗低、对硬件要求不高、传输速度快和覆盖范围广等诸多优势,因为广泛应用在点到点的传输模式以及网络拓扑模式。
由于蓝牙通信属于无线传输方式,每次传输的数据包会暴露出来,容易被截取,不像线缆传输那样具备更好保密性。为了保证蓝牙传输数据的安全性,主机设备和蓝牙设备在进行数据传输之前,会首先进行密钥协商,也就是说,主机会先向选中的蓝牙设备发送密钥,之后会利用密钥对需要传输的数据进行加密,向选中的蓝牙设备发送加密后的密文,蓝牙设备根据获取到的密钥对密文进行解密,得到明文。
但是,若密钥被截取,那么攻击者便可以利用密钥解密后续截取到的密文,威胁到蓝牙数据传输的安全性。
技术实现要素:
本发明提供一种基于蓝牙通讯的密钥处理方法及蓝牙终端,用于解决现有技术蓝牙数据传输的安全性较低的问题。
本发明实施例的一方面提供了一种基于蓝牙通讯的密钥处理方法,包括:
第一蓝牙终端利用第一密钥对目标密钥进行加密,得到第一密文并发送至第二蓝牙终端;
所述第二蓝牙终端利用第二密钥对所述第一密文进行加密,得到第二密文,并发送至所述第一蓝牙终端;
所述第一蓝牙终端利用所述第一密钥对所述第二密文进行解密,得到第三密文,并发送至所述第二蓝牙终端;
所述第二蓝牙终端利用所述第二密钥对所述第三密文进行解密,得到所述目标密钥。
结合第一方面,在第一方面的第一种可能的实现方式中,第一蓝牙终端利用第一密钥对目标密钥进行加密包括:
所述第一蓝牙终端对所述目标密钥进行分段,得到密钥段;
所述第一蓝牙终端利用所述第一密钥分别对每一个所述密钥段进行加密,得到所述第一密文。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述加密算法和所述解密算法包括异或算法。
结合第一方面、第一方面的第一种可能的实现方式和第一方面的第二种可能的实现方式中任意一种可能的实现方式,在第一方面的第三种可能的实现方式中,在第一蓝牙终端利用第一密钥对目标密钥进行加密之前,所述方法还包括:
所述第一蓝牙终端利用随机算法生成所述目标密钥。
本发明实施例的第二方面提供了一种蓝牙终端,包括:
加密模块,用于利用第一密钥对目标密钥进行加密,得到第一密文;
第一发送模块,用于将所述第一密文发送至第二蓝牙终端;
接收模块,用于接收所述第二蓝牙终端返回的第二密文,所述第二密文为所述第二蓝牙终端利用第二密钥对所述第一密文进行加密得到的;
解密模块,用于利用所述第一密述第二密文进行解密,得到第三密文;
第二发送模块,用于将所述第三密文发送至所述第二蓝牙终端,以使得所述第二蓝牙终端利用所述第二密钥对所述第三密文进行解密,得到所述目标密钥。
结合第二方面,在第二方面的第一种可能的实现方式中,所述加密模块包括:
分段单元,用于对所述目标密钥进行分段,得到密钥段;
加密单元,用于利用所述第一密钥分别对每一个所述密钥段进行加密,得到所述第一密文。
结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述加密算法和所述解密算法包括异或算法。
结合第二方面、第二方面的第一种可能的实现方式和第二方面的第二种可能的实现方式中任意一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述蓝牙终端还包括:
密钥生成模块,用于利用随机算法生成所述目标密钥。
本发明实施例的第三方面提供了一种蓝牙终端,包括:
第一接收模块,用于接收第一蓝牙终端发送的第一密文,所述第一密文为所述第一蓝牙终端利用第一密钥对目标密钥进行加密得到的;
加密模块,用于利用第二密钥对所述第一密文进行加密,得到第二密文;
发送模块,用于将所述第二密文发送至所述第一蓝牙终端;
第二接收模块,用于接收所述第一蓝牙终端返回的第三密文,所述第三密文为所述第一蓝牙终端利用所述第一密钥对所述第二密文进行解密得到的;
解密模块,用于利用所述第二密钥对所述第三密文进行解密,得到所述目标密钥。
结合第三方面,在第三方面的第一种可能的实现方式中,所述加密算法和所述解密算法包括异或算法。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明提供的密钥处理方法中,第一蓝牙终端首先利用第一密钥对目标密钥进行加密,得到第一密文并发送至第二蓝牙终端,所述第二蓝牙终端利用第二密钥对所述第一密文进行加密,得到第二密文,并发送至所述第一蓝牙终端,所述第一蓝牙终端利用所述第一密钥对所述第二密文进行解密,得到第三密文,并发送至所述第二蓝牙终端,之后所述第二蓝牙终端利用所述第二密钥对所述第三密文进行解密,最终得到所述目标密钥,和现有技术相比,目标密钥在第一蓝牙终端和第二蓝牙终端之间保持密文传输,因此提高了目标密钥的安全性,进而可以提高蓝牙数据传输的安全性。
附图说明
图1是本发明基于蓝牙通讯的密钥处理方法一个实施例示意图;
图2是本发明基于蓝牙通讯的密钥处理方法另一个实施例示意图;
图3是本发明蓝牙终端一个实施例示意图;
图4是本发明蓝牙终端另一个实施例示意图;
图5是本发明蓝牙终端另一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于蓝牙通讯的密钥处理方法及蓝牙终端,用于提高蓝牙数据传输的安全性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中基于蓝牙通讯的密钥处理方法一个实施例包括:
101、第一蓝牙终端利用第一密钥对目标密钥进行加密,得到第一密文;
第一蓝牙终端预先产生第一密钥ka和目标密钥km,第一蓝牙终端和第二蓝牙终端进行蓝牙通讯时,第一蓝牙终端首先利用第一密钥ka对目标密钥km进行加密,得到第一密文c1=eka(km)。
102、第一蓝牙终端将第一密文发送至第二蓝牙终端;
第一蓝牙终端得到第一密文c1之后,可以按照蓝牙通讯协议将第一密文c1发送至第二蓝牙终端。
103、第二蓝牙终端利用第二密钥对第一密文进行加密,得到第二密文;
第二蓝牙终端可以预先产生第二密钥kb,第二蓝牙终端接收到第一密文c1之后,可以利用第二密钥kb对第一密文c1进行加密,得到第二密文c2=ekb(c1)=ekb(eka(km))。
104、第二蓝牙终端将第二密文发送至第一蓝牙终端;
第二蓝牙终端得到第二密文c2之后,可以将第二密文c2发送至第一蓝牙终端。
105、第一蓝牙终端利用第一密钥对第二密文进行解密,得到第三密文;
第一蓝牙终端可以接收到第二密文c2,并利用第一密钥ka对第二密文c2进行解密,得到第三密文c3=dka(c2)=dka(ekb(c1))=dka(ekb(eka(km)))。
106、第一蓝牙终端将第三密文发送至第二蓝牙终端;
第一蓝牙终端得到第三密文c3之后,可以将第三密文c3发送至第二蓝牙终端。
107、第二蓝牙终端利用第二密钥对第三密文进行解密,得到目标密钥。
第二蓝牙终端可以接收到第三密文c3,之后可以利用第二密钥kb对第三密文c3进行解密,km'=dkb(c3)=dkb(dka(c2))=dkb(dka(ekb(c1)))=dkb(dka(ekb(eka(km)))),此时km'=km,也就得到目标密钥km。
本发明实施例提供的密钥处理方法中,第一蓝牙终端首先利用第一密钥对目标密钥进行加密,得到第一密文并发送至第二蓝牙终端,第二蓝牙终端利用第二密钥对第一密文进行加密,得到第二密文,并发送至第一蓝牙终端,第一蓝牙终端利用第一密钥对第二密文进行解密,得到第三密文,并发送至第二蓝牙终端,之后第二蓝牙终端利用第二密钥对第三密文进行解密,最终得到目标密钥,和现有技术相比,目标密钥在第一蓝牙终端和第二蓝牙终端之间保持密文传输,因此提高了目标密钥的安全性,进而可以提高蓝牙数据传输的安全性。
请参阅图2,本发明实施例中基于蓝牙通讯的密钥处理方法另一个实施例包括:
201、第一蓝牙终端利用随机算法生成目标密钥;
在第一蓝牙终端与第二蓝牙终端进行数据传输之前,第一蓝牙终端可以利用随机算法生成目标密钥km,和使用固定的目标密钥相比,利用随机算法生成目标密钥能够提高密钥协商过程的安全性。作为举例,假设生成的目标密钥km为8字节。
202、第一蓝牙终端对目标密钥进行分段,得到密钥段;
第一蓝牙终端生成目标密钥km之后,可以对目标密钥km进行分段,得到密钥段,作为举例,可以将目标密钥km分成两段,每段4字节。
203、第一蓝牙终端利用第一密钥分别对每一个密钥段进行加密,得到第一密文;
第一蓝牙终端可以利用随机算法生成第一密钥ka,和使用固定的第一密钥相比,利用随机算法生成第一密钥能够提高密钥传输过程中的安全性。利用第一密钥ka分别对每一个密钥段进行加密,可以得到第一密文。本发明实施例可以采用异或算法对密钥段进行加密,利用第一密钥ka对第一密钥段进行加密得到第一密文段c。按照上述方法可以得到另一部分的第一密文段,组成完整的第一密文。
204、第一蓝牙终端将第一密文发送至第二蓝牙终端;
第一蓝牙终端得到第一密文之后,可以将第一密文发送至第二蓝牙终端。
205、第二蓝牙终端利用第二密钥对第一密文进行加密,得到第二密文;
第二蓝牙终端可以利用随机算法生成第二密钥,和使用固定的第二密钥相比,利用随机算法生成第二密钥能够提高密钥传输过程中的安全性。第二蓝牙终端接收到第一密文之后,可以利用第二密钥对第一密文的两个密文段分别进行加密,得到第二密文。
206、第二蓝牙终端将第二密文发送至第一蓝牙终端;
第二蓝牙终端得到第二密文之后,可以将第二密文发送至第一蓝牙终端。
207、第一蓝牙终端利用第一密钥对第二密文进行解密,得到第三密文;
第一蓝牙终端接收到第二密文之后,可以利用第一密钥对第二密文的两个密文段分别进行解密,得到第三密文。
208、第一蓝牙终端将第三密文发送至第二蓝牙终端;
第一蓝牙终端得到第三密文之后,可以将第三密文发送至第二蓝牙终端。
209、第二蓝牙终端利用第二密钥对第三密文进行解密,得到目标密钥。
第二蓝牙终端接收到第三密文之后,可以利用第二密钥分别对第三密文的两个密文段进行解密,得到目标密钥。
在本发明实施例中使用的加密和解密算法可以包括异或算法,具体的,作为举例,加密算法可以为:
其中m[i]和k[i]指m的第i个字节和ka的第i个字节。
假设m为第一密钥段,且m=[0x00,0x10,0x20,0x30],k为第一密钥,且k=[0x00,0x02,0x01,0x03,0x73,0x59,0x42,0x3a],那么第一密文段c=[0x73,0x52,0x79,0x0a]。
相应的,解密算法可以为:
由于k=[0x00,0x02,0x01,0x03,0x73,0x59,0x42,0x3a],第一密文段c=[0x73,0x52,0x79,0x0a],那么m’=[0x00,0x10,0x20,0x30]=m。
在实际使用中,还可以使用其他加密和解密算法,本发明提供的算法仅作为一种简便有效的算法实施例,而不是对算法的限定。
上面对本发明实施例中基于蓝牙通讯的密钥处理方法进行了描述,下面对本发明实施例中的蓝牙终端进行描述。
请参阅图3,本发明实施例中蓝牙终端3的一个实施例包括:
加密模块301,用于利用第一密钥对目标密钥进行加密,得到第一密文;
第一发送模块302,用于将第一密文发送至第二蓝牙终端;
接收模块303,用于接收第二蓝牙终端返回的第二密文,第二密文为第二蓝牙终端利用第二密钥对第一密文进行加密得到的;
解密模块304,用于利用第一密述第二密文进行解密,得到第三密文;
第二发送模块305,用于将第三密文发送至第二蓝牙终端,以使得第二蓝牙终端利用第二密钥对第三密文进行解密,得到目标密钥。
优选的,请参阅图4,本发明实施例中蓝牙终端的另一个实施例包括:
加密模块401,用于利用第一密钥对目标密钥进行加密,得到第一密文;
第一发送模块402,用于将第一密文发送至第二蓝牙终端;
接收模块403,用于接收第二蓝牙终端返回的第二密文,第二密文为第二蓝牙终端利用第二密钥对第一密文进行加密得到的;
解密模块404,用于利用第一密述第二密文进行解密,得到第三密文;
第二发送模块405,用于将第三密文发送至第二蓝牙终端,以使得第二蓝牙终端利用第二密钥对第三密文进行解密,得到目标密钥。
蓝牙终端还包括:
密钥生成模块406,用于利用随机算法生成目标密钥。
加密模块401包括:
分段单元4011,用于对目标密钥进行分段,得到密钥段;
加密单元4012,用于利用第一密钥分别对每一个密钥段进行加密,得到第一密文。
请参阅图5,本发明实施例中蓝牙终端的另一个实施例包括:
第一接收模块501,用于接收第一蓝牙终端发送的第一密文,第一密文为第一蓝牙终端利用第一密钥对目标密钥进行加密得到的;
加密模块502,用于利用第二密钥对第一密文进行加密,得到第二密文;
发送模块503,用于将第二密文发送至第一蓝牙终端;
第二接收模块504,用于接收第一蓝牙终端返回的第三密文,第三密文为第一蓝牙终端利用第一密钥对第二密文进行解密得到的;
解密模块505,用于利用第二密钥对第三密文进行解密,得到目标密钥。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。