Рейтинг:0

Алгебраическая нормальная форма функции в $\operatorname{GF}(2^{n})$

флаг cn

Рассмотрим функцию $f(x)=x^{2k+1}$ в $\operatorname{GF}(2^{n})$ за $n$ странный и $\gcd(k,n)=1$, которая является дифференциально 2-равномерной функцией.

За $n=3$, $к=1$, я хочу найти Алгебраическая нормальная форма функции. Есть ли способ?

user3571 avatar
флаг us
Пожалуйста, измените свой вопрос и объясните больше о концепции ANF или сделайте ссылку на эту тему. Расскажите подробнее о применении АНФ в криптографии и на примерах проясните свои вопросы для пользователей. На самом деле, чтобы получить хороший ответ, пожалуйста, задайте свой вопрос правильно. Спасибо
fgrieu avatar
флаг ng
Что-то не так с базовым: предположим редукционный полином для $\operatorname{GF}(2^n)$, используем его для явного вычисления $f(x)$ как $n$-битовой строки для простых $2^n$ значений $n$-битовой строки битов $x$, делает эти $n$ логических функций для $n$ логических аргументов, находит ANF каждого из них, используя [некоторый систематический метод](https://en.wikipedia.org/wiki/ Algebraic_normal_form#Recursively_deriving_multiargument_Boolean_functions)?
Рейтинг:1
флаг sa

Как указал @fgrieu, ANF представляет собой многомерное полиномиальное представление. Обычно над двоичным базовым полем, поэтому $n$ получаются бинарные переменные. Я полагаю, если $n$ является составным, его также можно определить над $GF(2^м)$ куда $м|n,$ и $м>1$ но не вижу особых преимуществ в этом.

Есть два явных ответа, связанных с предложением в комментарии к вопросу ниже:

https://crypto.stackexchange.com/questions/47957/генерировать-анф-из-sbox/47959

Рейтинг:0
флаг in

Обратите внимание, что у вас есть $n=3$ выходные биты, каждый из них имеет свой собственный ANF. Вот как это вычислить с помощью SageMath:

sage: из sage.crypto.sbox импортировать SBox
шалфей: n = 3; k = 1sage: F = GF(2**n)
sage: s = SBox([(F.fetch_int(x)**(2*k+1)).integer_representation() для x в диапазоне(F.order())])
мудрец: [s.component_function(2**i).алгебраическая_нормальная_форма() для i в диапазоне(n)]
[x0 + x1*x2 + x1 + x2, x0*x1 + x0*x2 + x1, x0*x1 + x2]

Это дает ANF в порядке от младшего бита к старшему биту (это определяется соглашением SageMath для fetch_int/integer_representation).

В каждом ANF порядок переменных аналогичен: x0 — младший значащий входной бит.

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

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