一種基于優(yōu)化枚舉算法的二進(jìn)制密碼解碼器解碼方法
【專(zhuān)利摘要】一種基于優(yōu)化枚舉算法的二進(jìn)制密碼解碼器解碼方法,步驟為:首先設(shè)待破解的密碼位數(shù)為n位的二進(jìn)制密碼;向被解碼設(shè)備以n位二進(jìn)制數(shù)的形式、從小到大的順序依次發(fā)送密碼集合中的奇數(shù),總共完整發(fā)送2n-2個(gè)n位二進(jìn)制密碼;發(fā)送過(guò)程中若被解碼設(shè)備成功解碼,則解算出的密碼為向其發(fā)送的最后n位二進(jìn)制數(shù)字;若仍未解碼,則繼續(xù)向被解碼設(shè)備補(bǔ)發(fā)密碼集合中沒(méi)有被發(fā)送過(guò)的遺漏數(shù)字,直至全部發(fā)送完畢;所述的被解碼設(shè)備每收到一位二進(jìn)制數(shù)據(jù),會(huì)將該位數(shù)據(jù)與之前最新收到的n-1位數(shù)據(jù)組合成為一個(gè)新的n位數(shù)字,并與待破解密碼進(jìn)行比對(duì);本方法枚舉數(shù)據(jù)量減少75%,時(shí)間縮短為四分之一,方式簡(jiǎn)單易于實(shí)現(xiàn)。
【專(zhuān)利說(shuō)明】一種基于優(yōu)化枚舉算法的二進(jìn)制密碼解碼器解碼方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于解碼領(lǐng)域,涉及一種經(jīng)過(guò)優(yōu)化的密碼枚舉解碼算法。
【背景技術(shù)】
[0002]密碼作為安全保障措施,廣泛應(yīng)用于各種重要的控制場(chǎng)合。越關(guān)鍵的控制領(lǐng)域,密碼位數(shù)越多,組成越復(fù)雜。一旦密碼丟失,密碼保護(hù)的設(shè)備無(wú)法解鎖開(kāi)啟,會(huì)造成較大的損失。因此,需要一種解碼設(shè)備,對(duì)密碼進(jìn)行破譯,最常見(jiàn)的方法就是對(duì)可能的密碼組合進(jìn)行嘗試。但如果被鎖設(shè)備帶有一定的防破譯機(jī)制,例如控制密碼輸送速率,防止高速破譯,則枚舉破譯過(guò)程將耗費(fèi)大量的時(shí)間。本文提到的優(yōu)化枚舉算法,就是對(duì)枚舉策略進(jìn)行優(yōu)化,以達(dá)到大大縮短枚舉破譯時(shí)間的目的。以24位密碼為例,密碼組合共有16777216種,若最大破譯速度限制為500Hz,則枚舉破譯最長(zhǎng)需時(shí)223.7小時(shí),這種枚舉過(guò)程含有大量的重復(fù)數(shù)據(jù),造成時(shí)間浪費(fèi)(如圖1所示)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明解決的技術(shù)問(wèn)題是:克服現(xiàn)有技術(shù)中單純枚舉所有密碼造成的大量重復(fù)性密碼發(fā)送浪費(fèi)的時(shí)間的不足,提供一種基于優(yōu)化枚舉算法的二進(jìn)制密碼解碼器解碼方法,達(dá)到快速解碼的目的。
[0004]本發(fā)明的技術(shù)方案是:一種基于優(yōu)化枚舉算法的二進(jìn)制密碼解碼器解碼方法,步驟如下:
[0005]I)設(shè)待破解的密碼位數(shù)為η位的二進(jìn)制密碼,η為大于I的正整數(shù),則待破解的密碼集合共有2η個(gè)數(shù);向被解碼設(shè)備以η位二進(jìn)制數(shù)的形式、從小到大的順序依次發(fā)送密碼集合中的奇數(shù),即1、3、5、7、……總共完整發(fā)送2η_2個(gè)η位二進(jìn)制密碼;發(fā)送過(guò)程中若被解碼設(shè)備成功解碼,則停止發(fā)送數(shù)據(jù),解碼過(guò)程結(jié)束,被解碼設(shè)備解算出的密碼為向其發(fā)送的最后η位二進(jìn)制數(shù)字;若2η_2個(gè)η位密碼發(fā)送完畢后仍未解碼,進(jìn)入步驟2);所述的被解碼設(shè)備每收到一位二進(jìn)制數(shù)據(jù),會(huì)將該位數(shù)據(jù)與之前最新收到的n-Ι位數(shù)據(jù)組合成為一個(gè)新的η位數(shù)據(jù),并與待破解密碼進(jìn)行比對(duì),若收到的數(shù)據(jù)與自身密碼相同,即為解鎖成功;
[0006]2)繼續(xù)向被解碼設(shè)備補(bǔ)發(fā)密碼集合中沒(méi)有被發(fā)送過(guò)的遺漏數(shù)字,即G1-1) X2n'(22-1) X 2n_2、……、(2^-1) X 2n_ (n_n、2n,共n個(gè)數(shù),發(fā)送過(guò)程中若被解碼設(shè)備成功解碼,則停止發(fā)送數(shù)據(jù),解碼過(guò)程結(jié)束,被解碼設(shè)備解算出的密碼為向其發(fā)送的最后η位二進(jìn)制數(shù)字,直至全部發(fā)送完畢,完成解碼。
[0007]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
[0008]1、減少枚舉數(shù)量。以24位二進(jìn)制密碼為例,密碼組合共有16777216種,按照現(xiàn)有枚舉方法,需要枚舉發(fā)送16777216個(gè)24位二進(jìn)制數(shù)據(jù)才能覆蓋所有可能的密碼。而采用本發(fā)明提到的優(yōu)化枚舉算法,僅需要發(fā)送4194328個(gè)24位二進(jìn)制數(shù)據(jù),數(shù)據(jù)量減少75%。
[0009]2、縮短解碼時(shí)間。由于被解碼設(shè)備大多采用對(duì)接收數(shù)據(jù)速率進(jìn)行限制等措施防止高速破譯,因此發(fā)送的數(shù)據(jù)量決定了破譯完成需要的時(shí)間。同樣以24位密碼為例,如將每?jī)晌欢M(jìn)制數(shù)據(jù)之間的接收間隔設(shè)定為大于2毫秒,則采用現(xiàn)有技術(shù)進(jìn)行枚舉最長(zhǎng)需時(shí)223.7小時(shí),而采用本發(fā)明提到的優(yōu)化枚舉算法時(shí)間縮短為最長(zhǎng)55.9小時(shí)??s短破譯時(shí)間能夠盡可能減少密碼丟失帶來(lái)的損失及消耗的人力物力。
[0010]3、解碼算法簡(jiǎn)單易于實(shí)現(xiàn)。本發(fā)明專(zhuān)利提到的優(yōu)化枚舉算法巧妙利用解碼原理和數(shù)學(xué)原理,除累加計(jì)算外無(wú)任何其余計(jì)算步驟和判斷處理過(guò)程,破譯算法的復(fù)雜度低,易于軟件編碼實(shí)現(xiàn),節(jié)省硬件資源。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0011]圖1是普通枚舉方式示意圖;
[0012]圖2是本發(fā)明采用的優(yōu)化枚舉算法的示意圖。 【具體實(shí)施方式】
[0013]按照本發(fā)明方法,以解碼24位密碼為例,具體如下:
[0014]逐一枚舉發(fā)送密碼集合中從I到16777216的所有數(shù)字,共需發(fā)送16777216個(gè)24位二進(jìn)制密碼,以每2位二進(jìn)制數(shù)據(jù)之間的時(shí)間間隔被限制在大于等于2毫秒為例,將密碼集合中的全部數(shù)據(jù)發(fā)送完畢用時(shí)總共需要0.002s X 24X 16777216=805306.368秒& 223.7小時(shí)。如圖1所示,現(xiàn)有枚舉方法為每當(dāng)完整發(fā)送完前一個(gè)24位二進(jìn)制數(shù)據(jù)的所有位(區(qū)間I所示)之后再發(fā)送下一個(gè)24位二進(jìn)制數(shù)(區(qū)間2所示),直到密碼集合中的所有數(shù)據(jù)被枚舉發(fā)送一遍之后結(jié)束。
[0015]由于所述的被解碼設(shè)備每收到一位二進(jìn)制數(shù)據(jù),都會(huì)將該位數(shù)據(jù)與之前最新收到的23位數(shù)據(jù)組合成為一個(gè)新的24位數(shù)字,并與待破解密碼進(jìn)行比對(duì),若其與自身密碼相同,即為解鎖成功,因此如圖2所示,當(dāng)解碼設(shè)備發(fā)送完24位二進(jìn)制數(shù)據(jù)“I”(區(qū)間I所示)后發(fā)送24位二進(jìn)制數(shù)據(jù)“2”,當(dāng)發(fā)送數(shù)據(jù)“2”的最高位“O”后,被解碼設(shè)備將“O”與之前的數(shù)據(jù)“I”的后23位進(jìn)行組合(區(qū)間2所示)并與自身密碼進(jìn)行比對(duì)。按照二進(jìn)制運(yùn)算規(guī)則,補(bǔ)零就是進(jìn)行乘2運(yùn)算,補(bǔ)I就是乘2加I運(yùn)算。當(dāng)解碼設(shè)備將24位二進(jìn)制數(shù)據(jù)“2”的所有位發(fā)送完畢后,被解碼設(shè)備實(shí)際收到并進(jìn)行過(guò)比對(duì)的數(shù)據(jù)為“I (區(qū)間I所示X1X21 (區(qū)間2所示)、1X22 (區(qū)間3所示)、……1 X 222 (區(qū)間4所示)、1 X 223+1、2”。如果按照現(xiàn)有枚舉方法進(jìn)行數(shù)據(jù)發(fā)送,這些經(jīng)過(guò)比對(duì)過(guò)的數(shù)據(jù)還會(huì)重新被發(fā)送一次,數(shù)據(jù)被重復(fù)發(fā)送,勢(shì)必浪費(fèi)解碼時(shí)間。
[0016]本發(fā)明提到的經(jīng)過(guò)優(yōu)化的枚舉算法,利用被解碼設(shè)備接收數(shù)據(jù)時(shí)的逐位接收比對(duì)原理,對(duì)需要枚舉發(fā)送的數(shù)據(jù)個(gè)數(shù)進(jìn)行優(yōu)化,以達(dá)到發(fā)送24位二進(jìn)制數(shù)據(jù)個(gè)數(shù)較少且兼顧算法實(shí)現(xiàn)的便利性的情況下覆蓋密碼集合中的所有數(shù)據(jù)的目的。
[0017]利用所有偶數(shù)都能夠以奇數(shù)乘以2的冪運(yùn)算得到的數(shù)學(xué)原理,利用二進(jìn)制數(shù)據(jù)補(bǔ)零即乘2、補(bǔ)I即乘2加I的運(yùn)算規(guī)則,只發(fā)送密碼集合中小于223的所有奇數(shù)的24位二進(jìn)制數(shù)據(jù),便可達(dá)到覆蓋密碼集合中所有數(shù)據(jù)的目的。
[0018]因此針對(duì)24位密碼的破解方法為:向被解碼設(shè)備以24位二進(jìn)制數(shù)的形式、從小到大的順序依次發(fā)送密碼集合中的奇數(shù),即1、3、5、7、……、223-1,總共完整發(fā)送222個(gè)24位二進(jìn)制密碼;發(fā)送過(guò)程中若被解碼設(shè)備成功解碼,則停止發(fā)送數(shù)據(jù),解碼過(guò)程結(jié)束,被解碼設(shè)備的解算出的密碼為向其發(fā)送的最后24位二進(jìn)制數(shù)字;若222個(gè)24位密碼發(fā)送完畢后仍未解碼,則繼續(xù)向被解碼設(shè)備補(bǔ)發(fā)密碼集合中沒(méi)有被發(fā)送過(guò)的遺漏數(shù)字,即G1-1) X 223、(22-1)Χ 222、……、(223-1 )Χ2\ 224,共24個(gè)數(shù),發(fā)送過(guò)程中若被解碼設(shè)備成功解碼,則停止發(fā)送數(shù)據(jù),解碼過(guò)程結(jié)束,被解碼設(shè)備的解算出的密碼為向其發(fā)送的最后η位二進(jìn)制數(shù)字,直至全部發(fā)送完畢。
[0019]最終,優(yōu)化后的枚舉算法達(dá)到了減少75%數(shù)據(jù)量、節(jié)省75%時(shí)間的效果。
[0020]本發(fā)明說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。
【權(quán)利要求】
1.一種基于優(yōu)化枚舉算法的二進(jìn)制密碼解碼器解碼方法,其特征在于步驟如下: 1)設(shè)待破解的密碼位數(shù)為η位的二進(jìn)制密碼,η為大于I的正整數(shù),則待破解的密碼集合共有2η個(gè)數(shù);向被解碼設(shè)備以η位二進(jìn)制數(shù)的形式、從小到大的順序依次發(fā)送密碼集合中的奇數(shù),即1、3、5、7、……Jlr1-1,總共完整發(fā)送2n_2個(gè)η位二進(jìn)制密碼;發(fā)送過(guò)程中若被解碼設(shè)備成功解碼,則停止發(fā)送數(shù)據(jù),解碼過(guò)程結(jié)束,被解碼設(shè)備解算出的密碼為向其發(fā)送的最后η位二進(jìn)制數(shù)字;若2η_2個(gè)η位密碼發(fā)送完畢后仍未解碼,進(jìn)入步驟2);所述的被解碼設(shè)備每收到一位二進(jìn)制數(shù)據(jù),會(huì)將該位數(shù)據(jù)與之前最新收到的η-1位數(shù)據(jù)組合成為一個(gè)新的η位數(shù)據(jù),并與待破解密碼進(jìn)行比對(duì),若收到的數(shù)據(jù)與自身密碼相同,即為解鎖成功; 2)繼續(xù)向被解碼設(shè)備補(bǔ)發(fā)密碼集合中沒(méi)有被發(fā)送過(guò)的遺漏數(shù)字,即G1-1)X2n'(22-1) X 2n_2、……、(2^-1) X 2n_ (n_n、2n,共n個(gè)數(shù),發(fā)送過(guò)程中若被解碼設(shè)備成功解碼,則停止發(fā)送數(shù)據(jù),解碼過(guò)程結(jié)束,被解碼設(shè) 備解算出的密碼為向其發(fā)送的最后η位二進(jìn)制數(shù)字,直至全部發(fā)送完畢,完成解碼。
【文檔編號(hào)】H04L9/06GK103944713SQ201410127230
【公開(kāi)日】2014年7月23日 申請(qǐng)日期:2014年3月31日 優(yōu)先權(quán)日:2014年3月31日
【發(fā)明者】高路 申請(qǐng)人:中國(guó)航天時(shí)代電子公司