Анализ стойкости современных криптосистем с использованием технологии MPI

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 15.04.2019
Размер файла 252,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Анализ стойкости современных криптосистем с использованием технологии MPI

Ищукова Е.А., Алексеев Д.М.

Инженерно-технологическая академия

Южного федерального университета, Таганрог

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

Ключевые слова: криптография, слайдовая атака, слайдовая пара, параллельные вычисления, MPI, Магма, ГОСТ 28147-89.

С 2016 года в России в силу вступит новый криптографический стандарт ГОСТ Р 34.12-2015 "Информационная технология. Криптографическая защита информации. Блочные шифры" [1, с. 2]. На сегодняшний день известно, что в его состав войдут два алгоритма шифрования: ныне действующий стандарт шифрования ГОСТ 28147-89 (переименован в «Магма») и новый блочный алгоритм шифрования Кузнечик.

Магма представляет собой симметричный блочный алгоритм шифрования с размером блока входных данных 64 бита, секретным ключом 256 бит и 32 раундами шифрования.

Подробнее ознакомиться с работой алгоритма шифрования данных Магма можно в [1, с. 9].

В связи с тем, что шифр «Магма» вошел в состав нового стандарта шифрования, его анализ является актуальной задачей. Исходя из того, что принцип работы шифра «Магма» аналогичен алгоритму работы ГОСТ 28147-89, анализ первого с точки зрения таких популярных методов атак как дифференциальный, линейный и алгебраический криптоанализ изучен достаточно глубоко, в то время как слайдовая атака применительно к данному шифру рассмотрена не так основательно в силу своего относительно недавнего появления. В связи с этим рассмотрение именно слайдовой атаки применительно к шифру «Магма» наиболее актуально.

Метод слайдовой атаки впервые был предложен А. Бирюковым и Д. Вагнером [2, с. 245; 3, с. 589] и основан на гомогенности рассматриваемого шифра. Идея заключается в том, что можно сопоставить один процесс зашифрования с другим таким образом, что один из процессов будет «отставать» от другого на один раунд. Для Магмы это теоретически возможно в 232 случаях из 2256, когда для зашифрования данных будет использоваться один и тот же раундовый подключ, что возможно, так как в Магме отсутствует функция выработки раундовых подключей. Таким образом, помимо актуальности и современности слайдовой атаки, есть и практический аспект ее применения к шифру «Магма». Подробнее о применении слайдовой атаки можно прочесть в работе [6, с. 43].

Исходя из вышесказанного, целью нашей работы является разработка алгоритма поиска слайдовых пар применительно к алгоритму шифрования «Магма», а также оценка временных характеристик как процесса шифрования, так и самого поиска слайдовых пар.

Решение данных задач предполагает выполнение следующих этапов исследования:

1. Реализация алгоритма шифрования данных «Магма»;

2. Реализация параллельного алгоритма шифрования данных;

3. Разработка и реализация параллельного алгоритма поиска слайдовых пар.

В ходе исследования нами была рассмотрена задача поиска слайдовой пары для случая, когда в алгоритме шифрования Магма используется один и тот же раундовый подключ, который используется в каждом из 32 раундов шифрования. Поиск слайдовой пары путем полного перебора правой части парного текста представлен на рис. 1. Сначала необходимо зафиксировать один текст (входную 64-х битную последовательность) и левую часть парного текста, равную правой (исходной) части фиксированного текста. Правая часть парного текста определяется путем полного перебора. Затем обе входные последовательности для каждой перебираемой правой части парного текста шифруются с помощью блочного алгоритма шифрования Магма. После чего проверяется критерий правильности правой части (что позволяет определить, является ли исходная пара текстов слайдовой парой), а именно: левая часть шифр-текста, полученная для фиксированного текста, должна быть равна правой части шифртекста, полученной для парного текста, в котором перебирается правая часть.

Рисунок 1. Схема поиска слайдовой пары

криптографический защита шифрование слайдовый

В результате был разработан и реализован алгоритм, состоящий из следующих шагов:

1. Зафиксировать один текст (входную 64-х битную последовательность) и левую часть парного текста, равную правой (исходной) части фиксированного текста.

2. Определить правую часть путем полного перебора ее возможных значений (от 0х00000000 до 0хffffffff).

3. Зашифровать фиксированный текст, а также парный текст (с перебираемой на текущем этапе правой частью).

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

5. После полного перебора правой части парного текста сформировать результат о поиске слайдовых пар.

Рассмотрим пример слайдовой пары.

Пусть, исходный открытый фиксированный текст представляет собой следующую 64-х битовую последовательность: 0хfedcba9876543210, где 0хfedcba98 - левая часть, а 0х76543210 - правая часть фиксированного текста. При ключе шифрования К = 0хffeeddccffeeddccffeeddccff eeddccffeeddccffeeddccffeeddccffeeddcc слайдовой парой к данному фиксированному тексту будет являться следующая 64х битовая последовательность: 0х7654321028da3b14. Проверим, так ли это. Зашифруем исходный фиксированный текст. Результат зашифрования представляет собой: 0хef04eacbbad969b9. Теперь зашифруем парный текст. Результат зашифрования представляет собой: 0xeb2e2421ef04eacb. Проверим критерии отбора слайдовых пар:

1. Левая часть парного текста равна правой (исходной) части фиксированного текста (0х76543210).

2. Левая часть шифр-текста, полученная для фиксированного текста, равна правой части шифр-текста, полученной для парного текста (0хef04eacb).

После того, как слайдовая пара найдена, перед криптоаналитиком стоит задача поиска самого ключа шифрования. В связи с тем, что в нашем распоряжении имеются, по сути, два текста, шифрование одного из которых, «отстает» от шифрования другого ровно на один раунд, мы можем проанализировать вход функции F и ее выход (правая часть фиксированного текста и правая часть текста с перебираемой правой частью соответственно). Зная выход функции F, мы можем осуществить инверсную сдвиговую операцию (циклический сдвиг битов вправо на 11 разрядов). Затем, используя инверсные S-блоки, получить результат сложения по модулю 232 с раундовым подключом. Зная этот результат и вход в функцию F, мы можем применить операцию вычитания по модулю 232, и получить, таким образом, раундовый подключ.

Рассмотрим теперь реализацию параллельного алгоритма с использованием технологии MPI для поиска слайдовых пар текстов, необходимых для проведения слайдовой атаки на алгоритм шифрования Магма.

MPI - это интерфейс передачи сообщений (Message Passing Interface), ориентированный, в первую очередь, на разработку программ для систем с распределенной памятью. По сути, MPI представляет собой библиотеку функций и описания типов данных, предназначенную для распараллеливания программ, написанных на языках программирования Си и Фортран. Средства библиотеки MPI направлены на облегчение взаимодействия (которое сводится к обмену данными и синхронизации) процессов параллельной программы [6, с. 99].

Одним из достоинств программ, разработанных с использованием библиотеки MPI, является возможность их использования как на специально оборудованном кластере, так и на кластере, состоящем из обычных ПЭВМ, связанных между собой сетью [6, с. 99].

Пожалуй, самой распространенной реализацией MPI является MPICH. Данная реализация разработана исследователями из Аргонской национальной лаборатории США (Argonne National Laboratory, USA). Данная библиотека является свободно распространяемой [6, с. 100]. Важным достоинством использования данной реализации является тот факт, что существуют версии данной библиотеки для всех популярных операционных систем. Именно поэтому для выполнения поставленной задачи мы используем пакет MPICH.

Рассмотрим применимость данной технологии к параллельному поиску правых частей парных текстов. В начале работы программы осуществляется шифрование фиксированного текста. После того, как инициализирована библиотека MPI, выполняется функция определения числа процессов size и функция определения рангов (идентификаторов) myrank процесса.

MPI_Init(&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD,

&myrank);

MPI_Comm_size(MPI_COMM_WORLD, &size);

Затем каждый процесс получает свой диапазон для вычислений, а именно, правую часть парного фиксированному текста. Левая часть парного текста, как упоминалось нами ранее, равна правой части фиксированного текста. Правая часть парного текста программно определяется, как сумма ранга (идентификатора) процесса и числа процессов. Таким образом, правая часть парного текста будет перебираться параллельно всеми процессами в рамках своего диапазона. Тот факт, что каждый процесс имеет свой уникальный ранг, и то, что нумерация ранга начинается с нуля, обеспечит полный неповторяющийся для разных процессов перебор правой части. После того, как процесс обработал и проверил на «слайдовость» текущую правую часть, он увеличивает ее значение на количество процессов. Описанное выше программно реализовано следующим образом:

right_slaid = myrank;

while(right_slaid <= (0xffffffff

- size + 1))

{

right_slaid_result =

find_slaid(right_slaid);

right_slaid = right_slaid +

size;

if(right_slaid_result!= 0)

{

fprintf(slaid_file,

"Slaid pair: %x \n", right_slaid_result);

fflush(slaid_file);

}

}

Наглядно алгоритм распараллеливания процесса поиска слайдовых пар представлен на рис. 2.

Рисунок 2. Алгоритм распараллеливания

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

Экспериментальные данные при шифровании блоков алгоритмом Магма получены с использованием Intel Core i5 - 3320М CPU, 2.60 GHz, 4 Gb RAM, 2 ядра, 4 логических процессора. Так, шифрование одного блока данных осуществляется около 0.000007 сек. Результаты измерений времени для различного количества входных блоков представлены в таблице 1.

Таблица 1. Результаты измерений времени для различного кол-ва входных блоков

