Ask Your Question
0

Elliptic curve isogenies: kernel polynomial not monic

asked 2016-03-04 21:01:46 -0600

Blackadder gravatar image

updated 2016-03-04 21:02:39 -0600

Hello, I was trying to follow the example here to create a kernel equal to the full 2 torsion. But I ran into the problem of not having a monic kernel polynomial. This is what I have

sage: p = 22031
sage: K = GF(p)
sage: F.<z> = K[]
sage: L = GF(p^2,'a',modulus=z^2+2); a = L.gen()
sage: E = EllipticCurve(K,[6486*a+8098, 12871*a+17004])
sage: ker_list = E_B.division_polynomial(2).list()
sage: phi = EllipticCurveIsogeny(E, ker_list); phi
ValueError: The kernel polynomial must be monic.

I've tried to salvage the situation by feeding the list of 2-torsion points into the function, but I do not get the same isogeny.

sage: E = EllipticCurve(GF(3), [0,0,0,1,1])
sage: ker_list = E.division_polynomial(2).list()
sage: phi = EllipticCurveIsogeny(E, ker_list)
sage: print phi
Isogeny of degree 4 from Elliptic Curve defined by y^2 = x^3 + x + 1 over Finite Field of size 3 to Elliptic Curve defined by y^2 = x^3 + x + 1 over Finite Field of size 3
sage: ETwoTors = E(0).division_points(2)
sage: phi = EllipticCurveIsogeny(E, ETwoTors)
sage: print phi
Isogeny of degree 2 from Elliptic Curve defined by y^2 = x^3 + x + 1 over Finite Field of size 3 to Elliptic Curve defined by y^2 = x^3 + 2*x over Finite Field of size 3

What I am really after is to let $\phi$ be the multiplication by 2 endomorphism.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
2

answered 2016-03-04 23:24:10 -0600

nbruin gravatar image

updated 2016-03-05 00:00:58 -0600

I think this does approximately what you want:

sage: E = EllipticCurve(GF(11), [0,0,0,1,1])
sage: P = E.division_polynomial(2)
sage: phi = EllipticCurveIsogeny(E,P/P.leading_coefficient(),codomain=E)
sage: {2*u+phi(u) for u in E.points()}
{(0 : 1 : 0)}

Note that this apparently happens to construct the multiplication-by-(-2) map, which has the same kernel. To get the multiplication-by-2 isogeny reliably, perhaps use

sage: E.multiplication_by_m_isogeny(2)
edit flag offensive delete link more

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: 2016-03-04 21:01:46 -0600

Seen: 72 times

Last updated: Mar 05 '16