密碼學(xué)實(shí)驗(yàn)報(bào)告三_第1頁(yè)
密碼學(xué)實(shí)驗(yàn)報(bào)告三_第2頁(yè)
密碼學(xué)實(shí)驗(yàn)報(bào)告三_第3頁(yè)
密碼學(xué)實(shí)驗(yàn)報(bào)告三_第4頁(yè)
密碼學(xué)實(shí)驗(yàn)報(bào)告三_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGE報(bào)告創(chuàng)建時(shí)間:《現(xiàn)代密碼學(xué)》實(shí)驗(yàn)報(bào)告年級(jí)、專業(yè)、班級(jí)2012級(jí)計(jì)算機(jī)科學(xué)與技術(shù)1班姓名陳康裕實(shí)驗(yàn)題目對(duì)稱密碼算法DES實(shí)驗(yàn)時(shí)間2014.11.20實(shí)驗(yàn)地點(diǎn)主教0410實(shí)驗(yàn)成績(jī)實(shí)驗(yàn)性質(zhì)■驗(yàn)證性□設(shè)計(jì)性□綜合性教師評(píng)價(jià):□算法/實(shí)驗(yàn)過程正確;□源程序/實(shí)驗(yàn)內(nèi)容提交□程序結(jié)構(gòu)/實(shí)驗(yàn)步驟合理;□實(shí)驗(yàn)結(jié)果正確;□語(yǔ)法、語(yǔ)義正確;□報(bào)告規(guī)范;其他:評(píng)價(jià)教師簽名:實(shí)驗(yàn)原理和目的DES算法屬于分組加密算法,即在明文加密和密文解密過程中,信息都是按照固定長(zhǎng)度分組后進(jìn)行處理的?;煜蛿U(kuò)散是它采用的兩個(gè)最重要的安全特性。混淆是指通過密碼算法使明文和密文以及密鑰的關(guān)系非常復(fù)雜,無(wú)法從數(shù)學(xué)上描述或者統(tǒng)計(jì)。擴(kuò)散是指明文和密鑰中的每一位信息的變動(dòng),都會(huì)影響到密文中許多位信息的變動(dòng),從而隱藏統(tǒng)計(jì)上的特性,增加密碼的安全。DES算法將明文分成64位大小的眾多數(shù)據(jù)塊,即分組長(zhǎng)度為64位。同時(shí)用56位密鑰對(duì)64位明文信息加密,最終形成64位的密文。需要注意的地方是掌握DES算法的16輪加、解密流程以及子密鑰的產(chǎn)生流程。通過用DES算法對(duì)實(shí)際的數(shù)據(jù)進(jìn)行加密和解密來深刻了解DES的運(yùn)行原理。二、實(shí)驗(yàn)項(xiàng)目?jī)?nèi)容1、算法分析(1)寫出DES算法的16輪加、解密流程;(2)寫出子密鑰的產(chǎn)生流程;2、下載DES算法的實(shí)現(xiàn)程序,并調(diào)用其程序?qū)σ粋€(gè)文件進(jìn)行加密和解密,提交程序代碼和執(zhí)行結(jié)果。3、調(diào)用下載的DES算法的實(shí)現(xiàn)程序?qū)斎氲氖M(jìn)制數(shù)加密,比較輸入和輸出,當(dāng)改變一個(gè)位時(shí)比較輸出的變化,并說明原因。三、實(shí)驗(yàn)過程或算法(源程序)1、(1)DES算法的16輪加、解密流程:加密流程解密流程(2)子密鑰的產(chǎn)生流程:子密鑰產(chǎn)生流程2、利用下列程序?qū)崿F(xiàn)一個(gè)文件的加密和解密:(程序的主要代碼,整個(gè)程序見附件)//密鑰置換1pc-1intDES_PC1_Transform(ElemTypekey[64],ElemTypetempbts[56]){intcnt;for(cnt=0;cnt<56;cnt++){tempbts[cnt]=key[PC_1[cnt]];}return0;}//密鑰置換2pc-2intDES_PC2_Transform(ElemTypekey[56],ElemTypetempbts[48]){intcnt;for(cnt=0;cnt<48;cnt++){tempbts[cnt]=key[PC_2[cnt]];}return0;}//E擴(kuò)展置換intDES_E_Transform(ElemTypedata[48]){//這里data兩種用處,故為48位極人臣intcnt;ElemTypetemp[48];for(cnt=0;cnt<48;cnt++){temp[cnt]=data[E_Table[cnt]];//這里data下標(biāo)最高為32.}memcpy(data,temp,48);return0;}//P置換intDES_P_Transform(ElemTypedata[32]){intcnt;ElemTypetemp[32];for(cnt=0;cnt<32;cnt++){temp[cnt]=data[P_Table[cnt]];}memcpy(data,temp,32);return0;}//循環(huán)左移//左右兩邊同時(shí)循環(huán)左移相同的位數(shù).//10010循環(huán)左移1位為00101,左移2位為01010intDES_ROL(ElemTypedata[56],inttimes){ElemTypetemp[56];//temp只保存將要循環(huán)到右邊的位.//保存將要循環(huán)移動(dòng)到右邊的位memcpy(temp,data,times);//保存前28位的移位memcpy(temp+times,data+28,times);//保存后28位的移位極人臣//前28位移動(dòng)memcpy(data,data+times,28-times);//一般移位memcpy(data+28-times,temp,times);//循環(huán)位移動(dòng)//后28位移動(dòng)memcpy(data+28,data+28+times,28-times);memcpy(data+56-times,temp+times,times);return0;}//生成子密鑰intDES_MakeSubKeys(ElemTypekey[64],ElemTypesubKeys[16][48]){ElemTypetemp[56];intcnt;DES_PC1_Transform(key,temp);//PC1置換for(cnt=0;cnt<16;cnt++){//16輪跌代,產(chǎn)生16個(gè)子密鑰DES_ROL(temp,MOVE_TIMES[cnt]);//CiDi左右兩邊,循環(huán)左移DES_PC2_Transform(temp,subKeys[cnt]);//PC2置換,產(chǎn)生子密鑰}return0;}//異或intDES_XOR(ElemTypeR[48],ElemTypeL[48],intcount){intcnt;for(cnt=0;cnt<count;cnt++){R[cnt]^=L[cnt];//異或即為模2加法}return0;}//S盒置換48=8*632=8*4intDES_SBOX(ElemTypedata[48]){intcnt;intline,row,output;intcur1,cur2;for(cnt=0;cnt<8;cnt++){cur1=cnt*6;cur2=cnt<<2;//計(jì)算在S盒中的行與列b1b2b3b4b5b6b1b2//b3b4b5b6line=(data[cur1]<<1)+data[cur1+5];row=(data[cur1+1]<<3)+(data[cur1+2]<<2)+(data[cur1+3]<<1)+data[cur1+4];output=S[cnt][line][row];//化為2進(jìn)制data[cur2]=(output&0X08)>>3;//取得output二進(jìn)制倒數(shù)第4位為0還是1data[cur2+1]=(output&0X04)>>2;//output=7=0111oxo4=0100data[cur2+2]=(output&0X02)>>1;//相&得到0100右移2位得到1data[cur2+3]=output&0x01;}return0;}3、調(diào)用下載的DES算法的實(shí)現(xiàn)程序?qū)斎氲氖M(jìn)制數(shù)加密。四、實(shí)驗(yàn)結(jié)果及分析和(或)源程序調(diào)試過程1、對(duì)一個(gè)文件的加密和解密:明文在d:\\plaint.txt中:通過初始密鑰d:\\key.txt(密鑰是字符型的,1個(gè)字符對(duì)應(yīng)8比特)密文在d:\\cipher.txt中:解密得到明文為d:\\result.txt中2、輸入一個(gè)十六進(jìn)制的數(shù)對(duì)其加密和解密:輸入為明文是:加密的密文是:改變明文中的2F變成1F時(shí),密文為:從實(shí)驗(yàn)結(jié)果可以看出,明文就算是相差一個(gè)位,但是他們的密文完全沒有規(guī)律可循,這就保證了數(shù)據(jù)加密的可靠性,至于這樣的原因,DES是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論