欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于大數(shù)據(jù)彩虹表的解密方法和裝置與流程

文檔序號:12067771閱讀:455來源:國知局
基于大數(shù)據(jù)彩虹表的解密方法和裝置與流程

本發(fā)明涉及密碼逆向恢復(fù)技術(shù)領(lǐng)域,尤其涉及一種基于大數(shù)據(jù)彩虹表的解密方法和裝置。



背景技術(shù):

隨著互聯(lián)網(wǎng)的迅猛發(fā)展,網(wǎng)絡(luò)信息安全要求越來越高。為了保證安全,通常采用密碼加密和解密技術(shù)?;ヂ?lián)網(wǎng)中各種協(xié)議的加密技術(shù)和手段層出不窮,出現(xiàn)了諸如MD5、SHA1、LM、NTLMHASH和MD4等加密算法。對于各種加密算法實施之后獲得的密文,采用解密技術(shù)來破解密文得到明文。

目前,對于簡單的密碼和密碼系統(tǒng),密碼破解可以采用暴力破解的方式。而對于較復(fù)雜的密碼和密碼系統(tǒng),例如對于大于8位的密碼,暴力破解的計算量非常大。通常采用彩虹表進行破解。彩虹表是一個龐大的針對各種可能的數(shù)字、字母組合預(yù)先計算好的哈希(hash)值的集合,彩虹表技術(shù)就是建立一個源數(shù)據(jù)與加密數(shù)據(jù)之間對應(yīng)的哈希表,這樣在獲得加密數(shù)據(jù)后通過比較、查詢或者一定的運算,可以快速定位源數(shù)據(jù),從而通過彩虹表的構(gòu)造和查找,能夠破解密碼獲得明文。

然而,彩虹表作為一種壓縮的哈希表,對于較長的密碼,彩虹表往往占用空間巨大,破解時間很長,在某些情況下,超出單機存儲范圍,或者即使在集群上能夠滿足存儲但是生成時間太長,無法滿足實際需要。另外,由于彩虹表文件很大,在查找破解的過程中,耗時很長效率很低。即使存在某些商用的彩虹表,往往只能破解9位以下的密碼,而且破解的準確率只有80%左右,破解時間長,難以滿足實際需要。



技術(shù)實現(xiàn)要素:

為克服相關(guān)技術(shù)中存在的問題,本發(fā)明提供一種基于大數(shù)據(jù)彩虹表的解密方法和裝置,對于1-12位的數(shù)字字母組合的密碼,利用得到的加密結(jié)果密文,能夠通過利用多個GPU并行生成彩虹表中的哈希鏈,來大大提高彩虹表生成速度,并且對生成的彩虹表進行索引排序,大大縮短解密階段的彩虹表查找時間,從而大大縮短解密時間。

根據(jù)本發(fā)明實施例的第一方面,提供一種基于大數(shù)據(jù)彩虹表的解密方法,包括:將彩虹表任務(wù)分配給n個GPU計算節(jié)點,其中n為大于1的整數(shù);每個GPU計算節(jié)點根據(jù)分配的彩虹表任務(wù)生成一個彩虹表;將生成的彩虹表中的哈希鏈的鏈尾節(jié)點進行索引分組,對分組內(nèi)的鏈尾節(jié)點進行排序;在經(jīng)索引分組和排序的彩虹表內(nèi),對待解密的密文先執(zhí)行索引查找然后執(zhí)行二分查找,以獲得相應(yīng)的明文完成解密。

根據(jù)本發(fā)明的一個實施例,將彩虹表任務(wù)分配給n個GPU計算節(jié)點包括:根據(jù)明文的取值范圍、彩虹表的查找成功率來設(shè)置彩虹表任務(wù)的大小,彩虹表任務(wù)包括多個哈希鏈任務(wù),每個哈希鏈任務(wù)要生成一個哈希鏈;將所述彩虹表任務(wù)按照哈希鏈任務(wù)的數(shù)量分配給n個GPU計算節(jié)點。

根據(jù)本發(fā)明的一個實施例,在哈希鏈任務(wù)的數(shù)量為m的情況下,m/n=x+y,其中,x為m除以n得到的商,y為余數(shù),m為大于1的整數(shù)、x為大于0的整數(shù),y為整數(shù),將所述彩虹表任務(wù)分配給n個GPU計算節(jié)點包括:先均為n個GPU計算節(jié)點中的每個GPU計算節(jié)點分配x個哈希鏈任務(wù);然后將剩余的y個哈希鏈任務(wù)順序地再分配給n個GPU計算節(jié)點中的前y個GPU計算節(jié)點,為前y個GPU計算節(jié)點中的每個GPU計算節(jié)點分配一個哈希鏈任務(wù)。

根據(jù)本發(fā)明的一個實施例,將生成的彩虹表中的哈希鏈的鏈尾節(jié)點進行索引分組,對分組內(nèi)的鏈尾節(jié)點進行排序包括:根據(jù)哈希鏈的鏈尾節(jié)點的二進制數(shù)值的大小范圍來對彩虹表進行索引分組;對每個分組內(nèi)的哈希鏈的鏈尾節(jié)點按照二進制數(shù)值的大小順序進行排序。

根據(jù)本發(fā)明的一個實施例,待解密的密文通過LM、MD4、NTLSHASH、MD5或SHA1算法加密,與待解密的密文相對應(yīng)的密碼為1-12位。

根據(jù)本發(fā)明實施例的第二方面,提供一種基于大數(shù)據(jù)彩虹表的解密裝置,包括:n個GPU計算節(jié)點,被分配彩虹表任務(wù),每個GPU計算節(jié)點生成一個彩虹表,n為大于1的整數(shù);彩虹表索引排序單元,用于對n個GPU計算節(jié)點生成的彩虹表中的哈希鏈的鏈尾節(jié)點進行索引分組,對分組內(nèi)的鏈尾節(jié)點進行排序;查找單元,用于在經(jīng)索引分組和排序的彩虹表內(nèi),對待解密的密文先執(zhí)行索引查找然后執(zhí)行二分查找,以獲得相應(yīng)的明文完成解密。

根據(jù)本發(fā)明的一個實施例,基于大數(shù)據(jù)彩虹表的解密裝置還包括文件系統(tǒng),用于向n個GPU計算節(jié)點分配彩虹表任務(wù),存儲n個GPU計算節(jié)點生成的彩虹表。

根據(jù)本發(fā)明的一個實施例,文件系統(tǒng)包括:彩虹表生成日志記錄單元,用于為各個GPU計算節(jié)點設(shè)置彩虹表生成數(shù)據(jù)參數(shù),寫入彩虹表生成標記,彩虹表生成標記用于指示彩虹表生成是否成功;日志檢查單元,用于檢查彩虹表生成標記,如果彩虹表生成標記指示彩虹表生成不成功,調(diào)用相應(yīng)的GPU計算節(jié)點繼續(xù)生成彩虹表。

根據(jù)本發(fā)明的一個實施例,文件系統(tǒng)還包括:GPU配置單元,用于根據(jù)明文的取值范圍、彩虹表的查找成功率為各個GPU計算節(jié)點設(shè)置計算參數(shù)、數(shù)據(jù)傳輸和生成算法。

根據(jù)本發(fā)明的一個實施例,基于大數(shù)據(jù)彩虹表的解密裝置還包括存儲陣列,用于儲存經(jīng)索引分組和排序的彩虹表。

由上可見,本發(fā)明的實施例提供一種基于大數(shù)據(jù)彩虹表的解密方法,包括:將彩虹表任務(wù)分配給n個GPU計算節(jié)點,其中,所述n為大于1的整數(shù);每個GPU計算節(jié)點生成一個彩虹表;將生成的彩虹表中的哈希鏈的鏈尾節(jié)點進行索引分組,對分組內(nèi)的鏈尾節(jié)點進行排序;在經(jīng)索引分組和排序的彩虹表內(nèi),對于待解密的密文先執(zhí)行索引查找然后執(zhí)行二分查找,以獲得相應(yīng)的明文完成解密。本發(fā)明的實施例的基于大數(shù)據(jù)彩虹表的解密方法能夠通過利用多個GPU計算節(jié)點并行生成彩虹表中的哈希鏈,來大大提高彩虹表生成速度,并且通過對生成的彩虹表進行索引排序,來大大縮短解密階段的彩虹表查找時間,從而大大縮短解密時間。

應(yīng)當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。

附圖說明

此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是根據(jù)本發(fā)明的一個實施例提供的基于大數(shù)據(jù)彩虹表的解密方法的流程示意圖;

圖2是根據(jù)本發(fā)明的一個實施例提供的基于大數(shù)據(jù)彩虹表的解密裝置的結(jié)構(gòu)示意圖;

圖3是根據(jù)本發(fā)明的一個實施例提供的文件系統(tǒng)的結(jié)構(gòu)示意框圖。

具體實施方式

這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。

