SlideShare a Scribd company logo
1 of 13
УСКОРЕНИЕ АТАК НА КРИПТОГРАФИЧЕСКИЕ
АЛГОРИТМЫ ХЭШИРОВАНИЯ MD5 И SHA-1
Студент: Кизько Б.А., гр.5085/2
Руководитель: доцент, к.т.н Семенов К.К.
ФГБОУ ВПО «Санкт-Петербургский государственный политехнический университет»
Кафедра «Информационных измерительных технологий»
Дипломная работа
Специальность 090104.65
«Комплексная защита объектов информатизации»
Цель и задачи работы
Цель - исследование возможности использования современных
доступных GPU для ускорения атак на хэш-функции MD5 и SHA-
1, а также сравнение полученных результатов с известными
методами атак на указанные хэш-функции.
Задачи:
 Исследование успешных атак на хэш-функции MD5 и SHA-1.
 Исследование технологии NVIDIA CUDA.
 Разработка фрагмента системы, реализующего атаки типа
«brute-force» (атаки полного перебора) с использованием
графических процессоров, поддерживающих технологию
NVIDIA CUDA.
 Сравнениe результатов расчѐтов разработанного ПО с уже
существующими решениями в исследуемой области.
 Сравнение результатов расчѐтов, проводимых на GPU и CPU.
2
MD5 и SHA-1
Message Digest 5. 1991. 128 бит.
Secure Hash Algorithm 1. 1995. 160 бит
4
SHA-1:
• IPSec
• SSL
• SSH
• PGP
• BitTorrent
• и др.
Направления атак на хэш-функции
Коллизии первого рода: подобрать к уже известному
сообщению и хэш-значению от него другое сообщение
с тем же хэш-значением
m1, H(m1) -> m2, H(m2) = H(m1)
Коллизии второго рода: подобрать к известному хэш-
значению сообщение, которое даст такое же значение
хэша
H(m) -> g, H(g) = H(m)
3
Виды атак
Атаки, направленные на поиск коллизий второго рода
(поиск прообраза):
 Полный перебор («brute-force»)
 Перебор по словарю
 Радужные таблицы
 Атаки «дней рождения»
Специальные атаки, направленные на поиск коллизий
первого рода:
MD5: метод "туннелирования" Vlastimil Klima, атака Marc
Stevens и др.
SHA-1: Метод "туннелирования" Vlastimil Klima, алгоритм
Xiaoyun Wang — Hongbo Yu и др.
5
Применение графических процессоров для
вычислений общего назначения.
Невозможность быстрого роста производительности CPU
Переход к многоядерности и параллельным вычислениям
2007 г. — появление инструментов (CUDA Toolkit) и
документации (CUDA SDK) для разработки
программ, производящих вычисления общего назначения
на графических процессорах.
CPU — несколько потоков, GPU — десятки тысяч потоков
6
Атаки, связанные с поиском коллизий первого рода
Атака 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 час
Атаки полного перебора.
Достигнутые результаты для 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 раза
Атаки полного перебора.
Достигнутые результаты для 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%
Перебор 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 комбинаций
Результаты
По итогам данной работы были достигнуты следующие
результаты:
 Экспериментально доказано, что необходим переход на
использование хэш-функции SHA-3.
 Были изучены типы атак на хэш-функции MD5 и SHA-1 и проведена
попытка классифицировать их.
 Были изучены технологии вычислений общего назначения на
графических процессорах, в частности, технология nVidia CUDA.
 Были написаны подпрограммы, оценивающие время, затрачиваемое
центральным и графическим процессорами на поиск коллизий для
стандартов MD5 и SHA-1.
 Был проведен сравнительный анализ для различных графических
процессоров.
 Полученные результаты были сравнены с существующими
аналогами.
 Были предложены идеи для оптимизации написанного программного
кода.
11
Направления дальнейших исследований
 Разработка алгоритма расчѐта оптимальной
загрузки вычислительных блоков графического
процессора.
 Адаптация программных средств для исполнения на
