楕円曲線:点を足すと曲線上を跳ねる

弦と接線で点を「足し算」する楕円曲線。実数体では作図で、有限体では kG の散らばりで離散対数の難しさを体感します。

モード
-1.0
1.6
-0.80
1.20

キャンバスを左右にドラッグすると P を、グレーの点を動かすと Q を動かせます。

点 P
点 Q
直線の傾き λ
和 R = P + Q
弦と接線の作図
楕円曲線
楕円曲線 y² = x³ + a·x + b 上の 2 点 P, Q を結ぶ直線は、必ずもう 1 点で曲線と交わります。 その交点を x 軸で折り返した点が「足し算」の結果 R = P + Q です。
P = Q のときは直線の代わりに接線を引きます(2P の計算)。この奇妙な規則で点同士を足すと、点は曲線上をぴょんぴょん跳ねます。
暗号では座標を有限体(mod p)に置き換えます。G を k 回足した P = kG は簡単に作れるのに、P と G から k を逆算するのは猛烈に難しい ── これが楕円曲線離散対数問題で、ECDSA / ECDH の安全性の土台です。

いま何が起きている?

ここがポイント