Научная статья на тему 'Метод построения полинома одной переменной над конечным полем раундовой функции блочных шифров'

Метод построения полинома одной переменной над конечным полем раундовой функции блочных шифров Текст научной статьи по специальности «Математика»

CC BY
341
36
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БЛОЧНЫЙ ШИФР / ШИФР PRESENT / ИНТЕРПОЛЯЦИОННЫЙ КРИПТОАНАЛИЗ / МАТРИЦА ВАНДЕРМОНДА / МНОГОЧЛЕН НАД КОНЕЧНЫМ ПОЛЕМ / BLOCK CIPHER / PRESENT CIPHER / INTERPOLATION CRYPTOANALYSIS / VANDERMONDE MATRIX / FINITE FIELD POLYNOMIAL

Аннотация научной статьи по математике, автор научной работы — Белов Сергей Алексеевич

В работе предлагается метод построения раундовой функции в виде полинома одной переменной над конечным полем. Предложенный метод основан на вычислении исходного криптографического преобразования в специальных точках конечного поля и последующем обращении матрицы Вандермонда. Для этого класса матриц существуют алгоритмы вычисления обратной матрицы, которые значительно эффективнее стандартного алгоритма обращения с помощью метода Гаусса. В работе был использован алгоритм Трауба, вычислительная сложность которого пропорциональна квадрату размера заданной матрицы. Метод применим для блочных итеративных шифров специального вида (SP-сеть). Для этого класса шифров приведены математические оценки алгебраических параметров полиномов раундовых функций над конечным полем. Количественные значения оценок посчитаны для актуального российского стандарта шифрования «Кузнечик». Представлены оценки вычислительной сложности предлагаемого метода. Проведены практические вычисления полиномов одной переменной для преобразования над конечными полями с различными характеристиками. Приведены практические результаты измерений времени работы при построении полиномов в конечных полях различной размерности. С помощью представленного метода в явном виде вычислен многочлен одной переменной над конечным полем раундовой функции блочного шифра PRESENT.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Белов Сергей Алексеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

A METHOD OF CONSTRUCTING A BLOCK CIPHERS ROUND FUNCTION’S POLYNOMIAL OVER A FINITE FIELD

The work outlines the method of construction of round function as a polynomial of one variable over the finite field. The proposed method is based on the calculation of the initial cryptographic transformation at special points of the finite field and the subsequent inversion of Vandermonde matrix. For this class of matrices, there are algorithms for calculating the inverse matrix, which are much more efficient than the standard algorithm of inversion using the Gauss method. In the proposed work, the Traub algorithm is used. The computational complexity of Traub algorithm is proportional to the square of the size of a given matrix. The method is applicable to block iterative ciphers of special type (SP-network). For this type of ciphers, mathematical evaluations of algebraic parameters of polinomials of round functions over the finite fields are provided. Quantative values of estimations are calculated for Russian encryption standard "Kuznechik". The estimates of computational complexity of the proposed method are provided. The article contains practical results of estimations of work time for polynomials notation for finite fields of varying dimensions. The proposed method is used for explicit calculation of the polynomial of one variable over the finite field of round function of block cipher PRESENT.

Текст научной работы на тему «Метод построения полинома одной переменной над конечным полем раундовой функции блочных шифров»

УДК 519.7

DOI: 10.25559/SITITO.14.201803.586-593

МЕТОД ПОСТРОЕНИЯ ПОЛИНОМА ОДНОЙ ПЕРЕМЕННОЙ НАД КОНЕЧНЫМ ПОЛЕМ РАУНДОВОЙ ФУНКЦИИ БЛОЧНЫХ ШИФРОВ

С.А. Белов

Московский государственный университет имени М.В. Ломоносова, г. Москва, Россия

A METHOD OF CONSTRUCTING A BLOCK CIPHERS ROUND FUNCTION'S POLYNOMIAL OVER A FINITE FIELD

Sergey A. Belov

Lomonosov Moscow State University, Moscow, Russia

© Белов С.А., 2018

Ключевые слова

Аннотация

Блочный шифр; шифр PRESENT; интерполяционный криптоанализ; матрица Вандермонда; многочлен над конечным полем.

В работе предлагается метод построения раундовой функции в виде полинома одной переменной над конечным полем. Предложенный метод основан на вычислении исходного криптографического преобразования в специальных точках конечного поля и последующем обращении матрицы Вандермонда. Для этого класса матриц существуют алгоритмы вычисления обратной матрицы, которые значительно эффективнее стандартного алгоритма обращения с помощью метода Гаусса. В работе был использован алгоритм Трауба, вычислительная сложность которого пропорциональна квадрату размера заданной матрицы. Метод применим для блочных итеративных шифров специального вида (SP-сеть). Для этого класса шифров приведены математические оценки алгебраических параметров полиномов раундовых функций над конечным полем. Количественные значения оценок посчитаны для актуального российского стандарта шифрования «Кузнечик». Представлены оценки вычислительной сложности предлагаемого метода. Проведены практические вычисления полиномов одной переменной для преобразования над конечными полями с различными характеристиками. Приведены практические результаты измерений времени работы при построении полиномов в конечных полях различной размерности. С помощью представленного метода в явном виде вычислен многочлен одной переменной над конечным полем раундовой функции блочного шифра PRESENT

Keywords

Abstract

Block cipher; PRESENT cipher; interpolation cryptoanalysis; Vandermonde matrix; finite field polynomial.

