ONOD 3000

onod 3000

Rust port of Paul Uszak's new randomness testing suite for TRNG Makers generating in the sub 1 MB space. Successor to John Walker’s venerable ent.

Onod3000 provides multiple randomness tests, each outputting a statistic, a z-score andd a p-value to assess the conformity of the data to random behavior.

Testing Methodology

All tests have been carefully ported from Paul Uszak's Java code (ent3000-0.6.0-beta). Java libraries were substituted with Rust crate equivalents when possible. The suite includes the following tests:

  • Monobit Test: Evaluates the balance of 0s and 1s.
  • Chi-Square Tests: Tests the uniformity of bits and bytes.
  • MeanByte Test: Checks if the mean byte value aligns with expected randomness.
  • Kolmogorov-Smirnov (KS) Test: Assesses uniformity of data distribution.
  • Pi Test: Uses Monte Carlo methods to approximate π.
  • Shells Test: Analyzes distances in 3D space.
  • Gaps Test: Measures gaps between occurrences of a specific value.
  • Avalanche Test: Analyzes bit-level changes in data chunks.
  • Runs and RunUps Tests: Checks for sequential patterns in data.
  • Prediction Test: Assesses the predictability of next bits.
  • UnCorrelation Test: Evaluates correlation between shifted data.

Repository