Functional interface to the NIST randomness tests
Project description
sts-pylib
A functional Python interface to the NIST Statistical Test Suite.
Quickstart
You can install sts-pylib
via pip
:
$ pip install sts-pylib
This will install a package sts
into your system,
which contains NIST's statistical tests for randomness.
A complete reference is available in the docs.
>>> import sts
>>> p_value = sts.frequency([1, 0, 1, 1, 0, 1, 0, 1, 0, 1])
FREQUENCY TEST
---------------------------------------------
COMPUTATIONAL INFORMATION:
(a) The nth partial sum = 2
(b) S_n/n = 0.200000
---------------------------------------------
p_value = 0.527089
>>> print(p_value)
0.5270892568655381
Note that all the tests take the input sequence epsilon
(a sample of RNG output)
as an array of 0
and 1
integers.
A more thorough demonstration of sts-pylib
is available on
Kaggle.
Contributors
The original sts C program, alongside its corresponding SP800-22 paper, were authored by the following at NIST:
- Andrew Rukhin
- Juan Soto
- James Nechvatal
- Miles Smid
- Elaine Barker
- Stefan Leigh
- Mark Levenson
- Mark Vangel
- David Banks,
- Alan Heckert
- James Dray
- San Vo
- Lawrence E Bassham III
Additional work to improve Windows compatibility was done by Paweł Krawczyk (@kravietz), with a bug fix by @ZZMarquis.
I (@Honno) am responsible for converting sts into a functional interface, and providing a Python wrapper on-top of it. You can check out my own randomness testing suite coinflip, where I am creating a robust and user-friendly version of NIST's sts in Python.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file sts_pylib-0.0.5-cp38-cp38-manylinux2010_x86_64.whl
.
File metadata
- Download URL: sts_pylib-0.0.5-cp38-cp38-manylinux2010_x86_64.whl
- Upload date:
- Size: 104.1 kB
- Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 051567675741d98cc1e3b8f6e78cb7d5716211544e8194f5b0f1d0592d5f0a1d |
|
MD5 | 9c63bd44d1a2f37c2b70e90a12824dfc |
|
BLAKE2b-256 | dea396c038c80f910075fa1317989f9afd2af04c0f6c2af0e27e9a13d2428b2e |
File details
Details for the file sts_pylib-0.0.5-cp37-cp37m-manylinux2010_x86_64.whl
.
File metadata
- Download URL: sts_pylib-0.0.5-cp37-cp37m-manylinux2010_x86_64.whl
- Upload date:
- Size: 103.6 kB
- Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd20f222988a3c28e398ae5c274725936dfb1f8128ff36f666758ce80b92fca0 |
|
MD5 | 4d83014c70e8e1cf1028358c20190d9c |
|
BLAKE2b-256 | fd757ed166f3f8041391ce7efeb8e0015229e64f8a8cc7775f45cca9da0f973b |
File details
Details for the file sts_pylib-0.0.5-cp36-cp36m-manylinux2010_x86_64.whl
.
File metadata
- Download URL: sts_pylib-0.0.5-cp36-cp36m-manylinux2010_x86_64.whl
- Upload date:
- Size: 103.7 kB
- Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0694c29f5158fc12472b841775b678891943d7d2201a024612d02e8854d01a05 |
|
MD5 | 40a7c377a618ebdfdf5904d9b297dcfa |
|
BLAKE2b-256 | 11804d6bdb8f1bf8d62c247bcc07a1d425cef09087f6dea4b30244e329e38b24 |