The work outlines the method of construction of round function as a polynomial of one variable over the finite field. The proposed method is based on the calculation of the initial cryptographic transformation at special points of the finite field and the subsequent inversion of Vandermonde matrix. For this class of matrices, there are algorithms for calculating the inverse matrix, which are much more efficient than the standard algorithm of inversion using the Gauss method. In the proposed work, the Traub algorithm is used. The computational complexity of Traub algorithm is proportional to the square of the size of a given matrix. The method is applicable to block iterative ciphers of special type (SP-network). For this type of ciphers, mathematical evaluations of algebraic parameters of polinomials of round functions over the finite fields are provided. Quantative values of estimations are calculated for Russian encryption standard "Kuznechik”. The estimates of computational complexity of the proposed method are provided. The article contains practical results of estimations of work time for polynomials notation for finite fields of varying dimensions. The proposed method is used for explicit calculation of the polynomial of one variable over the finite field of round function of block cipher PRESENT.

|об авторе:|

Белов Сергей Алексеевич, аспирант, факультет вычислительной математики и кибернетики, Московский государственный университет имени М.В. Ломоносова (119991, Россия, ГСП-1, г. Москва, Ленинские горы, д. 1); ORCID: https://orcid.org/0000-0002-7923-0129, serbel.sci@ gmail.com

Современные информационные технологии и ИТ-образование

Theoretical questions of computer science, computational mathematics, computer science and cognitive information technologies

Введение

Исследование стойкости шифров к различным методам криптоанализа является одним из важнейших направлений симметричной криптографии. Основными методами криптоанализа блочных шифров являются дифференциальный [1] и линейный [2] криптоанализ. В то же время существуют методы криптоанализа, эффективные против криптографических преобразований, устойчивых к дифференциальному и линейному криптоанализу. Примером является интерполяционный криптоанализ, предложенный Кнудсеном в работе [3]. Основной идеей метода является представление криптографического преобразования многочленом над конечным полем соответствующей размерности и последующем применении процедуры интерполяции к этому многочлену. Стойкость криптографического преобразования к интерполяционному криптоанализу существенно зависит от алгебраических параметров полинома над конечным полем. Поскольку размер блока современных блочных шифров достаточно велик, построить представление шифра в виде полинома над конечным полем в явном виде не представляется возможным. В таком случае алгебраические свойства блочного итеративного шифра оценивают в зависимости от соответствующих алгебраических свойств раундового преобразования. В работе представлены оценки алгебраических параметров раундовых функций блочных шифров и метод построения раундовых преобразований блочных шифров в виде полинома над конечным полем.

Работа построена следующим образом. В разделе 2 приведены основные обозначения, используемые в дальнейшем. В разделе 3 представлены основные сведения об интерполяционном криптоанализе. В разделе 4 дан обзор алгоритмов обращения матрицы Вандермонда. В 5 разделе более детально рассмотрен алгоритм Трауба для обращения матрицы Вандермонда. В разделе 6 приводятся необходимые теоремы и доказательства о полиномах в конечных полях. В разделе 8 рассматриваются раундовые функции SP-сетей. В разделе 8 приводится алгоритм построения полинома одной переменной раундовой функции произвольного блочного шифра. В разделе 9 описано устройство шифра PRESENT. В разделах 10 и 11 приводятся результаты и численные характеристики предложенного алгоритма для различных параметров.

1. Соглашения и обозначения

Vn - множество всех векторов из 0 и 1 длины п.

GF(q) - конечное поле из q элементов.

Известно, что любая функция F: GF(q) ^ GF(q) может быть представлена в виде многочлена одной переменной над полем GF(q) степени не более q — 1.

Тг(х) = Тл-оХ2' - функция "след" в поле GF(2n). Определённая таким образом функция является отображением из GF(2n) в GF(2).

Два базиса а0,...,ап-1 и р0,...,рп-1 конечного поля будем называть дуальными, если Тг(аф]) = |д’ ! = j

Пусть F - функция над GF(q). Через deg(F) будем обозначать степень полинома этой функции над конечным полем.

Булева функция от п переменных f(x1,...,хп) может быть единственным образом представлена в виде многочлена от переменных х1,..., хп. Такое представление называется полиномом Жегалкина и имеет вид

со © cii,i2..4kxiixi2... xik

1<i1<...<ik<n,ke[1,2,...;n}

Пусть f - булева функция от п переменных. Через def(f) будем обозначать степень булевой функции, т.е. число переменных в самом длинном слагаемом полинома Жегалкина функции f.

При изложении будем рассматривать функцию F: (0,1}п ^ {0,1}п, с одной стороны, как функцию над конечным полем F: GF(2n) ^ GF(2n), с другой стороны, как вектор булевых функций F(x) = (f1(x1,..., хп),..., fn(x1,..., хп)), где fi(x-i,...,хп) - булева функция от п переменных. В таком случае будем говорить, что булевы функции f1,..., fn составляют функцию F.

2. Интерполяционный криптоанализ

В работе [3] Якобсен и Кнудсен предложили новый тип атак на блочные шифры, названный ими интерполяционным криптоанализом. Обозначим размер блока в битах п, открытый текст х, а шифротекст у, х и у могут быть представлены как вектора длины р, в котором каждый элемент состоит из m бит (при этом выполняется равенство р *т = п):

х = (хъ...,хр) Е GF(2n),Xi Е Vm У = (Ух...УР) Е GF(2n),yi Е Vm

В работе рассмотрены два варианта атаки: первый из них, названный авторами global deduction, состоит в следующем. Фиксируется некоторый ключ к. В этом случае результат работы шифра после j раундов может быть представлен как полином над конечным полем

У] = 9j,k (х) = fkj(fkj-i(... fki (х)..))

