[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0000,0000,0000,,解決策を示します。 Dialogue: 0,0:00:02.00,0:00:06.00,Default,,0000,0000,0000,,まずアリスとボブはある原始根と\N生成元を使うことを確認し合います。 Dialogue: 0,0:00:06.00,0:00:07.00,Default,,0000,0000,0000,,これは秘密ではありません。 Dialogue: 0,0:00:07.00,0:00:10.00,Default,,0000,0000,0000,,この場合、17 と 3 にします。 Dialogue: 0,0:00:10.00,0:00:15.00,Default,,0000,0000,0000,,次に、アリスは秘密の乱数、たとえば 15 を選んで\N次のように計算します。 Dialogue: 0,0:00:15.00,0:00:20.00,Default,,0000,0000,0000,,3 を 15 乗してから 17 で割り、 Dialogue: 0,0:00:20.00,0:00:24.00,Default,,0000,0000,0000,,剰余をボブに公然と送ります。 Dialogue: 0,0:00:24.00,0:00:29.00,Default,,0000,0000,0000,,同様に、ボブも自分の秘密の乱数、\Nたとえば 13 を選んで次のように計算します。 Dialogue: 0,0:00:29.00,0:00:34.00,Default,,0000,0000,0000,,3 を 13 乗して、17 で割り、この計算の余り(剰余)を Dialogue: 0,0:00:34.00,0:00:38.00,Default,,0000,0000,0000,,特に秘密にせず、アリスに送ります。 Dialogue: 0,0:00:38.00,0:00:40.00,Default,,0000,0000,0000,,ここからが、この手法の核心部分です。 Dialogue: 0,0:00:40.00,0:00:43.00,Default,,0000,0000,0000,,アリスは、ボブから送られた数を Dialogue: 0,0:00:43.00,0:00:47.00,Default,,0000,0000,0000,,自分の秘密の数で累乗します。 Dialogue: 0,0:00:47.00,0:00:51.00,Default,,0000,0000,0000,,これで、共有の秘密の数が得られます。\Nこの場合は 10 です。 Dialogue: 0,0:00:51.00,0:00:55.00,Default,,0000,0000,0000,,同様に、ボブもアリスが秘密にせずに送付した\N計算結果を Dialogue: 0,0:00:55.00,0:00:57.00,Default,,0000,0000,0000,,自分の秘密の数値でべき乗すると、 Dialogue: 0,0:00:57.00,0:01:00.00,Default,,0000,0000,0000,,同じ共有の秘密の数値が得られます。 Dialogue: 0,0:01:00.00,0:01:05.00,Default,,0000,0000,0000,,一見、別々の計算のようですが、彼らは\Nまったく同じ計算を行っているのです。 Dialogue: 0,0:01:05.00,0:01:06.00,Default,,0000,0000,0000,,アリスの場合、 Dialogue: 0,0:01:06.00,0:01:10.00,Default,,0000,0000,0000,,ボブから受信した 12 は Dialogue: 0,0:01:10.00,0:01:14.00,Default,,0000,0000,0000,,3 を 13 乗して 17 で割った余りです。 Dialogue: 0,0:01:14.00,0:01:21.00,Default,,0000,0000,0000,,このため、彼女の計算は、3 を 13 乗し、さらに 15乗して \N17 で割った余りを求めるのと同じです。 Dialogue: 0,0:01:21.00,0:01:22.00,Default,,0000,0000,0000,,ボブの場合、 Dialogue: 0,0:01:22.00,0:01:26.00,Default,,0000,0000,0000,,彼がアリスから受信した 6 は、 Dialogue: 0,0:01:26.00,0:01:30.00,Default,,0000,0000,0000,,3 を 15 乗して 17 で割った余りです。 Dialogue: 0,0:01:30.00,0:01:31.00,Default,,0000,0000,0000,,このため彼の計算は Dialogue: 0,0:01:31.00,0:01:35.00,Default,,0000,0000,0000,,3 を 15 乗し、さらに 13 乗したのと\N同じです。 Dialogue: 0,0:01:35.00,0:01:39.00,Default,,0000,0000,0000,,彼らは同じ計算を、指数の順序を変えて\N行っただけなのです。 Dialogue: 0,0:01:39.00,0:01:42.00,Default,,0000,0000,0000,,指数の順序を入れ替えても、結果は変わりません。 Dialogue: 0,0:01:42.00,0:01:44.00,Default,,0000,0000,0000,,このため、双方とも 3 を、 Dialogue: 0,0:01:44.00,0:01:47.00,Default,,0000,0000,0000,,自分たちの秘密の数値で\N累乗しています。 Dialogue: 0,0:01:47.00,0:01:51.00,Default,,0000,0000,0000,,イブは、秘密の数値である 15,13 のいずれも知らないので、 Dialogue: 0,0:01:51.00,0:01:55.00,Default,,0000,0000,0000,,答を出すことができません。 Dialogue: 0,0:01:55.00,0:01:57.00,Default,,0000,0000,0000,,この方法を使えば安全です。 Dialogue: 0,0:01:57.00,0:02:01.00,Default,,0000,0000,0000,,イブは、離散対数の問題に阻まれてしまうため、 Dialogue: 0,0:02:01.00,0:02:03.00,Default,,0000,0000,0000,,十分に大きな数値を使えば、 Dialogue: 0,0:02:03.00,0:02:06.00,Default,,0000,0000,0000,,イブは現実的な時間内では Dialogue: 0,0:02:06.00,0:02:09.00,Default,,0000,0000,0000,,この暗号を破ることができません。 Dialogue: 0,0:02:09.00,0:02:11.00,Default,,0000,0000,0000,,こうして鍵交換の問題が解決されます。 Dialogue: 0,0:02:11.00,0:02:14.00,Default,,0000,0000,0000,,この手法と疑似乱数生成機と併用すれば、 Dialogue: 0,0:02:14.00,0:02:18.00,Default,,0000,0000,0000,,一度も会ったことのない人同士でも\N暗号通信ができます。