擬似ぎじ乱数らんすう

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

擬似ぎじ乱数らんすう(ぎじらんすう、pseudorandom numbers)は、乱数らんすうれつのようにえるが、実際じっさいには確定かくていてき計算けいさんによってもとめている擬似ぎじ乱数らんすうれつによる乱数らんすう擬似ぎじ乱数らんすうれつ生成せいせいする機器きき擬似ぎじ乱数らんすうれつ生成せいせい生成せいせいアルゴリズム擬似ぎじ乱数らんすうれつ生成せいせいほうぶ。

しん乱数らんすうれつ本来ほんらい規則きそくせい再現さいげんせいもないものであるため、本来ほんらい確定かくていてき計算けいさんによってもとめることはできない(れい:サイコロをときいままでにからつぎ予測よそくするのは不可能ふかのう)。一方いっぽう擬似ぎじ乱数らんすうれつ確定かくていてき計算けいさんによってつくるので、その数列すうれつ確定かくていてきであるうえ、生成せいせいほう内部ないぶ状態じょうたい既知きちであれば、予測よそく可能かのうでもある。

ある擬似ぎじ乱数らんすうれつを、しん乱数らんすうれつとみなしていかを確実かくじつ決定けっていすることはできない。シミュレーションとう一般いっぱんてき用途ようとには、対象たいしょうとする乱数らんすうれつ統計とうけいてき性質せいしつが、使用しよう対象たいしょうとする目的もくてき合致がっちしているかどうかを判断はんだんする。これを検定けんていい、各種かくしゅ方法ほうほう提案ていあんされている。

しかし、とく暗号あんごう使用しようする擬似ぎじ乱数らんすうれつについては注意ちゅうい必要ひつようであり、シミュレーションとうには十分じゅうぶん擬似ぎじ乱数らんすうれつ生成せいせいほうであっても、暗号あんごうにそのまま使用しようできるとはかぎらない。暗号あんごう使用しようする擬似ぎじ乱数らんすうれつについては暗号あんごうろんてき擬似ぎじ乱数らんすうふしおよび暗号あんごうろんてき擬似ぎじ乱数らんすう生成せいせい記事きじ参照さんしょう

用途ようと[編集へんしゅう]

シミュレーション実験じっけんや、(暗号あんごうろんてき擬似ぎじ乱数らんすうは)暗号あんごうなどに利用りようされている。しん良質りょうしつ乱数らんすうれつようとするのは意外いがい厄介やっかいであるのにたいし、擬似ぎじ乱数らんすうでは前提ぜんてい条件じょうけんおなじならば、まったくおな乱数らんすうれつ生成せいせいできる。このため、シミュレーションとうにおいてはおな動作どうさ再現さいげんできるメリットがあるうえ、デバッグも可能かのうとなる。

なお、暗号あんごう生成せいせいさい再現さいげんせい利用りようしてシード選択せんたく意図いとてきおこなわれたりすると危険きけんがあるといった場合ばあいなんらかの方法ほうほうでそれを排除はいじょすることが必要ひつような(楕円だえん曲線きょくせん暗号あんごうのパラメータ生成せいせいなど)用途ようともある。

おも擬似ぎじ乱数らんすう生成せいせいほう[編集へんしゅう]

様々さまざま擬似ぎじ乱数らんすう生成せいせいほうられている。

平方へいほうちゅうほう (middle-square method)[編集へんしゅう]

もっともふる手法しゅほうで、1946ねんごろノイマン提案ていあんした。TAOCPあたらしい訳本やくほんではじょうちゅうほうんでいる。

まず、適当てきとう初期しょきめる。以下いか、その(らん)すうを 2 じょうした中央ちゅうおうにある必要ひつよう桁数けたすうってつぎ乱数らんすうとする。これをかえして乱数らんすうれつとする方法ほうほう。ここで「中央ちゅうおう」とは、もとまった必要ひつよう桁数けたすうの 2 ばい桁数けたすうとしてとき中央ちゅうおうである。たとえば、4 けた必要ひつようとしていて、もとまったが 7 けたときは、さい上位じょういまえくらい千万せんまん)に「0」をして 8 けたとする(したれい参照さんしょう)。

れい)4 けた擬似ぎじ乱数らんすうつくってみる。初期しょきを1763とする。

17632 = 03108169 → 1081
10812 = 01168561 → 1685
16852 = 02839225 → 8392
83922 = 70425664 → 4256
42562 = 18113536 → 1135

こうして、擬似ぎじ乱数らんすうれつ {1763, 1081, 1685, 8392, 4256, 1135, …} をる。

計算けいさん結果けっか過去かこあらわれたかずおなすうあらわれればループとなり、そのながさを周期しゅうきうが、線形せんけい合同ごうどうほう使つかえば周期しゅうき最長さいちょうのものが理論りろんてき可能かのうであるため、現代げんだいにおいて平方へいほうちゅうほう利用りようされることはまずない。

線形せんけい合同ごうどうほう (linear congruential method)[編集へんしゅう]

線形せんけい合同ごうどうほう

