hash cse lecture2

54
1 Криптографические хэш-функции. Лекция 2: Атаки Илья Миронов Microsoft Research, Silicon Valley Екатеринбург, 16-17 апреля, 2011

Upload: lilosea

Post on 22-May-2015

1.054 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Hash cse lecture2

1

Криптографическиехэш-функции.Лекция 2: Атаки

Илья МироновMicrosoft Research, Silicon Valley

Екатеринбург, 16-17 апреля, 2011

Page 2: Hash cse lecture2

2

План лекции

Поиск коллизий Парадокс дня рождения Алгоритмы, не использующие память Параллельные алгоритмы Инкрементальная хэш-функция

Компромисс память-время Хеллман Радужные таблицы Фиат-Наор Соль

Page 3: Hash cse lecture2

3

Поиск коллизий

Коллизии в хэш-функциях Решение задачи дискретного

логарифма:,

где g – элемент порядка p, а

, где

Page 4: Hash cse lecture2

4

Парадокс дня рождения

23=√365 ⋅1.2

Page 5: Hash cse lecture2

5

Вероятность коллизии

– моделируем как случайную

Вычисляем H(x1), H(x2),…, H(xm)

Какова вероятность того, что существуют

i, j [1..m], что H(xi) = H(xj)?

Page 6: Hash cse lecture2

6

Вероятность коллизии

Определяем событиеEij

Матожидание количества коллизий:

Если , мат ожидание >1

Page 7: Hash cse lecture2

7

Точнее...

Вероятность того, что не ни одной коллизии:

пользуясь тем, что , можем оценить

Таким образом, если , то вероятность встретить коллизию > 50%.

Page 8: Hash cse lecture2

8

Неравномерное распределение Дни рождения не распределены

равномерно Матожидание коллизий больше:

Page 9: Hash cse lecture2

9

Ищем коллизии

Вычисляем H(x1), H(x2),…, H(xm),...

Длина MD5 – 128 бит, сложность вычисления – 1000 тактов для коротких сообщений.

вычислений: ~ Tb 200K CPU/лет

Page 10: Hash cse lecture2

10

Поиск коллизий без памятиИтерация:

Page 11: Hash cse lecture2

11

Граф итераций

P. Flajolet and A. Odlyzko, “Random mapping statistics”

Структура DES:

Page 12: Hash cse lecture2

12

Граф итераций

Количество компонент:

Размер самой большой компоненты:

Длина самого большого цикла:

Page 13: Hash cse lecture2

13

Итерация

xi+1=H(xi)

хвост

цикл

коллизия

ρ

Page 14: Hash cse lecture2

14

Итерация

xi+1=H(xi)

коллизия𝐸 [ хвост ]=√𝜋 𝑁 /8

Page 15: Hash cse lecture2

15

Метод Флойда

Черепаха: xi+1=H(xi)Заяц: yi+1=H(H(yi))

Page 16: Hash cse lecture2

16

Метод Флойда

Черепаха: xi+1=H(xi)Заяц: yi+1=H(H(yi))

≤ хвост+цикл итерацийзаяц догонит черепаху

Page 17: Hash cse lecture2

17

Метод Флойда

Черепаха: xi+1=H(xi)Заяц: yi+1=H(H(yi))xk = yk = x2k

Page 18: Hash cse lecture2

18

Метод Флойда

Черепаха: xi+1=H(xi)Заяц: yi+1=H(H(yi))xk = yk = x2k

≤ хвост итераций черепахи встретятся

Page 19: Hash cse lecture2

19

𝐻 (𝑥 𝑖1)

Метод Ниваша

Храним последовательность, состоящую из «локальных рекордов»:

𝐻 (𝑥 𝑖2)

𝐻 (𝑥 𝑖3)

𝐻 (𝑥 𝑖4)

𝐻 (𝑥)

xi+1=H(xi)

Nivasch, "Cycle detection using a stack", IPL, 2004

Page 20: Hash cse lecture2

20

Метод Ниваша

xi+1=H(xi)

min

Память ~log N

Page 21: Hash cse lecture2

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

Page 22: Hash cse lecture2

22

Параллелизация

𝑥𝑖

𝑥 𝑗

𝑦 𝑗=𝑦 𝑖

(𝑥 𝑖 , 𝑦 𝑖 )

Коллизия

коллизияλ

Page 23: Hash cse lecture2

23

Анализ сложности

Средняя длина цепочки: Количество цепочек до коллизии: Количество операций:

Замечательные точки распределены неравномерно!

После операций найдем коллизию

Page 24: Hash cse lecture2

24

Событие Робин Гуда

𝑥𝑖

𝑥 𝑗

