一种密钥协商的方法及系统、蓝牙设备与流程

文档序号:14252896阅读:287来源:国知局
一种密钥协商的方法及系统、蓝牙设备与流程

本发明涉及加密技术领域,尤其涉及一种密钥协商的方法及系统、蓝牙设备。



背景技术:

为验证数据传输的完整性以及个人信息的保密性,需要将蓝牙发送设备与蓝牙接收设备之间传输的数据进行加密。目前,密钥协商的方法主要存在两种形式,一种是蓝牙的接收端和发送端预先约定对传输数据进行加密的密钥,另一种是双方依据安全协议通过密钥协商来确定一共同的密钥。

然而,通过预先约定密钥的方式,存在密钥单一固定,易被破解,安全系数低;为避免密钥单一固定的问题,现通过密钥协商的方式确定共同的密钥,但必然依据安全协议进行密钥协商至少需要4个回合,使得传输效率低。

综上所述,亟需高协商效率的动态密钥协商方法。



技术实现要素:

本发明实施例中提供了一种密钥协商的方法及系统、蓝牙设备,用以解决动态密钥的协商效率较低的问题。

本发明实施例中提供的一种密钥协商的系统,该系统包括:蓝牙发送设备、蓝牙接收设备;其中,

蓝牙发送设备,用于根据所述蓝牙发送设备的标识和所述蓝牙发送设备的状态信息,生成字符串;将生成的字符串转换为条形码;在蓝牙发送设备上显示条形码;在生成所述字符串之后,利用预设的杂凑算法,根据字符串生成解密密钥;

蓝牙接收设备,用于扫描在所述蓝牙发送设备上显示的所述条形码,得到所述条形码对应的字符串;并利用预设的所述杂凑算法,根据所述条形码对应的字符串生成加密密钥。

较佳地,在生成加密密钥之后,所述蓝牙接收设备还用于:

向所述蓝牙发送设备发送配对连接请求;接收所述蓝牙发送设备反馈的配对连接成功的响应;向所述蓝牙发送设备发送获取随机因子指令;接收所述蓝牙发送设备发送的随机因子;利用所述加密密钥,对接收到的随机因子加密,并将加密后的随机因子发送给所述蓝牙发送设备;接收所述蓝牙发送设备发送的协商成功的消息,确定密钥协商成功;

所述蓝牙发送设备还用于:

接收所述蓝牙接收设备发送的配对连接请求,并进行配对连接;向所述蓝牙接收设备反馈配对连接成功的响应;接收所述蓝牙接收设备发送的获取随机因子指令;生成随机因子,并将所述随机因子发送给所述蓝牙接收设备;接收所述蓝牙接收设备发送的加密后的随机因子;并利用所述解密密钥,对加密后的随机因子解密,验证解密后的随机因子与生成的随机因子是否相同,若是,则确定密钥协商成功,并向所述蓝牙接收设备发送协商成功的消息。

较佳地,生成随机因子,所述蓝牙发送设备具体用于:

根据随机算法生成随机数,确定所述随机数为随机因子;或,

先根据随机算法生成随机数,再按照预设的组合方式,根据生成的随机数和所述蓝牙发送设备的状态信息,生成随机因子。

较佳地,在确定密钥协商成功之后,所述蓝牙发送设备还用于:

若所述解密密钥已达到预设的密钥的生命周期,且所述蓝牙发送设备与所述蓝牙接收设备保持连接状态,则向所述蓝牙接收设备发送所述蓝牙发送设备当前的状态信息;并根据所述蓝牙发送设备的标识、所述蓝牙发送设备的状态信息和生成的所述解密密钥,生成新的字符串,利用预设的杂凑算法,根据新的所述字符串,生成并更新解密密钥;

在确定密钥协商成功之后,所述蓝牙接收设备还用于:

