Научная статья на тему 'О задаче определения линейной и аффинной эквивалентности подстановок'

О задаче определения линейной и аффинной эквивалентности подстановок Текст научной статьи по специальности «Математика»

CC BY
418
76
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ЛИНЕЙНАЯ ЭКВИВАЛЕНТНОСТЬ / АФФИННАЯ ЭКВИВАЛЕНТНОСТЬ / БЛОК ЗАМЕНЫ / ПОДСТАНОВКА / LINEAR EQUIVALENCE / AFFINE EQUIVALENCE / SUBSTITUTION

Аннотация научной статьи по математике, автор научной работы — Панкратов Иван Владимирович

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

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

About linear and affine equivalence of substitutions

The results of computer experiments with a software implementation of algorithms for determining the linear and affine equivalence of substitutions are presented. The detailed description of the algorithms is given. Experimental operation time of the algorithms is compared with the theoretical complexity of the problem.

Текст научной работы на тему «О задаче определения линейной и аффинной эквивалентности подстановок»

2013 Вычислительные методы в дискретной математике №3(21)

ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ В ДИСКРЕТНОЙ МАТЕМАТИКЕ

УДК 519.6

О ЗАДАЧЕ ОПРЕДЕЛЕНИЯ ЛИНЕЙНОЙ И АФФИННОЙ ЭКВИВАЛЕНТНОСТИ ПОДСТАНОВОК

И. В. Панкратов

Национальный исследовательский Томский государственный университет, г. Томск,

Россия

E-mail: ivan.pankratov2010@yandex.ru

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

Ключевые слова: линейная эквивалентность, аффинная эквивалентность, блок замены, подстановка.

В работе рассматривается задача определения линейной и аффинной эквивалентности подстановок, описанная в [1]. Подробно описаны и программно реализованы алгоритм LE определения линейной эквивалентности между двумя блоками замены, алгоритм LEC построения класса линейной эквивалентности и алгоритм AE определения аффинной эквивалентности.

1. Постановка задачи

Введём некоторые обозначения:

— Vn = {0,1}п — пространство булевых векторов размерности п;

— A ■ B(x) = A(B(x)) —композиция отображений A и B;

— пару векторов x,y Е Vn, такую, что A(x) = у, назовём точкой преобразования A и обозначим (х ^ у).

Отображение L : Vn ^ Vn назовём линейным преобразованием пространства Vn, если оно удовлетворяет свойству

Ух,у Е Vn L(x + у) = L(x) + L(y).

Такие преобразования удобно задавать матрицами размера n х п. Квадратная матрица L размера п х п задаёт линейное преобразование вектор-строк L(x) = x ■ L. Далее будем отождествлять матрицу и задаваемое ею отображение.

Преобразование называется аффинным, если его можно представить в виде A(x) = L(x) + с, где L(x) —линейное преобразование с матрицей L, а с — константа из Vn. Матрицу L будем называть матрицей аффинного преобразования. Известно, что аффинное преобразование обратимо, если его матрица невырождена.

Две обратимые подстановки Si и S2 называются линейно или аффинно эквивалентными, если существуют такие линейные или аффинные соответственно отображения A и B-1, что

B-1 ■ Si ■ A = S2.

Очевидно, что отображения A и B-1 обратимы, то есть их матрицы невырождены. Можно записать эквивалентное условие: существуют такие обратимые линейные или аффинные соответственно отображения A и B, что

Si ■ A = B ■ S2. (1)

Необходимо для пары заданных подстановок S1, S2 найти отображения A и B, удовлетворяющие (1), либо убедиться, что таких отображений нет.

2. Алгоритм определения линейной эквивалентности

Рассмотрим задачу определения линейной эквивалентности подстановок S1 и S2 на множестве Vn. Для решения этой задачи разработан алгоритм LE [1]. Данный алгоритм пытается построить невырожденные матрицы A и B, удовлетворяющие условию (1). В алгоритме используются две основные идеи:

1) «эффект иголки» (needlework effect), суть которого в том, что подбор части точек преобразования A позволяет найти точки преобразования B. В свою очередь, новые точки B позволяют получить новую информацию про точки A;

2) «экспоненциальный рост количества догадок» (exponential amplification of guesses), происходящий благодаря линейности преобразований. Этот эффект состоит в том, что, зная k линейно-независимых точек A, можно легко получить 2k линейных комбинаций этих точек.

Будем использовать следующие множества:

— Ca и С в — множества точек, для которых соответствующее преобразование (A или B) известно. По построению, эти множества линейно замкнуты, то есть содержат все линейные комбинации известных точек;

— множества Na и Nb содержат вновь полученные точки, для которых стали известны преобразования (A и B соответственно), но которые не являются линейными комбинациями точек из Ca и С в;

— Ua и Ub — множества неизвестных точек.

Множества прообразов точек в Ca, Na и Ua попарно не пересекаются и их объединение есть все векторное пространство Vn, то есть они представляют разбиение векторного пространства. То же верно и для множеств Св, Nb и Ub .С учётом этого свойства в программной реализации вместо множеств Ua и Ub использованы объединения Ca U Na и С в U Nb соответственно.

Суть алгоритма такова: пока имеются точки в Na, можно построить соответствующие им точки преобразования B. Если (x ^ у) —точка преобразования A, то (S2(x) ^ S1^)) должна быть точкой преобразования B, поскольку предполагается, что S1 ■ A = B ■ S2. Помимо этого, поскольку преобразования A и B линейны, можно получить точки преобразования B для всех линейных комбинаций известных точек преобразования A с участием точки из Na. Часть вновь полученных точек преобразования B может оказаться линейно независимой от его известных точек и попасть в множество Nb. Это происходит благодаря нелинейности преобразований S1 и S2. Аналогично по точкам из Nb можно получать точки преобразования A.

Когда множества Na и Nb пусты, необходимо заниматься подбором, то есть строить предположение о точке преобразования A и добавлять её в Na. Затем можно пытаться достроить преобразования A и B с помощью описанной выше процедуры. Когда найдено достаточное количество точек, строятся матрицы A и B и проверяется, удовлетворяют ли они свойству (1). Если да, то подстановки линейно эквивалентны и найдены соответствующие матрицы, в противном случае последнее предположение отвергается и строится следующее. Если все предположения исчерпаны, делается вывод, что подстановки не линейно эквивалентны.

