当前位置: 首页 > 专利查询>清华大学专利>正文

一种基于Spark平台的口令哈希值恢复方法和装置制造方法及图纸

技术编号:13680600 阅读:48 留言:0更新日期:2016-09-08 08:44
本发明专利技术公开了一种基于Spark平台的口令哈希值恢复方法和装置,其设计方法包括口令哈希表到彩虹表数据生成步骤和彩虹表解密步骤,记彩虹链链首节点值为SV(Start Value),链尾节点值为EV(End Value),本发明专利技术利用Spark平台的对大规模数据的处理能力,用map函数高效地计算出SV对应的EV,生成彩虹链保存在HDFS中,完成彩虹表数据的生成,利用filter函数找到与待解密的密文对应的所有SV,再调用foreach函数根据每个SV生成完整的彩虹链,对密文进行解密。

【技术实现步骤摘要】

本专利技术属于网络信息安全
与密码学中的密码逆向恢复
,特别涉及一种基于Spark平台的口令哈希值恢复方法和装置
技术介绍
为了保证数据信息安全属性中的不可篡改性,通常不对口令明文进行直接存储,而是对经过哈希运算的口令明文对应的哈希值进行存储。哈希算法,又称散列算法,通过置换和混淆等密码模块将任意长度的明文输入转化为固定长度的哈希值输出,且具有较好的单向性,无法轻易地由输出逆推得到输入,由于哈希函数良好的保密特性和校验功能,因此被广泛用于数字签名、下载校验、口令存储等应用。破解口令哈希值的方法包括暴力穷举法和字典查找法,暴力穷举法对简单的密码和简单的密码系统是可行的,但对于复杂的密码和密码系统,则会产生无穷大的字典,从而需要海量的计算时间;而字典查找法则需要海量的存储空间,解密代价太高。为了减小所需要字典的大小,减少产生和查找字典的时间,现有技术提供一种针对碰撞链的解决方案——彩虹表,其基于Martin Hellman理论(基于内存与时间的权重理论)。彩虹表是暴力穷举和字典查找的折中,通过预计算的方式来减少口令恢复的时间花销,其核心思想是将明文计算得到的哈希值由一个映射函数映射回到明文空间,进而交替地计算明文和哈希值,以减少哈希值密码恢复的时间。Spark是一个开源簇运算框架,最初是由加州大学伯克利分校AMPLab所开发。相对于Hadoop的MapReduce会在运行完工作后将中介数据存放到磁盘中,Spark使用了存储器内运算技术,能在数据尚未写入硬盘时即在存
储器内分析运算。Spark在存储器内运行程序的运算速度能做到比Hadoop MapReduce的运算速度快上100倍,即便是运行程序于硬盘时,Spark也能快上10倍速度。Spark的基础数据结构是RDD,Spark平台将操作封装在transformation和action中,其中transformation是对RDD的转换,action是对RDD进行计算。调用transformation的action中的API,Spark平台会自行进行分布式运算,程序员只需对Spark进行配置,无需考虑分布式是如何进行的,这大大降低了平台使用的门槛。
技术实现思路
为了克服上述现有技术的缺点,本专利技术的目的在于提供一种基于Spark平台的口令哈希值恢复方法和装置,可实现大容量彩虹表的并行生成、彩虹链并行过滤和彩虹链并行解密,使其具有高性能、低门槛等优点。为了实现上述目的,本专利技术采用的技术方案是:利用Spark平台进行分布式并行生成彩虹表和解密。在生成彩虹表的过程中,需要根据所有随机生成的链首节点值生成其对应的链尾节点值。利用Spark平台的map函数,可以对每一个链首节点进行独立操作,也就是说,生成彩虹表是可以高度并行的,这大大提高了生成效率。彩虹表在HDFS中是以分块的方式进行存储的,调用Spark平台的filter函数,可以并行地从各块找出待解密密文对应的彩虹链,这大大加快了文本匹配的速度。利用Spark平台的foreach函数,可以并行地从彩虹链中计算出待解密密文所对应的明文。具体地,本专利技术的技术方案是:一种基于Spark平台的口令哈希值恢复方法,包括彩虹表数据生成步骤和彩虹表解密步骤,其特征在于,设彩虹链的数量为S,长度为L,L>1,则所述彩虹表数据生成步骤包括:步骤A:根据字符集随机生成S个链首节点值SV;步骤B:根据彩虹链的生成规则,计算出链首节点值SV对应的链尾节点值EV;步骤C:将生成的所有(SV,EV)的元组保存在Hadoop分布式文件系统HDFS中;所述彩虹表解密步骤包括:步骤D:从HDFS中读出彩虹表;步骤E:从彩虹表中过滤出密文对应的彩虹链;步骤F:根据得到的彩虹链计算出该密文对应的明文;具体地,所述链尾节点值EV的计算包括以下步骤:步骤B1:对每个链首节点值SV执行L-1次f函数,生成L-2个中间节点和一个链尾节点;f函数包括H函数和R函数两个部分;其中H函数即指定的加密函数,R函数是与当前节点位置i有关的函数(1≤i≤L-1),该函数的定义域和值域需要和H函数相反;本文用Ri表示参数为i的R函数,fi表示H函数和Ri函数的组合;可以令Ri=(X+i)mod N(其中X表示经过H函数处理后的字符串,N表示明文的范围);步骤B2:调用Spark平台的map函数并行地执行步骤B1。所述彩虹表中过滤出密文对应的彩虹链包括以下步骤:步骤E1:猜测待解密密文所对应的明文在彩虹链中的位置i,依次从L-1到1进行尝试;步骤E2:对密文执行Ri函数,将结果保存在中间节点M中;再对M执行fi+1,fi+2,…,fL-1,将结果赋值给M;步骤E3:调用Spark平台的filter函数并行地过滤出所有链尾节点值等于M的彩虹链,若彩虹表中没有链尾节点值等于M的彩虹链,则尝试下一个i;若所有尝试均未找到符合要求的彩虹链,则解密失败;若存在链尾节点值等于M的彩虹链,则进入下一步骤。根据彩虹链计算出明文包括以下步骤:步骤F1:从步骤E中得到该密文对应的明文在彩虹链中的位置i,对该彩虹链的链首节点值SV执行f1,f2,…,fi-1,得到的结果即为该密文对应的明文。本专利技术同时提出一种基于Spark平台的口令哈希值恢复装置,包括Spark配置单元、彩虹表数据生成单元和彩虹表解密单元,其中:Spark配置单元执行该恢复装置的准备工作,对Spark平台提供的计算能力进行配置;彩虹表数据生成单元产生若干条彩虹链的集合,每条彩虹链均通过一系列哈希运算和映射函数迭代计算得到,彩虹表数据生成单元仅需要存储链首节点和链尾节点;彩虹表解密单元对待解密密文所对应的明文所在位置进行猜测,寻找该密文对应的链尾节点;然后在彩虹表中找到链尾节点与该密文对应的链尾节点相同的彩虹链,根据这些彩虹链计算出该密文对应的明文。具体地,所述Spark配置单元的准备工作主要包括:搭建Spark平台,配置Master和Slave,然后再对Worker数量及大小进行配置。所述彩虹表数据生成单元执行功能主要包括:随机生成S个链首节点值,然后根据彩虹链生成规则,计算链首节点值对应的链尾节点值,调用Spark平台的map函数将计算结果存储在Hadoop分布式文件系统HDFS中。所述彩虹表解密单元执行功能主要包括:猜测待解密密文所对应的明文在彩虹链中的位置i,对密文执行Ri函数,将结果保存在中间节点M中;再对M执行fi+1,fi+2,…,fL-1,将结果赋值给M,得到该密文对应的链尾节点;然后调用Spark平台的filter函数从彩虹表中过滤出链尾节点等于密文对应的链尾节点的彩虹链,若彩虹表中没有链尾节点值等于M的彩虹链,则尝试下一个i;若所有尝试均未找到符合要求的彩虹链,则解密失败;若存在链尾节点值等于M的彩虹链,则调用Spark平台的foreach函数对每个彩虹链计算该密文对应的明文。与现有技术相比,本专利技术的有益效果是:利用Spark平台在内存中高效计算及其高度并行的特点,大大地提高了彩虹表的生成和解密的效率。附图说明图1是基于Spark平台口令哈希值恢复方法的流程图。图2是基于Spark平台口令哈希值恢复方法生成彩虹表部分的流程图。图3是基于Spark平台口令哈希值恢复方法对待本文档来自技高网
...

