Определение конкретного кольца полиномов в некоторой 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 (закон сложения в 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).


person M.S. Dousti    schedule 20.12.2017    source источник
comment
Почему голосование против?!   -  person M.S. Dousti    schedule 20.12.2017
comment
Сравнивая с этим вопросом, я не понимаю, почему мой вопрос считается слишком широким и помечен как закрытый.   -  person M.S. Dousti    schedule 21.12.2017
comment
Предложите перенести это на math.stackexchange.com, на котором также есть теги для SageMath, Singular и GAP.   -  person Alexander Konovalov    schedule 28.12.2017