I don't understand How to do Extension field

73 Views Asked by At

$EllipticCurve:y^2=x^3+x+300 \pmod{8111} $ has order $8269$

This curve on $\mathbb{F}_{8111}$

If expand this equation to $\mathbb{F}_{8111^3}$

The elliptic curve is defined as : $y^2=x^3+x+300 \pmod{8111^3} $ and Polynomial : $x^3+4x-11$


On the SAGECODE :

F. = GF(8111)[]

K. = GF(8111^3, name='x', modulus=x^3 + 4*x - 11)

E = EllipticCurve(GF(8111), [1,300])

E_ = EllipticCurve(K, [1,300])


The questions are:

How did you choose $\mathbb{F}_{8111^3}$ Polynomial??

And how do I expand to $\mathbb{F}_{8111^2}$

.

I did not speak English well and I used a translator. I am really sorry if the question was rude.

thanks you for read

1

There are 1 best solutions below

1
On BEST ANSWER

Let us do things in sage then.

The elliptic curve is

sage: p = 8111
sage: p.is_prime()
True
sage: F = GF(p)
sage: E = EllipticCurve( F, [1, 300] )
sage: E.order().factor()
8269
sage: K = GF(p^3)
sage: K.modulus()
x^3 + 4*x + 8100
sage: # the above is x^3 + 4x - 11 mod 8111

sage: # we can count points over K...
sage: E.base_extend(K).order().factor()
2^2 * 1951 * 8269^2

sage: N = E.order()    # later edit, forgotten first, sorry
sage: N
8269
sage: a,b = (x^2 - (p+1-N)*x + p).roots(ring=QQbar, multiplicities=False)
sage: ZZ(p^3 -a^3 - b^3 + 1) 
533609121244
sage: _.factor()
2^2 * 1951 * 8269^2

Note that sage is choosing the same modulus. If we want to specify explicitly the modulus of the field extension $\Bbb F_{p^3}$, $p=8111$, then we can do this as follows:

sage: R.<X> = PolynomialRing(F)
sage: K.<a> = GF(p^3, modulus = X^3 + 4*X - 11)
sage: K
Finite Field in a of size 8111^3
sage: K.modulus()
x^3 + 4*x + 8100
sage: a.minpoly()
x^3 + 4*x + 8100

The curve $E/K$ can be introduced either directly, or after a base extension, E.base_extend(K),

sage: EK = EllipticCurve( K, [1, 300] )
sage: EK == E.base_extend(K)
True

A very good sage support is provided by asksage.