專利名稱:復(fù)雜密碼快速遍歷算法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼加解密領(lǐng)域,尤其是指一種復(fù)雜密碼快速遍歷算法及裝置。
背景技術(shù):
暴力密碼遍歷是目前密碼恢復(fù)的一種有效手段,有些情況下甚至是唯一的手段。但是暴力遍歷的方法受到計算速度和密碼空間兩個因素的影響,對于長度較長、包含字符類型較多的復(fù)雜密碼,暴力遍歷計算甚至需要成百上千年的時間,使其失去意義。如何在有效的時間內(nèi)解析出盡可能復(fù)雜的密碼是當前的主要研究方向。目前,研究主要集中在通過各種硬件加速、算法優(yōu)化、分布式技術(shù)來提高暴力遍歷的速度,以此來縮短遍歷的時間。但是通過提高計算速度的方法只能使遍歷時間線性減小,而密碼長度增長、密碼字符集增大卻使遍歷成功的時間幾何級數(shù)增大?,F(xiàn)有的密碼解析一種典型算法是采用傳統(tǒng)的密碼遍歷算法,這種遍歷算法采用純排列組合的方式,把規(guī)定長度內(nèi)包含所給字符的所有密碼都進行遍歷,但由于遍歷過程沒有考慮密碼的特征,造成這種算法需要遍歷相當多不可能被用作密碼或極少被用作密碼的字符串,整體效率較低。隨著密碼使用字符集復(fù)雜度的提高,傳統(tǒng)規(guī)則將面臨密碼空間爆炸的問題。特別是,在有些情況下,可能已知密碼中包含的一些單詞,而傳統(tǒng)的密碼遍歷算法無法有效使用這些已知的信息,仍然只能對所有可能的字符進行排列組合,效率非常低。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服了上述缺陷,提供一種基于解密因子分段的復(fù)雜密碼快速遍歷算法及裝置。本發(fā)明的目的是這樣實現(xiàn)的一種復(fù)雜密碼快速遍歷算法,它包括步驟,A)、根據(jù)至少兩種解密因子的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,獲取上述所有排列組合的分段方式的待遍歷集合;B)、遍歷的從待遍歷集合中取出一個分段方式,每次將一個分段帶入解密因子嘗 試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止。上述步驟中,所述解密因子為字符集,字符集中字符的類型相同;所述步驟A)、根據(jù)至少兩種解密因子中字符集的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,獲取上述所有排列組合的分段方式的待遍歷集合;所述步驟B)、遍歷從待遍歷集合中取出一個分段方式,分別對每個分段遍歷帶入解密因子中字符集的字符進行字符變換嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止;上述步驟中,所述字符集為數(shù)字字符集、或大寫字母字符集、或小寫字母字符集、或特殊符號字符集、或字典字符集;所述數(shù)字字符集、大寫字母字符集、小寫字母字符集中包括按不同字符長度遍歷排列的字符;上述步驟中,所述步驟A中的解密因子的字符集由人工手動輸入或由算法先讀取所有字符,自動根據(jù)字符類型分類后組成。
上述步驟中,所述解密因子為特定字符串,所述特定字符串由設(shè)定產(chǎn)生。本發(fā)明還提供了一種復(fù)雜密碼快速遍歷算法裝置,它包括,密碼分段模塊,用于根據(jù)至少兩種解密因子的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,生成上述所有排列組合的分段方式的待遍歷集合;解密模塊,用于從所述待遍歷集合中取出一個分段方式,每次將一個分段帶入解密因子嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止;上述中,所述解密因子為字符集,字符集中字符的類型相同;所述密碼分段模塊,用于根據(jù)至少兩種解密因子中字符集的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,生成上述所有排列組合的分段方式的待遍歷集合;所述解密模塊,用于從所述待遍歷集合中取出一個分段方式,分別對每個分段遍歷帶入解密因子中字符集的字符進行字符變換嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止;
上述中,所述字符集為數(shù)字字符集、或大寫字母字符集、或小寫字母字符集、或特殊符號字符集、或字典字符集;所述數(shù)字字符集、大寫字母字符集、小寫字母字符集中包括按不同字符長度遍歷排列的字符;上述中,所述密碼分段模塊中包括字符集生成單元,所述字符集生成單元用于獲取人工手動輸入字符并生成字符集,所述字符集生成單元還用于獲取所有字符,根據(jù)字符類型分類并生成字符集;上述中,所述解密因子為特定字符串,所述特定字符串由設(shè)定產(chǎn)生。相比于常見的解密算法,本發(fā)明的有益效果在于將待解密密碼進行分段,每一段使用相同類型字符集的解密因子或特定字符串,其中,根據(jù)分析采用前者組合的密碼占實際密碼的95%以上,因此可極大減少密碼遍歷空間,使得采用本算法后,在相同設(shè)備和相同的時間的情況下,可以解析長度更長、字符集更復(fù)雜的密碼。同時,本算法引入固定單詞作為完整單元進行遍歷,有效利用已知的密碼信息,成倍提高解析效率。
具體實施例方式為詳細說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,以下結(jié)合實施方式并配合詳予說明。本發(fā)明涉及一種復(fù)雜密碼快速遍歷算法,它包括步驟A)、根據(jù)至少兩種解密因子的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,獲取上述所有排列組合的分段方式的待遍歷集合;本步驟中,需要根據(jù)設(shè)定的密碼總長度對不符合密碼長度要求的分段組合方式進行過濾,從而增加效率。B)、從待遍歷集合中取出一個分段方式,每次將一個分段帶入解密因子嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止??梢姡景l(fā)明提供的密碼算法對傳統(tǒng)密碼遍歷算法進行改進,專門解析具有分段特征的密碼,即密碼中由某幾段組成,每一段使用相同類型的解密因子,而這種類型的密碼占95%以上。改進后的算法,可以極大減少密碼遍歷空間。進一步,上述的解密因子可為字符集,在一個解密因子的字符集中包括同一類型組合形成的字符。例如,解密因子可為數(shù)字字符集、大寫字母字符集、小寫字母字符集、特殊符號字符集或者字典字符集等,那么多個解密因子即可以更多的排列組合方式在設(shè)定的密碼總長度下對待解密密碼進行對應(yīng)數(shù)字、大寫字母、小寫字母、特殊符號字符的分段。本算法進一步的對應(yīng)字符集的算法具體為A) 、根據(jù)至少兩種解密因子中字符集的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,獲取上述所有排列組合的分段方式的待遍歷集合;本步驟中的至少兩種解密因子指的區(qū)別取決于解密因子內(nèi)容,即解密因子的字符集的類型不同即屬于不同種類的解密因子。B)、遍歷從待遍歷集合中取出一個分段方式,分別對每個分段遍歷帶入解密因子中字符集的字符進行字符變換嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止。較佳的,此處解密從密碼最低位的分段開始變換字符,如果低位分段的解密因子中字符集的所有字符都遍歷完成,則低位恢復(fù)初始字符,高一位分段開始遍歷字符變換,直到最高位的分段的所有字符都遍歷完成。進一步的,上述算法可支持人工手動分段及自動分段兩種方式,可靈活切換使用。其中,自動分段是算法首先讀取在指定文件中的所有字符,然后自動根據(jù)字符類型將其分類后組成對應(yīng)的字符集,然后將其導(dǎo)入算法中后執(zhí)行上述步驟A。而人工手動分段,則是將人工制定的分類好的每一段字符集導(dǎo)入算法,然后執(zhí)行上述步驟A。借由本發(fā)明方法,以密碼Hell0LiuHell088為例,采用傳統(tǒng)密碼遍歷算法需要遍歷15位的大小寫加數(shù)字的字符集,它的密碼空間為6215 = 768909704948766668552634368個密碼,以目前的設(shè)備性能、即使簡單的加密算法,也需要花費上億年的解析時間。采用本發(fā)明的分段式密碼遍歷算法,其密碼空間僅為757193143529996160個密碼,為傳統(tǒng)算法密碼空間的9. 85e-10,解析時間可以縮短為幾天,使這種復(fù)雜密碼的解析成為可能。此外,本發(fā)明方法還可進一步結(jié)合特定字符串完成解密,此處的特定字符串是指在解密前,有人為設(shè)定記錄的。因為有些解密情況,可能存在在解密前就已知密碼中的某些固定單詞,則通過將這些固定單詞導(dǎo)入算法勢必會大大降低解密過程。具體方法是把特定字符串作為一個解密因子導(dǎo)入算法中,同樣根據(jù)其字符長度結(jié)合其他解密因子對密碼進行分段,然后完成解密。根據(jù)需要,上述特定字符串還可在解密過程中當作一個特殊的字符添加任意段的解密因子的字符集中。例如,一個由3位數(shù)字、3位小寫及特定字符串“Hello”組成的密碼,解密時特定字符串用特殊符號來代替加入到每段的字符集中,則遍歷規(guī)則如下000aaa->100aaa->200aaa->. . . ->900aaa->*00aaa->010aaa->110aaa->. . . ->*10aaa- > . . . ->***aaa->000baa->. . . ->***zaa->000*aa->. . . >****** 結(jié)束;可見,本算法通過引入特定字符串作為完整單元進行遍歷,有效利用已知的密碼信息,成倍提高解析效率。具體實施例以需要解密一個6位密碼xxxxxx為例,實際密碼為123abc,即由字母和數(shù)字組成,配備了小寫字符集和數(shù)字字符集兩個字符集,設(shè)定的密碼總長度為6位,解密步驟如下A)、根據(jù)至小寫字符集和數(shù)字字符集兩種解密因子的字符長度以排列組合方式對設(shè)定的密碼總長度將xxxxxx分為兩段,一段為小寫字母,一段為數(shù)字,自動將小寫字母段的遍歷位數(shù)定為1-5位,數(shù)字段的遍歷位數(shù)定為1-5位;然后根據(jù)分段方式、位數(shù)排列組合得到待遍歷集合,包括I位字母+5位數(shù)字、I位數(shù)字+5位字母、2位字母+4位數(shù)字、2位數(shù)字+4位字母等10種排列組合方式。B)、取遍歷集合中的一種未遍歷的組合方式,如I位字母+5位數(shù)字,按照遍歷規(guī)則構(gòu)造出&000(Κ)、ΜΚΚΚΚ>..Ζ99999等密碼,并將密碼嘗試解密,驗證正確性。如果均不正確,取下一組未遍歷的組合方式,構(gòu)造下一組的所有密碼并嘗試解密。直到遍歷3位數(shù)字+3位字母的組合時,該組合構(gòu)造出123abc密碼,解密成功后結(jié)束遍歷。本發(fā)明還涉及一種復(fù)雜密碼快速遍歷算法裝置,它包括,密碼分段模塊,用于根據(jù)至少兩種解密因子的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,生成上述所有排列組合的分段方式的待遍歷集合;解密模塊,用于從所述待遍歷集合中取出一個分段方式,每次將一個分段帶入解密因子嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止。同理,上述解密因子可進一步為字符集,字符集中字符的類型相同。作為實施例,字符集可為數(shù)字字符集、或大寫字母字符集、或小寫字母字符集、或特殊符號字符集、或字典字符集;所述數(shù)字字符集、大寫字母字符集、小寫字母字符集中包括按不同字符長度遍歷排列的字符。對應(yīng)解密因子為字符集情況,算法裝置進一步為密碼分段模塊,用于根據(jù)至少兩種解密因子中字符集的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,生成上述所有排列組合的分段方式的待遍歷集合;解密模塊,用于從所述待遍歷集合中取出一個分段方式,分別對每個分段遍歷帶入解密因子中字符集的字符進行字符變換嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止。所述密碼分段模塊中包括字符集生成單元,所述字符集生成單元用于獲取人工手動輸入字符并生成字符集,所述字符集生成單元還用于獲取所有字符,根據(jù)字符類型分類并生成字符集。所述解密因子為特定字符串,所述特定字符串由設(shè)定產(chǎn)生。綜上,本發(fā)明方案可針對已知密碼中包含的某些詞組、密碼包含復(fù)雜字符集的情況,減少密碼空間的效果更為明顯,可以使密碼空間減少幾個數(shù)量級甚至十幾個數(shù)量級,使更多更復(fù)雜更長的密碼能夠成功恢復(fù)。使得在相同設(shè)備和相同的時間的情況下,可以解析長度更長、字符集更復(fù)雜的密碼變得可能。以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
權(quán)利要求
1.一種復(fù)雜密碼快速遍歷算法,其特征在于它包括步驟,A)、根據(jù)至少兩種解密因子的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,獲取上述所有排列組合的分段方式的待遍歷集合;B)、遍歷的從待遍歷集合中取出一個分段方式,每次將一個分段帶入解密因子嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止。
2.如權(quán)利要求I所述的復(fù)雜密碼快速遍歷算法,其特征在于所述解密因子為字符集, 字符集中字符的類型相同;所述步驟A)、根據(jù)至少兩種解密因子中字符集的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,獲取上述所有排列組合的分段方式的待遍歷集合;所述步驟B)、遍歷從待遍歷集合中取出一個分段方式,分別對每個分段遍歷帶入解密因子中字符集的字符進行字符變換嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止。
3.如權(quán)利要求2所述的復(fù)雜密碼快速遍歷算法,其特征在于所述字符集為數(shù)字字符集、或大寫字母字符集、或小寫字母字符集、或特殊符號字符集、或字典字符集;所述數(shù)字字符集、大寫字母字符集、小寫字母字符集中包括按不同字符長度遍歷排列的字符。
4.如權(quán)利要求2所述的復(fù)雜密碼快速遍歷算法,其特征在于所述步驟A中的解密因子的字符集由人工手動輸入或由算法先讀取所有字符,自動根據(jù)字符類型分類后組成。
5.如權(quán)利要求1-4任意一項所述的復(fù)雜密碼快速遍歷算法,其特征在于所述解密因子為特定字符串,所述特定字符串由設(shè)定產(chǎn)生。
6.一種復(fù)雜密碼快速遍歷算法裝置,其特征在于它包括,密碼分段模塊,用于根據(jù)至少兩種解密因子的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,生成上述所有排列組合的分段方式的待遍歷集合;解密模塊,用于從所述待遍歷集合中取出一個分段方式,每次將一個分段帶入解密因子嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止。
7.如權(quán)利要求6所述的復(fù)雜密碼快速遍歷算法裝置,其特征在于所述解密因子為字符集,字符集中字符的類型相同;所述密碼分段模塊,用于根據(jù)至少兩種解密因子中字符集的字符長度以排列組合方式對設(shè)定的密碼總長度進行分段,生成上述所有排列組合的分段方式的待遍歷集合;所述解密模塊,用于從所述待遍歷集合中取出一個分段方式,分別對每個分段遍歷帶入解密因子中字符集的字符進行字符變換嘗試解密,對不解密的分段恢復(fù)初始字符,直至獲取密碼為止。
8.如權(quán)利要求7所述的復(fù)雜密碼快速遍歷算法裝置,其特征在于所述字符集為數(shù)字字符集、或大寫字母字符集、或小寫字母字符集、或特殊符號字符集、或字典字符集;所述數(shù)字字符集、大寫字母字符集、小寫字母字符集中包括按不同字符長度遍歷排列的字符。
9.如權(quán)利要求7所述的復(fù)雜密碼快速遍歷算法裝置,其特征在于所述密碼分段模塊中包括字符集生成單元,所述字符集生成單元用于獲取人工手動輸入字符并生成字符集, 所述字符集生成單元還用于獲取所有字符,根據(jù)字符類型分類并生成字符集。
10.如權(quán)利要求6-9任意一項所述的復(fù)雜密碼快速遍歷算法裝置,其特征在于所述解密因子為特定字符串,所述特定字符串由設(shè)定產(chǎn)生。
全文摘要
本發(fā)明提供了一種復(fù)雜密碼快速遍歷算法及裝置,通過將待解密密碼進行分段,每一段使用相同類型字符集的解密因子或特定字符串,其中,根據(jù)分析采用前者組合的密碼占實際密碼的95%以上,因此可極大減少密碼遍歷空間,使得采用本算法后,在相同設(shè)備和相同的時間的情況下,可以解析長度更長、字符集更復(fù)雜的密碼。同時,本算法引入固定單詞作為完整單元進行遍歷,有效利用已知的密碼信息,成倍提高解析效率。
文檔編號H04L9/08GK102983967SQ20121052164
公開日2013年3月20日 申請日期2012年12月6日 優(yōu)先權(quán)日2012年12月6日
發(fā)明者王海濱, 張光斌 申請人:廈門市美亞柏科信息股份有限公司