亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于Spark平臺的口令哈希值恢復方法和裝置的制造方法

文檔序號:10572481閱讀:306來源:國知局
一種基于Spark平臺的口令哈希值恢復方法和裝置的制造方法
【專利摘要】本發(fā)明公開了一種基于Spark平臺的口令哈希值恢復方法和裝置,其設計方法包括口令哈希表到彩虹表數據生成步驟和彩虹表解密步驟,記彩虹鏈鏈首節(jié)點值為SV(Start Value),鏈尾節(jié)點值為EV(End Value),本發(fā)明利用Spark平臺的對大規(guī)模數據的處理能力,用map函數高效地計算出SV對應的EV,生成彩虹鏈保存在HDFS中,完成彩虹表數據的生成,利用filter函數找到與待解密的密文對應的所有SV,再調用foreach函數根據每個SV生成完整的彩虹鏈,對密文進行解密。
【專利說明】
一種基于Spark平臺的口令哈希值恢復方法和裝置
技術領域
[0001]本發(fā)明屬于網絡信息安全技術領域與密碼學中的密碼逆向恢復技術領域,特別涉及一種基于Spark平臺的口令哈希值恢復方法和裝置。
【背景技術】
[0002]為了保證數據信息安全屬性中的不可篡改性,通常不對口令明文進行直接存儲,而是對經過哈希運算的口令明文對應的哈希值進行存儲。哈希算法,又稱散列算法,通過置換和混淆等密碼模塊將任意長度的明文輸入轉化為固定長度的哈希值輸出,且具有較好的單向性,無法輕易地由輸出逆推得到輸入,由于哈希函數良好的保密特性和校驗功能,因此被廣泛用于數字簽名、下載校驗、口令存儲等應用。
[0003]破解口令哈希值的方法包括暴力窮舉法和字典查找法,暴力窮舉法對簡單的密碼和簡單的密碼系統(tǒng)是可行的,但對于復雜的密碼和密碼系統(tǒng),則會產生無窮大的字典,從而需要海量的計算時間;而字典查找法則需要海量的存儲空間,解密代價太高。
[0004]為了減小所需要字典的大小,減少產生和查找字典的時間,現有技術提供一種針對碰撞鏈的解決方案--彩虹表,其基于Mar t i η He 11 man理論(基于內存與時間的權重理論)。彩虹表是暴力窮舉和字典查找的折中,通過預計算的方式來減少口令恢復的時間花銷,其核心思想是將明文計算得到的哈希值由一個映射函數映射回到明文空間,進而交替地計算明文和哈希值,以減少哈希值密碼恢復的時間。
[0005]Spark是一個開源簇運算框架,最初是由加州大學伯克利分校AMPLab所開發(fā)。相對于Hadoop的MapReduce會在運行完工作后將中介數據存放到磁盤中,Spark使用了存儲器內運算技術,能在數據尚未寫入硬盤時即在存儲器內分析運算。Spark在存儲器內運行程序的運算速度能做到比Hadoop MapReduce的運算速度快上100倍,即便是運行程序于硬盤時,Spark也能快上1倍速度。Spark的基礎數據結構是RDD,Spark平臺將操作封裝在transformat 1n 和act 1n 中,其中 transformat1n 是對RDD 的轉換,act1n 是對RDD 進行計算。調用transformat1n的act1n中的API,Spark平臺會自行進行分布式運算,程序員只需對Spark進行配置,無需考慮分布式是如何進行的,這大大降低了平臺使用的門檻。

【發(fā)明內容】

