This manual provides detailed information about how to use the NIST SP 800-22 Randomness Test Tool, including explanations of each test, input parameters, and how to interpret the results.

User Manual

1. Getting Started

The NIST SP 800-22 Randomness Test Tool is designed to evaluate the randomness of binary sequences using a comprehensive set of statistical tests. To begin using the tool:

  1. Upload a binary file containing the sequence to be tested
  2. Configure the test parameters (sequence size and number of sequences)
  3. Select the tests you want to run
  4. Click the START button to begin the analysis
Quick Start: You can use the sample binary file included in the application by clicking on the "Load sample binary random file" option in the Options section.
2. Input Parameters
Sequence Size (bits)

This parameter determines the size of each sequence to be tested. The recommended value is 1,000,000 bits. This value should be large enough to provide statistically significant results.

Number of Sequences

This parameter specifies how many sequences will be tested. The recommended value is greater than 100. More sequences provide more reliable statistical results.

Block Sizes

Some tests require specific block sizes for their analysis. The application includes recommended values for these parameters:

Test Default Block Size
Block Frequency 128
Non Overlapping Template 9
Overlapping Template 9
Approximate Entropy 10
Serial Test 16
Linear Complexity 500
You can load these recommended values automatically by clicking on the "Enter block size values manually" option in the Options section.
3. Available Tests

The tool includes the following statistical tests:

  • Frequency Test: Evaluates the proportion of 0s and 1s
  • Block Frequency Test: Analyzes frequency in blocks
  • Cumulative Sums Test: Examines maximum deviation
  • Runs Test: Evaluates oscillation patterns
  • Longest Run Test: Analyzes consecutive sequences
  • Rank Test: Checks linear dependence
  • FFT Test: Detects periodic features
  • Non-overlapping Template: Pattern occurrence analysis
  • Overlapping Template: Overlapping pattern analysis
  • Universal Test: Sequence compressibility
  • Approximate Entropy: Pattern frequency analysis
  • Random Excursions: State visit analysis
  • Random Excursions Variant: State frequency analysis
  • Linear Complexity: Sequence complexity evaluation
4. Interpreting Results

For each test, the tool provides:

Metric Description
X² Test Chi-square statistic for the test
KS-Test Kolmogorov-Smirnov test statistic
Sequences Number of sequences tested
Approved Number of sequences that passed
Proportion Ratio of approved to total sequences
Pass Rate Overall pass rate for the test
Status Final status (PASS/FAIL)
5. Entropy Tests

The tool includes entropy tests that measure the randomness of the sequence using different entropy metrics. These tests provide additional insights into the quality of the random number generator.

6. Exporting Results

You can export the test results in two formats:

Detailed Results

Provides comprehensive information about each test

CSV Results

Exports a simplified CSV format of the results

7. Activity Log

The activity log shows real-time information about the test execution:

  • Test progress
  • Warnings and errors
  • Completion status

You can clear the log using the trash icon next to the "Activity log" heading.

8. Contact & Credits
Developer

This tool uses the Fast NIST implementation from Zdenek Říha (zriha@fi.muni.cz) and Marek Sýs (syso@mail.muni.cz) as a backend application. The frontend and Python interface was developed by Juan C. Castillo E.

jjcastilloj@gmail.com