I tried myself in a GF(2^4). With the minimal polynom z^4+z+1:
a(z) = a0 + a1.z + a2.z^2 + a3.z^3
[a(z)]^3 = a0 + a1.z^3 + a2.z^6 + a3.z^9
= a0 + a1.z^3 + a2.(z^3 + z^2) + a3.(z^3+z)
= a0 + a1.z + a2.z^2 + (a1+a2+a3).z^3
Now i have to replace (a0, a1, a2, a3) by (a0, a3, a2, a1 + a2 + a3) The + operator ist just a xor. This is functional.
If i do it on GF(2^6) with minimal polynom z^6+z+1:
a(z) = a0 + a1.z + a2.z^2 + a3.z^3 + a4.z^4 + a5.z^5
[a(z)]^3 = a0 + a1.z^3 + a2.z^6 + a3.z^9 + a4.z^12 + a5.z^15
[a(z)]^3 = a0 + a1.z^3 + a2.(z+1) + a3.(z^4+z^3) + a4.(z^2+1) + a5.(z^5+z^3)
[a(z)]^3 = (a0 + a2 + a4) + a2.z + a4.z^2 + (a1 + a3 + a5).z^3 + a3.z^4 + a5.z^5
Now i should replace (a0, a1, a2, a3, a4, a5) with (a0+a2+a4, a2, a4, a1 + a3 + a5, a3 ,a5) For example if i want to take the power of 3 from a^11= 100011, it should give a^33 = 010010.
For new a5: a5 = 1
For new a4: a3 = 0
For new a3: a1 + a3 + a5 = 1 + 0 + 0 = 1
For new a2: a4 = 0
For new a1: a2 = 0
For new a0: a0+a2+a4 = 1 + 0 + 0 = 1
makes = 101001 which is a^23
Why it works on GF(2^4) and not on GF(2^6)? What is my mistake?