des加密算法

des加密算法

ID:26568395

大小:89.03 KB

頁數(shù):25頁

時間:2018-11-27

des加密算法_第1頁
des加密算法_第2頁
des加密算法_第3頁
des加密算法_第4頁
des加密算法_第5頁
資源描述:

《des加密算法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、實驗二DES加密算法一、實驗?zāi)康?理解對稱加密算法的原理和特點以及DES和AES算法的加密原理。二、實驗原理:在DES這個加密系統(tǒng)中,每次加密或解密的分組大小均為64位,所以DES沒有密文擴(kuò)充的問題。對大于64位的明文只要按每64位一組進(jìn)行切割,而對小于64位的明文只要在后面補(bǔ)“0”即可,另一方面,DES所用的加密或解密密鑰也是64位大小,但因其中有8個位是用來作奇偶校驗的,所以64位中真正起密鑰作用的只有56位,密鑰過短也是DES最大的缺點。DES加密與解密所用的算法除了子密鑰的順序不同外,其他部分完全相同。算法過程:1.對輸入的密鑰進(jìn)行變換。用戶的64

2、bit密鑰,其中第8,16,24,32,40,48,56,64位是校驗位,使得每個密鑰都有奇數(shù)個1。所以密鑰事實上是56位。變換后得到56bit數(shù)據(jù),將它分成兩部分,C[0][28],D[0][28]。2.計算16個子密鑰,計算方法C[i][28]D[i][28]為對前一個C[i-1][28],D[i-1][28]做循環(huán)左移操作。3.串聯(lián)計算出來的C[i][28]D[i][28]得到56位,然后對它進(jìn)行如下變換得到48位子密鑰K[i][48]4.對64bit的明文輸入進(jìn)行換位變換。得到64位數(shù)據(jù),將這數(shù)據(jù)前后分成兩塊L[0][32],R[0][32]。5.

3、加密過程,對R[i][32]進(jìn)行擴(kuò)展變換成48位數(shù),記為E(R[i][32])。6.將E(R[i][32])與K[i][48]作異或運算,得到48位數(shù),將48位數(shù)順序分成8份,6位一份,B[8][6]。7.使用S[i]替換B[i][6]。過程如下:取出B[i][6]的第1位和第6位連成一個2位數(shù)m,m就是S[i]中對應(yīng)的行數(shù)(0-3),取出B[i][6]的第2到第5位連成一個4位數(shù)n(0-15),n就是S[i]中對應(yīng)的列數(shù),用S[i][m][n]代替B[i][6]。S是4行16列的對應(yīng)表,里面是4位的數(shù),一共有8個S。8.將從B[i][6]經(jīng)過S得到的8個

4、4位數(shù)連起來得到32位數(shù)。9.把R[i-1][32]的值賦給L[i],從5開始循環(huán)。直到K[16][48]結(jié)束。10.將最后的L,R合并成64位,然后進(jìn)行如下轉(zhuǎn)化得到最后的結(jié)果。這是對第4步的一個逆變化。11.解密過程同樣,只需要把16個子密鑰K[i][48]的順序顛倒過來就行了。?輸入8個字節(jié)流程圖:8個字節(jié)轉(zhuǎn)化成二進(jìn)制64位輸入密鑰,設(shè)置成字節(jié),并轉(zhuǎn)化成64位初始置換將64位密鑰通過置換選擇1,輸出56位密鑰將文本段分為左右兩個部分經(jīng)過循環(huán)左移,置換選2,變換后輸出48位密鑰右部分(32位)位)左部分(32位)48位密鑰擴(kuò)展運算(48)位異或XOR()

5、左右交換,rount++選擇壓縮變換S盒代換Round<16置換運算P,輸出32位逆初始置換DES加密結(jié)束,顯示加密后的文本64位二進(jìn)制轉(zhuǎn)化成8字節(jié)三、實驗設(shè)備:Windows虛擬機(jī)CIS工具箱——該實驗使用加密解密工具驗證實驗結(jié)果四、實驗步驟:用C語言編寫DES算法代碼,代碼如下:#include#include//明文IP置換坐標(biāo)intDataIP[]={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,

6、32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7};charpreData[8];//用戶輸入的明文charpreKey[8];//用戶輸入的密鑰intData64[64];//8個明文通過十進(jìn)制轉(zhuǎn)二進(jìn)制得到的64bit明文intKey64[64];//8個密鑰通過十進(jìn)制轉(zhuǎn)二進(jìn)制得到的64bit密鑰intDataTemp[64];//Data64[]通過IP置換得到的64bit明文,用于得到L0和R0in

7、tL0[32],R0[32];intflagDorK=0;//標(biāo)志位,如果是1的時候表示明文,是0的時候表示密文//此段全局變量服務(wù)于段雪琦所寫所用函數(shù)//PC_1置換坐標(biāo)表intPC_1[56]={57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4};//PC_2置換坐標(biāo)表intPC_2[4

8、8]={14,17,11,24,1,5,3,28,15,6,21,

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。