Имея достаточное количество пар открытый -зашифрованный текст, атакующий может восстановить полином д при помощи интерполяционной формулы Лагранжа. Восстановив многочлен gj k, атакующий может зашифровывать сообщения без знания секретного ключа. Поменяв местами х и у атакующий также может расшифровывать сообщения без знания секретного ключа. Второй вариант атаки, названный авторами instance deduction, аналогичен первому, только дополнительно атакующий имеет возможность фиксировать части

Modern Information Technologies and IT-Education

открытого текста (х1,...,хр) для того, чтобы уменьшить сложность раундовой функции. В работе также предложен метод восстановления ключа. Практическая возможность осуществления атаки была продемонстрирована Якобсеном и Кнудсеном на примере шифра PURE [4] и семействе шифров SHARK [5]. Авторы работы также продемонстрировали возможность применения

интерполяционного криптоанализа к семейству шифров SNAKE.

ао' 0

а0 = г-х1] ак ао-1

[ 1 \ пк Lakj ак-1

-1л

а

к-1 к-1

0

В качестве коэффициентов взять результат на -ом шаге, т.е. а,- = а™;

2. Для j = 1... п выполнить следующее:

3. Алгоритмы обращения матрицы Вандермонда

Рассмотрим многочлен над конечным полем степени п — 1. Задача интерполяции многочлена сводится к решению систем линейных уравнений с матрицей Вандермонда, которая имеет вид:

Х1 X2 . у.П- .. Xi

х2 х2 . уП- ■■ х2

хп у2 лп ■ уП- ■■ лп

Известно, что если х1,..,хп различны, то матрица Вандермонда обратима. Помимо классического алгоритма Гаусса существует множество алгоритмов обращения матрицы Вандермонда, учитывающих её особую структуру. В работе [7] приведены явные выражения для элементов матрицы, обратной матрице Вандермонда специального вида над конечным полем GF(q). В работе [8] приведён итеративный алгоритм вычисления элементов обратной матрицы со сложностью 0(п3). Известны алгоритмы с лучшей оценкой сложности: алгоритм Трауба [9], алгоритм Паркера [10], алгоритм Бьёрка-Перейа [11], обобщённый алгоритм Паркера-Трауба [12], алгоритм Ян и Янга [13], имеющие вычислительную сложность 0(п2).

4. Алгоритм Трауба

Перечисленные выше алгоритмы обращения матрицы Вандермонда имеют одинаковую вычислительную сложность 0(п2) и различаются, главным образом, в вопросе накопления ошибок при вычислениях, что не существенно для случая матрицы над конечным полем. В представленной работе для обращения матрицы был использован алгоритм Трауба [9, 12]. В этом разделе приводится более подробное описание этого алгоритма. Пусть V - матрица Вандермонда размерности п. Обозначим:

П п-1

Р(х) = ^^( х — хк) = хП + ^ ак * хк

к=1 к=0

Алгоритм (Трауб)

2.1. Вычислить qk(j) по формуле:

qo(x) = 1, qk(х) = х * qk-i(x) + ап-к, к = 1... п

2.2. Вычислить P'(j) = q'n(j) по формуле:

q'i(x) = 1, q'k (х) = qk-i(x) + х * q\_i(x), к =2... п

2.3. Вычислить -ый столбец матрицы V-1

Як (xj) * (Р' (xj))-1, к = °- п — 1 3. Конец алгоритма.

Алгоритм Трауба позволяет вычислить все элементы обратной матрицы за время, пропорциональное п2, что для больших матриц существенно быстрее, чем вычисление обратной матрицы классическим алгоритмом Гаусса.

5. Характеристики многочлена над конечным

полем

Пусть GF(2) - поле из двух элементов, а GF(2n) -его расширение степени п. Тогда булеву функцию от п переменных f(x0,...,хп-1) можно представить в виде функции F: GF(2n) ^ GF(2). Или, так как GF(2) является подполем GF(2п), F: GF(2п) ^ GF(2n). Обозначим через а0,...,ап-1 базис конечного поля, а через р0,...,Рп-1 -дуальный к нему базис. Тогда для любого х е GF(2n) однозначно определено разложение по базису х = 'Zi=^1aixi , а в силу двойственности базисов верно xt = Tr(ptx). Таким образом, для любой булевой функции f(x0,...,хп-1) имеет место равенство f(x0,..., хп-1) =

f(Tr(p0x), Тг(р1х),..., Тг(рп-1х)). Такое представление булевой функции называется трейс-представлением. Трейс-представления используется для анализа свойств булевых функций, в том числе криптографических [14, 15, 16].

Теорема 1. [17] Пусть f - булева функция от п переменных, deg(f) = d. F(x): GF(2n) GF(2) -

представление f над полем GF(2n). Тогда deg(F) < 2n — 2n-d, количество мономов в F не превосходит Y*i=0 Сп.

Лемма 1. Пусть два набора чисел А = (2к1,2к2... ,2kt ),0 <kl<n, ie {1,2,..., t} и В =

(2Pl ,2Р2 ...,2рч),0 <pl<n, ie {1,2,..., q} имеют

одинаковую сумму и А П В = 0. Тогда в одном из наборов присутствуют повторяющиеся числа из множества {1,2,4...2п-1}.

1. Вычислить коэффициенты Р(х) с помощью следующей процедуры:

Доказательство. Если ни в наборе А, ни в наборе В нет повторяющихся элементов, то Yd=0 2ki и 'Z‘j=0 2Р> являются представлениями одного и того же числа в двоичной системе счисления. В силу единственности

Современные информационные технологии и ИТ-образование

Theoretical questions of computer science, computational mathematics, computer science and cognitive information technologies

представления числа в двоичной системе счисления, приходим к противоречию с условием АпВ = 0. Если в одном из наборов повторяется число 2П, то сумма набора не меньше чем 2n + 2n = 2n+1. Предположим, что во втором наборе нет повторяющихся элементов. Так как А п В = 0, то во втором наборе не может присутствовать число 2П. Тогда сумма второго набора не превосходит 1 + 2 + 4+...+2"-1 = 2П — 1 < 2П. Приходим к противоречию с условием равенства сумм наборов.

Лемма 2. Пусть два набора чисел А =

(2ki ,2к2 ...,2kt),0 <ki<n, ie {1,2..t} и В =

(2Pi, 2Р2 ...,2рч), 0 <pl <n, i e {l,2,..., q} имеют одинаковую сумму по модулю 2n+1 — 1и АпВ = 0. Тогда в одном из наборов присутствуют повторяющиеся элементы.

Доказательство. Предположим, что ни в наборе А, ни в наборе В нет повторяющихся элементов. Так как А п В = 0, и элементы наборов ограничены сверху числом 2П, выполнено Т1=0 2ki + Т]=0 2Р> < 1 + 2+... +2n = 2n+1 — 1.

Так как сумма набора больше либо равна 1, сумма каждого из наборов строго меньше 2n+1 — 1. По предположению, в наборах нет повторяющихся элементов, следовательно, Т1=0 2к{ и Е]=0 2Pj являются представлениями одного и того же числа в двоичной системе счисления. В силу единственности представления числа в двоичной системе счисления, приходим к противоречию с условием АпВ = 0.

Теорема 2. Пусть f - булева функция от п переменных, deg(f) = d. F(x):GF(2n) ^GF(2) -

представление f над полем GF(2n). F(x) = Т^о1 aixl. Тогда ai =0 для тех i, которые не являются суммой по модулю 2П — 1 строго возрастающего набора, состоящих из чисел {1,2,.. .,2П-1}, длины не более d.

Доказательство. Рассмотрим булеву функцию f(x1,...,хп) степени т как функцию GF(2n) ^ GF(2). Полином Жегалкина этой булевой функции имеет вид

со © ch,i2 ikxhxi2... xik

1<li<..<lk<n,ke{1,2,...,m}

Выберем базис конечного поля а1,..., ап. Подставляя вместо булевых переменных х1,..., хп соответствующие им выражения Tr(plx) (где ft - элементы дуального базиса), получаем выражение

- © ci„i2 ik Tr(Pix)Tr(pi2x)... Tr(Pikx)

1<li<..<lk<n,ke{1,2,...,m}

Полином функции Tr(x) содержит только степени двойки {1,2,4,...,2П-1}, следовательно, в полиномиальном представлении булевой функции f над конечным полем F = T2=-1aixl, xeGF (2п) для тех i, которые не представимы в виде суммы по модулю 2П — 1 степеней двойки, с числом слагаемых не более d, al = 0. Перестановка элементов множества не меняет его сумму, поэтому достаточно рассмотреть только упорядоченные неубывающие наборы. Согласно лемме 1, если в наборе

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

присутствуют повторяющиеся числа из множества {1,2,..., 2П-1}, то существует набор с такой же суммой, в котором нет повторений. В то же время, у двух строго возрастающих наборов не могут быть одинаковые суммы, так как иначе возникает противоречие с леммой 2.

Теорема 3. Пусть F(x): GF(2n) ^GF(2п), F(x) =

Id=o1aiXl. F(x) = {fo(x)..fn-1(x)), где ft fn_1 - булевы

функции. d - максимальная степень среди функций

fо, ■■■, fn-1

Тогда:

1. Количество мономов F(x) не превосходит Tf=0 С„;

2. deg(F(x)) < 2п — 2n-d;

3. al = 0 для тех i, которые не являются суммой строго возрастающего набора, состоящих из чисел {1,2,..., 2п-1} длины не более d.

Доказательство. Обозначим базис конечного поля GF(2n) а0,...,ап-1. Пусть fl имеет представление над конечным полем

2п-1

Fl(х) = ^ aikxk,Fi(x): GF(2n) ^ GF(2)

к=0

Тогда для функции F(x) верно представление

F(x) = T%1a}F}(х). Из этого представления и теорем 1 и 2 следуют утверждения теоремы.