圖1是根據(jù)本發(fā)明的一個實施例提供的基于大數(shù)據(jù)彩虹表的解密方法的流程示意圖。如圖1所示,根據(jù)本發(fā)明的一個實施例的基于大數(shù)據(jù)彩虹表的解密方法包括:步驟S1,將彩虹表任務(wù)分配給n個GPU(Graphic Processing Unit,圖像處理單元)計算節(jié)點,其中,n為大于1的整數(shù);步驟S2,每個GPU計算節(jié)點根據(jù)分配的彩虹表任務(wù)生成一個彩虹表;步驟S3,將生成的彩虹表中的哈希鏈的鏈尾節(jié)點進行索引分組,對分組內(nèi)的鏈尾節(jié)點進行排序;步驟S4,在經(jīng)索引分組和排序的彩虹表內(nèi),對待解密的密文先執(zhí)行索引查找然后執(zhí)行二分查找,以獲得相應(yīng)的明文完成解密。

具體地,上述步驟S1可以包括:根據(jù)明文的取值范圍、彩虹表的查找成功率來設(shè)置彩虹表任務(wù)的大小,彩虹表任務(wù)包括多個哈希鏈任務(wù),每個哈希鏈任務(wù)要生成一個哈希鏈;將彩虹表任務(wù)按照哈希鏈任務(wù)的數(shù)量分配給n個GPU計算節(jié)點。

舉例來說,假設(shè)哈希鏈任務(wù)的數(shù)量為m,m/n=x+y,其中,x為m除以n得到的商,y為余數(shù),m為大于1的整數(shù)、x為大于0的整數(shù),y為整數(shù)。根據(jù)本發(fā)明的一個實施例,上述步驟S1可以包括:先均為n個GPU計算節(jié)點中的每個GPU計算節(jié)點分配x個哈希鏈任務(wù);然后將剩余的y個哈希鏈任務(wù)順序地再分配給n個GPU計算節(jié)點中的前y個GPU計算節(jié)點,為前y個GPU計算節(jié)點中的每個GPU計算節(jié)點分配一個哈希鏈任務(wù)。

具體地,上述步驟S3可以包括:根據(jù)哈希鏈的鏈尾節(jié)點的二進制數(shù)值的大小范圍來對彩虹表進行索引分組;對每個分組內(nèi)的哈希鏈的鏈尾節(jié)點按照二進制數(shù)值的大小順序進行排序。

根據(jù)本發(fā)明的實施例,待解密的密文可以通過LM、MD4、NTLSHASH、MD5或SHA1算法加密,與待解密的密文相對應(yīng)的密碼可以為1-12位。

圖2是根據(jù)本發(fā)明的一個實施例提供的基于大數(shù)據(jù)彩虹表的解密裝置。如圖2所示,該解密裝置為分布式體系結(jié)構(gòu),包括:n個GPU計算節(jié)點,被分配彩虹表任務(wù),每個GPU計算節(jié)點根據(jù)分配的彩虹表任務(wù)生成一個彩虹表,n為大于1的整數(shù);彩虹表索引排序單元10,用于對n個GPU計算節(jié)點生成的彩虹表中的哈希鏈的鏈尾節(jié)點進行索引分組,對分組內(nèi)的鏈尾節(jié)點進行排序;查找單元20,用于在經(jīng)索引分組和排序的彩虹表內(nèi),對待解密的密文先執(zhí)行索引查找然后執(zhí)行二分查找,以獲得相應(yīng)的明文完成解密。

根據(jù)本發(fā)明的一個實施例,如圖2所示,基于大數(shù)據(jù)彩虹表的解密裝置還包括文件系統(tǒng)30,用于向n個GPU計算節(jié)點分配彩虹表任務(wù),存儲n個GPU計算節(jié)點生成的彩虹表。根據(jù)本發(fā)明的一個實施例,文件系統(tǒng)30可以是Hadoop分布式文件系統(tǒng)來儲存生成的彩虹表。

根據(jù)本發(fā)明的一個實施例,如圖3所示,文件系統(tǒng)30可以包括:彩虹表生成日志記錄單元301,用于為各個GPU計算節(jié)點設(shè)置彩虹表生成數(shù)據(jù)參數(shù),寫入彩虹表生成標記,彩虹表生成標記用于指示彩虹表生成是否成功;日志檢查單元302,用于檢查彩虹表生成標記,如果生成標記指示彩虹表生成不成功,調(diào)用相應(yīng)的GPU計算節(jié)點繼續(xù)生成彩虹表。

根據(jù)本發(fā)明的一個實施例,如圖3所示,文件系統(tǒng)30還可以包括:GPU配置單元303,用于根據(jù)明文的取值范圍、彩虹表的查找成功率為各個GPU計算節(jié)點設(shè)置計算參數(shù)、數(shù)據(jù)傳輸和生成算法。

