CN102983967A - 复杂密码快速遍历算法及装置 - Google Patents
复杂密码快速遍历算法及装置 Download PDFInfo
- Publication number
- CN102983967A CN102983967A CN2012105216412A CN201210521641A CN102983967A CN 102983967 A CN102983967 A CN 102983967A CN 2012105216412 A CN2012105216412 A CN 2012105216412A CN 201210521641 A CN201210521641 A CN 201210521641A CN 102983967 A CN102983967 A CN 102983967A
- Authority
- CN
- China
- Prior art keywords
- character
- password
- character set
- deciphering
- traversal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明提供了一种复杂密码快速遍历算法及装置,通过将待解密密码进行分段,每一段使用相同类型字符集的解密因子或特定字符串,其中,根据分析采用前者组合的密码占实际密码的95%以上,因此可极大减少密码遍历空间,使得采用本算法后,在相同设备和相同的时间的情况下,可以解析长度更长、字符集更复杂的密码。同时,本算法引入固定单词作为完整单元进行遍历,有效利用已知的密码信息,成倍提高解析效率。
Description
技术领域
本发明涉及密码加解密领域,尤其是指一种复杂密码快速遍历算法及装置。背景技术
暴力密码遍历是目前密码恢复的一种有效手段,有些情况下甚至是唯一的手段。但是暴力遍历的方法受到计算速度和密码空间两个因素的影响,对于长度较长、包含字符类型较多的复杂密码,暴力遍历计算甚至需要成百上千年的时间,使其失去意义。如何在有效的时间内解析出尽可能复杂的密码是当前的主要研究方向。目前,研究主要集中在通过各种硬件加速、算法优化、分布式技术来提高暴力遍历的速度,以此来缩短遍历的时间。但是通过提高计算速度的方法只能使遍历时间线性减小,而密码长度增长、密码字符集增大却使遍历成功的时间几何级数增大。
现有的密码解析一种典型算法是采用传统的密码遍历算法,这种遍历算法采用纯排列组合的方式,把规定长度内包含所给字符的所有密码都进行遍历,但由于遍历过程没有考虑密码的特征,造成这种算法需要遍历相当多不可能被用作密码或极少被用作密码的字符串,整体效率较低。随着密码使用字符集复杂度的提高,传统规则将面临密码空间***的问题。
特别是,在有些情况下,可能已知密码中包含的一些单词,而传统的密码遍历算法无法有效使用这些已知的信息,仍然只能对所有可能的字符进行排列组合,效率非常低。
发明内容
本发明的目的在于克服了上述缺陷,提供一种基于解密因子分段的复杂密码快速遍历算法及装置。
本发明的目的是这样实现的:一种复杂密码快速遍历算法,它包括步骤,
A)、根据至少两种解密因子的字符长度以排列组合方式对设定的密码总长度进行分段,获取上述所有排列组合的分段方式的待遍历集合;
B)、遍历的从待遍历集合中取出一个分段方式,每次将一个分段带入解密因子尝试解密,对不解密的分段恢复初始字符,直至获取密码为止。
上述步骤中,所述解密因子为字符集,字符集中字符的类型相同;所述步骤A)、根据至少两种解密因子中字符集的字符长度以排列组合方式对设定的密码总长度进行分段,获取上述所有排列组合的分段方式的待遍历集合;所述步骤B)、遍历从待遍历集合中取出一个分段方式,分别对每个分段遍历带入解密因子中字符集的字符进行字符变换尝试解密,对不解密的分段恢复初始字符,直至获取密码为止;
上述步骤中,所述字符集为数字字符集、或大写字母字符集、或小写字母字符集、或特殊符号字符集、或字典字符集;所述数字字符集、大写字母字符集、小写字母字符集中包括按不同字符长度遍历排列的字符;
上述步骤中,所述步骤A中的解密因子的字符集由人工手动输入或由算法先读取所有字符,自动根据字符类型分类后组成。
上述步骤中,所述解密因子为特定字符串,所述特定字符串由设定产生。
本发明还提供了一种复杂密码快速遍历算法装置,它包括,
密码分段模块,用于根据至少两种解密因子的字符长度以排列组合方式对设定的密码总长度进行分段,生成上述所有排列组合的分段方式的待遍历集合;
解密模块,用于从所述待遍历集合中取出一个分段方式,每次将一个分段带入解密因子尝试解密,对不解密的分段恢复初始字符,直至获取密码为止;
上述中,所述解密因子为字符集,字符集中字符的类型相同;所述密码分段模块,用于根据至少两种解密因子中字符集的字符长度以排列组合方式对设定的密码总长度进行分段,生成上述所有排列组合的分段方式的待遍历集合;所述解密模块,用于从所述待遍历集合中取出一个分段方式,分别对每个分段遍历带入解密因子中字符集的字符进行字符变换尝试解密,对不解密的分段恢复初始字符,直至获取密码为止;
上述中,所述字符集为数字字符集、或大写字母字符集、或小写字母字符集、或特殊符号字符集、或字典字符集;所述数字字符集、大写字母字符集、小写字母字符集中包括按不同字符长度遍历排列的字符;
上述中,所述密码分段模块中包括字符集生成单元,所述字符集生成单元用于获取人工手动输入字符并生成字符集,所述字符集生成单元还用于获取所有字符,根据字符类型分类并生成字符集;
上述中,所述解密因子为特定字符串,所述特定字符串由设定产生。
相比于常见的解密算法,本发明的有益效果在于将待解密密码进行分段,每一段使用相同类型字符集的解密因子或特定字符串,其中,根据分析采用前者组合的密码占实际密码的95%以上,因此可极大减少密码遍历空间,使得采用本算法后,在相同设备和相同的时间的情况下,可以解析长度更长、字符集更复杂的密码。同时,本算法引入固定单词作为完整单元进行遍历,有效利用已知的密码信息,成倍提高解析效率。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合详予说明。
本发明涉及一种复杂密码快速遍历算法,它包括步骤:
A)、根据至少两种解密因子的字符长度以排列组合方式对设定的密码总长度进行分段,获取上述所有排列组合的分段方式的待遍历集合;
本步骤中,需要根据设定的密码总长度对不符合密码长度要求的分段组合方式进行过滤,从而增加效率。
B)、从待遍历集合中取出一个分段方式,每次将一个分段带入解密因子尝试解密,对不解密的分段恢复初始字符,直至获取密码为止。
可见,本发明提供的密码算法对传统密码遍历算法进行改进,专门解析具有分段特征的密码,即密码中由某几段组成,每一段使用相同类型的解密因子,而这种类型的密码占95%以上。改进后的算法,可以极大减少密码遍历空间。
进一步,上述的解密因子可为字符集,在一个解密因子的字符集中包括同一类型组合形成的字符。例如,解密因子可为数字字符集、大写字母字符集、小写字母字符集、特殊符号字符集或者字典字符集等,那么多个解密因子即可以更多的排列组合方式在设定的密码总长度下对待解密密码进行对应数字、大写字母、小写字母、特殊符号字符的分段。本算法进一步的对应字符集的算法具体为:
A)、根据至少两种解密因子中字符集的字符长度以排列组合方式对设定的密码总长度进行分段,获取上述所有排列组合的分段方式的待遍历集合;
本步骤中的至少两种解密因子指的区别取决于解密因子内容,即解密因子的字符集的类型不同即属于不同种类的解密因子。
B)、遍历从待遍历集合中取出一个分段方式,分别对每个分段遍历带入解密因子中字符集的字符进行字符变换尝试解密,对不解密的分段恢复初始字符,直至获取密码为止。
较佳的,此处解密从密码最低位的分段开始变换字符,如果低位分段的解密因子中字符集的所有字符都遍历完成,则低位恢复初始字符,高一位分段开始遍历字符变换,直到最高位的分段的所有字符都遍历完成。
进一步的,上述算法可支持人工手动分段及自动分段两种方式,可灵活切换使用。
其中,自动分段是算法首先读取在指定文件中的所有字符,然后自动根据字符类型将其分类后组成对应的字符集,然后将其导入算法中后执行上述步骤A。
而人工手动分段,则是将人工制定的分类好的每一段字符集导入算法,然后执行上述步骤A。
借由本发明方法,以密码HelloLiuHello88为例,采用传统密码遍历算法需要遍历15位的大小写加数字的字符集,它的密码空间为6215=768909704948766668552634368个密码,以目前的设备性能、即使简单的加密算法,也需要花费上亿年的解析时间。采用本发明的分段式密码遍历算法,其密码空间仅为757193143529996160个密码,为传统算法密码空间的9.85e-10,解析时间可以缩短为几天,使这种复杂密码的解析成为可能。
此外,本发明方法还可进一步结合特定字符串完成解密,此处的特定字符串是指在解密前,有人为设定记录的。因为有些解密情况,可能存在在解密前就已知密码中的某些固定单词,则通过将这些固定单词导入算法势必会大大降低解密过程。具体方法是把特定字符串作为一个解密因子导入算法中,同样根据其字符长度结合其他解密因子对密码进行分段,然后完成解密。
根据需要,上述特定字符串还可在解密过程中当作一个特殊的字符添加任意段的解密因子的字符集中。例如,一个由3位数字、3位小写及特定字符串“Hello”组成的密码,解密时特定字符串用特殊符号‘*’来代替加入到每段的字符集中,则遍历规则如下:
000aaa->100aaa->200aaa->...->900aaa->*00aaa->010aaa->110aaa->...->*10aaa->...->***aaa->000baa->...->***zaa->000*aa->...>******结束;
可见,本算法通过引入特定字符串作为完整单元进行遍历,有效利用已知的密码信息,成倍提高解析效率。
具体实施例:
以需要解密一个6位密码xxxxxx为例,实际密码为123abc,即由字母和数字组成,配备了小写字符集和数字字符集两个字符集,设定的密码总长度为6位,解密步骤如下:
A)、根据至小写字符集和数字字符集两种解密因子的字符长度以排列组合方式对设定的密码总长度将xxxxxx分为两段,一段为小写字母,一段为数字,自动将小写字母段的遍历位数定为1-5位,数字段的遍历位数定为1-5位;然后根据分段方式、位数排列组合得到待遍历集合,包括1位字母+5位数字、1位数字+5位字母、2位字母+4位数字、2位数字+4位字母等10种排列组合方式。
B)、取遍历集合中的一种未遍历的组合方式,如1位字母+5位数字,按照遍历规则构造出a00000、b00000…z99999等密码,并将密码尝试解密,验证正确性。如果均不正确,取下一组未遍历的组合方式,构造下一组的所有密码并尝试解密。直到遍历3位数字+3位字母的组合时,该组合构造出123abc密码,解密成功后结束遍历。
本发明还涉及一种复杂密码快速遍历算法装置,它包括,
密码分段模块,用于根据至少两种解密因子的字符长度以排列组合方式对设定的密码总长度进行分段,生成上述所有排列组合的分段方式的待遍历集合;
解密模块,用于从所述待遍历集合中取出一个分段方式,每次将一个分段带入解密因子尝试解密,对不解密的分段恢复初始字符,直至获取密码为止。
同理,上述解密因子可进一步为字符集,字符集中字符的类型相同。作为实施例,字符集可为数字字符集、或大写字母字符集、或小写字母字符集、或特殊符号字符集、或字典字符集;所述数字字符集、大写字母字符集、小写字母字符集中包括按不同字符长度遍历排列的字符。
对应解密因子为字符集情况,算法装置进一步为:
密码分段模块,用于根据至少两种解密因子中字符集的字符长度以排列组合方式对设定的密码总长度进行分段,生成上述所有排列组合的分段方式的待遍历集合;
解密模块,用于从所述待遍历集合中取出一个分段方式,分别对每个分段遍历带入解密因子中字符集的字符进行字符变换尝试解密,对不解密的分段恢复初始字符,直至获取密码为止。
所述密码分段模块中包括字符集生成单元,所述字符集生成单元用于获取人工手动输入字符并生成字符集,所述字符集生成单元还用于获取所有字符,根据字符类型分类并生成字符集。
所述解密因子为特定字符串,所述特定字符串由设定产生。
综上,本发明方案可针对已知密码中包含的某些词组、密码包含复杂字符集的情况,减少密码空间的效果更为明显,可以使密码空间减少几个数量级甚至十几个数量级,使更多更复杂更长的密码能够成功恢复。使得在相同设备和相同的时间的情况下,可以解析长度更长、字符集更复杂的密码变得可能。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种复杂密码快速遍历算法,其特征在于:它包括步骤,
A)、根据至少两种解密因子的字符长度以排列组合方式对设定的密码总长度进行分段,获取上述所有排列组合的分段方式的待遍历集合;
B)、遍历的从待遍历集合中取出一个分段方式,每次将一个分段带入解密因子尝试解密,对不解密的分段恢复初始字符,直至获取密码为止。
2.如权利要求1所述的复杂密码快速遍历算法,其特征在于:所述解密因子为字符集,字符集中字符的类型相同;
所述步骤A)、根据至少两种解密因子中字符集的字符长度以排列组合方式对设定的密码总长度进行分段,获取上述所有排列组合的分段方式的待遍历集合;
所述步骤B)、遍历从待遍历集合中取出一个分段方式,分别对每个分段遍历带入解密因子中字符集的字符进行字符变换尝试解密,对不解密的分段恢复初始字符,直至获取密码为止。
3.如权利要求2所述的复杂密码快速遍历算法,其特征在于:所述字符集为数字字符集、或大写字母字符集、或小写字母字符集、或特殊符号字符集、或字典字符集;所述数字字符集、大写字母字符集、小写字母字符集中包括按不同字符长度遍历排列的字符。
4.如权利要求2所述的复杂密码快速遍历算法,其特征在于:所述步骤A中的解密因子的字符集由人工手动输入或由算法先读取所有字符,自动根据字符类型分类后组成。
5.如权利要求1-4任意一项所述的复杂密码快速遍历算法,其特征在于:所述解密因子为特定字符串,所述特定字符串由设定产生。
6.一种复杂密码快速遍历算法装置,其特征在于:它包括,
密码分段模块,用于根据至少两种解密因子的字符长度以排列组合方式对设定的密码总长度进行分段,生成上述所有排列组合的分段方式的待遍历集合;
解密模块,用于从所述待遍历集合中取出一个分段方式,每次将一个分段带入解密因子尝试解密,对不解密的分段恢复初始字符,直至获取密码为止。
7.如权利要求6所述的复杂密码快速遍历算法装置,其特征在于:所述解密因子为字符集,字符集中字符的类型相同;
所述密码分段模块,用于根据至少两种解密因子中字符集的字符长度以排列组合方式对设定的密码总长度进行分段,生成上述所有排列组合的分段方式的待遍历集合;
所述解密模块,用于从所述待遍历集合中取出一个分段方式,分别对每个分段遍历带入解密因子中字符集的字符进行字符变换尝试解密,对不解密的分段恢复初始字符,直至获取密码为止。
8.如权利要求7所述的复杂密码快速遍历算法装置,其特征在于:所述字符集为数字字符集、或大写字母字符集、或小写字母字符集、或特殊符号字符集、或字典字符集;所述数字字符集、大写字母字符集、小写字母字符集中包括按不同字符长度遍历排列的字符。
9.如权利要求7所述的复杂密码快速遍历算法装置,其特征在于:所述密码分段模块中包括字符集生成单元,所述字符集生成单元用于获取人工手动输入字符并生成字符集,所述字符集生成单元还用于获取所有字符,根据字符类型分类并生成字符集。
10.如权利要求6-9任意一项所述的复杂密码快速遍历算法装置,其特征在于:所述解密因子为特定字符串,所述特定字符串由设定产生。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210521641.2A CN102983967B (zh) | 2012-12-06 | 2012-12-06 | 复杂密码快速遍历算法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210521641.2A CN102983967B (zh) | 2012-12-06 | 2012-12-06 | 复杂密码快速遍历算法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102983967A true CN102983967A (zh) | 2013-03-20 |
CN102983967B CN102983967B (zh) | 2015-09-02 |
Family
ID=47857730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210521641.2A Active CN102983967B (zh) | 2012-12-06 | 2012-12-06 | 复杂密码快速遍历算法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102983967B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701590A (zh) * | 2014-01-07 | 2014-04-02 | 厦门市美亚柏科信息股份有限公司 | 一种基于字典的复杂密码遍历方法及装置 |
CN104717058A (zh) * | 2015-02-10 | 2015-06-17 | 厦门市美亚柏科信息股份有限公司 | 密码遍历方法和装置 |
CN105262584A (zh) * | 2015-09-08 | 2016-01-20 | 厦门市美亚柏科信息股份有限公司 | 分布式密码恢复方法和*** |
CN106909852A (zh) * | 2017-03-06 | 2017-06-30 | 广东工业大学 | 基于三重md5加密算法的智能合约加密方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6412069B1 (en) * | 1997-09-16 | 2002-06-25 | Safenet, Inc. | Extending crytographic services to the kernel space of a computer operating system |
CN1694394A (zh) * | 2005-04-14 | 2005-11-09 | 上海交通大学 | 文件口令的破解方法 |
CN1983924A (zh) * | 2006-05-30 | 2007-06-20 | 华为技术有限公司 | 一种解密密码切换方法、解密装置及终端设备 |
CN101290569A (zh) * | 2008-05-06 | 2008-10-22 | 国网南京自动化研究院 | 一种采用多密码芯片并行数据处理的方法 |
CN101594227A (zh) * | 2008-05-30 | 2009-12-02 | 华为技术有限公司 | 数据加密和解密的方法、装置及通信*** |
CN102045159A (zh) * | 2010-12-30 | 2011-05-04 | 北京锐安科技有限公司 | 一种解密处理方法及其设备 |
CN102594548A (zh) * | 2012-03-22 | 2012-07-18 | 山东泰信电子有限公司 | 一种实现数据分段加密、解密的方法 |
-
2012
- 2012-12-06 CN CN201210521641.2A patent/CN102983967B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6412069B1 (en) * | 1997-09-16 | 2002-06-25 | Safenet, Inc. | Extending crytographic services to the kernel space of a computer operating system |
CN1694394A (zh) * | 2005-04-14 | 2005-11-09 | 上海交通大学 | 文件口令的破解方法 |
CN1983924A (zh) * | 2006-05-30 | 2007-06-20 | 华为技术有限公司 | 一种解密密码切换方法、解密装置及终端设备 |
CN101290569A (zh) * | 2008-05-06 | 2008-10-22 | 国网南京自动化研究院 | 一种采用多密码芯片并行数据处理的方法 |
CN101594227A (zh) * | 2008-05-30 | 2009-12-02 | 华为技术有限公司 | 数据加密和解密的方法、装置及通信*** |
CN102045159A (zh) * | 2010-12-30 | 2011-05-04 | 北京锐安科技有限公司 | 一种解密处理方法及其设备 |
CN102594548A (zh) * | 2012-03-22 | 2012-07-18 | 山东泰信电子有限公司 | 一种实现数据分段加密、解密的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701590A (zh) * | 2014-01-07 | 2014-04-02 | 厦门市美亚柏科信息股份有限公司 | 一种基于字典的复杂密码遍历方法及装置 |
CN103701590B (zh) * | 2014-01-07 | 2017-02-08 | 厦门市美亚柏科信息股份有限公司 | 一种基于字典的复杂密码遍历方法及装置 |
CN104717058A (zh) * | 2015-02-10 | 2015-06-17 | 厦门市美亚柏科信息股份有限公司 | 密码遍历方法和装置 |
CN104717058B (zh) * | 2015-02-10 | 2018-03-20 | 厦门市美亚柏科信息股份有限公司 | 密码遍历方法和装置 |
CN105262584A (zh) * | 2015-09-08 | 2016-01-20 | 厦门市美亚柏科信息股份有限公司 | 分布式密码恢复方法和*** |
CN105262584B (zh) * | 2015-09-08 | 2018-09-07 | 厦门市美亚柏科信息股份有限公司 | 分布式密码恢复方法和*** |
CN106909852A (zh) * | 2017-03-06 | 2017-06-30 | 广东工业大学 | 基于三重md5加密算法的智能合约加密方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102983967B (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109445834B (zh) | 基于抽象语法树的程序代码相似性快速比较方法 | |
US9524393B2 (en) | System and methods for analyzing and modifying passwords | |
CN102983967A (zh) | 复杂密码快速遍历算法及装置 | |
CN109831422A (zh) | 一种基于端到端序列网络的加密流量分类方法 | |
CN107092659A (zh) | 一种通用的树形结构存储解析方法 | |
CN112685738B (zh) | 一种基于多级投票机制的恶意混淆脚本静态检测方法 | |
CN109711121A (zh) | 基于马尔可夫模型和哈夫曼编码的文本隐写方法及装置 | |
CN105656891A (zh) | 一种弱口令核查方法及装置 | |
Gabrys et al. | Codes in the Damerau distance for DNA storage | |
CN1235108C (zh) | 一种计算机病毒检测和识别方法 | |
Alimpiev et al. | The video information resources integrity concept by using binomial slots | |
CN106656459A (zh) | 一种针对sm3‑hmac的侧信道能量分析方法和装置 | |
CN103780343A (zh) | Td-lte***中sib1译码中的phich资源盲检测装置及方法 | |
Wang et al. | Cryptanalysis and improvement on a parallel keyed hash function based on chaotic neural network | |
CN110266470A (zh) | 新型分组密码算***函数的构造方式 | |
CN107220333A (zh) | 一种基于Sunday算法的字符搜索方法 | |
CN112019354B (zh) | 一种基于生成式对抗网络的口令遍历装置及方法 | |
WO2018110997A1 (ko) | 네트워크 침입 탐지 규칙을 생성하는 방법 및 장치 | |
CN101420438B (zh) | 一种基于序列联配的三阶段渐进式网络攻击特征提取方法 | |
Krekan et al. | Statistical models based password candidates generation for specified language used in wireless LAN security audit | |
Xu et al. | Research on PowerShell Obfuscation Technology Based on Abstract Syntax Tree Transformation | |
CN112000970B (zh) | 一种基于部件关联图的文本无载体隐写方法及*** | |
CN104318461A (zh) | 一种基于密码机和USBKey的防伪码生成与验证方法 | |
CN106851699A (zh) | 一种备选小区列表维护方法及***以及移动终端 | |
Chen et al. | An Improved Automatic Search Method for Differential Trails in TEA Cipher. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |