Введение 4
Глава 1. Алгоритмы шифрования для Больших Данных 8
1.1 Направление Big Data 8
1.2 Реализация алгоритма семейства DES 9
1.2.1 Сеть Фейстеля 9
1.2.2 Описание алгоритмов семейства TripleDES 14
1.2.3 Основная функция шифрования 17
1.2.4 Генерация ключей 19
1.2.5 Окончание цикла 21
1.2.6 Расшифровка 21
1.3 Описание алгоритма шифрования AES 22
Глава 2. Тестирование алгоритмов шифрования на разных архитектурах процессоров
AMD и Intel 27
2.1 Отличия процессоров AMD от процессоров Intel 27
2.2 Программный комплекс шифрования на основе алгоритмов семейства DES 29
2.2 Тестирование алгоритмов шифрования семейства DES на процессорах Intel и AMD.
2.2.1 Тестирование на процессорах ПК 35
2.2.2 Тестирование на процессорах серверов 41
2.3 Производительность шифрования алгоритма AES 47
Глава 3. Статистические тесты NIST 50
3.1 Частотные тесты 50
3.1.1 Частотный побитовый тест (Frequency) 50
3.1.2 Частотный блочный тест (BlockFrequency) 51
3.1.3 Тест на одинаковые идущие подряд биты (Runs) 51
3.1.4 Тест на подпоследовательности (Serial) 51
3.1.5 Тест оценки приблизительной энтропии (Approximate Entropy) 52
3.2 Поиск шаблонов 52
3.2.2 Тест на встречающиеся непересекающиеся шаблоны (Non overlapping
template) 52
3.2.3 Тест на встречающиеся пересекающиеся шаблоны (Overlapping template) ....52
3.2.4 Универсальный тест Мауэра (Universal test) 53
3.2.5 Тест на самую длинную последовательность из единиц в блоке (Longest Run)53
3.3 Тест рангов бинарных матриц (Rank test) 53
3.4 Спектральный тест (FFT) 53
3.5 Тест на линейную сложность (Linear Complexity) 54
3.6 Поиск частичных сумм битов последовательности 54
3.6.2 Тест кумулятивных сумм (Cumulative Sums) 54
3.6.3 Тест на произвольные отклонения (Random Excursions) 54
3.6.4 Разновидность теста на произвольные отклонения (Random Excursions
Variant) 55
3.7 Результаты 56
Заключение 58
Список литературы
Любое новшество в сфере информационных технологий, открывающие возможности для решения одних социальных вопросов, определяет наше будущее в развитии личности и общества. Но вместе с этим возникает обострение старых и порождение новых проблем. Именно это становится источником информационных опасностей.
Как передать конфиденциальную информацию нужному адресату? Размышляя над этим, нетрудно прийти к выводу, что если использовать общедоступный канал связи, то передавать по нему нужную информацию необходимо в преобразованном виде таким образом, чтобы восстановить ее смог только получатель. Здесь речь заходит о криптографии. В последние десятилетия она широко используется во всех сферах жизни, где есть информационные технологии.
За последние десятилетия наблюдается скачкообразный рост хранимой, обрабатываемой и передаваемой информации, все больше она принимает централизованный характер в виде баз данных и серверных файловых хранилищ. Вместе с тем растёт из года в год вычислительная мощность компьютеров, развиваются сетевые технологии, объединяющие локальные сети в глобальные. По этим причинам растут и требования к быстроте обработки ин-формации, т.е. производительности задействованных при этом процессоров. Высокие требования, предъявляемые к безопасности информации, хранимой в базах данных на серверах, и ограниченные возможности средств управления базами данных по ее обеспечению, заставляют обратиться к хранению информации в базе в зашифрованном виде - ведь передаваемую информацию по каналам связи необходимо защищать во избежание утечки конфиденциальных данных. Это, в свою очередь, порождает проблему быстрого переноса больших объемов данных в базу и их последующего извлечения.
В современное время это становится особенно важным, так как информационные технологии приобретают характер, описываемые термином Big Data - совокупностью подходов, инструментов и методов обработки структурированных и неструктурированных данных огромных объёмов. При обработке и шифровании таких данных наиболее остро встает вопрос о производительности систем и методах её повышения.
Актуальность данной работы заключается в том, что алгоритм шифрования Triple DES и AES применяются широко в индустрии электронных платежей и активно разрабатываются и публикуются стандарты, основанные на них. Micrоsоft ОнеПЫе, Micrоsоft Оutlооk 2007 и Micrоsоft Systеm СеНег Cоnfigurаtiоn Манадег 2012 используют TripleDES для защиты данных системы и пользователей с помощью паролей. Известных криптографических атак, применимых на практике, на TripleDES не существует.
Главные задачи информационной безопасности, которые могут быть решены с помощью криптографии:
• совместное использование ключевой информации с предшествующей установкой защищенного обмена данными;
• определение сторон, установление связи;
• аутентификация клиентов для доступа к информационным ресурсам.
15 мая 1973 года NBS (Национальное Бюро Стандартов, сейчас - NIST - Национальный Институт Стандартов И Технологий) опубликовала запрос в Федеральном реестре для алгоритма шифрования, который будет соответствовать соответствующим требованиям:
• обеспечение высокого уровня безопасности, используя при этом небольшой ключ для шифрования и дешифрования;
• простой для понимания;
• независящий от секретности алгоритма;
• гибкость и эргономичность;
• эффективность и универсальность.
Позже, в 1974 году, компания IBM представила свой алгоритм шифрования «Lucifer», однако он был модифицирован в АНБ (Агентство Национальной Безопасности) и 23 ноября 1976 года был представлен новый алгоритм шифрования - DES (Data Encrypt Standart). Он был принят и введён в использование в 1978 году.
Однако из-за быстрого развития компьютерной техники, DES стал уязвим к атакам методом перебора за счёт небольшой длины ключа. Вслед за ним, было принято решение создать новый стандарт шифрования, так называемый Triple DES. Суть заключается в том, что шифрование алгоритмом DES происходит в три цикла, с тремя разными ключами (или двумя, в зависимости от режима). Очевидно, что ключ увеличен в три раза, что исключает атаку методом перебора, но и алгоритм работает в 3 раза медленнее.
В 1998 году создан новый стандарт шифрования - алгоритм AES, приятный в 2002 году, на замену алгоритму DES. AES имеет более простую математическую реализацию, что должно его делать более производительнее, однако известные криптоаналитики утверждают, что именно из-за этого он более уязвим. AES широко используется в современное время во многих программных средствах.
Целью работы является анализ производительности алгоритмов шифрования для архитектур процессоров AMD и Intel.
Задачи:
• Реализовать алгоритмы DES и AES
• Реализовать 4 метода конфигурации алгоритма TripleDES
• Реализовать многопоточное шифрование на сервере
• Оценить производительность шифрования и дешифрования алгоритмов для разных архитектур.
• Оценить качество полученных шифрованных данных с использованием статистических тестов NIST.
В ходе работы были изучены методы шифрования DES, 3DES и AES, которые были успешно реализованы на языке программирования С++ в среде разработке Visual Studio 2013.
Из полученных результатов тестирования на процессорах различных архитектур было установлено, что при сходных характеристиках процессора решающую роль для его вычислительных функций играют тип архитектуры, разрядность, размер кэша 2-ого и 3-ого уровня и количество потоков шифрования.
Для операций поточного шифрования архитектура процессора Intel оказалась производительнее архитектуры AMD. Однако можно заметить следующее: дешифрование на процессорах AMD происходит быстрее, чем шифрование с разницей в среднем 0,2 секунды, а для Intel наоборот. Вероятно, это связано с функциями дополнения блоков шифрования при шифровке, и разных работах деструкторов в программе. Также можно заметить, что вычисления для систем с разрядностью регистров x64 оказались намного производительнее вычислений, проведенных для систем с разрядностью регистров процессора x32, прирост в среднем оставил в 4 раза. Это обусловлено не только в два раза большей разрядностью, но и наличием в х64 регистров общего назначения для передачи нескольких аргументов функций для снижения времени задержки обращения к более медленной памяти.
Получили очевидный результат при сравнивании DES и TripleDES: DES работает в 3 раза быстрее, чем Triple DES. Но если сравнивать их криптоустойчивость, то Triple DES за счёт утроенной длины ключа окажется безопаснее, нежели DES c ключом 56 бит, которые можно перебрать за 256 раундов.
Сравнивая методы TripleDES (DES-EEE2, DES-EDE2 и DES-EEE3, DES-EDE3), получили, что DES-EEE2 и DES-EDE2 оказались немного производительнее по времени шифрования в среднем на 0,3 секунды за счёт использования укороченного ключа. Однако на практике рекомендуется использовать более криптоустойчивые DES-EEE3, DES-EDE3.
Количество потоков шифрования напрямую влияет на зависимость размера исходного сообщения от времени шифрования. У Intel Xeon E5520 время одновременной обработки данных объёмом от 1 до 6 МБ заняло сопоставимо малое время при максимальном возможном количестве потоков (от 0,3 до 0,5 секунд). У AMD Opteron 2356 такой участок меньше - от 1 МБ до 3 МБ (от 0,4 до 0,5 секунд). Характер также определился кэшем процессора, у Intel Xeon E5520 он был в 4 раза больше, чем у AMD Opteron 2356, что и от-разилось на результатах в виде увеличения линейного участка малых значений с минимальным угловым коэффициентом. Получили максимальную скорость шифрования алгоритмом TripleDES на процессоре Intel Xeon E5520, она составила 12МБ/с, у AMD Opteron 2356 - 6МБ/с, что приемлемо для ис-пользования.
Самый оптимальный метод шифрования из представленных по результатам системы тестов NIST среди алгоритмов семейства DES - TripleDES- EDE3, поскольку именно этим методом шифрование и расшифрование про-исходит в рамках приемлемой скорости шифрования, а также зашифрованные данные получают наименьшую статистическую связь, средний показатель прохождения критериев тестов NIST 90,7%. Однако принятый новый стандарт шифрования AES по скорости шифрования и проведенным тестам NIST заметно опережает DES-алгоритмы, его усредненный результат статистических тестов составил 95,3%.
Результаты, полученные в работе, можно применить на практике при обработке больших размеров данных.
1. Специальное издание НИСТ 800-67 Ревизия 1: Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher, 2012 - 34 с.
2. Специальное издание НИСТ 800-38A, Recommendation for Block Cipher Modes of Operation, Methods and Techniques, 2001 - 35 с.
3. А. П. Алферов, А. Ю. Зубов, А. С. Кузьмин, А. В. Черемушкин Основы криптографии. - М.: Гелиос АРВ, 2002 - 480 c.
4. Щербаков А. Ю. Современная компьютерная безопасность. Теоретические основы. Практические аспекты. — М.: Книжный мир, 2009. — 352 с.
5. Петров А.А. Компьютерная безопасность. Криптографические методы защиты. ДМК Москва, 2000 г.
6. Галатенко В. А. Стандарты информационной безопасности. — М.: Интернет-университет информационных технологий, 2006. — 264 с.
7. Шаньгин В. Ф. Защита компьютерной информации. Эффективные методы и средства. М.: ДМК Пресс, 2008. — 544 с.
8. Ю.В. Романец, П.А. Тимофеев, В.Ф. Шаньгин Защита информации в компьютерных системах и сетях: Радио и связь: Москва, 1999. - 328 с.
9. Борисов М. А., Заводцев И. В., Чижов И. В. Основы программно-аппаратной защиты информации. (Гриф УМО по классическому университетскому образованию). Изд.2 М.: Книжный дом «ЛИБРОКОМ», 2013. — 376 с.
10. Кунле Олукотун, Chip Multiprocessor Architecture - методы повышения пропускной способности и задержки. - Морган и Клейпул, 2007. - 154 с.
11. Смирнов А. Д. Архитектура вычислительных систем: Учебное пособие для вузов. — М.: Наука, 1990. — С. 104. — 320 с.
12. Бродин В. Б., Калинин А. В. Системы на микроконтроллерах и БИС программируемой логики. — М.: ЭКОМ, 2002. - 210 с.
13. Новиков Ю. В., Скоробогатов П. К. Основы микропроцессорной тех-ники. Курс лекций. — М.: Интернет-университет информационных технологий, 2003. - 158 с.
14. Брюс Шнайер, Прикладная криптография: БХВ-Питер: Санкт-
Петербург, 2004. - 718 с.
15. Баричев С. Г., Гончаров В. В., Серов Р. Е. 2.4.2. Стандарт AES. Алгоритм Rijdael. Основы современной криптографии — 3-е изд. — М.: Диалог-МИФИ, 2011. — С.— 176 с.