6. SP-сети

Будем говорить, что раундовый блочный шифр является SP-сетью [18], если его раунды имеют следующий вид. Каждый раунд состоит из трёх стадий. На первой стадии осуществляется побитовый XOR блока с раундовым ключом. На второй стадии блок делится на m подблоков длины р бит каждый. К каждому подблоку применяются нелинейные преобразования, называемые S-блоками, каждый из которых осуществляет перестановку {0,1}р ^ {0,1}р. На третьей стадии применяется обратимое линейное преобразование Р: Vn ~^Vn. Таким образом, раундовая функция может быть представлена в виде R(x) = P(S(x ® к)), где к — раундовый ключ.

Теорема 4. Пусть S(x): GF(2n) ^ GF(2n),S(x) = (s0(x),...,sn-1(x)), где s0,...,sn-1 - булевы функции. d -наибольшая степень среди функций s0,...,sn-1. к e GF(2n). P(x): GF(2n) ^ GF(2n) - обратимое линейное

преобразование. R(x) = P(S(x + к)): GF(2n) ^

GF(2n),R(x) = (ro(x),...,rn-1(x)), где Го,...,rn-1 - булевы функции. г - наибольшая степень среди функций г0,гп-1 Тогда

1. г < s;

2. Количество мономов в R(x) не превосходит Tt=0Cn.

