Using Sage math to solve an equation in Finite Field

Viewed 191

How can I use Sage to solve an equation in Finite Field?

The following gets error:

sage: L = (q * (q-xk) - nk)
sage: L.parent()
Finite Field in q of size 2^4096
sage: q.parent()
Finite Field in q of size 2^4096
sage: xk.parent()
Finite Field in q of size 2^4096
sage: nk.parent()
Finite Field in q of size 2^4096
sage: L.roots()
...
AttributeError: 'sage.rings.finite_rings.element_ntl_gf2e.FiniteField_ntl_gf2eElement' object has no attribute 'roots'
1 Answers

Define L as a polynomial, not a finite field element:

sage: x = polygen(parent(q))
sage: L = x * (x - xk) - nk
sage: parent(L)
Univariate Polynomial Ring in x over Finite Field in q of size 2^4096
sage: L.roots()
...
Related