若所述加密密钥已达到预设的密钥的生命周期,且所述蓝牙发送设备与所述蓝牙接收设备保持连接状态,则监测所述蓝牙发送设备是否发送其当前的状态信息;若接收到状态信息,则根据扫描得到的条形码对应的字符串,确定所述蓝牙发送设备的标识,并根据所述蓝牙发送设备的标识、接收到的状态信息以及生成的所述加密密钥,生成新的字符串;并利用预设的杂凑算法,根据新生成的字符串,生成并更新加密密钥。

较佳地,所述蓝牙发送设备的状态信息包括:电池当前的电量和/或rtc实时时钟时间。

较佳地,所述蓝牙发送设备的标识包括:所述蓝牙发送设备的序列号、芯片标识和/或mac物理地址。

较佳地,所述条形码包括:一维条形码或二维码。

本发明实施例中提供的一种密钥协商的方法,该方法包括:

根据第一蓝牙设备的标识和第一蓝牙设备当前的状态信息,生成字符串;

将生成的所述字符串转换为条形码,并在所述第一蓝牙设备上显示条形码;利用预设的杂凑算法,根据生成的所述字符串生成解密密钥。

较佳地,在生成解密密钥之后,该方法还包括:

接收所述第二蓝牙设备发送的配对连接请求,并进行配对连接;

向所述第二蓝牙设备反馈配对连接成功的响应;

接收所述第二蓝牙设备发送的获取随机因子指令;

生成随机因子,并将所述随机因子发送给所述第二蓝牙设备;

接收所述第二蓝牙设备发送的加密后的随机因子;

利用所述解密密钥,对所述加密后的随机因子解密,并验证解密后的随机因子与生成的随机因子是否相同,若是,则确定密钥协商成功,并向第二蓝牙设备发送协商成功的消息。

较佳地,生成随机因子,包括:

根据随机算法生成随机数,确定所述随机数为随机因子;或,

先根据随机算法生成随机数,再按照预设的组合方式,根据生成的随机数和所述第一蓝牙设备的状态信息,生成随机因子。

较佳地,在确定密钥协商成功之后,该方法还包括:

若所述解密密钥已达到预设的密钥的生命周期,且所述第一蓝牙设备与所述第二蓝牙设备保持连接状态,则向所述第二蓝牙设备发送所述第一蓝牙设备当前的状态信息;根据所述第一蓝牙设备的标识、所述第一蓝牙设备的状态信息和生成的所述解密密钥,生成新的字符串;利用预设的杂凑算法,根据新生成的字符串,生成并更新解密密钥。

较佳地,所述第一蓝牙设备的状态信息包括:电池当前的电量和/或rtc实时时钟时间。

较佳地,所述第一蓝牙设备的标识包括:所述第一蓝牙设备的序列号、芯片标识和/或mac物理地址。

较佳地,所述条形码包括:一维条形码或二维码。

本发明实施例中提供的一种密钥协商的方法,该方法包括:

扫描在第一蓝牙设备上显示的条形码,得到所述条形码对应的字符串;

利用预设的杂凑算法,根据所述条形码对应的字符串生成加密密钥。

较佳地,在生成加密密钥之后,该方法还包括:

向所述第一蓝牙设备发送配对连接请求;

接收所述第一蓝牙设备反馈的配对连接成功的响应;

向所述第一蓝牙设备发送获取随机因子指令;

接收所述第一蓝牙设备发送的随机因子;

利用所述加密密钥,对接收到的随机因子加密,并将加密后的随机因子发送给所述第一蓝牙设备;

接收所述第一蓝牙设备发送的协商成功的消息,确定密钥协商成功。

较佳地,在确定密钥协商成功之后,该方法还包括:

若所述加密密钥已达到预设的密钥的生命周期,且所述第一蓝牙设备与所述第二蓝牙设备保持连接状态,则监测所述第一蓝牙设备是否发送其当前的状态信息;若接收到状态信息,则根据扫描得到的条形码对应的字符串,确定所述第一蓝牙设备的标识,并根据所述第一蓝牙设备的标识、接收到的状态信息以及生成的所述加密密钥,生成新字符串;并利用预设的杂凑算法,根据新生成的字符串,生成并更新加密密钥。

较佳地,所述条形码包括:一维条形码或二维码。

