You are on page 1of 2

LOAD DES THE GIVEN FILE & USE KEY GENERATION

% 2017-CE-008
clc
load('DES (Constants).mat')
Keyb = [1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1
1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1
1 0 1 0];
Disp(strcat('Input Key :',binaryVectorToHex(Keyb)));
RoundKeys = DESKeyGen(Keyb,PC1,PC2,Key_schedule);
for i=1:16
disp(strcat('Round Key',
int2str(i),':',binaryVectorToHex(RoundKeys(i, :))))
end

DES KEY GENERATION MATLAB CODE:


% 2017-CE-008
% DES KeyGen
function [Round_Key] = DESKeyGen(Key_Input, PC1, PC2,
Key_schedule)
% Parity Dropping
PDT_K=Key_Input(PC1)
% Left Right Separation
Key_L = PDT_K(1:length(PDT_K)/2)
Key_R = PDT_K(length(PDT_K)/2+1:length(PDT_K))
% Round For Loop for 16 Round Keys
Round_Key = zeros(16,48);
for i = 1:16;
Key_L = circshift(Key_L, [1, -Key_schedule(i)]);
Key_R = circshift(Key_R, [1, -Key_schedule(i)]);
RK = [Key_L, Key_R];
% Key Compression
Round_Key(i, :) = RK(PC2);
end
end
OUTPUT:
'Round Key1:1F4199DDDE7C'

'Round Key2:1F4989D9DE7C'

'Round Key3:1B2989D9FEBC'

'Round Key4:192C8DB97EBD'

'Round Key5:512C8CBB7AB7'

'Round Key6:50ACA4B76BB7'

'Round Key7:D0AC26B72BD7'

'Round Key8:E0A626F7A3D7'

'Round Key9:E0B626F7A3CF'

'Round Key10:E0966276B7CF'

'Round Key11:E0D2727EB5EF'

'Round Key12:A4D3526EFDEB'

'Round Key13:2653536EFD7B'

'Round Key14:2F5151EFDD7A'

'Round Key15:0F41D9CDDF7A'

'Round Key16:0F41D9DDDF78'

You might also like