QUICK REVIEW
[论文解读] Middle-Square Weyl Sequence RNG
Bernard Widynski|arXiv (Cornell University)|Apr 2, 2017
Chaos-based Image/Signal Encryption参考文献 5被引用 3
一句话总结
本文提出了一种新型随机数生成器(RNG),结合约翰·冯·诺伊曼的中方法与威爾序列,以克服经典的“零机制”问题。通过将威爾序列(通过奇数常量的模加法生成)加至状态的平方,该方法确保了至少 $2^{64}$ 的周期、均匀的输出分布,并仅需四条机器指令即可高效执行,且通过了 BigCrush 和 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.
研究动机与目标
- 通过引入威爾序列以维持状态多样性,解决冯·诺伊曼中方法 RNG 的根本缺陷——其易坍缩为零或短周期的问题。
- 仅使用 64 位算术和最小计算开销,确保长周期、均匀的随机数生成。
- 设计一种既高效又统计稳健的密码学适用 RNG,适用于高性能和并行计算环境。
- 在保持简洁与速度的同时,实现与梅森旋转算法相当的统计质量,通过紧凑的内联实现达成。
提出的方法
- RNG 使用一个 64 位状态变量 `x`,初始化为非零值,以及一个独立的 64 位威爾序列状态 `w`,初始化为零。
- 在每次迭代中,`x` 被平方(模 $2^{64}$),然后威爾序列值 `w` 通过 `w += s` 更新,其中 `s` 是一个奇数常量(例如 0xb5ad4eceda1ce2a9)。
- 通过算术右循环移位操作提取 64 位结果的中间 32 位:`return (x >> 32) | (x << 32);`,有效实现旋转后选取高位 32 位。
- 威爾序列在数学上被证明具有 $2^{64}$ 的周期,且由于 `s` 的奇性,在前 $2^{64}$ 个元素中不包含重复值,从而确保状态多样性。
- 操作顺序——先平方,再加威爾项——确保了输出分布的均匀性,如定理 C 所证明:非均匀但类似随机的 `x²` 与均匀的威爾序列 `w` 的和,可产生均匀的输出。
实验结果
研究问题
- RQ1通过集成威爾序列,中方法是否可避免‘零机制’和长周期问题?
- RQ2将威爾序列加至状态平方是否能确保至少 $2^{64}$ 的周期?
- RQ3在状态平方输入非均匀分布时,改进后的中方法 RNG 输出分布是否仍为统计均匀?
- RQ4该 RNG 是否能在保持紧凑与高效的同时,实现与梅森旋转算法等成熟生成器相当的统计质量?
- RQ5鉴于其长周期与统计稳健性,该 RNG 是否具备密码学适用性?
主要发现
- 通过 `w += s` 生成的威爾序列,其中 `s` 为奇数,其周期恰好为 $2^{64}$,且在范围 [0, $2^{64}-1$] 内的所有值在重复前恰好出现一次。
- 带威爾序列加法的中方法 RNG 对状态 `x` 的最小周期为 $2^{64}$,如定理 B 所证明:由于威爾值不同,相等的 `x` 值不会导致重复循环。
- 输出分布是均匀的,如定理 C 所示:非均匀的 `x²` 与均匀的威爾序列 `w` 的和,可产生均匀的输出流。
- 该 RNG 仅需四条机器指令(imulq, iaddq, iaddq, rorq)即可编译,支持高效内联使用,适用于紧密循环中的高性能计算。
- 该生成器首次通过了 BigCrush 和 PractRand 统计测试套件,证实其统计质量可靠。
- 该设计具备密码学适用性,经 arXiv 分类于密码学与安全领域,且因严格遵循 C 标准,可在各类编译器中稳定运行。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。