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に比べて、1回の操作あたりのランダムネスが優れている。これらの生成器は、最も厳しい統計的テスト(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の限界(予測可能なサイクル構造や、1回あたりのランダムネス不足)を、線形・非線形のハイブリッド状態遷移によって解決すること。
  • 大規模な並列アプリケーションでの実用的利用を可能にするために、高状態サイズを備えた数千の独立的で重複が少ないストリームをサポートすること。
  • スケーリングされたバージョンの実験的テストを通じて、理論的サイクル長解析が非線形状態遷移のため困難な場合に、生成器容量の定量的推定値を提供すること。
  • 非線形演算(例:回転)が、完全に線形な演算に比べてランダムネス効率を顕著に向上させることを示すこと。

提案手法

  • Romu生成器は、回転(ROTL)と乗算に基づくコア状態更新関数を用い、任意の加算を含む。これにより、内部状態の非線形変換が実現される。
  • 各生成器は、64ビット状態変数の数で名付けられる(例:RomuTrioは3つの64ビット状態語を持つ)。32ビットバージョンは「32」接尾辞で示される。
  • 状態更新は最小限の算術演算で実装される。例:RomuMono32は回転左と乗算の2つの演算のみを用いる。これにより、高い命令レベル並列性(ILP)が可能になる。
  • 生成器はアプリケーションにインライン化可能であり、現代のスーパサイスルプロセッサでゼロ出力遅延(1サイクルのスループット)を達成する。
  • 容量推定値は、失敗するまで縮小されたバージョン(例:32ビット状態)をテストし、全サイズ生成器への外挿を用いてサイクル長とストリーム重複確率を制限する。
  • 統計的品質は、PractRandおよびBigCrushテストスイートを用いて厳密に検証され、PractRandはパス/フェイル以外の定量的適合度指標を提供する。

実験結果

リサーチクエスチョン

  • RQ1非線形回転と線形乗算をハイブリッドに組み合わせることで、完全に線形な生成器に比べて、1回あたりのランダムネスが向上するか?
  • RQ2インライン化された場合に、PRNG設計における命令レベル並列性(ILP)をどの程度活用できるか?
  • RQ3非線形状態遷移のため理論的サイクル長解析が困難な場合、PRNGの有効容量をどのように実験的に推定できるか?
  • RQ4大規模な並列シミュレーションでRomu生成器を使用する場合、サイクル短縮またはストリーム重複の確率はどの程度で、無視できるほど小さくできるか?
  • RQ52つの演算(例:2つ)のみで、PCGやLCGのようなより複雑な生成器に匹敵またはそれを上回る統計的品質を達成できるか?

主な発見

  • Romu生成器はBigCrushおよびPractRandテストスイートに合格しており、PractRandでは最大2^46バイトまでテストされ、高い統計的品質が確認された。
  • RomuMono32は、回転左と乗算の2つの算術演算のみを用い、7つの演算を要する32ビットpcg-xsh-rr生成器と同等の統計的品質を達成した。
  • RomuMono32の容量は、ランダムネスが劣化するまでの2^27バイト(約1億3400万個の32ビット値)であり、同等のLCGの2^16制限をはるかに上回る。
  • 192ビット状態を持つRomuTrioは、推定容量が2^75バイトであり、サイクル長およびストリーム重複確率はほとんどゼロに近い。
  • インライン化されたRomu生成器は、優れたILP活用のおかげでゼロ出力遅延を達成し、1クロックサイクルごとに1つの出力を提供できる。
  • 乗算と組み合わせた非線形回転の使用により、ランダムネス効率が向上する。例:64ビット線形PRNGでは、3つの演算でのみ動作するRomuDuoJrの品質に匹敵するものは存在しない。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。