潘建生 孔蘇鵬 程實
摘 ? 要:文章主要研究探析了DES加密算法安全性問題,首先介紹了實現(xiàn)DES加密算法安全性的過程,主要包括兩個方面的內(nèi)容:DES算法的工作流程以及DES算法的加密過程,并通過這兩個方面的內(nèi)容,分析了DES算法的IP變換以及逆變換和S盒換位表等問題,并找出了其中存在的換位規(guī)則。之后在此基礎(chǔ)上,探討了DES算法實現(xiàn)方法的改進方法,希望能夠為以后相關(guān)方面的研究工作提供一些參考。
關(guān)鍵詞:DES;安全性;加密
中圖分類號: TP393 ? ? ? ? ?文獻標(biāo)識碼:A
Abstract: The article mainly studies and analyzes the security problem of the DES encryption algorithm. First, it introduces the process of implementing the security of the DES encryption algorithm, which mainly includes two aspects: the workflow of the DES algorithm and the encryption process of the DES algorithm, and through these two aspects The content of the DES algorithm is analyzed, such as IP transformation, inverse transformation and S box transposition table, and the transposition rules existing therein are found. After that, the improvement method of the DES algorithm implementation method is discussed. Provide some reference for the related research work in the future.
Key words: DES; security; encryption
1 引言
DES是一種分組密碼體制的數(shù)據(jù)加密算法,而相應(yīng)的數(shù)據(jù)加密標(biāo)準(zhǔn)在20世紀(jì)70年代就已經(jīng)由美國國家標(biāo)準(zhǔn)局頒布實施。DES加密算法的整個加密流程已經(jīng)公開,但是其技術(shù)細(xì)節(jié)以及算法設(shè)計的原理并沒有公開,這也使DES算法的安全性得到了有效地保障。截止目前,對DES算法較為有效的攻擊手段只有窮舉搜索法,除此之外的其他方法都很難對DES算法產(chǎn)生有效的影響。目前,DES算法已經(jīng)廣泛應(yīng)用到多個領(lǐng)域,比如ATM、高速公路收費站以及IC卡等,以此來保護其中的關(guān)鍵數(shù)據(jù),又比如MAC校檢金融交易數(shù)據(jù)包等,都是DES算法的具體應(yīng)用。
2 實現(xiàn)DES加密算法安全性的過程
DES算法共有Mode、Data以及Key三個入口參數(shù)。其中,DES算法的工作密匙為8字節(jié)共64位的Key,需要被解密或者加密的數(shù)據(jù)是8字節(jié)64位的Data,DES算法的工作方式為Mode,共有解密和加密兩種方式。
2.1 DES算法的工作流程
如果Mode的工作方式為加密,那么就使用工作密匙Key加密明文數(shù)據(jù)Data,這樣DES算法的輸出結(jié)果就是生成的Data密文;如果Mode的工作方式為解密,那么就使用工作密匙Key解密明文數(shù)據(jù)Data,這樣DES算法的輸出結(jié)果就是還原之后的Data明文。互相通信的雙方需要協(xié)商制定相同的工作密匙Key,并使用工作密匙Key對通信源點的明文數(shù)據(jù)進行加密,之后通過公共通信網(wǎng)絡(luò)向通信網(wǎng)路的終點傳輸密文形式的數(shù)據(jù)。
達到目的地之后,接收者使用之前約定好的工作密匙Key解密相應(yīng)的密文數(shù)據(jù),這樣就能夠?qū)⒆畛醯拿魑臄?shù)據(jù)還原。通過這樣的方式,能夠使公共通信網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)目煽啃院桶踩缘玫匠浞值谋WC。
2.2 DES算法的加密過程
DES算法的加密過程大體上可以分為三個步驟。
(1)使用初始置換函數(shù)IP對給定的64比特的明文y進行排列,從而將長為64比特的串y0構(gòu)造出來;這樣就可以得出IP(y)=L0R0=y0,而L0和R0則分別表示y0的前、后32比特。
(2)對16次迭代進行相應(yīng)的計算,設(shè)yi-1=Li-1Ri-1為前i-1次的迭代結(jié)果,那么就可以得出算式Li=Ri-1;Ri=Lif (Ri-1,ki);i=1……16,即第i次的迭代運算;其中表示yi-1前、后32比特的分別是Li-1和Ri-1,而 符號則是表示對兩個比特串進行“異或”運算,f主要由S盒置換構(gòu)成,另外ki是一個48比特長的塊。
(3)通過IP-1逆置換比特串R16L16就可以將密文x編制出來,即IP-1(R16L16)=x,IP的逆置換就是置換IP-1。逆置換IP-1和置換IP的數(shù)據(jù)對應(yīng)表如表1所示。
接下來對初始置換IP和IP-1、密匙產(chǎn)生的ki、S盒以及函數(shù)f分別進行說明。
(1)IP,IP-1的置換。根據(jù)上表可以對IP和IP-1的輸入比特和輸出比特之間的對應(yīng)關(guān)系進行有效的把握。從一維形式的角度看待這個矩陣,位移明文第m位到IP置換后的i*8+j位,即m=IP(i*8+j),那么對于IP IP-1=IP-1 IP=I這個式子,IP-1完全滿足。
(2)函數(shù)f。由上文可知,選取Ri-1的32位中的某些位就能夠使位選擇表E構(gòu)成48位,并且其一共分為8組,每一組中都有6位。也就是E能夠擴展置換32位為48位。由密匙產(chǎn)生的ki是一個比特串共有48位,通過按位作模加法計算ki與E的選位結(jié)果,可以得到一個48位的輸出,即E(Ri-1)ki,可以以每一組6位的方法將其劃分為8組,這樣就可以輸出8個S盒。而每個輸出4位的S盒,一共為32位。而P的輸出就是S盒的輸出,對輸入進行位置換是P的主要功能。
(3)密匙產(chǎn)生的ki。首先設(shè)64位的密匙串為K=K1……K64,但是其中一些位置要用作奇偶校驗位,即第8位、16位、32位、40位、48位以及64位,也就是說實際上密匙并非64位,而是56位。這樣就要分16輪構(gòu)造ki,i=1,2……16。首先,使用PC-1對給定的密匙K進行選位,選位確定之后可以設(shè)C0為前28位,D0為后28位。之后開始進行第一輪,也就是使C0左移LS1,這樣就可以得到C1,之后重復(fù)以上操作使D0左移LS1,這樣就可以得到D1,之后再使用PC-2針對C1D1進行相應(yīng)的選位,就可以得到k1。接著開始進行第二輪,也就是針對C1,使D1向左位移LS2,這樣就可以得到相應(yīng)的C2、D2,之后再使用PC-2針對C2D2進行相應(yīng)的選位,這樣就能夠得到k2。之后一直重復(fù)上述步驟,就可以將k3、k4、k5、k6……k16計算出來。
(4)S盒的工作原理。S盒的輸入和輸出分別是6位和4位,本文以S1為例詳細(xì)說明其具體的運行過程,首先設(shè)A為輸入,并且A=a1a2a3a4a5a6,這時0到15之間的一個數(shù)是a2a3a4a5所代表的二進制數(shù),并將其記作k=a2a3a4a5;與此同時0到3之間的一個數(shù)是a1a6所代表的二進制數(shù),并將其記作h=a1a6。這時通過查找S1的k列和h行就能夠得到數(shù)B,并且數(shù)B在0到5之間,同時可以使用4為二進制數(shù)來表示數(shù)B,這樣就可以設(shè)S1的輸出為:B=b1b2b3b4。DES算法的解密過程與加密過程相一致,因此k16只需要在第一次迭代過程中使用,而k15則在第二次迭代中使用,之后以此類推,最后k1在最后一次的迭代中使用。
3 DES算法實現(xiàn)方法的改進分析
目前,應(yīng)用比較廣泛的方法主要是針對IP變換表實現(xiàn)方法的改進。根據(jù)表1可得將一組64比特的明文M(64)輸入之后,就可以得到0,1,2……63的編號次序,這時用M(64)的第1到第8行替換原來的2,4,6,8和1,3,5,7列,變換完成之后再將其翻轉(zhuǎn)180°,這樣就能夠?qū)(64)的初始換位表IP(64)推算出來。
利用相反的辦法,即使用64比特的字符串R16L16的2,4,6,8和1,3,5,7列替換原來的第1到第8行,變換完成之后再將其翻轉(zhuǎn)180°,這樣就可以將IP-1換位表推算出來。找到并充分的把握這個規(guī)律對程序?qū)崿F(xiàn)的改進有著很大的幫助,并且還能夠使計算速度得到顯著的提高。
在設(shè)計軟件的過程中,兩個表的操作可以用一個表充分實現(xiàn),從而使程度的大小大幅減小。另外,IP和IP-1變換表也可以直接用算式替代,與傳統(tǒng)的查表相比,算式能夠使計算的速度大幅提高。
除了第一種方法之外,還可以通過改進S盒算法的實現(xiàn)方法,使其執(zhí)行效率得到有效的提高。具體來說,在盒運算的過程中,可以設(shè)a1a2a3a4a5a6=A,之后記a1a6=h且a2a3a4a5=k,那么輸出值就是Si(i=1,2,3,4,……8)表中h行以及k列所對應(yīng)的具體的值。另外,因為a2a3a4a5+a1a6*16與a2a3a4a5a1a6相等,所以在使用相應(yīng)的軟件對其進行實現(xiàn)的過程中,可以根據(jù)一維表的格式對S盒的二維表進行相應(yīng)的轉(zhuǎn)化操作,這樣就能夠?qū)⒃诙S表(4行,16列)轉(zhuǎn)換為一個一維表(逐行接續(xù)),從而將查找對應(yīng)值Si(a1a6,a2a3a4a5)轉(zhuǎn)化為在一維表中直接查找a2a3a4a5a1a6對應(yīng)值,這樣就可以使程序的運行速度大幅提高。
另外,還可以將E表的第2列進行轉(zhuǎn)化,使其成為第6列,之后再對PC-2表的第2列進行轉(zhuǎn)化,使其成為第6列,然后將Si(i=1,2,3,4,……8)表轉(zhuǎn)化為一維表,這樣以往需要對a1a2行以及a3a4a5a6列的對應(yīng)值,而現(xiàn)在只需要對一維表中a1a2a3a4a5a6的對應(yīng)值進行查找就可以了。通過對這兩個方面的改進,能夠使DES算法設(shè)計的難度大幅降低,并使算法的執(zhí)行效率得到顯著提高。
4 結(jié)束語
總而言之,在明文數(shù)據(jù)的加密傳輸中DES算法已經(jīng)得到了非常廣泛的應(yīng)用,該加密方法具有較高的安全性。但是,對于一少部分明文數(shù)據(jù)的加密效果還不太理想。特別是在某些領(lǐng)域的應(yīng)用中DES算法還存在一些不足,破譯者可以利用漏洞獲取傳輸中的明文數(shù)據(jù),這對DES算法的安全強度產(chǎn)生了嚴(yán)重的影響,針對這種現(xiàn)象本文提出了相應(yīng)的DES算法實現(xiàn)方法的改進措施,但是這個問題仍需引起注意并及時采取合理有效的措施改進和完善DES算法,只有這樣才能夠使明文數(shù)據(jù)傳輸?shù)陌踩缘玫接行У谋U稀?/p>
基金項目:
教育部協(xié)同育人項目(項目編號:201901164001)。
參考文獻
[1] 賈俊. DES分組加密算法的分析研究與應(yīng)對策略[J].信息通信, 2019(6):4-4.
[2] 翁云翔.基于DES和RSA的混合加密算法研究與設(shè)計[J].電子設(shè)計工程, 2016, 24(17):42-44.
[3] 張文娟,吳聰,余梅生,等.利用多值和模糊屬性的云輔助WBAN數(shù)據(jù)加密算法[J].計算機應(yīng)用研究, 2016, 33(5):1537-1541.
[4] 王爽,陳麗. DES解密過程與安全性的探討[J].新疆師范大學(xué)學(xué)報:自然科學(xué)版, 2019(1):39-42.
[5] 祁鑫,魏美榮,蔣文保.口令加密算法安全性分析與對比[J].網(wǎng)絡(luò)空間安全,2016(Z2):34-38.
[6] 劉齊宏,楊豪.一種基于DES算法的RFID加解密模塊計[J].科技資訊, 2019(27):13-15.