著录项信息
专利名称 | 一种基于蓝牙通信的虚拟钥匙及其防盗锁系统、应用方法 |
申请号 | CN201410815782.4 | 申请日期 | 2014-12-24 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-04-29 | 公开/公告号 | CN104574593A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G07C9/00 | IPC分类号 | G;0;7;C;9;/;0;0;;;H;0;4;B;5;/;0;2;;;H;0;4;L;2;9;/;0;8查看分类表>
|
申请人 | 浙江银江研究院有限公司 | 申请人地址 | 浙江省杭州市西湖区益乐路223号1幢1层101室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 浙江银江研究院有限公司 | 当前权利人 | 浙江银江研究院有限公司 |
发明人 | 沈中达;张标标 |
代理机构 | 杭州之江专利事务所(普通合伙) | 代理人 | 张慧英 |
摘要
本发明涉及一种基于蓝牙通信的虚拟钥匙及其防盗锁系统、应用方法,该系统包括锁节点,用户节点、服务器及虚拟钥匙;虚拟钥匙在服务器上生成并保存在服务器,用户可以通过通信网络进行下载;用户要开门时,向装有蓝牙模块的门锁、车锁等发送开锁请求并下载虚拟钥匙。锁节点通过对虚拟钥匙进行检验,就能够验证其合法性,从而为当前用户开锁。每次开锁都会产生一条开锁信息,该信息经相应算法处理后通过蓝牙传输回服务器保存在虚拟钥匙中,生成新的虚拟钥匙。本发明可以使用到现代智慧城市的智能楼宇中,也可以使用到自行车、抽屉等,最大的优点在于简化了钥匙的保管、提高了钥匙的使用效率,又有安全性高、使用方便的特点。
1.一种基于蓝牙通信的虚拟钥匙的防盗应用方法,其特征在于包括如下步骤:(1)用户节点与服务器连接验证,获取虚拟钥匙;
(2)用户节点自动检索自身的蓝牙ID号是否出现在虚拟钥匙中并根据检索结果抽取验证链条;
(3)用户节点对抽取的验证链条进行计算得到KeyData=C(key);
(4)用户节点对步骤(1)获取到的虚拟钥匙截取最后一段有效链条进行散列算法HKey=H(ID);
(5)用户节点与锁节点通过HKey值验证后建立连接将带有KeyData的蓝牙数据包发送给锁节点;
(6)锁节点根据序列编号在内存对应地址验证KeyData与地址中锁存的数据是否一致;
(7)如果步骤(6)的结果为一致,锁节点开锁并向用户节点返回开锁信息;
(8)如果步骤(6)的结果为不一致,重新跳转执行步骤(5)。
2.根据权利要求1所述的一种基于蓝牙通信的虚拟钥匙的防盗应用方法,其特征在于,还包括如下步骤:
(9)用户节点更新虚拟钥匙上传到服务器,并生成新的KeyData传回给锁节点;
(10)锁节点将用户节点传回的KeyData保存在随机数显示的地址,更新原有数据。
3.根据权利要求1所述的一种基于蓝牙通信的虚拟钥匙的防盗应用方法,其特征在于:
所述步骤(1)的用户节点与服务器连接验证的方式为账号密码验证、硬件设备IP地址验证、远程指纹识别验证三种中的任意一种。
4.根据权利要求1所述的一种基于蓝牙通信的虚拟钥匙的防盗应用方法,其特征在于:
所述步骤(2)的检索结果为是,则验证链条为虚拟钥匙中一条带有自身ID号的数字链条;若为不是,验证链条为三条从虚拟钥匙中抽取的数字链条。
5.根据权利要求1所述的一种基于蓝牙通信的虚拟钥匙的防盗应用方法,其特征在于:
所述步骤(3)的KeyData=C(key)的计算方法包括如下步骤:
1)将链条的蓝牙ID数据按照字节分段并进行十六进制到十进制的转换,依次为kID1(16)→kID1(10),kID2(16)→kID2(10),kID3(16)→kID3(10),kID4(16)→kID4(10),kID5(16)→kID5(10),kID6(16)→kID6(10);
2)通过如下公式得到计算因子μ决定key的有效字节;
kID=kID1×μ[0]+kID2×μ[1]+kID3×μ[2]+kID4×μ[3]+kID5×μ[4]+kID6×μ[5];3)按照如下公式计算有效字节的平均值;
其中,n为有效字节的个数;
4)将各字节数与ε相减,取最大的差值为KeyData,将KeyData转化为十六进制数;
KeyData=max{|kIDn-ε|},n=1,2,3,4,5,6。
6.根据权利要求1所述的一种基于蓝牙通信的虚拟钥匙的防盗应用方法,其特征在于:
所述步骤(4)散列算法HKey=H(ID)的计算方法包括如下步骤:
1)将ID数据按照高三字节与低三字节进行分段,ID的高三字节=ID1,低三字节=ID2,并进行十六进制到十进制的转换,ID1(16)→ID1(10),ID2(16)→ID2(10);
2)将ID除以1048576得到商H与余数h;根据计算因子进行映射运算;
3)将十进制的HKey值转换为十六进制,HKey(10)→HKey(16)。
7.根据权利要求6所述的一种基于蓝牙通信的虚拟钥匙的防盗应用方法,其特征在于:
所述的计算因子取值为0、1、2、3中的任意一个。
8.根据权利要求2所述的一种基于蓝牙通信的虚拟钥匙的防盗应用方法,其特征在于:
所述步骤(9)用户节点更新虚拟钥匙的方法为用户节点随机生成随机数和计算因子并附加在自身蓝牙ID得到新的链条,将新生成的链条附加在虚拟钥匙的末尾形成新的虚拟钥匙。
9.根据权利要求2所述的一种基于蓝牙通信的虚拟钥匙的防盗应用方法,其特征在于:
所述步骤(9)生成新的KeyData的方法为用户节点随机生成随机数和计算因子并附加在自身蓝牙ID得到新的链条,用户节点对新的链条进行算法Keydata=C(key)处理。
10.一种应用如权利要求1所述防盗应用方法的防盗锁系统,其特征在于:所述的防盗锁系统包括锁节点、服务器和用户节点;锁节点与用户节点连接通信;用户节点与服务器连接,用于从服务器下载虚拟钥匙及将虚拟钥匙上传到服务器。
11.根据权利要求10所述的防盗锁系统,其特征在于:所述锁节点包括蓝牙芯片、电源系统、MCU及开锁电路;MCU分别与蓝牙芯片、开锁电路连接;电源系统为MCU供电。
12.根据权利要求10所述的防盗锁系统,其特征在于:所述的用户节点包括电源系统、蓝牙、MCU及网络模块;MCU分别与网络模块、蓝牙连接;电源系统为MCU供电。
13.一种配套如权利要求1所述防盗应用方法的基于蓝牙通信的虚拟钥匙,其特征在于:所述的虚拟钥匙为一串数字链条,由若干条子信息链组成,每条子信息链有9字节,包括
6字节蓝牙ID,1字节计算因子,1字节随机序列编号和1字节分隔符。
14.根据权利要求13所述的基于蓝牙通信的虚拟钥匙,其特征在于:所述的虚拟钥匙具有有效期。
一种基于蓝牙通信的虚拟钥匙及其防盗锁系统、应用方法\n技术领域\n[0001] 本发明涉及智能密码钥匙连接技术,尤其涉及一种基于蓝牙通信的虚拟钥匙及其防盗锁系统、应用方法。\n背景技术\n[0002] 目前,常用的锁分为机械锁和电子智能锁两类,机械锁即为我们日常所用的传统锁,使用金属钥匙打开。传统方法有很多的缺点,例如:安全性一般、钥匙重且不易保管、不方便多人使用。而我们现在日常所用的智能锁,以防盗门为例,几乎都需要借助可资信赖的硬件来处理开锁请求信息,以决定是否进行开门动作。常见的控制方式使用到的硬件有:门禁卡、指纹识别传感器、监控视频以及近几年发展起来的虹膜识别传感器。虽然在绝大多数情况下这类系统都运作良好,但是这类系统仍z然内生性地受制于硬件设备的弱点,例如:\n普通的指纹识别锁在使用一年后都会出现无法感应的现象,门禁卡丢失后造成安全隐患,视频监控需要主人进行即时应答处理,另外有些硬件设备还有供电等问题。\n[0003] 虽然,理论上智能锁有提高性能的空间,的确可以解决很多现阶段存在的主要缺陷。例如更好的硬件可以增加仿制难度、提高使用寿命、加快反应速度、提升感应精度,但因此带来更高的成本价格也是产品设计中不能忽视的一部分,价格过高的产品很难得到使用的普及与技术的进一步提升。总之,不论是传统机械锁还是电子智能锁,人们都无法实现完全规避这些防盗系统的硬件缺陷,因为这些系统总是不可避免地将硬件的芯片和传感器作为进行开锁动作的主体核心。过度依赖于硬件,导致用户必然会承担硬件的丢失、日常损耗等风险。因此,设计一种基于蓝牙通信的虚拟钥匙及其防盗锁系统、应用方法是十分必要的。\n发明内容\n[0004] 本发明为克服上述的不足之处,目的在于提供一种基于蓝牙通信的虚拟钥匙,该虚拟钥匙为一串数字链条,由若干条子信息链组成;本钥匙简化了钥匙的保管,具有防破解性。\n[0005] 本发明第二目的在于提供一种基于蓝牙通信的虚拟钥匙的配套防盗锁系统,该系统包括锁节点、用户节点和服务器;本系统减少了硬件设备的使用,做到了尽量简单,使用门槛低同时性能好。\n[0006] 本发明第三目的在于提供一种基于蓝牙通信的虚拟钥匙的防盗应用方法,该方法提供了从服务器下载虚拟钥匙后用户节点与锁节点进行蓝牙通信并验证虚拟钥匙从而达到开锁的目的并在开锁后更新虚拟钥匙上传到服务器,同时更新锁节点数据;本方法简化了钥匙的保管、提高了钥匙的使用效率,同时又具有现代智能钥匙安全性高、使用方便的优点。\n[0007] 本发明是通过以下技术方案达到上述目的:一种基于蓝牙通信的虚拟钥匙,所述的虚拟钥匙为一串数字链条,由若干条子信息链组成,每条子信息链有9字节,包括6字节蓝牙ID,1字节计算因子,1字节随机序列编号和1字节分隔符。\n[0008] 作为优选,所述的虚拟钥匙具有有效期。\n[0009] 一种基于蓝牙通信的虚拟钥匙的配套防盗锁系统,所述的防盗锁系统包括锁节点、服务器和用户节点;锁节点与用户节点连接通信;用户节点与服务器连接,用于从服务器下载虚拟钥匙及将虚拟钥匙上传到服务器。\n[0010] 作为优选,所述锁节点包括蓝牙芯片、电源系统、MCU及开锁电路;MCU分别与蓝牙芯片、开锁电路连接;电源系统为MCU供电。\n[0011] 作为优选,所述的用户节点包括电源系统、蓝牙、MCU及网络模块;MCU分别与网络模块、蓝牙连接;电源系统为MCU供电。\n[0012] 一种基于蓝牙通信的虚拟钥匙的防盗应用方法,包括如下步骤:\n[0013] (1)用户节点与服务器连接验证,获取虚拟钥匙;\n[0014] (2)用户节点自动检索自身的蓝牙ID号是否出现在虚拟钥匙中并根据检索结果抽取验证链条;\n[0015] (3)用户节点对抽取的验证链条进行计算得到KeyData=C(key);\n[0016] (4)用户节点对步骤(1)获取到的虚拟钥匙截取最后一段有效链条进行散列算法HKey=H(ID);\n[0017] (5)用户节点与锁节点通过HKey值验证后建立连接将带有KeyData的蓝牙数据包发送给锁节点;\n[0018] (6)锁节点根据序列编号在内存对应地址验证KeyData与地址中锁存的数据是否一致;\n[0019] (7)如果步骤(6)的结果为一致,锁节点开锁并向用户节点返回开锁信息;\n[0020] (8)如果步骤(6)的结果为不一致,重新跳转执行步骤(5)。\n[0021] 作为优选,上述方法还包括如下步骤:\n[0022] (9)用户节点更新虚拟钥匙上传到服务器,并生成新的KeyData传回给锁节点;\n[0023] (10)锁节点将用户节点传回的KeyData保存在随机数显示的地址,更新原有数据。\n[0024] 作为优选,所述步骤(1)的用户节点与服务器连接验证的方式为账号密码验证、硬件设备IP地址验证、远程指纹识别验证三种中的任意一种。\n[0025] 作为优选,所述步骤(2)的检索结果为是,则验证链条为虚拟钥匙中一条带有自身ID号的数字链条;若为不是,验证链条为三条从虚拟钥匙中抽取的数字链条。\n[0026] 作为优选,所述步骤(3)的KeyData=C(key)的计算方法包括如下步骤:\n[0027] 1)将链条的蓝牙ID数据按照字节分段并进行十六进制到十进制的转换,依次为kID1(16)→kID1(10),kID2(16)→kID2(10),kID3(16)→kID3(10),kID4(16)→kID4(10),kID5(16)→kID5(10),kID6(16)→kID6(10);\n[0028] 2)通过如下公式得到计算因子μ决定key的有效字节;\n[0029] kID=kID1×μ[0]+kID2×μ[1]+kID3×μ[2]+kID4×μ[3]+kID5×μ[4]+kID6×μ[5];3)按照如下公式计算有效字节的平均值;\n[0030]\n[0031] 其中,n为有效字节的个数;\n[0032] 4)将各字节数与ε相减,取最大的差值为KeyData,将KeyData转化为十六进制数;\n[0033] KeyData=max{|kIDn-ε|},n=1,2,3,4,5,6。\n[0034] 作为优选,所述步骤(4)散列算法HKey=H(ID)的计算方法包括如下步骤:\n[0035] 1)将ID数据按照高三字节与低三字节进行分段,ID的高三字节=ID1,低三字节=ID2,并进行十六进制到十进制的转换,ID1(16)→ID1(10),ID2(16)→ID2(10);\n[0036] 2)将ID除以1048576得到商H与余数h;根据计算因子不同进行不同的映射运算;\n[0037] 3)将十进制的HKey值转换为十六进制,HKey(10)→HKey(16)。\n[0038] 作为优选,所述的计算因子取值为0、1、2、3中的任意一个;\n[0039] a)当计算因子为0时,\n[0040]\n[0041] b)当计算因子为1时,\n[0042]\n[0043] c)当计算因子为2时,\n[0044]\n[0045] d)当计算因子为3时,\n[0046]\n[0047] 作为优选,所述步骤(9)用户节点更新虚拟钥匙的方法为用户节点随机生成随机数和计算因子并附加在自身蓝牙ID得到新的链条,将新生成的链条附加在虚拟钥匙的末尾形成新的虚拟钥匙。\n[0048] 作为优选,所述步骤(9)生成新的KeyData的方法为用户节点随机生成随机数和计算因子并附加在自身蓝牙ID得到新的链条,用户节点对新的链条进行算法Keydata=C(key)处理。\n[0049] 本发明的有益效果在于:(1)虚拟钥匙从云端下载,简化了钥匙的保管,同时成本更低更耐用;(2)虚拟钥匙在开锁后会更新生成新的虚拟钥匙,安全性更高,不易被破解;\n(3)用户可以通过无线方式远程下载虚拟钥匙开锁,更加方便;(4)本系统减少了硬件设备的使用,做到了尽量简单,使用门槛低同时性能好,降低了成本。\n附图说明\n[0050] 图1是本发明系统总体结构框图;\n[0051] 图2是本发明系统开锁过程的流程框图。\n具体实施方式\n[0052] 下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:\n[0053] 实施例:一种基于蓝牙通信的虚拟钥匙的配套防盗锁系统,如图1所示,由锁节点、服务器和用户节点组成;锁节点与用户节点连接通信;用户节点与服务器连接,用于从服务器下载虚拟钥匙及将虚拟钥匙上传到服务器。所述锁节点包括蓝牙芯片、电源系统、MCU及开锁电路;MCU分别与蓝牙芯片、开锁电路连接;电源系统为MCU供电。所述的用户节点包括电源系统、蓝牙、MCU及网络模块;MCU分别与网络模块、蓝牙连接;电源系统为MCU供电。\n[0054] 锁节点的具体功能拟定如下:\n[0055] (1)用户手机进入节点的蓝牙信号区域,锁节点可与用户节点进行蓝牙通信;\n[0056] (2)锁节点可以保存最新的HKey值,并在用节点提出身份验证请求时,对HKey值进行逐位比对验证;\n[0057] (3)锁节点接收由用户节点发送的带有KeyData与其他信息的蓝牙数据包,锁节点接收到数据后,根据序列编号在开锁信息存储表中寻找到相对应序列编号的地址,提取出地址上存储的比较值;\n[0058] (4)锁节点比对KeyData与地址中所存的数据是否一致:如果一致则命令开锁电路开锁,不一致则不予开锁应答,命令用户节点重新发送数据包进行KeyData验证;\n[0059] (5)开锁后,锁节点需接收用户节点程序生成的最新KeyData值,锁节点将数据保存在随机数显示的地址,如果该地址已经保存了数据,则进行更新。\n[0060] 服务器云端具体功能为:\n[0061] (1)虚拟钥匙在不用时保存在云端,合法用户可以轻松地通过手机以通信网络的方式与云服务器相连接,然后进行下载虚拟钥匙;\n[0062] (2)可以采用密码、远程指纹识别、硬件设备IP地址等方式进行下载虚拟钥匙时的身份验证;\n[0063] (3)更新最新上传的虚拟钥匙;\n[0064] 用户节点的具体功能拟定如下:\n[0065] (1)向云端服务器发送下载虚拟钥匙的请求,经过身份验证后,下载并保存虚拟虚拟钥匙;\n[0066] (2)节点下载虚拟钥匙后,自动检索自身ID号是否出现在虚拟钥匙的最新20条链条中;\n[0067] (3)将下载到的虚拟钥匙进行计算,计算得到的密码用于手机与锁节点的蓝牙通信建立连接时的身份验证;\n[0068] (4)使用算法计算出KeyData=C(key),当手机与锁节点建立连接后,将相关数据发送给锁节点;\n[0069] (5)接收到锁节点的开门动作信号时,会生成出一枚新的钥匙附加在原有的钥匙的末尾,上传到云端;\n[0070] (6)生成新钥匙的同时,用户节点还会生成新的KeyData传输回锁节点。\n[0071] 上述系统的防盗应用方法如下所示,持有蓝牙设备ID为D0FF506746AA的用户A开门请求,此时最新的虚拟钥匙编号为9B0D87AC87153764FFA74C01194CFEEB5EFF2 \n5E7F3EECF437556FF。一种基于蓝牙通信的虚拟钥匙的防盗应用方法如图2所示,包括如下步骤:\n[0072] 1)用户A向服务器云端发出下载虚拟钥匙请求,通过输入账户密码方式的身份验证后,获得当前最新的虚拟钥匙;\n[0073] 本发明的虚拟钥匙与其他钥匙一样必须具备两点基本特征:1、只有合法的用户可以通过正常途径获得钥匙;2、防盗锁只能被唯一的配对虚拟钥匙打开。此外虚拟钥匙还需要具有独有的两点特性:1、可通过蓝牙与云端服务两种方式接收与发送钥匙;2、钥匙具有可靠的防破解性。\n[0074] 本虚拟钥匙被一名用户下载使用并完成解锁动作后,其链条就会得到更新生长,然后被用户节点上传至云端再次保存。为了符合常理,在一名用户开锁期间,其他用户即使采用合法手段也无法使用这枚正在使用的钥匙;但为了防止发生用户下载钥匙后但忘记使用钥匙导致钥匙被浪费占用的情况,本发明中加入了半个小时的有效期,超过半小时钥匙未被使用更新,则钥匙无效,而云端的存储钥匙恢复对所有合法用户的开放状态。所以,本发明设计的一把虚拟钥匙首先是可以保存在云端共享的,并且具有有效期,这样保证了所有合法用户都可以获取钥匙但不能独占。一枚本系统的虚拟钥匙是一串数字链条:当用户向服务器发出下载请求,虚拟钥匙就被发到了用户节点的手机上。而用户节点对虚拟钥匙进行处理并由锁节点对钥匙进行检验,就能够验证该数字链条的合法性,继而为当前用户开门。当每一次开锁请求完成后,用户节点将该次虚拟钥匙使用的信息和当前使用时随机生成的序列编号附加在这枚虚拟钥匙的末尾,更新生长后的虚拟钥匙供下次开门所用。虚拟钥匙Key由多条子信息链Key1,Key2、Key3……组成,每条子信息链共9字节,信息分为四部分,如下表1:\n[0075]\n6字节 1字节 1字节 1字节\n蓝牙ID 计算因子 随机序列编号 分隔符\n[0076] 表1\n[0077] 其中,蓝牙设备ID即手机蓝牙设备的IEEE地址,该地址为设备独有,用户无法修改设备的IEEE地址。随机序列编号是芯片中KeyData的保存地址,编号为0至255,用于查找该地址所存的KeyData。计算因子分为两部分:高六位为计算因子μ,用于步骤3)计算;低二位为计算因子,用于步骤4)计算;分隔符默认为FF,用于分隔相邻的Key数据,方便手机端抽取Key值。\n[0078] 2)用户下载虚拟钥匙后,用户节点自动检索自身ID号是否出现在虚拟钥匙的最新\n20条链条中。用户节点程序根据检索结果,挑选出锁蓝牙发送的基础信息key,即验证链条,判断标准为:检索成功,则key为一个9字节带自身ID号的数字链条;检索不成功,则key为从虚拟钥匙中抽取的三组数字链条,即三条9字节的虚拟钥匙数字链条。本实施例中,检索不成功,Key正好只有三条,分别为9B0D87AC87153764FF、A74C01194CFEEB5EFF、\n25E7F3EECF437556FF;\n[0079] 将全部的256个链条组成的虚拟钥匙检查一遍会影响系统的运行速度,因此随机抽取三组链条进行与锁节点的开锁比对,同时将最近20次进行过开锁动作的用户默认为安全用户,带有它们ID的链条直接用于比对,这样硬件的工作量与开锁时间都极大地减少。\n[0080] 3)用户程序利用算法对Key进行计算得出Keydata=C(key),本例中的计算过程如下:\n[0081] 1、将数据按照字节分段,并进行十六进制到十进制的转换。\n[0082] Key1:9B=155,0D=13,87=135,AC=171,87=135,15=21;\n[0083] Key2:A7=167,4C=76,01=1,19=25,4C=76,FE=254;\n[0084] Key3:25=37,E7=231,F3=243,EE=238,CF=207,43=67;\n[0085] 2、计算因子,μ1=001101,μ2=111010,μ3=011101,所以有效字节为:\n[0086] Key1:87=135,AC=171,15=21;\n[0087] Key2:A7=167,4C=76,01=1,4C=76;\n[0088] Key3:E7=231,F3=243,EE=238,43=67。\n[0089] 3、计算有效字节的平均值:\n[0090] Key1:\n[0091] Key2:\n[0092] Key3:\n[0093] 4、将各虚拟钥匙的各字节数与各自的ε相减,取最大的差值为KeyData,并将其转换为十六进制:\n[0094] KeyData1=max{|kIDn-ε1|}=96=60;\n[0095] KeyData2=max{|kIDn-ε2|}=174=AE;\n[0096] KeyData3=max{|kIDn-ε3|}=142=8E;\n[0097] 通过随机的计算因子μ可以极大地提高概率,使同一虚拟钥匙最终生成不同的KeyData;而引入取最大差值,则提高了概率确保不同的虚拟钥匙即使有可能产生相同的均值,但最后的KeyData不会相同。而最重要的是,KeyData范围为0至256,节点需要传输和比对的数据长度从六字节压缩为一个字节,确保了运行的效率。\n[0098] 4)用户节点从下载到的虚拟钥匙中截取最后的一段有效链条,进行散列算法HKey=H(ID);此HKey用于用户节点与锁节点连接时的身份验证。本实施例中将\n25E7F3EECF437556F进行计算,计算过程为:\n[0099] 1、将数据按照高三字节与低三字节进行分段,并进行十六进制到十进制的转换:\n[0100] ID1=25E7F3=2484211;\n[0101] ID2=EECF43=15650627;\n[0102] 2、将ID除以1048576,得到商H与余数h:\n[0103] H1=2,h1=387059;\n[0104] H2=14,h2=970563\n[0105] 3、本例中计算因子为3,经计算并进行十进制到十六进制的数据转化:\n[0106] HKey1=6678515=65E7F3;\n[0107] HKey2=3067715=2ECF43;\n[0108] 计算后得出的HKey为65E7F32ECF43,用户节点将其发送给锁节点,进行完身份验证后建立连接。\n[0109] 由于在上一次开锁动作中,锁节点已经保存了最新的HKey值,那么当用户节点向锁节点发出相同的HKey值时,锁节点就会认可身份验证并与用户节点建立连接。使用该算法进行身份验证的原因如下:一、每一个蓝牙ID都是独有的,进行随机散列算法计算后,得出的结果仍然是一一映射不重复的,这样就保证了虚拟钥匙链条里的每一个链条都是唯一且不可替代的;二、直接使用蓝牙ID,会让非法用户掌握规律,因为用户的蓝牙ID是固定不变的。但是经过算法处理后,虽然蓝牙ID没变,但是虚拟钥匙的每一个Key都是变化的,这样就完全可以防止非法用户破解HKey值进行与锁节点的连接。\n[0110] 5)建立连接后用户节点向锁节点发送带有KeyData的蓝牙数据包;锁节点接收到数据后,会根据序列编号在开锁信息存储表中寻找相对应序列编号的地址,然后比对KeyData与地址中所存的数据是否一致,如果一致则开锁,不一致则不予开锁应答。本例中KeyData1、KeyData2、KeyData3分别与锁节点内存中地址编号为64、5E、56(十进制表示分别为100、94、86)的地址中存储的数据进行比对;\n[0111] 6)锁节点成功开锁后会反馈信息到用户手机。然后,手机端程序会随机生成计算因子与随机数附加在其自身的蓝牙ID之后,得到一个新Key1,本例中,假设计算因子为8C,随机数为36,则Key1=D0FF506746AA8C36FF。该Key1值一方面会经过C(Key)处理,生成的KeyData1和随机数一起发送回锁节点,锁节点将KeyData1保存在随机数显示的地址。本例中,Key1经算法后生成的KeyData1为6A,该值将保存在锁节点地址序号为36的内存中;\n[0112] 7)另一方面,Key1会附加在原有的虚拟钥匙之后形成新的虚拟钥匙,然后由用户节点上传给云端保存。这样,虚拟钥匙就得以更新最新的开锁信息,并且其链条得到生长,增强安全性。本例虚拟钥匙为9B0D87AC87153764FFA74C01194CFEEB5EFF25E7F3EECF437556FFD0FF506746AA8C36FF。\n[0113] 当A进行完开锁,更新后的虚拟钥匙就保存在云端。如果之后有用户B有开锁需求,并且他的蓝牙设备ID为A74C01194CFE,那么他的蓝牙ID编号已经在虚拟钥匙中出现过。所以他在进行上述的步骤2)时,用户节点程序可以成功检索到自身ID号,因此抽取出的Key为一条,即A74C01194CFEEB5EFF。\n[0114] 以上即为本发明的运行流程与设计原理,硬件的设计做到了尽量简单,实现门槛低,可以保证设计的成本低、性能好、寿命长,可以实现功能与成本的最大化有效结合,同时还极大避免了对硬件的依赖性。\n[0115] 以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。
法律信息
- 2017-02-22
- 2015-05-27
实质审查的生效
IPC(主分类): G07C 9/00
专利申请号: 201410815782.4
申请日: 2014.12.24
- 2015-04-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |