[发明专利]哈希值密码的恢复方法和装置无效
申请号: | 201310326225.1 | 申请日: | 2013-07-31 |
公开(公告)号: | CN103400072A | 公开(公告)日: | 2013-11-20 |
发明(设计)人: | 柳秀霞;汤伟宾;王海滨 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
主分类号: | G06F21/44 | 分类号: | G06F21/44;G06F17/30 |
代理公司: | 北京恒都律师事务所 11395 | 代理人: | 邸建凯 |
地址: | 361008 福建省厦门*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 哈希值 密码 恢复 方法 装置 | ||
技术领域
本发明属于密码恢复领域,特别涉及一种哈希值密码的恢复方法和装置。
背景技术
哈希(Hash)算法,即散列函数,是一种单向密码体制,即是一种从明文到密文的不可逆映射,只有加密过程,没有解密过程。同时,哈希算法可以将任意长度的输入经过变化以后得到固定长度的输出。哈希算法的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。
目前,常见的哈希算法主要包括MDx系列和SHA系列,其广泛应用于信息加密、数字签名、文件校验、鉴权协议等方面,相应地,对破解哈希算法的需求也越来越高。
破解哈希算法,即恢复哈希值的密码,其主要任务是:对于给出的一个哈希值y,反算出一个x来满足h(x)=y。理论上有以下两种极端的方式:
第一种,暴力破解法,即穷尽搜索X中的所有元素,验证是否存在x(x∈X)使得h(x)=y,这样最多需要对h进行|X|次赋值。
第二种,查表法,即将所有x(x∈X) 及其哈希值y进行保存,当已知某个y时,在存储空间中搜索y对应的x。
上述两种方式在理论上都是可以的,但第一种方式需要海量的计算时间,第二种方式需要海量的存储空间,在实际应用中,第一种方式的时间复杂度和第二种方式的空间复杂度都是人类无法接受的范围。
基于此,提出了彩虹表算法,它是结合了暴力破解法和查表法并在这两者之间取得一个折中,用人类可以承受的时间范围和存储空间范围来恢复哈希值的密码,其核心思想是将明文计算得到的哈希值由一个截短函数(R函数)映射回到明文空间,进而可交替地计算明文和哈希值,以减少恢复哈希值密码的时间。
利用彩虹表算法对哈希值的密码进行恢复,虽能够分别获得比暴力破解法及查表法高得多的时间效率和空间效率,但对于恢复密码较长的哈希值,其预计算阶段及在线分析阶段需要大量的彩虹链计算,在采用CPU的串行计算方式的情况下,需要的时间仍然是不能承受的范围。因此,由于CPU计算能力的限制,很难做到将彩虹表算法应用于密码较长的哈希值的恢复。
图形处理器(Graphic Processing Unit,GPU)作为近年来迅速发展的通用并行计算平台,其并行线程执行模型和线程同步技术专用于解决大规模的并行计算,使得GPU在大多数数据处理型应用上的性能优于CPU。
但是,目前还没有将GPU与彩虹表算法相结合用来恢复哈希值密码的方案。
发明内容
本发明所要解决的技术问题是提供一种哈希值密码的恢复方法和装置,解决由于CPU计算能力的限制,无法用彩虹表算法恢复密码较长的哈希值的问题。
本发明一方面提供了一种哈希值密码的恢复方法,包括:
配置系统初始化信息;
利用CPU和GPU分别生成彩虹表并按顺序存储于彩虹表文件中;
在彩虹表文件中的任一彩虹表与预设彩虹表的参数相匹配的情况下,从哈希值文件中获取一个待恢复的哈希值;
判断能否利用GPU对该待恢复的哈希值进行密码恢复;
如果判断结果为是,则利用GPU对该待恢复的哈希值进行密码恢复,直至恢复完成哈希值文件中所有待恢复的哈希值的密码;
其中,所述系统初始化信息包括哈希算法类型,字符集,字符集文件,彩虹链的长度,每个彩虹表的彩虹链的个数,需生成的彩虹表的个数,初始彩虹表表号索引,密码口令的最小长度和最大长度,生成的彩虹表存储路径,待恢复的哈希值文件和恢复结果文件。
进一步的,利用CPU生成彩虹表的步骤,具体包括:
随机生成一条彩虹链链首值T1;
对所述T1进行哈希运算得到HT1;
对所述HT1进行截短函数运算得到RHT1;
将RHT1重复进行预定次数的哈希运算和截短函数运算,得到彩虹链链尾值;
根据所述彩虹链链首值和所述彩虹链链尾值形成彩虹链并保存于彩虹表。
进一步的,利用GPU生成彩虹表的步骤,具体包括:
根据GPU的计算能力设置执行彩虹链生成核函数需分配的块数和块中的线程数;
随机生成多个彩虹链链首值并保存于GPU显存中;
调度彩虹链生成核函数的线程,对所述多个彩虹链链首值并行进行预定次数的哈希运算和截短函数运算,得到与其对应的彩虹链链尾值;
根据所述多个彩虹链链首值及其对应的彩虹链链尾值分别形成彩虹链并保存于彩虹表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310326225.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电子证据保全方法、保全装置及保全系统
- 下一篇:一种聚合物电池