1. 程式人生 > >NIST隨機數測試軟體下載、安裝、及使用教程

NIST隨機數測試軟體下載、安裝、及使用教程

PS:本文大部分轉載了這篇文章,修改了其中一些不恰當的地方,對部分容易出錯的地方做了解釋說明。

最近由於科研需要,在搞一些隨機數的測試的事情,眾所周知 隨機數測試我們可以使用NIST的軟體進行多大15項的隨機測試,我也在網上查找了很多大牛的部落格,但是都是年代久遠,很多的連結現在都是物是人非,都是不能直接使用了,今天順便抽點時間更新一下這個NIST軟體的下載及使用。


我們首先講一下該軟體的下載:

1.我們直接取NIST的官網(https://csrc.nist.gov/)下載即可 ;連結如下:下載連結

介面如下所示:


點選Download,直接下載 下載最新的版本。

2.由於考慮到我們大部分經常使用的是Windows系統,所以主要講解一下Windows系統下的安裝,當然Linux下的就是比較簡單了,直接make就行了。

由於該軟體上是基於Linux開發的,所以我們要想在Windows系統下使用,我們還需要下載另外一個軟體來輔助。就是cygwin這個軟體。

下載連結:點選下載


根據你的系統需要,選擇你的合適的版本。

下載完成後,先安裝這個Cygwin這個軟體。

下載完成後,執行setup.exe程式,出現安裝畫面。直接點“下一步”,出現安裝模式的對話方塊,如下圖所示:


我們看到有三種安裝模式:
Install from Internet,這種模式直接從Internet安裝,適合網速較快的情況;
Download Without Installing,這種模式只從網上下載Cygwin的元件包,但不安裝;
Install from Local Directory,這種模式與上面第二種模式對應,當你的Cygwin元件包已經下載到本地,則可以使用此模式從本地安裝Cygwin。

從上述三種模式中選擇適合你的安裝模式,這裡我們選擇第一種安裝模式,直接從網上安裝,當然在下載的同時,Cygwin元件也儲存到了本地,以便以後能夠再次安裝。選中後,點選“下一步”,


這一步選擇Cygwin的安裝目錄,以及一些引數的設定。預設的安裝位置是C:\NIST\cygwin\,你也可以選擇自己的安裝目錄,然後選擇“下一步”


這一步我們可以選擇安裝過程中從網上下載的Cygwin元件包的儲存位置,選擇完以後,點選“下一步”


這一步選擇連線的方式,選擇你的連線方式,選擇直接連線這個選項就OK了,然後點選下一步,會出現選擇下載站點的對話方塊,如下圖所示,


在這一步,需要注意,為了獲得最快的下載速度,我們首先在列表中尋找Cygwin中國映象的地址:http://www.cygwin.cn,如果找到就選中這個地址;如果找不到這個地址,就在下面手動輸入中國映象的地址:http://www.cygwin.cn/pub/,再點選“Add”,然後再在列表中選中。選擇完成後,點選“下一步”,


以上紅字就是我在參考別人的安裝,但是我發現按照上面的操作我們是不能繼續下去的,總會出現unable之類的錯誤,所以經過查閱資料,此步驟找到這個映象,只是為了更好的下載速度,沒有找到也沒有關係,我直接使用第一個映象連結,當然很多都是用了163 的映象,說速度更快,但是估計影響不是那麼的大。

由於我已經安裝成功,以下部分截圖來自這個網址


這一步,我們選擇需要下載安裝的元件包,為了使我們安裝的Cygwin能夠編譯程式,我們需要安裝gcc編譯器,預設情況下,gcc並不會被安裝,我們需要選中它來安裝。為了安裝gcc,我們用滑鼠選中元件列表中的整個“Devel”分支,將迴圈標誌變為install。

選完以後,我們選擇下一步,進入安裝過程,如下圖所示


安裝的時間依據你選擇的元件以及網路情況而定。安裝完成後,安裝程式會提示是否在桌面上建立Cygwin圖示等,點選完成退出安裝程式


軟體安裝完成以後,開始安裝NIST sts-2.1.2這個軟體包

執行Cygwin,通過命令列進入該軟體包中sts-2.1.2中包含 Makefile檔案的資料夾,輸入make命令,該軟體就會安裝了,按成之後會在資料夾中多一個檔案,assess.exe可執行檔案,有了它意味著我們的軟體就安裝成功了,


出現如上介面就 說明你安裝徹底成功了。整個安裝下來,接近11GB。


接下來就是NIST軟體的使用了,這個教程網上一堆,在這裡簡單的講解一下就好了,

1.輸入./assess.exe


2.

輸入./assess.exe 1000000,回車。表示將資料段的長度設定1000000(這裡要注意,這裡輸入的長度不是總bit長度。而是總bit長度除以段數得到的每一個數據段的長度)。 注意,輸入此選項的資料可變,但是資料的長度應該至少大於1M(bits)。

3.接下來就是,輸入0,輸入待測試檔案所在的路徑,注意:這裡的路徑是絕對路徑


4.然後選擇要測試的專案,我們輸入1 ,回車,對上述顯示的所在專案進行測試


5.接下來,程式詢問我們是否選擇預設的引數設定,輸入0,回車。表示接受預設的引數設定。緊接著,程式要求我們輸入要測試的資料流的長度,也即測試多少個長度為第一步中輸入的資料段(這裡就是資料段的個數),這裡我們輸入100(段數)。具體如下圖所示:


6.接下來,程式詢問我們待測資料的存放各式。由於我的資料檔案格式是二進位制,所以輸入1,回車。當然了,如果你儲存的檔案格式是ASCII格式,就輸入0,回車(這裡要注意,有可能輸入1的話,會出現igamc:underflow的情況)


7.之後,測試工具在螢幕上輸出一行英文提示:統計測試進行中……..。
接下來,請您耐心等待。

當資料測試完成後,會在測試包所在目錄的experiments->AlgorithmTesting目錄下生成兩個測試報告檔案,他們分別是finalAnalysisReport.txt和freq.txt。


如何檢視分析很簡單,這裡推薦兩篇部落格:

部落格1

部落格2