版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
DES加解密算法商晴慶2013210684趙建博2013210695申文博20132106761算法思想2算法原理3主要代碼目錄1算法思想2算法原理3主要代碼101Application02Application03Application04Application混淆和擴(kuò)散原則
盡可能使密文和加密密鑰之間的統(tǒng)計(jì)關(guān)系更加復(fù)雜,以阻止攻擊者擁有一些密文的統(tǒng)計(jì)特性。迭代結(jié)構(gòu)
使其結(jié)構(gòu)清晰,調(diào)理清楚,算法為對(duì)合運(yùn)算,便于實(shí)現(xiàn),運(yùn)行速度快?;贔eistel結(jié)構(gòu)
優(yōu)點(diǎn):由于它是對(duì)稱的密碼結(jié)構(gòu),所以對(duì)信息的加密和解密的過(guò)程就極為相似,甚至完全一樣。乘積密碼乘積密碼是指依次使用兩個(gè)或者兩個(gè)以上的基本密碼,所得結(jié)果的密碼強(qiáng)度將強(qiáng)于單個(gè)密碼的強(qiáng)度。
1算法思想1算法思想2算法原理3主要代碼22.12.22.3密鑰生成算法原理BUSINSSINFOGRAPHICS加密操作解密操作22.1子密鑰生成原理圖取得密鑰等分密鑰密鑰移位密鑰選取迭代16次2.1子密鑰生成步驟64位密鑰,去除64位密碼中作為奇偶校驗(yàn)位,剩下56位。56位輸入密鑰分成均等的A,B兩部分,每部分為28位。按表,在第i次迭代時(shí)密鑰循環(huán)左移相應(yīng)的的位數(shù)。進(jìn)行16次迭代,得到16個(gè)子密鑰。左右兩部分通過(guò)置亂合并得到56位,再壓縮成48位,與明文異或操作。2.2加密操作原理圖取得數(shù)據(jù)初始換位數(shù)據(jù)擴(kuò)展數(shù)據(jù)壓縮數(shù)據(jù)換位2.2加密操作步驟按照置位表進(jìn)行換位通過(guò)S盒,將右48位明文從6*8變換成4*8=32位64位均分成左右部分各32位,并將右32位擴(kuò)展成48位進(jìn)行IP置換,得到新的64位明文取得64位的明文數(shù)據(jù)塊2.2交換數(shù)據(jù)迭代16次數(shù)據(jù)整理按照表進(jìn)行IP逆置換,得到密文進(jìn)行16次相同的操作將變換好的左右32位進(jìn)行交換2.2加密操作S盒原理圖DES解密2.3解密操作解密可以表示為:與加密進(jìn)行完全相反的操作順序即可,這也充分體現(xiàn)了對(duì)稱密碼結(jié)構(gòu)的方便性。1算法思想3主要代碼32算法原理A重要接口函數(shù)說(shuō)明3這個(gè)函數(shù)中將輸入值,按照Table表的順序轉(zhuǎn)換,最后賦值到輸出函數(shù)中,是算法中比較重要的一個(gè)函數(shù),因?yàn)閐es算法中多次需要表順序打亂。voidTransform(bool*Out,bool*In,constchar*Table,intNumber){for(inti=0;i<Number;++i)CC[i]=In[Table[i]-1];memcpy(Out,CC,Number);}置亂函數(shù)B重要接口函數(shù)說(shuō)明3voidDES_Main(charOut[8],charIn[8],constPS_KeyPS_Key,boolType){staticboolM[64],CC[32],*Li=&M[0],*Ri=&M[32];//M用于存儲(chǔ)64位二進(jìn)制,輸入的是8位英文。ChangeToBit(M,In,64); //轉(zhuǎn)換Transform(M,M,IP_Table,64);//按表進(jìn)行換位。if(Type==ENCRYPT){//判斷是否加密for(inti=0;i<16;++i){memcpy(CC,Ri,32);//Ri轉(zhuǎn)換到CC中F_funchange(Ri,(*PS_Key)[i]);//PS_Key存儲(chǔ)子密鑰Xor(Ri,Li,32);//R和L異或memcpy(Li,CC,32);//將這次的R放入下次的L}}else{for(inti=15;i>=0;--i){memcpy(CC,Li,32);F_funchange(Li,(*PS_Key)[i]);Xor(Li,Ri,32);memcpy(Ri,CC,32);} }Transform(M,M,IPR_Table,64);ChangeToByte(Out,M,64);}加解密函數(shù)函數(shù)現(xiàn)將輸入的8位數(shù)值進(jìn)行轉(zhuǎn)換ChangeToBit(M,In,64),再開(kāi)始初始置換,接著判斷是否加密,加密時(shí),按加密步驟,解密時(shí),執(zhí)行加密相反步驟。C重要接口函數(shù)說(shuō)明3輸入了32位的R邊之后,通過(guò)E表的轉(zhuǎn)換,再與密鑰進(jìn)行異或操作,再通過(guò)S盒的置換最后P表轉(zhuǎn)換。這個(gè)函數(shù)通過(guò)DES_MAIN調(diào)用而使用,這個(gè)函數(shù)完成了DES大部分操作。voidF_funchange(boolIn[32],constboolKi_table[48]){staticboolMR[48];Transform(MR,In,E_Table,48);Xor(MR,Ki_table,48);S_Change(In,MR);Transform(In,In,P_Table,32);}主變換函數(shù)D重要接口函數(shù)說(shuō)明3利用對(duì)字符串的賦值來(lái)實(shí)現(xiàn),先將In將被移走的數(shù)賦值到一個(gè)保持的數(shù)CC中,然后將In除去移走的位數(shù)移給In,然后將開(kāi)始保存的數(shù)賦值給In的右邊幾位。voidRollRight(bool*In,intNumber,intloop){memcpy(CC,In,loop);memcpy(In,In+loop,Number-loop);memcpy(In+Number-loop,CC,loop);}循環(huán)左移函數(shù)E重要接口函數(shù)說(shuō)明3ChangeToBit中,將Byte轉(zhuǎn)換成8位機(jī)器碼,同理ChangeToByte將8位機(jī)器碼轉(zhuǎn)換為1個(gè)字母。voidChangeToBit(bool*Out,constchar*In,intBs){for(inti=0;i<Bs;++i)Out[i]=(In[i>>3]>>(i&7))&1;}voidChangeToByte(char*Out,constbool*In,intBs){memset(Out,0,Bs>>3);for(inti=0;i<Bs;++i)Out[i>>3]|=In[i]<<(i&7);}比特轉(zhuǎn)換函數(shù)F重要接口函數(shù)說(shuō)明3完成多次的DES算法加密,達(dá)到更高的加密效果,進(jìn)行判斷,若Is3DES為真,則開(kāi)始多重加密。boolDES::Des_Start(char*Out,char*In,longdataNumber,constchar*Key,intkeyNumber,boolType){if(!(Out&&In&&Key&&(dataNumber=(dataNumber+7)&0xfffffff8))) returnfalse; GetAndSetKey(Key,keyNumber); if(!Is3DES){//1次DES for(longi=0,j=dataNumber>>3;i<j;++i,Out+=8,In+=8) DES_MAIN(Out,In,&MiniKey[0],Type); //一次DES加密::解密 }else{//3次DES加密:加(key0)-解(key1)-加(key0)解密::解(key0)-加(key1)-解(key0) for(longi=0,j=dataNumber>>3;i<j;++i,Out+=8,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅綠化養(yǎng)護(hù)合同
- 《榜樣9》觀后感:新時(shí)代共產(chǎn)黨人的精神力量
- 電影評(píng)論中背景設(shè)定的藝術(shù)分析
- 2024高中地理第2章區(qū)域可持續(xù)發(fā)展第6節(jié)區(qū)域工業(yè)化與城市化進(jìn)程-以珠江三角洲為例精練含解析湘教版必修3
- 2024高中物理第三章相互作用2彈力課后作業(yè)含解析新人教版必修1
- 2024高中語(yǔ)文第6單元墨子蚜第3課尚賢練習(xí)含解析新人教版選修先秦諸子蚜
- 2024高中語(yǔ)文第六課語(yǔ)言的藝術(shù)第4節(jié)入鄉(xiāng)問(wèn)俗-語(yǔ)言和文化練習(xí)含解析新人教版選修語(yǔ)言文字應(yīng)用
- 2024高考化學(xué)一輪復(fù)習(xí)課練22化學(xué)反應(yīng)的方向與限度含解析
- 校長(zhǎng)在新學(xué)期第一次年級(jí)組長(zhǎng)會(huì)議上講話
- 小學(xué)一年級(jí)綜合與實(shí)踐教學(xué)計(jì)劃
- 榮譽(yù)證書(shū)打印模板word格式
- 營(yíng)養(yǎng)學(xué)與健康
- 單位工會(huì)組織活動(dòng)方案(9篇)
- 人教版五年級(jí)數(shù)學(xué)下冊(cè)(全冊(cè))同步練習(xí)隨堂練習(xí)一課一練
- GB/T 29165.4-2015石油天然氣工業(yè)玻璃纖維增強(qiáng)塑料管第4部分:裝配、安裝與運(yùn)行
- 血液凈化十大安全目標(biāo)課件
- 鼻竇負(fù)壓置換療課件
- 國(guó)際森林日森林防火教育宣傳主題班會(huì)PPT模板
- 藥廠質(zhì)量管理部QA人員崗位設(shè)置表
- 劍橋國(guó)際少兒英語(yǔ)“第三級(jí)”單詞默寫(xiě)表
- (精心整理)高中生物必修二非選擇題專題訓(xùn)練
評(píng)論
0/150
提交評(píng)論