[0006]為了克服上述現有技術的缺點,本發(fā)明的目的在于提供一種基于Spark平臺的口令哈希值恢復方法和裝置,可實現大容量彩虹表的并行生成、彩虹鏈并行過濾和彩虹鏈并行解密,使其具有高性能、低門檻等優(yōu)點。
[0007]為了實現上述目的,本發(fā)明采用的技術方案是:
[0008]利用Spark平臺進行分布式并行生成彩虹表和解密。在生成彩虹表的過程中,需要根據所有隨機生成的鏈首節(jié)點值生成其對應的鏈尾節(jié)點值。利用Spark平臺的map函數,可以對每一個鏈首節(jié)點進行獨立操作,也就是說,生成彩虹表是可以高度并行的,這大大提高了生成效率。彩虹表在HDFS中是以分塊的方式進行存儲的,調用Spark平臺的fi I ter函數,可以并行地從各塊找出待解密密文對應的彩虹鏈,這大大加快了文本匹配的速度。利用Spark平臺的f or each函數,可以并行地從彩虹鏈中計算出待解密密文所對應的明文。
[0009]具體地,本發(fā)明的技術方案是:
[00?0] —種基于Spark平臺的口令哈希值恢復方法,包括彩虹表數據生成步驟和彩虹表解密步驟,其特征在于,
[0011 ]設彩虹鏈的數量為S,長度為L,L>I,則所述彩虹表數據生成步驟包括:
[0012]步驟A:根據字符集隨機生成S個鏈首節(jié)點值SV;
[0013]步驟B:根據彩虹鏈的生成規(guī)則,計算出鏈首節(jié)點值SV對應的鏈尾節(jié)點值EV;
[0014]步驟C:將生成的所有(SV,EV)的元組保存在Hadoop分布式文件系統(tǒng)HDFS中;
[0015]所述彩虹表解密步驟包括:
[0016]步驟D:從HDFS中讀出彩虹表;
[0017]步驟E:從彩虹表中過濾出密文對應的彩虹鏈;
[0018]步驟F:根據得到的彩虹鏈計算出該密文對應的明文;
[0019 ]具體地,所述鏈尾節(jié)點值EV的計算包括以下步驟:
[0020]步驟BI:對每個鏈首節(jié)點值SV執(zhí)行L-1次f函數,生成L-2個中間節(jié)點和一個鏈尾節(jié)點;f函數包括H函數和R函數兩個部分;其中H函數即指定的加密函數,R函數是與當前節(jié)點位置i有關的函數(KiSL-1),該函數的定義域和值域需要和H函數相反;本文用R1表示參數為i的R函數,fi表示H函數和Ri函數的組合;可以令Ri=(X+i)mod N(其中X表示經過H函數處理后的字符串,N表示明文的范圍);步驟B2:調用Spark平臺的map函數并行地執(zhí)行步驟Bl0
[0021 ]所述彩虹表中過濾出密文對應的彩虹鏈包括以下步驟:
[0022]步驟El:猜測待解密密文所對應的明文在彩虹鏈中的位置i,依次從L-1到I進行嘗試;
[0023]步驟E2:對密文執(zhí)行Ri函數,將結果保存在中間節(jié)點M中;再對M執(zhí)行fi+i,fi+2,…,f L-1,將結果賦值給Μ;
[0024]步驟Ε3:調用Spark平臺的f i I ter函數并行地過濾出所有鏈尾節(jié)點值等于M的彩虹鏈,若彩虹表中沒有鏈尾節(jié)點值等于M的彩虹鏈,則嘗試下一個i;若所有嘗試均未找到符合要求的彩虹鏈,則解密失敗;若存在鏈尾節(jié)點值等于M的彩虹鏈,則進入下一步驟。
[0025]根據彩虹鏈計算出明文包括以下步驟:
[0026]步驟Fl:從步驟E中得到該密文對應的明文在彩虹鏈中的位置i,對該彩虹鏈的鏈首節(jié)點值SViRf1,f2,…,f1-1,得到的結果即為該密文對應的明文。
?0027] 本發(fā)明同時提出一種基于Spark平臺的口令哈希值恢復裝置,包括Spark配置單元、彩虹表數據生成單元和彩虹表解密單元,其中:
[0028]Spark配置單元執(zhí)行該恢復裝置的準備工作,對Spark平臺提供的計算能力進行配置;
[0029]彩虹表數據生成單元產生若干條彩虹鏈的集合,每條彩虹鏈均通過一系列哈希運算和映射函數迭代計算得到,彩虹表數據生成單元僅需要存儲鏈首節(jié)點和鏈尾節(jié)點;
[0030]彩虹表解密單元對待解密密文所對應的明文所在位置進行猜測,尋找該密文對應的鏈尾節(jié)點;然后在彩虹表中找到鏈尾節(jié)點與該密文對應的鏈尾節(jié)點相同的彩虹鏈,根據這些彩虹鏈計算出該密文對應的明文。
[0031 ] 具體地,所述Spark配置單元的準備工作主要包括:
[0032]搭建Spark平臺,配置Master和Slave,然后再對Worker數量及大小進行配置。
[0033]所述彩虹表數據生成單元執(zhí)行功能主要包括:
[0034]隨機生成S個鏈首節(jié)點值,然后根據彩虹鏈生成規(guī)則,計算鏈首節(jié)點值對應的鏈尾節(jié)點值,調用Spark平臺的map函數將計算結果存儲在Hadoop分布式文件系統(tǒng)HDFS中。
[0035]所述彩虹表解密單元執(zhí)行功能主要包括:
[0036]猜測待解密密文所對應的明文在彩虹鏈中的位置i,對密文執(zhí)行R1函數,將結果保存在中間節(jié)點M中;再對M執(zhí)行fi+1,fi+2,…,fL-1,將結果賦值給M,得到該密文對應的鏈尾節(jié)點;然后調用Spark平臺的f i I ter函數從彩虹表中過濾出鏈尾節(jié)點等于密文對應的鏈尾節(jié)點的彩虹鏈,若彩虹表中沒有鏈尾節(jié)點值等于M的彩虹鏈,則嘗試下一個i ;若所有嘗試均未找到符合要求的彩虹鏈,則解密失敗;若存在鏈尾節(jié)點值等于M的彩虹鏈,則調用Spark平臺的f oreach函數對每個彩虹鏈計算該密文對應的明文。
[0037]與現有技術相比,本發(fā)明的有益效果是:利用Spark平臺在內存中高效計算及其高度并行的特點,大大地提高了彩虹表的生成和解密的效率。
【附圖說明】
[0038]圖1是基于Spark平臺口令哈希值恢復方法的流程圖。
[0039]圖2是基于Spark平臺口令哈希值恢復方法生成彩虹表部分的流程圖。
[0040]圖3是基于Spark平臺口令哈希值恢復方法對待解密密文進行解密部分的流程圖。[0041 ]圖4是基于Spark平臺口令哈希值恢復裝置的功能框圖。
[0042]圖5是基于Spark平臺口令哈希值恢復裝置彩虹表生成單元的功能框圖。
[0043]圖6是基于Spark平臺口令哈希值恢復裝置解密單元的功能框圖。
【具體實施方式】
[0044]下面結合附圖和實施例詳細說明本發(fā)明的實施方式。
[0045]Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的并行計算框架,Spark基于map reduce算法實現的分布式計算,擁有Hadoop MapReduce所具有的優(yōu)點。此外,Spark任務中間輸出和結果可以保存在內存中,這可以加快計算的讀寫效率。RDD是Spark的最基本抽象,是對分布式內存的抽象使用,實現了以操作本地集合的方式來操作分布式數據集的抽象實現。
[0046]RDD是Spark最核心的東西,它表示已被分區(qū),不可變的并能夠被并行操作的數據集合,不同的數據集格式對應不同的RDD實現。RDD必須是可序列化的ADD可以cache到內存中,每次對RDD數據集的操作之后的結果,都可以存放到內存中,下一個操作可以直接從內存中輸入,省去了MapReduce大量的磁盤1操作。
[0047]本發(fā)明正是利用Spark平臺的內存計算和高度并行,利用RDD作為中間結果,高效地實現彩虹表生成與解密。具體地,本發(fā)明的一種基于Spark平臺的口令哈?;謴头椒?,包括如圖1所示的3個步驟。
[0048]Stepl,配置Spark平臺參數,主要包括搭建Spark平臺、配置Spark平臺的Master和Slave (即配置Spark平臺控制多少臺主機)和配置Spark平臺的Worker數量及大小(即配置每臺主機擁有的工作線程數量及每個線程可使用的內存和CPU的大小)。
[0049]Step2,生成彩虹表。
[0050]Step3,對待解密密文進行解密。
[0051]具體地,彩虹表的生成步驟包括(見圖2,設彩虹表的大小為S,每條彩虹鏈的長度為L(L>1),虹鏈鏈首節(jié)點值為SV(Start Value),鏈尾節(jié)點值為EV(End Value)):
[0052]Step 21,隨機生成S個彩虹鏈首節(jié)點值SV,保存在列表list中。
[0053]Step 22,根據彩虹鏈的生成規(guī)則,將list中的每個SV作為彩虹鏈首節(jié)點值計算出鏈尾節(jié)點值EV,調用Spark的transformat 1n操作中的map函數,將所有(SV,EV)元組生成RDD數據集。
[0054]Step 23,將RDD數據集保存在HDFS中。
[0055]彩虹表的解密步驟包括(見圖3):
[0056]Step 31,從HDFS中讀入彩虹表。
[0057]Step 32,猜測密文對應的明文所在的位置i,對密文執(zhí)行Ri函數,將結果保存在中間節(jié)點M中。
[0058]Step 33,對財丸行乜+1,&+2,...,紅—1,將結果賦給10
[0059]Step 34,從彩虹表中過濾出鏈尾節(jié)點值EV等于M的彩虹鏈。
[0060]Step 32?Step34具體步驟如下:
[0061 ]初始化i為L-1;
[0062]對待解密的密文執(zhí)行R1函數,得到中間節(jié)點M;
[0063]令j= i+]_;
[0064]若j彡L-1,則對M執(zhí)行H函數,Rj+1函數,并將結果賦值給M,轉至(5);否則轉至(6);
[0065]令j = j+1,轉至(4);
[0066]調用Spark的transformat 1n操作中的filter函數,從彩虹表中過濾出所有EV等于M的SV。若SV的數量等于O,則令i = 1-Ι,若i >0,則轉至(2),若i = 0,否則解密失敗;若SV的數量大于O,則進入下一步驟;
[0067]Step 35,調用Spark的act 1n操作中的f oreach函數,對每個符合條件的彩虹鏈鏈首節(jié)點值SViRfl,f 2,…,f 1-1,得到的結果即為對應的明文。
[0068]本發(fā)明同時提出一種基于Spark平臺口令哈希恢復裝置,包括如圖4所示的3個單元,Spark配置單元、彩虹表生成單元以及解密單元。
[0069]其中,Spark配置單元執(zhí)行的功能包括:
[0070]搭建Spark平臺,配置Master和Slave,以及配置Worker數量及大小。
[0071]如圖5所示,彩虹表生成單元執(zhí)行的功能包括:
[0072]鏈首節(jié)點生成單元,該單元用于隨機生成S個鏈首節(jié)點,并且保證節(jié)點不重復。
[0073]鏈尾節(jié)點計算單元,該單元根據彩虹鏈生成規(guī)則,計算鏈首節(jié)點值對應的鏈尾節(jié)點值,調用Spark平臺的map函數將計算結果存儲在Hadoop分布式文件系統(tǒng)HDFS中
[0074]如圖6所示,解密單元執(zhí)行的功能包括:
[0075]密文對應的鏈尾節(jié)點計算單元,該單元猜測待解密密文所對應的明文在彩虹鏈中的位置i,對密文執(zhí)行Ri函數,將結果保存在中間節(jié)點M中,再對M執(zhí)行fi+i,fi+2,…,fL-1,將結果賦值給M,得到該密文對應的鏈尾節(jié)點。
[0076]彩虹鏈過濾單元,該單元調用Spark平臺的f i I ter函數從彩虹表中過濾出鏈尾節(jié)點等于密文對應的鏈尾節(jié)點的彩虹鏈。
[0077]生成明文單元,該單元調用Spark平臺的f oreach函數對每個彩虹鏈計算該密文對應的明文。
[0078]以上對本發(fā)明所提供的一種基于Spark平臺口令哈希恢復方法和裝置進行了詳細介紹,本文對本發(fā)明的原理及具體的實施方式進行了闡述,以上詳細步驟的用于幫助理解本發(fā)明的方法及核心思想;同時,對于本領域的技術人員,根據本發(fā)明的思想,在具體的實現方式上均會有變化和改進之處,這些變化和改進均屬于本發(fā)明的保護范圍之內。
【主權項】
1.一種基于Spark平臺的口令哈希值恢復方法,包括彩虹表數據生成步驟和彩虹表解密步驟,其特征在于, 設彩虹鏈的數量為S,長度為L,L> I,則所述彩虹表數據生成步驟包括: 步驟A:根據字符集隨機生成S個鏈首節(jié)點值SV; 步驟B:根據彩虹鏈的生成規(guī)則,計算出鏈首節(jié)點值SV對應的鏈尾節(jié)點值EV; 步驟C:將生成的所有(SV,EV)的元組保存在Hadoop分布式文件系統(tǒng)HDFS中; 所述彩虹表解密步驟包括: 步驟D:從HDFS中讀出彩虹表; 步驟E:從彩虹表中過濾出密文對應的彩虹鏈; 步驟F:根據得到的彩虹鏈計算出該密文對應的明文。2.根據權利要求1所述基于Spark平臺的口令哈希值恢復方法,其特征在于,所述鏈尾節(jié)點值EV的計算包括以下步驟: 步驟BI:對每個鏈首節(jié)點值SV執(zhí)行L-1次f函數,生成L-2個中間節(jié)點和一個鏈尾節(jié)點;f函數包括H函數和R函數兩個部分;其中H函數即指定的加密函數,R函數是與當前節(jié)點位置i有關的函數(I彡iSL-1),該函數的定義域和值域需要和H函數相反;用仏表示參數為i的R函數,fi表示H函數和Ri函數的組合;令Ri= (X+i)mod N,其中X表示經過H函數處理后的字符串,N表示明文的范圍; 步驟B2:調用Spark平臺的map函數并行地執(zhí)行步驟BI。3.根據權利要求2所述基于Spark平臺的口令哈希值恢復方法,其特征在于,所述彩虹表中過濾出密文對應的彩虹鏈包括以下步驟: 步驟El:猜測待解密密文所對應的明文在彩虹鏈中的位置i,依次從L-1到I進行嘗試;步驟E2:對密文執(zhí)行Ri函數,將結果保存在中間節(jié)點M中;再對M執(zhí)行f i+i,f i+2,…,fL-1,將結果賦值給M; 步驟E3:調用Spark平臺的f i I ter函數并行地過濾出所有鏈尾節(jié)點值等于M的彩虹鏈,若彩虹表中沒有鏈尾節(jié)點值等于M的彩虹鏈,則嘗試下一個i;若所有嘗試均未找到符合要求的彩虹鏈,則解密失敗;若存在鏈尾節(jié)點值等于M的彩虹鏈,則進入下一步驟。4.根據權利要求3所述基于Spark平臺的口令哈希值恢復方法,其特征在于,根據彩虹鏈計算出明文包括以下步驟: 步驟Fl:從步驟E中得到該密文對應的明文在彩虹鏈中的位置i,對該彩虹鏈的鏈首節(jié)點值SViRf1,f2,…,f1-1,得到的結果即為該密文對應的明文。5.一種基于Spark平臺的口令哈希值恢復裝置,其特征在于,包括Spark配置單元、彩虹表數據生成單元和彩虹表解密單元,其中: Spark配置單元執(zhí)行該恢復裝置的準備工作,對Spark平臺提供的計算能力進行配置;彩虹表數據生成單元產生若干條彩虹鏈的集合,每條彩虹鏈均通過一系列哈希運算和映射函數迭代計算得到,彩虹表數據生成單元僅需要存儲鏈首節(jié)點和鏈尾節(jié)點; 彩虹表解密單元對待解密密文所對應的明文所在位置進行猜測,尋找該密文對應的鏈尾節(jié)點;然后在彩虹表中找到鏈尾節(jié)點與該密文對應的鏈尾節(jié)點相同的彩虹鏈,根據這些彩虹鏈計算出該密文對應的明文。6.根據權利要求5所述基于Spark平臺的口令哈希值恢復裝置,其特征在于,所述Spark配置單元的準備工作主要包括: 搭建Spark平臺,配置Master和Slave,然后再對Worker數量及大小進行配置。7.根據權利要求5所述基于Spark平臺的口令哈希值恢復裝置,其特征在于, 所述彩虹表數據生成單元執(zhí)行功能主要包括: 隨機生成S個鏈首節(jié)點值,然后根據彩虹鏈生成規(guī)則,計算鏈首節(jié)點值對應的鏈尾節(jié)點值,調用Spark平臺的map函數將計算結果存儲在Hadoop分布式文件系統(tǒng)HDFS中。8.根據權利要求5所述基于Spark平臺的口令哈希值恢復裝置,其特征在于,所述彩虹表解密單元執(zhí)行功能主要包括: 猜測待解密密文所對應的明文在彩虹鏈中的位置i,對密文執(zhí)行R1函數,將結果保存在中間節(jié)點M中;再對M執(zhí)行fi+1,fi+2,…,fw,將結果賦值給M,得到該密文對應的鏈尾節(jié)點;然后調用Spark平臺的filter函數從彩虹表中過濾出鏈尾節(jié)點等于密文對應的鏈尾節(jié)點的彩虹鏈,若彩虹表中沒有鏈尾節(jié)點值等于M的彩虹鏈,則嘗試下一個i;若所有嘗試均未找到符合要求的彩虹鏈,則解密失??;若存在鏈尾節(jié)點值等于M的彩虹鏈,則調用Spark平臺的f oreach函數對每個彩虹鏈計算該密文對應的明文。
【文檔編號】H04L9/08GK105933120SQ201610211597
【公開日】2016年9月7日
【申請日】2016年4月6日
【發(fā)明人】覃征, 李志鵬, 黃凱, 葉樹雄, 楊曉, 張任偉, 徐凱平
【申請人】清華大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1