0

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?

Sir Kadse
  • 1
  • 1
  • 1
    (a0+a1•z+a2•z^2+a3•z^3)^3 is not a0+a1•z^3+a2•z^6+a3•z^9. It is a0^3+(3•a0^2•a1)•z+(3•a0^2•a2+3•a0•a1^2)•z^2+…, the same as ordinary polynomial multiplication until you reduce it modulo z^4+z+1. – Eric Postpischil Jul 18 '22 at 21:47
  • Good question, however, it is off topic here since it is not a specific programming question. Eric P. might have already given you enough of an answer; in any case, further questions are more suitable for math.stackexchange.com. – Robert Dodier Jul 18 '22 at 22:41

0 Answers0