%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Copyright: 2010 Integrated Sytems Laboratory, ETH Zurich %% http://www.iis.ee.ethz.ch/~sha3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; clc; rnd = 0; nmax = 2; N = 1; R = 79.5; % 10/79.5 Latency disp(['Start generating ' num2str(N) ' messages for Groestl-256']) stm = fopen('groestl256_stimuli.asc', 'w', 'native'); exp = fopen('groestl256_expresp.asc', 'w', 'native'); % RESET Cycles fprintf(stm, '%X %X %0128X\n', [0 0 0]); fprintf(stm, '%X %X %0128X\n', [0 0 0]); fprintf(stm, '%X %X %0128X\n', [1 0 0]); fprintf(stm, '%X %X %0128X\n', [1 0 0]); %Test environment % m1=[hex2dec('61') hex2dec('63') hex2dec('65') hex2dec('67') hex2dec('69') hex2dec('6b') hex2dec('6d') hex2dec('80'); % hex2dec('62') hex2dec('64') hex2dec('66') hex2dec('68') hex2dec('6a') hex2dec('6c') hex2dec('6e') hex2dec('00'); % hex2dec('63') hex2dec('65') hex2dec('67') hex2dec('69') hex2dec('6b') hex2dec('6d') hex2dec('6f') hex2dec('00'); % hex2dec('64') hex2dec('66') hex2dec('68') hex2dec('6a') hex2dec('6c') hex2dec('6e') hex2dec('70') hex2dec('00'); % hex2dec('62') hex2dec('64') hex2dec('66') hex2dec('68') hex2dec('6a') hex2dec('6c') hex2dec('6e') hex2dec('00'); % hex2dec('63') hex2dec('65') hex2dec('67') hex2dec('69') hex2dec('6b') hex2dec('6d') hex2dec('6f') hex2dec('00'); % hex2dec('64') hex2dec('66') hex2dec('68') hex2dec('6a') hex2dec('6c') hex2dec('6e') hex2dec('70') hex2dec('00'); % hex2dec('65') hex2dec('67') hex2dec('69') hex2dec('6b') hex2dec('6d') hex2dec('6f') hex2dec('71') hex2dec('00')]; % % M=zeros(8,16); % M(:,1:8)=m1; % M(8,16)=2; % n=2; % % H = groestl256_hash(M,n); % % for k=0:n-1 % fprintf(stm, '%X %X ',[1 1]); % for i=1:8 % fprintf(stm, '%02X%02X%02X%02X%02X%02X%02X%02X', M(:,k*8+i)); % end % fprintf(stm,'\n'); % for ii=1:2*R, % fprintf(stm, '%X %X %0128X\n', [1 0 0]); % end % end % for ii=1:2*R+1, % fprintf(stm, '%X %X %0128X\n', [1 0 0]); % end % fprintf(exp, '%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X\n', H); % RANDOM INPUT ------------------------------------------------------------ for j=1:N; if rnd == 0, n = nmax; else n = ceil(nmax*rand(1)); end M = round((2^8-1)*rand(8,8*n)); %Create random message M = round((2^8-1)*ones(8,8*n)); %Create all-ones message H = groestl256_hash(M,n); for k=0:n-1 fprintf(stm, '%X %X ',[1 1]); for i=1:8 fprintf(stm, '%02X%02X%02X%02X%02X%02X%02X%02X', M(:,k*8+i)); end fprintf(stm,'\n'); for ii=1:2*R, fprintf(stm, '%X %X %0128X\n', [1 0 0]); end end for ii=1:2*R+1, fprintf(stm, '%X %X %0128X\n', [1 0 0]); end fprintf(exp, '%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X\n', H); end % END RANDOM INPUT ------------------------------------------------------------- fprintf(stm, '%X %X %0128X\n', [1 0 0]); fprintf(stm, '%X %X %0128X\n', [1 0 0]); fprintf(stm, '%X %X %0128X\n', [1 0 0]); fprintf(stm, '%X %X %0128X\n', [1 0 0]); fclose(stm); fclose(exp); disp('End generation')