分布式密码恢复方法和系统的制作方法

文档序号:9508407阅读:445来源:国知局
分布式密码恢复方法和系统的制作方法
【技术领域】
[0001]本申请涉及密码恢复技术领域,特别地,涉及一种分布式密码恢复方法和系统。
【背景技术】
[0002]暴力遍历和字典遍历是目前密码恢复中最常用的两种遍历方式。暴力遍历就是对用户制定的规则内的所有密码进行遍历,字典遍历则是对字典文件中的密码进行遍历。暴力方式往往需要较多的规则来覆盖尽可能大的密码空间以提高密码恢复的成功率,但密码空间太大将造成遍历时间倍增,甚至需要成百上千年的时间,使密码恢复失去意义。字典遍历方式的成功率往往受限于字典中的密码数,由于字典的密码数一般不会太多,因此可以短时间内完成密码的遍历,但一般只能恢复出常用的密码,对于一些复杂密码无能为力。
[0003]暴力遍历目前还是密码恢复中的比较常用的手段,如何在有效的时间内恢复出密码是当前的主要研究方向。暴力恢复密码的时间主要取决于计算机的计算能力,而单台计算机的计算能力是有限的。随着分布式计算技术的发展,可以利用分布于网络中的计算机节点共同参与密码恢复以提高速度是必然趋势。利用分布式技术来实现密码恢复,必然要面对的一个问题就是如何将密码分配给不同的计算机,以保证各台计算节点都能达到一个负载均衡的状态,使整个系统的利用率和计算速度达到最高的问题。
[0004]申请号为201010614916.8,名称为“一种解密处理方法及其设备”的中国发明专利文件公开了一种密码拆分方法:假如待恢复的密码规则为十位纯数字,可拆分为如下两种密码组合:(1)第一位数字是1、2、3、4或5与九位纯数字的组合;(2)第一位数字是6、7、8、9或0与九位纯数字的组合。将这两种密码组合分别分配到两个运算单元上进行恢复。
[0005]该方案与单台计算机方案相比可在一定程度上提高密码恢复效率,但也存在以下缺点:当分布在各节点上的计算机性能差异较大时,按这种方式划分任务,可能会出现性能差的计算机节点要计算很长时间,而性能好的计算机节点已经完成任务而处于空闲状态(即负载不均衡)的情况,系统的整体性能较差。另外,对于现有技术方案,还可能存在字符集中的字符个数不能被计算机的数量整除的情况,此时,必然造成某台或某几台设备所分配到的密码数要多,整个系统负载不均衡,有些设备可能已经空闲,而有些设备还要计算比较长的时间。

【发明内容】