【技术保护点】
一种基于Spark平台的口令哈希值恢复方法,包括彩虹表数据生成步骤和彩虹表解密步骤,其特征在于,设彩虹链的数量为S,长度为L,L>1,则所述彩虹表数据生成步骤包括:步骤A:根据字符集随机生成S个链首节点值SV;步骤B:根据彩虹链的生成规则,计算出链首节点值SV对应的链尾节点值EV;步骤C:将生成的所有(SV,EV)的元组保存在Hadoop分布式文件系统HDFS中;所述彩虹表解密步骤包括:步骤D:从HDFS中读出彩虹表;步骤E:从彩虹表中过滤出密文对应的彩虹链;步骤F:根据得到的彩虹链计算出该密文对应的明文。

【技术特征摘要】
1.一种基于Spark平台的口令哈希值恢复方法,包括彩虹表数据生成步骤和彩虹表解密步骤,其特征在于,设彩虹链的数量为S,长度为L,L>1,则所述彩虹表数据生成步骤包括:步骤A:根据字符集随机生成S个链首节点值SV;步骤B:根据彩虹链的生成规则,计算出链首节点值SV对应的链尾节点值EV;步骤C:将生成的所有(SV,EV)的元组保存在Hadoop分布式文件系统HDFS中;所述彩虹表解密步骤包括:步骤D:从HDFS中读出彩虹表;步骤E:从彩虹表中过滤出密文对应的彩虹链;步骤F:根据得到的彩虹链计算出该密文对应的明文。2.根据权利要求1所述基于Spark平台的口令哈希值恢复方法,其特征在于,所述链尾节点值EV的计算包括以下步骤:步骤B1:对每个链首节点值SV执行L-1次f函数,生成L-2个中间节点和一个链尾节点;f函数包括H函数和R函数两个部分;其中H函数即指定的加密函数,R函数是与当前节点位置i有关的函数(1≤i≤L-1),该函数的定义域和值域需要和H函数相反;用Ri表示参数为i的R函数,fi表示H函数和Ri函数的组合;令Ri=(X+i)mod N,其中X表示经过H函数处理后的字符串,N表示明文的范围;步骤B2:调用Spark平台的map函数并行地执行步骤B1。3.根据权利要求2所述基于Spark平台的口令哈希值恢复方法,其特征在于,所述彩虹表中过滤出密文对应的彩虹链包括以下步骤:步骤E1:猜测待解密密文所对应的明文在彩虹链中的位置i,依次从L-1 到1进行尝试;步骤E2:对密文执行Ri函数,将结果保存在中间节点M中;再对M执行fi+1,fi+2,…,fL-1,将结果赋值给M;步骤E3:调用Spark平台的filter函数并行地过滤出所有链尾节点值等于M的彩虹链,若彩虹表中没有链尾节点值等于M的彩虹链,则尝试下一个i;若所有尝试均未找到符合要求的彩虹链,则解密失败;若存在链尾节点值等于M的彩虹链,则进入下一步骤。4.根据权利要求3所述基于Spark平台的口令哈希值恢复方法,其特征在于,根据彩虹链计算出明文包括以下步骤:步骤F1...

【专利技术属性】
技术研发人员:覃征李志鹏黄凯叶树雄杨晓张任伟徐凯平
申请(专利权)人:清华大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1