NIST测试总结
原來那篇文章寫錯了,以下是更新的
NIST測試攻略
首先明確要測試什么東西,如果是測試混沌的話,步驟如下:
1.擁有混沌的simlunik文件(即.mdl文件),然后運行;
2,用師兄的marlab程序運行,注意修改里面的東西如(要運行的.mdl文件,和要生成序列的文件放在 哪);此時已經生成一個可以用來測試的文件了,如testdata.txt
測試文件也可以用別的仿真軟件生成的序列
3.打開cygwin文件,輸入cd d:/NIST_ceshibao/sts(這是為了找到.assess文件的位置)
4.輸入./assess 長度(如1000000)這個長度是一組的長度,所以要注意序列的位數一定要多,才能完成測試。//是在MATLAB中生成后的界面中你會看到m1,和n,這兩個相乘就是要輸入的總長度,但這個可以根據自己需要更改。
5.選擇0,表示要輸入測試的文件
6.輸入要測試的序列文件的位置,比如d:/NIST_ceshibao/sts/data/data_out.txt
7.輸入1,(就是選擇測試15項)
8.輸入0,(就是設置為默認參數)
9.輸入組個數(這個一般是分組,把你想分多少組測試就輸入多少組,比如10,就是分成10組,每組1000000(這個是上面那個輸入的) ? ? ?http://blog.csdn.net/qishandaxue/article/details/51576447)
10.輸入0,選擇2進制(選擇1會出現UNDERFLOW問題)
11,耐心等待結果在(D:\NIST_ceshibao\sts\experiments\AlgorithmTesting)
12.結果在D:\NIST_ceshibao\sts\experiments\AlgorithmTesting(這是我安裝的這個測試軟件的位置)
注意:測試序列取值太少容易測試不通過
(該測試方法也是我胡師兄交給我的,我把步驟稍加整理得來)
matlab程序
clc;
clear all;
% sim('Bldcm_ori1');%%%測試BLD系統//根據自己要測試的內容自己修改
% ?X1=iq;
sim('hynew');%%%測試Qi超混沌系統//和上面的一樣,這兩個是測試的不同的混沌,如果要測試自己的就用其中一個就行
X1=x1;
TM1=mod(10^7*(X1+abs(min(X1))),2^8);
%TM2=mod(16807*(X2+abs(min(X2))),2^8);
D1=dec2bin(TM1);
%D2=dec2bin(TM2);
[m1,n1]=size(D1)
%[m2,n2]=size(D2);
% %%將每個二進制序列首尾相連
EE1=D1'
%EE2=D2';
%S1=reshape(EE1,1,m1*n1);%得到的結果為一行的字符串
%S2=reshape(EE2,1,m2*n2);
%L=length(S1)
%ss1 = str2num(EE1(:))';%%將字符串轉化為矩陣
%size(ss1)
%ss2= str2num(S2(:))';
% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%ss=xor(ss1,ss2);
fid=fopen('testdata1.txt','w+');
fprintf(fid,'%s',EE1);
fclose(fid);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%dlmwrite('data_result.txt', ss1,'\t')
%save('data_result.txt','ss1')
%data122 = load('data_result.mat')
總結