本发明实施例中提供的一种蓝牙设备,该蓝牙设备包括:

组合模块,用于根据第一蓝牙设备的标识和所述第一蓝牙设备当前的状态信息,生成字符串;

密钥模块,用于将生成的所述字符串转换为条形码,并在所述第一蓝牙设备上显示条形码;利用预设的杂凑算法,根据生成的所述字符串生成解密密钥。

较佳地,在生成解密密钥之后,所述密钥模块还用于:

接收所述第二蓝牙设备发送的配对连接请求,并进行配对连接;

向所述第二蓝牙设备反馈配对连接成功的响应;

接收所述第二蓝牙设备发送的获取随机因子指令;

生成随机因子,并将所述随机因子发送给所述第二蓝牙设备;

接收所述第二蓝牙设备发送的加密后的随机因子;

利用所述解密密钥,对所述加密后的随机因子解密,并验证解密后的随机因子与生成的随机因子是否相同,若是,则确定密钥协商成功,并向第二蓝牙设备发送协商成功的消息。

较佳地,生成随机因子,所述密钥模块用于:

根据随机算法生成随机数,确定所述随机数为随机因子;或,

先根据随机算法生成随机数,再按照预设的组合方式,根据生成的随机数和所述第一蓝牙设备的状态信息,生成随机因子。

较佳地,在确定密钥协商成功之后,所述密钥模块还用于:

若所述解密密钥已达到预设的密钥的生命周期,且所述第一蓝牙设备与所述第二蓝牙设备保持连接状态,则向所述第二蓝牙设备发送所述第一蓝牙设备当前的状态信息;根据所述第一蓝牙设备的标识、所述第一蓝牙设备的状态信息和生成的所述解密密钥,生成新的字符串;利用预设的杂凑算法,根据新生成的字符串,生成并更新解密密钥。

较佳地,所述第一蓝牙设备的状态信息包括:电池当前的电量或rtc实时时钟时间。

较佳地,所述第一蓝牙设备的标识包括:所述第一蓝牙设备的序列号、芯片标识和/或mac物理地址。

较佳地,所述条形码包括:一维条形码或二维码。

本发明实施例中提供的一种蓝牙设备,该蓝牙设备包括:

扫描模块,用于扫描在第一蓝牙设备上显示的条形码,得到所述条形码对应的字符串;

密钥模块,用于利用预设的杂凑算法,根据所述条形码对应的字符串生成加密密钥。

较佳地,所述密钥模块,还用于:

向所述第一蓝牙设备发送配对连接请求;

接收所述第一蓝牙设备反馈的配对连接成功的响应;

向所述第一蓝牙设备发送获取随机因子指令;

接收所述第一蓝牙设备发送的随机因子;

利用所述加密密钥,对接收到的随机因子加密,并将加密后的随机因子发送给所述第一蓝牙设备;

接收所述第一蓝牙设备发送的协商成功的消息,确定密钥协商成功。

较佳地,在确定密钥协商成功之后,所述密钥模块还用于:

若所述加密密钥达到预设的密钥的生命周期,且所述第一蓝牙设备与所述第二蓝牙设备保持连接状态,则监测所述第一蓝牙设备是否发送其当前的状态信息;若接收到状态信息,则根据扫描得到的条形码对应的字符串,确定所述第一蓝牙设备的标识,并根据所述第一蓝牙设备的标识、接收到的状态信息以及生成的所述加密密钥,生成新字符串;并利用预设的杂凑算法,根据新生成的字符串,生成并更新加密密钥。

较佳地,所述条形码包括:一维条形码或二维码。

本发明实施例中提供的一种计算设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现如上述的密钥协商的方法。

本发明实施例中提供的一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的密钥协商的方法中的步骤。

本发明实施例中提供了一种密钥协商的方法及系统、蓝牙设备,通过扫描条形码的方式实现双方密钥的交换协商,避免了动态密钥的协商效率较低的问题;又由于二维码是结合蓝牙设备的状态信息转换得到的,也就避免了现有技术中密钥单一固定的问题。

附图说明

