1. УСКОРЕНИЕ АТАК НА КРИПТОГРАФИЧЕСКИЕ
АЛГОРИТМЫ ХЭШИРОВАНИЯ MD5 И SHA-1
Студент: Кизько Б.А., гр.5085/2
Руководитель: доцент, к.т.н Семенов К.К.
ФГБОУ ВПО «Санкт-Петербургский государственный политехнический университет»
Кафедра «Информационных измерительных технологий»
Дипломная работа
Специальность 090104.65
«Комплексная защита объектов информатизации»
2. Цель и задачи работы
Цель - исследование возможности использования современных
доступных GPU для ускорения атак на хэш-функции MD5 и SHA-
1, а также сравнение полученных результатов с известными
методами атак на указанные хэш-функции.
Задачи:
Исследование успешных атак на хэш-функции MD5 и SHA-1.
Исследование технологии NVIDIA CUDA.
Разработка фрагмента системы, реализующего атаки типа
«brute-force» (атаки полного перебора) с использованием
графических процессоров, поддерживающих технологию
NVIDIA CUDA.
Сравнениe результатов расчѐтов разработанного ПО с уже
существующими решениями в исследуемой области.
Сравнение результатов расчѐтов, проводимых на GPU и CPU.
2
4. Направления атак на хэш-функции
Коллизии первого рода: подобрать к уже известному
сообщению и хэш-значению от него другое сообщение
с тем же хэш-значением
m1, H(m1) -> m2, H(m2) = H(m1)
Коллизии второго рода: подобрать к известному хэш-
значению сообщение, которое даст такое же значение
хэша
H(m) -> g, H(g) = H(m)
3
5. Виды атак
Атаки, направленные на поиск коллизий второго рода
(поиск прообраза):
Полный перебор («brute-force»)
Перебор по словарю
Радужные таблицы
Атаки «дней рождения»
Специальные атаки, направленные на поиск коллизий
первого рода:
MD5: метод "туннелирования" Vlastimil Klima, атака Marc
Stevens и др.
SHA-1: Метод "туннелирования" Vlastimil Klima, алгоритм
Xiaoyun Wang — Hongbo Yu и др.
5
6. Применение графических процессоров для
вычислений общего назначения.
Невозможность быстрого роста производительности CPU
Переход к многоядерности и параллельным вычислениям
2007 г. — появление инструментов (CUDA Toolkit) и
документации (CUDA SDK) для разработки
программ, производящих вычисления общего назначения
на графических процессорах.
CPU — несколько потоков, GPU — десятки тысяч потоков
6
7. Атаки, связанные с поиском коллизий первого рода
Атака Marc Stevens
Реализация на CPU
Реализация на GPU
Выигрыш от применения CUDA (GeForce GTX 680 по
сравнению с Core i7) — 3%
7
Стенд
AMD Phenom
II X4 3,4 ГГц
AMD A10-
4600M 2,3 ГГц
Core i7-3770K
3,5 ГГц
Core 2 Quad
2,8 ГГц
Время поиска 493 часа 587 часов 436 часов 500 часов
GPU
GeForce GTX 480 GeForce GTX 680
Время поиска 450 часов 421 час
8. Атаки полного перебора.
Достигнутые результаты для MD5
8
Стенд: Phenom II X4 3.4 ГГц, 8 ГБ, GeForce GTX 480
Реализация
на CPU
Реализация
на GPU
Реализация на
GPU
(оптимизир.)
BarsWF
на CPU
BarsWF
на GPU
Скорость
перебора MD5,
млн хэш/сек
35 110 630 170 1320
Выигрыш от применения CUDA — 3 раза, оптимизация ускорила
расчѐты ещѐ в 6 раз. Итоговый выигрыш — 18 раз.
Отставание оптимизированной версии от BarsWF — 2 раза
9. Атаки полного перебора.
Достигнутые результаты для SHA-1
9
Стенд: Core i7-3770K 3,5 ГГц, 8 ГБ, GeForce GTX 680
Реализация
на CPU
Реализация
на GPU
Реализация на GPU
(оптимизир.)
EGP
IGHASH
GPU
Скорость
перебора SHA-1,
млн хэш/сек
4 78 165 180 532
Стенд: Core i7-3770K 3,5 ГГц, 8 ГБ, 2 x GeForce GTX 680
Реализация на GPU
(оптимизир.)
IGHASHGPU
Скорость перебора SHA-1,
млн хэш/сек
243 962
Выигрыш от применения CUDA — 41 раз.
Прирост производительности от работы на 2х видеокартах +50%
10. Перебор MD5 с помощью собственной реализации
10
GeForce GTX 480 AMD Phenom II X4
link 3 секунды 7 секунд
Link 3 секунды 9 секунд
ninja (4 место в мире) 13 секунд 3 минуты 15 секунд
abc123 (5 место в мире) 49 секунд 12 минут
1q2w3e 17 секунд 5 минут 40 секунд
62 элемента в алфавите, 8 символов в строке
628 = 218 340 105 584 896 комбинаций
11. Результаты
По итогам данной работы были достигнуты следующие
результаты:
Экспериментально доказано, что необходим переход на
использование хэш-функции SHA-3.
Были изучены типы атак на хэш-функции MD5 и SHA-1 и проведена
попытка классифицировать их.
Были изучены технологии вычислений общего назначения на
графических процессорах, в частности, технология nVidia CUDA.
Были написаны подпрограммы, оценивающие время, затрачиваемое
центральным и графическим процессорами на поиск коллизий для
стандартов MD5 и SHA-1.
Был проведен сравнительный анализ для различных графических
процессоров.
Полученные результаты были сравнены с существующими
аналогами.
Были предложены идеи для оптимизации написанного программного
кода.
11
12. Направления дальнейших исследований
Разработка алгоритма расчѐта оптимальной
загрузки вычислительных блоков графического
процессора.
Адаптация программных средств для исполнения на
устройствах с поддержкой иных технологий
параллельных вычислений.
Одновременное использование нескольких
графических процессоров одновременно.
12