устройствах с поддержкой иных технологий
параллельных вычислений.
 Одновременное использование нескольких
графических процессоров одновременно.
12
Спасибо за внимание
13

More Related Content

What's hot

CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSUlarhat
 
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...odnoklassniki.ru
 
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...odnoklassniki.ru
 
Тестирование QoS на экспериментальном стенде
Тестирование QoS на экспериментальном стендеТестирование QoS на экспериментальном стенде
Тестирование QoS на экспериментальном стендеARCCN
 
Инкапсуляция сетевой топологии при помощи ПКС
Инкапсуляция сетевой топологии при помощи ПКСИнкапсуляция сетевой топологии при помощи ПКС
Инкапсуляция сетевой топологии при помощи ПКСARCCN
 
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...Oleg Lipin
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)Nikolay Samokhvalov
 
Консервация процессов в домашних условиях
Консервация процессов в домашних условияхКонсервация процессов в домашних условиях
Консервация процессов в домашних условияхOpenVZ
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Ontico
 
Hl2008 Wtf Hl 169
Hl2008 Wtf Hl 169Hl2008 Wtf Hl 169
Hl2008 Wtf Hl 169Media Gorod
 
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыГидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыVsevolod Shabad
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Ontico
 
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахАлександр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахTanya Denisyuk
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeIosif Itkin
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Vadim Madison
 
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...corehard_by
 

What's hot (20)

CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSU
 
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
 
Тестирование QoS на экспериментальном стенде
Тестирование QoS на экспериментальном стендеТестирование QoS на экспериментальном стенде
Тестирование QoS на экспериментальном стенде
 
Инкапсуляция сетевой топологии при помощи ПКС
Инкапсуляция сетевой топологии при помощи ПКСИнкапсуляция сетевой топологии при помощи ПКС
Инкапсуляция сетевой топологии при помощи ПКС
 
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
 
Консервация процессов в домашних условиях
Консервация процессов в домашних условияхКонсервация процессов в домашних условиях
Консервация процессов в домашних условиях
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
 
Hl2008 Wtf Hl 169
Hl2008 Wtf Hl 169Hl2008 Wtf Hl 169
Hl2008 Wtf Hl 169
 
введение в Gpu
введение в Gpuвведение в Gpu
введение в Gpu
 
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыГидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
 
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахАлександр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
 

Similar to презентация на защиту 06.06

Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
Параллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартахПараллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартахAlex Tutubalin
 
Сервисы Azure для научных исследований
Сервисы Azure для научных исследованийСервисы Azure для научных исследований
Сервисы Azure для научных исследованийMicrosoft
 
Hpc 2.26.03.2013.
Hpc 2.26.03.2013.Hpc 2.26.03.2013.
Hpc 2.26.03.2013.Boris Kizko
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...Nikolay Samokhvalov
 
Hpc 1.24.02.2013.
Hpc 1.24.02.2013.Hpc 1.24.02.2013.
Hpc 1.24.02.2013.Boris Kizko
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2Technopark
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев кировqasib
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Mikhail Kurnosov
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)Smolensk Computer Science Club
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeARCCN
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
iRidium для AV & Custom Systems и Global Caché
iRidium для AV & Custom Systems и Global Caché iRidium для AV & Custom Systems и Global Caché
iRidium для AV & Custom Systems и Global Caché iRidiumMobile365
 
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...it-people
 
Load Testing with Yandex.Tank (in russian, PyCon Russia 2014)
Load Testing with Yandex.Tank (in russian, PyCon Russia 2014)Load Testing with Yandex.Tank (in russian, PyCon Russia 2014)
Load Testing with Yandex.Tank (in russian, PyCon Russia 2014)Alexey Lavrenuke
 
Flame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилированиеFlame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилированиеКирилл Борисов
 
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Mikhail Kurnosov
 