Доказательство. Рассмотрим функцию R(x) = P(S(x + к)) как вектор-функцию, состоящую из булевых функций г0(х),..., гп-1(х). Сложение с константой в конечном поле эквивалентно прибавлению по модулю два 0 или 1 к каждой из булевых функций s0(x),...,sn-1(x) и

Modern Information Technologies and IT-Education

потому не изменяет степени булевых функций. Применение линейного преобразования P состоит из операций сложения по модулю два булевых функций друг с другом, в результате чего степень булевых функций может только уменьшиться, из чего следует утверждение 1 теоремы. Утверждение 2 следует из утверждения 1 и теоремы 3.

В качестве примера рассмотри раундовую функция шифра «Кузнечик»1. Раундовая функция шифра «Кузнечик» с раундовым ключом к задаётся преобразованием F(x) = LSX[k](x), в котором

Х[к](Х) \ К128 ^ ^128 = х ® к 5(х): ^128 ^ ^128 = ^(X15ll-- - llXo) = ^15II--- 11^0 п(х): V8^V8 - нелинейное преобразование

L(x): = R16(x)

R(x):. V128 ^ K128 = ^(%15|1-- - ||Xo) = l(X15||- - - 1 |Xo)||X15 ||- - - ||X1 l(x): Vq6 ^ V128 - линейное преобразование

Непосредственно проверяется, что максимальная степень булевой функции, составляющей преобразование л"(х) равна 7. Следовательно, степень полинома функции F над GF (2128) не превосходит 2128 — 2121 =

337623910929368631717566993311207522304, а

количество мономов не превосходит Tj=0 С{28 =

100224990433.

Покажем, как при помощи доказанных утверждений построить полином одной переменной раундовой функции блочного шифра над конечным полем в явном виде.

7. Алгоритм построения полинома раундовой

функции

Пусть R(x) = с1х“1 + с2х“2 +- - - +спхап - полином над конечным полем. Задача состоит в том, чтобы вычислить коэффициенты с1,с2,---, сп имея возможность вычислять значения многочлена в любых наперёд заданных точках. Покажем, как вычислить значения коэффициентов с1,с2,---,сп, вычислив многочлен в n точках. Выбрав различные точки х1,---,хп, получаем систему линейных уравнений Ас = у, где с = (с1;---, сп )т - вектор

коэффициентов, у -вектор значений многочлена в выбранных точках, у = (у1,---,уп)т,Уь = R(xi). Матрица А представляет собой матрицу вида

А1 ха 2 .. хМ

А1 а х2 2 . ап .. х2

W1 а2 хп . ■■ Ап)

Чтобы гарантировать существование и

единственность решения будем выбирать точки

следующим образом. Пусть а - элемент конечного поля порядка больше чем п. Такой элемент заведомо существует, так как известно, что мультипликативная группа конечного поля является циклической. Поэтому в качестве элемента а всегда можно выбрать образующий элемент этой группы. Выберем точки следующим образом:

х1 = 1 х2 = а1

При таком выборе точек матрица А принимает вид

i 1 . .. 1

aai аа2 . .. aUn

п-1) 0^ (ап-1)а2 . .. (ап-1)а>

Произведём замену t1 = a®1,---,tn = аап. Матрица А будет иметь вид

То есть матрица А - это транспонированная матрица Вандермонда. Так как, в силу выбора элемента а, элементы t1,---,tn являются различными, матрица А невырождена, следовательно, приведённая выше система линейных уравнений имеет единственное решение. Алгоритм построения полинома раундовой функции блочного шифра следующий:

Алгоритм

1. Вычислить п - максимально возможное количество мономов, входящих в многочлен по теореме 3;

2. Вычислить а1,---,ап - степени, которые могут входить в многочлен по теореме 3;

3. Найти элемент а такой что ord(a) > п (в качестве а можно взять образующий элемент поля);

4. Вычислить точки х1, - - -, хп по формуле Xi = a1-1, i = 1--- п;

5. Вычислить у = (у1,---,уп)т - значения многочлена f(x) в точках х1, - - -, хп,yt = f(xt);

6. Вычислить матрицу А, где Atj = alai;

7. Вычислить матрицу А-1 по алгоритму Трауба;

8. Вычислить с = А-1у, где с = (х1, - - -, сп)т — искомые коэффициенты;

9. Вернуть с;

10. Конец алгоритма.

Вычислительно наиболее сложной частью Алгоритма 1 является вычисление обратной матрицы (шаг 7), который, как было отмечено выше, имеет сложность порядка N2 арифметических операций, где N - размер матрицы. Обозначим Sfi = Y,t=0 Q Таким образом сложность Алгоритма 1 можно оценить как 0((S!^)2) арифметических операций в конечном поле, где п - размерность поля, а d -максимальная степень булевой функции, составляющей функцию над полем. Отметим, что согласно теореме 4, Алгоритм 1 применим к любой SP-сети. В качестве демонстрации действия алгоритма вычислим в явном виде полином раундовой функции шифра PRESENT.

1 ГОСТ Р 34.12-2015. Информационная технология. Криптографическая защита информации. Блочные шифры Стандартинформ Москва 2015

Современные информационные технологии и ИТ-образование

Theoretical questions of computer science,computational mathematics, computer sciente enP cocnihi ve i nfsr rsation 2e chno logiet

8. Шифр PRESENT Процедура шифрования

PRESENT [19] является блочным шифром, имеющим структуру SP-сети с 32 раундами. Размер блока 64 бита. Размер ключа 80 бит или 128 бит. Каждый раунд состоит из трёх стадий. На первой стадии addRoundKey осуществляется побитовый XOR с раундовым ключом . Раундовый ключ имеет размер 64 бита и

