Processing math: 100%
Ask Your Question
1

I want to find a generator set of the l-torsion points of an elliptic curve defined over a finite field Fq

asked 3 years ago

M.Tawfik gravatar image

updated 3 years ago

FrédéricC gravatar image

I have the elliptic curve E:y2=x3+x defined over a field Fq with q=p2 for a certain prime p, and want to calculate the l-torsion points, or in other words E[l], for an integer l (probably a prime different from p.)

Preview: (hide)

Comments

Welcome to Ask Sage. Thank you for your question.

slelievre gravatar imageslelievre ( 3 years ago )

Ideally, provide a minimal concrete example, with code to define the objects, that can be copied and pasted in a fresh Sage session, leaving only the final step to answer.

slelievre gravatar imageslelievre ( 3 years ago )

p=18446744073709551667E = EllipticCurve(GF(p^2),[1,0]) E is an Elliptic Curve defined by y^2 = x^3 + x over Finite Field in z2 of size 18446744073709551667^2 and I want to find generators P and Q for E[4999], but I can't find a suitable code.

M.Tawfik gravatar imageM.Tawfik ( 3 years ago )

use sage: p=E.torsion_polynomial(4999) maybe ?

FrédéricC gravatar imageFrédéricC ( 3 years ago )

1 Answer

Sort by » oldest newest most voted
1

answered 3 years ago

M.Tawfik gravatar image

updated 3 years ago

An answer could be as follows: 'p=18446744073709551667' then define the field 'K . < a >=GF(p^2)' over which we define the curve 'E = EllipticCurve(K,[1,0])'. Now use the code 'E.cardinality().factor()' to get the cardinality of E, which is 24499929225217080270832. Use the code 'pts = E.gens()' to find the generators which turn out to be ${(3967812587828368975a + 7437411822947458617 : 16672546567636985011a + 14299206839437184441 : 1), (8681109523785822829a + 7072963597633280041 : 15515941078240688329a + 11174851755365315891 : 1)}$.

Let P1 be the first point, that is 'P1=E(13308581970510900443a + 15361864644717267429, 12035351063104026383a + 6630581890190451124)' and use the code 'P1.order().factor()' to get the order of P1, which is 224999922521708027083. Now, let 'Q1=2^2 * 922521708027083 * P1', then Q1 is of the required order. We can repeat this with the other point.

Preview: (hide)
link

Comments

To display blocks of code or error messages in Ask Sage, skip a line above and below, and do one of the following (all give the same result):

  • indent all code lines with 4 spaces
  • select all code lines and click the "code" button (the icon with '101 010')
  • select all code lines and hit ctrl-K

For instance, typing

If we define `f` by

    def f(x, y, z):
        return x * y * z

then `f(2, 3, 5)` returns `30` but `f(2*3*5)` gives:

    TypeError: f() takes exactly 3 arguments (1 given)

produces:

If we define f by

def f(x, y, z):
    return x * y * z

then f(2, 3, 5) returns 30 but f(2*3*5) gives:

TypeError: f() takes exactly 3 arguments (1 given)

You can edit your answer to do that.

slelievre gravatar imageslelievre ( 3 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 3 years ago

Seen: 324 times

Last updated: Jul 15 '21