图1为本发明实施例一中提供的密钥协商的系统的结构示意图;

图2为本发明实施例一中提供的蓝牙设备的交互步骤的流程示意图;

图3为本发明实施例二中提供的密钥协商的方法的流程示意图;

图4为本发明实施例三中提供的密钥协商的方法的流程示意图;

图5为本发明实施例四中提供的蓝牙设备的结构示意图;

图6为本发明实施例五中提供的蓝牙设备的结构示意图。

具体实施方式

本发明实施例中提供了一种密钥协商的方法及系统、蓝牙设备,用以解决动态密钥的协商效率较低的问题。

下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

本发明实施例一中提供了一种密钥协商的系统,参见图1,该系统包括:蓝牙发送设备110、蓝牙接收设备120;其中,

蓝牙发送设备110,用于根据蓝牙发送设备的标识和蓝牙发送设备的状态信息,生成字符串;将生成的字符串转换为条形码;在蓝牙发送设备上显示条形码;在生成所述字符串之后,利用预设的杂凑算法,根据字符串生成解密密钥。其中,本发明中的状态信息将随着时间的变化而变化,具体可为当前的时间信息或者为当前电池剩余的电量信息等。

蓝牙接收设备120,用于扫描在蓝牙发送设备上显示的条形码,得到该条形码对应的字符串;并利用预设的杂凑算法,根据该条形码对应的字符串生成加密密钥。

具体地,在生成加密密钥之后,蓝牙接收设备120还用于:

向蓝牙发送设备发送配对连接请求;接收蓝牙发送设备反馈的配对连接成功的响应;向所述蓝牙发送设备发送获取随机因子指令;接收所述蓝牙发送设备发送的随机因子;利用之前生成的加密密钥,对接收到的随机因子加密,并将加密后的随机因子发送给蓝牙发送设备;接收蓝牙发送设备发送的协商成功的消息,确定密钥协商成功;

蓝牙发送设备110还用于:

接收所述蓝牙接收设备发送的配对连接请求,并进行配对连接;向所述蓝牙接收设备反馈配对连接成功的响应;接收所述蓝牙接收设备发送的获取随机因子指令;生成随机因子,并将生成的随机因子发送给蓝牙接收设备;接收蓝牙接收设备发送的加密后的随机因子;并利用之前生成的解密密钥,对加密后的随机因子解密,验证解密后的随机因子与生成的随机因子是否相同,若是,则确定密钥协商成功,并向蓝牙接收设备发送协商成功的消息。

具体地,在蓝牙发送设备110确定密钥协商成功之后,蓝牙发送设备110还用于:

判断之前生成的解密密钥是否达到预设的密钥的生命周期,且与蓝牙接收设备是否保持连接状态;若解密密钥已达到预设的密钥的生命周期,且与蓝牙接收设备仍然保持连接状态,则向蓝牙接收设备发送其当前的状态信息;并根据蓝牙发送设备的标识、当前的状态信息和之前生成的解密密钥,生成新的字符串,利用预设的杂凑算法,根据新生成的字符串,生成并更新解密密钥;

在蓝牙接收设备120确定密钥协商成功之后,蓝牙接收设备120还用于:

判断之前生成的加密密钥是否达到预设的密钥的生命周期,且与蓝牙发送设备是否保持连接状态;若加密密钥已达到预设的密钥的生命周期,且与蓝牙发送设备仍然保持连接状态,则监测蓝牙发送设备是否发送状态更新信息;若接收到状态信息,则根据扫描得到的条形码对应的字符串,确定蓝牙发送设备的标识,并根据蓝牙发送设备的标识、接收的状态信息以及生成的加密密钥,生成新的字符串;并利用预设的杂凑算法,根据新生成的字符串,生成并更新加密密钥。

其中,生成随机因子,蓝牙发送设备110具体用于:

根据随机算法生成随机数,确定所述随机数为随机因子;或,

先根据随机算法生成随机数,再按照预设的组合方式,根据生成的随机数和蓝牙发送设备的状态信息,生成随机因子。