является ф ункцией основног о ключа.

xt = xt ® Kt

На второй стадии sBoxLayer применяются 16 параллельных S-блоков, каждый из которых осуществляет перестановку . Таблица значений S-блока (в шестнадцатеричной нотации) представлена ниже:

Таблица1. S-блок шифра PRESENT Table 1. S-block cipher PRESENT

x 0 1 2 3 4 5 6 7 8 9 A B C D E F

S(x) C 5 6 B 9 0 A D 3 E F 8 4 7 1 2

На третьей стадии pLayer применяется линейная перестановка. Бит с номером заменяется на бит с номером согласно приведённой таблице:

Таблица2. L-преобразование шифра PRESENT Table 2. Cipher PRESENT L-transform

j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

P[j] 0 16 32 48 1 17 33 49 2 18 34 50 3 19 35 51

j 16 17 18 19 20 21 22 23 24 25 аб 27 28 2 9 30 31

P[j] 4 20 36 52 5 21 37 53 6 22 38 54 7 23 39 55

j 32 33 34 35 36 37 38 39 бО kl о 2 43 e 4 4т 4(5 417

P[j] 8 24 40 56 9 25 41 57 им 26 и2 и 11 27 км 59

j 48 49 50 51 52 53 54 55 56 5е 5и бн 60 61 62 нз

P[j] 12 28 44 60 13 29 45 61 141 30 46 62 к5 31 ир 63

Рис. 1. Общая схема шифра PRESENT Fig. 1. General scheme of cipher PRESENT

Выработка раундовых ключей

Как было отмечено выше, PRESENT может работать в двух режимах - с 80-битным и 128-битным ключом. Опишем процедуру генерации раундовых ключей из 80-битного ключа. Ключ сохраняется в регистре К = к79к78... к0. На i-ом раунде в качестве раундового ключа Kt выбираются 64 крайних левых бита регистра К. То есть Ki = к79... к16. После этого регистр К изменяется по следующим правилам

1. к79... к0 = к18к17... к20к19 - циклический сдвиг влево на 61 позицию;

2. к79к78к77к76 = S[k79k78k77k76] - применение S-блока к 4 крайним правым значениям;

3. к19к18к17к16к15 = к19к18к17к16к15 ® i - поб итовое сл ожение по модулю два с номером раунда.

9. Построение полинома раундовой функции шифра PRESENT

Рассмотрим стадию sBoxLayer раундовой функции. На этой стади и входное слово x разбивается на части по 4 бита, затем каждая такая часть подаётся на вход S-блоку. S-блок является перестановкой {0,1}4 ^ {0,1}4. S-блок может быть представлен как вектор из 4 булевых функции, каждая из которых имеет по 4 переменных.

S(X) = S(X1, Хг, Х3, Х4) = (S1(X1, Хг, Х3, Х4), S2(X1, хг, х3, х4),

S3(X1, Хг, Хз, Х4), S4(X1, Хг, Хз, Х4))

Полиномы Жегалкина булевых функций s2, s3, s4:

— v v v /ТЛ л/" л/" л/" /ТЛ v v v /ТЛ v v /ТЛ v /Т\ v /Т\ v /Т\ 1

1 — Л1Л2Л4 ^17 Л1Л3Л4 07 Л2Л3Л4 07 Л2Л3 07 Л4 07 Л3 ^17 &1 07 1

— v v v /Т\ v v v /ТЛ v v /ТЛ v v /ТЛ v v /ТЛ v /ТЛ v /ТЛ 1

2 — Л1Л2Л4 07 Л1Л3Л4 07 Л1Л3 tl7 Л1Л4 07 Л3Л4 07 Л2 Ш л1 Ш 1

— v v v /ТЛ v v v /ТЛ v v v /ТЛ v v /ТЛ v v /ТЛ v /ТЛ v

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3 — Л1Л2Л4 07 Л1Л3Л4 07 Л2Л3Л4 07 Л1Л2 Ш Л1Л3 Л3 07 Л1

о — V v /ТЛ v /ТЛ v /ТЛ v

04 — Л2Л3 Л4 У7 л.2 vt7 Л1

Vol. 14, no 3.281115 5SN 231T1473 Б^йо.СЗ.тби.ги

разованием и 1ппагтаПоп

линоме одной пе and 1Т-Ениа^1^1о п

Максимальная степень булевых функций, входящих в S-блок равна 3. Преобразование Р раундовой функции является линейным преобразованием и осуществляет перестановку битов после прохождения S-блоков. Из теоремы 3 следует, что в полиноме одной переменной над конечным полем GF(26°) этой функции не более чем Хе=0 С6к = 43745 мономов.

10. Практические результаты

Описанный метод был реализован на языке C. Вычисления проводились на системе со следующей конфигурацией: процессор 2xIntel Xeon E5-2630v4 2.2 ГГц, 10x2 core 64 ГБ DDR4 ECC, 480 ГБ SSD + 4 ТБ SATA. Результаты экспериментов для различных конечных полей представлены в таблице 3. Здесь d - максимальная степень булевой функции, составляющей функцию над конечным полем, 5^ - количество мономов (совпадает с размерностью матрицы).

Таблица 3. Результаты экспериментов Table 3. Experimental results

Поле d Время

2 11 < 1 секунды

2 37 < 1 секунды

3 93 < 1 секунды

2 137 < 1 секунды

3 697 1 секунда

2 529 < 1 секунды

3 5489 1 секунда

1 65 < 1 секунды

2 2081 31 секунда

3 43745 8 часов

Был вычислен полином раундовой функции шифра PRES-ENTнадполем=).Полиномимеетстепень16140901064495857664 и состоит из 43745 мономов, то есть все коэффициенты, которые могут присутствовать в многочлене, ненулевые. Полную запись полинома можно найти по ссылке https://raw.githubusercontent. com/SergeyBel/science/master/PresentPolynom/present.

