Homeに戻る  一覧に戻る 

On Elliptic Curve:X^3+Y^3=AZ^3(A \in K^*,char(K)!=3)


[2001.08.05]X^3+Y^3 = AZ^3(A \in K^*,char(K)!=3)の2倍点と加法


体Kおよびその元Aについて、char(K) != 3 かつ A \in K*と仮定する。射影平面P2K上の楕円曲線
     E/K: X3+Y3 = AZ3 ----------------------------- (1)
について、2倍点公式、加法公式を直接導く。

■3次の同次多項式
     F(X,Y,Z) = X3+Y3-AZ3
について、F(X,Y,Z) \in K[X,Y,Z]であり、
     ∂F/∂X = 3X2
     ∂F/∂Y = 3Y2
     ∂F/∂Z = -3AZ2
char(K)!=3なので、∂F/∂X = ∂F/∂Y = ∂F/∂Z = 0を満たすのは、X=Y=Z=0のみである。よって、P2K上の代数曲線F(X,Y,Z)=0上には特異点が存在しない、つまりE/Kは非特異である。

また、(1)より、X=Y=0ならば、AZ=0。A in K*より、Z=A-10=0となるので、(X,Y)!=(0,0)である。

■F(X,Y,Z)=0のgenusは、(3-1)(3-2)/2=1であるので、E/Kは非特異楕円曲線である。

■楕円曲線E/K上の無限遠点Oは、[1:-1:0]である。

■楕円曲線E/K上の点P0[X0:Y0:Z0]!=Oについて、-P0を求める。
一般にP2K上の2点P0[X0:Y0:Z0],P1[X1:Y1:Z1]を通る直線Lは、
     (Y0Z1-Y1Z0)X+(Z0X1-Z1X0)Y+(X0Y1-X1Y0)Z = 0 ------------- (2)
であるので、E/K上の2点P0[X0:Y0:Z0],O[1:-1:0]を通る直線は、
     Z0X+Z0Y-(X0+Y0)Z=0 ------ (3)
である。よって、直線(3)と楕円曲線(1)の3交点を求める。
     Z0(X+Y)=(X0+Y0)Z ------- (4)
となる。点P0はE/K上にあるので、
     X03+Y03 = AZ03 ------- (5)
(1),(5)より、
     (X0+Y0)3(X03+Y03)=A(X+Y)3Z03 ------- (6)
(4),(6)より、
     (X0+Y0)3(X3+Y3)=(X+Y)3(X03+Y0)3
     (X0+Y0)3(X3+Y3)-(X+Y)3(X03+Y0)3 = 0 ----- (7)
左辺は、X+Y,Y0X-X0Yで割り切れるので、
     3(X+Y)(Y0X-X0Y)(X0X-Y0Y) = 0 ----- (8)
char(K)!=3なので、
     X+Y = 0 ------- (9)
または、
     Y0X-X0Y = 0 ------ (10)
または、
     X0X-Y0Y = 0 ------ (11)
である。それぞれの場合に、X:Y:Zを求める。
(9)より、t1\in K*が存在して、
     X = t1,Y = -t1
(3)より、
     Z = {Z0t1+Z0(-t1)}/(X0+Y0) = 0
よって、[X:Y:Z] = [t1:-t1:0] = [1:-1:0]つまり無限遠点Oである。
(10)より、t2\in K*が存在して、
     X = X0t2, Y = Y0t2
(3)より、
     Z = (Z0X0t2+Z0Y0t2)/(X0+Y0) = Z0t2
よって、[X:Y:Z] = [X0t2:Y0t2:Z0t2] = [X0:Y0:Z0]つまりP0である。
(11)より、t3\in K*が存在して、
     X = Y0t3, Y = X0t3
(3)より、
     Z = (Z0Y0t3+Z0X0t3)/(X0+Y0) = Z0t3
よって、[X:Y:Z] = [Y0t3:X0t3:Z0t3] = [Y0:X0:Z0]つまり-P0である。
よって、-P0[Y0:X0:Z0]となる。

■楕円曲線E/K上の点P0[X0:Y0:Z0]について、2P0を求める。
E/K上の点P0における接線L0は、
     X02X+Y02Y -AZ02Z = 0 ------ (12)
つまり、
     X02X+Y02Y = AZ02Z ------ (13)
である。接線(13)とE/Kの3つの交点を求める。
(1)より、
     A2Z06(X3+Y3) = A3Z06Z3
(13)より、
     A2Z06(X3+Y3) = (X02X+Y02Y)3
     A2Z06(X3+Y3) - (X02X+Y02Y)3 = 0
左辺は、(Y0X-X0Y)2で割り切れるので、
     (Y0X-X0Y)2{Y0(2X03+Y03)X+X0(X03+2Y03)Y} = 0
接点P0以外の交点は、
     Y0(2X03+Y03)X+X0(X03+2Y03)Y = 0 ------ (14)
を満たす。(5)より、
     2X03+Y03 = X03+AZ03 -------- (15)
     X03+2Y03 = Y03+AZ03 -------- (16)
(14),(15),(16)より、
     Y0(X03+AZ03)X+X0(Y03+AZ03)Y = 0 ------ (17)
