1 00:00:00,000 --> 00:00:02,000 解決策を示します。 2 00:00:02,000 --> 00:00:06,000 まずアリスとボブはある原始根と 生成元を使うことを確認し合います。 3 00:00:06,000 --> 00:00:07,000 これは秘密ではありません。 4 00:00:07,000 --> 00:00:10,000 この場合、17 と 3 にします。 5 00:00:10,000 --> 00:00:15,000 次に、アリスは秘密の乱数、たとえば 15 を選んで 次のように計算します。 6 00:00:15,000 --> 00:00:20,000 3 を 15 乗してから 17 で割り、 7 00:00:20,000 --> 00:00:24,000 剰余をボブに公然と送ります。 8 00:00:24,000 --> 00:00:29,000 同様に、ボブも自分の秘密の乱数、 たとえば 13 を選んで次のように計算します。 9 00:00:29,000 --> 00:00:34,000 3 を 13 乗して、17 で割り、この計算の余り(剰余)を 10 00:00:34,000 --> 00:00:38,000 特に秘密にせず、アリスに送ります。 11 00:00:38,000 --> 00:00:40,000 ここからが、この手法の核心部分です。 12 00:00:40,000 --> 00:00:43,000 アリスは、ボブから送られた数を 13 00:00:43,000 --> 00:00:47,000 自分の秘密の数で累乗します。 14 00:00:47,000 --> 00:00:51,000 これで、共有の秘密の数が得られます。 この場合は 10 です。 15 00:00:51,000 --> 00:00:55,000 同様に、ボブもアリスが秘密にせずに送付した 計算結果を 16 00:00:55,000 --> 00:00:57,000 自分の秘密の数値でべき乗すると、 17 00:00:57,000 --> 00:01:00,000 同じ共有の秘密の数値が得られます。 18 00:01:00,000 --> 00:01:05,000 一見、別々の計算のようですが、彼らは まったく同じ計算を行っているのです。 19 00:01:05,000 --> 00:01:06,000 アリスの場合、 20 00:01:06,000 --> 00:01:10,000 ボブから受信した 12 は 21 00:01:10,000 --> 00:01:14,000 3 を 13 乗して 17 で割った余りです。 22 00:01:14,000 --> 00:01:21,000 このため、彼女の計算は、3 を 13 乗し、さらに 15乗して 17 で割った余りを求めるのと同じです。 23 00:01:21,000 --> 00:01:22,000 ボブの場合、 24 00:01:22,000 --> 00:01:26,000 彼がアリスから受信した 6 は、 25 00:01:26,000 --> 00:01:30,000 3 を 15 乗して 17 で割った余りです。 26 00:01:30,000 --> 00:01:31,000 このため彼の計算は 27 00:01:31,000 --> 00:01:35,000 3 を 15 乗し、さらに 13 乗したのと 同じです。 28 00:01:35,000 --> 00:01:39,000 彼らは同じ計算を、指数の順序を変えて 行っただけなのです。 29 00:01:39,000 --> 00:01:42,000 指数の順序を入れ替えても、結果は変わりません。 30 00:01:42,000 --> 00:01:44,000 このため、双方とも 3 を、 31 00:01:44,000 --> 00:01:47,000 自分たちの秘密の数値で 累乗しています。 32 00:01:47,000 --> 00:01:51,000 イブは、秘密の数値である 15,13 のいずれも知らないので、 33 00:01:51,000 --> 00:01:55,000 答を出すことができません。 34 00:01:55,000 --> 00:01:57,000 この方法を使えば安全です。 35 00:01:57,000 --> 00:02:01,000 イブは、離散対数の問題に阻まれてしまうため、 36 00:02:01,000 --> 00:02:03,000 十分に大きな数値を使えば、 37 00:02:03,000 --> 00:02:06,000 イブは現実的な時間内では 38 00:02:06,000 --> 00:02:09,000 この暗号を破ることができません。 39 00:02:09,000 --> 00:02:11,000 こうして鍵交換の問題が解決されます。 40 00:02:11,000 --> 00:02:14,000 この手法と疑似乱数生成機と併用すれば、 41 00:02:14,000 --> 00:02:18,000 一度も会ったことのない人同士でも 暗号通信ができます。