Заключение

В работе представлен метод построения полинома одной переменной над конечным полем раундовых функций блочных шифров. Метод основан на обращении матрицы над конечным полем специального вида. Приведены оценки сложности представленного метода и результаты практических вычислений. Важно отметить, что метод эффективен для функций над конечным полем, у которых невелики степени составляющих их булевых функций. В этом случае возможно построение полиномов даже над полями достаточно большой размерности за приемлемое на практике время. Был построен полином для раундовой функции блочного шифра PRESENT

Благодарности

Автор благодарит научного руководителя Э.А. Применко за

внимание к проводимым исследованиям.

Список использованных источников

[1] Biham E., Shamir A. Differential cryptanalysis of DES-like cryptosystems // Journal of Cryptology. 1991. Vol. 4, issue 1. Pp. 3-72. DOI: 10.1007/BF00630563

[2] Matsui M. Linear cryptanalysis method for DES cipher // Workshop on the Theory and Application of Cryptographic Techniques. Springer, Berlin, Heidelberg, 1993. Pp. 386-397. DOI: 10.1007/3-540-48285-7_33

[3] Jakobsen T., Knudsen L.R. The interpolation attack on block ciphers // International Workshop on Fast Software Encryption. Springer, Berlin, Heidelberg, 1997. Pp. 28-40. DOI: 10.1007/BFb0052332

[4] Nyberg K., Knudsen L.R. Provable security against a differential attack // Journal of Cryptology. 1995. Vol. 8, issue 1.Pp. 27-37. DOI: 10.1007/BF00204800

[5] Rijmen V et al. The cipher SHARK // International Workshop on Fast Software Encryption. Springer, Berlin, Heidelberg, 1996. Pp. 99-111. DOI: 10.1007/3-540-60865-6_47

[6] Moriai S., Shimoyama T., Kaneko T. Interpolation attacks of the block cipher: SNAKE // International Workshop on Fast Software Encryption. Springer, Berlin, Heidelberg, 1999. Pp. 275-289. DOI: 10.1007/3-540-48519-8_20

[7] Althaus H, Leake R. Inverse of a finite-field Vandermonde matrix (Corresp.) // IEEE Transactions on Information Theory. 1969. Vol. 15, issue 1. Pp. 173-173. DOI: 10.1109/ TIT.1969.1054253

[8] Клейбанов С.Б., Норкин К.Б., Привальский В.Б. Обращение матрицы Вандермонда // Автоматика и телемеханика. 1977. № 4. С. 176-177. URL: http://mi.mathnet.ru/at7343 (дата обращения: 10.05.2018).

[9] Traub J.F. Associated polynomials and uniform methods for the solution of linear problems // Siam Review. 1966. Vol. 8, issue 3. Pp. 277-301. DOI: 10.1137/1008061

[10] Parker F.D. Inverses of Vandermonde matrices // The American Mathematical Monthly. 1964. Vol. 71, issue 4. Pp. 410-411. DOI: 10.2307/2313246

[11] Bjorck A., Pereyra V Solution of Vandermonde systems of equations // Mathematics of Computation. 1970. Vol. 24, issue 112. Pp. 893-903. DOI: 10.1090/S0025-5718-1970-0290541-1

[12] Gohberg I., Olshevsky V The fast generalized Parker-Traub algorithm for inversion of Vandermonde and related matrices // Journal of Complexity. 1997. Vol. 13, issue 2. Pp. 208-234. DOI: 10.1006/jcom.1997.0442

[13] Yan S., Yang A. Explicit algorithm to the inverse of Vandermonde matrix // 2009 International Conference on Test and Measurement. Hong Kong, 2009. Pp. 176-179. DOI: 10.1109/ICTM.2009.5413083

[14] Баев В.В. Некоторые нижние оценки на алгебраическую иммунность функций, заданных своими след-формами // Проблемы передачи информации. 2008. Т. 44, №. 3. С. 81104. DOI: 10.1134/S0032946008030071

[15] Кузьмин А.С., Марков В.Т., Нечаев А.А., Шишков А.Б. Приближение булевых функций мономиальными //

Современные информационные технологии и ИТ-образование

Theoretical questions of computer science, computational mathematics, computer science and cognitive information technologies

Дискретная математика. 2006. Т. 18, № 1. С. 9-29. DOI: 10.1515/156939206776241255

[16] КузьминА.С., Ноздрунов В.И. Взаимосвязь коэффициентов полинома над полем и веса булевой функции // Прикладная дискретная математика. 2014. № 4(26). C. 28-46. URL: https://elibrary.ru/item.asp?id=22636126 (дата обращения: 10.05.2018).

[17] Carlet C. Boolean Functions for Cryptography and Error-Correcting Codes / Y. Crama, P. Hammer (Eds.) // Boolean Models and Methods in Mathematics, Computer Science, and Engineering (Encyclopedia of Mathematics and its Applications). Cambridge: Cambridge University Press, 2010. Part III. Pp. 257-397. DOI: 10.1017/CBO9780511780448.011

[18] Feistel H. Cryptography and computer privacy // Scientific American. 1973. Vol. 228, issue 5. Pp. 15-23. DOI: 10.1038/ scientificamerican0573-15

