%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 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)