瓊臺(tái)師范學(xué)院信息科學(xué)技術(shù)學(xué)院 梁 棟 胡 鋒
隨著計(jì)算機(jī)、信息、通信等技術(shù)的迅猛發(fā)展和廣泛應(yīng)用,通過互聯(lián)網(wǎng)進(jìn)行信息交互成為一種常態(tài),而同時(shí)保密性成為交互中需要重點(diǎn)解決的問題,所以會(huì)涉及到密碼保護(hù)問題,DES加密技術(shù)成為研究重點(diǎn),隨著數(shù)字化生活的全面到來,對(duì)數(shù)據(jù)進(jìn)行加密保護(hù)是所有互聯(lián)網(wǎng)產(chǎn)品發(fā)展的基礎(chǔ)。從DES加密系統(tǒng)的發(fā)展來看,依據(jù)DES算法在更多的領(lǐng)域?qū)l(fā)揮出積極的作用。
DES通過組織不同的組別來進(jìn)行密碼算法,通常所使用的是64位密鑰,這種密碼的特點(diǎn)是相對(duì)安全性高,當(dāng)然對(duì)于除去8位奇偶的校驗(yàn)來說,實(shí)際密鑰長(zhǎng)度為56位,那么在使用二進(jìn)制對(duì)64位的數(shù)據(jù)進(jìn)行分組過程中所進(jìn)行的加密是無法破譯的,它所產(chǎn)生的64位密文數(shù)據(jù)來進(jìn)行鎖定。而對(duì)于DES密碼來說,它是基于雙向的密碼體系構(gòu)成,從某種意義上來說它既可以進(jìn)行加密,也可以通過解密來實(shí)現(xiàn)打開,而兩個(gè)過程都會(huì)使用相同的密碼鑰,所以它具有廣泛的實(shí)用性,并且可以重復(fù)復(fù)制到更多的人去使用。
DES的所有的保密性均依賴于密鑰,這是其一個(gè)較大的特點(diǎn)。對(duì)于DES算法來說,其入口參數(shù)由以下幾個(gè)方面組成:一是Key的參數(shù),二是Data的參數(shù),三是Mode的參數(shù),它們之間是相互聯(lián)系的。從這三個(gè)組成來看,它是把這三個(gè)參數(shù)理解為密鑰,8個(gè)字節(jié)共64位的是Key,通常來說都是把DES算法中較為常用的密鑰;而Data也是通過雙向解密來實(shí)現(xiàn)的,Key參數(shù)相同重復(fù)著被加密或被解密的數(shù)據(jù)實(shí)現(xiàn)過程;而Mode可以理解為DES的工作方式,對(duì)于這種原理相同的方式所展開的,DES算法主要是通過Mode為加密,需要用到Key去進(jìn)行對(duì)Data的數(shù)據(jù)進(jìn)行全面的加密,通過一系列的加密后會(huì)生成Data的密碼來進(jìn)行保密。那么整個(gè)過程可以看做有三步,缺少一步都是不行的。而如果用Mode來進(jìn)行解密,那么Key就成為了加密,所以mode需要為數(shù)據(jù)Data進(jìn)行解密,從過程和原理來看幾乎是一樣的,Data的以64位明碼形式出現(xiàn),作為DES的輸出結(jié)果。
DES使用了分組密碼設(shè)計(jì)的兩個(gè)原則:一是混淆,它的主要目的是使密文的統(tǒng)計(jì)學(xué)特性得到較為完整的體現(xiàn),并與密鑰的數(shù)值進(jìn)行有效的復(fù)雜化。二是擴(kuò)散,通過有效的擴(kuò)散來實(shí)現(xiàn)不同的明文的影響輸送到需要的密文位中,從而使最大可能的在大量的密文中實(shí)現(xiàn)消除明文的作用。
從加密算法的角度來說,DES目前的可靠性和安全性是最好的,主要是體現(xiàn)在具有分組的優(yōu)勢(shì)上,就是很容易進(jìn)行鎖定和解密,對(duì)DES算法來說任何的攻擊和破壞,目前是很難在有效的時(shí)間內(nèi)完成。而56位長(zhǎng)的密鑰,按現(xiàn)在一臺(tái)計(jì)算機(jī)的運(yùn)算速度來看,如果每一秒鐘檢測(cè)一百萬個(gè)密鑰,則它搜索完全部的密鑰就需要花費(fèi)幾千年的時(shí)間,可見這是難以實(shí)現(xiàn)解密的。
DES的加密過程主要分為三階段,對(duì)第一階段來說,一開始需要通過置換IP來進(jìn)行,使需要加密的64位明文完全通過初始置換IP,同時(shí)對(duì)于輸入分組進(jìn)行更為有效的置換。接下來就是按照置換所形成的順序,把64位的置換結(jié)果分為兩個(gè)部分進(jìn)行呈現(xiàn),一般是從第1位順位開始到第32順位,這一階段一般是記為L(zhǎng)0,而從第33位到第64位記為R0。而對(duì)第二階段來說,由于DES采用了典型的Feistel結(jié)構(gòu),是一個(gè)乘積結(jié)構(gòu)的迭代密碼算法。這種算法最大的就是基于迭代關(guān)系,其核心的價(jià)值輸出是算法所規(guī)定的16次迭代變換所左右的,每一次迭代變換都可以是之前迭代變換的繼續(xù),用戶密鑰擴(kuò)展得到的子密鑰Ki作為輸入;將輸入數(shù)據(jù)的左右兩部分進(jìn)行了分組,而右半部分經(jīng)過函數(shù)f后將其輸出,所形成的關(guān)系可以與輸入數(shù)據(jù)的左半部分進(jìn)行導(dǎo)入和運(yùn)算,可以通過下面的規(guī)則來表示這一過程(假設(shè)第i次迭代所得到的結(jié)果為L(zhǎng)iRi):Li=Ri-1;Ri=Li-1⊕f(Ri-1,Ki);在最后一輪左與右半部分并未變換,而是直接將R16L16并在一起作為未置換的輸入。而第三階段是逆(初始)置換。它是初始置換IP的逆置換,記為IP-1。在對(duì)16次迭代的結(jié)果(R16L16)再使用逆置換IP-1后得到的結(jié)果即可作為DES加密的密文Y輸出,即Y=IP-1(R16 L16)。
由于DES是對(duì)稱密碼解密和加密是交織著進(jìn)行的,整個(gè)算法的原理和使用過程幾乎是相同的。只有一處不同,解密時(shí)子密鑰K的使用順序的問題,也就是說解密與加密兩者的順號(hào)正好相反,比如子密鑰加密是從K1K2…K16,那么在進(jìn)行解密時(shí)子密鑰順序正好是倒過來,從K16開始…K1,所以在使用DES解密算法的過程中,在進(jìn)行64位密文作為輸入的過程中,一般情況下是從使用子密鑰K16開始,以此類推一直到K1。
DES加密系統(tǒng)優(yōu)缺點(diǎn)是與其作為數(shù)據(jù)加密算法是分不開的,它是一種對(duì)稱加密算法,這種對(duì)稱性可能是其最大的技術(shù)漏洞,會(huì)存在被人利用漏洞的可能,目前來說DES是應(yīng)用最為廣泛的密鑰系統(tǒng),主流的金融系統(tǒng)的數(shù)據(jù)安全保護(hù)和各大企業(yè)的財(cái)務(wù)部門都采用這種加密技術(shù)。對(duì)于DES來說,它的優(yōu)點(diǎn):DES加密算法密鑰只用到了64位中的56位,這樣具有高的安全性。而它的缺點(diǎn):分組比較短、密鑰太短、密碼生命周期短、運(yùn)算速度較慢。
從DES系統(tǒng)主要是基于它的這個(gè)算法,那么從算法來看主要是基于三個(gè)不同的參數(shù)入口,這三個(gè)參數(shù)分別由Key、Data、Mode組成,在前文中以經(jīng)描述過由Key和Mode是可以進(jìn)行相互的交換來實(shí)現(xiàn),也就是說不管是Key還是Mode都是可以做為加密和解密一方來進(jìn)行對(duì)數(shù)據(jù)Data的處理。同時(shí)與其它的加密系統(tǒng)不同在于DES是對(duì)稱的加密標(biāo)準(zhǔn)。
由于作為分組密碼的形式產(chǎn)生,DES的加密單位僅有64位,采用二進(jìn)制算法,這對(duì)于數(shù)據(jù)傳輸來說相對(duì)較小,因?yàn)槊總€(gè)分組僅含8個(gè)字符的量,而且其中某些位還要用于奇偶校驗(yàn)或其他方式進(jìn)行。相對(duì)來說其處理速度較慢,另外就是在整個(gè)加密過程中耗時(shí)較長(zhǎng),在這一點(diǎn)上另外的加密技術(shù)AES就比DES更有優(yōu)點(diǎn),比它內(nèi)存的需求低,運(yùn)算速度相對(duì)比較快。但是DES加密由于其計(jì)算時(shí)間冗長(zhǎng),所以不易破解。
DES在數(shù)據(jù)加密標(biāo)準(zhǔn)化程度較高,其適用于加密大量數(shù)據(jù)的不同場(chǎng)合。尤其在快速DES芯片的研發(fā)上,近幾年來取得了大量的成就,使得DES在未來更有發(fā)展的空間和使用價(jià)值,而像AES其安全強(qiáng)度和穩(wěn)定性都有待提高。
圖1 DES加密流程圖
隨著科學(xué)技術(shù)的發(fā)展,以現(xiàn)代計(jì)算能力,使用經(jīng)過特殊設(shè)計(jì)的硬件并行處理24h內(nèi)即可被破解。雖然如此,在某些簡(jiǎn)單應(yīng)用中,我們還是可以使用DES加密算法。目前DES算法廣泛的運(yùn)用于像POS機(jī),銀行的ATM,以及一些公交磁卡及智能卡門禁IC卡,還有加油站,以及高速公路收費(fèi)站點(diǎn)基本上普及到這種密碼系統(tǒng),所以說應(yīng)用的領(lǐng)域很廣。如圖1所示。
DES的安全性是其發(fā)展和應(yīng)用前景最為關(guān)注的兩個(gè)點(diǎn),所以從這個(gè)角度來看,需要從技術(shù)上加以肯定,而安全性的角度來說與密鑰的長(zhǎng)度有關(guān)。對(duì)于DES來說其密鑰的長(zhǎng)度與其它的密碼系統(tǒng)比較起來并沒什么優(yōu)勢(shì),但隨著像3DES系統(tǒng)的發(fā)展,這種破譯的難度會(huì)越來越大,甚至到了無法搜索密鑰的難度。另外,對(duì)DES算法進(jìn)行某種變型也是完全有可能的,這主要是隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)應(yīng)用軟件代碼的升級(jí),那么對(duì)于DES來說同樣也可以有較大程度的升級(jí)和改進(jìn),這將有利的提高DES算法安全性。
結(jié)束語:對(duì)于DES加密算法來說,它的發(fā)展基于兩個(gè)版塊,一是硬件的發(fā)展,二是軟件的發(fā)展,只有在這兩個(gè)得到同時(shí)發(fā)展的前提下,DES的應(yīng)用才會(huì)有更好的保障,對(duì)于DES來說其自身的加密和解密都有賴于計(jì)算機(jī)和信息技術(shù)的發(fā)展,而硬件發(fā)展是進(jìn)一步的鞏固軟件應(yīng)用能力的平臺(tái),所以二者的同步發(fā)展至關(guān)重要。