Filter löschen
Filter löschen

Can i get a DES algorithm source code in matlab?

17 Ansichten (letzte 30 Tage)
Aishwarya Rajan
Aishwarya Rajan am 16 Mär. 2017
Erneut geöffnet: Aishwarya Rajan am 16 Mär. 2017
I am trying to encrypt a message using DES encryption... I need a source code to run the program.. If anyone has it, please share the link. I tried out the following link..https://www.mathworks.com/matlabcentral/fileexchange/37847-data-encryption-standard--des- but, when i tried to run the program, it showed Error as " not enough input arguments" in the line 64 Initialization part..
  2 Kommentare
Jan
Jan am 16 Mär. 2017
Bearbeitet: Jan am 16 Mär. 2017
@John D'Errico: Why did you close this question? I know, a simple search in the internet would reveal a link directly. But this concerns many questions.
DES encryption is not strong, such that the question does not collide with the export restrictions of the USA. Therefore this tool can be found in the FileExchange in opposite to AES.
Aishwarya Rajan
Aishwarya Rajan am 16 Mär. 2017
Bearbeitet: Aishwarya Rajan am 16 Mär. 2017
Thank you sir.. I have already been using a DES source code, but the problem was i have to encrypt a message using a 16 bit secret key, but each and every time, it encrypts the key, instead of encrypting the message, I can't fathom why.. i applied the code [encryptt,en]=des(message,key).
my souce code of DES is as follows:
function [t C]=des( M,Key)
tic;
M = 'AF88888888555456';
%K = '1256984563214569';
K=Key;
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))];
tc=0.21145+0.21145;
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;
t=tc;
end

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Numeric Types finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by