%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Copyright: 2010 Integrated Sytems Laboratory, ETH Zurich
%% http://www.iis.ee.ethz.ch/~sha3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
MF4 = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3;
3, 3, 1, 1, 1, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1;
1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3;
1, 1, 3, 1, 1, 3, 1, 3, 1, 3, 3, 1, 1, 1, 3, 1;
1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 3, 1;
3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 3, 3, 3;
1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1;
1, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 0, 0];
MF4=[0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1;
1 1 0 2 0 1 0 3 2 1 2 2 1 3 0 1;
2 1 2 1 3 0 0 0 3 2 0 0 2 1 1 1;
2 3 3 1 2 0 2 0 1 0 3 2 1 3 2 0;
0 3 0 3 2 2 3 0 0 0 3 0 2 2 1 3;
1 2 3 0 2 0 3 1 2 1 3 3 3 1 1 0;
0 3 0 1 3 3 3 1 1 2 2 1 1 1 2 3;
0 2 1 3 3 3 0 0 1 3 2 3 2 0 0 3];
% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
% 3 3 1 1 1 1 3 1 3 3 3 3 3 3 3 1
% 1 1 3 1 1 1 1 1 1 1 1 3 3 3 3 3
% 1 1 3 1 1 3 1 3 1 3 3 1 1 1 3 1
% 1 3 1 1 1 1 1 1 1 3 3 3 1 1 3 1
% 3 3 3 1 3 1 1 3 1 1 1 1 1 3 3 3
% 1 1 3 3 3 3 3 3 3 3 3 3 1 1 1 1
% 1 3 1 1 3 3 3 3 3 3 3 3 1 1 0 0
% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 0 0
%LUT=[4294967295;4294967295;4294967295;4294770687;4294967295;4294967295;4294967295;4294770687];
M = zeros(8,32,'uint8');
for i=1:8
tmp = dec2bin(MF4(i,:),2);
tmp = (tmp(:))';
for j=1:32
M(i,j)=str2num(tmp(j));
end
end
M
q=4;
m=zeros(8,32,'uint8');
for i=1:q
for j=1:16
m(i,j) = M(i,2*j-1);
m(i,16+j) = M(q+i,2*j-1);
m(q+i,j) = M(i,2*j);
m(q+i,16+j) = M(q+i, 2*j);
end
m
end
%m
d = [2, 2, 2, 2];
s = zeros(8,1);
for i=1:8
s(i) = Exp256(i, d);
end
s = dec2bin(s, 32)