Skip to main content
QUICK REVIEW

[论文解读] Romu: Fast Nonlinear Pseudo-Random Number Generators Providing High Quality

Mark A. Overton|arXiv (Cornell University)|Feb 26, 2020
Chaos-based Image/Signal Encryption被引用 4
一句话总结

Romu 引入了一类快速、高质量的伪随机数生成器(PRNG),通过将非线性循环移位与线性乘法(及可选的加法)结合,实现了每操作更高的随机性,优于仅使用线性操作的 PRNG。这些生成器通过了最严格的统计测试(BigCrush 和 PractRand),在内联时实现零输出延迟,支持数千条独立的随机流,并通过缩小版本的实证测试提供概率容量估算。

ABSTRACT

We introduce the Romu family of pseudo-random number generators (PRNGs) which combines the nonlinear operation of rotation with the linear operations of multiplication and (optionally) addition. Compared to conventional linear-only PRNGs, this mixture of linear and nonlinear operations achieves a greater degree of randomness using the same number of arithmetic operations. Or equivalently, it achieves the same randomness with fewer operations, resulting in higher speed. The statistical properties of these generators are strong, as they pass BigCrush and PractRand -- the most stringent test suites available. In addition, Romu generators take maximum advantage of instruction-level parallelism in modern superscalar processors, giving them an output latency of zero clock-cycles when inlined, thus adding no delay to an application. Scaled-down versions of these generators can be created and tested, enabling one to estimate the maximum number of values the full-size generators can supply before their randomness declines, ensuring the success of large jobs. Such capacity-estimates are rare for conventional PRNGs. A linear PRNG has a single cycle of states of known length comprising almost all possible states. However, a Romu generator computes pseudo-random permutations of those states, creating multiple cycles with pseudo-random lengths which cannot be determined by theory. But the ease of creating state-sizes of 128 or more bits allows (1) short cycles to be constrained to vanishingly low probabilities, and (2) thousands of parallel streams to be created having infinitesimal probabilities of overlap.

研究动机与目标

  • 设计一类新型 PRNG,通过整合非线性操作,使其在随机性质量与速度上超越传统线性生成器。
  • 通过混合线性-非线性状态转移,解决线性 PRNG 的局限性,如可预测的周期结构和每操作随机性不足。
  • 通过支持高状态大小的数千条独立、低重叠的随机流,使生成器适用于大规模并行应用。
  • 通过实证测试缩小版本的生成器,提供生成器容量的可量化估算,降低长期模拟中的不确定性。
  • 证明非线性操作(如循环移位)相比纯线性操作能显著提升随机性效率。

提出的方法

  • Romu 生成器使用基于循环左移(ROTL)和乘法的核心状态更新函数,可选加入加法,形成对内部状态的非线性变换。
  • 每个生成器以其 64 位状态变量的数量命名(例如,RomuTrio 有三个 64 位状态字),32 位变体以 '32' 后缀表示。
  • 状态更新仅使用最少的算术运算——例如,RomuMono32 仅使用两个操作:循环左移和乘法——从而实现极高的指令级并行性(ILP)。
  • 生成器设计为可内联至应用程序中,在现代超标量处理器上实现零输出延迟(1 时钟周期吞吐量)。
  • 通过测试缩小尺寸的版本(如 32 位状态)直至失败,将结果外推至全尺寸生成器,以界定周期长度和流重叠概率。
  • 统计质量通过 PractRand 和 BigCrush 测试套件进行严格验证,其中 PractRand 提供超越通过/失败结果的定量拟合优度指标。

实验结果

研究问题

  • RQ1结合非线性循环移位与线性乘法的混合方法,能否产生每操作随机性优于纯线性生成器的 PRNG?
  • RQ2在 PRNG 设计中,指令级并行性(ILP)能在多大程度上被利用,以实现内联时的零延迟输出?
  • RQ3当非线性状态转移导致理论周期长度分析不可行时,如何通过实证方法估算 PRNG 的有效容量?
  • RQ4在大规模并行模拟中使用 Romu 生成器时,周期缩短或流重叠的概率是多少?能否使其可忽略?
  • RQ5仅使用极少数操作(如两个)是否能生成一个在统计质量上匹配或超越 PCG 或 LCG 等更复杂生成器的 PRNG?

主要发现

  • Romu 生成器通过 BigCrush 和 PractRand 测试套件,PractRand 测试达 2^46 字节,证实其具有极高的统计质量。
  • RomuMono32 仅使用两个算术操作(循环左移和乘法),其统计质量与需要七个操作的 32 位 pcg-xsh-rr 生成器相当。
  • RomuMono32 在随机性退化前的容量为 2^27 字节(约 1.34 亿个 32 位值),远超同类 LCG 的 2^16 限制。
  • RomuTrio 拥有 192 位状态,估计容量为 2^75 字节,其周期长度和流重叠概率极低。
  • Romu 生成器在内联时实现零输出延迟,得益于出色的 ILP 利用率,实现每时钟周期一个输出的吞吐量。
  • 结合乘法使用的非线性循环移位显著提升了随机性效率——例如,没有任何 64 位线性 PRNG 能在仅三个操作下达到 RomuDuoJr 的质量水平。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。