[0006]本申请提供一种分布式密码恢复方法,用于解决现有技术可能因分布式计算节点负载不均衡而影响系统整体性能的问题。
[0007]本申请还提供了一种分布式密码恢复系统,以保证上述方法在实际中的应用。
[0008]依据本申请的另一优选实施例,公开了一种分布式密码恢复方法,执行所述方法的系统包括至少1个服务节点和1个以上的计算节点,所述服务节点和计算节点之间通过网络连接,所述服务节点为单独的计算机或由其中的计算节点兼任;所述方法包括:根据待恢复密码的密码规则信息,计算密码空间;其中所述密码规则信息包括字符集和密码长度;根据各计算节点在单位时间内的密码处理能力,在所述密码空间范围内为每个计算节点分配相应大小的任务块,触发各计算节点根据所述任务块的信息执行相应的密码遍历;为已经完成密码遍历任务的计算节点再次分配相应大小的任务块,直至所述密码空间被遍历完成;其中,当其中一个计算节点遍历到待恢复的密码时结束所述密码恢复流程。
[0009]优选的,在所述为已经完成密码遍历任务的计算节点再次分配相应大小的任务块执行密码遍历的步骤之前,还包括:判断各计算节点是否出现异常,若是,将分配给该异常计算节点的任务块变更为后续流程可重新分配处理的状态。
[0010]优选的,所述任务块的信息包括任务块的起始值b和密码数k ;所述各计算节点根据所述任务块的信息执行相应的密码遍历,具体为:将所述任务块的起始值b作为待转换数b';将待转换数b'转换为待检测密码;验证所述待检测密码是否为待恢复密码,若是,结束密码恢复流程;将待转换数b'递增1,重复执行上述密码转换和密码验证过程,直至遍历的密码数达到k。
[0011]优选的,所述将待转换数b'转换为待检测密码的方法具体包括:用下列公式计算数字‘将字符集中第jc+Ι个字符作为待检测密码的第1位字符;
[0012]b0= b'
[0013]j0= b o% m
[0014]其中,m表示字符集中字符的数量,b。^ m表示用b。除以m取余运算;
[0015]从第2位开始,用下列公式计算数字i,将字符集中第i+1个字符作为密码的第i+1位字符;
[0016]bi= [b ; j/m]
[0017]ji= b ;% m
[0018]其中,i为大于0小于密码长度的整数,m表示字符集中字符的数量,m表示用4除以m取余运算,[bu/m]表示用bu除以m取整运算。
[0019]优选的,所述单位时间为分钟;所述任务块的大小等于相应的计算节点在1分钟内能够遍历的密码个数。
[0020]优选的,还包括:针对下一个预设密码规则的信息,重复上述密码遍历流程,直至所有预设密码规则的密码都被遍历完成。
[0021]依据本申请的另一优选实施例,还公开了一种分布式密码恢复系统,包括至少1个服务节点和1个以上的计算节点,所述服务节点和计算节点之间通过网络连接,所述服务节点为单独的计算机或由其中的计算节点兼任;所述服务节点具体包括:密码空间计算单元,用于根据待恢复密码的密码规则信息,计算密码空间;其中,所述密码规则信息包括字符集和密码长度;任务块分配单元,用于根据各计算节点在单位时间内的密码处理能力,在所述密码空间内为每个计算节点分配相应大小的任务块,触发各计算节点根据所述任务块的信息执行相应的密码遍历;以及,为已经完成密码遍历任务的计算节点再次分配相应大小的任务块,直至所述密码空间被遍历完成;其中,当其中一个计算节点遍历到待恢复的密码时结束密码恢复过程。
[0022]优选的,所述服务节点还包括:异常状态判断单元,用于判断各计算节点是否出现异常,当某一个计算节点出现异常时,将分配给该异常计算节点的任务块的状态变更为任务块分配单元可重新分配处理的状态。
[0023]优选的,所述任务块的信息包括任务块的起始值b和密码数k ;每个所述计算节点具体包括:循环调度单元,用于从所述任务块的起始值b开始,作为待转换数b',循环调度密码转换单元和密码验证单元执行密码转换和密码验证过程;每次循环都将V递增1,直至遍历的密码数达到数量k ;
[0024]密码转换单元,用于将待转换数b'转换为待检测密码;其中,所述密码转换单元采用如下方式将待转换数b'转换为待检测密码:
[0025]用下列公式计算数字j。,将字符集中第」。+1个字符作为待检测密码的第1位字符;
[0026]j0= b 0% m
[0027]其中,m表示字符集中字符的数量,b。^ m表示用b。除以m取余运算;
[0028]从第2位开始,用下列公式计算数字i,将字符集中第i+1个字符作为密码的第i+1位字符;
[0029]bi= [b ; j/m]
[0030]ji= b ;% m
[0031]其中,i为大于0小于密码长度的整数,m表示字符集中字符的数量,m表示用4除以m取余运算,[b , i/m]表示用h i除以m取整运算;
[0032]密码验证单元,用于验证所述密码转换单元生成的待检测密码是否为待恢复密码;当所述待检测密码为待恢复密码时,通知所述服务节点结束密码恢复过程。
[0033]优选的,所述服务节点还包括:密码规则设置单元,用于预设密码规则,并根据预设的每个密码规则循环调度密码空间计算单元和任务块分配单元执行相
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1