資源描述:
《des加密算法的硬件實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、DES加密算法的硬件實現(xiàn)//.paper.edu.cn-1-DES加密算法的硬件實現(xiàn)王厚榮北京郵電大學信息與通信工程學院,北京(100876)摘要:本文通過對DES算法的簡單介紹,了解其基本的工作原理,利用硬件描述語言(VerilogHDL)和Xilinx的ISENavigator仿真平臺來實現(xiàn)。DES加密算法是一種對稱的加密算法,具有很高的可靠性,應用非常廣泛。而作為一種硬件描述語言,VerilogHDL是在C語言的基礎上發(fā)展而來,它具有簡潔、優(yōu)美而且易學的特點,利用它可以縮短硬件設計的周期,提高設計的速度和質(zhì)量,同時利用Xilinx提供的仿真平臺
2、ISE,可以逼真的模擬硬件環(huán)境,芯片特性。而其提供的各種基本模塊和調(diào)試工具可以簡化設計,提高設計的可靠性。由于硬件本身的一些特性,如XilinxFPGA是基于查找表結構(LUT),可以充分利用這些特性來實現(xiàn)設計的優(yōu)化,設計出的硬件可以以更少的硬件資源來達到更快的速度。關鍵詞:VerilogHDL;DES;LUT中圖分類號:TP371.引言隨著通信技術和網(wǎng)絡技術的飛速發(fā)展,對于傳輸過程中數(shù)據(jù)的安全性的要求已經(jīng)越來越迫切,加密算法應運而生,人們提出各種的數(shù)據(jù)加密算法,但基本的包括兩種:對稱和非對稱加密[1]。1972年美國IBM公司提出了DES加密算法,
3、它是對稱密碼體制,可同時對大量數(shù)據(jù)進行快速加密。具有很好的加密效果,是目前為止比較可靠的加密算法。近年來,隨著硬件描述語言的快速發(fā)展,使得硬件的設計變得簡單、易學,考慮到硬件本身的一些特點,如進行很快的邏輯運算,運算速度快等,非常適合實現(xiàn)DES加密算法,因為DES有大量的邏輯運算,而且數(shù)據(jù)量大,需要很快的速度,從安全的方面考慮,利用硬件來實現(xiàn)DES,可以更加保證加密的安全和可靠。采用Xilinx公司提供的仿真環(huán)境ISE,包括其自身提供的各種功能,可以使設計變得更加的快捷。2.DES加密原理DES算法全稱為DataEncryptionStandard,
4、即數(shù)據(jù)加密算法,它是IBM公司于1975年研究成功并公開發(fā)表的。DES算法的入口參數(shù)有三個:Key、Data、Mode。其中Key為8個字節(jié)共64位,是DES算法的工作密鑰;Data也為8個字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密或解密。DES算法是這樣工作的:如Mode為加密,則用Key去把數(shù)據(jù)Data進行加密,生成Data的密碼形式(64位)作為DES的輸出結果;如Mode為解密,則用Key去把密碼形式的數(shù)據(jù)Data解密,還原為Data的明碼形式(64位)作為DES的輸出結果。具體工作過程如下:DES算法把6
5、4位的明文輸入塊變?yōu)?4位的密文輸出塊,它所使用的密鑰也是64位,整個算法的主流程如下:其功能是把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L0、R0兩部分,每部分各長32位,其置換規(guī)則如下[2]:58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,//.paper.edu.cn-2-61,53,45,37,9><>29,21,1
6、3,5,63,55,47,39,31,23,15,7,即將輸入的第58位換到第1位,第50位換到第2位,……,依此類推,最后一位是原來的第7位,L0、R0則是換位輸出后的兩部分。L0是輸出的左32位,R0是右32位,例:設置換前的輸入值為D1D2D3……D64,則經(jīng)過初始變換后的結果為:L0=D58D50……D8;R0=D57D49……D7。經(jīng)過16次迭代運算后,得到Ll6、Rl6,將此作為輸入,進行逆置換,即得到密文輸出。逆置換正好是初始置換的逆運算。DES的每輪迭代由如下函數(shù)完成:R[i]=L[i-1]xorf(R[i-1],k[i]);L[i]
7、=R[i-1];其中,輪密鑰Ki為48bit,輪輸入R為32bit,R首先被擴展為48bit,其中將R的16bit各重復一次。擴展后的48bit再與子密鑰Kj異或,然后通過一個S盒,產(chǎn)生一個32bit的輸出。其中函數(shù)f是通過8個S-box來實現(xiàn)的,每個S-box輸入長為6比特,輸出為4比特,它可以實現(xiàn)非線性變換,是整個算法的關鍵。DES加密算法如圖1所示:3.DES硬件實現(xiàn)3.1DES設計思想DES的硬件實現(xiàn)可以分為三個模塊:密鑰產(chǎn)生模塊,一輪加/解密模塊,最后由一個控制模塊來實現(xiàn)頂層模塊并把其它兩個模塊組合起來,密鑰模塊產(chǎn)生所需要的16個密鑰,一輪
8、加/解密模塊來實現(xiàn)一輪的變換,頂層控制模塊來控制對數(shù)據(jù)進行加密還是解密并對明文進行置換,因為DES加解密所用