一种电子锁的多功能离线密码验证方法
技术领域
本发明涉及一种电子锁的密码验证方法,尤其涉及一种电子锁的多功能离线密码验证方法。
背景技术
电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,因而被越来越多的人所欣赏。
传统方案中,现存开锁的动态密码不具备多种密码种类或即使具备多种种类密码在验证时也需要分别对密码类型和数字密码验证、解析;且现存开锁的动态密码的长度超过9位,难以记住;现存开锁的动态密码的安全性得不到保障,容易被破解而造成损失。
发明内容
本发明所要解决的技术问题是提供了一种电子锁的多功能离线密码验证方法,本发明明文密码带有密码类型信息,方便解析;且采用16次加密算法保证秘钥的安全性。
一种电子锁的多功能离线密码验证方法,包括以下几个步骤:
步骤A:根据提交信息生成明文密码;
步骤B:获取电子锁中的系统秘钥,并将所述系统秘钥进行秘钥运算变换得到四组八位秘钥值,再由所述四组八位秘钥值分别进行运算得到一组四位加密基数,所述加密基数用于获取加密策略;
步骤C:所述明文密码根据所述加密策略与所述四组八位秘钥值分别进行若干轮秘钥加密变换;再进行若干轮值变换、若干轮移位变换、若干轮列混合变换后得到动态密码;
步骤D:在输入所述动态密码时,所述电子锁根据加密顺序进行逆运算解密,解析得到所述明文密码;
步骤E:若解析得到所述明文密码具有正确性和有效性,则电子锁进行开锁;若解析得到所述明文密码不具有正确性或有效性,则电子锁报警。
上述技术方案中,更进一步的是,在步骤A中,所述明文密码包括密码类型和明文数字;在活动秘钥逆向解密解析过程中,可得到数字密码,所述数字密码包括了所述密码类型,提高解析的效率,不再需要对密码类型和数字密码分别进行解析。
上述技术方案中,更进一步的是,所述密码类型包括清除密码、单次密码、短时密码、限时密码、循环密码、永久密码;密码类型的多样,大大地增加了应用场景。
上述技术方案中,更进一步的是,在步骤B中,所述系统秘钥具有唯一性,每个所述系统秘钥与每把所述电子锁一一对应;所述系统秘钥为十六进制。
上述技术方案中,更进一步的是,在步骤B中,所述秘钥运算变换包括若干轮十六进制转十进制变换、若干轮逆序变换、若干轮值变换。
上述技术方案中,更进一步的是,在步骤C中,所述值变换是指,使变换后的值的二进制数与原值的二进制数有至少2bit的变化。
上述技术方案中,更进一步的是,在步骤C中,所述移位变换是指,将八位明文划分为若干列若干行,并将其中若干行内的数字进行位置调换。
上述技术方案中,更进一步的是,在步骤C中,所述列混合变换是指,将明文密码作为列矩阵A,求密文矩阵B,使得B=CA,A=C-1B。
上述技术方案中,更进一步的是,在步骤C中,所述秘钥加密变换轮数为四轮;所述值变换、移位变换、列混合变换的轮数和为12轮。
上述技术方案中,更进一步的是,所述每次秘钥加密变换、值变换、移位变换、列混合变换得到的暂时性动态密码作为下一轮变换的明文密码;所述秘钥加密变换、值变换、移位变换、列混合变换顺序可调整、穿插;使得排列离散程度高,提高了活动秘钥的安全性。
与现有技术相比,本发明的有益效果是:由于本发明的明文密码中带有密码种类的信息,在解析过程中只需解析一次即可获取密码种类信息和数字密码,提高了解析的效率;同时由于通过16次的可逆加密算法进行加密,不易被破译,大大提高了安全性能;开锁的动态密码的长度为8至9位,方便记忆。
附图说明
图1为本发明所述方法的流程图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
如图1所示,一种电子锁的多功能离线密码验证方法,包括以下几个步骤:
步骤A:根据提交信息生成明文密码;
步骤B:获取电子锁中的系统秘钥,并将所述系统秘钥进行秘钥运算变换得到四组八位秘钥值,再由所述四组八位秘钥值分别进行运算得到一组四位加密基数,所述加密基数用于获取加密策略;
步骤C:所述明文密码根据所述加密策略与所述四组八位秘钥值分别进行若干轮秘钥加密变换;再进行若干轮值变换、若干轮移位变换、若干轮列混合变换后得到动态密码;
步骤D:在输入所述动态密码时,所述电子锁根据加密顺序进行逆运算解密,解析得到所述明文密码;
步骤E:若解析得到所述明文密码具有正确性和有效性,则电子锁进行开锁;若解析得到所述明文密码不具有正确性或有效性,则电子锁报警。
在步骤A中所述提交信息是指,按照以下明文密码定义规则表设定明文密码(所述明文密码自带有密码类型):
a.清除密码:900+五位开始时间;
b.单次密码:91+二位明文密码首位+四位递增计数值;
c.短时密码:92+七位分钟数;
d.限时密码(未超过一年):五位开始时间+三至四位持续小时时间;
e.限时密码(超过一年):97+五位开始时间+一位年数;
f.循环密码:98+二位递增循环计数值+一位星期+二位开始时刻+二位结束时刻;
g.永久密码:900+五位开始时间。
在步骤A中,所述明文密码包括密码类型和明文数字。
所述明文密码自带有密码类型,在逆向解密时,解密得到的明文密码为98开头,则其为循环密码,在特定的时间段内才可使用。
所述密码类型包括清除密码、单次密码、短时密码、限时密码、循环密码、永久密码。
所述清除密码是指清除所有储存的密码;所述单次密码是指只能使用一次,使用过后自动清除;所述短时密码是指在一段短时间(20—30分钟之间)内可使用,逾期不可用;所述限时密码(未超过一年)是指在一段时间(1—12月之间)内可使用,逾期不可用;所述限时密码(超过一年)是指在一段时间(大于12个月)内可使用,逾期不可用;所述循环密码是指在一个周期内的某一时间段内可使用;所述永久密码是指永久使用(直至被清除)的密码。
在步骤B中,所述系统秘钥具有唯一性,每个所述系统秘钥与每把所述电子锁一一对应;所述系统秘钥为十六进制。
所述系统秘钥为八位十六进制数组成,例如[2,A,6,3,D,5,7,F]。
在步骤B中,所述秘钥运算变换包括若干轮十六进制转十进制变换、若干轮逆序变换、若干轮值变换。
所述逆序变换是指,将数字进行逆序排列,例如:[2,A,6,3,D,5,7,F],经逆序变换之后得到:[8,7,6,5,4,3,2,1]。
在步骤C中,所述值变换是指,使变换后的值的二进制数与原值的二进制数有至少2bit的变化。
例如:
原值十进制 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
原值二进制 |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
变换后十进制 |
9 |
8 |
7 |
5 |
3 |
2 |
1 |
0 |
4 |
6 |
变换后二进制 |
1001 |
0100 |
0111 |
0101 |
0011 |
0010 |
0001 |
0000 |
0100 |
0110 |
即,形成一张映射表:
在步骤C中,所述移位变换是指,将八位明文划分为若干列若干行,并将其中若干行内的数字进行位置调换。
例如:对96322351进行移位;
移位前:
移位后为:
即:92363512。
在步骤C中,所述列混合变换是指,将明文密码作为列矩阵A,求暂时性动态密码矩阵B,使得B=CA,A=C-1B。
例如:明文密码作为矩阵A为
其中,若n=4;
取矩阵C为
则C-1为
使得
求暂时性动态密码矩阵B,暂时性动态密码矩阵B为
以下为秘钥运算变换实施例:
获取锁设备的秘钥,每把锁上都会有一个唯一的由8个16进制字符组成的系统秘钥,将这个秘钥进行16进制字符到10进制数字的转换,
若秘钥为[2,A,6,3,D,5,7,F],转化为10进制数字[2,0,6,3,3,5,7,5];
对10进制秘钥数组进行值变换,得到值变换后的十进制数组[2,0,6,3,3,5,7,5]值变换后得到[7,9,1,5,5,2,0,2];
对10进制秘钥数组进行逆序得到变换后的十进制数组[2,0,6,3,3,5,7,5]逆序变换后为[5,7,5,3,3,6,0,2];
对值变换后的十进制数组[7,9,1,5,5,2,0,2]进行逆序变换为[2,0,2,5,5,1,9,7]。
组合以上变换形成新的32位秘钥值,拼接后为[2,0,6,3,3,5,7,5,7,9,1,5,5,2,0,2,5,7,5,3,3,6,0,2,2,0,2,5,5,1,9,7]。
在步骤C中,所述秘钥加密变换轮数为四轮;所述值变换、移位变换、列混合变换的轮数和为12轮。
上述得到的32位秘钥值[2,0,6,3,3,5,7,5,7,9,1,5,5,2,0,2,5,7,5,3,3,6,0,2,2,0,2,5,5,1,9,7],即为四组八位秘钥值:第0组:[2,0,6,3,3,5,7,5,];第一组:[7,9,1,5,5,2,0,2,];第二组:[5,7,5,3,3,6,0,2,];第三组[2,0,2,5,5,1,9,7]。
所述四组八位秘钥值经过运算得到一组四位加密基数;其中,运算规律为,对八位秘钥值若干个数进行累加得到和,和再对x进行取余数y,所述余数y即为加密基数(所述余数y∈[0,x-1],y∈N);所述加密基数用于获取暂时性动态密码每一位值的加密策略,所述加密策略的获取方式为,计算(明文密码顺序+加密基数)%x=z(z∈[0,x-1],z∈N));
加密策略包括x个计算公式;
若所述z=0,则此时应当选取的加密策略为所述加密策略的第一计算公式,并将所述明文密码与所述秘钥值根据所述第一公式进行计算;
若所述z=1,则此时应当选取的加密策略为所述加密策略的第二计算公式,并将所述明文密码与所述秘钥值根据所述第二公式进行计算;
…
若所述z=x-2,则此时应当选取的加密策略为所述加密策略的第x-1计算公式,并将所述明文密码与所述秘钥值根据所述第x-1公式进行计算;
若所述z=x-1,则此时应当选取的加密策略为所述加密策略的第x计算公式,并将所述明文密码与所述秘钥值根据所述第x公式进行计算;
针对上述所述秘钥加密变换的过程给出以下实施例:
本实施例中x取值为4;
系统秘钥经过十六进制转十进制变换得[2,0,6,3,3,5,7,5],加密基数(2+0+6+3+3+5+7)%4=26%4=2;
值变换得[7,9,1,5,5,2,0,2],加密基数(同理)29%4=1;
逆序变换得[5,7,5,3,3,6,0,2],加密基数(同理)29%4=1;
值映射后逆序[2,0,2,5,5,1,9,7],加密基数(同理)24%4=0;
则加密基数为[2,1,1,0];
本实施例中定义加密策略为,若z=0,则加密策略为,第一计算公式为:(明文密码+秘钥值)%10;
若z=1,则加密策略为,第二计算公式为:(明文密码-秘钥值),为负数时加10;
若z=2,则加密策略为,第三计算公式为:(明文密码+秘钥值)%10;
若z=3,则加密策略为,第四计算公式为:(明文密码-秘钥值),为负数时加10。
对于明文密码为[1,2,3,4,5,6,7,8],秘钥值为[2,0,6,3,3,5,7,5];
因为加密基数为[2,1,1,0],所述本轮加密过程中取加密基数为2;
明文密码0位加密策略为z=(0+2)%4=2,策略为第三计算公式,计算方式为明文密码第0位1和秘钥值第0组第0位2相加,即(1+2)%10=3得到暂时性动态密码第0位3;
明文密码1位加密策略为z=(1+2)%4=3,策略为第四计算公式,计算方式为明文密码第1位2和秘钥值第0组第1位0相减,即(2-0)=2得到暂时性动态密码第1位2;
后面同理可得
(3+6)%10=9
4-3=1
(5+3)%10=8
6-5=1
(7+7)%10=4
8-5=3
得到暂时性动态密码为[3,2,9,1,8,1,4,3],上述为16轮加密中的一轮秘钥加密变换;
因为加密基数为[2,1,1,0],所述本轮加密过程中取加密基数为1;
暂时性动态密码为[3,2,9,1,8,1,4,3],作为下一轮加密的明文密码,加密基数为1,明文为[3,2,9,1,8,1,4,3],秘钥组为[7,9,1,5,5,2,0,2]
明文密码0位加密策略为(0+1)%4=1,策略为第二计算公式,计算方式为明文第0位3和秘钥值第1组第0位7相减,即(3-7)+10=6得到暂时性动态密码第0位6;
明文密码1位加密策略为(1+1)%4=2,策略为第三计算公式,计算方式为明文密码第1位2和秘钥值第1组第1位9相加即(2+9)%10=1得到暂时性动态密码第1位1;后面同理可得
9-1=8
1+5=6
(8+5)%10=3
1-2+10=9
4+0=4
3-2=1
得到密文为[6,1,8,6,3,9,4,1];
暂时性动态密码为[3,2,9,1,8,1,4,3],作为下一轮加密的明文密码,
下一轮加密基数为1重复上述秘钥加密变换过程;所述秘钥加密变换轮数为4轮。
所述每次秘钥加密变换、值变换、移位变换、列混合变换得到的暂时性动态密码作为下一轮变换的明文密码;所述秘钥加密变换、值变换、移位变换、列混合变换顺序可调整、穿插。
若用S代表秘钥加密变换,V代表值变换,C代表列混合变换,M代表移位变换,加密流程如下:
SVMCSVMCSVMCSVMS(所述秘钥加密变换轮数为四轮,所述值变换、移位变换、列混合变换轮数可改变,本实施例中采取的采取的时四轮所述秘钥加密变换,四轮所述值变换,四轮所述列混合变换以及四轮所述移位变换,只是采取了一种离散程度最大的情况)。
所述秘钥加密变换、值变换、移位变换、列混合变换顺序可调整、穿插,尽可能地将每种加密变换都保证被使用。每一轮加密变换得到的暂时性动态密码作为下一轮变换的明文密码,所述秘钥加密变换、值变换、移位变换、列混合变换轮数和为16。
由于该加密运算中采用的每一种运算都是可逆的,所以对于上面的加密过程只需要对每一种运算求逆即可解密。解密流程如下:
SMVSCMVSCMVSCMVS
本发明涵盖了多种应用场景,例如:
预约看房场景:租客希望看一下想要租的房间时,可以向房东申请一个短时的动态密码,租客在可以使用这个短时的动态密码在5分钟之内,进入房间进行看房。
租客入住场景:租客入住时,房东更具租客的租期生成时间段动态密码,在时间段内租客可以使用此动态密码进行开门,租期到期后限时密码自动失效,无法进入开门。
保洁人员房屋保洁场景:房东希望保洁人员在星期一的下午3点到4点进入房间进行公共区域的打扫,房东可以授权一个循环密码给保洁人员,保洁人员可以在指定星期的指定时间段进入房间进行开门打扫。
房屋异常场景:当房屋出现异常情况,需要紧急取消所有的动态密码时,房东可以申请清空密码,清除所有的动态密码。
在本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。