AES (линейное преобразование)
Здесь есть матрица для AES https://github.com/okazymyrov/MDS/blob/master/Data.sage. Есть пара вопросов:
1) Зачем для AES используется многочлен modulus = x^8+x^4+x^3+x+1? Там же вроде как должен быть m(x) = x^4 + 1.
2) Для реализации преобразования можно использовать как матрицу над GF(2^8), так и соответствующую двоичную матрицу?
комментариев: 9796 документов: 488 редакций: 5664
© Joan Daemen, Vincent Rijmen "The Rijndael Block Cipher. AES Proposal."
А по модулю 1 + x4 — это не умножению многочленов, а умножение многочлена на число (возведение в степень числа x, получающаяся циклическим сдвигом байтов внутри вектора). Действительно, в MixColumn (линейном смешивании) именно это и используется. Что имеется в виду по вашей ссылке — не разбирал. Возможно, судя по операции, нелинейный слой S-блоков или соединение его с линейным в одну операцию.
По поводу второго вопроса — представлять матрицу можно в любом удобном виде, результат от этого не поменяется.