剰余方程式を解くテク

剰余方程式は  GF(p) Zmod(p)上の多項式環の根を求める形で解くと良い

例: 楕円曲線  y^2 \equiv x^3 + Ax + B \mod pでyがわかっているときにxを求める

_, x = PolynomialRing(GF(p), name='x').objgen()
f = x**3 + A*x + B - y**2
print(f.roots())