[发明专利]哈希值密码的恢复方法和装置无效
申请号: | 201310326225.1 | 申请日: | 2013-07-31 |
公开(公告)号: | CN103400072A | 公开(公告)日: | 2013-11-20 |
发明(设计)人: | 柳秀霞;汤伟宾;王海滨 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
主分类号: | G06F21/44 | 分类号: | G06F21/44;G06F17/30 |
代理公司: | 北京恒都律师事务所 11395 | 代理人: | 邸建凯 |
地址: | 361008 福建省厦门*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 哈希值 密码 恢复 方法 装置 | ||
1.一种哈希值密码的恢复方法,其特征在于,包括:
配置系统初始化信息;
利用CPU和GPU分别生成彩虹表并按顺序存储于彩虹表文件中;
在彩虹表文件中的任一彩虹表与预设彩虹表的参数相匹配的情况下,从哈希值文件中获取一个待恢复的哈希值;
判断能否利用GPU对该待恢复的哈希值进行密码恢复;
如果判断结果为是,则利用GPU对该待恢复的哈希值进行密码恢复,直至恢复完成哈希值文件中所有待恢复的哈希值的密码;
其中,所述系统初始化信息包括哈希算法类型,字符集,字符集文件,彩虹链的长度,每个彩虹表的彩虹链的个数,需生成的彩虹表的个数,初始彩虹表表号索引,密码口令的最小长度和最大长度,生成的彩虹表存储路径,待恢复的哈希值文件和恢复结果文件。
2.如权利要求1所述的方法,其特征在于:
利用CPU生成彩虹表的步骤,具体包括:
随机生成一条彩虹链链首值T1;
对所述T1进行哈希运算得到HT1;
对所述HT1进行截短函数运算得到RHT1;
将RHT1重复进行预定次数的哈希运算和截短函数运算,得到彩虹链链尾值;
根据所述彩虹链链首值和所述彩虹链链尾值形成彩虹链并保存于彩虹表;
利用GPU生成彩虹表的步骤,具体包括:
根据GPU的计算能力设置执行彩虹链生成核函数需分配的块数和块中的线程数;
随机生成多个彩虹链链首值并保存于GPU显存中;
调度彩虹链生成核函数的线程,对所述多个彩虹链链首值并行进行预定次数的哈希运算和截短函数运算,得到与其对应的彩虹链链尾值;
根据所述多个彩虹链链首值及其对应的彩虹链链尾值分别形成彩虹链并保存于彩虹表。
3.如权利要求1所述的方法,其特征在于,所述利用GPU对该待恢复的哈希值进行密码恢复的步骤,具体包括:
根据GPU的计算能力设置执行预计算核函数和在线分析核函数各自需分配的块数和块中的线程数;
将所述待恢复的哈希值和各猜测位置相结合进行截短函数运算后得到对应的各链首节点值Spos(P);
调度预计算核函数的线程,对所述各Spos(P)并行进行从其对应的猜测位置后移一个节点至彩虹链链尾位置前移两个节点的彩虹链节点值的还原计算,得到所述各Spos(P)对应的链尾节点值Epos(P);
根据二分查找法在彩虹表中查找链尾节点值与所述各Epos(P)相同的彩虹链,并获取该些彩虹链的各链首节点值Sj(P)及根据各Epos(P)、各Sj(P)和猜测位置确定的在彩虹链上的各相应位置值Ij(P);
调度在线分析阶段核函数的线程,对所述各Sj(P)并行进行从彩虹链链首位置至Ij(P)前移一个节点的彩虹链节点值的还原计算,得到所述各Sj(P)对应的链尾节点值Ej(P);
任取一个Ej(P)进行哈希运算得到第一预判定哈希值;
如果所述第一预判定哈希值与待恢复哈希值相同,则密码恢复成功,将与所述第一预判定哈希值对应的密码进行存储;
其中,猜测位置为从彩虹链链首位置至彩虹链链尾位置前移两个节点之间的位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310326225.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:电子证据保全方法、保全装置及保全系统
- 下一篇:一种聚合物电池