本发明涉及电子锁技术领域,具体而言,涉及一种可满足临时用户开锁需求,使用方便,安全可靠的电子锁装置、系统及其开锁方法。。
背景技术:
目前的电子门锁基本上都可以设置密码,密码存放在锁体内非易失性存储设备中,以下称之为固定密码;每次开锁时输入密码,输入的密码和存放在非易失性存储设备中的密码进行比对,一致时开锁。这种方式在使用中,特别是针对临时用户,有不便利性。如果用户不在锁旁边,临时用户需要打开门锁,用户就需要将固定密码告知临时用户;当临时用户使用完之后,用户一般需要及时修改密码,否则容易造成密码泄漏。
为了解决这个问题,现有技术中,主要有以下两种方法:
一种方法是通过手机APP,可以给临时用户进行授权。这种方式的缺陷在于:
1,要求门锁有很完备的授权解决方案,目前大部分产品的做法是使门锁联网,通过网络实现对锁的控制,一方面增加了成本,另一方面也带来安全隐患。
2,要求临时用户也必须使用安装了APP的手机,手机还需要联网接收授权信息,对不能装APP或者没有安装对应APP的用户,以及网络环境不是很好的用户来说,这种方法就无能为力了。
另一种方法是,文献CN102168509 B提出了一种密码随日期或时间进行变化的动态密码锁系统,但其依然存在如下明显的缺陷:
1,密码随日期或时间进行变化,生成密码时,密码锁管理者输入固定密码F和日期D来计算密码,这就意味着密码和日期相关,同一日期的一天之内什么时候都能够使用该密码,不同日期的密码是动态变化的;用户无法设置时间段,也无法设置使用次数,不同日期需要不同的密码才能开锁,使用很不方便。
2,安全性很差,密码只与固定密码F和日期D相关,与用户信息,锁信息都无关。如果某临时用户获得了临时密码P,日期是已知的,通过碰撞很容易导致固定密码F被破解。
该技术中更多的只是想到用临时密码方案来解决临时使用者的问题,至于便利性,经济性,特别是安全隐患,基本没有涉及到,大大降低了产品的商业价值。。
技术实现要素:
本发明提供了一种可很好解决临时用户使用需求的电子锁系统,其能够克服现有技术中存在的上述缺陷,使用便利,安全可靠。
为了达到这个目的,采取以下措施:
1,采用时间作为计算密码的其中一个参数。一方面,锁体内有时钟模块,而密码生成器一般为运行在移动设备,计算机,服务器上的软件,或者是便携电子装置,互联网应用程序,也会有时钟信息。因此,时间是一个双方不需要经过通讯就具备的信息。另一方面,临时用户对开锁需求的时间是不确定的,因此用户对密码有效时间段的选择也是不确定的,密码只有用时间作为参数才能实现这个需求。
2,设计了编码,满足用户对密码使用条件选择的要求。不同用户对临时密码的使用条件是不尽相同的,这与用户使用场景是相关的。例如,临时用户已经在门外等着开门了,那么从当前时刻开始,短时间内有效的临时密码是比较合适的;而像类似airbnb的房客,一般会提前预定,需要住几天,那么未来的几天内有效的临时密码是比较合适的。这个信息在密码生成器端是已知的,但是锁端并不清楚。因此,设计了编码,对各种使用条件进行细分,而编码也将作为密码的一部分传递给锁。接收到编码后,锁进行解码,可获得密码的使用条件。考虑到安全性,编码可以不以明文的形式出现,而是做一些可逆的运算,比如排列组合,跟其他信息进行简单计算等。
3,考虑到安全性,不同的用户,不同的锁,计算的密码要求不一样;因此,在计算密码时,除了参考时间T,编码C,还有种子信息S。种子信息S可以是用户信息,锁信息等,要求这些信息使用前在锁端和密码生成器端进行交互,保证双方的一致。
具体地,本发明所采取的技术方案如下。
一种电子锁系统,包括:锁体和密码生成器。锁体中有密码输入模块,计算模块,时钟模块,控制模块。其特征在于:
在计算密码和验证密码时,锁体和密码生成器不需要相互通讯;用户在密码生成器上设置密码使用条件,密码使用条件包括有效时间段,密码生成器根据密码使用条件获得计算临时密码的参考时间T,并生成密码有效时间段起止时间的编码C;密码生成器对编码C,时间T以及种子信息S使用算法1计算得到F;C和F通过算法2得到临时密码P;用户将临时密码P告知临时用户;当临时用户在锁体密码输入模块输入临时密码P时,锁体计算模块运用算法2的逆运算得到C和F;从锁体时钟模块获得当前时间t;根据C和t,分析得到当前计算临时密码的参考时间T’; 锁体电子模块对编码C,时间T’, 种子信息S使用上述算法1计算得到F’;比较F和F’,若相同则通过控制模块开锁。
优选地,所述密码使用条件还可以包括密码使用次数。密码使用次数包括1次或多次。
进一步地,所述密码有效时间段是指密码在未来的连续的一段时间内有效,在这段时间内,输入该密码都可以打开门锁。
进一步地,未来连续时间段可选时间范围越长,精度越细,要求的编码也越长。所述密码生成器根据密码使用条件获得计算临时密码的参考时间T,计算临时密码的参考时间T根据以下两种方式中的任一种确定:
(1)由密码有效期起始时间,可变长周期确定;
(2)由密码有效期结束时间,可变长周期确定。
进一步地,所述可变长周期是指周期是不固定的,可以事先约定,也可以通过编码C传递;但是密码生成器计算密码时是确定的,而且锁端也是可以通过约定或编码获得的。
所述周期是指系统提供给用户可选择的临时密码有效时间段的最长时间。例如,针对临时用户就在锁旁边的场景,约定周期为10分钟,则生成的密码最长在10分钟之内有效,用户可以根据需要,设置起始时间和结束时间,使得密码有效时间小于10分钟。针对短租的用户,临时用户就是房客,约定周期为一个月,则生成的密码最长在一个月之内有效,同样用户可以根据需要,设置起始时间和结束时间,使得密码有效时间小于一个月;如果房客租住的时间超过了一个月,那么用户需要重新生成临时密码提供给房客使用。
进一步地,用户选择的时间段是可以跨周期的,总的时间不超过一个周期的时间即可。
所述计算临时密码的参考时间T的两种方式中的第1种,计算临时密码的参考时间T可以是密码有效期起始时间所在的周期的起始的时间,也可以是周期结束时间,或者其他有固定特征的时间即可。
所述计算临时密码的参考时间T的两种方式中的第2种,计算临时密码的参考时间T可以是密码有效期结束时间所在的周期的起始的时间,也可以是周期结束时间,或者其他有固定特征的时间即可。
所述密码生成器生成密码有效时间段起止时间的编码C,包括密码有效时间段的起始时间编码和结束时间编码,起始时间编码和结束时间编码共同决定了密码有效时间段。对有效时间段起止时间编码是为了锁端验证密码时能够分析得到当前计算临时密码的参考时间T’。
所述起始时间编码是对起始时间在其所在周期内的相对时间进行编码。
所述结束时间编码是对结束时间在其所在周期内的相对时间进行编码。
进一步地,当有效时间段是确定的值时,起始时间编码和结束时间编码只需要其中的一个就可以。例如,针对临时用户就在锁旁边的场景,约定周期为10分钟,有效时间段也取10分钟,则起始时间编码和结束时间编码只需要其中的一个就可以。
所述密码生成器对编码C,时间T以及种子信息S使用算法1计算得到加密数据F。
进一步地,所述算法1采用单向数学函数实现,在计算上是不可逆的,即从编码C,时间T,种子信息S可以计算得到F,从F不可以计算得到编码C,时间T,种子信息S。
优选地,算法1采用hash散列函数。
所述C和F通过算法2得到临时密码P,其中,C是不加密的;F是单向数学函数输出,是加密的,结果是随机的。C和F做运算,得到的P也是随机的,安全性更高。
在验证密码时,需要先解出编码数据C和加密数据F,因此,所述算法2必须要是可逆的。
所述根据C和t,分析得到当前计算临时密码的参考时间T’。
进一步地,先需要确定周期,如果是事先约定,则读出约定的值即可;如果是编码C传递的,则解码编码C即可。
进一步地,以编码C包括起始时间编码和结束时间编码,计算临时密码的参考时间T取密码有效期起始时间所在的周期的起始的时间这种情况为例,根据以下流程分析得到当前计算临时密码的参考时间T’,其余情况可以依此类推:
(1)得到当前时间在其所在周期内的相对时间t_c;
(2)得到当前时间所在周期的起始时间t_s0;
(3)得到当前时间所在周期的前一周期的起始时间t_s1;
(4)起始时间编码解析后得到起始时间在其所在周期内的相对时间t_r0;
(5)结束时间编码解析后得到结束时间在其所在周期内的相对时间t_r1;
(6)如果t_r1> t_r0,则表明有效时间段不跨周期;如果t_r0> t_c或者t_c< t_r1,则T’无效;否则T’= t_s0;
(7)t_r1<= t_r0,则表明有效时间段跨周期,如果t_c>t_r1,T’= t_s0;否则T’= t_s1。
锁体电子模块对编码C,时间T’, 种子信息S使用上述算法1计算得到加密数据F’;
比较F和F’,若相同则通过控制模块开锁。
采用本发明的方案,锁不需要联网,计算密码和验证密码时,密码生成器无需和锁进行通讯就可以生成临时密码,且能被锁体验证通过;满足各种场景下,临时用户的开锁需求。
附图说明
图1为实施例1中系统组成。
图2为锁体电子模块中各个模块及连接关系。
图3是生成密码流程和验证密码流程。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,所描述的各个实施方式中所涉及到的技术特征彼此之间未构成冲突就可以相互组合构成其他实施例,或者,也可根据情况删除各个实施方式中某些技术特征而构成其他实施例。
本发明涉及的算法或数学函数,均可以找到类似的算法,因此实施例中使用的函数仅为示例说明,并不限定为只用这些函数。
用户是指锁的管理者或者有相应权限的使用者,可以是自然人,也可以是锁的管理系统。
临时用户指本身不是锁的用户,但是因为某种原因,有开锁需求的人。
实施例一:
如图1所示,电子锁系统包括锁体10,用户持有的手机20和服务器30。手机20和锁体10之间通过蓝牙交互,只在注册或其他控制时需要通讯,在计算临时密码时,两者之间不需要通讯;手机20和服务器30之间通过网络交互。
锁体10包括电子模块和机械模块,其中电子模块主要由MCU芯片,外围电路及程序组成。从功能的角度,电子模块包括密码输入模块11,时钟模块12,计算模块13,存储模块14,控制模块15,如图2所示。
密码输入模块11为数字键盘,可以输入0-9这些数字;时钟模块12为实时时钟RTC,为整个锁体的电子部分提供稳定的时钟信号;存储模块14为非易失性存储器,掉电之后,之前写入到存储器的数据可以保存下来;计算模块13和控制模块15为运行在MCU上的程序。
手机20上安装APP,该APP可实现与锁进行通讯,可以和锁之间同步种子信息,并对锁进行控制;同时还可生成临时密码,在本系统中是一种密码生成器。
APP上提供了生成临时密码界面,有2种临时密码,一种是从当前时刻开始,10分钟之内有效,只能开一次的一次性密码;另外一种是,未来时间段,用户最长可以选择一周,精度到小时,在用户所选择的时间段内,都可以开门。
如果用户选择的是一次性密码,则周期为10分钟,计算密码的参考时间T为起始时间所在周期的开始。例如:当前时间为2016年6月20日10:48,则时间T为2016年6月20日10:40。
如果选择未来一星期内连续的一段时间,则周期为一星期,计算密码的参考时间T为起始时间所在周期的开始。例如:设置某个用户使用临时密码的时间段为2016年6月22日早上8点到2016年6月25日晚上8点,起始时间为2016年6月22日早上8点,这是个周三,则T为周日0点,即2016年6月19日0点0分0秒。
APP中上述算法1选择的是HASH函数。
APP中上述算法2选择的是对C和F进行对应数据相加,结果对10取余。
种子信息为用户的唯一标识,锁ID。
服务器30主要对用户和锁进行管理,包括用户注册,用户和锁的关联,对系统时间的管理,开门记录的管理等。系统中,采用服务器来对时间进行管理,而不是直接用手机本地的时间,主要原因是:
(1)手机上的系统时间一般都可以进行修改,只是用手机本地的时间是不可靠的。
(2)多个用户之间,或者同一个用户的不同手机之间,时间可能存在一定的差异。
(3)不同的设备的RTC的精度不一致,当系统长时间运行时,时间会出现偏差。在使用过程中,每次手机20与锁10通讯时,手机20都将尝试将锁10本地的时间同步成和服务器30上的时间一致。
在锁10端,F可以直接从P中得到;算法2的逆运算为F和P对应数据相减,结果可能出现负数,因此,结果加10后对10取余,即可解出C。
锁10端从RTC中读取到当前时间,结合从C中解出的周期信息,可以计算得到得到当前时间所在周期的 起始时间t_s0,当前时间所在周期的前一周期的起始时间t_s1,以及当前时间在其所在周期内的相对时间t_c。例如,当前时间为2016年6月22日早上8点30分30秒,星期三,周期为一星期,则t_s0为2016年6月19日0点0分0秒;t_s1为2016年6月12日0点0分0秒;t_c为3天8小时30分30秒。
从C中还可以解出起始时间在其所在周期内的相对时间t_r0和结束时间在其所在周期内的相对时间t_r1。进一步,分析得到T'。以下举例说明:
(1)如果t_r0为2天8小时0分0秒,t_r1为4天8小时0分0秒,即密码有效期为周二早上8点到周四早上8点,t_r1> t_r0,且t_r0<t_c<t_r1,因此T’= t_s0,为2016年6月19日0点0分0秒。
(2)如果t_r0为4天8小时0分0秒,t_r1为6天8小时0分0秒,即密码有效期为周四早上8点到周六早上8点,t_r1> t_r0,且t_r0>t_c,因此T’无效。
(3)如果t_r0为4天8小时0分0秒,t_r1为2天8小时0分0秒,t_r1< t_r0,即密码有效期跨周,为周四早上8点到周二早上8点,t_r0>t_c<t_r1,因此T’= t_s1,为2016年6月12日0点0分0秒。
本实施例中,用户使用的流程如下:
(1)用户通过手机APP在服务器上注册成为新的用户,服务器分配给用户在系统中的唯一标识。
(2)用户通过手机APP添加锁;在添加锁时,APP获得锁的ID;锁将获得用户信息,并将唯一标识写入到锁的存储设备;用户的唯一标识,锁ID等信息都将写入到服务器;APP读取服务器上的时间信息并和锁进行同步。
(3)当有临时用户需要开锁,用户打开手机上的APP,选择该临时用户使用密码的条件;APP根据图3中生成密码流程计算出临时密码。
(4)用户将该临时密码通过口头的方式(包括电话,短信等手段)告知临时用户。
(5)临时用户获取到临时密码后,在锁体的密码输入模块上将密码输入;锁体将根据图3中验证密码流程对密码进行验证;如果验证通过,锁可以打开。
实施例二:
在实施例一的基础上,服务器可以删除。时间的管理通过APP完成,在使用上有一定的局限性。从整个系统来说,也是一个完整的系统。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替代和改进等,均应包含在本发明的保护范围之内。