Why does the cube root of a polynomial in a finite field produce a different polynomial when re-cubed?

638 Views Asked by At

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!

1

There are 1 best solutions below

4
On BEST ANSWER

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 in sage with rational number exponents; there is probably a "find an $n$-th root" function available, and maybe even a special function specifically for cube roots)