Для описания алгоритма введём обозначения: F(W) = {F(x) : x Е W}, W + с = = {x + с : x Е W}, где W С Vn; с Е Vn; F : Vn ^ Vn. Для простоты изложения операции над точками будем обозначать как операции над прообразами, предполагая соответствующие преобразования над образами. Например, в шаге 3.3.2 под S2(x + Ca) предполагается {(S2(x + с) ^ S1(y + d)) : (с ^ d) Е СА}, а в шаге 3.3.3 под x + СА понимается {((x + с) ^ (A(x) + A(^)) : (с ^ A(c)) Е СА}.

Алгоритм LE

1. Na := Nb := 0; СА := Св := {(0 ^ 0)}.

2. Если S1(0) = 0 и S2(0) = 0, добавляем (S-1 (0) ^ S-1(0)) в СА и (S2(0) ^ S1(0)) в Св;

иначе проверяем, что S1(0) = S2(0) = 0, в противном случае подстановки не эквивалентны.

3. Повторяем в безусловном цикле:

3.1. Если последнее предположение отвергнуто, восстанавливаем состояния Ca и Св, какие были до предположения; полагаем Na := Nb := 0.

3.2. Если Na = Nb = 0:

3.2.1. Делаем предположение о значении A(x) для некоторого x Е Ua.

Если все возможные предположения были отвергнуты, то подстановки не эквивалентны.

3.2.2. Добавляем в Na точку (x ^ A(x)).

3.3. Пока Na = 0:

3.3.1. Выбираем некоторую точку (x ^ у) Е Na; полагаем Na := Na \ {(x ^ у)}.

3.3.2. Полагаем Nb := S2(x + СА) \ Св.

3.3.3. Полагаем СА := СА U (x + СА).

3.3.4. Если |Nb| + log |Св| > const ■п:

Если B — линейное обратимое отображение, порождаем A и проверяем условие (1) на всех точках, оставшихся в Ua и Ub; иначе отвергаем последнее предположение.

3.4. Пока Nb = 0:

3.4.1. Выбираем некоторую точку (у ^ z) Е Nb; полагаем Nb := Nb \ {(у ^ z)}.

3.4.2. Na := S2-1(y + Св) \ Ca.

3.4.3. Св := Св U (у + Св).

3.4.4. Если |Na| + log |СА| > const ■п:

Если A — линейное обратимое отображение, порождаем B и проверяем условие (1) на всех точках, оставшихся в Ua и Ub; иначе отвергаем последнее предположение.

Константа const влияет на быстродействие алгоритма. Очевидно, её значение должно быть меньше единицы, иначе условие может стать невыполнимым.

В случае, когда £1(0) = 0 и £2(0) = 0, как правило, достаточно подобрать одну точку преобразования А, после чего остальные точки находятся с помощью описанной процедуры. Если же £1(0) = £2(0) = 0, то необходимо перебирать, как минимум, две точки. Объём перебора составляет соответственно 2П и 22п. Самый трудоёмкий шаг проверки подобранных точек — построение матриц — имеет трудоёмкость порядка п3. Итоговая трудоёмкость получается соответственно 0(п32п) и 0(п322п).

3. Построение класса линейной эквивалентности

Класс линейной эквивалентности определяется каноническим представителем. От выбора канонического представителя класса зависит трудоёмкость его нахождения. В [1] в качестве представителя класса выбрана минимальная подстановка в смысле лексикографического упорядочивания таблицы значений. Там же даётся алгоритм нахождения этого представителя ЬЕС.

Алгоритм ЬЕС последовательно строит минимальную подстановку, эквивалентную заданной, то есть для подстановки £ строится минимальная подстановка Дз = В-1 • £ • А. Схема алгоритма аналогична алгоритму ЬЕ, используются похожие множества точек:

— Са и Св — множества точек одного преобразования, для которых известны соответствующие им точки другого преобразования. Например, если (х ^ у) —точка из СА, то в Св должна быть точка (х; ^ £ (у)) для некоторого X, и наоборот. Таким образом, для точек из этих множеств известны точки самого отображения Дз;

— множества Жа и Жв содержат точки, для которых ещё не известны соответствующие точки другого преобразования;

— Ца и ив — множества неизвестных прообразов.

Основной шаг алгоритма — достраивание преобразований А и В оптимальным образом с точки зрения минимизации итогового отображения Дз. Для этого, пока есть точки в Жа, то есть прообразы Дз, для которых ещё не определены образы, выбирается наименьший прообраз х Е Жа. Затем выбирается наименьший прообраз у Е Цв и определяются точки А и В так, чтобы добиться выполнения условия Дз(х) = у, после чего все множества обновляются с использованием свойства линейности отображений А и В. Если же множество Жа пусто, поступаем наоборот, выбирая наименьший образ у Е Жв и наименьший прообраз х Е Ца и вновь определяя точки А и В, добиваясь Дз(х) = у. Это продолжается до тех пор, пока не окажутся пустыми оба множества Жа и Жв. При этом либо станут полностью известны преобразования А и В, либо производится подбор какой-либо точки преобразования А. При подборе из всех полученных вариантов выбирается тот, что доставляет минимум отображению Дз.

Как и в случае алгоритма ЬЕ, теоретическая трудоёмкость алгоритма ЬЕС составляет 0(п32п) и 0(п322п) в зависимости от того, отображает ли подстановка £ ноль на ноль.

4. Определение аффинной эквивалентности

Простой алгоритм определения аффинной эквивалентности, основанный на алгоритме ЬЕ, подразумевает подбор констант аффинных преобразований А и В из условия (1). Перебор двух констант приводит к необходимости 22п раз выполнить процедуру ЬЕ, что даёт итоговую трудоёмкость 0(п323п).

Другой подход к этой задаче основан на алгоритме ЬЕС. Он позволяет решить задачу, выполнив алгоритм ЬЕС 2 • 2П раз: идея состоит в построении классов эквивалентности для подстановки £1(х + а) для всех а Е и для подстановки £2(х + Ь) для

всех Ь Е ^П. После этого достаточно проверить наличие пересечения между классами первой и второй подстановок.

Алгоритм АЕ

1. Для всех а Е находим ЬЕС(£1(х + а)) и помещаем в таблицу Т1.

2. Для всех Ь Е находим ЬЕС(£2(х) + Ь) и помещаем в таблицу Т2.

3. Если Т1 П Т2 = 0, то подстановки аффинно эквивалентны, иначе нет.

Сложность данного алгоритма равна 0(п322п), поскольку среди подстановок с константами найдётся ровно одна такая, которая отображает ноль на ноль.

5. Экспериментальные данные

Для получения статистических данных для каждого п от двух до десяти построено по 10000 подстановок на векторах размерности п. Для каждой размерности проведено по 1000 экспериментов каждого типа.

Для измерения времени работы алгоритмов использовалась функция АР1

Се^ЬгеаёТтеэ, которая считает время работы только одного потока, для большей объективности измерений и независимости от загруженности компьютера в целом.

В столбцах табл. 1, 2, 4 перечислены размерность векторного пространства ^П, над которым строились подстановки, среднее Тср и максимальное Ттах время работы алгоритма (в секундах), дисперсия времени работы и разброс, то есть отношение максимального времени к среднему. В табл. 1 приведены результаты измерения времени работы алгоритма ЬЕ над двумя случайно выбранными подстановками из общего множества. В табл. 2 приведены аналогичные результаты для алгоритма ЬЕС. Полужирным шрифтом выделены ячейки с неожиданно большими значениями.

Таблица 1 Время работы алгоритма ЬЕ

п Т ср Т тах Дисперсия Разброс

2 0,000234 0,0156 3,6Б-06 66,66667

3 0,001841 0,0624 2,88Б-05 33,89831

4 0,005242 0,093601 6,99Б-05 17,85714

5 0,011513 0,343202 0,000171 29,8103

6 0,023915 0,0624 8,35Б-05 2,609263

7 0,094552 0,280802 0,000633 2,969807

8 0,198948 0,561604 0,001218 2,822865

9 0,411624 0,483603 0,002031 1,174865

10 0,840861 0,967206 0,004319 1,150257

По табл. 1 и 2 можно заметить, что среднее время работы алгоритма ЬЕС меньше такового для алгоритма ЬЕ для всех размерностей, за исключением размерности 10, где среднее время работы алгоритма ЬЕС превышает таковое для алгоритма ЬЕ более чем вдвое. На векторах этой размерности самый долгий эксперимент длился 759,4753 с, хотя самый долгий из остальных — только 3,775224 с. Более детальный анализ показал, что в этом случае алгоритму понадобилось находить подбором три точки преобразования А. Дополнительные опыты показали, что при поиске канонического представителя класса эквивалентности подобное случается достаточно редко. В табл. 3 представлены результаты исследования длины подбора для задач различных размерностей; для каждого к от 1 до 4 указано количество экспериментов, в которых пришлось находить подбором к точек. Видно, что для задач размерности 10 бит подбор трёх точек

Таблица 2 Время работы алгоритма ЬЕС

п Т ср Т тах Дисперсия Разброс

2 0,000156 0,0156 2,4Ш—06 100

3 0,001123 0,0156 1,63Б-05 13,88889

4 0,00404 0,156001 9,06Б-05 38,61004

5 0,009641 0,234002 0,000507 24,27184

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

6 0,022995 0,951606 0,004902 41,38399

7 0,059046 3,650423 0,067703 61,82299

8 0,177467 19,39092 1,276042 109,2651

9 0,317727 1,107607 0,032235 3,486031

10 1,769223 759,4753 575,5924 429,2705

случается приблизительно в 1,2% случаев. Правый столбец таблицы содержит математическое ожидание М количества подстановок, сохраняющих ноль, среди десяти тысяч случайных подстановок указанной размерности. Это значение достаточно близко к количеству подстановок, вызвавших максимально длинный перебор.

Таблица 3 Количество точек, получаемых подбором

п к М

1 2 3 4

2 7481 2519 0 0 2500

3 4753 4287 960 0 1250

4 5380 3953 650 17 625

5 5721 3942 337 0 312,5

6 5968 3905 127 0 156,25

7 5990 3923 87 0 78,125

8 5956 4006 38 0 39,0625

9 6041 3941 18 0 19,53125

10 6020 3968 12 0 9,765625

11 6117 3876 7 0 4,882813

12 6060 3939 1 0 2,441406

Собрана статистика по алгоритму ЬЕС без учёта одного — самого длительного — эксперимента для каждой размерности. Результаты можно видеть в табл. 4. Далее такую статистику будем обозначать ЬЕС*. Можно заметить, что величина разброса в ней значительно меньше.

Сумма величин среднего времени работы алгоритма ЬЕ составила 1,58873 с, ЬЕС — 2,36141 с, а ЬЕС* — 1,57799 с. Можно видеть, что значения для ЬЕ и ЬЕС* близки. Они были использованы для нормирования значений времени с тем, чтобы проверить соответствие значений реальных измерений времени работы алгоритма их оценке 0(п32п). В табл. 5 приведены отношения среднего времени работы алгоритма к теоретической оценке, нормированной по сумме значений.

Таблица 4 Время работы алгоритма ЪЕС без учёта самых длительных экспериментов

n T ср T max Дисперсия Разброс

2 0,000141 0,0156001 2,17E-06 111

3 0,001109 0,0156001 1,61E-05 14,07042254

4 0,003888 0,0468003 6,75E-05 12,03614458

5 0,009416 0,1716011 0,000457 18,2238806

6 0,022065 0,7020045 0,004042 31,81528662

7 0,055451 3,6192232 0,054834 65,26837511

8 0,158234 18,798121 0,907054 118,7994698

9 0,316937 0,936006 0,031641 2,953291289

10 1,010758 3,7752242 0,324316 3,735041018

Таблица 5

Сравнение экспериментальных значений времени работы с теоретической оценкой

n LE LEC

2 7,324469 3,285201

3 8,536171 3,504215

4 5,127128 2,65896

5 2,882911 1,624204

6 1,732779 1,120923

7 2,157124 0,906304

8 1,520328 0,912413

9 1,104615 0,573643

10 0,822492 1,164306

Заключение

Практические измерения показали, что для алгоритма LE разброс значений времени работы, то есть максимальное превышение среднего времени работы для одиночного опыта, очень невелик — около 15-17% для подстановок размерности 9 и 10 битов. Для алгоритма LEC разброс может превышать 40000%.

ЛИТЕРАТУРА

1. Biryukov A., De Canniere C., Braeken A, and Preneel B. A toolbox for cryptanalysis: linear and affine equivalence algorithms // EUROCRYPT 2003. LNCS. 2003. V. 2656. P. 33-50.

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