Хэш функции Нестеров Антон
План доклада Что это такое Зачем оно надо Примеры
Hash-функция Пример не из криптографии – Хранение словаря Слово hash Word
Коллизии Пример не из криптографии – Хранение словаря Слово hash Word Зебра hash
Практическое использование Банкомат Цифровая подпись Быстро вычислимые Не обратимые Зная M сложно вычислить N такое, что H(M)=H(N) Кроме того, сложно найти такие P и Q, что H(P)=H(Q) Авторизация клиент-сервер
Пример взлома Контракт 1 Контракт
Нахождение коллизий Метод дней рождений Сколько человек должно быть в комнате, чтобы вероятность того, что найдется человек родившийса с вами в один день была равна 0.5 ??? Сколько человек должно быть в комнате, чтобы вероятность того, чтобы нашлась пара людей, родившихся в один день была 0.5 ???
Требования к функции Актуальный размер кэша Для 16 байтогого кэша (128 бит) 2 64 различных документов Secure Hash Standard 160 бит 2 64 Специальный метод для удлиннения хэш-значений Прибавить хэш значение к исходному сообщению, а затем повторить все заново Отсутствие коллизий осмысленных строк
Немного примеров из истории Snefru Ральф Меркл N-hash 1990 MD4, MD5 Рон Ривест SHA RIPE-MD HAVAL ГОСТ Р Использование блочных шифров
Взломы и попытки взломов Некоторые алгоритмы были вломаны Найдены алгоритмы нахождения коллизий Некоторые почти взломаны Найдены алгоритмы нахождения предколлизий коллизий за меньшее время коллизий в укороченных версиях Атака на 7 из 10 уровней AES Антуан Жу – работа о мульти хэш-функциях
MAC Message authentication code Хэш функция зависит от ключа Можно менять ключ для дополнительной проверки В качестве МАС можно использовать обычный хэш H(K,H(K,M)) H(K,p,H,M) Сложно подобрать ключ Вычислить значение хэша для другого ключа
Определения Определение hash-функции Функция H Или семейство Пользуясь предыдущим примером: D строчки русских букв R число от 0 до H: K ×D R. H K : D R
Определения Обратная функция Коллизия H K1 (y) = { x D : H K (x) = y } H K (x 1 ) =HK(x2)HK(x2)
Нахождение коллизий Три типа устойчивости CR2-KK Collision free, collision resistant CR1-KK Universal one-way CR0 Universal
Три вида атак на нахождение коллизий CR2-KK Найти коллизии для конкретной функции CR1-KK Подобрать пару к заданному значению, образующую коллизию для конкретгой функции. СК0 Найти коллизию для семейства функций
Литература Брюс Шнайер - Прикладная криптография FAQ по криптографии faqs.org.ru Mihir Bellare, Phillip Rogaway - Introduction to Modern Cryptography Shafi Goldwasser, Mihir Bellare - Lecture Notes on Cryptography