(17)より、t4\in K*が存在して、
     X = X0(Y03+AZ03)t4, Y = -Y0(X03+AZ03)t4
(13)より、
     Z = {X02*X0(Y03+AZ03)t4+Y02*(-Y0(X03+AZ03))}/{AZ02} = (X03-Y03)Z0t4
     P0*P0[X0(Y03+AZ03):-Y0(X03+AZ03):(X03-Y03)Z0]
となる。2P0 = -P0*P0なので、
     2P0[-Y0(X03+AZ03):X0(Y03+AZ03):(X03-Y03)Z0]
となる。

■楕円曲線E/K上の異なる2点P0[X0:Y0:Z0],P1[X1:Y1:Z1]について、P0+P1を求める。
E/K上の2点P0[X0:Y0:Z0],P1[X1:Y1:Z1]を通る直線(2)とE/Kの3つの交点P0,P1,P0*P1を求める。
点P1はE/K上にあるので、
     X13+Y13 = AZ13 ------- (18)
(2)より、
     (Y0Z1-Y1Z0)X+(Z0X1-Z1X0)Y = -(X0Y1-X1Y0)Z ------------- (19)

(19),(1)より、
     (X0Y1-X1Y0)3(X3+Y3) = -A{(Y0Z1-Y1Z0)X+(Z0X1-Z1X0)Y}3
よって、
     (X0Y1-X1Y0)3(X3+Y3) + A{(Y0Z1-Y1Z0)X+(Z0X1-Z1X0)Y}3 = 0
     {(X0Y1-X1Y0)3+A(Y0Z1-Y1Z0)3}X3+3A(Y0Z1-Y1Z0)2(Z0X1-Z1X0)
         +3A(Y0Z1-Y1Z0)(Z0X1-Z1X0)2+{(X0Y1-X1Y0)3+A(Z0X1-Z1X0)3}Y3 = 0 ------------- (20)
ここで、(5)より、
     (X0Y1-X1Y0)3+A(Y0Z1-Y1Z0)3 = -3Y0Y1{X0X1(X0Y1-X1Y0)+AZ0Z1(Y0Z1-Y1Z0)}
(18)より、
     (X0Y1-X1Y0)3+A(Z0X1-Z1X0)3 = -3X0X1{Y0Y1(X0Y1-X1Y0)+AZ0Z1(Z0X1-Z1X0)}
char(K)!=3より、(20)の左辺は-3(Y0X-X0Y)(Y1X-X1Y)で割り切れるので、割ると、P0,P1以外の交点は、
     {X0X1(X0Y1-X1Y0)+AZ0Z1(Y0Z1-Y1Z0)}X+{Y0Y1(X0Y1-X1Y0)+AZ0Z1(Z0X1-Z1X0)}Y = 0
を満たす。よって、t \in K*が存在して、
     X = -{Y0Y1(X0Y1-X1Y0)+AZ0Z1(Z0X1-Z1X0)}t, -------- (21)
     Y = {X0X1(X0Y1-X1Y0)+AZ0Z1(Y0Z1-Y1Z0)}t -------- (22)
(19),(21),(22)より、
     -(X0Y1-X1Y0)Z/t
     = (Y0Z1-Y1Z0)*(-{Y0Y1(X0Y1-X1Y0)+AZ0Z1(Z0X1-Z1X0)})
         +(Z0X1-Z1X0)*{X0X1(X0Y1-X1Y0)+AZ0Z1(Y0Z1-Y1Z0)}
     = (X0Y1-X1Y0){X0X1(Z0X1-Z1X0)-Y0Y1(Y0Z1-Y1Z0)}
よって、
     Z = -{X0X1(Z0X1-Z1X0)-Y0Y1(Y0Z1-Y1Z0)}t ----------- (23)
つまり、P0*P1は、
     [X:Y:Z] = [-{Y0Y1(X0Y1-X1Y0)+AZ0Z1(Z0X1-Z1X0)}:
             X0X1(X0Y1-X1Y0)+AZ0Z1(Y0Z1-Y1Z0):
            -{X0X1(Z0X1-Z1X0)-Y0Y1(Y0Z1-Y1Z0)}]
         = [{Y0Y1(X0Y1-X1Y0)+AZ0Z1(Z0X1-Z1X0)}:
             -{X0X1(X0Y1-X1Y0)+AZ0Z1(Y0Z1-Y1Z0)}:
             {X0X1(Z0X1-Z1X0)-Y0Y1(Y0Z1-Y1Z0)}]
となる。P0+P1 = -P0*P1より、
     P0+P1[-{X0X1(X0Y1-X1Y0)+AZ0Z1(Y0Z1-Y1Z0)}:
            {Y0Y1(X0Y1-X1Y0)+AZ0Z1(Z0X1-Z1X0)}:
             {X0X1(Z0X1-Z1X0)-Y0Y1(Y0Z1-Y1Z0)}]
を得る。


[参考文献]


Last Update: 2005.08.21
H.Nakao

Homeに戻る[Homeに戻る]  一覧に戻る[一覧に戻る]