%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Copyright: 2010 Integrated Sytems Laboratory, ETH Zurich %% http://www.iis.ee.ethz.ch/~sha3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function a = subcrumb(a) % tmp=a(1); % a(3)=bitxor(a(3), a(2)); % a(1)=bitand(a(1), a(2)); % a(1)=bitxor(a(1), a(3)); % a(2)=bitcmp(a(2)); % a(3)=bitor(a(3), tmp); % a(3)=bitxor(a(3), a(4)); % tmp=bitxor(tmp, a(1)); % a(4)=bitand(a(4), a(1)); % a(4)=bitxor(a(4), a(2)); % tmp=bitcmp(tmp); % a(2)=bitor(a(2), a(3)); % tmp=bitxor(tmp, a(2)); % a(1)=bitxor(a(1), a(4)); % a(2)=bitand(a(2), a(3)); % a(2)=bitxor(a(2), a(4)); % a(3)=a(4); % a(4)=tmp; tmp = a(1); a(1) = bitor( a(2), a(1)); a(3) = bitxor( a(4), a(3)); a(2) = bitcmp(a(2)); a(1) = bitxor( a(4), a(1)); a(4) = bitand( tmp, a(4)); a(2) = bitxor( a(4), a(2)); a(4) = bitxor( a(3), a(4)); a(3) = bitand( a(1), a(3)); a(1) = bitcmp(a(1)); a(3) = bitxor( a(2), a(3)); a(2) = bitor( a(4), a(2)); tmp = bitxor( a(2), tmp); a(4) = bitxor( a(3), a(4)); a(3) = bitand( a(2), a(3)); a(2) = bitxor( a(1), a(2)); a(1) = tmp; end