[发明专利]基于大数据彩虹表的解密方法和装置在审
申请号: | 201611147432.0 | 申请日: | 2016-12-13 |
公开(公告)号: | CN106712928A | 公开(公告)日: | 2017-05-24 |
发明(设计)人: | 刘清蝉;李翔;黄衍玺;张建伟;杨明;赵永辉;杨昊 | 申请(专利权)人: | 云南电网有限责任公司电力科学研究院 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;H04L9/32 |
代理公司: | 北京弘权知识产权代理事务所(普通合伙)11363 | 代理人: | 逯长明,许伟群 |
地址: | 650217 云南省昆*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 数据 彩虹 解密 方法 装置 | ||
技术领域
本发明涉及密码逆向恢复技术领域,尤其涉及一种基于大数据彩虹表的解密方法和装置。
背景技术
随着互联网的迅猛发展,网络信息安全要求越来越高。为了保证安全,通常采用密码加密和解密技术。互联网中各种协议的加密技术和手段层出不穷,出现了诸如MD5、SHA1、LM、NTLMHASH和MD4等加密算法。对于各种加密算法实施之后获得的密文,采用解密技术来破解密文得到明文。
目前,对于简单的密码和密码系统,密码破解可以采用暴力破解的方式。而对于较复杂的密码和密码系统,例如对于大于8位的密码,暴力破解的计算量非常大。通常采用彩虹表进行破解。彩虹表是一个庞大的针对各种可能的数字、字母组合预先计算好的哈希(hash)值的集合,彩虹表技术就是建立一个源数据与加密数据之间对应的哈希表,这样在获得加密数据后通过比较、查询或者一定的运算,可以快速定位源数据,从而通过彩虹表的构造和查找,能够破解密码获得明文。
然而,彩虹表作为一种压缩的哈希表,对于较长的密码,彩虹表往往占用空间巨大,破解时间很长,在某些情况下,超出单机存储范围,或者即使在集群上能够满足存储但是生成时间太长,无法满足实际需要。另外,由于彩虹表文件很大,在查找破解的过程中,耗时很长效率很低。即使存在某些商用的彩虹表,往往只能破解9位以下的密码,而且破解的准确率只有80%左右,破解时间长,难以满足实际需要。
发明内容
为克服相关技术中存在的问题,本发明提供一种基于大数据彩虹表的解密方法和装置,对于1-12位的数字字母组合的密码,利用得到的加密结果密文,能够通过利用多个GPU并行生成彩虹表中的哈希链,来大大提高彩虹表生成速度,并且对生成的彩虹表进行索引排序,大大缩短解密阶段的彩虹表查找时间,从而大大缩短解密时间。
根据本发明实施例的第一方面,提供一种基于大数据彩虹表的解密方法,包括:将彩虹表任务分配给n个GPU计算节点,其中n为大于1的整数;每个GPU计算节点根据分配的彩虹表任务生成一个彩虹表;将生成的彩虹表中的哈希链的链尾节点进行索引分组,对分组内的链尾节点进行排序;在经索引分组和排序的彩虹表内,对待解密的密文先执行索引查找然后执行二分查找,以获得相应的明文完成解密。
根据本发明的一个实施例,将彩虹表任务分配给n个GPU计算节点包括:根据明文的取值范围、彩虹表的查找成功率来设置彩虹表任务的大小,彩虹表任务包括多个哈希链任务,每个哈希链任务要生成一个哈希链;将所述彩虹表任务按照哈希链任务的数量分配给n个GPU计算节点。
根据本发明的一个实施例,在哈希链任务的数量为m的情况下,m/n=x+y,其中,x为m除以n得到的商,y为余数,m为大于1的整数、x为大于0的整数,y为整数,将所述彩虹表任务分配给n个GPU计算节点包括:先均为n个GPU计算节点中的每个GPU计算节点分配x个哈希链任务;然后将剩余的y个哈希链任务顺序地再分配给n个GPU计算节点中的前y个GPU计算节点,为前y个GPU计算节点中的每个GPU计算节点分配一个哈希链任务。
根据本发明的一个实施例,将生成的彩虹表中的哈希链的链尾节点进行索引分组,对分组内的链尾节点进行排序包括:根据哈希链的链尾节点的二进制数值的大小范围来对彩虹表进行索引分组;对每个分组内的哈希链的链尾节点按照二进制数值的大小顺序进行排序。
根据本发明的一个实施例,待解密的密文通过LM、MD4、NTLSHASH、MD5或SHA1算法加密,与待解密的密文相对应的密码为1-12位。
根据本发明实施例的第二方面,提供一种基于大数据彩虹表的解密装置,包括:n个GPU计算节点,被分配彩虹表任务,每个GPU计算节点生成一个彩虹表,n为大于1的整数;彩虹表索引排序单元,用于对n个GPU计算节点生成的彩虹表中的哈希链的链尾节点进行索引分组,对分组内的链尾节点进行排序;查找单元,用于在经索引分组和排序的彩虹表内,对待解密的密文先执行索引查找然后执行二分查找,以获得相应的明文完成解密。
根据本发明的一个实施例,基于大数据彩虹表的解密装置还包括文件系统,用于向n个GPU计算节点分配彩虹表任务,存储n个GPU计算节点生成的彩虹表。
根据本发明的一个实施例,文件系统包括:彩虹表生成日志记录单元,用于为各个GPU计算节点设置彩虹表生成数据参数,写入彩虹表生成标记,彩虹表生成标记用于指示彩虹表生成是否成功;日志检查单元,用于检查彩虹表生成标记,如果彩虹表生成标记指示彩虹表生成不成功,调用相应的GPU计算节点继续生成彩虹表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于云南电网有限责任公司电力科学研究院,未经云南电网有限责任公司电力科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611147432.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置