其中,蓝牙接收设备120可为安装有执行上述步骤的应用app(application)的蓝牙设备。

为便于理解,解释蓝牙发送设备110与蓝牙接收设备120的交互步骤,参见图2,该步骤包括:

s201、蓝牙发送设备110根据蓝牙发送设备的标识和状态信息,生成字符串;其中,公共信息可以为该蓝牙发送设备的序列号、芯片标识和/或mac(mediaaccesscontrol,物理地址)地址;状态信息可以为电池当前的剩余电量或rtc(real-timeclock,实时时钟)时间;在生成字符串之后,执行步骤s202和步骤s206。

s202、蓝牙发送设备110将生成的字符串转换为条形码;其中,条形码可以为一维条形码或者为二维码。

s203、在蓝牙发送设备上显示步骤s202转换得到的条形码。

s204、蓝牙接收设备120扫描在蓝牙发送设备110上显示的条形码,得到该条形码对应的字符串。

s205、蓝牙接收设备120利用预设的杂凑算法,根据该条形码对应的字符串生成加密密钥。

s206、蓝牙发送设备110利用预设的杂凑算法,根据步骤s201生成的字符串生成解密密钥。

s207、蓝牙接收设备120向蓝牙发送设备110发送配对连接请求。

s208、当蓝牙发送设备110接收到蓝牙接收设备120发送的配对连接请求之后,进行配对连接,若连接成功,则反馈配对连接成功的响应;蓝牙接收设备120向蓝牙发送设备110发送获取随机因子指令。

s209、蓝牙发送设备110在接收到蓝牙接收设备120发送的获取随机因子指令之后,根据随机算法生成随机数,并确定所述随机数为随机因子;或,先根据随机算法生成随机数,再按照预设的组合方式,根据生成的随机数和所述蓝牙发送设备的状态信息,生成随机因子。

s210、蓝牙发送设备110将步骤s209生成的随机因子发送给蓝牙接收设备120。

s211、蓝牙接收设备120接收到随机因子之后,利用步骤s205生成的加密密钥,对接收到的随机因子加密,并将加密后的随机因子发送给蓝牙发送设备110。

s212、蓝牙发送设备110接收蓝牙接收设备120发送的加密后的随机因子,并利用步骤s206生成的解密密钥,对加密后的随机因子解密,验证解密后的随机因子与生成的随机因子是否相同,若是,则确定密钥协商成功,并向蓝牙接收设备120发送协商成功的消息,其中,协商成功的消息中包括该密钥的生命周期。

s213、蓝牙接收设备120接收蓝牙发送设备110发送的协商成功的消息;若接收到协商成功的消息,则确定密钥协商成功,并从消息中获取该密钥的生命周期。

s214、若已达到该密钥的生命周期的且蓝牙发送设备和蓝牙接收设备的连接未断开,则执行密钥替换更新操作;在蓝牙发送设备110向蓝牙接收设备120发送获取随机因子指令之后,执行步骤s209。

s215、若蓝牙发送设备和蓝牙接收设备的连接断开,则直接执行步骤s201。

具体地,密钥替换步骤具体包括:蓝牙发送设备110根据蓝牙发送设备的标识、自身的状态信息以及步骤s206生成的解密密钥,生成新的字符串;利用预设的杂凑算法,根据新生成的字符串,生成并更新解密密钥;

蓝牙接收设备120监测蓝牙发送设备110是否发送其当前的状态信息;若接收到状态信息,则根据步骤s204得到的字符串以及字符串生成算法,确定蓝牙发送设备的标识,并根据蓝牙发送设备的标识、接收到的状态信息以及步骤s205生成的加密密钥,生成新的字符串;并利用预设的杂凑算法,根据新生成的字符串,生成并更新加密密钥。

其中,步骤s211和步骤s212中的加解密的方法和后续蓝牙接收设备120和蓝牙发送设备110利用协商成功的密钥加解密的方法,均为利用对称算法计算的。常用的对称算法包括sm4算法,des算法,3des算法,tdea算法,blowfish算法,rc5算法,idea算法。

实施例二:

本发明实施例二提供了一种密钥协商的方法,参见图3,该方法包括:

s310、根据第一蓝牙设备的标识和第一蓝牙设备当前的状态信息,生成字符串;

s320、将生成的字符串转换为条形码,并在第一蓝牙设备上显示条形码;利用预设的杂凑算法,根据生成的字符串生成解密密钥。

具体地,生成字符串的方法,既可以为根据第一蓝牙设备的标识确定,也可以根据第一蓝牙设备的状态信息确定,还可以根据生成的随机数确定,还可以根据设备标识、状态信息、随机数中任两种,根据预设的字符串生成算法排列组合生成,还可以根据预设的字符串生成算法将设备标识、状态信息和随机数进行排列组合生成。其中,状态信息可以为电池当前的电量或rtc实时时钟时间。设备标识可以为第一蓝牙设备的序列号、芯片标识和/或mac物理地址。

具体地,在步骤s320生成解密密钥之后,该方法还包括:

接收所述第二蓝牙设备发送的配对连接请求,并进行配对连接;

向所述第二蓝牙设备反馈配对连接成功的响应;

接收所述第二蓝牙设备发送的获取随机因子指令;

生成随机因子,并将生成的随机因子发送给第二蓝牙设备;

接收第二蓝牙设备发送的加密后的随机因子;

利用生成的解密密钥,对加密后的随机因子进行解密,并验证解密后的随机因子与生成的随机因子是否相同,若是,则确定密钥协商成功,并向第二蓝牙设备发送协商成功的消息。

具体地,在确定密钥协商成功之后,该方法还包括:

判断解密密钥是否已达到预设的密钥的生命周期,且与第二蓝牙设备是否保持连接状态;若解密密钥已达到预设的密钥的生命周期,且与第二蓝牙设备仍然保持连接状态,则向第二蓝牙设备发送其当前的状态信息;并根据第一蓝牙设备的标识、第一蓝牙设备当前的状态信息和生成的解密密钥,生成新的字符串,利用预设的杂凑算法,根据新生成的字符串,生成并更新解密密钥。

具体地,生成随机因子的方法,至少包括下述两种:

根据随机算法生成随机数,确定所述随机数为随机因子;或,

先根据随机算法生成随机数,再按照预设的组合方式,根据生成的随机数和所述第一蓝牙设备的状态信息,生成随机因子。

其中,第一蓝牙设备可以为蓝牙发送设备110,也可以为安装有执行本发明实施例二提供的密钥协商方法的应用的蓝牙设备;第二蓝牙设备可以为蓝牙接收设备120,也可以为安装有执行本发明实施例三提供的密钥协商方法的应用的蓝牙设备。

实施例三:

本发明实施例三中提供了一种密钥协商的方法,参加图4,该方法包括:

s410、扫描在第一蓝牙设备上显示的条形码,得到该条形码对应的字符串;

s420、利用预设的杂凑算法,根据该条形码对应的字符串生成加密密钥。

具体地,在步骤s420生成加密密钥之后,该方法还包括:

向第一蓝牙设备发送配对连接请求;

接收第一蓝牙设备反馈的配对连接成功的响应;

向第一蓝牙设备发送获取随机因子指令;

接收第一蓝牙设备发送的随机因子;

利用生成的加密密钥,对接收到的随机因子加密,并将加密后的随机因子发送给第一蓝牙设备;

接收第一蓝牙设备发送的协商成功的消息,确定密钥协商成功。

具体地,在确定密钥协商成功之后,该方法还包括:

判断加密密钥是否已达到预设的密钥的生命周期,且与第一蓝牙设备是否保持连接状态;若加密密钥已达到预设的密钥的生命周期,且与第一蓝牙设备仍然保持连接状态,则监测第一蓝牙设备是否发送其当前的状态信息;若接收到状态信息,则根据扫描到的条形码对应的字符串,确定第一蓝牙设备的标识,并根据第一蓝牙设备的标识、接收到的状态信息以及生成的加密密钥,生成新的字符串;并利用预设的杂凑算法,根据新生成的字符串,生成并更新加密密钥。

