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