Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

拡大体F_25での有理点

python で有限体Fpでの楕円曲線上の有理点の群構造を調べる - Pebble Coding

この記事で F_5での y^2 = x^{3} + x + 1のcardinarityが9であることを調べました。
 F_5 x^{2} - 3 = 0の根 \sqrt {3}を加えて拡大体 F_{25}を作ります。
この拡大体上の点を調べてみます。

sage: K = GF(5)
sage: R.<x> = K[]
sage: L = K.extension(x^2 - 3, 'a')
sage: E = EllipticCurce(L, [1,1])
sage: E.cardinality()
27
sage: E.points()
[(0 : 1 : 0), 
(0 : 1 : 1), 
(0 : 4 : 1), 
(1 : a : 1), 
(1 : 4*a : 1), 
(2 : 1 : 1), 
(2 : 4 : 1), 
(3 : 1 : 1), 
(3 : 4 : 1), 
(4 : 2 : 1), 
(4 : 3 : 1), 
(a + 3 : 2*a + 4 : 1), 
(a + 3 : 3*a + 1 : 1), 
(2*a + 1 : a + 1 : 1), 
(2*a + 1 : 4*a + 4 : 1), 
(2*a + 2 : a : 1),
(2*a + 2 : 4*a : 1), 
(2*a + 3 : 2 : 1), 
(2*a + 3 : 3 : 1), 
(3*a + 1 : a + 4 : 1), 
(3*a + 1 : 4*a + 1 : 1), 
(3*a + 2 : a : 1), 
(3*a + 2 : 4*a : 1), 
(3*a + 3 : 2 : 1), 
(3*a + 3 : 3 : 1), 
(4*a + 3 : 2*a + 1 : 1), 
(4*a + 3 : 3*a + 4 : 1)]

aは \sqrt {3}もしくは - \sqrt {3}を表します。

拡大次数をあげてcardinalityだけを調べてみます。

sage: L.<a> = GF(5^2)
sage: E = EllipticCurve(L, [1,1])
sage: E.cardinality()
27
L.<a> = GF(5^3)
E = EllipticCurve(L, [1,1])
E.cardinality()
108
L.<a> = GF(5^4)
E = EllipticCurve(L, [1,1])
E.cardinality()
675
L.<a> = GF(5^5)
E = EllipticCurve(L, [1,1])
E.cardinality()
3069
L.<a> = GF(5^6)
E = EllipticCurve(L, [1,1])
E.cardinality()
15552


どんどん増加していくようです。