Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Calculating elliptic curve isogeny from a kernel polynomial

This question is related to my previous question, where I got partial answer to my problem. I have a code segment in Sage that roughly looks like this:

p = 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831
# Prime field of order p
Fp = GF(p)
R.<x> = PolynomialRing(Fp)
# The quadratic extension via x^2 + 1 since p = 3 mod 4
Fp2.<j> = Fp.extension(x^2 + 1)
E = EllipticCurve(Fp2, [1,0])

for e in range(200, 0, -2):
     # Some calculation here, which produces a polynomial,
     # let's call the polynomial generated is called "ker"
     phi = EllipticCurveIsogeny(E, ker)

The point is that this throws an error also shown in my other question, which is NotImplementedError: For basic Kohel's algorithm, if the kernel degree is even then the kernel must be contained in the two torsion.. In the other question I got one answer as to compute an actual point that generates the isogeny and use it in the EllipticCurveIsogeny function. Though, is there a way in Sage to compute a point that generates the isogeny, from the kernel polynomial that generates the isogeny? Also if someone is interested here is a list of some kernel polynomials that I have generated. I have multiple loops that look like in the above example, so I need one universal solution so that I can apply to all my loops.

Calculating elliptic curve isogeny from a kernel polynomial

This question is related to my previous question, where I got partial answer to my problem. I have a code segment in Sage that roughly looks like this:

p = 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831
# Prime field of order p
Fp = GF(p)
R.<x> = PolynomialRing(Fp)
# The quadratic extension via x^2 + 1 since p = 3 mod 4
Fp2.<j> = Fp.extension(x^2 + 1)
E = EllipticCurve(Fp2, [1,0])

for e in range(200, 0, -2):
     # Some calculation here, which produces a polynomial,
     # let's call the polynomial generated is called "ker"
     phi = EllipticCurveIsogeny(E, ker)

The point is that this throws an error also shown in my other question, which is NotImplementedError: For basic Kohel's algorithm, if the kernel degree is even then the kernel must be contained in the two torsion.. In the other question I got one answer as to compute an actual point that generates the isogeny and use it in the EllipticCurveIsogeny function. Though, is there a way in Sage to compute a point that generates the isogeny, from the kernel polynomial that generates the isogeny? Also if someone is interested here is a list of some kernel polynomials that I have generated. I have multiple loops that look like in the above example, so I need one universal solution so that I can apply to all my loops.loops. Any ideas how to achieve what I want?

Calculating elliptic curve isogeny from a kernel polynomial

This question is related to my previous question, where I got partial answer to my problem. I have a code segment in Sage that roughly looks like this:

p = 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831
# Prime field of order p
Fp = GF(p)
R.<x> = PolynomialRing(Fp)
# The quadratic extension via x^2 + 1 since p = 3 mod 4
Fp2.<j> = Fp.extension(x^2 + 1)
E = EllipticCurve(Fp2, [1,0])

for e in range(200, 0, -2):
     # Some calculation here, which produces a polynomial,
     # let's call the polynomial generated is called "ker"
     phi = EllipticCurveIsogeny(E, ker)

The point is that this throws an error also shown in my other question, which is NotImplementedError: For basic Kohel's algorithm, if the kernel degree is even then the kernel must be contained in the two torsion.. In the other question I got one answer as to compute an actual point that generates the isogeny and use it in the EllipticCurveIsogeny function. Though, is there a way in Sage to compute a point that generates the isogeny, from the kernel polynomial that generates the isogeny? Also if someone is interested here is a list of some kernel polynomials that I have generated. I have multiple loops that look like in the above example, so I need one universal solution so that I can apply to all my loops. Any ideas how to achieve what I want?