Рейтинг:8

На каком поле Галуа действительно работает АЭС?

флаг tf
Tom

Я пытаюсь понять теорию GF, но каждый раз, когда я натыкаюсь на информацию об AES, все это не имеет смысла.

по моему мнению $GF(2^8)$ определяет любой многочлен вида:

$a_{7} x^7 + a_{6} x^6 + a_{5} x^5 + a_{4} x^4 + a_{3} x^3 + a_{2} x^2 + a_ {1} х^1 + а_{0}$

Где $а_{я}$ может быть 0 или 1. И везде я натыкаюсь на информацию, что AES работает как раз в $GF(2^8)$. Но в АЕС $а_{я}$ это байты, верно? Так $а_{я}$ может быть любым числом от 0 до 7. А это значит, что у нас здесь $GF(8^8)$. И это не имеет ничего общего с $GF(2^8)$.

Либо я до сих пор не понимаю ГФ, либо они все делают какие-то упрощения, настолько далекие от истины, что этого делать не следует. Так какое поле Галуа на самом деле использует AES?

Рейтинг:11
флаг ng

Нет, в AES $a_i$ не являются байтами. Они биты. 8 бит $a_i$ вместе образуют байт и считаются одним элементом поля Галуа. $ {\ OperatorName {GF} \ влево (2 ^ 8 \ вправо)} $, также отметил $\mathbb F_{2^8}$.

Значение этого байта можно вычислить, оценив многочлен для целого числа $х=2$, с обычным сложением и умножением. В обратном направлении биты $a_i$ являются двоичным представлением целочисленного значения байта, более 8 двоичных цифр, с $a_0$ самый младший бит.

В открытом тексте AES, зашифрованном тексте или раундовом ключе содержится 16 байтов. Их можно рассматривать как элементы множества $ {\ влево ({\ OperatorName {GF} \ влево (2 ^ 8 \ вправо)} ^ {4} \ вправо)} ^ {4} $. Это объясняет организацию 16 байтов как матрицу 4×4 элементов. $ {\ OperatorName {GF} \ влево (2 ^ 8 \ вправо)} $. В частности, это множество является группой при расширении закона сложения поля $ {\ OperatorName {GF} \ влево (2 ^ 8 \ вправо)} $, который при применении к байтам представляет собой побитовое исключающее ИЛИ. Это используется в AddRoundKey.В этой структуре можно выразить ShiftRows, SubBytes и даже MixColumns.

Для MixColumns существует другое возможное представление, где столбцы указанной матрицы 4×4 представляют собой 4 коэффициента в $ {\ OperatorName {GF} \ влево (2 ^ 8 \ вправо)} $ многочлена степени меньше 4. Такие многочлены можно умножать с редукцией по модулю редукционного полинома 4-й степени. Я не был знаком с тем, что является сутью этого другой ответ, и из этого комментарий. Я читал, что это представление дает элегантное сокращение к вектору с 4 элементами $ {\ OperatorName {GF} \ влево (2 ^ 8 \ вправо)} $ обычной матрицы 4×4 в MixColumns и упрощает получение инвертированной матрицы, необходимой для дешифрования, но не позволяет сократить время вычислений ни при шифровании, ни при дешифровании.

флаг kr
Mixcolumns встраивает столбец состояния в виде полинома в $GF(2^8)[X]$ и выполняет умножение на $'03'X^3+'01'X^2+'01'X+'02'$ по модулю $X^4+1$. Обозначение 'xx' представляет собой шестнадцатеричное кодирование элемента $GF(2^8)$. Поскольку $X^4+1$ не является неприводимым, это не поле. Однако он взаимно прост с $'03'X^3+'01'X^2+'01'X+'02'$, поэтому Mixcolumns обратим.
Рейтинг:4
флаг sa

Вы можете увидеть взгляд алгебраистов на AES в в документе, написанном HW Lenstra.

Есть и более подробная Дизайн Rijndael документ от дизайнеров Daemen's домашняя страница. В частности, на странице 16 есть:

это

Возможно, это то, что вас смущает, так как несколько байтов рассматриваются как многочлены над $GF(2^8)$ для этой части представления.

флаг ar
Это хороший момент. В частности, если вы думаете об элементах ${\rm GF}(2^8)$ как о полиномах над ${\rm GF}(2)$, как это любят делать многие люди, то AES использует полиномы, коэффициенты которых равны _сами_ полиномы(!).
флаг ar
(FWIW, [на мой взгляд](https://crypto.stackexchange.com/a/2718), представляя элементы ${\rm GF}(p^n)$ в виде полиномов над ${\rm GF}( p)$ полезен для определения правил сложения и умножения для этих полей, как только эти правила определены, _альтернативное_ представление лучше отложить в сторону, а элементы рассматривать просто как числа в забавной арифметической системе, поскольку это то, чем они являются на самом деле. .)
fgrieu avatar
флаг ng
Занял большую часть дня, но, по крайней мере, теперь я понимаю, о чем говорит этот ответ, если не совсем то, где это упрощает ситуацию.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.