楕円曲線暗号の全体説明
前項で、11を法とする楕円曲線方程式y**2 = x**3 - 2*x + 3を 満たす(離散化された)点は全部で10個あることがわかりました。あと、 無限遠点もそれに含めることにします。無限遠点というよりは、y軸に 平行な方向をイメージした方がわかりやすいかもしれません。これは数 「0」に対応する点です。実際、任意の点Aに無限遠点を足すと、元の 点Aに戻ってしまいます。また楕円曲線上のある点Aと、x軸に関して それに対称な点Bの和は、この無限遠点になります(図参照)。
こうすると、離散化された点は和(自分自身との和つまり2倍も含む) に関して、閉じた集合となります。数学用語を使うなら、群(可換群) であることがわかっています(結合法則の証明がやや面倒ですが省略)。
この時、楕円曲線上のある点Aをk倍した点Bは、比較的簡単に求め られます。しかし逆に、楕円曲線上の2点AとBとが与えられた時に、 BがAの何倍かというのは、しらみつぶしチェックを行わない限り求め られないことがわかっています。これ、図13で説明した離散対数問題に 似ていますね。b=q**aとなるbを求めるのは簡単だが、与えられた ある整数qとbに対して、b=q**aとなるaを求めるのは難しい、と いう性質でした。
離散対数問題からElGamal暗号を導いたのと同じように、楕円 曲線上のk倍問題から導いた暗号が、楕円曲線暗号なのです。つまり、 楕円曲線方程式や、法とする数(極めて大きな素数)や、基準となる点 Pの位置は公開した上で、Aさんはmという数を隠したままmPの位置 を公開する。Bさんはnという数を隠したままnPの位置を公開する。 そしてAさんはBさんが公開したnPを密かにm倍する。一方Bさんは Aさんが公開したmPを密かにn倍する。これにより両者は、mnPと いう点を密かに共有できるわけです。
sponsored link
このページ
のTOPへ


