Рейтинг:1

Что именно в AES-256 формирует поле расширения $GF(2^8)$?

флаг et

Мой вопрос немного сложно описать, поэтому позвольте мне сначала начать с аналогии.

В эллиптической кривой над конечным полем есть 2 группы - первая группа - это конечное поле, над которым определена эллиптическая кривая. 2-я группа — это группа, образованная всеми точками эллиптической кривой. Это 2 разные группы.


Мой актуальный вопрос:

В AES256 мы используем полином для представления каждого байта. Коэффициенты полинома взяты из $\operatorname{GF}(2)$ - т.е. это полиномиальное кольцо над $\operatorname{GF}(2)$. Полиномиальное сложение выполняется по модулю 2. Умножение выполняется в 2 этапа. Сначала 2 многочлена умножаются по модулю 2. Затем они сокращаются по модулю неприводимого многочлена.

Так что я в замешательстве, где именно $\operatorname{GF}(2^8)$ входит в картину?

Я предполагаю, что каждый байт, представленный полиномом, является членом поля $\operatorname{GF}(2^8)$ - т.е. $\operatorname{GF}(2^8)$ это поле байтов.

И точно так же, как для эллиптических кривых мы произвольно определяем сложение, используя метод касательной и хорды, здесь мы произвольно определяем сложение и умножение элементов поля (байтов) как

  • добавление 2-х элементов поля $\operatorname{GF}(2^8)$ - добавить коэффициенты мод 2.

  • умножение 2 элементов поля $\operatorname{GF}(2^8)$ - умножьте коэффициенты по модулю 2 и затем уменьшите его по модулю неприводимого многочлена.

Верна ли моя интерпретация, или я полностью упускаю здесь абстракцию поля и операции?

Если это правильно, то мой следующий вопрос касается концепции полей расширения здесь - $\operatorname{GF}(2^8)$ является полем расширения $\operatorname{GF}(2)$ - что именно здесь означает - означает ли это, что каждый байт содержит 8 бит (каждый бит является элементом $\operatorname{GF}(2)$). Аналогично, что делают подполя $\operatorname{GF}(2^2)$ & $\operatorname{GF}(2^4)$ представлять здесь?

kelalaka avatar
флаг in
[Руководство по расширенному стандарту шифрования (AES)] (http://www.moserware.com/2009/09/stick-figure-guide-to-advanced.html) и AES-Book.
Рейтинг:4
флаг in

$GF(2^n)$ элементы действительно могут быть представлены $n$-битные строки, и в то же время могут быть интерпретированы как многочлены степени не выше $n-1$ с коэффициентами от $GF(2)$. Разница между «просто байтом» и $GF(2^8)$ элементом являются полевые операции, удовлетворяющие определенным свойствам.

Сложение — это просто покоординатное сложение коэффициентов по модулю 2.

Умножение определяется умножением многочлены, уменьшая полученные коэффициенты по модулю 2 и сам полином по модулю многочлена, определяющего поле (используя многочлен разделение).

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

В AES нет эквивалента эллиптической кривой. группа используется в криптографии на основе эллиптических кривых. В частности, нет соответствия точкам с координатами, подчиняющимися уравнению кривой, или причудливому правилу их добавления.

Параллель с ECC останавливается на AES с использованием конечное поле для байтов, как и ECC для каждой координаты точки. В AES это поле $\operatorname{GF(q)}$ с $q=2^8=256$. В ECC поле $\operatorname{GF(q)}$ для некоторых гораздо больших $q$ (обычно с сотнями, а не с 9 битами).

Конечное поле можно рассматривать как конечный аналог множества вещественных чисел. $\mathbb R$ (или из дробей $\mathbb Q$), когда дело доходит до алгебры, ограниченной сложением, умножением, взятием противоположного или обратного и проверкой равенства (а не порядка). Набор с $q$ элементы можно сделать полем тогда и только тогда, когда $q=p^m$ за $р$ простое и целое число $м>0$. Когда $м=1$, поле $\operatorname{GF(p)}$ с премьером $р$ знакомый $\mathbb Z/p\mathbb Z$, также отметил $\mathbb Z_p$, или эквивалентно целые числа в $[0,р)$ с полевыми законами сложения и умножения по модулю $р$. Такое поле используется в ECC для так называемых простых кривых типа secp256k1$р$ 256-битное простое число). Но ECC работает для любого большого конечного поля. Например. sect283k1 использует поле $\operatorname{GF(2^{283})}$, и это Группа эллиптических кривых использует поле $\operatorname{GF}(9767^{19})$.

Когда $м>1$, в том числе когда $р=2$, элемент поля можно рассматривать как вектор или кортеж $м$ элементы поля $\operatorname{GF(p)}$, или эквивалентно как $м$ коэффициенты многочлена $П(х)$ степени меньше, чем $м$ и коэффициенты в $\operatorname{GF(p)}$. Дополнение в поле $\operatorname{GF(p^m)}$ добавление компонентов вектора/кортежа в поле $\operatorname{GF(p)}$, или полиномиальное сложение. Когда $р=2$ что сводится к исключающее ИЛИ. Видеть это почему представление в виде коэффициентов многочлена имеет смысл четко определять умножение.

(в АЕС) $\operatorname{GF}(2^8)$ является полем расширения $\operatorname{GF}(2)$ (¦) Означает ли это, что каждый байт содержит 8 бит (каждый бит является элементом $\operatorname{GF}(2)$) ?

Это означает, что, и $\operatorname{GF}(2^8)$ снабжена двумя внутренними законами (операциями), которые делают его полем: сложение, сводящееся к сложению каждого из 8 компонентов в $\operatorname{GF}(2^8)$, и подходящее умножение.

Аналогично, что делают подполя $\operatorname{GF}(2^2)$ и $\operatorname{GF}(2^4)$ представлять здесь?

Это разные поля с 4 и 16 элементами, а не 256. Иногда может быть интересно представить элемент $\operatorname{GF}(2^8)$ как два элемента $\operatorname{GF}(2^4)$ или четыре элемента $\operatorname{GF}(2^2)$. Для сложения такое представление работает совершенно напрямую, а вот с умножением дело обстоит сложнее. Это не требуется в стандартной реализации или изучении AES (я видел, что это используется только в оптимизированной реализации S-блока AES).

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

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