NIST randomness test suite
This is an npm module which provides a subset of tests documented in the Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications.
Implemented tests
Test | Reference in NIST Test Suite |
---|---|
Frequency test | 2-2 |
Runs test | 2-5 |
Binary Matrix Rank Test | 2-10 |
Non-overlapping Template Matching test | 2-14 |
Install
npm install --save-dev nist-randomness-test-suite
Usage
var TestSuit = ; var alpha = 0001; var testSuite = alpha; // you can also pass in a PRNG/RNG and the testsuite would generate 10^5 bits to testvar Math;testSuite;testSuite;testSuite;testSuite; // you can pass in a bit string to test its randomnessvar bitString = "10101001101";testSuite;testSuite;testSuite;testSuite; // alternatively, you could pass in an array of bitsvar bits = 0 1 1 0 0 1 0 1 1 0 0 0;testSuite;testSuite;testSuite;testSuite;
Recommended size of input (by the NIST test suite)
Alpha
Alpha should be of range [0.001, 0.01]. An alpha of 0.01 indicates that one would expect 1 sequence in 100 sequences would be rejected.
Length of the bits
You would want to have a 10^4 to 10^7 long bits to obtain a meaningful result.
Test
npm test
Author
Jason Yu