%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Copyright: 2010 Integrated Sytems Laboratory, ETH Zurich %% http://www.iis.ee.ethz.ch/~sha3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; clc; rnd = 0; nmax = 2; N = 1; disp(['Start generating ' num2str(N) ' messages for SIMD-256']) stm = fopen(['SIMD256_stimuli.asc'], 'w', 'native'); exp = fopen(['SIMD256_expresp.asc'], 'w', 'native'); % RESET Cycles fprintf(stm, '%X %X %X %0128X\n', [0 0 0 0]); fprintf(stm, '%X %X %X %0128X\n', [0 0 0 0]); fprintf(stm, '%X %X %X %0128X\n', [1 0 0 0]); fprintf(stm, '%X %X %X %0128X\n', [1 0 0 0]); %%%%% START SIMULATION %%%%% % RANDOM INPUT ------------------------------------------------------------- for j=1:N, if rnd == 0, n = nmax+1; else n = ceil(nmax*rand(1))+1; end Mi = round(255*rand(n,64)); % Mi = round(255*zeros(n,64)); % Mi(2,1)=2; % power sim n = 10; Mi = round(255*ones(10,64)); H = SIMD_hash(Mi); for i=1:n-1, M = zeros(1,16); for k=1:16 M(k) = Mi(i,(k-1)*4 + 4)*2^24 + Mi(i,(k-1)*4 + 3)*2^16 + Mi(i,(k-1)*4 + 2)*2^8 + Mi(i,(k-1)*4 + 1)*2^0; end fprintf(stm, '%X %X %X %08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X\n', 1, 1, 0, M); for ii=1:35, fprintf(stm, '%X %X %X %0128X\n', [1 0 0 0]); end end M = zeros(1,16); for k=1:16 M(k) = Mi(end,(k-1)*4 + 4)*2^24 + Mi(end,(k-1)*4 + 3)*2^16 + Mi(end,(k-1)*4 + 2)*2^8 + Mi(end,(k-1)*4 + 1)*2^0; end fprintf(stm, '%X %X %X %08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X%08X\n', 1, 1, 1, M); for ii=1:35, fprintf(stm, '%X %X %X %0128X\n', [1 0 1 0]); end fprintf(exp, '%08X%08X%08X%08X%08X%08X%08X%08X\n', H); for ii=1:40, fprintf(stm, '%X %X %X %0128X\n', [1 0 0 0]); end end % END RANDOM INPUT ------------------------------------------------------------- fprintf(stm, '%X %X %X %0128X\n', [1 0 0 0]); fprintf(stm, '%X %X %X %0128X\n', [1 0 0 0]); fprintf(stm, '%X %X %X %0128X\n', [1 0 0 0]); fprintf(stm, '%X %X %X %0128X\n', [1 0 0 0]); fclose(stm); fclose(exp); disp('End generation')