|
|
'''擬似乱数'''(ぎじらんすう、''{{lang|en|pseudorandom numbers}}'')は、[[乱数列]]のように見えるが、実際には確定的な計算によって求めている'''擬似乱数列'''による乱数。擬似乱数'''列'''を生成する機器を'''擬似乱数列生成器'''、生成[[アルゴリズム]]を'''擬似乱数列生成法'''と呼ぶ。
真の乱数'''列'''は本来、規則性も再現性も無ないものでありるため、<!--その定義から、-->本来は確定的な計算によって求めることはできない(例:サイコロを振る時、今までに出た目から次に出る目を予測するのは不可能)。一方、擬似乱数'''列'''は確定的な計算によって作るので、その数列は確定的である。またうえ、生成法と内部状態が既知であれば、予測可能でもある。
ある擬似乱数列を、真の乱数列とみなして良いかを確実に決定することはできない。シミュレーション等の一般的な用途には、対象とする乱数列の<!--さまざまな主として-->統計的な性質が、真の乱数列のそれと同じ(見分けがつかない)かどうかで、その乱数列の使用対象とする目的に適合致しているか否どうかを判断する。これを'''検定'''と言い、各種の検定方法が提案されている。<!--真の乱数列のそれと同じ(見分けがつかない)かどうかで、その乱数列の判断することになるが、これを-->
ただしかし、特に暗号に関使用する擬似乱数列については注意が必要であり、<!--他の用途とは異なる注意が必要である。一般に、一般の-->シミュレーション等には十分な<!--性能を持った-->擬似乱数列生成法であっても、[[暗号]]の応用には不適であり、そのまま使用してできるとはな限らない。暗号で使用する擬似乱数列については[[#暗号論的擬似乱数|暗号論的擬似乱数の節]]および[[暗号論的擬似乱数生成器|暗号論的擬似乱数生成器の記事]]を参照。
== 用途 ==
シミュレーション実験や、(暗号論的擬似乱数は)暗号などに利用されている。「真の」乱数の生成は、特に良質な乱数列を得ようとするのは意外に厄介であるのに対し、擬似乱数では、全く前提条件が同じならば、<!--初期状態から始めれば、全-->まったく同じ乱数列を生成できる。このため、シミュレーション等でにおいては同じ動作を再現ができるというメリットがある(うえ、<!--シミュレーション自体のみならず、あるいは-->デバック等のために)も可能となる。
なお、暗号等には生成の際、再現性を利用してシード値の選択を意図的に行われたりすると危険があるといった場合、何らかの方法でそれを排除することが必要な([[楕円曲線暗号]]のパラメータ生成など)用途もある。
== 主な擬似乱数生成法 ==
|