下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、DES算法Matlab代碼functionC=DES(D,K,M)%輸入16進(jìn)制數(shù)表示的字符串格式明文D和密鑰K,M=1表示加密%數(shù)據(jù)初始化%將以字符串形式輸入的明文和密鑰轉(zhuǎn)換成01數(shù)字串DB=;fori=1:16Di=D(i);DBi='0000',dec2bin(hex2dec(Di);DBi=DBi(end-3:end);DBi=str2num(DBi(1),str2num(DBi(2),str2num(DBi(3),str2num(DBi(4);DB=DB,DBi;endD=DB;KB=;fori=1:16Ki=K(i);KBi='0000',dec2b
2、in(hex2dec(Ki);KBi=KBi(end-3:end);KBi=str2num(KBi(1),str2num(KBi(2),str2num(KBi(3),str2num(KBi(4);KB=KB,KBi;endK=KB;%64位數(shù)據(jù)IP置換表IP=585042342618102;605244362820124;625446383022146;645648403224168;57494133251791;595143352719113;615345372921135;635547393123157;IP0=reshape(IP',1,64);%專換成行向量D_IP=D(IP0
3、);%對D初始置換%E盒為數(shù)據(jù)擴(kuò)展E=32,1,2,3,4,5;4,5,6,7,8,9;8,9,10,11,12,13;12,13,14,15,16,17;16,17,18,19,20,21;20,21,22,23,24,25;24,25,26,27,28,29;28,29,30,31,32,1;S1=14,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
4、,13;S2=15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10;3,13,4,7,15,2,8,14,12,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;S3=10,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,1
5、4,3,11,5,2,12;S4=7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15;13,8,11,5,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;S5=2,12,4,1,7,10,11,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,
6、14,2,13,6,15,0,9,10,4,5,3;S6=12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11;10,15,4,2,7,12,9,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;S7=4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1;13,0,11,7,4,9,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,2;6,
7、 11,13,8,1,4,10,7,9,5,0,15,14,2,3,12;S8=13,2,8,4,6,15,11,1,10,9,3,14,5,0,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;%P盒置換P=16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25;PC1=57,49,41
8、,33,25,17,9,1,58,50,42,34,26,18,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=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,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32;%產(chǎn)生子密鑰Ki
9、=zeros(16,48);K_PC1=K(PC1);%經(jīng)過密鑰初始置換C0=K_PC1(1:28);%分為兩部分D0=K_PC1(29:56);fori=1:16ifi=1|i=2|i=9|i=16%第1、2、9、16輪循環(huán)左移1位C0=C0(2:end),C0(1);D0=D0(2:end),D0(1);else%其它輪循環(huán)左移2位C0=C0(3:end),C0(1:2);D0=D0(3:end),D0(1:2);endK_LS=C0,D0;Ki(i,:)=K_LS(PC2);end%16輪循環(huán)加密L=D_IP(1:32);%輸入的左半部分明文R=D_IP(33:64);%輸入的右半部分明
10、文fori=1:16E0=reshape(E',1,48);%:巴E盒轉(zhuǎn)換成行向量R_E=R(E0);%E盒擴(kuò)展%與子密鑰相加ifM=1%選擇加密與解密,M=1表示加密R_Ki=mod(R_E+Ki(i,:),2);elseR_Ki=mod(R_E+Ki(17-i,:),2);end%經(jīng)S1盒B=R_Ki(1:6);x=B(1)*2+B(6)+1;y=B(2)*8+B(3)*4+B(4)*2+B(5)+1;C='0000',dec2bin(S1(x,y);C=C(end-3:end);C1=str2num(C(1),str2num(C(2),str2num(C(3),s
11、tr2num(C(4);%經(jīng)S2盒B=R_Ki(7:12);x=B(1)*2+B(6)+1;y=B(2)*8+B(3)*4+B(4)*2+B(5)+1;C='0000',dec2bin(S2(x,y);C=C(end-3:end);C2=str2num(C(1),str2num(C(2),str2num(C(3),str2num(C(4);%經(jīng)S3盒B=R_Ki(13:18);x=B(1)*2+B(6)+1;y=B(2)*8+B(3)*4+B(4)*2+B(5)+1;C='0000',dec2bin(S3(x,y);C=C(end-3:end);C3=str2n
12、um(C(1),str2num(C(2),str2num(C(3),str2num(C(4);%經(jīng)S4盒B=R_Ki(19:24);x=B(1)*2+B(6)+1;y=B(2)*8+B(3)*4+B(4)*2+B(5)+1;C='0000',dec2bin(S4(x,y);C=C(end-3:end);C4=str2num(C(1),str2num(C(2),str2num(C(3),str2num(C(4);%經(jīng)S5盒B=R_Ki(25:30);x=B(1)*2+B(6)+1;y=B(2)*8+B(3)*4+B(4)*2+B(5)+1;C='0000',dec
13、2bin(S5(x,y);C=C(end-3:end);C5=str2num(C(1),str2num(C(2),str2num(C(3),str2num(C(4);%經(jīng)S6盒B=R_Ki(31:36);x=B(1)*2+B(6)+1;y=B(2)*8+B(3)*4+B(4)*2+B(5)+1;C='0000',dec2bin(S6(x,y);C=C(end-3:end);C6=str2num(C(1),str2num(C(2),str2num(C(3),str2num(C(4);%經(jīng)S7盒B=R_Ki(37:42);x=B(1)*2+B(6)+1;y=B(2)*8+B(3)*
14、4+B(4)*2+B(5)+1;C='0000',dec2bin(S7(x,y);C=C(end-3:end);C7=str2num(C(1),str2num(C(2),str2num(C(3),str2num(C(4);%經(jīng)S8盒B=R_Ki(43:48);x=B(1)*2+B(6)+1;y=B(2)*8+B(3)*4+B(4)*2+B(5)+1;C='0000',dec2bin(S8(x,y);C=C(end-3:end);C8=str2num(C(1),str2num(C(2),str2num(C(3),str2num(C(4);C=C1,C2,C3,C4,C5,C6,C7,C8;%經(jīng)過8個S盒的結(jié)果合并R_P=C(P);%P盒置換%交換左右兩半部分TEMP=L;L=R;R=mod(TEMP+R_P,2);end%交換左右兩半部分TEMP=L;L=R;R=TEMP;%輸出密文C=L,R;%逆初始置換IP_1=408481656246432;397471555236331;386461454226230;3754
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版建筑材料購銷合同書模板
- 二零二五年度臺球室租賃及品牌形象合作合同3篇
- 2025購銷合同常用文本
- 二零二五年度全新租賃房屋合同住宅押金退還管理協(xié)議3篇
- 2025年度全新出售房屋買賣貸款擔(dān)保合同3篇
- 2025年度年度全新高空纜車運營意外事故免責(zé)服務(wù)協(xié)議3篇
- 二零二五年度智慧社區(qū)建設(shè)與運營管理協(xié)議合同范文2篇
- 2025年農(nóng)村兄弟分家協(xié)議及遺產(chǎn)分配執(zhí)行方案
- 2025年度養(yǎng)殖場勞務(wù)合同(養(yǎng)殖場安全生產(chǎn)監(jiān)管)3篇
- 二零二五年度創(chuàng)業(yè)投資股權(quán)代持專項合同2篇
- 《特種設(shè)備重大事故隱患判定準(zhǔn)則》知識培訓(xùn)
- 山東省棗莊市滕州市2023-2024學(xué)年高二上學(xué)期期末考試政治試題 含答案
- 《外盤期貨介紹》課件
- 2024年07月11396藥事管理與法規(guī)(本)期末試題答案
- 《PMC培訓(xùn)資料》課件
- 2025年初級社會工作者綜合能力全國考試題庫(含答案)
- 企業(yè)發(fā)展培訓(xùn)
- 江蘇省徐州市2023-2024學(xué)年高一上學(xué)期1月期末抽測試題 化學(xué) 含答案
- 軍事理論-綜合版智慧樹知到期末考試答案章節(jié)答案2024年國防大學(xué)
- 2024年時事政治熱點題庫200道含完整答案(必刷)
- 叉車日常使用狀況點檢記錄表(日常檢查記錄)
評論
0/150
提交評論