Количество входных блоков

Время шифрования, мсек

1

0.007

512

2.967

1024

5.706

4096

22.785

8192

47.713

16384

91.175

По полученным результатам построен график зависимости времени от количества шифруемых входных блоков. График представлен на рис. 3.

Рисунок 3. График зависимости времени от количества шифруемых входных блоков

Теперь проведем временную оценку шифрования 16384 блоков с помощью алгоритма «Магма» для разного количества процессов (параллельное вычисление). Так, например, шифрование 16384 блоков одним процессом занимает 91.175 мсек. Результаты измерений времени для различного количества процессов представлены в таблице 2.

Таблица 2. Результаты измерений времени шифрования для различного кол-ва процессов

Количество процессов

Время шифрования, мсек

1

91.175

2

48.698

4

37.797

8

22.674

16

12.368

По полученным результатам построен график зависимости времени от количества процессов при шифровании 16384 блоков данных. График представлен на рис. 4.

Рисунок 4. График зависимости времени шифрования от количества процессов

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

Таблица 3. Результаты измерений времени поиска слайдовых пар для различного кол-ва процессов

Количество процессов

Время поиска, сек

1

26900,979194

2

16765.134295

4

9913.899299

8

5943.140347

По полученным результатам построен график зависимости времени поиска слайдовых пар от количества процессов. График представлен на рис. 5.

Рисунок 5. График зависимости времени поиска слайдовых пар от количества процессов

Стоит подчеркнуть, что все вышеперечисленные экспериментальные данные были получены на одной ЭВМ (Intel Core i5 - 3320М CPU, 2.60 GHz, 4 Gb RAM, 2 ядра, 4 логических процессора), хотя и с применением параллельно работающих процессов. Для проведения другого эксперимента мы объединили девять ЭВМ (каждая из которых использует для вычислений два ядра) в локальную сеть и протестировали разработанный алгоритм поиска слайдовых пар путем полного перебора правой части фиксированного текста. Результаты измерений времени для каждого из процессов представлены в таблице 4.

Таблица 4. Результаты измерений времени поиска слайдовых пар для разных процессов

Имя машины - номер процесса

Время поиска

01 - 0

2587.870496

01 - 9

2662.572554

03 - 1

2652.869916

03 - 10

2584.051360

04 - 2

2657.906713

04 - 11

2647.533539

05 - 3

2604.300599

05 - 12

2643.880999

06 - 4

2592.802551

06 - 13

2758.090014

11 - 5

2562.219539

11 - 14

2485.150132

12 - 6

2023.647694

12 - 15

1933.766277

13 - 7

4397.100301

13 - 16

3916.700942

14 - 8

2593.235726

14 - 17

2653.619990

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

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

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

Очевидно, что наиболее эффективный результат поиска слайдовых пар с точки зрения временных затрат на этот поиск был получен при параллельной работе девяти ЭВМ (18 процессов), объединенных в сеть.

Разработанный параллельный алгоритм является достаточно эффективным с точки зрения реализации, но сам подход к поиску слайдовых пар основывается на допущении (однотипности подключей). В связи с этим наши дальнейшие исследования в области слайдовой атаки на шифр «Магма» связаны с разработкой алгоритма поиска слайдовых пар для 2-х и 4-х однотипных подключей, а затем его применение к анализу полного шифра.

Библиографический список

1. Криптографическая защита информации Блочные шифры // URL: https://www.tc26.ru/standard/gost/GOST_R_3412-2015.pdf

2. Бирюков А., Вагнер Д. Слайдовые атаки // Труды быстрого программного шифрования, 1999, №1636, Лекции в области компьютерных наук (с. 245 - 259).

3. Бирюков А., Вагнер Д. Расширенная слайдовая атака. Достижения в криптологии // Еврокрипт, 2000, №1807, Лекции в области компьютерных наук (с. 589-606).

4. Бабенко Л.К. Ищукова Е.А. Современные алгоритмы блочного шифрования и методы их анализа // Москва, «Гелиос АРВ», 2006. 376 с.

5. Бабенко Л.К., Ищукова Е.А. Криптоанализ современных систем защиты информации Актуальные аспекты защиты информации. Монография. // Т.: Изд-во ТТИ ЮФУ, 2011. С. 102-180.

6. Бабенко Л.К. Ищукова Е.А. Сидоров И.Д. Параллельные алгоритмы для решения задач защиты информации. // М.: Горячая линия Телеком, 2014. 304 с.

7. Бабенко Л.К., Ищукова Е.А., Сидоров И.Д. ПРИМЕНЕНИЕ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ ПРИ РЕШЕНИИ ЗАДАЧ ЗАЩИТЫ ИНФОРМАЦИИ // Программные системы: теория и приложения. 2013. Т. 4. № 3-1 (17). С. 25-42.

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.