其中,第一蓝牙设备可以为蓝牙发送设备110,也可以为安装有执行本发明实施例二提供的密钥协商方法的应用的蓝牙设备。

实施例四:

本发明实施例四中提供的一种蓝牙设备,参见图5,该蓝牙设备包括:

组合模块510,用于根据第一蓝牙设备的标识和所述第一蓝牙设备当前的状态信息,生成字符串;

密钥模块520,用于将生成的所述字符串转换为条形码,并在所述第一蓝牙设备上显示条形码;利用预设的杂凑算法,根据生成的所述字符串生成解密密钥

具体地,在生成解密密钥之后,密钥模块520还用于:

接收所述第二蓝牙设备发送的配对连接请求,并进行配对连接;

向所述第二蓝牙设备反馈配对连接成功的响应;

接收所述第二蓝牙设备发送的获取随机因子指令;

生成随机因子,并将所述随机因子发送给所述第二蓝牙设备;

接收所述第二蓝牙设备发送的加密后的随机因子;

利用所述解密密钥,对所述加密后的随机因子解密,并验证解密后的随机因子与生成的随机因子是否相同,若是,则确定密钥协商成功,并向第二蓝牙设备发送协商成功的消息。

具体地,在确定密钥协商成功之后,密钥模块520还用于:

若解密密钥已达到预设的密钥的生命周期,且第一蓝牙设备与第二蓝牙设备仍保持连接状态,则向所述第二蓝牙设备发送所述第一蓝牙设备当前的状态信息;根据所述第一蓝牙设备的标识、接收到的状态信息和生成的所述解密密钥,生成新的字符串;利用预设的杂凑算法,根据新生成的字符串,生成并更新解密密钥。

具体地,生成随机因子,所述密钥模块520用于:

根据随机算法生成随机数,确定所述随机数为随机因子;或,

先根据随机算法生成随机数,再按照预设的组合方式,根据生成的随机数和所述第一蓝牙设备的状态信息,生成随机因子。

其中,所述条形码包括:一维条形码或二维码。

实施例五:

本发明实施例五中提供的一种蓝牙设备,参见图6,该蓝牙设备包括:

扫描模块610,用于扫描在第一蓝牙设备上显示的条形码,得到所述条形码对应的字符串;

密钥模块620,用于利用预设的杂凑算法,根据所述条形码对应的字符串生成加密密钥。

具体地,所述密钥模块620,还用于:

向所述第一蓝牙设备发送配对连接请求;

接收所述第一蓝牙设备反馈的配对连接成功的响应;

接收所述第一蓝牙设备生成的随机因子;

利用所述加密密钥,对接收到的随机因子加密,并将加密后的随机因子发送给所述第一蓝牙设备;

接收所述第一蓝牙设备发送的协商成功的消息,确定密钥协商成功。

具体地,在确定密钥协商成功之后,所述密钥模块620还用于:

若所述加密密钥达到预设的密钥的生命周期,且所述第一蓝牙设备与所述第二蓝牙设备保持连接状态,则监测所述第一蓝牙设备是否发送其当前的状态信息;若接收到状态信息,则根据扫描得到的条形码对应的字符串,确定所述第一蓝牙设备的标识,并根据第一蓝牙设备的标识、接收到的状态信息以及生成的所述加密密钥,生成新的字符串;并利用预设的杂凑算法,根据新生成的字符串,生成并更新加密密钥。

具体地,所述条形码包括:一维条形码或二维码。

实施例六:

本发明实施例六中提供了一种计算设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现如实施例一至三所述的密钥协商的方法。

实施例七:

本发明实施例七中提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例一至三所述的密钥协商的方法中的步骤。

综上所述,本发明实施例中提供了一种密钥协商的方法及系统、蓝牙设备,通过扫描条形码的方式实现双方密钥的交换协商,避免了动态密钥的协商效率较低的问题;又由于二维码是结合蓝牙设备的状态信息转换得到的,也就避免了现有技术中密钥单一固定的问题。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1