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