下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、DES算法的程序?qū)崿F(xiàn)說明:在中新建基于控制臺的應(yīng)用程序,程序清單如下:#iinclude“memory.h”#include“stdio.h”EnumENCRYPT,DECRYPTVoidDes_Run(charOut8,charIn8,boolType=ENCRYPT);/設(shè)/置密鑰VoidDes_SetKey(constcharKey8);StaticvoidF_func(boolIn32,constboolKi48);f函數(shù)Staticvoids_func(boolOut32,constboolIn48);/S盒代替StaticvoidTransform(bool*out,bool*In
2、,constchar*Table,intlen);/變/換StaticvoidXor(bool*InA,constbool*InB,intlen);異/或StaticvoidRotateL(bool*In,intlen,intloop);/循環(huán)左移/字節(jié)組轉(zhuǎn)換成位組StaticvoidByteToBit(bool*out,constchar*In,intbits);/位組轉(zhuǎn)換成字節(jié)組StaticvoidBitToByte(char*Out,constbool*In,intbits);置換IP表ConststaticcharIP_Table64=58,50,42,34,26,18,10,2,60
3、,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,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;逆置換IP-1表ConststaticcharIPR_Table64=40,8,48,16,56,24,64,32,39,7,47,15,55,3138,6,46,14,54,22,62,30,37,5,45,13,53,21,61,2936,4,44,12,52,20,60,28
4、,35,3,43,11,51,19,59,2734.2.42.10.50.18.58.26.23.1.41.9.49.17.57.25;/逆置換IP-1表ConststaticcharIPR_Table64=40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31;38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29;36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27,34.2.42.10.50.18.58.26.33.1.41.9.49.17.57.25;/E位選擇表Staticc
5、onstcharE_Table48=32,1,2,3,4,5,6,7,8,9,8,9,10,11,12,13,14,15,16,17,16,17,18,19,20,21,22,23,24,25,24,25,26,27,28,29,30,31,32,1;/P換位表ConststaticcharP_Table32=ConststaticcharP_Table32=16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,;/PC1選位表ConststaticcharPC1_Table56=57,49,41,33,25,17,9,1,58,50,42,34,26,18
6、,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;/PC2選位表ConststaticcharPC2_Table48=14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,34,33,48,44,49,39,56,34,53,46,42,50,36,29,32;/左移位數(shù)表Con
7、ststaticcharLOOP_Table16=1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1;S盒ConststaticcharS_Box8416=/S114,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,/S215,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,3,13,4,7,15,2,8,14,1
8、2,0,1,10,6,9,11,5,0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,/S310,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,/S47,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,13,8,11,5,
9、6,15,0,3,4,7,2,12,1,10,14,9,10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,/S52,12,4,1,7,10,6,8,5,3,15,13,0,14,9,14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3,/S612,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,10,
10、15,4,2,7,12,0,5,6,1,13,14,0,11,3,8,9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,/S74,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,13,0,11,7,4,0,1,10,14,3,5,12,2,15,8,6,1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,26,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,/S813,2,8,4,6,15,11,1,10,9,3,14,5,0
11、,12,7,1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11;StaticboolSubKey1648;/16VoidDes_Run(charOut8,charIn8,boolType)StaticboolM64,Tmp32,*Li=&M0,*Ri=&M32;ByteToBit(M,In,64);Transform(M,M,IP_Table,64);If(Type=ENCRYPT)For(inti=0;i=0;i-)M
12、emcpy(Tmp,Li,32);F_func(Li,SubKeyi);Xor(Li,Ri,32);Memcpy(Ri,Tmp,32);Transform(M,M,IPR_Table,64);BitToByte(Out,M,64);VoidDes_SetKey(constcharKey8)StaticboolK64,*KL=&K0,*KR=&K28;ByteToBit(K,Key,64);Transform(K,K,PC1_Table,56);For(inti=0;i16;i+)RotateL(KL,28,LOOP_Tablei);RotateL(KR,28,LOOP_Tablei);Tran
13、sform(SubKeyi,K,PC2_Table,48);VoidF_func(boolIn32,constboolKi48)staticboolMR48;Transform(MR,In,E_Table,48);Xor(MR,Ki,48);S_func(In,MR);Transform(In,In,P_Table,32);VoidS_func(boolOut32,constboolIn48)For(chari=0,j,k;i8;i+;In+=6,Out+=4)J=(In01)+In5;K=(In13)+(In22)+(In31)+In4;ByteToBit(Out,&S_Boxijk,4);
14、VoidTransform(bool*Out,bool*In,constchar*Table,intlen)StaticboolTmp256;For(inti=0;ilen;i+)Tmpi=InTablei-1;Memcpy(Out,Tmp,len);VoidXor(bool*InA,constbool*InB,intlen)For(inti=0;ilen;i+)InAiF=InBi;VoidRotateL(bool*In,intlen,intloop)StaticboolTmp256;Memcpy(Tmp,In,loop);Memcpy(In,In+loop,len-loop);Memcpy(In+len-loop,Tmp,loop);VoidByteToBit(bool*Out,constchar*In,intbits)For(inti=0;i(i%8)&1;VoidBitToByte(char*Out,constbool*In,intbits)Memset(Out,0,(bits+7)/8);For(inti=0;ibits;i+)Outi/8!=Ini(i%8);Voidmain()charkey8=1,9,8,0,9,1,7,2,st
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024債務(wù)擔(dān)保服務(wù)合同標(biāo)準(zhǔn)文本3篇
- 2024年滬教版四年級語文下冊階段測試試卷
- 2024年魯人新版七年級數(shù)學(xué)上冊月考試卷
- 創(chuàng)新學(xué)生心理健康教育在科技教育中的應(yīng)用
- 辦公環(huán)境下的家庭健康菜譜推廣策略
- 商務(wù)禮儀在家庭與社交中的藝術(shù)運(yùn)用
- 中小學(xué)教育中數(shù)學(xué)與自然科學(xué)知識融合教學(xué)的案例分析
- 辦公心理學(xué)與家園共育的融合實(shí)踐
- 不同年齡段對教育信息接受度差異的深度研究
- 2025中國鐵路北京局集團(tuán)限公司招聘189人(三)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 智研咨詢發(fā)布-2024年中國牛油果行業(yè)現(xiàn)狀、發(fā)展環(huán)境及投資前景分析報(bào)告
- 杭州市西湖區(qū)2024年三年級數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 眼視光學(xué)理論與方法智慧樹知到答案2024年溫州醫(yī)科大學(xué)
- 2022-2023學(xué)年廣東省廣州市花都區(qū)六年級(上)期末英語試卷(含答案)
- 公司合伙人合作協(xié)議書范本
- 2024年中考地理復(fù)習(xí) 人教版全四冊重點(diǎn)知識提綱
- 電梯季度維護(hù)保養(yǎng)項(xiàng)目表
- GB/T 44188-2024危險(xiǎn)貨物爆炸品無約束包裝件試驗(yàn)方法
- 機(jī)動車檢測站質(zhì)量手冊(根據(jù)補(bǔ)充技術(shù)要求修訂)
- 2024年(學(xué)習(xí)強(qiáng)國)思想政治理論知識考試題庫與答案
- 基于LoRa通信的智能家居系統(tǒng)設(shè)計(jì)及研究
評論
0/150
提交評論