Discrete Logarithm Problem
-
0:01 - 0:05「ある方向では簡単で、逆方向では難しい」
-
0:05 - 0:07そんな計算手順を考えましょう。
-
0:07 - 0:12ここで登場するのが、「合同算術」です。これは、「時計演算」とも呼ばれています。
-
0:12 - 0:20たとえば、46を12で割った余りを求める場合、46単位の長さのヒモを用意します。
-
0:20 - 0:24そして、そのヒモを周の長さが12単位の「法」と呼ばれる時計に巻き付けます。
-
0:24 - 0:28そして、ロープの端が来たところが解になります。
-
0:28 - 0:32ここでは 46 を 12 で割った余り、つまり剰余は 10 になります。
-
0:32 - 0:39簡単ですね。これを機能させるために、まず17などの素数の「法」を扱います。
-
0:39 - 0:4417の「原始根」を設定します。今回は3で考えます。
-
0:44 - 0:483には重要な性質があります。さまざまな指数で累乗したときに、
-
0:48 - 0:52解が時計の周囲に均等に分散されるのです。
-
0:52 - 1:003は「生成元」と呼ばれています。3を任意の指数 x で累乗した場合、
-
1:00 - 1:05解は、等しい頻度で、偏りなく、0と17の間の任意の整数になります。
-
1:05 - 1:08しかし、逆向きの演算は困難です。
-
1:08 - 1:14たとえば、3を何乗して17で割った余りが12になるか簡単に分かるでしょうか。
-
1:14 - 1:17これは「離散対数」の問題と呼ばれます。
-
1:17 - 1:20ここまで、一方向の関数について考えました。
-
1:20 - 1:23これは簡単に実行できますが、逆方向は難しい関数です。
-
1:23 - 1:3012という数字が与えられても、それを生み出した指数を見つけるには、大変な試行錯誤が必要です。
-
1:30 - 1:32どれぐらい大変でしょうか。
-
1:32 - 1:39小さな数字なら簡単です。けれど、何百桁にもなる素数の「法」を使用した場合、
-
1:39 - 1:42実際には解くことができなくなります。
-
1:42 - 1:47地球上のすべてのコンピュータを使っても、全ての可能性のある数を見つけ出すには、
-
1:47 - 1:49何千年もかかってしまうでしょう。
-
1:49 - 1:53つまり、一方向関数の強みは、逆方向に計算するのに膨大な時間がかかるという点なのです。
![]() |
linoal.13 edited Japanese subtitles for Discrete Logarithm Problem | |
![]() |
Satoshi Masutani edited Japanese subtitles for Discrete Logarithm Problem | |
![]() |
Satoshi Masutani edited Japanese subtitles for Discrete Logarithm Problem | |
![]() |
Kazuaki Kumagai edited Japanese subtitles for Discrete Logarithm Problem | |
![]() |
Kazuaki Kumagai edited Japanese subtitles for Discrete Logarithm Problem | |
![]() |
Kazuaki Kumagai edited Japanese subtitles for Discrete Logarithm Problem | |
![]() |
Kazuaki Kumagai edited Japanese subtitles for Discrete Logarithm Problem | |
![]() |
Satoshi Masutani edited Japanese subtitles for Discrete Logarithm Problem |