%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Copyright: 2010 Integrated Sytems Laboratory, ETH Zurich
%%            http://www.iis.ee.ethz.ch/~sha3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [B] = e8(h)

c1=hex2dec(['6a09'; 'e667'; 'f3bc'; 'c908'; 'b2fb'; '1366'; 'ea95'; '7d3e'; '3ade'; 'c175'; '1277'; '5099'; 'da2f'; '590b'; '0667'; '322a']);
cbin=dec2bin(c1,16);
cr0=cbin';
Q0=zeros(1,256);
A=dec2bin(h,8)';
%Group
for i=1:128,
    Q0(2*i-1)=bin2dec(mat2str([A(i) A(256+i) A(512+i) A(768+i)]));
    Q0(2*i)=bin2dec(mat2str([A(128+i) A(384+i) A(640+i) A(896+i)]));
end

Q=Q0;
Cr=cr0;

for r=0:34,
    Q=r8(Q,Cr);
    Cr=r6(Cr);
end
Q36=lastround(Q,Cr);

%Degroup
Qbin=dec2bin(Q36,4);
B=h;
for i=1:16
    for j=0:3
     B(i+32*j)=bin2dec(mat2str(Qbin((2*(i+16*j)*8-15):2:2*(i+16*j)*8-1)));
     B(i+16+32*j)=bin2dec(mat2str(Qbin((2*(i+16*j)*8-14):2:2*(i+16*j)*8)));
    end
end


    

Generated on Fri Sep 24 10:39:12 CEST 2010
Home