版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
DES加解密算法商晴慶2013210684趙建博2013210695申文博20132106761算法思想2算法原理3主要代碼目錄1算法思想2算法原理3主要代碼101Application02Application03Application04Application混淆和擴散原則
盡可能使密文和加密密鑰之間的統(tǒng)計關系更加復雜,以阻止攻擊者擁有一些密文的統(tǒng)計特性。迭代結(jié)構(gòu)
使其結(jié)構(gòu)清晰,調(diào)理清楚,算法為對合運算,便于實現(xiàn),運行速度快?;贔eistel結(jié)構(gòu)
優(yōu)點:由于它是對稱的密碼結(jié)構(gòu),所以對信息的加密和解密的過程就極為相似,甚至完全一樣。乘積密碼乘積密碼是指依次使用兩個或者兩個以上的基本密碼,所得結(jié)果的密碼強度將強于單個密碼的強度。
1算法思想1算法思想2算法原理3主要代碼22.12.22.3密鑰生成算法原理BUSINSSINFOGRAPHICS加密操作解密操作22.1子密鑰生成原理圖取得密鑰等分密鑰密鑰移位密鑰選取迭代16次2.1子密鑰生成步驟64位密鑰,去除64位密碼中作為奇偶校驗位,剩下56位。56位輸入密鑰分成均等的A,B兩部分,每部分為28位。按表,在第i次迭代時密鑰循環(huán)左移相應的的位數(shù)。進行16次迭代,得到16個子密鑰。左右兩部分通過置亂合并得到56位,再壓縮成48位,與明文異或操作。2.2加密操作原理圖取得數(shù)據(jù)初始換位數(shù)據(jù)擴展數(shù)據(jù)壓縮數(shù)據(jù)換位2.2加密操作步驟按照置位表進行換位通過S盒,將右48位明文從6*8變換成4*8=32位64位均分成左右部分各32位,并將右32位擴展成48位進行IP置換,得到新的64位明文取得64位的明文數(shù)據(jù)塊2.2交換數(shù)據(jù)迭代16次數(shù)據(jù)整理按照表進行IP逆置換,得到密文進行16次相同的操作將變換好的左右32位進行交換2.2加密操作S盒原理圖DES解密2.3解密操作解密可以表示為:與加密進行完全相反的操作順序即可,這也充分體現(xiàn)了對稱密碼結(jié)構(gòu)的方便性。1算法思想3主要代碼32算法原理A重要接口函數(shù)說明3這個函數(shù)中將輸入值,按照Table表的順序轉(zhuǎn)換,最后賦值到輸出函數(shù)中,是算法中比較重要的一個函數(shù),因為des算法中多次需要表順序打亂。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ù)說明3voidDES_Main(charOut[8],charIn[8],constPS_KeyPS_Key,boolType){staticboolM[64],CC[32],*Li=&M[0],*Ri=&M[32];//M用于存儲64位二進制,輸入的是8位英文。ChangeToBit(M,In,64); //轉(zhuǎn)換Transform(M,M,IP_Table,64);//按表進行換位。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存儲子密鑰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ù)值進行轉(zhuǎn)換ChangeToBit(M,In,64),再開始初始置換,接著判斷是否加密,加密時,按加密步驟,解密時,執(zhí)行加密相反步驟。C重要接口函數(shù)說明3輸入了32位的R邊之后,通過E表的轉(zhuǎn)換,再與密鑰進行異或操作,再通過S盒的置換最后P表轉(zhuǎn)換。這個函數(shù)通過DES_MAIN調(diào)用而使用,這個函數(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ù)說明3利用對字符串的賦值來實現(xiàn),先將In將被移走的數(shù)賦值到一個保持的數(shù)CC中,然后將In除去移走的位數(shù)移給In,然后將開始保存的數(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ù)說明3ChangeToBit中,將Byte轉(zhuǎn)換成8位機器碼,同理ChangeToByte將8位機器碼轉(zhuǎn)換為1個字母。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ù)說明3完成多次的DES算法加密,達到更高的加密效果,進行判斷,若Is3DES為真,則開始多重加密。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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年節(jié)能型泵及環(huán)保用泵合作協(xié)議書
- 2024年皮革、毛皮及其制品加工專用設備合作協(xié)議書
- 幼兒園獨立主題課程設計
- 影視心理分析課程設計
- 房間溫度課程設計
- 《基于FPGA控制系統(tǒng)的電火花加工微小孔狀態(tài)檢測及路徑優(yōu)化研究》
- 《P2Y12基因多態(tài)性(C34T與G52T)與急性冠脈綜合征患者氯吡格雷抵抗及冠脈介入術后臨床預后的相關性研究》
- 幼兒園口腔操課程設計
- 《新型磁流變阻尼器及整星半主動隔振系統(tǒng)研究》
- 《基于數(shù)據(jù)挖掘技術分析冠心病PCI術后中醫(yī)證素分布特點的研究》
- 病理學知到智慧樹章節(jié)測試課后答案2024年秋溫州醫(yī)科大學
- 學習對新時代馬克思主義理論研究和建設工程重要指示心得體會
- 2023年湖北交投智能檢測股份有限公司社會招聘筆試真題
- 鋼結(jié)構(gòu)施工環(huán)保方案
- 痛經(jīng)中醫(yī)治未病干預方案
- 眼科考試題含答案
- 共話五千年傳承根與魂主題團日活動
- 心理健康與大學生活學習通超星期末考試答案章節(jié)答案2024年
- 借款協(xié)議(父母借款給子女買房協(xié)議)(二篇)
- 外研版英語2024七年級上冊全冊單元知識清單(記憶版)
- 國家開放大學電大本科《工程經(jīng)濟與管理》2023-2024期末試題及答案(試卷代號:1141)
評論
0/150
提交評論