hash cse lecture2
Post on 22-May-2015
1.054 Views
Preview:
TRANSCRIPT
1
Криптографическиехэш-функции.Лекция 2: Атаки
Илья МироновMicrosoft Research, Silicon Valley
Екатеринбург, 16-17 апреля, 2011
2
План лекции
Поиск коллизий Парадокс дня рождения Алгоритмы, не использующие память Параллельные алгоритмы Инкрементальная хэш-функция
Компромисс память-время Хеллман Радужные таблицы Фиат-Наор Соль
3
Поиск коллизий
Коллизии в хэш-функциях Решение задачи дискретного
логарифма:,
где g – элемент порядка p, а
, где
4
Парадокс дня рождения
23=√365 ⋅1.2
5
Вероятность коллизии
– моделируем как случайную
Вычисляем H(x1), H(x2),…, H(xm)
Какова вероятность того, что существуют
i, j [1..m], что H(xi) = H(xj)?
6
Вероятность коллизии
Определяем событиеEij
Матожидание количества коллизий:
Если , мат ожидание >1
7
Точнее...
Вероятность того, что не ни одной коллизии:
пользуясь тем, что , можем оценить
Таким образом, если , то вероятность встретить коллизию > 50%.
8
Неравномерное распределение Дни рождения не распределены
равномерно Матожидание коллизий больше:
9
Ищем коллизии
Вычисляем H(x1), H(x2),…, H(xm),...
Длина MD5 – 128 бит, сложность вычисления – 1000 тактов для коротких сообщений.
вычислений: ~ Tb 200K CPU/лет
10
Поиск коллизий без памятиИтерация:
11
Граф итераций
P. Flajolet and A. Odlyzko, “Random mapping statistics”
Структура DES:
12
Граф итераций
Количество компонент:
Размер самой большой компоненты:
Длина самого большого цикла:
13
Итерация
xi+1=H(xi)
хвост
цикл
коллизия
ρ
14
Итерация
xi+1=H(xi)
коллизия𝐸 [ хвост ]=√𝜋 𝑁 /8
15
Метод Флойда
Черепаха: xi+1=H(xi)Заяц: yi+1=H(H(yi))
16
Метод Флойда
Черепаха: xi+1=H(xi)Заяц: yi+1=H(H(yi))
≤ хвост+цикл итерацийзаяц догонит черепаху
17
Метод Флойда
Черепаха: xi+1=H(xi)Заяц: yi+1=H(H(yi))xk = yk = x2k
18
Метод Флойда
Черепаха: xi+1=H(xi)Заяц: yi+1=H(H(yi))xk = yk = x2k
≤ хвост итераций черепахи встретятся
19
𝐻 (𝑥 𝑖1)
Метод Ниваша
Храним последовательность, состоящую из «локальных рекордов»:
𝐻 (𝑥 𝑖2)
𝐻 (𝑥 𝑖3)
𝐻 (𝑥 𝑖4)
𝐻 (𝑥)
xi+1=H(xi)
Nivasch, "Cycle detection using a stack", IPL, 2004
20
Метод Ниваша
xi+1=H(xi)
min
Память ~log N
21
Параллелизация
«Замечательные точки»:
k нулей
𝑥1
𝑥2
𝑥3
𝑥4
𝑦 1
𝑦 2
𝑦 3
𝑦 4
(𝑥 𝑖 , 𝑦 𝑖 )
Oorschot, Wiener, “Parallel Collision Search with Application to Hash Functions and Discrete Logarithms”, ACM CCS, 1994
22
Параллелизация
𝑥𝑖
𝑥 𝑗
𝑦 𝑗=𝑦 𝑖
(𝑥 𝑖 , 𝑦 𝑖 )
Коллизия
коллизияλ
23
Анализ сложности
Средняя длина цепочки: Количество цепочек до коллизии: Количество операций:
Замечательные точки распределены неравномерно!
После операций найдем коллизию
24
Событие Робин Гуда
𝑥𝑖
𝑥 𝑗
25
Открытый вопрос
Алгоритм нахождения 3-сторонних коллизий с малой памятью?
Известен алгоритм со скоростью и памятью: Joux, Lucks, “Improved generic algorithms for 3-collisions”, ASIACRYPT’09
26
Инкрементальные хэш-функции Малое изменение текста → быстрый
пересчет хэш-функции Попытка 1:
⊕ Попытка 2:
⊕
27
Инкрементальные хэш-функции
𝐻 (2 ,𝑀 2 )𝐻 (1 ,𝑀1 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )⊕ ⊕ ⊕
28
Инкрементальные хэш-функции
𝐻 (2 ,𝑀 2 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )
⊕⊕
⊕𝐻 (1 ,𝑀1 )
29
Инкрементальные хэш-функции
бит бит бит бит
2𝑘× 𝐻 (2 ,𝑀 2 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )
⊕⊕
⊕𝐻 (1 ,𝑀1 )
30
Инкрементальные хэш-функции
2ℓ ∙ ( 2𝑘−ℓ )2=22𝑘−ℓ
2𝑘×
22𝑘−ℓ>2(𝑛−ℓ)/2
бит
0…0
0…0
0…0
бит бит бит бит
𝐻 (2 ,𝑀 2 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )
⊕ ⊕𝐻 (1 ,𝑀1 )
⊕
31
Инкрементальные хэш-функции
2ℓ ∙ ( 2𝑘−ℓ )2=22𝑘−ℓ
2𝑘×
22𝑘−ℓ>2(𝑛−ℓ)/2
𝑘=ℓ=𝑛 /30…0
0…0
0…0
бит
𝐻 (2 ,𝑀 2 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )
⊕ ⊕𝐻 (1 ,𝑀1 )
⊕
бит бит бит бит
32
Инкрементальные хэш-функции
2ℓ ∙ ( 2𝑘−ℓ )2=22𝑘−ℓ
2𝑘×
22𝑘−ℓ>2(𝑛−ℓ)/2
𝑘=ℓ=𝑛 /30…0
0…0
0…0
бит
𝐻 (2 ,𝑀 2 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )
⊕ ⊕𝐻 (1 ,𝑀1 )
⊕
бит бит бит бит
Сложность
33
Общий случай
Количество блоков Сложность алгоритма Открытый вопрос: ? Алгоритм без использования памяти?
Wagner, “A Generalized Birthday Problem”, CRYPTO’02
34
Обращение функции
компромисс время-место (time-memory trade-off)
𝐻 (𝑥)=𝑦
?
35
компромисс время-место
Полный перебор Табличный метод
Офф-лайновая сложность — N
Он-лайновая сложность N 1
Память 1 N
36
Алгоритм Хеллмана
𝑥1 𝑦 1
𝑥2 𝑦 2
𝑥3 𝑦 3
𝑥4 𝑦 4
𝑥5 𝑦 5
(𝑥1 , 𝑦 1 )(𝑥2 , 𝑦2 )(𝑥3 , 𝑦3 )(𝑥4 , 𝑦 4 )(𝑥5 , 𝑦5 )
37
Алгоритм Хеллмана
𝑥1 𝑦 1
𝑥2 𝑦 2
𝑥3 𝑦 3
𝑥4 𝑦 4
𝑥5 𝑦 5
(𝑥1 , 𝑦 1 )(𝑥2 , 𝑦2 )(𝑥3 , 𝑦3 )(𝑥4 , 𝑦 4 )(𝑥5 , 𝑦5 )
𝑦𝐻 ( 𝑥 )=¿
38
Низкое покрытие
𝑥1 𝑦 1
𝑥2 𝑦 2
𝑥3 𝑦 3
𝑥4 𝑦 4
𝑥5 𝑦 5…
𝑥𝑖
𝑥𝑖+1
t
m
вероятность коллизии:
отсутствие коллизий:
𝑚𝑡2<𝑁
39
Модифицируем функцию
𝑥𝑖+1=𝐻 (𝑥𝑖 )
𝑥𝑖+1= 𝑓 ¿
𝑥𝑖→𝐻 (𝑥𝑖 )→ 𝑓 (𝐻 (𝑥 𝑖 ))=𝑥 𝑖+1→𝐻 (𝑥𝑖+1 )→ 𝑓 ( 𝐻 (𝑥 𝑖+1 ))
40
Много независимых таблиц!
t
𝑥11
𝑥21
𝑥𝑚1
𝑦 11
𝑦 21
𝑦𝑚1
m 𝑓 1∘ 𝐻…
𝑥12
𝑥22
𝑥𝑚2
𝑦 12
𝑦 22
𝑦𝑚2
m 𝑓 2 ∘𝐻…
𝑥1ℓ
𝑥2ℓ
𝑥𝑚ℓ
𝑦 1ℓ
𝑦 2ℓ
𝑦 𝑚ℓ
m 𝑓 ℓ∘ 𝐻…
𝑚 ∙𝑡 2<𝑁𝑚 ∙𝑡 ∙ ℓ>𝑁
ℓ
…
41
Фундаментальное неравенство
𝑚 ∙𝑡 2<𝑁𝑚 ∙𝑡 ∙ ℓ>𝑁
𝑚3 ⋅𝑡3 ⋅ℓ3
𝑚⋅𝑡 2 >𝑁2
𝑚2 ⋅𝑡 ⋅ℓ3>𝑁 2 𝑀 2⋅𝑇 >𝑁 2
()3
❑
42
Фундаментальное неравенство
𝑚 ∙𝑡 2<𝑁
𝑀 2⋅𝑇 >𝑁 2
𝑇=𝑀=𝑁2 /3
43
компромисс время-место
Полный перебор
Табличный метод
Хеллман
Офф-лайновая сложность — N N
Он-лайновая сложность N 1
Память 1 N
44
𝑦 11
𝑦 21
𝑦𝑚1
𝑦 12
𝑦 22
𝑦𝑚2
𝑦 1ℓ
𝑦 2ℓ
𝑦 𝑚ℓ
Варианты: замечательные точки𝑥1
1
𝑥21
𝑥𝑚1
m 𝑓 1∘ 𝐻…
𝑥12
𝑥22
𝑥𝑚2
m 𝑓 2 ∘𝐻…
𝑥1ℓ
𝑥2ℓ
𝑥𝑚ℓ
m 𝑓 ℓ∘ 𝐻…
𝐻 ( 𝑥 )=… .00…0
k нулей
Экономим обращение к памяти (диску)!
45
Варианты: радужные таблицы
𝑥11
𝑥21
𝑥𝑚1
𝑦 11
𝑦 21
𝑦𝑚1
m …
𝑥12
𝑥22
𝑥𝑚2
𝑦 12
𝑦 22
𝑦𝑚2
m …
𝑥1ℓ
𝑥2ℓ
𝑥𝑚ℓ
𝑦 1ℓ
𝑦 2ℓ
𝑦 𝑚ℓ
m …
t
𝑥1❑
𝑥2❑
𝑥3❑
𝑦 1❑
𝑦 2❑
𝑦 3❑
𝑚⋅ℓ …
𝑥𝑚⋅ ℓ❑ 𝑦𝑚⋅ℓ
❑
t
Oechslin, "Making a Faster Cryptanalytic Time-Memory Trade-off", CRYPTO'03
𝑓 1❑𝑓 2
❑… 𝑓 𝑡
46
passcracking.com
MD5(1..7 буквенно-цифровых символов и пробел)
Перебор: более 24 часов
Офф-лайн: более неделиОн-лайн: 30 секунд
Размер таблицы – 26Mb(http://www.freerainbowtables.com/en/tables/)
47
Анализ Фиата-Наора
Если функция не случайна? Фундаментальное неравенство для
произвольной функции:
𝑀 3⋅ 𝑇>𝑁 3
𝑇=𝑀=𝑁3 /4
Fiat, Naor, “Rigorous Time/Space Tradeoffs for Inverting Functions”, STOC 1991
48
Пароли
Таблица паролей:Алиса, H(пароль)
Таблицы стандартных паролей:
Top 1-5
123456
password
12345678
1234
pussy
Top 6-10
12345
dragon
qwerty
696969
mustang
49
Популярные пароли
𝑥𝑖
𝐻 (𝑥)𝐻
𝑓
𝑥𝑖+1
0.1% множества строк из 8 символов покрывает 50% паролей
Narayanan, Shmatikov, «Fast Dictionary Attacks on Passwords Using Time-Space Tradeoff», ACM CCS’05
50
Популярные пароли
Марковские цепи Конечные автоматы Любое индексируемое множество
51
Добавим немного соли...
Таблица паролей:Алиса, H(пароль)
+ соль
Алиса, r, H(r||пароль)
52
компромисс время-место для соли Вариант 1:
Пространство
Вариант 2:𝑀 2⋅𝑇 >(𝑆×𝑁 )2
S значений соли
𝑚2 𝑇>𝑁2 …𝑚2 𝑇>𝑁2 𝑚2 𝑇>𝑁2
53
компромисс время-место для соли Вариант 1:
Пространство
Вариант 2:𝑀 2⋅𝑇 >(𝑆×𝑁 )2
𝑀 2𝑇 >(𝑆×𝑁 )2
Открытый вопрос: компромисс для соли?
54
Мееедленнные функции
Искусственно замедлять функцию: Таблицы для итерированных
функций?
Стандарт на HKDF (RFC 5869)
Krawczyk, “Cryptographic Extraction and Key Derivation: The HKDF Scheme”, CRYPTO 2010
top related