1.一種基于大數(shù)據(jù)彩虹表的解密方法,其特征在于,包括:
將彩虹表任務(wù)分配給n個(gè)GPU計(jì)算節(jié)點(diǎn),其中,所述n為大于1的整數(shù);
每個(gè)GPU計(jì)算節(jié)點(diǎn)根據(jù)分配的彩虹表任務(wù)生成一個(gè)彩虹表;
將生成的彩虹表中的哈希鏈的鏈尾節(jié)點(diǎn)進(jìn)行索引分組,對分組內(nèi)的鏈尾節(jié)點(diǎn)進(jìn)行排序;
在經(jīng)索引分組和排序的彩虹表內(nèi),對待解密的密文先執(zhí)行索引查找然后執(zhí)行二分查找,以獲得相應(yīng)的明文完成解密。
2.根據(jù)權(quán)利要求1所述的基于大數(shù)據(jù)彩虹表的解密方法,其特征在于,將彩虹表任務(wù)分配給n個(gè)GPU計(jì)算節(jié)點(diǎn)包括:
根據(jù)明文的取值范圍、彩虹表的查找成功率來設(shè)置所述彩虹表任務(wù)的大小,所述彩虹表任務(wù)包括多個(gè)哈希鏈任務(wù),每個(gè)哈希鏈任務(wù)要生成一個(gè)哈希鏈;
將所述彩虹表任務(wù)按照哈希鏈任務(wù)的數(shù)量分配給所述n個(gè)GPU計(jì)算節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求2所述的基于大數(shù)據(jù)彩虹表的解密方法,其特征在于,在哈希鏈任務(wù)的數(shù)量為m的情況下,m/n=x+y,其中,x為m除以n得到的商,y為余數(shù),m為大于1的整數(shù)、x為大于0的整數(shù),y為整數(shù),將所述彩虹表任務(wù)分配給所述n個(gè)GPU計(jì)算節(jié)點(diǎn)包括:
先均為所述n個(gè)GPU計(jì)算節(jié)點(diǎn)中的每個(gè)GPU計(jì)算節(jié)點(diǎn)分配x個(gè)哈希鏈任務(wù);
然后將剩余的y個(gè)哈希鏈任務(wù)順序地再分配給所述n個(gè)GPU計(jì)算節(jié)點(diǎn)中的前y個(gè)GPU計(jì)算節(jié)點(diǎn),為所述前y個(gè)GPU計(jì)算節(jié)點(diǎn)中的每個(gè)GPU計(jì)算節(jié)點(diǎn)分配一個(gè)哈希鏈任務(wù)。
4.根據(jù)權(quán)利要求1所述的基于大數(shù)據(jù)彩虹表的解密方法,其特征在于,將生成的彩虹表中的哈希鏈的鏈尾節(jié)點(diǎn)進(jìn)行索引分組,對分組內(nèi)的鏈尾節(jié)點(diǎn)進(jìn)行排序包括:
根據(jù)哈希鏈的鏈尾節(jié)點(diǎn)的二進(jìn)制數(shù)值的大小范圍來對生成的彩虹表進(jìn)行索引分組;
對每個(gè)分組內(nèi)的哈希鏈的鏈尾節(jié)點(diǎn)按照二進(jìn)制數(shù)值的大小順序進(jìn)行排序。
5.根據(jù)權(quán)利要求1所述的基于大數(shù)據(jù)彩虹表的解密方法,其特征在于,
所述待解密的密文通過LM、MD4、NTLSHASH、MD5或SHA1算法加密,與所述待解密的密文相對應(yīng)的密碼為1-12位。
6.一種基于大數(shù)據(jù)彩虹表的解密裝置,其特征在于,包括:
n個(gè)GPU計(jì)算節(jié)點(diǎn),被分配彩虹表任務(wù),每個(gè)GPU計(jì)算節(jié)點(diǎn)生成一個(gè)彩虹表,n為大于1的整數(shù);
彩虹表索引排序單元,用于對所述n個(gè)GPU計(jì)算節(jié)點(diǎn)生成的彩虹表中的哈希鏈的鏈尾節(jié)點(diǎn)進(jìn)行索引分組,對分組內(nèi)的鏈尾節(jié)點(diǎn)進(jìn)行排序;
查找單元,用于在經(jīng)索引分組和排序的彩虹表內(nèi),對待解密的密文先執(zhí)行索引查找然后執(zhí)行二分查找,以獲得相應(yīng)的明文完成解密。
7.根據(jù)權(quán)利要求6所述的基于大數(shù)據(jù)彩虹表的解密裝置,其特征在于,還包括文件系統(tǒng),用于向所述n個(gè)GPU計(jì)算節(jié)點(diǎn)分配彩虹表任務(wù),存儲所述n個(gè)GPU計(jì)算節(jié)點(diǎn)生成的彩虹表。
8.根據(jù)權(quán)利要求7所述的基于大數(shù)據(jù)彩虹表的解密裝置,其特征在于,所述文件系統(tǒng)包括:
彩虹表生成日志記錄單元,用于為各個(gè)GPU計(jì)算節(jié)點(diǎn)設(shè)置彩虹表生成數(shù)據(jù)參數(shù),寫入彩虹表生成標(biāo)記,所述彩虹表生成標(biāo)記用于指示彩虹表生成是否成功;
日志檢查單元,用于檢查所述彩虹表生成標(biāo)記,如果所述彩虹表生成標(biāo)記指示彩虹表生成不成功,調(diào)用相應(yīng)的GPU計(jì)算節(jié)點(diǎn)繼續(xù)生成彩虹表。
9.根據(jù)權(quán)利要求7所述的基于大數(shù)據(jù)彩虹表的解密裝置,其特征在于,所述文件系統(tǒng)還包括:
GPU配置單元,用于根據(jù)明文的取值范圍、彩虹表的查找成功率為各個(gè)GPU計(jì)算節(jié)點(diǎn)設(shè)置計(jì)算參數(shù)、數(shù)據(jù)傳輸和生成算法。
10.根據(jù)權(quán)利要求6所述的基于大數(shù)據(jù)彩虹表的解密裝置,其特征在于,還包括存儲陣列,用于儲存經(jīng)索引分組和排序的彩虹表。