python で有限体Fpでの楕円曲線上の有理点の群構造を調べる - Pebble Coding
この記事ででののcardinarityが9であることを調べました。
にの根を加えて拡大体を作ります。
この拡大体上の点を調べてみます。
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はもしくはを表します。
拡大次数をあげて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
どんどん増加していくようです。