des算法實(shí)驗(yàn)報(bào)告_第1頁(yè)
des算法實(shí)驗(yàn)報(bào)告_第2頁(yè)
des算法實(shí)驗(yàn)報(bào)告_第3頁(yè)
des算法實(shí)驗(yàn)報(bào)告_第4頁(yè)
des算法實(shí)驗(yàn)報(bào)告_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

《計(jì)算機(jī)安全技術(shù)》實(shí)驗(yàn)報(bào)告

一、實(shí)驗(yàn)內(nèi)容:des加密解密算法實(shí)現(xiàn)二、實(shí)驗(yàn)環(huán)境:1、操作系統(tǒng):WindowsXP及以上2、編程工具:VisualC++6.0三、實(shí)驗(yàn)原理:DES算法為密碼體制中的對(duì)稱密碼體制,又被成為美國(guó)數(shù)據(jù)加密標(biāo)準(zhǔn),是1972年美國(guó)IBM公司研制的對(duì)稱密碼體制加密算法。明文按64位進(jìn)行分組,密鑰長(zhǎng)64位,密鑰事實(shí)上是56位參與DES運(yùn)算(第8、16、24、32、40、48、56、64位是校驗(yàn)位,使得每個(gè)密鑰都有奇數(shù)個(gè)1)分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法?;驹恚浩淙肟趨?shù)有三個(gè):key、data、mode。key為加密解密使用的密鑰,data為加密解密的數(shù)據(jù),mode為其工作模式。當(dāng)模式為加密模式時(shí),明文按照64位進(jìn)行分組,形成明文組,key用于對(duì)數(shù)據(jù)加密,當(dāng)模式為解密模式時(shí),key用于對(duì)數(shù)據(jù)解密。實(shí)際運(yùn)用中,密鑰只用到了64位中的56位,這樣才具有高的安全性。算法特點(diǎn):分組比較短、密鑰太短、密碼生命周期短、運(yùn)算速度較慢。四、算法流程設(shè)計(jì):1、DES算法整體結(jié)構(gòu):2、16輪迭代:3、子密鑰產(chǎn)生:4、f函數(shù):五、算法實(shí)現(xiàn):1、部分函數(shù)定義:staticvoidF_func(boolIn[],constboolKi[]);//F函數(shù)staticvoidS_func(boolOut[],constboolIn[]);//S盒代替staticvoidTransform(bool*Out,bool*In,constchar*Table,intlen);//變換staticvoidXor(bool*InA,constbool*InB,intlen);//異或staticvoidRotateL(bool*In,intlen,intloop);//循環(huán)左移staticvoidByteToBit(bool*Out,constchar*In,intbits);//字節(jié)組轉(zhuǎn)換成位組staticvoidBitToByte(char*Out,constbool*In,intbits);//位組轉(zhuǎn)換成字節(jié)組staticvoidBitToHex(char*Out,constbool*In,intbits);//將二進(jìn)制轉(zhuǎn)換為十六進(jìn)制2、主要功能模塊:voidDes_SetKey(constcharKey[]){//生成子密鑰staticboolK[64],*KL=&K[0],*KR=&K[28];ByteToBit(K,Key,64);for(inti=0;i<16;i++) {RotateL(KL,28,LOOP_Table[i]);//循環(huán)左移RotateL(KR,28,LOOP_Table[i]);Transform(SubKey[i],K,PC2_Table,48);//PC2變換}}voidDes_Run(charOut1[],charOut2[],charIn[],boolType){//des加密解密過(guò)程staticboolM[64],Tmp[32],*Li=&M[0],*Ri=&M[32];ByteToBit(M,In,64);Transform(M,M,IP_Table,64);//IP置換if(Type==ENCRYPT){//加密for(inti=0;i<16;i++){memcpy(Tmp,Ri,32);F_func(Ri,SubKey[i]);//F函數(shù)Xor(Ri,Li,32);//異或memcpy(Li,Tmp,32);}}else{//解密for(inti=15;i>=0;i--){memcpy(Tmp,Li,32);F_func(Li,SubKey[i]);//F函數(shù)Xor(Li,Ri,32);//異或memcpy(Ri,Tmp,32);} }Transform(M,M,IPR_Table,64);//IP-1置換BitToByte(Out1,M,64);//Out1為字符形式密文 BitToHex(Out2,M,64);//Out2為十六進(jìn)制數(shù)形式密文}voidF_func(boolIn[],constboolKi[]){//F函數(shù)staticboolMR[48];Transform(MR,In,E_Table,48);//E擴(kuò)展Xor(MR,Ki,48);//異或密鑰S_func(In,MR);//S盒代換Transform(In,In,P_Table,32);//P置換}3、調(diào)試中遇到的問(wèn)題及解決辦法問(wèn)題:通過(guò)BitToByte()函數(shù)轉(zhuǎn)換只能看到字符形式的密文,為亂碼。解決辦法:增加一個(gè)二進(jìn)制和十六進(jìn)制之間的轉(zhuǎn)換函數(shù)BitToHex(),即可輸出十六進(jìn)制數(shù)形式的密文。六、實(shí)驗(yàn)結(jié)果

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論