楕円曲線
楕円曲線の歴史は非常に長くて、第二世紀で既にDiophantusの本に記載されています。暗号学に楕円曲線を利用するのは20世紀の話です。

数学の楕円曲線
楕円曲線は で表現されます。
注意すべき点は、 が必要であります。
楕円曲線自体は滑らかで、 の値でさまざまな形になりますが、暗号学で楕円曲線を利用する場合は、有限体上の楕円曲線の点の集合を利用します。
有限体上の楕円曲線の整数点の集合 (Elliptic Curve over Finite Fields)
暗号学で利用するときは精度を重視するため、整数有限体上の楕円曲線を利用します。 を素数とする。有限体 上の楕円曲線 : の点の集合は下記の性質を満たします:
元 (Element)
の解 全体の集合
単位元 (Identity Element)
無限遠点(point at infinity) について、 と定義する
逆元 (Inverse Element)
についての逆元を とする
加算
を 上の点とする もし かつ ならば でなければ とする:
二倍算
の場合は若干特殊で で計算します
スカラー倍算
の場合、スカラー倍算と呼びます。 が知っている上で、 を満たす を求める問題を、楕円曲線離散対数問題と呼びます。 を 回足し算するより、 をの倍数に変改して加算した方が効率的です 例 の場合:
で計算できます
マルチスカラー倍算
を楕円曲線の点、 を有限体の点としたとき を求めることをマルチスカラー倍算と呼びます。 SNARKなどで頻繁的に利用されているが、計算量は多いです。効率化に関する研究は現在進行形です。
参考資料
https://zenn.dev/herumi/articles/ecc-multi-scalar-multiplication
https://tex2e.github.io/blog/crypto/point-of-elliptic-curve-over-GF
https://andrea.corbellini.name/ecc/interactive/modk-add.html
Last updated