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:41TVのノイズの電流をずっと計測すると、
-
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:211946年、ジョン・フォン・ノイマン は
-
1:21 - 1:24コンピュータを軍事目的に使おうとしていた。
-
1:24 - 1:27特に水素爆弾の設計に関わっていた。
-
1:29 - 1:31ENIAC というコンピュータを用い、
-
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:393桁のシードなら、
繰り返しまでの数を -
3:39 - 3:411000通りに拡大できる。
-
3:41 - 3:454桁のシードなら、
繰り返しまでの数字の個数は -
3:45 - 3:471万まで広がる。
-
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:332億年先になる。
-
4:33 - 4:38これと比べて、アリスが 20桁の擬似ランダム数列を、
-
4:38 - 4:414桁のシードで生成した場合は、
-
4:41 - 4:4410,000 通りの初期シードから
-
4:44 - 4:481つを選ぶに等しい。
-
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:458時間くらいなら、事実上 安全と考えられる。
-
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
T. Linoal edited Japanese subtitles for Random vs Pseudorandom Number Generators |