Лекция 9. Программирование GPU
Лекция 9. Программирование GPUЛекция 9. Программирование GPU
Лекция 9. Программирование GPUMikhail Kurnosov
 

Similar to презентация на защиту 06.06 (20)

Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
Параллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартахПараллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартах
 
Сервисы Azure для научных исследований
Сервисы Azure для научных исследованийСервисы Azure для научных исследований
Сервисы Azure для научных исследований
 
Hpc 2.26.03.2013.
Hpc 2.26.03.2013.Hpc 2.26.03.2013.
Hpc 2.26.03.2013.
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 
Hpc 1.24.02.2013.
Hpc 1.24.02.2013.Hpc 1.24.02.2013.
Hpc 1.24.02.2013.
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
 
Gpgpu
GpgpuGpgpu
Gpgpu
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
iRidium для AV & Custom Systems и Global Caché
iRidium для AV & Custom Systems и Global Caché iRidium для AV & Custom Systems и Global Caché
iRidium для AV & Custom Systems и Global Caché
 
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
 
Load Testing with Yandex.Tank (in russian, PyCon Russia 2014)
Load Testing with Yandex.Tank (in russian, PyCon Russia 2014)Load Testing with Yandex.Tank (in russian, PyCon Russia 2014)
Load Testing with Yandex.Tank (in russian, PyCon Russia 2014)
 
Flame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилированиеFlame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилирование
 
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
 
Лекция 9. Программирование GPU
Лекция 9. Программирование GPUЛекция 9. Программирование GPU
Лекция 9. Программирование GPU
 

More from Boris Kizko

Security cores 5.11.13
Security cores   5.11.13Security cores   5.11.13
Security cores 5.11.13Boris Kizko
 
Security cores 1.10.13
Security cores   1.10.13Security cores   1.10.13
Security cores 1.10.13Boris Kizko
 
Неделя науки 2013 СПбГПУ
Неделя науки 2013 СПбГПУНеделя науки 2013 СПбГПУ
Неделя науки 2013 СПбГПУBoris Kizko
 
Асимметричная криптография
Асимметричная криптографияАсимметричная криптография
Асимметричная криптографияBoris Kizko
 
Компьютерные вирусы
Компьютерные вирусыКомпьютерные вирусы
Компьютерные вирусыBoris Kizko
 
Dbs prezentation
Dbs prezentationDbs prezentation
Dbs prezentationBoris Kizko
 
спутниковые радионавигационные системы
спутниковые радионавигационные системыспутниковые радионавигационные системы
спутниковые радионавигационные системыBoris Kizko
 

More from Boris Kizko (10)

Security cores 5.11.13
Security cores   5.11.13Security cores   5.11.13
Security cores 5.11.13
 
Security cores 1.10.13
Security cores   1.10.13Security cores   1.10.13
Security cores 1.10.13
 
Cuda, OpenCL
Cuda, OpenCLCuda, OpenCL
Cuda, OpenCL
 
Неделя науки 2013 СПбГПУ
Неделя науки 2013 СПбГПУНеделя науки 2013 СПбГПУ
Неделя науки 2013 СПбГПУ
 
Асимметричная криптография
Асимметричная криптографияАсимметричная криптография
Асимметричная криптография
 
Trojans, worms
Trojans, wormsTrojans, worms
Trojans, worms
 
Backdoors
BackdoorsBackdoors
Backdoors
 
Компьютерные вирусы
Компьютерные вирусыКомпьютерные вирусы
Компьютерные вирусы
 
Dbs prezentation
Dbs prezentationDbs prezentation
Dbs prezentation
 
спутниковые радионавигационные системы
спутниковые радионавигационные системыспутниковые радионавигационные системы
спутниковые радионавигационные системы
 

презентация на защиту 06.06

  • 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
  • 3. MD5 и SHA-1 Message Digest 5. 1991. 128 бит. Secure Hash Algorithm 1. 1995. 160 бит 4 SHA-1: • IPSec • SSL • SSH • PGP • BitTorrent • и др.
  • 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