根據(jù)本發(fā)明的一個實施例,基于大數(shù)據(jù)彩虹表的解密裝置還可以包括存儲陣列40,用于儲存經(jīng)索引分組和排序的彩虹表。

根據(jù)本發(fā)明的一個實施例,文件系統(tǒng)30、彩虹表索引排序單元10和查找單元20可以集成在同一系統(tǒng)中。例如,文件系統(tǒng)30、彩虹表索引排序單元10和查找單元20可以集成在同一主機或服務(wù)器中。

鑒于彩虹表的大小將是幾十TB級的,本系統(tǒng)采用磁盤陣列作為存儲設(shè)備來儲存經(jīng)索引分組和排序的彩虹表。

具體地,磁盤陣列可以由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數(shù)據(jù)所產(chǎn)生加成效果提升整個磁盤系統(tǒng)效能。利用這項技術(shù),將數(shù)據(jù)切割成許多區(qū)段,分別存放在各個硬盤上。磁盤陣列還能利用同位檢查(Parity Check)的觀念,在陣列中任意一個硬盤故障時,仍可讀出數(shù)據(jù),在數(shù)據(jù)重構(gòu)時,將數(shù)據(jù)經(jīng)計算后重新置入新硬盤中。磁盤陣列目前支持幾十T以上的存儲容量,能夠滿足系統(tǒng)的需求。

另外,彩虹表的計算預(yù)算量大,單機的平臺下生成時間太長,預(yù)期需要幾十年,本發(fā)明的解密裝置是基于分布式GPU的分布式體系結(jié)構(gòu),利用多個GPU進行分布式計算,多個GPU并行地生成彩虹表,可以克服儲容量和生成速度的限制。

GPU英文全稱Graphic Processing Unit(圖像處理單元),GPU從誕生之日起就以超越摩爾定律的速度發(fā)展,運算能力不斷提升。GPU逐漸從由若干專用的固定功能單元(Fixed Function Unit)組成的專用并行處理器向以通用計算資源為主,固定功能單元為輔的架構(gòu)轉(zhuǎn)變。

一般而言適合GPU運算的適合運算密集、高度并行、控制簡單以及分多個階段執(zhí)行,符合這些條件或者是可以改寫成類似特征的應(yīng)用程序,就能夠在GPU上獲取較高的性能。GPU通用計算通常采用CPU+GPU異構(gòu)模式,由CPU負責(zé)執(zhí)行復(fù)雜邏輯處理和事務(wù)處理等不適合數(shù)據(jù)并行的計算,由GPU負責(zé)計算密集型的大規(guī)模數(shù)據(jù)并行計算。這種利用GPU強大處理能力和高帶寬彌補CPU性能不足的計算方式以發(fā)揮計算機潛在性能,在成本和性價比方面有顯著地優(yōu)勢。

在本發(fā)明的實施例中,根據(jù)明文的取值范圍以及彩虹表的查找成功率來設(shè)置彩虹表任務(wù)的大小。對算法和字符集范圍可進行配置。彩虹表任務(wù)可以包括多個哈希鏈任務(wù),每個哈希鏈任務(wù)要生成一個哈希鏈。由于彩虹表的每個哈希鏈任務(wù)的計算和生成是獨立的,各個哈希鏈任務(wù)的執(zhí)行上具有天然的并行性,因而容易為多個GPU分配并行任務(wù)。

下面結(jié)合圖1至圖3簡單描述根據(jù)本發(fā)明的實施例的基于大數(shù)據(jù)彩虹表的解密方法和解密裝置如何解密。

(1)基于GPU的分布式集群的彩虹表生成過程

首先,文件系統(tǒng)30將彩虹表任務(wù)按照哈希鏈任務(wù)的數(shù)量分配給n個GPU計算節(jié)點,并且在GPU配置單元中根據(jù)明文的取值范圍、彩虹表的查找成功率為各個GPU計算節(jié)點設(shè)置計算參數(shù)、數(shù)據(jù)傳輸和生成算法,在彩虹表生成日志記錄單元301中為每個GPU計算節(jié)點設(shè)置彩虹表生成數(shù)據(jù)參數(shù)和設(shè)置一個彩虹表生成標記logflags,彩虹表生成標記logflags的初始值為0。

舉例來說,假設(shè)哈希鏈任務(wù)的數(shù)量為m,m/n=x+y,其中,x為m除以n得到的商,y為余數(shù),m為大于1的整數(shù)、x為大于0的整數(shù),y為整數(shù)。如此,子彩虹表計算的調(diào)度方法如下:

1)先均為n個GPU計算節(jié)點中的每個GPU計算節(jié)點分配x個哈希鏈任務(wù);然后將剩余的y個哈希鏈任務(wù)順序地再分配給n個GPU計算節(jié)點中的前y個GPU計算節(jié)點,為前y個GPU計算節(jié)點中的每個GPU計算節(jié)點分配一個哈希鏈任務(wù);

2)每個GPU計算節(jié)點并行地按照各自分配的哈希鏈任務(wù)生成一個彩虹表;

3)如果GPU計算節(jié)點生成彩虹表成功,彩虹表生成日志記錄單元301寫入相應(yīng)的彩虹表生成標記logflags為1;

4)日志檢查單元302檢查彩虹表生成標記,如果彩虹表生成標記logflags為0,則表示彩虹表生成不成功,則文件系統(tǒng)30調(diào)用相應(yīng)的GPU計算節(jié)點繼續(xù)生成彩虹表,如果彩虹表生成標記logflags為1,則表示彩虹表生成成功,文件系統(tǒng)30儲存成功生成的彩虹表。

(2)彩虹表的查找

1)將生成的彩虹表中的哈希鏈的鏈尾節(jié)點進行索引分組,對分組內(nèi)的鏈尾節(jié)點進行排序;

2)在經(jīng)索引分組和排序的彩虹表內(nèi),對待解密的密文先執(zhí)行索引查找然后執(zhí)行二分查找,以獲得相應(yīng)的明文完成解密。

在彩虹表查找過程中計算出來的64位長整數(shù)值,為了能夠在彩虹表中快速找到對應(yīng)的鏈尾,一般是采用外部排序方法對鏈尾全排序,然后在彩虹表查找過程中使用二分查找找到對應(yīng)鏈尾。但是彩虹表數(shù)據(jù)規(guī)模巨大,全排序的效率較差,I/O瓶頸很突出。本發(fā)明采用先索引后排序的方法,將彩虹表索引為多個組,對每個組內(nèi)的彩虹鏈的鏈尾節(jié)點進行排序。破解時,先在索引的組中查找,然后將相應(yīng)的文件加載到內(nèi)存中,利用二分查找,提高了查找的速度,加快了密碼破解的速度。

綜上所述,本發(fā)明的實施例的基于大數(shù)據(jù)彩虹表的解密方法能夠通過利用多個GPU計算節(jié)點并行生成彩虹表中的哈希鏈,來大大提高彩虹表生成速度,并且通過對生成的彩虹表進行索引排序,來大大縮短解密階段的彩虹表查找時間,從而大大縮短解密時間。利用本發(fā)明的基于大數(shù)據(jù)彩虹表的解密方法可以3天內(nèi)破解12位以下的密碼,并保證99%的成功率。本發(fā)明的基于大數(shù)據(jù)彩虹表的解密方法能夠?qū)M、MD4、NTLSHASH、MD5或SHA1算法進行解密,并且能非常容易地進行擴展。本發(fā)明利用大數(shù)據(jù)Hadoop技術(shù)存儲,利用優(yōu)化改進的基于GPU的彩虹表的生成算法,將彩虹表的生成速度提高了10倍。利用在分布式集群上建立良好的索引結(jié)構(gòu)、加快彩虹表的查找、完成密碼破解和抗攻擊性驗證。本發(fā)明的基于大數(shù)據(jù)彩虹表的解密方法和解密裝置可以應(yīng)用在電網(wǎng)計量自動化終端上,大大提高電網(wǎng)智能電能表通訊可靠性。利用本發(fā)明的解密方法和解密裝置,密碼破解迅速,最長時間不超過3天,能夠滿足電網(wǎng)計量自動化終端、電網(wǎng)智能電能表通訊可靠性驗證的需要。

本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里發(fā)明的公開后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
旬阳县| 辉南县| 西平县| 开鲁县| 双峰县| 沂源县| 富裕县| 土默特左旗| 高淳县| 临澧县| 武乡县| 苏尼特左旗| 板桥市| 武强县| 广水市| 赣榆县| 会东县| 苗栗市| 娱乐| 阿巴嘎旗| 沈阳市| 常宁市| 永登县| 霍山县| 陇川县| 榆中县| 苏州市| 微博| 闽侯县| 舞钢市| 莱西市| 织金县| 崇仁县| 毕节市| 六盘水市| 烟台市| 绵阳市| 满城县| 广德县| 诏安县| 赣榆县|