NIST安装
NIST隨機數(shù)測試軟件下載,安裝、和使用,分析方法最新版(19年4月)
2019年04月12日 20:25:28 葛二蛋的蛋蛋 閱讀數(shù) 914更多 分類專欄: 經(jīng)驗總結(jié) 隨機數(shù)檢驗 版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。 本文鏈接:https://blog.csdn.net/weixin_39928192/article/details/89256576NIST隨機數(shù)測試軟件下載,安裝、和使用方法
- NIST簡介
- NIST下載與安裝
- NIST軟件的使用
- NIST軟件使用過程中可能的出錯
- 如何查看finalAnalysisReport.txt和freq.txt
- 總結(jié)
畢設(shè)設(shè)計了一個偽隨機數(shù)生成器,用到了NIST檢驗偽隨機數(shù)的隨機性,現(xiàn)在由于軟件的更新等原因,以前前輩的博客里或多或少有些小問題,這里寫個博客總結(jié)一下博主安裝及使用過程中的經(jīng)驗。
NIST簡介
NIST是美國國家標準與技術(shù)委員會發(fā)布的考評偽隨機序列隨機性的一種方法,一共有16個小測試,具體測試內(nèi)容見這篇博客:
博客: link.
每個測試得到一個P-value值,大于這個值即認為隨機,小于這個值認為隨機性不夠強。
NIST下載與安裝
1,可以直接去NIST的官網(wǎng)下載軟件安裝包,鏈接如下,直接點擊Download下載最新版。
安裝包: link.
2,官網(wǎng)的軟件包是Linux系統(tǒng)下開發(fā)的,如果你的電腦是Linux系統(tǒng),安裝非常簡單,直接進入文件夾make就行,Windows系統(tǒng)麻煩一點,需要先下一個cygwin軟件來輔助使用,下載鏈接如下,選擇自己電腦對應(yīng)的版本即可。
Cygwin: link.
需要注意的是,NIST和Cygwin的下載都需要翻墻,不翻墻也可以,但速度極慢。
下載完成之后,先安裝Cygwin,運行setup.exe程序,出現(xiàn)安裝畫面。直接點“下一步”,出現(xiàn)安裝模式的對話框,如下圖所示:
直接下一步
上圖是選擇安裝目錄,確定好目錄之后,直接下一步。
上圖是選擇安裝過程中從網(wǎng)上下載的Cygwin組件包的保存位置,這個無所謂,選擇完以后,直接點擊“下一步”。
這一步選擇連接的方式,選擇你的連接方式,選擇直接連接這個選項就OK了,然后點擊下一步,會出現(xiàn)選擇下載站點的對話框,如下圖所示。
這里可以直接使用第一個鏡像鏈接,速度還可以,不是特別慢,選好后直接下一步即可。
安裝過程中需要注意一些問題,之前有前輩的博客寫過,鏈接如下。
博客: link.
但現(xiàn)在由于版本更新,很多界面都不一樣了,現(xiàn)在最新的安裝過程如下:
首先接著上圖的下一步之后,會出現(xiàn)一個選擇組件包的界面,這里需要點開Devel這個大包,要選擇里面的小項。
里面有很多,我們必須的是
binutils
gcc
gcc-mingw
gdb
其中gcc-mingw在新版的安裝包里博主一直沒找到,其余3個都能直接找到,沒辦法,博主就把gc開頭的組件包全部下載了,如下圖所示
這里只要雙擊Skip那個位置就會自動選擇最新版,或者點擊右邊那個倒三角選擇版本。
另外有一個非常重要的問題
前輩的博客里面,后面遇到了一個找不到make命令的錯誤,這個就是因為在選擇組件包的時候沒有選擇make,雖然安裝完之后也可以單獨下載這個包,然后放在安裝目錄里,可以解決這個問題,但博主當時安裝的時候,就算解壓到安裝目錄里,之后用的時候也一直提示我找不到make命令,只能重新安裝。
所以安裝時就直接把make裝上吧,它也在Devel這個大包里
都選擇好之后,可以直接下一步,進入下載界面
耐心等吧,大概需要30分鐘,博主前面選了很多的包,但最終安裝大小也就900M左右,不是特別的大。
最后安裝成功
接下來需要安裝NIST sts-2.1.2這個軟件包
運行Cygwin,通過命令行進入該軟件包中sts-2.1.2中包含 Makefile文件的文件夾,輸入make命令,該軟件就會自動安裝了。出現(xiàn)下圖界面就說明你安裝徹底成功了。博主當時安裝的時候報了個錯,說是定義了變量nu但之后并未使用。這個錯誤無所謂,親測并不影響后面的使用。
NIST軟件的使用
接下來就是NIST檢驗的應(yīng)用,這里有很多前輩的博客寫過,但很多比較零散,這里總結(jié)一下,以及寫寫博主當時遇到的問題。
1.輸入./assess.exe,回車
2.輸入./assess.exe 1000000,回車。表示將數(shù)據(jù)段的長度設(shè)置為1000000(bits)=1M(bits)。注意,NIST檢驗是按數(shù)據(jù)段來檢驗的,無論你原始的數(shù)據(jù)文件多大,都是分成小段,這里一段是一百萬個比特位也就是1M。比如128M的數(shù)據(jù)就分成128段,30M的數(shù)據(jù)就分成30段。這里每段多長是可變的,但是數(shù)據(jù)段的長度應(yīng)該至少大于1M(bits),因為有些檢驗要求輸入的數(shù)據(jù)流至少要大于等于1M,不然后面運行會出警告。
3.接下來就是,輸入0,輸入待測試文件所在的路徑,注意:這里的路徑是絕對路徑
4.然后選擇要測試的項目,我們輸入1 ,回車,表示對NIST的16個檢測都進行測試。
5.接下來,程序詢問我們是否選擇默認的參數(shù)設(shè)置,這里無所謂,如果你的數(shù)據(jù)足夠大的話,[1]對應(yīng)的那個128可以變大些,直接輸1然后回車就可以更改,博主改成了20000,當然不改也可以。
非常重要的是這里有個 How many bitstreams這個問題,這里一定要與之前的數(shù)據(jù)段長度對應(yīng),之前數(shù)據(jù)段是1M,那128M的數(shù)據(jù)就就是128個比特流,30M的數(shù)據(jù)就是30個流。
128M的數(shù)據(jù)就就是128個比特流,這里就可以選一個比128小的數(shù),比如100,代表只檢驗前100M數(shù)據(jù)的隨機性。
6.接下來,程序詢問我們待測數(shù)據(jù)的存放各式。由于我的數(shù)據(jù)文件格式是二進制,數(shù)據(jù)文件里只有0和1,所以輸入0
圖片是截的別的博主的圖,這里根據(jù)自己的數(shù)據(jù)選擇即可
7.之后,測試工具在屏幕上輸出一行英文提示:統(tǒng)計測試進行中…。
接下來,耐心等待即可,運算時間與數(shù)據(jù)量有關(guān)。
當數(shù)據(jù)測試完成后,會在測試包所在目錄的experiments->AlgorithmTesting目錄下生成兩個測試報告文件,他們分別是finalAnalysisReport.txt和freq.txt。
NIST軟件使用過程中可能的出錯
igamc: UNDERFLOW 這個實際上是報錯,好像是數(shù)據(jù)下溢的意思,出現(xiàn)原因可能是上面的第6步里面0和1選錯了,可以換一換試試。還有個原因就是數(shù)據(jù)量與數(shù)據(jù)段與數(shù)據(jù)流的關(guān)系不對,比如30M的數(shù)據(jù),一個數(shù)據(jù)段1M,數(shù)據(jù)流那里如果大于30,就會出問題,一般是
數(shù)據(jù)量=數(shù)據(jù)段長度*數(shù)據(jù)流個數(shù)
P-value全是0 這個原因很多,首先導致igamc: UNDERFLOW的問題可能也會導致P-value全是0,還有就是數(shù)據(jù)量太少,比如1000000個比特位,如果數(shù)據(jù)連1M都達不到,可能也會出現(xiàn)這個問題。
如何查看finalAnalysisReport.txt和freq.txt
首先前面16個文件夾分別對應(yīng)16個檢驗,每個文件夾里都有各自的檢驗結(jié)果。
各自的檢驗結(jié)果如下,有兩個文件。
stats.txt文件里會給出每個數(shù)據(jù)段通過此檢驗的情況,success或者failure
然后finalAnalysisReport.txt文件是總的檢驗結(jié)果
打開之后,如下所示
PROPORTION是所有數(shù)據(jù)段中通過檢驗的比例。右邊那個是檢驗的名稱,其中Non開頭那個比較特殊,它雖然是一個檢驗,但會出現(xiàn)多個P-value值。當然也是大于0.01認為隨機。
所有P-value都大于等于0.01即可認為通過了NIST檢驗。
總結(jié)
NIST的檢驗和結(jié)果分析都已完成了,這篇博客參考的博客有:
博客: link.
希望這篇博客能給別人帶來幫助。
總結(jié)
- 上一篇: unity3d横版游戏移动_制作游戏并不
- 下一篇: 计算机经典书籍