%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Copyright: 2010 Integrated Sytems Laboratory, ETH Zurich %% http://www.iis.ee.ethz.ch/~sha3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function h = SIMD_hash(M) S = [... hex2dec('4d567983') hex2dec('07190ba9') hex2dec('8474577b') hex2dec('39d726e9');... hex2dec('aaf3d925') hex2dec('3ee20b03') hex2dec('afd5e751') hex2dec('c96006d3');... hex2dec('c2c2ba14') hex2dec('49b3bcb4') hex2dec('f67caf46') hex2dec('668626c9');... hex2dec('e2eaa8d2') hex2dec('1ff47833') hex2dec('d0c661a5') hex2dec('55693de1')]'; for i=1:size(M,1)-1 S = SIMD_compress(S,M(i,:), 0); end disp(' '); disp('----------------------'); disp(' '); S = SIMD_compress(S, M(end,:), 1); % Truncate for i=1:4, h(i) = bitshift(bitand(S(i,1), hex2dec('FF')), 24) + bitshift(bitand(S(i,1), hex2dec('FF00')), 8) + ... bitshift(bitand(S(i,1), hex2dec('FF0000')), -8) + bitshift(bitand(S(i,1), hex2dec('FF000000')), -24); h(i+4) = bitshift(bitand(S(i,2), hex2dec('FF')), 24) + bitshift(bitand(S(i,2), hex2dec('FF00')), 8) + ... bitshift(bitand(S(i,2), hex2dec('FF0000')), -8) + bitshift(bitand(S(i,2), hex2dec('FF000000')), -24); end fprintf('\n%08X%08X%08X%08X%08X%08X%08X%08X\n\n', h)