2019 Теоретические основы прикладной дискретной математики №43
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРИКЛАДНОЙ ДИСКРЕТНОЙ МАТЕМАТИКИ
УДК 519.7
АЛГОРИТМ НАХОЖДЕНИЯ МИНИМАЛЬНОЙ СТЕПЕНИ
ПОЛИНОМА НАД КОНЕЧНЫМ ПОЛЕМ ДЛЯ ФУНКЦИИ НАД ВЕКТОРНЫМ ПРОСТРАНСТВОМ
В ЗАВИСИМОСТИ ОТ ВЫБОРА НЕПРИВОДИМОГО МНОГОЧЛЕНА
С. А. Белов
Московский государственный университет имени М.В. Ломоносова, г. Москва, Россия
Рассматриваются преобразования над векторным пространством p-ичных векторов длины n, где p — простое число. Каждому такому преобразованию ставится в соответствие полином над конечным полем GF(pn). Конечное поле представляется кольцом вычетов по модулю неприводимого многочлена. В общем случае, в зависимости от выбора неприводимого многочлена, преобразованию над векторным пространством соответствуют различные полиномы над конечным полем. Предложен алгоритм поиска минимальной степени среди таких полиномов и неприводимого многочлена, при котором эта степень достигается.
Ключевые слова: конечное поле, неприводимый многочлен, булевы функции, блочный шифр.
DOI 10.17223/20710410/43/1
AN ALGORITHM FOR FINDING THE MINIMUM OF A POLYNOMIAL OVER A FINITE FIELD FOR A OVER A VECTOR SPACE DEPENDING ON THE OF AN IRREDUCIBLE POLYNOMIAL
S. A. Belov Moscow State University, Moscow, Russia E-mail: [email protected]
The transformations of the vector space of p-ary vectors of length n, where p is a prime number, are considered. Each such a transformation is assigned to a polynomial over a finite field GF(pn). The finite field is represented by a residue ring modulo an irreducible polynomial. In general, depending on the choice of the irreducible polynomial, different polynomials over the finite field will correspond to the transformation over the vector space. In this paper, we propose an algorithm for finding the minimal degree of such a polynomial and an irreducible polynomial at which this degree is achieved. The algorithm is based on the calculation of expressions for polynomial coefficients through its values. In the process of the algorithm, the elements of finite fields are treated as polynomials. To compute specific irreducible polynomials, the Euclid algorithm computes the greatest common divisor of these expressions and the
DEGREE
FUNCTION
CHOICE
polynomial, which is the product of all irreducible polynomials of degree n. To work up to degree d, the algorithm requires storage of O(pnn) elements from GF(p) and O(pnn2d4w) operations of addition and multiplication modulo p where w is the number of elements on which the polynomial is nonzero. Thus, the algorithm is especially effective for functions that have many zero values. The minimal degree polynomials for the S-boxes of block ciphers (GOST 28147-89, ICEBERG, LUFFA, LUCIFER, SERPENT, AES, PRESENT, GOST 34.12-2015) as well as the irreducible polynomials at which this degree is achieved have been computed.
Keywords: finite field, irreducible polynomial, Boolean functions, block cipher.
Введение
Пусть задано преобразование g(x) над векторным пространством p-ичных векторов длины n, где p — простое число. Конечное поле GF(pn) будем рассматривать как кольцо вычетов по неприводимому многочлену к(д). При условии, что известно соответствие между p-ичными векторами длины n и элементами конечного поля, каждому преобразованию g(x) можно поставить в соответствие полином f (x) над полем GF(pn). При различных неприводимых многочленах к\(в) и h2(0) преобразованию g(x) соответствуют, вообще говоря, различные полиномы над конечным полем. В работе рассматривается следующая задача: необходимо найти такой неприводимый многочлен, чтобы в поле, построенном как кольцо вычетов по модулю этого неприводимого многочлена, степень полинома, соответствующего заданному преобразованию над векторным пространством, была наименьшей. Подобная задача рассматривалась в [1] для функций над полями характеристики два. Авторы показали, что полиномы fi(x) и f2 (x) заданной функции f (x) для пары неприводимых многочленов R1(x) и R2(x) связаны соотношением f2(x) = L(f1(L-1(x)))), где L является обратимым линейным преобразованием рассматриваемого поля. В данной работе предложен иной подход к вычислению минимальной степени многочлена, представляющего функцию над векторным пространством, для различных неприводимых многочленов, который применим для полей произвольной характеристики.
1. Определения и обозначения
Введём определения и обозначения, которые использованы в дальнейшем, а также необходимые утверждения из теории конечных полей [2]:
GF(q) — конечное поле из q элементов. Для конечного поля GF(q) число q имеет вид q = pn, где p — простое число, n — натуральное. Число p называется характеристикой конечного поля. Далее записи GF(q) и GF(pn) будем считать равнозначными.
Vn (p) — векторное пространство p-ичных векторов длины n с операциями поэлементного сложения векторов по модулю p и умножения вектора на скалярное значение по модулю p. Для пространства V1(p) будем использовать сокращённую запись V(p).
Fq [x] —множество многочленов переменной x над полем GF(q). Любая функция f : GF(q) ^ GF(q) может быть представлена в виде многочлена одной переменной над полем GF(q) степени не более q — 1.
q-1
Если функция f : GF(q) ^ GF(q) представляется полиномом Y1 fix1, то fi — коэф-
i=0
фициент этого многочлена при степени i.
Весом функции над конечным полем будем называть количество аргументов, на которых она принимает значение, отличное от нуля. НОД двух многочленов f (x) и g(x)
будем обозначать /(х),$(х)). Носителем булевой функции называется множество наборов, на которых она принимает значение 1.
Множество вычетов по модулю числа р1 — 1 относительно операции умножения на р распадается на подмножества, называемые циклотомическими классами по модулю рр — 1 [3]. Циклотомический класс С3, в котором в — наименьшее число, состоит из чисел
С = {в, вр, вр2,... , врк-1},
где к — наименьшее натуральное число, для которого врк = в (mod р1 — 1). Старшим представителем циклотомического класса будем называть наибольшее число из этого класса.
Элементы конечного поля ОЕ(рп) будем представлять многочленами из Fp[в] степени меньше п, сложение и умножение которых осуществляется по модулю заданного неприводимого многочлена. Когда операции над многочленами производятся не по модулю неприводимого многочлена, а по обычным правилам сложения и умножения многочленов в Гр[9], будем подчёркивать это, явно записывая переменную 9 в скобках. Так, для а, Ь Е СЕ(д) запись с = аЬ означает умножение двух элементов конечного поля (умножение многочленов по модулю неприводимого многочлена), а запись а(9)Ь(9) — обычное умножение многочленов а(9) и Ь(9) в кольце Fp[9].
п-1
Вектору с = (со, с1,... , сп-1) из Уп(р) будем ставить в соответствие элемент £ с%9%
г=0
конечного поля ОЕ(рп). Для записи элементов конечного поля ОЕ(рп) и соответствующих им векторов Уп(р) будем также использовать запись в виде чисел. Вектору
п- 1
с = (с0,с1,... ,сп-1) из Уп(р) (и соответствующему ему элементу поля £ с^9г) будем
г=0
п-1
ставить в соответствие число £ срг из интервала [0,рп — 1]. В дальнейшем будем запи-
г=0
сывать элементы конечного поля в виде многочленов переменной 9 или в виде целых чисел, а многочлены, задающие функции над конечными полями, — как многочлены переменной х.
2. Формулы для коэффициентов многочлена над конечным полем
Пусть ОЕ(д) — конечное поле, / : СЕ(д) ^ ОЕ(д). Полином функции / можно
!1 х = а
0, х = а.
В конечном поле верно равенство 5а(х) = 1 — (х — а)9-1. Подставим выражения для 5а (х) и раскроем скобки:
/ (х)= £ 5а (х) / (а)= £ (1 — (х — а)9-1)/(а) =
а€ОР(д) а€ОР(д)
= Е (1 — (х9-1 + ах9-2 + ... + а9-1))/(а) =
а€ОР(д)
= — £ (х9-1 + ах9-2 + ... + а9-2х)/(а) + / (0).
а€ОР(д)
Получаем формулу для коэффициентов полинома /(х):
Г— £ а9-1- / (а), если j = 1, 2,...,д — 1,
/ = I а€ОР(д)
I/(0), если j = 0.
Теорема 1 [2]. Произведение I(q,n,x) всех нормированных неприводимых многочленов степени n из кольца Fq [x] задаётся формулой I(q,n,x) = П(ж? — x)M(n/d) =
d|n
= n(xq"/d — x)M(d), где p(n) — функция Мёбиуса:
d|n
Í1, если n =1,
(—1)k, если n — произведение k различных простых чисел,
0, если n делится на квадрат простого числа.
Утверждение 1. Пусть h(x) —многочлен из кольца Fp[x]. Нормированный неприводимый многочлен g(x) степени n, такой, что g(x) делит h(x), существует тогда и только тогда, когда (h(x),I(p,n,x)) = 1.
Прежде чем представить алгоритм нахождения минимальной степени полинома, опишем его основную идею. Пусть задана функция g : Vn(p) ^ Vn(p). Вопрос, при каком неприводимом многочлена полином f, соответствующий функции g, будет иметь минимальную степень, равносилен вопросу, при каком неприводимом многочлене наибольшее количество коэффициентов fq-i, fq-2,... , fi, fo, начиная со старших, будет равно нулю. Согласно полученной формуле, fj = — Е aq-i-jf(a),
aGGF(q)
j = 1, 2,... , q — 1. Чтобы установить, при каких неприводимых многочленах fj = 0, достаточно выяснить, какие неприводимые многочлены степени n делят fj(0) = = — Е a(0)q-i-jf(a)(0). В силу утверждения 1, неприводимый многочлен де-
aGGF(q)
лит fj(0) тогда и только тогда, когда (fj(0),I(p,n,0)) = 1 в кольце Fp[0]. На этом основан алгоритм 1 поиска минимальной степени функции над конечным полем в зависимости от выбора неприводимого многочлена.
Алгоритм 1. Поиск минимальной степени функции
Вход: таблица значений функции g над Vn(p). Выход: минимальная степень многочлена f над GF(pn). 1: d(0) ^ I(p, n, 0) 2: Для j = q — 1, q — 2,... , 1, 0: 3: Если j > 0, то 4: fj(0) ^ E a(0)q-i-jf (a)(0),
aGGF(q)
5: иначе
6: fj (0) ^ f (0)(0).
7: Если f (0) = 0, то
8: k(0) ^ (d(0),fj(0)).
9: Если k(0) = 1, то
10: Вернуть j.
11: d(0) ^ k(0).
12: Вернуть 0.
Отметим, что алгоритм 1 может быть модифицирован таким образом, чтобы дополнительно получать и неприводимый многочлен, при котором достигается минимальная степень. Для этого необходимо на шаге 10, если степень ^(0) равна п, выдать ^(0), а если больше п, разложить ^(0) на множители и выдать любой из сомножителей.
Утверждение 2. Алгоритм 1 всегда возвращает минимальную степень f (x) над GF(pn) в зависимости от выбора неприводимого многочлена.
Доказательство. Чтобы показать корректность алгоритма 1, во-первых, отметим, что он всегда завершается и выдаёт ответ. В основном цикле последовательно перебираются коэффициенты полинома f (0), начиная со старших. Согласно утверждению 1, на шаге 9 k(0) является произведением всех неприводимых многочленов степени n, по модулю которых f (0) = 0. Если k(0) отличен от 1, то существует неприводимый многочлен степени n, по модулю которого fj = 0. Это означает, что минимальная степень f (x) в зависимости от выбора неприводимого многочлена не более j — 1. Если k(0) равен 1, то неприводимых многочленов степени n, по модулю которых fj(0) = 0, не существует, следовательно, минимальная степень f (x) не меньше j. Так как коэффициенты перебираются последовательно, начиная со старших, это означает, что минимальная степень в точности равна j. Особый случай — если функция f (x) тождественно равна 0. Тогда fj (0) будет всё время равен нулю и цикл завершится, пройдя все итерации. В этом случае алгоритм 1 выдаст правильный ответ на шаге 12. ■
Утверждение 3. Сложность проверки с помощью алгоритма 1 того, что степень функции f (x) веса w над полем GF(pn) не превосходит d, составляет O(pnn2d4w) операций сложения и умножения по модулю p. При этом необходимо хранить в памяти O(pnn) значений из поля GF(p).
Доказательство. Рассмотрим итерацию с номером j. Обозначим m = q — — 1 — j. Для вычисления на шаге 4 коэффициента fj(0) требуется вычислить сумму £ a(0)q-1-jf(a)(0). Многочлен a(0) имеет степень не более n — 1, для возведения
aGGF(q)
его в степень m требуется не более O((mn)2 logm) операций. Количество слагаемых в сумме равно w, поэтому всего сложность шага 4 составляет O(wn2m2 log m) операций.
Если fj(0) = 0, то происходит вычисление НОД многочленов fj(0) и d(0) на шаге 8. Степень многочлена fj (0) не превосходит mn, многочлена d(0) — pn. Поэтому сложность вычисления НОД равна O(pnmn) [4]. Величина m меняется от 0 до d, суммируя значения сложности по m, имеем
d d d
£ O(wn2m2logm) < £ O(wn2m3) = O(wn2d4), £ O(pnnm) = O(pnnd2).
m=0 m=0 m=0
Таким образом, полная сложность равна O(pnn2d4w).
В процессе работы алгоритма 1 необходимо хранить многочлены d(0) и k(0), каждый из которых является многочленом над GF(p) степени не более pn, и многочлен fj (0) степени не более pnn. Так как для хранения многочлена степени k над GF(p) требуется хранить в памяти O(k) значений из GF(p), всего для работы алгоритма необходимо хранить O(pnn) значений из GF(p). ■
Замечание 1. Сравним алгоритм 1 с алгоритмом, который последовательно находит остатки от деления на все нормированные неприводимые многочлены степени n. В таком алгоритме шаги 7-11 алгоритма 1 будут заменены на последовательный перебор остатков от деления на все нормированные неприводимые многочлены степени n. Коэффициент fj (0) необходимо вычислить и в том и в другом случае. Степень многочлена fj (0) не превосходит mn. Количество нормированных многочленов степени n над полем GF(p) имеет порядок pn/n. При вычислении остатков от деления на все неприво-
pn n
димые многочлены полинома fj(0) понадобится О ( — mn log (mnn = O(pnm log (mn))
операций сложения и умножения по модулю p. Как показано выше, вычисление НОД на шаге 8 имеет сложность O(pnnm) операций. Таким образом, при m > pn/n сложность вычисления шагов 7-11 алгоритма 1 становится меньше, чем сложность перебора остатков от деления на все неприводимые многочлены степени n. Пример 1. Пусть n = 3, g(x) задаётся таблицей (табл. 1).
Таблица 1
x 0 1 2 3 4 5 6 7
g(x) 1 3 4 0 5 6 7 2
Вычислим коэффициенты f (ж) согласно алгоритму 1: ¿(0) = I(2, 3,0) = 06 + 05 + 04 + 03 + 02 + 0 + 1; f7(0) = 1 + (0 + 1) + 02 + 0 + (02 + 1) + (02 + 0) + (02 + 0 + 1) + 0 = 0; f6(0) = 0 ■ 1 + 1 ■ (0 + 1) + 0 ■ 02 + (0 + 1) ■ 0 + 02(02 + 1) + (02 + 1)(02 + 0) + + (02 + 0)(02 + 0 + 1) + (02 + 0 + 1)0 = 04 + 03 + 02 + 1; к(0) = (¿(0)^(0)) = 03 + 0 + 1; ¿(0) = к(0) = 03 + 0 + 1; f5(0) = 02 ■ 1 + 12(0 + 1) + 02 ■ 02 + (0 + 1)2 ■ 0 + (02)2(02 + 1) + (02 + 1)2(02 + 0) + + (02 + 0)2(02 + 0 + 1) + (02 + 0 + 1)20 = 06 + 05 + 0 + 1; к(0) = (¿(0)^5(0)) = 1.
В результате минимальная степень f (ж) равна 5 и достигается в поле ^2/(03 + 0 + 1). При этом в полях с другими неприводимыми многочленами степень функции равна 6.
Пусть функция д : ^П(р) ^ ^(р) задана в виде вектора функций (д(0),... ,^(га-1)), где д(г) : ^(р) ^ V(р), при этом для полинома f (ж) над ОЕ(рга) выполнено f (ж) =
га—1
= Е 0^(г)(ж), где полином f(г) соответствует функции д(г), f(г) : ОЕ(рга) ^ ОЕ(р).
¿=0
В этом случае шаги 3-6 алгоритма 1 могут быть модифицированы (алгоритм 2). Алгоритм 2. Модификация алгоритма 1
Вход: таблицы значений функций д(0),... , д(п—1). Выход: минимальная степень многочлена f над ОЕ(рга). 1: ¿(0) ^ I(р,п,0). 2: Для ] = д - 1,5 - 2,... , 1, 0: 3: Если ] > 0, то
4: Л- (0) ^ Е 04 Е а(0)9—•7—7^ (а)(0 М ,
¿=0 \а€ОР(д) у
5: иначе
га—1
6: л (0) ^ Е 07(г)(0)(0).
¿=0
7: Если Л(0) = 0, то 8: к(0) ^ (ЭД^.(0)). 9: Если к(0) = 1, то 10: Вернуть
11: ¿(0) ^ к(0). 12: Вернуть 0.
Отличие алгоритма 2 от алгоритма 1 состоит в способе вычисления коэффициентов fj(0) на шагах 3-6. Все утверждения, относящиеся к алгоритму 1, верны и для алгоритма 2.
3. Случай полей характеристики два
Рассмотрим случай полей характеристики два. Если q = 2n, а f (x) — булева функция от n переменных, то
f Z a2n-1-j, если j = 1, 2,..., 2n - 1,
f = < aeOF(2n),/(а) = 1
( f (0), если j = 0.
Следствие 1. Вне зависимости от выбора неприводимого многочлена, полином булевой функции нечётного веса имеет степень 2n — 1, чётного веса — не более 2n — 2.
Следствие 2. При n > 2 полином булевой функции чётного веса имеет степень меньше 2n — 3 тогда и только тогда, когда £ a = 0, то есть если поко-
a€GF(2n),/(а) = 1
ординатная сумма векторов, составляющих носитель булевой функции, равна нулю. Коэффициенты f2n-2 и f2n-3 не зависят от выбора неприводимого многочлена.
Доказательство. Следует из формулы для f2n-2 и того, что f2n-3 = (f2n-2)2. ■
Для булевых функций алгоритм 1 может быть оптимизирован. Так как известно, что для функции f (x) над GF(2n) выполнено f2j mod (2«-1) = f2, j = 1,... , 2n — 2 [5], то если коэффициент fj (0) равен нулю, то все коэффициенты с номерами из того же циклотомического класса по модулю 2 также равны нулю. Поэтому в цикле достаточно рассмотреть только те j, для которых 2n — 1 — j являются старшими представителями циклотомических классов.
4. Криптографические применения
Описанные алгоритмы могут быть применены в задачах криптоанализа. Они позволяют выбрать представление конечного поля таким образом, чтобы степень исследуемых отображений была как можно меньше. Поиск такого представления уменьшает сложность применения методов криптоанализа, связанных с алгебраическими характеристиками исследуемого отображения, например интерполяционного криптоанализа [6]. В качестве криптографических отображений были проанализированы S-блоки шифров ГОСТ 28147-89 [7, 8], ICEBERG [9], LUFFA [10], LUCIFER [11], SERPENT [12], AES [13], PRESENT [14], ГОСТ Р 34.12-2015 (Кузнечик) [15]. Результаты приведены в табл. 2. Для каждого S-блока вычислена минимальная степень в зависимости от выбора неприводимого многочлена. Указан многочлен, при котором достигается минимальная степень.
Таблица 2
S-box Степени S-блоков Многочлен
Макс. Мин.
GOST-A-ParamSet S1 - S8 14 14 Любой
GOST-B-ParamSet S1 14 14 Любой
GOST-B-ParamSet S2 14 13 вА + в +1
GOST-B-ParamSet S3 - S5 14 14 Любой
GOST-B-ParamSet S6 - S8 14 13 в4 + в3 + 1
GOST-C-ParamSet S1 - S4 14 14 Любой
GOST-C-ParamSet S5 14 13 в4 + в +1
GOST-C-ParamSet S6 14 14 Любой
Окончание табл. 2
S-box Степени S-блоков Многочлен
Макс. Мин.
GOST-C-ParamSet S7 14 13 в4 + в + 1
GOST-C-ParamSet S8 14 14 Любой
GOST-D-ParamSet S1 14 13 в4 + в3 + в2 + в + 1
GOST-D-ParamSet S2 - S8 14 14 Любой
GOST-T-ParamSet S1 14 13 в4 + в3 + 1
GOST-T-ParamSet S2 14 14 Любой
GOST-T-ParamSet S3 14 13 в4 + в3 + в2 + в + 1
GOST-T-ParamSet S4 14 13 в4 + в3 + в2 + в + 1
GOST-T-ParamSet S5 14 13 в4 + в3 + 1
GOST-T-ParamSet S6 - S8 14 14 Любой
GOST-Z-ParamSet S1 - S8 14 14 Любой
ICEBERG S0, S1 13 13 Любой
LUFFA 14 14 Любой
Lucifer S0, S1 14 14 Любой
Present 14 14 Любой
Serpent S0 14 14 Любой
Serpent S1 14 13 в4 + в3 + 1
Serpent S2 - S7 14 14 Любой
Кузнечик 254 253 в8 + в4 + в3 + в + 1
AES 254 254 Любой
Продемонстрируем вид конкретных полиномов на примере S-блока шифра Кузнечик, который задаётся массивом значений f = (f (0), f (1),... , f (255)) [15]:
f = (252, 238, 221,17, 207,110,49, 22, 251,196, 250, 218, 35,197, 4, 77, 233,119, 240, 219,147,46,153,186, 23, 54, 241,187, 20, 205, 95,193, 249, 24,101, 90, 226, 92, 239, 33,129, 28, 60, 66,139,1,142, 79, 5,132, 2,174, 227, 106,143,160, 6,11, 237,152,127, 212, 211, 31, 235, 52,44, 81, 234, 200, 72,171, 242, 42,104,162, 253, 58, 206, 204,181,112,14, 86, 8,12,118,18,191,114,19, 71,156,183, 93,135, 21,161,150, 41,16,123,154,199, 243,145, 120,111,157,158,178,177, 50,117, 25, 61, 255, 53,138,126,109, 84,198,128,195,189,13, 87, 223, 245, 36,169, 62,168, 67, 201, 215,121, 214, 246,124, 34,185, 3, 224,15, 236, 222,122,148,176,188, 220, 232, 40, 80, 78, 51, 10, 74,167,151, 96,115, 30, 0, 98, 68, 26,184, 56,130,100,159, 38, 65,173, 69, 70,146, 39, 94, 85, 47,140,163, 165,125,105, 213,149, 59, 7, 88,179, 64,134,172, 29, 247,48, 55,107, 228,136, 217, 231,137, 225, 27,131, 73, 76, 63, 248, 254,141, 83,170,144, 202, 216,133, 97, 32,113,103,164, 45, 43, 9, 91, 203,155, 37, 208,190, 229, 108, 82, 89,166,116, 210, 230, 244,180,192, 209,102,175,194, 57, 75, 99,182).
В поле с неприводимым многочленом 98 + 94 + 93 + 9 + 1 степень многочлена этой функции равна 253, и многочлен имеет следующий вид (коэффициенты полинома, являющиеся элементами конечного поля, записаны в числовом виде):
f (x) = 158x253 + 217x252 + 132x251 + 45x250 + 90x249 + 221x248 + 175x246 + 207x245 + 8x244 + 18x243+ +89x242 + 56x241 + 162x240 + 158x239 + 125x238 + 139x237 + 137x236 + 227x235 + 204x234 + 207x233+ +41x232 + x231 + 41x230 + 83x229 + 4x228 + 59x227 + 135x226 + 163x225 + 51x224 + 103x223 + 154x222 + +249x221 + 145x220 + 214x219 + 63x218 + 198x217 + 107x216 + 42x215 + 37x214 + 194x212 + 210x211+ +107x210 + 100x209 + 202x208 + 227x207 + 81x206 + 95x205 + 77x204 + 174x203 + 114x202 + 128x201+ +233x200 + 37x199 + 161x198 + 234x197 + 15x196 + 58x195 + 7x194 + 102x193 + 70x192 + 55x191 + 119x190+ + 149x189 + 77x188 + 35x187 + 32x186 + 143x185 + 30x184 + 59x183 + 56x182 + 10x181 + 2 1 7x180 + 32x179 + +66x178 + 126x177 + 224x176 + 199x175 + 93x174 + 91x173 + 134x172 + 185x171 + 88x170 + 156x169 + +233x168 + 187x167 + 6x166 + 148x165 + 231x164 + 66x163 + 51x162 + 176x161 + 84x160 + 172x159 + +98x158 + 73x157 + 132x156 + 185x155 + 113x154 + 243x153 + 111x152 + 183x151 + 38x150 + 129x149+
+88х148 + 83х147 + 236х146 + 176х145 + 235х144 + 253х143 + 158х142 + 35х141 + 186х140 + 44х139 + +197х138 + 223х137 + 133х136 + 127х135 + 201х134 + 217х133 + 70х132 + 102х131 + 121х130 + 100х129 + +242х128 + 27х127 + 84х126 + 111х125 + 138х124 + 77х123 + 123х122 + 68х121 + 10х120 + 58х119+ + 140х118 + 142х117 + 16х116 + 41х115 + 230х114 + 227х113 + 96х112 + 72жт + 159х110 + 37х109 + +14х108 + 201х107 + 5х106 + 202х105 + 17х104 + 175х103 + 105х102 + 137х101 + 204х100 + 37х99 + 64х98+ + 195х97 + 185х96 + 73х95 + 193х94 + 211х93 + 28х92 + 245х91 + 76х90 + 113х89 + 238х88 + 206х87+
+88х86 + 70х85 + 62х84 + 25х83 + 167х82 + 225х81 + 233х80 + 32х79 + 241х78 + 194х77 + 36х76+ +208х75 + 165х74 + 252х73 + 171х72 + 118х71 + 234х70 + 249х69 + 23х68 + 234х67 + 7х66 + 243х65 + +66х64 + 140х63 + 142х62 + х61 + 217х60 + 87х59 + 105х58 + 174х57 + 116х56 + 228х55 + 238х54+ +236х53 + 241х52 + 18х51 + 81х50 + 221х49 + 138х48 + 178х47 + 28х46 + 160х45 + 161х44 + 129х43+ +56х42 + 130х41 + 81х40 + 207х39 + 185х38 + 57х37 + 207х36 + 22х35 + 99х34 + 242х33 + 205х32 + +168х31 + х30 + 36х29 + 94х28 + 96х27 + 158х26 + 251х25 + 32х24 + 217х23 + 58х22 + 86х21 + 207х20+ +132х19 + 171х18 + 113х17 + 199х16 + 36х15 + 246х14 + 89х13 + 5х12 + Шх11 + 200х10 + 139х9 + + 172х8 + 109х7 + 163х6 + 176х5 + 170х4 + 187х3 + 110х2 + 140х + 252.
В полях с другими неприводимыми многочленами эта функция имеет степень 254, например для поля с неприводимым многочленом + + 03 + + 1 многочлен имеет следующий вид:
! (х) = 184х254 + 200х253 + 124х252 + 119х251 + 76х250 + 195х249 + 74х248 + 216х247 + 134х246+ +206х245 + 24х244 + 62х243 + 174х242 + 214х241 + 158х240 + 111х239 + 228х238 + 199х237 + 234х236+ +84х235 + 164х234 + 109х233 + 174х232 + 134х231 + 47х230 + 85х229 + 182х228 + 146х227 + 93х226+ +189х225 + 254х224 + 194х223 + 205х222 + 2х221 + 240х220 + 7х219 + 166х218 + 231х217 + 134х216+ +251х215 + 78х214 + 146х213 + 204х212 + 29х211 + 79х210 + 91х209 + 111х208 + 229х207 + 225х206+ +45х205 + 106х204 + 121х203 + 36х202 + 134х201 + 205х200 + 65х199 + 210х198 + 127х197 + 38х196+ +166х195 + 133х194 + 22х193 + 253х192 + 229х191 + 204х190 + 148х189 + 224х188 + 112х187 + 134х186+ +253х185 + 96х184 + 240х183 + 195х182 + 165х181 + 119х180 + 167х179 + 7х178 + 150х177 + 143х176+ +213х175 + 165х174 + 113х173 + 107х172 + 134х171 + 127х170 + 213х169 + 109х168 + 238х167 + 176х166+ + 165х165 + 17х164 + 105х163 + 78х162 + 36х161 + 231х160 + 81х159 + 34х158 + 126х157 + 134х156+ +178х155 + 70х154 + 24х153 + 138х152 + 71х151 + 84х150 + 115х149 + 145х148 + 144х147 + 240х146+ +63х145 + 34х144 + 15х143 + 224х142 + 134х141 + 16х140 + 249х139 + 255х138 + 207х137 + 242х136+ + 108х135 + 163х134 + 182х133 + 132х132 + 136х131 + 36х130 + 155х129 + 189х128 + 74х127 + 134х126+
+99х125 + 5х124 + 251х123 + 118х122 + 77х121 + 76х120 + 38х119 + 15х118 + 141х117 + 233х116+ +100х115 + 136х114 + 155х113 + 17х112 + 134Х111 + 249х110 + 147х109 + 74х108 + 81х107 + 103х106+ +116х105 + 59х104 + 74х103 + 174х102 + 80х101 + 57х100 + 172х99 + 153х98 + 40х97 + 134х96 + 93х95 +
+199х94 + 147х93 + 169х92 + 164х91 + 133х90 + 60х89 + 46х88 + 30х87 + 200х86 + 7х85 + 75х84+ + 185х83 + 87х82 + 134х81 + 6х80 + 196х79 + 243х78 + 199х77 + 104х76 + 87х75 + 84х74 + 3х73 + 89х72 + + 172х71 + 50х70 + 150х69 + 56х68 + 200х67 + 134х66 + 165х65 + 238х64 + 52х63 + 214х62 + 193х61 + +134х60 + 166х59 + 191х58 + 155х57 + 137х56 + 110х55 + 227х54 + 184х53 + 21х52 + 134х51 + 21х50+ +227х49 + 234х48 + 175х47 + 24х46 + 111х45 + 23х44 + 12х43 + 11х42 + 180х41 + 183х40 + 131х39+ +69х38 + 93х37 + 134х36 + 81х35 + 42х34 + 149х33 + 2х32 + 146х31 + 157х30 + 135х29 + 82х28 + 74х27+
+46х26 + 227х25 + 145х24 + 9х23 + 176х22 + 134х21 + 114х20 + 53х19 + 67х18 + 36х17 + 156х16+ + 190х15 + 103х14 + 110х13 + 101х12 + 89Х11 + 162х10 + 245х9 + 37х8 + 85х7 + 134х6 + 67х5 + 239х4+
+174х3 + 8х2 + 65х + 252.
Заключение
В работе предложен алгоритм, находящий минимальную степень полинома f (x) в зависимости от выбора неприводимого многочлена для отображения д : Vn(p) ^ Vn(p), и вариация алгоритма для случая, когда отображение задано вектором функций д% : Vn(p) ^ V(p), i = 0,...,n — 1. Отдельно рассмотрен случай полей характеристики два, в котором выражения для коэффициентов полинома, соответствующего отображению над векторным пространством, имеют особенно простой вид. Для нелинейных блоков замены некоторых блочных шифров вычислены минимальные степени полиномов над конечным полем и указаны неприводимые многочлены, при которых эти минимальные степени достигаются.
ЛИТЕРАТУРА
1. Youssef A. M. and Gong G. On the interpolation attacks on block ciphers // Intern. Workshop on Fast Software Encryption. Berlin, Heidelberg, 2000. P. 109-120.
2. Lidl R. and Niederreiter H. Finite Fields. Cambridge: Cambridge University Press, 1997. V. 20.
3. McWilliams F. J. and Sloane N. J. A. The Theory of Error-Correcting Codes. N.Y.: Elsevier, 1977.
4. Sorenson J. An analysis of Lehmer's Euclidean GCD algorithm // Proc. Intern. Symp. on Symbolic and Algebraic Computation. Montreal, Canada, 1995. P. 257-397.
5. Carlet C. Boolean functions for cryptography and error correcting codes // Y. Crama and P. Hammer (eds.) Boolean Models and Methods in Mathematics, Computer Science, and Engineering. Cambridge: Cambridge University Press, 2010. P. 257-397.
6. Jakobsen T. and Knudsen L. R. The interpolation attack on block ciphers // Intern. Workshop on Fast Software Encryption. Springer, 1997. P. 28-40.
7. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. М.: Издательство стандартов, 1989.
8. Popov V., Kurepkin I., and Leontiev S. RFC 4357: Additional Cryptographic Algorithms for Use with GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001 and GOST R 34.11-94 Algorithms. М.: IETF, 2006.
9. Standaert F. X., Piret G., Rouvroy G., et al. ICEBERG: An involutional cipher efficient for block encryption in reconfigurable hardware // Intern. Workshop on Fast Software Encryption. Berlin, Heidelberg, 2004. P. 279-298.
10. De Canniere C., Sato H., and Watanabe D. Hash Function Luffa: Specification. Submission to NIST SHA-3 Competition. 2008. http://www.hitachi.com/rd/yrl/crypto/luffa.
11. Sorkin A. Lucifer, a cryptographic algorithm // Cryptologia. 1984. V. 8. No. 1. P. 22-42.
12. BihamE., Anderson R., and Knudsen L. Serpent: A new block cipher proposal // Intern. Workshop on Fast Software Encryption. Berlin, Heidelberg, 1998. P. 222-238.
13. Daemen J. and Rijmen V. The Design of Rijndael. AES — the Advanced Encryption Standard. Berlin, Heidelberg: Springer Science & Business Media, 2013.
14. Bogdanov A., Knudsen L. R., Leander G., et al. PRESENT: An ultra-lightweight block cipher // Intern. Workshop on Cryptographic Hardware and Embedded Systems. Berlin, Heidelberg, 2007. P. 450—466.
15. Информационная технология. Криптографическая защита информации. Блочные шифры. М.: Стандартинформ, 2015.
REFERENCES
1. Youssef A. M. and Gong G. On the interpolation attacks on block ciphers. Intern. Workshop on Fast Software Encryption. Berlin, Heidelberg, 2000, pp. 109-120.
2. Lidl R. and Niederreiter H. Finite Fields. Cambridge, Cambridge University Press, 1997, vol. 20.
3. McWilliams F. J. and SloaneN. J. A. The Theory of Error-Correcting Codes. N.Y., Elsevier, 1977.
4. Sorenson J. An analysis of Lehmer's Euclidean GCD algorithm. Proc. Intern. Symp. on Symbolic and Algebraic Computation, Montreal, Canada, 1995, pp. 257-397.
5. Carlet C. Boolean functions for cryptography and error correcting codes. Y. Crama and P. Hammer (eds.). Boolean Models and Methods in Mathematics, Computer Science, and Engineering. Cambridge, Cambridge University Press, 2010, pp. 257-397.
6. Jakobsen T. and Knudsen L. R. The interpolation attack on block ciphers. Intern. Workshop on Fast Software Encryption, Springer, 1997, pp. 28-40.
7. GOST 28147-89. Sistemy obrabotki informatsii. Zashchita kriptograficheskaya. Algoritm kriptograficheskogo preobrazovaniya [GOST 28147-89. Information Processing Systems. Cryptographic Protection. Algorithm of Cryptographic Transformation.] Moscow, Standards Publ., 1989. (in Russian)
8. Popov V., Kurepkin I., and Leontiev S. RFC 4357: Additional Cryptographic Algorithms for Use with GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001 and GOST R 34.11-94 Algorithms. Moscow, IETF, 2006.
9. Standaert F. X., Piret G., Rouvroy G., et al. ICEBERG: An involutional cipher efficient for block encryption in reconfigurable hardware. Intern. Workshop on Fast Software Encryption, Berlin, Heidelberg, 2004, pp. 279-298.
10. De Canniere C., Sato H., and Watanabe D. Hash Function Luffa: Specification. Submission to NIST SHA-3 Competition, 2008. http://www.hitachi.com/rd/yrl/crypto/luffa.
11. Sorkin A. Lucifer, a cryptographic algorithm. Cryptologia, 1984, vol.8, no. 1, pp. 22-42.
12. Biham E., Anderson R., and Knudsen L. Serpent: A new block cipher proposal. Intern. Workshop on Fast Software Encryption, Berlin, Heidelberg, 1998, pp. 222-238.
13. Daemen J. and Rijmen V. The Design of Rijndael. AES — the Advanced Encryption Standard. Berlin, Heidelberg, Springer Science & Business Media, 2013.
14. Bogdanov A., Knudsen L. R., Leander G., et al.PRESENT: An ultra-lightweight block cipher. Intern. Workshop on Cryptographic Hardware and Embedded Systems. Berlin, Heidelberg, 2007, pp. 450-466.
15. Informatsionnaya tekhnologiya. Kriptograficheskaya zashchita informatsii. Blochnyye shifry.[Information Technology. Cryptographic Protection of Information. Block Ciphers.] Moscow, Standartinform Publ., 2015. (in Russian)