Математическое обоснование алгоритма
Алгоритм шифрования Simple AES или S_AES разработан в учебных целях и предназначен для обучения будущих криптографов и криптоаналитиков. В основу алгоритма SAES заложены те же основные принципы, что и в новом стандарте шифрования США AES. Данный алгоритм оперирует полубайтами, которые рассматриваются как элементы поля GF (24).
Элементами поля GF (24) являются многочлены степени не более трех, которые могут быть заданы строкой своих коэффициентов. Если представить байт в виде.
Например, полубайту {0101} (или {5} в шестнадцатеричной системе счисления) соответствует многочлен х2(c)1.
Операция сложения над элементами поля представляет собой поразрядное сложение по модулю 2. Умножение в поле GF (24) представляет собой операцию умножения со взятием результата по модулю неприводимого многочлена четвертой степени. Для алгоритма SAES мы взяли многочлен ф (х) = х4(c)х© 1.
Раундовые преобразования в S_AES оперируют байтами. Байту может быть поставлен в соответствие многочлен а (х) с коэффициентами из GF (24) степени не более единицы:
При сложении двух многочленов с коэффициентами из GF (24) получаем.
Если же мы хотим перемножить два многочлена а (х) = а|Х (c)ао и b (x) = bix (c)b0, то в результате получится многочлен.
Для того чтобы результат умножения мог быть представлен байтом, необходимо взять результат по модулю многочлена степени не более двух. Нами был взят многочлен х2(c)1. Таким образом, результатом с (х) умножения ® двух многочленов по модулю х2® 1.
будет многочлен.
где.
Итак, если записать в матричной форме, то:
Пусть с (х) = С]Х0со. Умножению на х многочлена с (х) с коэффициентами из GF (24) по модулю х2Ф1 соответствует циклический сдвиг полубайтов в пределах байта в сторону старшего полубайта, так как: