专利名称:能证明自己是否曾被破解的电子锁及其实现方法
技术领域:
本发明涉及电子锁技术,特别是通过程序识别密码来控制开锁的电子锁,也叫电子密码锁。
背景技术:
在目前的电子锁研发领域,业界主要关注于如何改进加密算法以提高电子锁的防破解能力。然而如果一把电子锁不能证明自己是否曾被破解,即使其具有很高的防破解性能,也仍然会在推广应用中受到局限。因为在现实生活中,如果发生因电子锁被破解而造成损失的事件,那么生产电子锁的厂家就很可能会被要求承担责任,此时如何验证电子锁是否真地被破解过就成了事件的疑难点。因为对于电子锁而言,所谓“破解”并不是指暴力破坏,而是指用特殊手段使锁体内的开锁程序执行开锁动作,电子锁被破解后仍然能够用原配钥匙开锁,也就无法得知电子锁是否曾被破解。如果有居心不良的用户使用原配钥匙开锁后制造失窃假象,再谎称电子锁被人破解而向厂家索赔,厂家将难以识别这种谎言。目前有一些电子锁称为称“变码锁”,其开锁密码在每次开锁后都会改变,然而这种电子锁仍不能证明自己是否曾被破解。以采用ACM1330E型号编码器和ACM1550D型号译码器的电子锁为例,其变码方式是锁体的密码与钥匙的密码根据既定的算法以时间作同步信号保持同步跳变,所以即使锁体曾被破解,锁体与钥匙的密码仍能保持一致,也就无法识别电子锁是否曾被破解。还有另一种变码电子锁,如申请号为200410087146.0、名称为“一种电子钥匙和电子锁装置及其实现方法”的专利申请中提及的电子锁系统,其密码是由锁体和钥匙分别在开锁时临时用既定的加密算法产生,然后锁体和钥匙交换密码,再各自用既定的解密算法验证对方的密码是否合法,如果合法,锁体就执行开锁动作。由于加密算法和解密算法并不会因为锁体曾被破解而发生改变,所以即使锁体曾被破解,也仍然能用原配钥匙开锁,因此这种电子锁仍然不能证明自己是否曾被破解。总而言之,已有的电子锁都无法证明自己是否曾被破解。
发明内容
本发明的目的是提供一种能证明自己是否曾被破解的电子锁,以及这种电子锁实现能证明自己是否曾被破解的方法。
本发明是这样实现的能证明自己是否曾被破解的电子锁,包括钥匙和锁体,钥匙和锁体分别包括用于运行开锁程序的开锁控制装置,所述的开锁控制装置包括A1、位于钥匙内,用于产生钥匙合法密码的钥匙合法密码产生器;A2、位于钥匙内,用于将钥匙合法密码发送给锁体的钥匙合法密码发送器;A3、位于锁体内,用于接收钥匙合法密码的钥匙合法密码接收器;A4、位于锁体内,用于验证钥匙合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止运行开锁程序的钥匙合法密码验证器;A5、位于锁体内,用于执行最终开锁动作的开锁装置;特别地,开锁控制装置还包括A6、位于钥匙内,用于存储钥匙配置数据的钥匙配置数据存储器,所述的钥匙配置数据包括钥匙合法数据,钥匙合法数据是钥匙内的钥匙合法密码产生器赖以产生钥匙合法密码的计算参数;A7、位于锁体内,用于存储锁体配置数据的锁体配置数据存储器,所述的锁体配置数据包括钥匙验证数据,钥匙验证数据是锁体内的钥匙合法密码验证器赖以验证接收到的钥匙合法密码是否正确的计算参数,亦即锁体配置数据中的钥匙验证数据与钥匙配置数据中的钥匙合法数据相匹配,不同的钥匙验证数据对应不同的钥匙合法数据;A8、位于钥匙内,用于在钥匙发送钥匙合法密码之后、锁体执行最终开锁动作之前,更新钥匙配置数据的钥匙配置数据更新器;A9、位于锁体内,用于在锁体执行最终开锁动作之前,更新锁体配置数据的锁体配置数据更新器。
相应地,使上述电子锁能证明自己是否曾被破解的方法,包括分别在钥匙和锁体内运行开锁程序,所述的开锁程序包括以下步骤a1、钥匙产生钥匙合法密码的钥匙合法密码产生步骤;a2、钥匙将钥匙合法密码发送给锁体的钥匙合法密码发送步骤;a3、锁体接收钥匙合法密码的钥匙合法密码接收步骤;a4、锁体验证钥匙合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止运行开锁程序的钥匙合法密码验证步骤;a5、锁体执行最终开锁动作的开锁步骤;特别地,开锁程序还包括以下步骤和特点a6、在钥匙内存储钥匙配置数据的钥匙配置数据存储步骤,所述的钥匙配置数据包括钥匙合法数据,钥匙合法数据是在钥匙的钥匙合法密码产生步骤a1中赖以产生钥匙合法密码的计算参数;a7、在锁体内存储锁体配置数据的锁体配置数据存储步骤,所述的锁体配置数据包括钥匙验证数据,钥匙验证数据是在锁体的钥匙合法密码验证步骤a4中赖以验证接收到的钥匙合法密码是否正确的计算参数,亦即锁体配置数据中的钥匙验证数据与钥匙配置数据中的钥匙合法数据相匹配,不同的钥匙验证数据对应不同的钥匙合法数据;a8、钥匙在发送钥匙合法密码之后、锁体执行最终开锁步骤之前,更新钥匙配置数据的钥匙配置数据更新步骤;a9、锁体在锁体执行最终开锁步骤之前,更新锁体配置数据的锁体配置数据更新步骤。
在上述步骤中,步骤a1~a5与现有的电子锁开锁过程相同。本发明方法的特点是增加了步骤a6~a9。从步骤a6可知,钥匙发送给锁体的钥匙合法密码是由事先存储在钥匙中的钥匙合法数据产生的;从步骤a7可知,锁体验证钥匙合法密码是否正确的依据,是依赖于事先存储在锁体中的钥匙验证数据;在最终开锁步骤a5之前,钥匙通过步骤a8更新自己的钥匙合法数据,同时锁体在步骤a9中也更新了自己的钥匙验证数据,于是使得在本次开锁步骤a5结束后,存储在钥匙中的钥匙合法数据,和存储在锁体中的钥匙验证数据都发生了相应的变化,当然仍保持匹配关系,从而使得在下次开锁过程中钥匙将生成新的钥匙合法密码,而锁体则以新的钥匙验证数据去验证新的钥匙合法密码是否正确。假设锁体被人破解,那么锁体中存储的钥匙验证数据必然会发生变化,而钥匙中的钥匙合法数据没有发生相应变化,也就是存储在锁体中的钥匙验证数据不再与存储在钥匙中的钥匙合法数据匹配。如果破解后再用钥匙开锁,那么钥匙依据钥匙合法数据生成的新钥匙合法密码将会被锁体认为是错误的,于是开锁过程在步骤a4终止,无法开锁。由此可见,只要用钥匙无法开锁,就可以证明锁体曾被破解过。
本发明的优点是使电子锁具有可证明自己是否曾被破解的功能,能有效防止现实生活中可能发生的以“假破解”来欺诈厂家的诈骗事件,解决了厂家推广电子锁的顾虑,而且也提高了电子锁的防破解性能。
图1是本发明实施例1的流程图;图2是实施例2的流程图;图3是实施例2的另一种变化方式;图4是实施例3的流程图;图5是实施例3的另一种变化方式;图6是实施例4的流程图之一;图7是实施例4的流程图之二;图8是实施例4的流程图之三;图9是实施例4的流程图之四;图10是实施例5的流程图之一;图11是实施例5的流程图之二;图12是实施例5的流程图之三;图13是实施例5的流程图之四。
各图中双点划线的上部表示钥匙中的装置和程序,下部表示锁体中的装置和程序,实线箭头表示程序流向,虚线箭头表示数据流向。
具体实施例方式
实施例1本实施例的实施方式与前一节所述相同,下面结合图1再作详细说明。开锁时,钥匙的钥匙合法密码产生器A1以事先存储在钥匙配置数据存储器A6中的钥匙合法数据作为计算参数,以一定的算法算得钥匙合法密码,再由钥匙合法密码发送器A2将钥匙合法密码发送给锁体。之后,钥匙的钥匙配置数据更新器A8在锁体执行最终开锁动作之前,更新钥匙配置数据存储器A6中的钥匙合法数据,为下一次开锁作准备。与此同时,锁体的钥匙合法密码接收器A3接收到钥匙合法密码后,锁体的钥匙合法密码验证器A4对钥匙合法密码进行验证。验证的依据,是以事先存储在锁体配置数据存储器A7中的钥匙验证数据作为计算参数,以一定的算法去检验钥匙合法密码是否正确,只要锁体配置数据存储器A7中存储的钥匙验证数据,与钥匙配置数据存储器A6中存储的钥匙合法数据相匹配,那么钥匙合法密码验证器A4就认为接收到的钥匙合法密码是正确的,否则认为钥匙合法密码是错误的,终止开锁程序。如果钥匙合法密码的验证结果是正确的,那么锁体配置数据更新器A9就会更新锁体配置数据存储器A7中的钥匙验证数据,为下一次开锁作好准备,最后才由开锁装置A5执行最终的开锁动作。在上述的完整开锁过程中,锁体配置数据更新器A9所更新的钥匙验证数据,与钥匙配置数据更新器A8所更新的钥匙合法数据,保持着匹配关系,如果锁体不是由钥匙开锁,而是被人破解开锁,那么只有锁体更新了钥匙验证数据,而钥匙并没有同步更新钥匙合法数据,因此如果在破解后再用钥匙开锁,将会因为锁体配置数据存储器A7中存储的钥匙验证数据,与钥匙配置数据存储器A6中存储的钥匙合法数据不匹配,导致无法开锁,这样就可证明锁体曾被破解过。
实施例2本实施例是为改进实施例1而提出的。在实施例1中,假设在图1所示的钥匙配置数据更新步骤a8中,或者在锁体配置数据更新步骤a9中,发生异常掉电,更新过程不能正常完成,那么就无法保证钥匙配置数据存储器A6中存储的钥匙合法数据,与锁体配置数据存储器A7中存储的钥匙验证数据保持匹配关系,致使钥匙不能开锁。为了区分到底是由于异常掉电,还是由于锁体曾被破解而导致钥匙无法开锁,本实施例在实施例1的基础上作了改进。参见图2,在钥匙的开锁程序中,在钥匙配置数据更新步骤a8之前,增加了钥匙出错标记存储步骤b1,相应地在钥匙中增加了钥匙出错标记存储B1,在钥匙存储钥匙配置数据步骤a6之后、锁体执行最终开锁动作之前,增加了钥匙出错标记清除步骤b3,相应地在钥匙中增加了钥匙出错标记清除器B3;在锁体的开锁程序中,在锁体配置数据更新步骤a9之前,增加了锁体出错标记存储步骤b2,相应地在锁体中增加了锁体出错标记存储器B2,在锁体存储锁体配置数据步骤a7之后、锁体执行最终开锁动作之前,增加了锁体出错标记清除步骤b4,相应地在锁体中增加了锁体出错标记清除B4。如此改进后,如果在钥匙配置数据更新步骤a8中,或者在锁体配置数据更新步骤a9中,发生异常掉电导致更新过程不能正常完成,那么在钥匙出错标记存储器B1中,或者在锁体出错标记存储器B2将保留有出错标记,这样就可以识别出是由于异常掉电而导致钥匙不能开锁,而非锁体曾被人破解。
本实施例也可将钥匙的开锁程序改为图3所示。图3与图2的区别点仅在于将钥匙出错标记存储步骤b1,移到了钥匙合法密码发送步骤之前,如此也能起到同样的效果。图3中的其它流程与图2相同。
需要说明的是,虽然在出错标记的存储和清除步骤中同样可能发生异常掉电的情况,但由于出错标记仅是作为一个标记用,可以只用单字节表示,甚至只用一个字节中的一位“0”或“1”表示,因此其存储和清除速度是很快的,在其存储和清除过程中发生异常掉电的机率几乎为零。
实施例3实施例2虽然比实施例1有了进一步改进,但仍然存在一些漏洞。假设一个掌握高级技术的电子锁用户想欺诈厂家,那么该用户很可能会这样实施诈骗先制造出一把假的锁体,再用真钥匙开启这把假锁体,使真钥匙经历一个完整的开锁程序,那么按照实施例2所述的钥匙开锁程序,真钥匙的钥匙合法数据将会在步骤a8发生改变,而且钥匙出错标记也会在步骤b3中被清除,而真正的锁体并没有参与开启过程,即真锁体的钥匙验证数据没有改变而且也不存在出错标记,当厂家验证锁体是否曾被破解的时候,真钥匙将无法开启真锁体,且真钥匙和真锁体均没有出错标记,厂家因此就会受到欺骗。此外,该用户也有可能会这样实施诈骗当用真钥匙开启假锁体的时候,并不让真钥匙经历一个完整的开锁程序,而是仅当真钥匙发送钥匙合法密码给假锁体后,就用掉电或其它方法阻止真钥匙执行余下步骤,使真钥匙的钥匙合法数据没有改变而且也没有存储钥匙出错标记,然后再用一把仿制的假钥匙,将截获的钥匙合法密码发送给真锁体,使真锁体经历一个完整的开锁程序,于是真锁体的钥匙验证数据将会在步骤a9发生改变,不再与真钥匙的钥匙合法数据匹配,而且真锁体的锁体出错标记也会在步骤b4中清除,因此当厂家验证锁体是否曾被破解的时候,真钥匙将无法开启真锁体,而且真钥匙和真锁体均没有出错标记,厂家因此也会受到欺骗。为杜绝这种情况,本实施例在实施例2的基础上再作改进。参见图4,在锁体中增加了锁体合法密码产生器C1和锁体合法密码发送器C3,在锁体配置数据存储器A7中存储的锁体配置数据中增加了锁合法数据。锁合法数据是锁体合法密码产生器C1赖以产生锁体合法密码的计算参数,也就是说在步骤c1中,锁体合法密码产生器C1以事先存储在锁体配置数据存储器A7中的锁合法数据作为计算参数,以一定的算法产生锁体合法密码。相应地,在钥匙中增加了锁体合法密码接收器C4和锁体合法密码验证器C5,在钥匙配置数据存储器A6中存储的钥匙配置数据中增加了锁验证数据。锁验证数据是锁体合法密码验证器C5赖以验证接收到的锁体合法密码是否正确的计算参数,也就是说锁体合法密码验证器C5以事先存储在钥匙配置数据存储器A6中的锁验证数据作为计算参数,以一定的算法去检验锁体合法密码是否正确,只要钥匙配置数据存储器A6中存储的锁验证数据与锁体配置数据存储器A7中存储的锁合法数据相匹配,锁体合法密码验证器C5就会认为接收到的锁体合法密码是正确的,否则认为锁体合法密码是错误的,终止钥匙的开锁程序。本实施例还特别规定钥匙开锁程序中的钥匙出错标记存储步骤b1,必须在钥匙合法密码发送步骤a2完毕之前;锁体开锁程序中的锁体出错标记存储步骤b2,必须在锁体合法密码发送步骤c3完毕之前。下面仅就图4中区别于前述实施例的步骤作说明锁体先执行步骤b2,在锁体出错标记存储器B2中存储锁体出错标记,再由锁体合法密码产生器C1执行步骤c1,以事先存储在锁体配置数据存储器A7中的锁合法数据作为计算参数,以一定的算法产生锁体合法密码;在锁体配置数据更新步骤a9之前,由锁体合法密码发送器C3执行步骤c3,将锁体合法密码发送给钥匙;在钥匙中,钥匙的锁体合法密码接收器C4接收到锁体合法密码后,由锁体合法密码验证器C5执行步骤c5,验证锁体合法密码是否正确,验证的依据,是以事先存储在钥匙配置数据存储器A6中的锁验证数据作为计算参数,以一定的算法去检验锁体合法密码是否正确,只要钥匙配置数据存储器A6中存储的锁验证数据与锁体配置数据存储器A7中存储的锁合法数据相匹配,锁体合法密码验证器C5就会认为接收到的锁体合法密码是正确的,否则认为锁体合法密码是错误的,终止钥匙的开锁程序,如果锁体合法密码的验证结果是正确的,则继续执行步骤b1。至此完成钥匙对锁体的验证,以后的步骤与前述实施例一样,钥匙依次执行步骤a8、a6、b3,锁体依次执行步骤a3、a4、a9、a7、b4、a5。特别说明的是,在钥匙配置数据更新步骤a8中,所更新的钥匙配置数据包括本实施例增加的锁验证数据;在锁体配置数据更新步骤a9中,所更新的锁体配置数据包括本实施例增加的锁合法数据,并且更新的锁验证数据和更新的锁合法数据保持匹配,为下一次开锁作好准备。从本实施例的步骤过程可知,本实施例在钥匙的钥匙合法密码发送步骤a2完毕之前先存储了钥匙出错标记,确保了钥匙从钥匙合法密码发送步骤a2到钥匙配置数据更新步骤a8的完整性;另外钥匙也对锁体进行了验证,而且每次开锁过程中,锁体配置数据存储器A7中存储的用于产生锁体合法密码的锁合法数据,以及钥匙配置数据存储器A6中存储的用于验证锁体合法密码是否正确的锁验证数据,都会发生变化,所以要仿制出一把能被真钥匙认可的假锁体是非常困难的,因此本实施例可杜绝本段一开始所述的漏洞。
图4所示的流程是先由钥匙验证锁体的锁体合法密码是否正确,再由锁体验证钥匙的钥匙合法密码是否正确。实际上本实施例也可采用图5所示的流程。图5与图4的区别点仅在于先由锁体验证钥匙的钥匙合法密码是否正确,再由钥匙验证锁体的锁体合法密码是否正确。具体而言,亦即先由钥匙依次执行步骤b1、a2,将钥匙合法密码发送给锁体,锁体依次执行步骤a3、a4,对钥匙合法密码进行验证,如果正确,则锁体在执行了锁体出错标记存储步骤b2之后,再执行步骤c1、c3,将锁体合法密码发送给钥匙,相应地,钥匙执行步骤c4、c5,对锁体合法密码进行验证,如果正确,则锁体继续依次执行步骤a9、a7、b4、a5。图5中的其它步骤与图4相同。
实施例4实施例2还存在另一个问题,如果锁体真地被破解过,那么锁体的锁体配置数据存储器A7存储的锁体配置数据必然已被更新,此时若再用钥匙开启曾被破解的锁,当然就无法开锁,但此时钥匙的钥匙出错标记存储器B1将保留有钥匙出错标记,因此厂家将会据此否认锁体曾被破解,这是不合理的。为解决该问题,本实施例增加了以下步骤d1、钥匙在存储钥匙出错标记之前,产生同步合法密码的同步合法密码产生步骤,相应地在钥匙中增加了同步合法密码产生器D1;d2、在钥匙配置数据存储步骤中所存储的钥匙配置数据还包括同步合法数据,所述的同步合法数据是在钥匙的同步合法密码产生步骤中赖以产生同步合法密码的计算参数。相应地,在钥匙配置数据存储器A6中存储的钥匙配置数据包括同步合法数据;d3、钥匙在存储钥匙出错标记之前,将同步合法密码发送给锁体的同步合法密码发送步骤,相应地在钥匙中增加了同步合法密码发送器D3;d4、锁体接收同步合法密码的同步合法密码接收步骤,相应地在锁体中增加了同步合法密码接收器D4;d5、锁体在存储锁体出错标记之前,验证同步合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止运行开锁程序的同步合法密码验证步骤,相应地在锁体中增加了同步合法密码验证器D5;d6、在锁体配置数据存储步骤a7中所存储的锁体配置数据还包括同步验证数据,所述的同步验证数据是在锁体的同步合法密码验证步骤d5中赖以验证接收到的同步合法密码是否正确的计算参数,亦即锁体配置数据中的同步验证数据与钥匙配置数据中的同步合法数据相匹配,不同的同步验证数据对应不同的同步合法数据。相应地,在锁体配置数据存储器A7中所存储的锁体配置数据包括同步验证数据。
本实施例可采用图6所示的流程。图6在图3的基础上,在钥匙的开锁程序中增加了步骤d1、d3,在锁体的开锁程序中增加了步骤d4、d5,其它流程与图3相同。从图6可知,在钥匙出错标记存储步骤b1之前,钥匙先通过步骤d1、d3将同步合法密码发送给锁体,经锁体的步骤d4、d5验证后,如果同步合法密码正确,钥匙才执行步骤b1,如果同步合法密码不正确,钥匙和锁体都终止开锁程序。由于在每次开锁过程中,钥匙配置数据存储器A6中存储的用以产生同步合法密码的同步合法数据,以及锁体配置数据存储器A7中存储的用于验证同步合法密码的同步验证数据,都会发生变化,因此若用钥匙开启曾被破解的锁体,当锁体执行到步骤d5时就会终止,在钥匙和锁体中都不会保存出错标记,这样就可避免本实施例开头一段所述的情况。
本实施例也可采用图7所示的流程。图7在图2的基础上,在钥匙的开锁程序中增加了步骤d1、d3,在锁体的开锁程序中增加了步骤d4、d5,其它流程与图2相同。图7与图6一样,也是在锁体验证钥匙的同步合法密码是正确的条件下,钥匙才执行步骤b1,而且在每次开锁过程中,钥匙配置数据存储器A6中存储的用以产生同步合法密码的同步合法数据,以及锁体配置数据存储器A7中存储的用于验证同步合法密码的同步验证数据,都会发生变化,因此若用钥匙开启曾被破解的锁体,当锁体执行到步骤d5时也会终止,同样能避免本实施例开头一段所述的情况。
本实施例也可采用图8所示的流程。图8在图5的基础上,在钥匙的开锁程序中增加了步骤d1、d3,在锁体的开锁程序中增加了步骤d4、d5,其它流程与图5相同。图8与图6一样,也是在锁体验证钥匙的同步合法密码是正确的条件下,钥匙才执行步骤b1,而且在每次开锁过程中,钥匙配置数据存储器A6中存储的用以产生同步合法密码的同步合法数据,以及锁体配置数据存储器A7中存储的用于验证同步合法密码的同步验证数据,都会发生变化,因此若用钥匙开启曾被破解的锁体,当锁体执行到步骤d5时也会终止,同样能避免本实施例开头一段所述的情况。
本实施例还可采用图9所示的流程。图9在图4的基础上,在钥匙的开锁程序中增加了步骤d1、d3,在锁体的开锁程序中增加了步骤d4、d5,其它流程与图4相同。图9与图6一样,也是在锁体验证钥匙的同步合法密码是正确的条件下,钥匙才执行步骤b1,而且在每次开锁过程中,钥匙配置数据存储器A6中存储的用以产生同步合法密码的同步合法数据,以及锁体配置数据存储器A7中存储的用于验证同步合法密码的同步验证数据,都会发生变化,因此若用钥匙开启曾被破解的锁体,当锁体执行到步骤d5时也会终止,同样能避免本实施例开头一段所述的情况。
实施例5为了解决在实施例4的开头一段所提出的问题,也可以增加以下步骤e1、锁体在存储锁体出错标记之前,产生同步合法密码的同步合法密码产生步骤,相应地在锁体中增加了同步合法密码产生器E1;e2、在锁体配置数据存储步骤中所存储的锁体配置数据还包括同步合法数据,所述的同步合法数据是在锁体的同步合法密码产生步骤中赖以产生同步合法密码的计算参数;e3、锁体在存储锁体出错标记之前,将同步合法密码发送给钥匙的同步合法密码发送步骤,相应地在锁体中增加了同步合法密码发送器E3;e4、钥匙接收同步合法密码的同步合法密码接收步骤,相应地在钥匙中增加了同步合法密码接收器E4;e5、钥匙在存储钥匙出错标记之前,验证同步合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止运行开锁程序的同步合法密码验证步骤,相应地在钥匙中增加了同步合法密码验证器E5;e6、在钥匙配置数据存储步骤中所存储的钥匙配置数据还包括同步验证数据,所述的同步验证数据是在钥匙的同步合法密码验证步骤中赖以验证接收到的同步合法密码是否正确的计算参数,亦即钥匙配置数据中的同步验证数据与锁体配置数据中的同步合法数据相匹配,不同的同步验证数据对应不同的同步合法数据。
本实施例可采用图10所示的流程。图10与实施例4中的图6一样,也是在图3的基础上进行改进。图10与图6的区别点仅在于同步合法密码是由锁体产生并发送给钥匙的,由钥匙验证同步合法密码是否正确,只有同步合法密码正确,钥匙才执行步骤b1,如果同步合法密码不正确,钥匙和锁体都终止开锁程序。与实施例4同样的道理,由于在每次开锁过程中,锁体配置数据存储器A7中存储的用以产生同步合法密码的同步合法数据,以及钥匙配置数据存储器A6中存储的用于验证同步合法密码的同步验证数据,都会发生变化,因此若用钥匙开启曾被破解的锁体,当钥匙执行到步骤e5时就会终止,在钥匙和锁体中都不会保存出错标记,这样就避免了实施例4开头一段所述的情况。
本实施例也可采用图11所示的流程。图11与实施例4中的图7一样,也是在图2的基础上进行改进。图11与图7的区别点,同图10与图6的区别点一样,不再累述。
本实施例也可采用图12所示的流程。图12与实施例4中的图8一样,也是在图5的基础上进行改进。图12与图8的区别点,同图10与图6的区别点一样,不再累述。
本实施例也可采用图13所示的流程。图13与实施例4中的图9一样,也是在图4的基础上进行改进。图13与图9的区别点,同图10与图6的区别点一样,不再累述。
作为另一种实施方式,也可以将实施例4和实施例5结合在一起,令钥匙和锁体分别发送同步合法密码给对方,只有当钥匙和锁体的同步合法密码都是正确的,才在钥匙和锁体中存储出错标记,如此同样能解决实施例4的开头一段所提出的问题。
上述各实施例是以一个锁体配一把钥匙为例进行讲述的。实际上本发明也适用于那些一个锁体配多把钥匙的电子锁,以及一把钥匙可以开启多个锁体的电子锁。对于一个锁体配多把钥匙的电子锁,只需给每把钥匙设定一个编号,在锁体配置数据存储器A7中放置与不同编号的钥匙对应的数据,开锁时根据不同的钥匙编号启用不同的数据;对于一把钥匙可以开启多个锁体的电子锁,只需给每个锁体设定一个编号,在钥匙配置数据存储器A6中放置与不同编号的锁体对应的数据,开锁时根据不同的锁体编号启用不同的数据。
本发明所使用的钥匙合法密码、锁合法密码、同步合法密码都是以钥匙配置数据存储器和锁体配置数据存储器中存储的数据作为计算参数,以一定的算法产生的,在验证这些密码的时候也是以钥匙配置数据存储器和锁体配置数据存储器中存储的数据作为计算参数,以一定的算法进行验证的。所述的算法可以从现有的各种数字加密算法中选用。下面以钥匙合法密码的产生和验证为例,举例说明其中一种算法在这种算法中,钥匙配置数据存储器中存储的钥匙合法数据,与锁体配置数据存储器中存储的钥匙验证数据之间的匹配关系就是相等关系。设定钥匙合法数据和钥匙验证数据都是由四个字节构成,当钥匙产生钥匙合法密码时,钥匙合法密码产生器A1选取钥匙合法数据中的第一、二个字节数据作为密钥,第三、四个字节数据作为明文,密钥与明文进行异或运算的结果就作为钥匙合法密码;当锁体验证钥匙合法密码时,钥匙合法密码验证器A4选取钥匙验证数据中第一、二个字节数据作为验证密钥,验证密钥与钥匙合法密码进行异或运算产生验证明文,比较验证明文是否与钥匙验证数据中第三、四个字节数据相同,如果相同则钥匙合法密码正确,否则钥匙合法密码不正确。举例而言,假设钥匙配置数据存储器中存储的钥匙合法数据是0x32,0x46,0x13,0x88,那么钥匙合法密码产生器A1选取0x32,0x46作为密钥,0x13,0x88作为明文,0x32,0x46与0x13,0x88进行异或产生的钥匙合法密码是0x21,0xCE;当锁体验证钥匙合法密码时,锁体配置数据存储器中存储的钥匙验证数据也是0x32,0x46,0x13,0x88,钥匙合法密码验证器A4选取0x32,0x46作为验证密钥,0x32,0x46与钥匙合法密码0x21,0xCE进行异或运算产生验证明文是0x13,0x88,该验证明文0x13,0x88与钥匙验证数据中的后两个字节0x13,0x88相等,由此得知钥匙合法密码是正确的。顺带说明,与此算法对应的是,钥匙配置数据更新步骤a8中更新的钥匙合法数据,与锁体配置数据更新步骤a9中更新的钥匙验证数据始终保持相等关系。更新方式可以采用随机算法产生一个随机数,以该随机数作为钥匙合法数据和钥匙验证数据。
本发明所述的各种装置应理解为实现所述开锁程序各步骤所必须建立的功能模块,由这样一组功能模块构成的电子锁应理解为主要通过开锁程序实现本发明目的的功能模块架构,因此本发明可以采用与现有的电子锁一样的硬件结构,以常规的单片机硬件系统来实现。本发明所述的各种不同的装置,既可以是不同的硬件实体,也可以是同一个硬件实体构成,例如钥匙中的所有装置(开锁装置A5除外)都可以集成在一块单片机芯片内。
为更好地实现本发明目的,在具体制作电子锁的时候,最好对电子锁的硬件系统采取一些常规的硬件保护措施,以防止重要数据甚至程序被人盗取,例如可以在单片机的存储芯片内写入厂家特有的信息,将芯片放置于一个封闭盒中,封闭盒只留出必要的通信接口,打开封闭盒将会损坏芯片或导致芯片中的数据失效。
权利要求
1.一种能证明自己是否曾被破解的电子锁,包括钥匙和锁体,钥匙和锁体分别包括用于运行开锁程序的开锁控制装置,所述的开锁控制装置包括A1、位于钥匙内,用于产生钥匙合法密码的钥匙合法密码产生器;A2、位于钥匙内,用于将钥匙合法密码发送给锁体的钥匙合法密码发送器;A3、位于锁体内,用于接收钥匙合法密码的钥匙合法密码接收器;A4、位于锁体内,用于验证钥匙合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止运行开锁程序的钥匙合法密码验证器;A5、位于锁体内,用于执行最终开锁动作的开锁装置;其特征是所述的开锁控制装置还包括A6、位于钥匙内,用于存储钥匙配置数据的钥匙配置数据存储器,所述的钥匙配置数据包括钥匙合法数据,钥匙合法数据是钥匙内的钥匙合法密码产生器(A1)赖以产生钥匙合法密码的计算参数;A7、位于锁体内,用于存储锁体配置数据的锁体配置数据存储器,所述的锁体配置数据包括钥匙验证数据,钥匙验证数据是锁体内的钥匙合法密码验证器(A4)赖以验证接收到的钥匙合法密码是否正确的计算参数,亦即锁体配置数据中的钥匙验证数据与钥匙配置数据中的钥匙合法数据相匹配,不同的钥匙验证数据对应不同的钥匙合法数据;A8、位于钥匙内,用于在钥匙发送钥匙合法密码之后、锁体执行最终开锁动作之前,更新钥匙配置数据的钥匙配置数据更新器;A9、位于锁体内,用于在锁体执行最终开锁动作之前,更新锁体配置数据的锁体配置数据更新器。
2.如权利要求1所述的电子锁,其特征是所述的开锁控制装置还包括B1、位于钥匙内,用于在更新钥匙配置数据之前,存储钥匙出错标记的钥匙出错标记存储器;B2、位于锁体内,用于在更新锁体配置数据之前,存储锁体出错标记的锁体出错标记存储器;B3、位于钥匙内,用于在钥匙存储钥匙配置数据之后、锁体执行最终开锁动作之前,清除钥匙出错标记的钥匙出错标记清除器;B4、位于锁体内,用于在锁体存储锁体配置数据之后、锁体执行最终开锁动作之前,清除锁体出错标记的锁体出错标记清除器。
3.如权利要求2所述的电子锁,其特征是所述的开锁控制装置还包括以下装置和特点C1、位于锁体内,用于产生锁体合法密码的锁体合法密码产生器;C2、在锁体配置数据存储器(A7)中所存储的锁体配置数据还包括锁合法数据,锁合法数据是锁体内的锁体合法密码产生器赖以产生锁体合法密码的计算参数;C3、位于锁体内,用于在锁体更新锁体配置数据之前,将锁体合法密码发送给钥匙的锁体合法密码发送器;C4、位于钥匙内,用于接收锁体合法密码的锁体合法密码接收器;C5、位于钥匙内,用于验证锁体合法密码是否正确,若正确则继续开锁程序,若不正确则终止开锁程序的锁体合法密码验证器;C6、在钥匙配置数据存储器(A6)中所存储的钥匙配置数据还包括锁验证数据,所述的锁验证数据是钥匙中的锁体合法密码验证器(C5)赖以验证接收到的锁体合法密码是否正确的计算参数,亦即钥匙配置数据中的锁验证数据与锁体配置数据中的锁合法数据相匹配,不同的锁验证数据对应不同的锁合法数据;C7、权利要求2所述的位于锁体内的锁体出错标记存储器(B2),用于在锁体发送锁体合法密码完毕之前存储锁体出错标记。C8、权利要求2所述的位于钥匙内的钥匙出错标记存储器(B1),用于在钥匙发送钥匙合法密码完毕之前存储钥匙出错标记。
4.如权利要求2或3之一所述的电子锁,其特征是所述的开锁控制装置还包括以下装置和特点D1、位于钥匙内,用于在钥匙出错标记存储器(B1)存储钥匙出错标记之前,产生同步合法密码的同步合法密码产生器;D2、在钥匙配置数据存储器(A6)中所存储的钥匙配置数据还包括同步合法数据,所述的同步合法数据是钥匙内的同步合法密码产生器(D1)赖以产生同步合法密码的计算参数;D3、位于钥匙内,用于在钥匙出错标记存储器(B1)存储钥匙出错标记之前,将同步合法密码发送给锁体的同步合法密码发送器;D4、位于锁体内,用于接收同步合法密码的同步合法密码接收器;D5、位于锁体内,用于在锁体出错标记存储器(B2)存储锁体出错标记之前,验证同步合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止运行开锁程序的同步合法密码验证器;D6、在锁体配置数据存储器(A7)中所存储的锁体配置数据还包括同步验证数据,所述的同步验证数据是锁体内的同步合法密码验证器(D5)赖以验证接收到的同步合法密码是否正确的计算参数,亦即锁体配置数据中的同步验证数据与钥匙配置数据中的同步合法数据相匹配,不同的同步验证数据对应不同的同步合法数据。
5.如权利要求2或3之一所述的电子锁,其特征是所述的开锁控制装置还包括以下装置和特点E1、位于锁体内,用于在锁体出错标记存储器(B2)存储锁体出错标记之前,产生同步合法密码的同步合法密码产生器;E2、在锁体配置数据存储器(A7)中所存储的锁体配置数据还包括同步合法数据,所述的同步合法数据是锁体内的同步合法密码产生器(E1)赖以产生同步合法密码的计算参数;E3、位于锁体内,用于在锁体出错标记存储器(B2)存储锁体出错标记之前,将同步合法密码发送给钥匙的同步合法密码发送器;E4、位于钥匙内,用于接收同步合法密码的同步合法密码接收器;E5、位于钥匙内,用于在钥匙出错标记存储器(B1)存储钥匙出错标记之前,验证同步合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止运行开锁程序的同步合法密码验证器;E6、在钥匙配置数据存储器(A6)中所存储的钥匙配置数据还包括同步验证数据,所述的同步验证数据是钥匙内的同步合法密码验证器(E5)赖以验证接收到的同步合法密码是否正确的计算参数,亦即钥匙配置数据中的同步验证数据与锁体配置数据中的同步合法数据相匹配,不同的同步验证数据对应不同的同步合法数据。
6.一种使权利要求1所述的电子锁能证明自己是否曾被破解的方法,包括分别在钥匙和锁体内运行的开锁程序,所述的开锁程序包括以下步骤a1、钥匙产生钥匙合法密码的钥匙合法密码产生步骤;a2、钥匙将钥匙合法密码发送给锁体的钥匙合法密码发送步骤;a3、锁体接收钥匙合法密码的钥匙合法密码接收步骤;a4、锁体验证钥匙合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止运行开锁程序的钥匙合法密码验证步骤;a5、锁体执行最终开锁动作的开锁步骤;特别地,所述的开锁程序还包括以下步骤和特点a6、在钥匙内存储钥匙配置数据的钥匙配置数据存储步骤,所述的钥匙配置数据包括钥匙合法数据,钥匙合法数据是在钥匙的钥匙合法密码产生步骤(a1)中赖以产生钥匙合法密码的计算参数;a7、在锁体内存储锁体配置数据的锁体配置数据存储步骤,所述的锁体配置数据包括钥匙验证数据,钥匙验证数据是在锁体的钥匙合法密码验证步骤(a4)中赖以验证接收到的钥匙合法密码是否正确的计算参数,亦即锁体配置数据中的钥匙验证数据与钥匙配置数据中的钥匙合法数据相匹配,不同的钥匙验证数据对应不同的钥匙合法数据;a8、钥匙在发送钥匙合法密码之后、锁体执行最终开锁之前,更新钥匙配置数据的钥匙配置数据更新步骤;a9、锁体在锁体执行最终开锁步骤之前,更新锁体配置数据的锁体配置数据更新步骤。
7.如权利要求6所述的方法,其特征是所述的开锁程序还包括以下步骤b1、在更新钥匙配置数据之前,在钥匙内存储钥匙出错标记的钥匙出错标记存储步骤;b2、在更新锁体配置数据之前,在锁体内存储锁体出错标记的锁体出错标记存储步骤;b3、在钥匙存储钥匙配置数据之后、锁体执行最终开锁动作之前,清除钥匙出错标记的钥匙出错标记清除步骤;b4、在锁体存储锁体配置数据之后、锁体执行最终开锁动作之前,清除锁体出错标记的锁体出错标记清除步骤。
8.如权利要求7所述的方法,其特征是所述的开锁程序还包括以下步骤和特点c1、锁体产生锁体合法密码的锁体合法密码产生步骤;c2、在锁体配置数据存储步骤(a7)中所存储的锁体配置数据还包括锁合法数据,锁合法数据是在锁体合法密码产生步骤中赖以产生锁体合法密码的计算参数;c3、在锁体更新锁体配置数据之前,将锁体合法密码发送给钥匙的锁体合法密码发送步骤;c4、钥匙接收锁体合法密码的锁体合法密码接收步骤;c5、钥匙验证锁体合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止开锁程序的锁体合法密码验证步骤;c6、在钥匙配置数据存储步骤(a6)中所存储的钥匙配置数据还包括锁验证数据,所述的锁验证数据是在钥匙的锁体合法密码验证步骤(c5)中赖以验证接收到的锁体合法密码是否正确的计算参数,亦即钥匙配置数据中的锁验证数据与锁体配置数据中的锁合法数据相匹配,不同的锁验证数据对应不同的锁合法数据;c7、权利要求7所述的锁体出错标记存储步骤(b2),是在锁体发送锁体合法密码完毕之前;c8、权利要求7所述的钥匙出错标记存储步骤(b1),是在钥匙发送钥匙合法密码完毕之前。
9.如权利要求7或8之一所述的方法,其特征是所述的开锁程序还包括以下步骤和特点d1、钥匙在钥匙出错标记存储步骤(b1)之前,产生同步合法密码的同步合法密码产生步骤;d2、在钥匙配置数据存储步骤(a6)中所存储的钥匙配置数据还包括同步合法数据,所述的同步合法数据是在钥匙的同步合法密码产生步骤(d1)中赖以产生同步合法密码的计算参数;d3、钥匙在钥匙出错标记存储步骤(b1)之前,将同步合法密码发送给锁体的同步合法密码发送步骤;d4、锁体接收同步合法密码的同步合法密码接收步骤;d5、锁体在锁体出错标记存储步骤(b2)之前,验证同步合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止运行开锁程序的同步合法密码验证步骤;d6、在锁体配置数据存储步骤(a7)中所存储的锁体配置数据还包括同步验证数据,所述的同步验证数据是在锁体的同步合法密码验证步骤(d5)中赖以验证接收到的同步合法密码是否正确的计算参数,亦即锁体配置数据中的同步验证数据与钥匙配置数据中的同步合法数据相匹配,不同的同步验证数据对应不同的同步合法数据。
10.如权利要求7或8之一所述的方法,其特征是所述的开锁程序还包括以下步骤和特点e1、锁体在锁体出错标记存储步骤(b2)之前,产生同步合法密码的同步合法密码产生步骤;e2、在锁体配置数据存储步骤(a7)中所存储的锁体配置数据还包括同步合法数据,所述的同步合法数据是在锁体的同步合法密码产生步骤(e1)中赖以产生同步合法密码的计算参数;e3、锁体在锁体出错标记存储步骤(b2)之前,将同步合法密码发送给钥匙的同步合法密码发送步骤;e4、钥匙接收同步合法密码的同步合法密码接收步骤;e5、钥匙在钥匙出错标记存储步骤(b1)之前,验证同步合法密码是否正确,若正确则继续运行开锁程序,若不正确则终止运行开锁程序的同步合法密码验证步骤;e6、在钥匙配置数据存储步骤(a6)中所存储的钥匙配置数据还包括同步验证数据,所述的同步验证数据是在钥匙的同步合法密码验证步骤(e5)中赖以验证接收到的同步合法密码是否正确的计算参数,亦即钥匙配置数据中的同步验证数据与锁体配置数据中的同步合法数据相匹配,不同的同步验证数据对应不同的同步合法数据。
全文摘要
一种能证明自己是否曾被破解的电子锁及其实现方法,其主要特点是以事先存储在钥匙中的钥匙合法数据来产生钥匙合法密码,以事先存储在锁体中的钥匙验证数据来验证钥匙合法密码,并在每次开锁程序结束前更新钥匙合法数据和钥匙验证数据,并保持钥匙合法数据与钥匙验证数据的匹配关系。如果锁体曾被人破解,那么锁体中的钥匙验证数据必然不再与钥匙中的钥匙合法数据相匹配,钥匙也就无法开锁。所以本发明可依据钥匙能否开锁来证明锁体是否曾被人破解。本发明的优点是使电子锁具有可证明自己是否曾被破解的功能,能有效防止现实生活中可能发生的以“假破解”来欺诈厂家的诈骗事件,解决了厂家推广电子锁的顾虑,而且也提高了电子锁的防破解性能。
文档编号E05B39/00GK101016814SQ20071002700
公开日2007年8月15日 申请日期2007年2月15日 优先权日2007年2月15日
发明者吴洪伟 申请人:吴洪伟