楕円曲線(だえんきょくせん、elliptic curve)とは、導入されたときから幅広い応用分野が存在し、近年の暗号技術においても重要な役割を果たす代表的な数学オブジェクトの一つである。
楕円曲線の定義
楕円曲線とは、以下のような形式の方程式で表される曲線のことである。
y2=x3+ax+b
ここで、a と b は実数である。また、x と y は複素数をとる(複素平面上の点である)。この方程式は、y2−x3−ax−b=0 とも書かれる。
この曲線上の点を、座標 (x,y) で表す。ただし、この座標系において、点 O を原点とする。
楕円曲線上の演算
楕円曲線上の演算には、以下のようなものがある。
加算
楕円曲線上の点 P1 と P2 の加算 P3=P1+P2 は、以下のように定義される。
- P1 と P2 を直線 l で結ぶ(ただし、P1=P2 の場合は、接線を引く)。
- l と楕円曲線との交点を求める。交点を P3 とする。
- P3 の y 座標について、y=−y′ となるようにする。ただし、y′ は P3 における y 座標である。
減算
楕円曲線上の点 P1 と P2 の減算 P3=P1−P2 は、以下のように定義される。
- P2 を反転させた点を −P2 とする。
- P1 と −P2 の加算を行う。
スカラー倍
楕円曲線上の点 P のスカラー倍 Q=[k]P は、以下のように定義される。
- k を2進数で表し、それを反転させたものを e とする。
- e の各ビットについて、以下を繰り返す。
- 現在の点を2倍する。
- e の現在のビットが1であれば、元の点を加算する。
このように、スカラー倍は2進数分解に基づく方法で計算することができる。このため、楕円曲線上の演算は、高速なアルゴリズムが存在する。
楕円曲線暗号
楕円曲線暗号とは、楕円曲線上の演算を利用して暗号化・復号化を行う暗号方式である。RSA暗号よりも同じ強度の暗号化に対して、より短い鍵長で済むため、セキュリティ面で有利とされる。
また、楕円曲線上の離散対数問題が、楕円曲線暗号において利用される。このため、楕円曲線上の離散対数問題の解法が発見された場合、楕円曲線暗号は破られることになる。
まとめ
楕円曲線は、代数幾何学において研究された数学オブジェクトである。楕円曲線上の演算は、スカラー倍、加算、減算が定義されており、これを利用して楕円曲線暗号が構築される。現在、楕円曲線暗号は、RSA暗号と並ぶ代表的な公開鍵暗号方式である。