Return to Video

Random vs Pseudorandom Number Generators

  • 0:11 - 0:13
    自然界を観察すると、
  • 0:13 - 0:16
    いたるところに
    ランダムな揺らぎがある。
  • 0:22 - 0:25
    「ノイズ」というランダムな揺らぎを
  • 0:25 - 0:28
    計測することで、完全にランダムな数列を得られる。
  • 0:29 - 0:32
    ノイズを抽出(計測)することで、
  • 0:32 - 0:34
    数列を得るのだ。
  • 0:36 - 0:37
    例えば、
  • 0:37 - 0:41
    TVのノイズの電流をずっと計測すると、
  • 0:41 - 0:43
    完全にランダムな数列が作られる。
  • 0:46 - 0:48
    ランダムな数列を視覚化するには
  • 0:48 - 0:51
    軌道を描き、その方向を
  • 0:51 - 0:52
    数字によって変えれば良い。
  • 0:52 - 0:54
    これを「ランダム・ウォーク」という。
  • 0:55 - 0:58
    数列のどの範囲にも、どの部分にも
  • 0:58 - 0:59
    規則が現れないことに注目しよう。
  • 0:59 - 1:04
    次の動きは絶対に予測できないのだ。
  • 1:04 - 1:08
    ランダムな過程は
    あらかじめ予測できないので、
  • 1:08 - 1:11
    「非決定的」と呼ばれる。
  • 1:12 - 1:15
    一方で、機械は「決定的」だ。
  • 1:15 - 1:18
    その動作は予測でき、繰り返しになる。
  • 1:18 - 1:21
    1946年、ジョン・フォン・ノイマン は
  • 1:21 - 1:24
    コンピュータを軍事目的に使おうとしていた。
  • 1:24 - 1:27
    特に水素爆弾の設計に関わっていた。
  • 1:29 - 1:31
    ENIAC というコンピュータを用い、
  • 1:31 - 1:33
    核融合の方法に関する計算を
  • 1:33 - 1:37
    何度も行おうとした。
  • 1:37 - 1:39
    しかし、そのためには
  • 1:39 - 1:41
    繰り返しのあるランダムな数列に
  • 1:41 - 1:44
    必要なだけ素早くアクセスする必要があった。
  • 1:44 - 1:46
    しかし ENIAC の内部メモリは
    ひどく限られていたので、
  • 1:46 - 1:50
    長いランダム数列を記憶することができなかった。
  • 1:50 - 1:52
    そこで ノイマンは、次の方法で
  • 1:52 - 1:55
    ランダムのゴチャゴチャ具合を
  • 1:55 - 1:58
    機械で再現するアルゴリズムを開発した:
  • 1:58 - 2:02
    まず「シード」と呼ばれる
    完全にランダムな数字を選択する。
  • 2:02 - 2:04
    この数字は ノイズの計測や、
  • 2:04 - 2:07
    現在時刻のミリ秒によって決める。
  • 2:07 - 2:12
    次に この数字を計算機に入力し、
    簡単な処理をする。
  • 2:12 - 2:15
    シードを 2乗 して、
  • 2:15 - 2:18
    結果の まんなか を出力する。
  • 2:18 - 2:21
    出力は次のシードとして用いられる。
  • 2:21 - 2:24
    これを 必要な回数だけ繰り返す。
  • 2:26 - 2:29
    これが「平方採中法」だ。
  • 2:29 - 2:32
    乱数生成の方法は、
  • 2:32 - 2:34
    他にも沢山ある。
  • 2:34 - 2:36
    数列のランダムさは、
  • 2:36 - 2:39
    初期シードのみに依存する。
  • 2:39 - 2:42
    シードが同じなら、数列は同じ。
  • 2:42 - 2:46
    さて、完全なランダムと
  • 2:46 - 2:48
    擬似ランダムの違いは何だろう。
  • 2:51 - 2:55
    各 数列を ランダム・ウォーク で表してみよう。
  • 2:58 - 3:02
    似たように見えるが、スピードを上げると?
  • 3:03 - 3:06
    擬似ランダムは 結局 繰り返しになる。
  • 3:06 - 3:10
    これはアルゴリズムが
    以前と同じシード値を
  • 3:10 - 3:11
    生成すると発生し、
  • 3:11 - 3:13
    そこから 周期的になる。
  • 3:13 - 3:17
    擬似ランダムが繰り返しになるまでの
    数列の長さをー
  • 3:17 - 3:19
    「ピリオド」という。
  • 3:19 - 3:25
    ピリオドは初期シードの桁数に強く制限される。
  • 3:25 - 3:27
    例えば 2桁のシードを用いると、
  • 3:27 - 3:31
    アルゴリズムが 同じシードを生成し、
    繰り返しになるまで
  • 3:31 - 3:35
    多くて 100通り の数字を生成できる。
  • 3:35 - 3:39
    3桁のシードなら、
    繰り返しまでの数を
  • 3:39 - 3:41
    1000通りに拡大できる。
  • 3:41 - 3:45
    4桁のシードなら、
    繰り返しまでの数字の個数は
  • 3:45 - 3:47
    1万まで広がる。
  • 3:47 - 3:49
    しかし もしシードが十分に大きければ、
  • 3:49 - 3:54
    繰り返しまで 数兆、数京もの数列を
  • 3:54 - 3:57
    生成できる。
  • 3:57 - 4:00
    しかしキーの違いには注意が必要だ。
  • 4:00 - 4:02
    擬似ランダム数を生成する時、
  • 4:02 - 4:06
    起こり得る数列はかなり制限される。
  • 4:06 - 4:07
    例えば、
  • 4:07 - 4:12
    アリスが完全ランダムで
    20個のシフト数を生成したとする。
  • 4:12 - 4:15
    これは あり得るシフト数列が書かれた、
  • 4:15 - 4:18
    均一な紙の山から
    1枚を選ぶのに等しい。
  • 4:18 - 4:22
    この山には 26^20 ものページがあるから、
  • 4:22 - 4:25
    天文学的な大きさになる。
  • 4:25 - 4:27
    山の元に立って、光を上に向けて放つと、
  • 4:27 - 4:30
    頂上にいる人間が光を目にするのは
  • 4:30 - 4:33
    2億年先になる。
  • 4:33 - 4:38
    これと比べて、アリスが 20桁の擬似ランダム数列を、
  • 4:38 - 4:41
    4桁のシードで生成した場合は、
  • 4:41 - 4:44
    10,000 通りの初期シードから
  • 4:44 - 4:48
    1つを選ぶに等しい。
  • 4:48 - 4:53
    つまり 彼女が生成できる数列は 10,000 通りしかなく、
  • 4:53 - 4:57
    全数列のうちの
    ごく小さな 1部分にすぎない。
  • 4:57 - 5:01
    シフト数をランダムから擬似ランダムに置き換えた時、
  • 5:01 - 5:06
    鍵空間を ごくごく小さな シード空間にまで
    縮めることになる。
  • 5:06 - 5:09
    だから 擬似ランダムをー
  • 5:09 - 5:13
    完全なランダムのように見せかけるには、
  • 5:13 - 5:16
    コンピュータが 全てのシードを試みるのを
  • 5:16 - 5:19
    現実的に不可能にする必要がある。
  • 5:19 - 5:23
    ここで 情報工学の世界では、
    次の2つがハッキリと区別される。
  • 5:23 - 5:25
    「可能」と
  • 5:25 - 5:29
    「現実的な時間内で可能」 の違い。
  • 5:29 - 5:32
    例えるなら、自転車のダイヤル鍵と同じ理屈だ。
  • 5:32 - 5:36
    全ての番号を試せば、
    誰でも簡単に解除の番号が分かると
  • 5:36 - 5:38
    知られている。
  • 5:38 - 5:41
    しかし それには何日も掛かるので、
  • 5:41 - 5:45
    8時間くらいなら、事実上 安全と考えられる。
  • 5:47 - 5:49
    擬似ランダムの生成では、
  • 5:49 - 5:54
    シードの桁数が増えるほど
    強固なセキュリティになる。
  • 5:54 - 5:56
    最も速いコンピュータが
  • 5:56 - 6:00
    全てのシードを試すまでに 何百年も掛かるのなら、
  • 6:00 - 6:04
    完璧に強固ではなくても、
    事実上 安全とみなして
  • 6:04 - 6:07
    差し支えない。
  • 6:08 - 6:10
    コンピュータが速くなるのに従い、
  • 6:10 - 6:14
    シードの大きさを増やす必要がある。
  • 6:14 - 6:18
    擬似ランダムのお陰で、
    アリスとボブは
  • 6:18 - 6:22
    前もって全てのランダムシフト数を
    共有しなくてよくなった。
  • 6:22 - 6:26
    代わりに、それより短いランダムなシードを共有し、
  • 6:26 - 6:29
    ランダムに見える数列を
    必要な時に 生成すれば
  • 6:29 - 6:32
    よい。
  • 6:32 - 6:33
    しかし もし、
  • 6:33 - 6:39
    彼らが二度と会えず、シードを共有できなくなったら
    どうなるだろう?
Title:
Random vs Pseudorandom Number Generators
Video Language:
English
Duration:
06:41

Japanese subtitles

Revisions