项目作者: honno

项目描述 :
Python interface to the NIST statistical tests for randomness
高级语言: C
项目地址: git://github.com/honno/sts-pylib.git
创建时间: 2020-08-20T10:41:07Z
项目社区:https://github.com/honno/sts-pylib

开源协议:Other

下载


sts-pylib

GitHub Workflow Status
Read the Docs
License
PyPI
Python Version

A functional Python interface to the NIST Statistical Test Suite.

Quickstart

You can install sts-pylib via pip:

  1. $ 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.

  1. >>> import sts
  2. >>> p_value = sts.frequency([1, 0, 1, 1, 0, 1, 0, 1, 0, 1])
  3. FREQUENCY TEST
  4. ---------------------------------------------
  5. COMPUTATIONAL INFORMATION:
  6. (a) The nth partial sum = 2
  7. (b) S_n/n = 0.200000
  8. ---------------------------------------------
  9. p_value = 0.527089
  10. >>> print(p_value)
  11. 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.