1. 程式人生 > >NIST數字測試套件使用說明

NIST數字測試套件使用說明

NIST 測試套件是由15個測試組成的統計軟體包,這些是為了測試隨機(任意長度)由基於硬體或軟體的密碼隨機或偽隨機數生成器產生的二進位制序列。測試關注於各種不同型別的已存在的非隨機序列。有些測試可以分成各種子測試。

15個測試主要是(屬於密碼演算法安全測試方法):

  1. 頻率(單位元)測試
  2. 塊內頻數測試(Frequency Test within a Block)
  3. 動向(Run)測試
  4. 最大遊程檢測
  5. 二進位制矩陣秩(Binary Matrix Rand)測試
  6. 頻譜測試
  7. 非重疊字匹配測試
  8. 重疊字匹配測試
  9. Maurer通用統計檢測

10、線性複雜度測試

         11、系列(Serial)測試

         12、近似熵測試

         13、累積和測試

         14、隨機遊程(Random Excursions)測試

         15、隨機遊程變數(Random Excursions Variant)測試

這裡沒有依賴性(擴散與混亂)---完備性與雪崩效應測試、自相關測試和Lempel-Ziv壓縮測試。

下載的軟體sts-2.1.2壓縮包中,解壓後原始檔中有上述的密碼演算法安全測試的原始碼,如下

若在windows下,由於該軟體是基於linux環境開發的,裡面的原始檔由makefile控制,要想在windows下使用,則需要藉助另一軟體Cygwin。

上面有詳細講說,但對於這個隨機數測試包需要注意的主要是一下幾點:

1、下載安裝的時候一定注意要把元件都勾上,特別是gcc一定要勾上,如果不知道怎麼選,那就有gcc的地方全勾上吧。因為需要gcc這個編譯器。
2、執行Cygwin,進入該軟體包sts-2.1.1中包含makefile檔案的資料夾,輸入:make命令,該軟體就在安裝了,完後之後會發現多了一個檔案(assess.exe),那個就是可執行檔案了。有了它就安裝成功了。

由於本機本身裝有虛擬機器及ubuntu系統,所以直接在Linux作業系統下安裝。步驟如下:

  1. 開啟已經安裝好的ubuntu系統,在管理員許可權進入系統,把已經下好的數字測試套件包拷貝到Home目錄下
  2. 對包進行解壓縮,解壓在該目錄下。
  3. 進入到解壓縮的該目錄下(輸入命令cd 檔名)
  4. 輸入make進行編譯makefile檔案,得到assess檔案(編譯成功後該目錄下會有assess檔案)
  5. 在該目錄下輸入./assess <datalength>,datalength為測試的資料長度。

下面舉例說明

  1. 進入軟體介面後,有基本操作指示(生成器選項)

基本測試用matlab寫一個隨機數矩陣(x = randsrc(1,32e3,[0,1]);

)把資料複製到txt文字中,然後把隨機數矩陣的文字array.txt複製到該目錄下,

根據生成器提示選擇0輸入檔案,輸入array.txt,之後則是選擇測試型別,即上面的15種測試型別。

  1. 或者測試全部,它有一個提示可以測試上述15種測試,即Enter Choice輸入1
  1. How many bitstreams? 輸入流個數;這個流個數和第一步中的檔案位長度存在這樣關係:

位長度*bitstreamsnum=檔案總位長度。一般隨機數檔案在32M以內(2G記憶體支援),bitstreamsnum預設輸入1,第一步輸入檔案總bit長度。如果檔案超過32M那麼計算過 程中內從不足,因此需要第一步輸入檔案總長度的1/8、1/16...,然後在此處輸入8、16,等價於把原始檔劃分為等長的幾條流,來做隨機性檢查。

  1. Bitstreams輸入預設1後,下面會問輸入檔案的形式是ASCII型別的資料構成的序列(ASCII 中的0和1)還是8位的二進位制資料。

  1. 最後完成後的結果在該目錄下的experiments/AlgorithmTesting下的某種測試目錄下

  1. 每種演算法目錄下都有stats.txt 檔案中描述的是P-value值,在ALPHA = 0.0100條件下(預設值),貌似這個值大於0.01就表示差不多隨機,越大越好。

注意:使用所有測試時,引數設定如下,但是可能資料長度並不適合某些測試,所以最後只有13種統計測試完成。

偽隨機性是密碼演算法安全性的重要指標,用於評估密碼演算法的偽隨機性,其原理一般是假設檢驗,一般要求接收水平Pv>0.01

比如看動向(Run)測試結果不符合統計量標準PI=0.280969

單位元動向測試是檢測演算法f的輸出在0和1之間擺動的次數,其測試方法如下:

相關推薦

NIST數字測試使用說明

