擬似乱数について
擬似乱数(ぎじらんすう、pseudorandom numbers)は、外見上は乱数列に見えますが、実際には確定的な計算によって生成される数の列です。擬似乱数の生成には専用の機器や
アルゴリズムが使用され、これらはそれぞれ擬似乱数生成器や擬似乱数生成法と呼ばれています。
乱数と擬似乱数の違い
真の乱数は、予測不可能な性質を持つため、計算によりその数を導き出すことはできません。例えば、
サイコロを振る際に、過去の結果から次の結果を予測することはできません。それに対し、擬似乱数は計算に基づいているため、生成方法と内部状態が一致すれば、未来の数値を予測することが可能です。このため、擬似乱数を真の乱数として扱えるかどうかは不確実であり、その統計的特性が目的に適合するかを検定する必要があります。
用途
擬似乱数の利用は多岐にわたります。特にシミュレーション実験や
暗号における使用が一般的です。擬似乱数は、同じ初期条件を設定すれば同一の数列を再生成できるため、シミュレーションの手法を再現するのに適しています。また、デバッグ作業にも役立ちます。しかし、
暗号においては擬似乱数の再現性が危険をもたらすことがあるため、慎重な取り扱いが求められます。
擬似乱数生成法
擬似乱数を生成するための方法はいくつか存在します。古典的なものには、平方採中法や
線形合同法があります。特に
線形合同法は、次の数を前の数や定数に基づいて計算する方法です。以下に代表的な方式を紹介します:
- - 平方採中法:最初の数を二乗し、その中央の桁を取り出すことで次の数を得る方法です。1946年にノイマンによって提案されました。
- - 線形合同法:一般的な式で示すと、次の数は前の数に一定の定数をかけ加えて、ある数で割った余りとして求めます。
- - 線形帰還シフトレジスタ:主にデジタル回路で簡単に実装できる方法で、特性多項式を選ぶことで良好な性能を確保します。
これらの古典的な方法に対する新しい擬似乱数生成法も考案されており、例えばメルセンヌ・ツイスタやXorshiftなどが挙げられます。
暗号論的擬似乱数
一般的な擬似乱数は、その方式と過去の出力から未来の出力を予測できるため、
暗号用途には適しません。しかし、
暗号論的擬似乱数生成器(CSPRNG)は、過去の出力から未来の出力を予測することが非常に難しい特性を持っています。この特性から、計算機の力によって猜疑されることのない乱数列を提供することが可能です。
特に、
暗号理論の中では、
暗号論的擬似乱数生成器の厳密な定義が存在し、これを使用して生成される数列は実際に
暗号技術において信頼性の高いものとされています。
結論
擬似乱数は、シミュレーション実験や
暗号技術において重要な役割を果たす一方、その性質から適切に扱わなければならないことが多くあります。現代の多くのシステムでその利用が進められていますが、特に安全性が求められる
暗号の分野では、特別な注意が必要です。