I'm using SageMath to try and determine whether the cube root of a polynomial exists in a finite field GF(2^8). Whilst raising the polynomial to the minus 3 does produce a root (that is in the finite field), re-cubing that polynomial produces an entirely different result, as follows:
sage: cube = b^3 + b + 1
sage: cube_root = cube^(-3)
sage: cube_root
b^3 + b
sage: re_cube = cube_root^(3)
sage: re_cube
b^7 + b^4 + b
sage: cube_root_2 = re_cube^(-3)
sage: cube_root_2
b^3 + b
Each of cube, cube_root, re_cube, and cube_root_2 have the parent:
sage.rings.finite_rings.element_givaro.FiniteField_givaroElement object at 0x23428b788
What might be causing this?
Thanks!
Cube roots are
$$ \sqrt[3]{x} = x^{1/3} $$
What you are computing is
$$ x^{-3} = \frac{1}{x^3} $$
(note that you might not be able to use the
^operator insagewith rational number exponents; there is probably a "find an $n$-th root" function available, and maybe even a special function specifically for cube roots)