Skip to main content
QUICK REVIEW

[Paper Review] Middle-Square Weyl Sequence RNG

Bernard Widynski|arXiv (Cornell University)|Apr 2, 2017
Chaos-based Image/Signal Encryption5 references3 citations
TL;DR

This paper proposes a novel random number generator (RNG) that combines John von Neumann’s middle-square method with a Weyl sequence to overcome the classic 'zero mechanism' problem. By adding a Weyl sequence—generated via modular addition of an odd constant—to the square of the state, the method ensures a period of at least $2^{64}$, uniform output distribution, and efficient execution in just four machine instructions, passing rigorous statistical tests like BigCrush and PractRand.

ABSTRACT

In this article, we propose a new implementation of John von Neumann's middle-square random number generator (RNG). A Weyl sequence keeps the generator running through a long period.

Motivation & Objective

  • To address the fundamental flaw in von Neumann’s middle-square RNG—its tendency to collapse into zero or short cycles—by introducing a Weyl sequence to maintain state diversity.
  • To ensure long-period, uniform random number generation using only 64-bit arithmetic and minimal computational overhead.
  • To design a cryptographically suitable RNG that is both efficient and statistically robust, suitable for high-performance and parallel computing environments.
  • To achieve statistical quality comparable to the Mersenne Twister while maintaining simplicity and speed through a compact, inline implementation.

Proposed method

  • The RNG uses a 64-bit state variable `x` initialized to a non-zero value, and a separate 64-bit Weyl sequence state `w` initialized to zero.
  • In each iteration, `x` is squared (mod $2^{64}$), then the Weyl sequence value `w` is updated via `w += s` where `s` is an odd constant (e.g., 0xb5ad4eceda1ce2a9).
  • The middle 32 bits of the 64-bit result are extracted via a right rotate (circular shift) operation: `return (x >> 32) | (x << 32);`, effectively selecting the upper 32 bits after rotation.
  • The Weyl sequence is mathematically proven to be periodic with period $2^{64}$ and contains no repeated values in the first $2^{64}$ elements due to the oddness of `s`, ensuring state diversity.
  • The order of operations—squaring first, then adding the Weyl term—ensures uniform output distribution, as proven by Theorem C, which establishes that the sum of a non-uniform but random-like `x²` and a uniform Weyl sequence `w` yields a uniform output.

Experimental results

Research questions

  • RQ1Can the middle-square method be made to avoid the 'zero mechanism' and long cycles by integrating a Weyl sequence?
  • RQ2Does the addition of a Weyl sequence to the square of the state ensure a period of at least $2^{64}$?
  • RQ3Is the output distribution of the modified middle-square RNG statistically uniform, especially when the input to the square is not uniformly distributed?
  • RQ4Can this RNG achieve statistical quality comparable to established generators like the Mersenne Twister while remaining compact and efficient?
  • RQ5Is the resulting RNG cryptographically suitable, given its long period and statistical robustness?

Key findings

  • The Weyl sequence, generated by `w += s` with odd `s`, produces a period of exactly $2^{64}$, with all values in the range [0, $2^{64}-1$] appearing exactly once before repeating.
  • The middle-square RNG with Weyl sequence addition has a minimum period of $2^{64}$ for the state `x`, as proven by Theorem B, which shows that equal `x` values cannot lead to repeated cycles due to distinct Weyl values.
  • The output distribution is uniform, as shown in Theorem C: the sum of a non-uniform `x²` and a uniform Weyl sequence `w` results in a uniform output stream.
  • The RNG compiles to only four machine instructions (imulq, iaddq, iaddq, rorq), enabling efficient inline use and high performance in tight loops.
  • The generator passed the BigCrush and PractRand statistical test suites on the first attempt, confirming its statistical quality.
  • The design is cryptographically suitable, as confirmed by arXiv’s classification in the Cryptography and Security section, and is robust across compilers due to careful C standard compliance.

Better researchstarts right now

From reading papers to final review, dramatically reduce your research time.

No credit card · Free plan available

This review was created by AI and reviewed by human editors.