Определение конкретного кольца полиномов в некоторой CAS (система компьютерной алгебры)
Я заинтересован в определении следующего полиномиального фактор-кольца в некоторых CAS (Singular, GAP, Sage и т. Д.):
R = GF(256)[x] / (x^4 + 1)
В частности, R
множество всех многочленов степени не более 3, коэффициенты которых принадлежат GF(256). Два примера включают в себя:
p(x) = {03}x^3 + {01}x^2 + {01}x + {02}
q(x) = {0B}x^3 + {0D}x^2 + {09}x + {0E}
Сложение и умножение определяются в соответствии с законами каждого кольца. Здесь я упоминаю их для акцента:
Сложение: соответствующие коэффициенты XOR-ed (закон сложения в GF(256)):
p(x) + q(x) = {08}x^3 + {0C}x^2 + {08}x + {0C}
Умножение: полиномы умножаются (коэффициенты добавляются и умножаются в GF(256)). Результат вычисляется по модулю x^4 + 1:
p(x) * q(x) = ({03}*{0B}x^6 + ... + {02}*{0E}) mod (x^4 + 1) = ({03}*{0B}x^6 + ... + {02}*{0E}) mod (x^4 + 1) = ({1D}x^6 + {1C}x^5 + {1D}x^4 + {00}x^3 + {1D}x^2 + {1C}x + {1C}) mod (x^4 + 1) = {01}
Подскажите пожалуйста как определить
R = GF(256)[x] / (x^4 + 1)
в CAS по вашему выбору, и покажите, как реализовать вышеупомянутое сложение и умножение между p(x) и q(x).