How to Decryption in des algorithms ?
Info
Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
Ältere Kommentare anzeigen
Hello I have an algorithm des code. This code executes the encryption correctly, but does not perform decryption. Please help me with that. code : clc clear tic mydata='C:\Users\digitalhouse\Desktop\DES\mydata.txt'; fid = fopen(mydata, 'r'); M = fread(fid,'*char')' fclose(fid) K = '1256984563214569'; MB=[]; for i=1:16 Mi=M(i); MBi=['0000',dec2bin(hex2dec(Mi))]; MBi=MBi(end-3:end); MBi=[str2num(MBi(1)),str2num(MBi(2)),str2num(MBi(3)),str2num(MBi(4))]; MB=[MB,MBi]; end M=MB ;
KB=[]; for i=1:16 Ki=K(i); KBi=['0000',dec2bin(hex2dec(Ki))]; KBi=KBi(end-3:end); KBi=[str2num(KBi(1)),str2num(KBi(2)),str2num(KBi(3)),str2num(KBi(4))]; KB=[KB,KBi]; end K=KB; 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, 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, 14, 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, 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, 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=[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,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];
Ki=zeros(16,48);
K_PC1=K(PC1); C0=K_PC1(1:28); D0=K_PC1(29:56);
for i=1:16 if i==1||i==2||i==9||i==16 C0=[C0(2:end),C0(1)]; D0=[D0(2:end),D0(1)]; else C0=[C0(3:end),C0(1:2)]; D0=[D0(3:end),D0(1:2)]; end K_LS=[C0,D0];
Ki(i,:)=K_LS(PC2);
end
L=M(1:32); R=M(33:64);
for i=1:16 E0=reshape(E',1,48); R_E=R(E0); R_Ki=mod(R_E+Ki(i,:),2);
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)),str2num(C(4))];
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))];
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=[str2num(C(1)),str2num(C(2)),str2num(C(3)),str2num(C(4))];
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))];
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',dec2bin(S5(x,y))];
C=C(end-3:end);
C5=[str2num(C(1)),str2num(C(2)),str2num(C(3)),str2num(C(4))];
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))];
B=R_Ki(37:42);
x=B(1)*2+B(6)+1;
y=B(2)*8+B(3)*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))];
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];
R_P=C(P);
TEMP=L;
L=R;
R=mod(TEMP+R_P,2);
end
TEMP=L; L=R; R=TEMP;
C=[L,R]; CS=[]; C=num2str(C); pos=find(C~=' '); C=C(pos); for i=1:4:61 Ci=C(i:i+3); CS=[CS,num2str(dec2hex(bin2dec(Ci)))]; end C=CS mydata1='C:\Users\digitalhouse\Desktop\DES\mydata1.txt'; fid1=fopen(mydata1,'w'); fwrite(fid1,C)
t=toc
2 Kommentare
Rik
am 23 Jan. 2018
I recall that some time ago, someone mentioned that under US law (which governs this site) it is illegal to discuss non-trivial encryption and decryption. That would mean no one can legally help you on this site.
Also, you haven't formatted your code properly. Select your code and click the {}Code button.
mohamad gholami
am 23 Jan. 2018
Antworten (0)
Diese Frage ist geschlossen.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!