楕円曲線

数学における楕円曲線（だえんきょくせん、英: elliptic curve）とは種数 1 の非特異な射影代数曲線、さらに一般的には、特定の基点 O を持つ種数 1 の代数曲線を言う。 楕円曲線上の点に対し、先述の点 O を単位元とする（必ず可換な）群をなすように、和を代数的に定義することができる。すなわち楕円曲線はアーベル多様体である。 楕円曲線は、代数幾何学的には、射影平面 P2 の中の三次の平面代数曲線として見ることもできる。より正確には、射影平面上、楕円曲線はヴァイエルシュトラス方程式あるいはヴァイエルシュトラスの標準形 Y 2 Z + a 1 X Y Z + a 3 Y Z 2 = X 3 + a 2 X 2 Z + a 4 X Z 2 + a 6 Z 3 {\displaystyle Y^{2}Z+a_{1}XYZ+a_{3}YZ^{2}=X^{3}+a_{2}X^{2}Z+a_{4}XZ^{2}+a_{6}Z^{3}} により定義された非特異な平面代数曲線に双有理同値である（有理変換によってそのような曲線に変換される）。そしてこの形にあらわされているとき、O は実は射影平面の「無限遠点」である。 また、係数体（英語版）の標数が 2 でも 3 でもないとき、楕円曲線は、アフィン平面上次の形の式により定義された非特異な平面代数曲線に双有理同値である。 y 2 = x 3 + a x + b   . {\displaystyle y^{2}=x^{3}+ax+b\ .} 非特異であるとは、グラフが尖点を持ったり、自分自身と交叉したりはしないということである。この形の方程式もヴァイエルシュトラス方程式あるいはヴァイエルシュトラスの標準形という。係数体の標数が 2 や 3 のとき、上の式は全ての非特異三次曲線（英語版）を表せるほど一般ではない（詳細な定義は以下を参照）。 Pが重根を持たない三次多項式として、y2 = P(x) とすると、種数 1 の非特異平面曲線を得るので、これは楕円曲線である。Pが次数 4 で無平方（英語版）とすると、これも種数 1 の平面曲線となるが、しかし、単位元を自然に選び出すことができない。さらに一般的には、単位元として働く有理点を少なくとも一つ持つような種数 1 の代数曲線を楕円曲線と呼ぶ。例えば、三次元射影空間へ埋め込まれた二つの二次曲面の交叉は楕円曲線である。 楕円関数論を使い、複素数上で定義された楕円曲線はトーラスの複素射影平面（英語版）への埋め込みに対応することを示すことができる。トーラスもアーベル群で、実はこの対応は群同型かつ位相的に同相にもなっている。したがって、位相的には複素楕円曲線はトーラスである。 楕円曲線は、数論で特に重要で、現在研究されている主要な分野の一つである。例えば、アンドリュー・ワイルズにより（リチャード・テイラーの支援を得て）証明されたフェルマーの最終定理で重要な役割を持っている（モジュラー性定理とフェルマーの最終定理への応用を参照）。また、楕円曲線は、楕円暗号(ECC) や素因数分解への応用が見つかっている。 楕円曲線は、楕円ではないことに注意すべきである。「楕円」ということばの由来については楕円積分、楕円関数を参照。 このように、楕円曲線は次のように見なすことができる。 一次元のアーベル多様体 三次の平面代数曲線で、有理点を持つもの 複素数を加法群とみて、二重周期を持つ格子で割った商空間（複素数体上のみ、複素数上の楕円曲線） 楕円曲線の形式的な定義には、かなり技術的で代数幾何学の背景を必要としているが、高校レベルの代数と幾何を使って、楕円曲線の様子をいくらか記述することが可能である。 すなわち、実平面上、楕円曲線は次の方程式により定義される平面曲線としてあらわされる。 y 2 = x 3 + a x + b {\displaystyle y^{2}=x^{3}+ax+b} ここに a と b は実数である。 楕円曲線の定義は、曲線が非特異であることも要求される。幾何学的には、このことは曲線のグラフが尖点を持たず、自己交叉せず、孤立点ももたないことを意味する。代数的には、非特異とは判別式 Δ = − 16 ( 4 a 3 + 27 b 2 ) {\displaystyle \Delta =-16(4a^{3}+27b^{2})} と関係している。曲線が非特異であることと、判別式が 0 でないこととは同値である。（係数 −16 は、非特異であることと無関係に見えるが、楕円曲線の高度な研究ではこのようにしたほうが便利である。） 非特異楕円曲線の（実数の）グラフは、判別式が正であれば、二つの曲線の成分を持ち、負であれば、一つの曲線の成分しか持たない。例えば、右の図で示されているグラフでは、図中の左は判別式が 64 であり、図中の右は 判別式が −368 である。 射影平面で考えると、すべての滑らかな三次曲線上の群構造を定義することができる。射影平面上、楕円曲線がヴァイエルシュトラスの標準形 Y 2 Z + a 1 X Y Z + a 3 Y Z 2 = X 3 + a 2 X 2 Z + a 4 X Z 2 + a 6 Z 3 {\displaystyle Y^{2}Z+a_{1}XYZ+a_{3}YZ^{2}=X^{3}+a_{2}X^{2}Z+a_{4}XZ^{2}+a_{6}Z^{3}} によりあらわされるとき、そのような三次曲線は斉次座標（英語版） [0 : 1 : 0] である無限遠点 O を持ち、群の単位元となる。 曲線は x-軸で対称であるので、任意の点 Pが与えられると、−P はその反対側の点として取ることができる。−O は O とする。 P と Q が曲線上の二点であれば、一意に第三の点 P + Q を次の方法で定義することができる。まず、P と Q を通る直線を引く。この直線は一般に第三の点 R で曲線と交わる。P + Q を R の反対の点である −R とする。 この加法の定義は、ほとんどの場合はうまく働くが、いくつかの例外がある。一つ目の例外は、加算する点の片方が O であるときである。このとき、P + O = P = O + P と定義し、O は群の単位元となる。第二の例外は、P と Q が互いに反対側の点である場合である。この場合は、P + Q = O と定義する。最後の例外は、P = Q の場合であり、このとき一点しかないため、これを通る直線を一意に定義できない。そこで、この点での曲線の接線を使う。ほとんどの場合、接線は第二の点 R で曲線と交叉するため、反対の点をとることができる。しかしながら、P がたまたま変曲点（そこで曲線の凹み方が変わるような点）であるようなときは、接線は P でしか曲線と交叉しない。そこで、R を P 自身として、P + P を単純に点の反対の点とする。 ヴァイエルシュトラス標準形ではない三次曲線に対しては、九つある変曲点のうちの一つを単位元 O とすることで群構造を定義することができる。射影平面内では、多重度を考慮にいれると、三次曲線と任意の直線は三つの点で交叉する。点 P に対し、−P は O と P を通る第三の点として一意に定義される。そして、任意の P と Q に対する P + Q は、R を P と Q を含む直線上の第三の点としたとき、P + Q = −R として定義される。 K をその上で曲線が定義される体とし（つまり、曲線を定義する式の係数 K の中にある）、曲線を E で表すと、E 上の点であり、かつx座標とy座標の値が共に K 上にある点（無限遠点を含む）を、E の K-有理点とよぶ。K-有理点の集合は、E(K) で表す。これも群を形成する。なぜならば、多項式の性質から、P が E(K) の点であれば −P も E(K) の点であり、P と Q の 2点が E(K) の点であれば、第三の点も E(K) の点になるからである。加えて、K が L の部分体であれば、E(K) は E(L) の部分群である。 上記の群は、幾何学的に記述されると同様に代数的にも記述できる。体 K （体の標数は 2 でも 3 でもないとする）上の曲線 y2 = x3 + ax + b が与えられるとし、曲線上の点を P = (xP, yP) と Q = (xQ, yQ) として、まず、xP ≠ xQ とする（下図の一つ目のグラフ）。s を P と Q を含む直線の傾き、つまり、 s = y P − y Q x P − x Q {\displaystyle s={\frac {y_{P}-y_{Q}}{x_{P}-x_{Q}}}} とする。K は体であるので、s はうまく定義できる。すると、R = (xR, yR) = −(P + Q) を x R = s 2 − x P − x Q y R = y P + s ( x R − x P ) {\displaystyle {\begin{aligned}x_{R}&=s^{2}-x_{P}-x_{Q}\\y_{R}&=y_{P}+s(x_{R}-x_{P})\end{aligned}}} により定義することができる。 xP = xQ の場合は（下の三つ目と四つ目のグラフ）、二つの選択肢がある。yP = −yQ のとき（yP = yQ = 0 を含む）、和は O と定義される。つまり、曲線上の各点の逆元は、x-軸に対して線対称の位置にある。yP = yQ ≠ 0 のときは（下の二つ目のグラフ）、R = (xR, yR) = −(P + P) = −2P は、 s = 3 x P 2 + a 2 y P x R = s 2 − 2 x P y R = y P + s ( x R − x P ) {\displaystyle {\begin{aligned}s&={\frac {3{x_{P}}^{2}+a}{2y_{P}}}\\x_{R}&=s^{2}-2x_{P}\\y_{R}&=y_{P}+s(x_{R}-x_{P})\end{aligned}}} により与えられる。 結合律を除く全ての群法則は、直ちに群作用の幾何学的定義から導くことができる。このアニメーションは幾何学的な結合法則を示している。 六本のどの直線についても、直線上の三点の和が 0 であることに注意。九個の点全ての位置は、0 と a, b, c の位置と楕円曲線によって決定される。九点のうちの中心の点は、a と b + c を通る直線上と、a + b と c を通る直線上にある。加法の結合律は、格子の中心点を楕円曲線が通るという事実と同値である。この事実より、−(a +(b + c)) = −((a + b)+ c) が導かれる。 楕円曲線と点 0 はこのアニメーションの中では不動であることに対し、一方、a, b, c は互いに独立して動く。 楕円曲線の複素射影平面（英語版）の中のトーラスの埋め込みとしての定式化は、ヴァイエルシュトラスの楕円関数の不思議な性質から自然に導かれる。これらの関数と関数の一階微分は、公式 ℘ ′ ( z ) 2 = 4 ℘ ( z ) 3 − g 2 ℘ ( z ) − g 3 {\displaystyle \wp '(z)^{2}=4\wp (z)^{3}-g_{2}\wp (z)-g_{3}} により関係付けられている。 ここに、g2 と g3 は定数であり、℘(z) はΛを周期とするヴァイエルシュトラスの楕円関数で、℘'(z) はその微分である。（複素数上の）楕円関数の形の中でこの公式は明らかであろう。ヴァイエルシュトラスの楕円関数は二重周期関数である。つまり、周期の基本対（英語版）の観点から周期的であり、本質的には、ヴァイエルシュトラス関数は、自然に、トーラス T = C/Λ の上で定義される。このトーラスは、写像 z ↦ [ 1 : ℘ ( z ) : ℘ ′ ( z ) ] {\displaystyle z\mapsto [1:\wp (z):\wp '(z)]} により、複素射影平面の中に埋め込まれる。 この写像は群同型であり、トーラスの自然な群構造を射影平面へ写す。この写像は、リーマン面にも同型であり、従って、位相的には、楕円曲線が与えられるとトーラスのように見える。格子 Λ が、非零な複素数 c による掛け算により、格子 cΛ へ写されると、対応する曲線は同型となる。楕円曲線の同型類はj-不変量により特定される。 同型類は同じ方法で理解することができる。定数 g2 と g3 は、j-不変量と呼ばれ、トーラスの構造である格子により一意に決定される。しかしながら、複素数の全体は、実係数多項式の分解体を成し、楕円曲線は y 2 = x ( x − 1 ) ( x − λ ) {\displaystyle y^{2}=x(x-1)(x-\lambda )} と書くことができる。 以上のことから、 g 2 = 4 1 / 3 3 ( λ 2 − λ + 1 ) {\displaystyle g_{2}={\frac {4^{1/3}}{3}}(\lambda ^{2}-\lambda +1)} であり、 g 3 = 1 27 ( λ + 1 ) ( 2 λ 2 − 5 λ + 2 ) {\displaystyle g_{3}={\frac {1}{27}}(\lambda +1)(2\lambda ^{2}-5\lambda +2)} であることが分かり、このモジュラー判別式は Δ = g 2 3 − 27 g 3 2 = λ 2 ( λ − 1 ) 2 {\displaystyle \Delta =g_{2}^{3}-27g_{3}^{2}=\lambda ^{2}(\lambda -1)^{2}} である。 ここに λ はモジュラーラムダ関数（英語版）と呼ばれることもある。 注意すべきは、一意化定理は、種数 1 の全てのコンパクトなリーマン面は、トーラスとして実現することができることを意味していることである。 このことは、楕円曲線上の捩れ点を容易に理解することができる。格子 Λ が基本周期 ω1, ω2 ではられると、n-ねじれ点は、0 から n − 1 までの整数 a と b に対し、次の形の（同型類の）点である。 a n ω 1 + b n ω 2 . {\displaystyle {\frac {a}{n}}\omega _{1}+{\frac {b}{n}}\omega _{2}.} 複素数上に、どの楕円曲線も九個の変曲点を持っている。これらの点のうちの二つを通るどの直線も、三つ目の変曲点を通る。九つの点と12の直線はこのようにしてヘッセ配置（英語版）を成す。 有理数体 Q 上、あるいは一般に代数体 K 上定義された曲線 E/K についても接線と割線の方法 (the tangent and secant method) による加法は適用できる。群構造を定義したときにも述べたように、明示公式から、2つの K-有理点 P, Q の和は、P と Q を結ぶ直線は K 上に係数を持つゆえ、再び K 上に座標を持つ。このようにして、E の K-有理点全体のなす集合は E の複素数点（K が実代数体の場合は実数点）全体のなす群の部分群を成す。この意味において、楕円曲線はアーベル群、すなわち P + Q = Q + P となっている。 代数体 K 上の楕円曲線上の点に対し、高さが定まる。一般に、次数 d の代数体 K 上の射影空間 P n ( K ) {\displaystyle \mathbb {P} ^{n}(K)} 上の点 P = [ x 0 : x 1 : … : x n ] ∈ E ( K ) {\displaystyle P=[x_{0}:x_{1}:\ldots :x_{n}]\in E(K)} の絶対的高さ (absolute height)を H ( P ) = ( ∏ v max i { ‖ x i ‖ v } ) 1 / d {\displaystyle H(P)=(\prod _{v}\max _{i}\{\lVert x_{i}\rVert _{v}\})^{1/d}} により定める（P を含む K の取り方は一意ではないが、K の取り方によらずに定まる）。ここで ‖ ⋅ ‖ v {\displaystyle \lVert \cdot \rVert _{v}} は K 上の正規化された絶対値をあらわす。また h ( P ) = log ⁡ H ( P ) {\displaystyle h(P)=\log H(P)} を対数的高さ (logarithmic height) と呼ぶ。 f を代数体 K 上の楕円曲線 E 上定義された有理関数とする。 h f ( P ) = h ( [ f ( P ) : 1 ] ) {\displaystyle h_{f}(P)=h([f(P):1])} （ただし P が特異点のときは、 h f ( P ) = h ( [ 1 : 0 ] ) {\displaystyle h_{f}(P)=h([1:0])} とする）を f に対する高さと呼ぶ。 P が非特異点ならば、これは代数的数 f ( P ) ∈ K {\displaystyle f(P)\in K} の対数的高さと一致する。特に P のx-座標が有理数 x = p⁄q （p と q は互いに素）で x が P の x-座標を与える関数であるとき、 h x ( P ) = log ⁡ max ( | p | , | q | ) {\displaystyle h_{x}(P)=\log \max(|p|,|q|)} となる。 任意の定数 C に対し、高さ h f ( P ) ≤ C {\displaystyle h_{f}(P)\leq C} となる点 P ∈ E ( K ) {\displaystyle P\in E(K)} は有限個である。 f が偶関数であるとき、つまり f ( P ) = f ( − P ) {\displaystyle f(P)=f(-P)} が任意の点 P ∈ E ( K ) {\displaystyle P\in E(K)} について成り立つとき、つぎの3つの不等式が成り立つ。 任意の P , Q ∈ E ( K ¯ ) {\displaystyle P,Q\in E({\bar {K}})} に対し h f ( P + Q ) + h f ( P − Q ) = 2 h f ( P ) + 2 h f ( Q ) + O ( 1 ) {\displaystyle h_{f}(P+Q)+h_{f}(P-Q)=2h_{f}(P)+2h_{f}(Q)+O(1)} が成り立つ。ここで右辺の O ( 1 ) {\displaystyle O(1)} は E と f のみに依存し、 P や Q には依存しない。 Q ∈ E ( K ¯ ) {\displaystyle Q\in E({\bar {K}})} を決めれば、定数 C Q {\displaystyle C_{Q}} が定まり、 h f ( P + Q ) ≤ 2 h f ( P ) + C Q {\displaystyle h_{f}(P+Q)\leq 2h_{f}(P)+C_{Q}} が任意の P ∈ E ( K ¯ ) {\displaystyle P\in E({\bar {K}})} に対して成り立つ。さらに整数 m を定めれば、任意の P ∈ E ( K ¯ ) {\displaystyle P\in E({\bar {K}})} に対して h f ( m P ) = m 2 h f ( P ) + O ( 1 ) {\displaystyle h_{f}(mP)=m^{2}h_{f}(P)+O(1)} が成り立つ。ここで右辺の O ( 1 ) {\displaystyle O(1)} は E , f , m {\displaystyle E,f,m} のみに依存し、 P には依存しない。つまり h(mP) はおよそ m の二乗に比例して増加する。 E が y 2 = x 3 + a x + b {\displaystyle y^{2}=x^{3}+ax+b} の形であらわされているときは P の x-座標を与える関数 x は偶関数である。 さらに、偶関数 f に対し h