Анализ стойкости современных криптосистем с использованием технологии 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
...Подобные документы
Количественная оценка стойкости пароля. Создание программы на базе разработанного алгоритма. Экспериментальная проверка количественных оценок стойкости пароля. Понятие и назначение интерфейса. Методы защиты от несанкционированного доступа к информации.
курсовая работа [22,8 K], добавлен 13.11.2009Определение энтропии как меры стойкости паролей, способ противодействия их взлому. Вычисление веса и информационной емкости пароля с помощью SeaMonkey, Password Strength Tester. Алгоритм работы дежурного и вспомогательного анализаторов от Microsoft.
курсовая работа [632,8 K], добавлен 18.06.2011Принцип программной реализации классических криптографических методов. Метод шифрования с использованием таблицы Виженера. Создание текстового редактора "Блокнот", содержащего методы шифрования. Вербальный алгоритм и программа для методов шифрования.
курсовая работа [2,0 M], добавлен 20.01.2010Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.
курсовая работа [795,7 K], добавлен 02.12.2014Симметричные криптосистемы; алгоритмы шифрования и дешифрования данных, их применение в компьютерной технике в системах защиты конфиденциальной и коммерческой информации. Основные режимы работы алгоритма DES, разработка программной реализации ключа.
курсовая работа [129,6 K], добавлен 17.02.2011Разработка программного средства для анализа значений хэш-функций с целью формальной оценки стойкости пароля. Проблема слабых паролей. Оценка ущерба, возникающего вследствие атаки на защищаемый объект. Метод поиска по словарям и "радужным таблицам".
дипломная работа [1022,5 K], добавлен 10.06.2013Реализация криптографического алгоритма шифрования и дешифрования с использованием шифра Виженера. Понятие и суть полиалфавитного шифра. Метод полиалфавитного шифрования буквенного текста с использованием ключевого слова. Взлом полиалфавитных шифров.
курсовая работа [863,0 K], добавлен 21.04.2012История возникновения алгоритма симметричного шифрования, условия и особенности его применения на современном этапе. Принципы и функции исследуемой технологии. Анализ главных преимуществ и недостатков использования алгоритма, оценка его уязвимости.
курсовая работа [301,9 K], добавлен 29.10.2017Предотвращение угроз информационной безопасности. Использование криптографических методов защиты в информационных системах. Разработка блока обратного преобразования для системы нелинейного шифрования на основе операции возведения в степень по модулю.
дипломная работа [565,1 K], добавлен 01.07.2011Изучение классических криптографических алгоритмов моноалфавитной подстановки и перестановки для защиты текстовой информации. Анализ частоты встречаемости символов в тексте для криптоанализа классических шифров. Сущность одноалфавитного метода шифрования.
лабораторная работа [2,8 M], добавлен 25.03.2015Современные физические и законодательные методы защиты информации. Внедрение системы безопасности. Управление доступом. Основные направления использования криптографических методов. Использование шифрования, кодирования и иного преобразования информации.
реферат [17,4 K], добавлен 16.05.2015Алгоритм ГОСТ 28147-89 симметричного шифрования на основе сети Фейстеля, основные режимы его работы. Атаки на системы защиты информации. Метод грубой силы. Атаки класса "встреча посередине". Характеристики ГОСТ 28147-89 и американского шифра Rijndael.
курсовая работа [510,7 K], добавлен 17.01.2012Краткая история развития криптографических методов защиты информации. Сущность шифрования и криптографии с симметричными ключами. Описание аналитических и аддитивных методов шифрования. Методы криптографии с открытыми ключами и цифровые сертификаты.
курсовая работа [1,2 M], добавлен 28.12.2014Исследование системы распределения ключей на основе линейных преобразований. Описание компонентов сети конфиденциальной связи. Характеристика отечественного алгоритма шифрования данных. Обзор результатов расчетов криптостойкости алгоритма шифрования.
контрольная работа [56,5 K], добавлен 26.09.2012Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.
курсовая работа [101,1 K], добавлен 09.03.2009Алгоритмы и стандарты криптографических преобразований. Криптографические преобразования на основе специального программного обеспечения. Метод криптографических преобразований на основе жесткой логики. Аналоги модуля шифрования и дешифрования данных.
курсовая работа [971,6 K], добавлен 30.01.2018Характеристика методов поиска информации в Интернете, а именно - с использованием гипертекстовых ссылок, поисковых машин и специальных средств. Анализ новых интернет ресурсов. История возникновения и описание западных и русскоязычных поисковых систем.
реферат [17,2 K], добавлен 12.05.2010Основы методологии мониторов и устройства жесткого диска. Планирование работы дисков с использованием мониторов. Теоретические основы параллельного программирования. Микропроцессорная реализация параллельных процессов на основе технологии мониторов.
дипломная работа [3,5 M], добавлен 08.07.2012Понятие шифров сложной замены. Шифры сложной замены называют многоалфавитными. Данная подстановка последовательно и циклически меняет используемые алфавиты. Понятие схемы шифрования Вижинера. Стойкость шифрования методом гаммирования и свойство гаммы.
реферат [52,2 K], добавлен 22.06.2010Исследование элементов эллиптических кривых, необходимых для реализации криптографических протоколов. Изучение алгоритмов арифметики точек эллиптической кривой и способов генерации кривых для криптографических алгоритмов. Описание алгоритмов шифрования.
курсовая работа [371,2 K], добавлен 07.08.2012