において、B=0 の場合ばあい区別くべつしてとく乗算じょうざん合同ごうどうほう、B>0 の場合ばあい区別くべつしてとく混合こんごう合同ごうどうほううことがある。

線形せんけい帰還きかんシフトレジスタ[編集へんしゅう]

線形せんけい帰還きかんシフトレジスタ (Linear Feedback Shift Register, LFSR) はデジタル回路かいろもちいて容易ようい実装じっそうすることができる。特性とくせい多項式たこうしき適切てきせつ選択せんたくすることによって、とう頻度ひんどせい相関そうかんせいおよ周期しゅうき保証ほしょうされる。乱数らんすうとしては最長さいちょう周期しゅうき保証ほしょうするM系列けいれつ使つかう。

あたらしい擬似ぎじ乱数らんすう生成せいせいアルゴリズム[編集へんしゅう]

上記じょうきのような古典こてんてき擬似ぎじ乱数らんすう生成せいせいほう欠点けってん克服こくふくした、あたらしい擬似ぎじ乱数らんすう生成せいせいほうがいくつか考案こうあんされている。

メルセンヌ・ツイスタのほかキャリー乗算じょうざんXorshiftLagged Fibonacci ほうPermuted congruential generator など。

メルセンヌ・ツイスタ[編集へんしゅう]

その生成せいせいほう[編集へんしゅう]

カオス乱数らんすう[編集へんしゅう]

非線形ひせんけい微分びぶん方程式ほうていしきかいカオスで、すなわ初期しょき敏感びんかんせいとう性質せいしつつ。これをややしきとして、カオスてき関数かんすうる。よく使つかわれる関数かんすうロジスティック写像しゃぞうテント写像しゃぞうがある。ロジスティック写像しゃぞう#擬似ぎじ乱数らんすう生成せいせい参照さんしょう

暗号あんごうろんてき擬似ぎじ乱数らんすう[編集へんしゅう]

一般いっぱん擬似ぎじ乱数らんすうは、その方式ほうしき過去かこ出力しゅつりょく既知きちであれば、未来みらい出力しゅつりょく予測よそく可能かのうであるため、暗号あんごう用途ようとには不適ふてき暗号あんごうがくてき安全あんぜんではないう)である。

暗号あんごう理論りろんでは擬似ぎじ乱数らんすう生成せいせい)に明確めいかく定義ていぎがある。すなわち、多項式たこうしき時間じかん計算けいさん乱数らんすうれつ識別しきべつ不能ふのうれつ出力しゅつりょくする機器ききのことを、暗号あんごうろんてき擬似ぎじ乱数らんすう生成せいせいび、このれつふくまれるかず暗号あんごうろんてき擬似ぎじ乱数らんすうという。いかなる数列すうれつであれば乱数らんすうれつであるか、議論ぎろんのあるところではあるが、一様いちよう分布ぶんぷであることと過去かこかずからつぎかず予測よそく不能ふのうであることは同値どうちであることがしめされている(Yao)。そこで過去かこかずからつぎかず予測よそく不能ふのうであるかで、暗号あんごうろんてき擬似ぎじ乱数らんすうかを区別くべつする。

暗号あんごう理論りろんでは擬似ぎじ乱数らんすう厳密げんみつ定義ていぎあたえられている。Σしぐま = {0,1}とする。自然しぜんすう kたいし、Σしぐまk うえ一様いちよう分布ぶんぷUkあらわす。かくりつ変数へんすうぞく {Xk}kN が、一様いちよう分布ぶんぷぞく {Uk}kN計算けいさん量的りょうてき識別しきべつ不能ふのうときぞく {Xk}kN暗号あんごうろんてき擬似ぎじ乱数らんすうであるという。

つぎ暗号あんごうろんてき擬似ぎじ乱数らんすう生成せいせい厳密げんみつ定義ていぎをする。l(k) を l(k) > kたす多項式たこうしきとする。G多項式たこうしき時間じかんアルゴリズムで、Gk ビットのビット列びっとれつ入力にゅうりょくをすると l(k) ビットの出力しゅつりょくかえすものとする。すると G(Uk) は Σしぐまl(k) うえかくりつ分布ぶんぷである。かくりつ分布ぶんぷぞく {G(Uk)}kN暗号あんごうろんてき擬似ぎじ乱数らんすうであるとき多項式たこうしき時間じかんアルゴリズム G暗号あんごうろんてき擬似ぎじ乱数らんすう生成せいせいという。

一方いっぽう向性こうせい関数かんすう存在そんざいすれば暗号あんごうろんてき擬似ぎじ乱数らんすう生成せいせい存在そんざいすることられている。

実際じっさい生成せいせいほうとしては、一般いっぱん擬似ぎじ乱数らんすうれつ暗号あんごうがくてきハッシュ関数かんすうとおす、という、簡単かんたん構成こうせいほうがある。

脚注きゃくちゅう[編集へんしゅう]

注釈ちゅうしゃく[編集へんしゅう]

  1. ^ 現代げんだいでは通常つうじょう使つかわれない
  2. ^ 1980年代ねんだい以前いぜんから使つかわれている
  3. ^ 1990年代ねんだい以降いこう提案ていあんされた