NIST 測試套件是由15個測試組成的統計軟體包,這些是為了測試隨機(任意長度)由基於硬體或軟體的密碼隨機或偽隨機數生成器產生的二進位制序列。測試關注於各種不同型別的已存在的非隨機序列。有些測試可以分成各種子測試。 15個測試主要是(屬於密碼演算法安全測試方法): 頻率(

三、測試

runners 在一起 一起 gpo pan pac imp 組織 public package com.myz.util; import org.junit.runner.RunWith; import org.junit.runners.Suite; import

Linux Test Project 測試說明

LTP linux LTP(Linux Test Project) Linux Test Project 是由SGI、OSDL和Bull開發和維護的一個項目,由IBM、思科、富士通、SUSE、Red Hat、Oracle和其他公司共同開發和維護。該項目的目標是向開源社區提供測試用例,以驗證Linux的

測試TestSuite

1、用途 (1)利用unittest來執行流程,而不只是單元測試 (2)控制unittest的執行順序 2、unittest.TestSuite()類來表示一個測試用例集 (1)用來確定測試用例的順序,哪個先執行哪個後執行 (2)如果一個class中有4個test開頭的方法,則載入到suite中有4

介面測試系列:工作中所用(六:測試

測試套件檔案下的testcase import importlib import sys, time, unittest from gevent import os import os from common import file_util, BSTestRunner from

接口測試系列:工作中所用(六:測試

testcase none util 批量 script desc run 套件 cal 測試套件文件下的testcase import importlib import sys, time, unittest from gevent import os import

Java單元測試工具:JUnit4(四)——JUnit測試使用及引數化設定

(四)JUnit測試套件使用及引數化設定         這篇筆記記錄JUnit測試套件的使用,即批量執行測試類;以及JUnit中的引數化設定。         @RunWith   當類被

(selenium 六)unittest通過測試組織用例 (2)

上一邊文章中,all_tests.py檔案與測試用例都位於同一檔案見。下面通過在測試用例資料夾下新增__init__.py形成包檔案,然後再all_test.py中新增PATH路徑匯入包即可。具體操作如下: 1、在test_case資料夾下新建__init__.py檔案,

15.測試的支援

本系列文章均翻譯自Automake官方文件:Automake Manual,github同步專案:question 測試套件由一系列的測試用例組成。 Automake可以生成程式碼來處理兩種測試套件。 基於和dejagnu框架整合。 基於通用測試指令碼,通過定義特殊

【Katalon學習二十九】測試測試用例的設定/拆卸

測試套件和測試用例的設定/拆卸(5.3以上版本支援) 有關Katalon Studio中測試的完整生命週期,請參閱此文件。 現在,您的專案中的每個測試套件都具備了執行SetUp或Teardown方法的能力,這些方法是您自己在執行測試套件之前或之後定義的測試步驟組。這個特性是除了Test Li

【Katalon學習四十三】測試集合

測試套件集合包含一個測試套件列表,允許使用者為計劃他們的測試執行提供更多的選項 管理執行資訊 您可以通過展開執行資訊部分來管理測試套件集合執行的額外配置,如下所示:  其中: Field Description

【Katalon學習四十二】設計一個測試

從v5.9開始,Katalon Studio在相同的測試套件中支援測試用例複製。 測試套件包含測試用例的列表,這些用例用於測試被測試應用程式的某些方面。 修改執行資訊 您可以通過展開執行資訊部分來管理測試套件執行的其他配置,如下所示:  

【Katalon學習四十一】執行測試用例或測試

Katalon Studio允許您執行整個測試套件,或者單個測試用例。在執行測試用例或測試套件之前,請記住Katalon Studio支援的執行環境。 執行整個測試用例或測試套件 開啟一個測試用例/測試套件,然後從主工具欄的run命令中選擇要執行測試用例的環境。您還可以使用控制檯模式執行測試

【Katalon學習五十二】測試收集報告

一旦一個測試套件集合完成了它的執行,一個歷史報告將被自動生成並存儲在報告中。 例如:  報告的命名將遵循以下命名約定:YYYYMMDD_HHmmss,它是測試套件集合開始執行時的日期時間。 測試套件收集報告 在Test Explorer檢視中,雙擊測試套件集合的歷史執行,

【Katalon學習五十一】測試報告

一旦測試套件完成了它的執行,一個歷史報告將被自動生成並存儲在報告中。 例如:  報告的命名將遵循以下命名約定:YYYYMMDD_HHmmss,它是測試套件開始執行時的日期時間。 報表概況 在Test Explorer檢視中,雙擊測試套件的歷史執行來檢視它的詳細資訊:

JUnit自動化單元測試(四):@RunWith測試執行器的使用

一些常用的測試方法前面已經說了,但有人又說了,JUnit為專案裡每個類都建立一個對應的測試類,雖然一次能把類裡面所有的方法都測試一遍,但是,我一個專案有可能有上千百個類,總不能每個類都點一下進行測試吧。 沒錯,@RunWith註解就是為了這種情況,我們先宣告用

android官網譯文《Compatibility Test Suite》-相容性測試

譯文地址 CTS是如何運作的? 相容性測試時一個免費的、商業測試套件,下載地址下載地址,CTS可以體現出被測程式的相容性。 CTS在PC上執行,並在PC所連線的裝置或模擬器執行測試用例,CTS本質上是一套可以整合到每日構建的工作中(比如持續整合測試)單

JUnit4筆記(三)---JUnit的測試和引數化設定

1、JUnit測試套件      講這個之前先要說一下@RunWith。如果一個類被@RunWith註釋修飾,或者類繼承了一個被該註釋修飾的類,JUnit將會使用這個註釋所指明的執行期來執行測試,而不是JUnit預設的執行期。      測試套件是為了便於同

Junit4——測試的使用和引數化測試

一,測試套件 @RunWith(Suite.class)/*使類成為測試套件的入口類*/ @Suite.SuiteClasses({TaskTest1.class,TaskTest2.class

Windows免費安全測試,包含140多款工具(僅供參考學習,禁止非法使用,在法律的範圍使用哦!

小夥伴 -s 目標 lin 能力 測試套件 bar cat fff 2019年3月28日,發布了一個包含超過140個開源Windows安全工具包,紅隊安全測試員和藍隊防禦人員均擁有了頂級偵察與漏洞利用程序集。該工具集名為“CommandoVM”。該工具集占用磁盤比較大差不多