Return to Video

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:44
    17の「原始根」を設定します。今回は3で考えます。
  • 0:44 - 0:48
    3には重要な性質があります。さまざまな指数で累乗したときに、
  • 0:48 - 0:52
    解が時計の周囲に均等に分散されるのです。
  • 0:52 - 1:00
    3は「生成元」と呼ばれています。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:30
    12という数字が与えられても、それを生み出した指数を見つけるには、大変な試行錯誤が必要です。
  • 1:30 - 1:32
    どれぐらい大変でしょうか。
  • 1:32 - 1:39
    小さな数字なら簡単です。けれど、何百桁にもなる素数の「法」を使用した場合、
  • 1:39 - 1:42
    実際には解くことができなくなります。
  • 1:42 - 1:47
    地球上のすべてのコンピュータを使っても、全ての可能性のある数を見つけ出すには、
  • 1:47 - 1:49
    何千年もかかってしまうでしょう。
  • 1:49 - 1:53
    つまり、一方向関数の強みは、逆方向に計算するのに膨大な時間がかかるという点なのです。
Title:
Discrete Logarithm Problem
Description:

Discrete Logarithm Problem - modular arithmetic

more » « less
Video Language:
English
Duration:
01:56

Japanese subtitles

Revisions