Page 25: Hash cse lecture2

25

Открытый вопрос

Алгоритм нахождения 3-сторонних коллизий с малой памятью?

Известен алгоритм со скоростью и памятью: Joux, Lucks, “Improved generic algorithms for 3-collisions”, ASIACRYPT’09

Page 26: Hash cse lecture2

26

Инкрементальные хэш-функции Малое изменение текста → быстрый

пересчет хэш-функции Попытка 1:

⊕ Попытка 2:

Page 27: Hash cse lecture2

27

Инкрементальные хэш-функции

𝐻 (2 ,𝑀 2 )𝐻 (1 ,𝑀1 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )⊕ ⊕ ⊕

Page 28: Hash cse lecture2

28

Инкрементальные хэш-функции

𝐻 (2 ,𝑀 2 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )

⊕⊕

⊕𝐻 (1 ,𝑀1 )

Page 29: Hash cse lecture2

29

Инкрементальные хэш-функции

бит бит бит бит

2𝑘× 𝐻 (2 ,𝑀 2 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )

⊕⊕

⊕𝐻 (1 ,𝑀1 )

Page 30: Hash cse lecture2

30

Инкрементальные хэш-функции

2ℓ ∙ ( 2𝑘−ℓ )2=22𝑘−ℓ

2𝑘×

22𝑘−ℓ>2(𝑛−ℓ)/2

бит

0…0

0…0

0…0

бит бит бит бит

𝐻 (2 ,𝑀 2 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )

⊕ ⊕𝐻 (1 ,𝑀1 )

Page 31: Hash cse lecture2

31

Инкрементальные хэш-функции

2ℓ ∙ ( 2𝑘−ℓ )2=22𝑘−ℓ

2𝑘×

22𝑘−ℓ>2(𝑛−ℓ)/2

𝑘=ℓ=𝑛 /30…0

0…0

0…0

бит

𝐻 (2 ,𝑀 2 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )

⊕ ⊕𝐻 (1 ,𝑀1 )

бит бит бит бит

Page 32: Hash cse lecture2

32

Инкрементальные хэш-функции

2ℓ ∙ ( 2𝑘−ℓ )2=22𝑘−ℓ

2𝑘×

22𝑘−ℓ>2(𝑛−ℓ)/2

𝑘=ℓ=𝑛 /30…0

0…0

0…0

бит

𝐻 (2 ,𝑀 2 ) 𝐻 ( 4 ,𝑀 4 )𝐻 (3 ,𝑀 3 )

⊕ ⊕𝐻 (1 ,𝑀1 )

бит бит бит бит

Сложность

Page 33: Hash cse lecture2

33

Общий случай

Количество блоков Сложность алгоритма Открытый вопрос: ? Алгоритм без использования памяти?

Wagner, “A Generalized Birthday Problem”, CRYPTO’02

Page 34: Hash cse lecture2

34

Обращение функции

компромисс время-место (time-memory trade-off)

𝐻 (𝑥)=𝑦

?

Page 35: Hash cse lecture2

35

компромисс время-место

Полный перебор Табличный метод

Офф-лайновая сложность — N

Он-лайновая сложность N 1

Память 1 N

Page 36: Hash cse lecture2

36

Алгоритм Хеллмана

𝑥1 𝑦 1

𝑥2 𝑦 2

𝑥3 𝑦 3

𝑥4 𝑦 4

𝑥5 𝑦 5

(𝑥1 , 𝑦 1 )(𝑥2 , 𝑦2 )(𝑥3 , 𝑦3 )(𝑥4 , 𝑦 4 )(𝑥5 , 𝑦5 )

Page 37: Hash cse lecture2

37

Алгоритм Хеллмана

𝑥1 𝑦 1

𝑥2 𝑦 2

𝑥3 𝑦 3

𝑥4 𝑦 4

𝑥5 𝑦 5

(𝑥1 , 𝑦 1 )(𝑥2 , 𝑦2 )(𝑥3 , 𝑦3 )(𝑥4 , 𝑦 4 )(𝑥5 , 𝑦5 )

𝑦𝐻 ( 𝑥 )=¿

Page 38: Hash cse lecture2

38

Низкое покрытие

𝑥1 𝑦 1

𝑥2 𝑦 2

𝑥3 𝑦 3

𝑥4 𝑦 4

𝑥5 𝑦 5…

𝑥𝑖

𝑥𝑖+1

t

m

вероятность коллизии:

отсутствие коллизий:

𝑚𝑡2<𝑁

Page 39: Hash cse lecture2

39

Модифицируем функцию

𝑥𝑖+1=𝐻 (𝑥𝑖 )

𝑥𝑖+1= 𝑓 ¿

𝑥𝑖→𝐻 (𝑥𝑖 )→ 𝑓 (𝐻 (𝑥 𝑖 ))=𝑥 𝑖+1→𝐻 (𝑥𝑖+1 )→ 𝑓 ( 𝐻 (𝑥 𝑖+1 ))

Page 40: Hash cse lecture2

40

Много независимых таблиц!

t

𝑥11

𝑥21

𝑥𝑚1

𝑦 11

𝑦 21

𝑦𝑚1

m 𝑓 1∘ 𝐻…

𝑥12

𝑥22

𝑥𝑚2

𝑦 12

𝑦 22

𝑦𝑚2

m 𝑓 2 ∘𝐻…

𝑥1ℓ

𝑥2ℓ

𝑥𝑚ℓ

𝑦 1ℓ

𝑦 2ℓ

𝑦 𝑚ℓ

m 𝑓 ℓ∘ 𝐻…

𝑚 ∙𝑡 2<𝑁𝑚 ∙𝑡 ∙ ℓ>𝑁

Page 41: Hash cse lecture2

41

Фундаментальное неравенство

𝑚 ∙𝑡 2<𝑁𝑚 ∙𝑡 ∙ ℓ>𝑁

𝑚3 ⋅𝑡3 ⋅ℓ3

𝑚⋅𝑡 2 >𝑁2

𝑚2 ⋅𝑡 ⋅ℓ3>𝑁 2 𝑀 2⋅𝑇 >𝑁 2

()3

Page 42: Hash cse lecture2

42

Фундаментальное неравенство

𝑚 ∙𝑡 2<𝑁

𝑀 2⋅𝑇 >𝑁 2

𝑇=𝑀=𝑁2 /3

Page 43: Hash cse lecture2

43

компромисс время-место

Полный перебор

Табличный метод

Хеллман

Офф-лайновая сложность — N N

Он-лайновая сложность N 1

Память 1 N

Page 44: Hash cse lecture2

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 нулей

Экономим обращение к памяти (диску)!

Page 45: Hash cse lecture2

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

❑… 𝑓 𝑡

Page 46: Hash cse lecture2

46

passcracking.com

MD5(1..7 буквенно-цифровых символов и пробел)

Перебор: более 24 часов

Офф-лайн: более неделиОн-лайн: 30 секунд

Размер таблицы – 26Mb(http://www.freerainbowtables.com/en/tables/)

Page 47: Hash cse lecture2

47

Анализ Фиата-Наора

Если функция не случайна? Фундаментальное неравенство для

произвольной функции:

𝑀 3⋅ 𝑇>𝑁 3

𝑇=𝑀=𝑁3 /4

Fiat, Naor, “Rigorous Time/Space Tradeoffs for Inverting Functions”, STOC 1991

Page 48: Hash cse lecture2

48

Пароли

Таблица паролей:Алиса, H(пароль)

Таблицы стандартных паролей:

Top 1-5

123456

password

12345678

1234

pussy

Top 6-10

12345

dragon

qwerty

696969

mustang

Page 49: Hash cse lecture2

49

Популярные пароли

𝑥𝑖

𝐻 (𝑥)𝐻

𝑓

𝑥𝑖+1

0.1% множества строк из 8 символов покрывает 50% паролей

Narayanan, Shmatikov, «Fast Dictionary Attacks on Passwords Using Time-Space Tradeoff», ACM CCS’05

Page 50: Hash cse lecture2

50

Популярные пароли

Марковские цепи Конечные автоматы Любое индексируемое множество

Page 51: Hash cse lecture2

51

Добавим немного соли...

Таблица паролей:Алиса, H(пароль)

+ соль

Алиса, r, H(r||пароль)

Page 52: Hash cse lecture2

52

компромисс время-место для соли Вариант 1:

Пространство

Вариант 2:𝑀 2⋅𝑇 >(𝑆×𝑁 )2

S значений соли

𝑚2 𝑇>𝑁2 …𝑚2 𝑇>𝑁2 𝑚2 𝑇>𝑁2

Page 53: Hash cse lecture2

53

компромисс время-место для соли Вариант 1:

Пространство

Вариант 2:𝑀 2⋅𝑇 >(𝑆×𝑁 )2

𝑀 2𝑇 >(𝑆×𝑁 )2

Открытый вопрос: компромисс для соли?

Page 54: Hash cse lecture2

54

Мееедленнные функции

Искусственно замедлять функцию: Таблицы для итерированных

функций?

Стандарт на HKDF (RFC 5869)

Krawczyk, “Cryptographic Extraction and Key Derivation: The HKDF Scheme”, CRYPTO 2010