[19] Bogdanov A. et al. PRESENT: An Ultra-Lightweight Block Cipher / P. Paillier, I. Verbauwhede (Eds.) // Cryptographic Hardware and Embedded Systems - CHES 2007. CHES 2007. Lecture Notes in Computer Science. Vol. 4727. Springer, Berlin, Heidelberg, 2007. Pp. 450-466. DOI: 10.1007/978-3-540-74735-2_31

Поступила 10.05.2018; принята в печать 15.08.2018; опубликована онлайн 30.09.2018.

References

[1] Biham E., Shamir A. Differential cryptanalysis of DES-like cryptosystems. Journal of Cryptology. 1991; 4(1):3-72. DOI: 10.1007/BF00630563

[2] Matsui M. Linear cryptanalysis method for DES cipher. Workshop on the Theory and Application of Cryptographic Techniques. Springer, Berlin, Heidelberg, 1993. Pp. 386-397. DOI: 10.1007/3-540-48285-7_33

[3] Jakobsen T., Knudsen L.R. The interpolation attack on block ciphers. International Workshop on Fast Software Encryption. Springer, Berlin, Heidelberg, 1997. Pp. 28-40. DOI: 10.1007/ BFb0052332

[4] Nyberg K., Knudsen L.R. Provable security against a differential attack. Journal of Cryptology. 1995; 8(1):27-37. DOI: 10.1007/BF00204800

[5] Rijmen V et al. The cipher SHARK. International Workshop on Fast Software Encryption. Springer, Berlin, Heidelberg, 1996. Pp. 99-111. DOI: 10.1007/3-540-60865-6_47

[6] Moriai S., Shimoyama T., Kaneko T. Interpolation attacks of the block cipher: SNAKE. International Workshop on Fast Software Encryption. Springer, Berlin, Heidelberg, 1999. Pp. 275289. DOI: 10.1007/3-540-48519-8_20

[7] Althaus H., Leake R. Inverse of a finite-field Vandermonde matrix (Corresp.) IEEE Transactions on Information Theory. 1969; 15(1):173-173. DOI: 10.1109/TIT.1969.1054253

bout the author:

[8] Kleibanov S.B., Norkin K.B., Prival'skii V.B. Inversion of the Vandermond matrix. Automation and Remote Control. 1977; 38(4):600-601. Available at: http://mi.mathnet.ru/eng/ at7343 (accessed 10.05.2018).

[9] Traub J.F. Associated polynomials and uniform methods for the solution of linear problems. Siam Review. 1966; 8(3):277-301. DOI: 10.1137/1008061

[10] Parker F.D. Inverses of Vandermonde matrices. The American Mathematical Monthly. 1964; 71(4):410-411. DOI: 10.2307/2313246

[11] Bjorck A., Pereyra V. Solution of Vandermonde systems of equations. Mathematics of Computation. 1970; 24(112):893-903. DOI: 10.1090/S0025-5718-1970-0290541-1

[12] Gohberg I., Olshevsky V. The fast generalized Parker-Traub algorithm for inversion of Vandermonde and related matrices. Journal of Complexity. 1997; 13(2):208-234. DOI: 10.1006/ jcom.1997.0442

[13] Yan S., Yang A. Explicit algorithm to the inverse of Vandermonde matrix. 2009 International Conference on Test and Measurement. Hong Kong, 2009. Pp. 176-179. DOI: 10.1109/ ICTM.2009.5413083

[14] Bayev V.V. Some lower bounds on the algebraic immunity of functions given by their trace forms. Problems of Information Transmission. 2008; 44(3):243-265. DOI: 10.1134/ S0032946008030071

[15] Kuzmin A.S., Markov V.T., Nechaev A.A., Shishkov A.B. Approximation of Boolean functions by monomial functions. Discrete Mathematics and Applications. 2006; 16(1):7-28. DOII: 10.15 15/156939206776241255

[16] Kuzmin A.S., Nozdrunov V.I. Relationship between the coefficients of polynomials over GF(2n) and weights of Boolean functions represented by them. Prikladnaya Diskretnaya Matemati-ka. 2014; 4(26):28-46. Available at: https://elibrary.ru/item. asp?id=22636126 (accessed 10.05.2018). (In Russian)

[17] Carlet C. Boolean Functions for Cryptography and Error-Correcting Codes. Y. Crama, P. Hammer (Eds.) Boolean Models and Methods in Mathematics, Computer Science, and Engineering (Encyclopedia of Mathematics and its Applications). Cambridge: Cambridge University Press, 2010. Part III. Pp. 257-397. DOI: 10.1017/CBO9780511780448.011

[18] Feistel H. Cryptography and computer privacy. Scientific American. 1973; 228(5):15-23. DOI: 10.1038/scientificamer-ican0573-15

[19] Bogdanov A. et al. PRESENT: An Ultra-Lightweight Block Cipher. P. Paillier, I. Verbauwhede (Eds.) Cryptographic Hardware and Embedded Systems - CHES 2007. CHES 2007. Lecture Notes in Computer Science. Vol. 4727. Springer, Berlin, Heidelberg, 2007. Pp. 450-466. DOI: 10.1007/978-3-540-74735-2_31

Submitted 10.05.2018; revised 15.08.2018; published online 30.09.2018.

Sergey A. Belov, graduate student, Faculty of Computational Mathematics and Cybernetics, Lomonosov Moscow State University (1, Leninskie gory, GSP-1, Moscow 119991, Russia), ORCID: https://orcid.org/0000-0002-7923-0129, [email protected]

This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0), which permits unrestricted reuse, distribution, and reproduction in any medium provided the original work is properly cited.

Modern Information Technologies and IT-Education

i Надоели баннеры? Вы всегда можете отключить рекламу.