Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

We really need the ker. Since i had none, i started with one where the computation could succeed in relatively short time. I am using as ker the following polynomial....

ker = E.torsion_polynomial( 3 ).monic()

phi1 = EllipticCurveIsogeny(E, ker)
print "phi1 (using ker):\n%s\n" % phi1

ker_roots = ker.roots( ring=Fp2, multiplicities=False )
points = [ E.lift_x(a) for a in ker_roots ]
phi2 = EllipticCurveIsogeny(E, points)
print "phi2 (using lift of ker-roots, taken as x-component):\n%s\n" % phi2

print bool( phi1 == phi2 )

The above gives:

phi1 (using ker):
Isogeny of degree 9 from Elliptic Curve defined by y^2 = x^3 + x over Finite Field in j of size 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831^2 to Elliptic Curve defined by y^2 = x^3 + 81*x over Finite Field in j of size 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831^2

phi2 (using lift of ker-roots, taken as x-component):
Isogeny of degree 9 from Elliptic Curve defined by y^2 = x^3 + x over Finite Field in j of size 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831^2 to Elliptic Curve defined by y^2 = x^3 + 81*x over Finite Field in j of size 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831^2

True

The big numbers are $p$ and $p^2$, so nobody is intimidated. The main information is the passage from the equation y^2 = x^3 + x to y^2 = x^3 + 81*x .

The last True translates in words: The isogenies constructed

  • by using the ker as kernel polynomial, respectively
  • by using the $x$-roots of ker, extended / lifted to points $(x,\pm y)$ on E

do coincide. This should also be the case in the needed concrete case. (If the generated polynomial in the for e in range(200, 0, -2)-loop is too complicated (big degree), then the construction of the isogeny may take a loong time. If there are too many roots, then i would use compositions of isogenies... )