You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
gh-40467: compute minimal polynomial of an isogeny & push such polynomials through other isogenies
Back in #37125 we implemented Algorithms 3 and 4 from [Deuring for the
People](https://ia.cr/2023/106). In this patch we add Algorithm 5, as
well as a simple convenience method to compute the minimal polynomial of
an isogeny.
This functionality is very convenient for computing chains of isogenies
whose kernel points may live in extension fields — without explicitly
constructing and working in those extension fields.
URL: #40467
Reported by: Lorenz Panny
Reviewer(s): Giacomo Pope
Isogeny of degree 13 from Elliptic Curve defined by y^2 = x^3 + (16*z2+26)*x over Finite Field in z2 of size 127^2 to Elliptic Curve defined by y^2 = x^3 + (110*z2+61)*x over Finite Field in z2 of size 127^2
Isogeny of degree 17 from Elliptic Curve defined by y^2 = x^3 + x over Finite Field in z2 of size 127^2 to Elliptic Curve defined by y^2 = x^3 + (16*z2+26)*x over Finite Field in z2 of size 127^2
from Elliptic Curve defined by y^2 = x^3 + x over Finite Field in z2 of size 2305843009213693951^2
1066
+
to Elliptic Curve defined by y^2 = x^3 + (595688734420561721*z2+584021682365204922)*x + (2058397526093132314*z2+490140893682260802) over Finite Field in z2 of size 2305843009213693951^2
Composite morphism of degree 36028797018963968 = 2^55:
1069
+
From: Elliptic Curve defined by y^2 = x^3 + x over Finite Field in z2 of size 2305843009213693951^2
1070
+
To: Elliptic Curve defined by y^2 = x^3 + 938942632807894005*x + 1238942515234646252 over Finite Field in z2 of size 2305843009213693951^2
1071
+
sage: f = phi.minimal_polynomial()
1072
+
sage: g = psi.push_subgroup(f)
1073
+
sage: h = psi.codomain().kernel_polynomial_from_divisor(g, phi.degree())
1074
+
sage: chi = psi.codomain().isogeny(h); chi
1075
+
Isogeny of degree 7 from Elliptic Curve defined by y^2 = x^3 + 938942632807894005*x + 1238942515234646252 over Finite Field in z2 of size 2305843009213693951^2 to Elliptic Curve defined by y^2 = x^3 + (1406897314822267524*z2+1659665944678449850)*x + (650305521764753329*z2+1047269804324934563) over Finite Field in z2 of size 2305843009213693951^2
1076
+
sage: x = phi.kernel_polynomial().any_root()
1077
+
sage: K = E.change_ring(E.base_field().extension(2)).lift_x(x)
0 commit comments