Upload
lilosea
View
1.050
Download
1
Embed Size (px)
Citation preview
1
Криптографическиехэш-функции
Илья МироновЕкатеринбург
16-17 апреля, 2011
2
О докладчике
1993-99 мат-мех СПбГУ
1999-2003 Ph.D., Стэнфорд, США Анализ RC4 как тасование колоды
карт
2003- Microsoft Research, Silicon Valley криптография privacy
3
Microsoft Research
Более 800 человек
Активная программа стажеров!
4
Почему хэш-функции?
Один из основных примитивов Обманчивая простота Увлекательная теория Международный конкурс!
5
План
Определение, применения Конструкция:
Davies-Meyer Merkle-Damgård
Общие атаки демонстрация
Конкретные хэш-функции Соревнование SHA-3 Заключение
6
План
Определение, применения Конструкция:
Davies-Meyer Merkle-Damgård
Общие атаки демонстрация
Конкретные хэш-функции Соревнование SHA-3 Заключение
7
Мир хэш-функций
Теория
ПрактикаАтаки
8
Мир хэш-функций
Практика
Атаки
Теория
Стандарт SHA-3
9
Что такое хэш-функция?
H: {0,1}*→{0,1}n
HM xсообщение хэш
10
Что такое хэш-функция?
Hk: {0,1}*→{0,1}n
k— ключ или индекс
HM xсообщение хэш
Что такое криптографическая хэш-функция?
Устойчивость к нахождению:
?
x
прообраза
?
x
второго прообраза
M
x
?
?
коллизии
?
?
=
11
12
Применение: Таблицы паролей
12
пароль
Алиса H(пароль1)
Боря H(пароль2)
Вера H(пароль3)
Гена H(пароль4)
пароль ?= пароль1
принять или отказать
Алиса пароль1
Боря пароль2
Вера пароль3
Гена пароль4
H(пароль) ?=H(пароль1)
Алиса Боб
13
Требование к безопасности?Дано:
x=H(пароль)Найти:
любую строку M, удовлетворяющуюH(M) = x
H — устойчива к нахождению прообраза (односторонняя функция)
14
Применение:Цифровые подписиСхема RSA
параметры: N = pq, ed = 1 mod φ(N) Проблемы:
- длинное M- C является
подписью для любого M + kN
подпись:C=Md mod N
проверка:Ce=M mod N
подпись:C=H(M)d mod N
проверка:Ce=H(M) mod N
15
Применение: SSL/TLS
15
Алиса Сервер
http://amazon.com
открытый ключ
сертификатэтот ключ
принадлежитAmazon.com
+подпись
16
Применение: SSL/TLS
16
Алиса Сервер
http://amazon.com
открытый
ключсертифика
т
17
Требования к безопасности?Дано:
C — подпись M, то есть C = H(M)d mod NНайти:
строку M′, удовлетворяющуюH(M) = H(M′)
H — устойчива к нахождению второго прообраза
18
Переговоры
18
Алиса Боб
договор
договор+подпись
переговоры
19
Переговоры
19
Алиса Боб
договор
договор+подпись
переговоры
договор′
договор′+подпись
20
Требования к безопасности?Найти:
любые две строки M и M′, так чтоH(M) = H(M′)
H — устойчива к нахождению коллизий
21
Стойкость идеальной хэш-функции
Устойчивость к нахождению:
?
x
прообраза
?
x
второго прообраза
M
x
?
?
коллизии
?
?
=
2n вычислений 2n 2n/2
22
Парадокс дня рождения
23≈√365 ⋅1.2
23
Теория
Коллизии Обязательно существуют Парадокс дня рождения: 2n/2
Второй прообраз 2n
Односторонность 2nDan Simon’98
24
План
Определение, применения Конструкция:
Davies-Meyer Merkle-Damgård
Общие атаки демонстрация
Конкретные хэш-функции Соревнование SHA-3 Заключение
25
Конструкции
Две основных компоненты Сжимающая функция Итератор
26
Сжимающая функция
512 бит 160 бит
27
Сжимающая функция
512 бит 160 бит
28
Сжимающая функция
H
M
«сообщение»
«ключ»
Конструкция Davies-Meyer (~1979)
29
Итератор
IV
M0 M1 M2 M3
H0 H1 H2 H3
Конструкция Merkle-Damgård (1989)
30
Доказательство?
IV
M0 M1 M2 M3
H0 H1 H2 H3
длина
H4
31
Обзор конструкции
M H(M)
32
Обзор конструкции
IV
M0 M1 M2 M3
H0 H1 H2 H3
длина
H4
33
M
Обзор конструкции
34
Обзор конструкции
…
a1
b1
c1
d1
a2
b2
c2
d2
a3
b3
c3
d3
a48
b48
c48
d48
35
IVM H(M)
Черный ящикНе
36
Аутентификация
IV
k M1 M2 M3
H0 H1 H2 H3
MAC: Hk(M) = H(k || M)
Hk(M || M3) = C(Hk(M), M3)
37
HMAC
MAC: Hk1,k2(M) = H(k2 || H(k1 || M))
Доказательство основывается на устойчивости к коллизиям
38
Каскадные хэш-функции
F(M) = G1(M) || G2(M) – каскадная функция
«Если G1 и G2 независимы, то для поиска коллизии для F необходимо найти коллизии для обеих функций одновременно. Это требует произведения усилий, необходимых для атак на G1 и G2 по отдельности.»
Handbook of Applied Cryptography
39
Атака Жу (Joux)
IV
M0, N0
H0 H1 H2 H3
k 2n/2 усилия для нахождения 2k коллизий
M1, N1 M2, N2 M3, N3
40
Атака Жу
1. Проделав k·2n/2 вычислений, находим 2k коллизий для G1
2. Положив k = n/2, мы найдем среди них коллизию M, N для G2
3. G1(M) = G1(N) и G2(M) = G2(N)
41
«Отравленный блок»
IV
M0
H0 H1 H2 H3
M1 M2, N2 M3
42
if (R1 == R1) then print(“Dr. Jekyll”) else print(“Mr. Hyde”)
if (R2 == R1) then print(“Dr. Jekyll”) else print(“Mr. Hyde”)
Атакуем Postscript
43
План
Определение, применения Конструкция:
Davies-Meyer Merkle-Damgård
Общие атаки демонстрация
Конкретные хэш-функции Соревнование SHA-3 Заключение
44
Краткая история
1990 1995 2000 2005 2010
MD4
128 MD5128
SHA-0
160
SHA-1
SHA-2256
SH
A-3
256
512512
45
Хэш-функции 90-х
Имя Автор Длина Кол-во раундов
Год
MD4 Ron Rivest 128 bit 48 раундов
1990
MD5 Ron Rivest 128 bit 64 раундов
1992
SHA0 NIST 160 bit 80 раундов
1993
SHA1 NIST 160 bit 80 раундов
1995
46
Хэш-функции 2000-х
Имя Автор Слово
Длина Раунды
Имя
SHA-256 NIST 32 256 64 2002
SHA-512 NIST 64 512 80 2002
Whirlpool
Barreto, Rijmen
— 512 10 2003
47
Attacks on MD4-MD5
hash author type complexity
year
MD4
Dobbertin collision 222 1996
Wang et al. collision 28 2005
MD5
dan Boer & Bosselaers
pseudo-collision
216 1993
Dobbertin free-start (chosen IV)
234 1996
Wang & Yu collision 239 2005
48
Attacks on MD4-MD5
hash author type complexity
year
MD4
Dobbertin collision 222 1996
Wang et al. collision 28 2005
MD5
dan Boer & Bosselaers
pseudo-collision
216 1993
Dobbertin free-start (chosen IV)
234 1996
Wang & Yu collision 239 2005
49
Attack on SHA-0,1
hash author type complexity year
SHA0
Chabaud & Joux
collision 261 (theory) 1998
Biham & Chen
near-collision
256 2004
Biham et al. collision 251 2005
Wang et al. collision 239 2005
SHA1
Biham et al. collision(40 rounds)
2005
Wang et al. collision(58 rounds)
233 2005
Wang et al. collision 269 (theory) 2005
50
Развитие атак
M1
M2
1-3×64 байт
Первое поколение атак на MD4,MD5, SHA-0,1:
51
Развитие атак
M1
M2
1-3×64 байт
Произвольный префикс:
52
Sotirov et al.’08
Self-signed
RapidSSL
user1
user2
user3
MD5 Collisions
53
Два сертификата
серийный номер
срок годности
настоящее имя
ключ RSA
расширение X.509
подпись
сертификат врага
ключ RSA врага
расширение X.509
расширение Netscape
подпись
префиксы
коллизия
идентичныебиты
54
План
Определение, применения Конструкция:
Davies-Meyer Merkle-Damgård
Общие атаки демонстрация
Конкретные хэш-функции Соревнование SHA-3 Заключение
55
Соревнование SHA-3
В 2005 году принято решение о выработке нового стандарта в рамках соревнования Модель – стандарт AES
Формальное объявление – 2 ноября 2007
Начало соревнования: конец 2008 года
Первый раунд: 15 кандидатов Второй раунд: 5 кандидатов Выбор финалиста – 2012 год
Соревнование SHA-3
56
2008 2009 2010 2011 2012
51
64
14
51
5
Соревнование SHA-3
57
2008 2009 2010 2011 2012
51
64
14=15-123
MD6 снят авторами?
58
Финалисты
BLAKE Grøstl JH Keccak Skein
59
BLAKE
Интересная внутренняя структура
Непрозрачный дизайн: много произвольно выбранных
констант нет доказательств
хорошая скорость
60
Grøstl
Основан на AES: может использовать AES-NI
много статей, один из медленных rebound attack
61
Keccak
Не Merkle-Damgård!
Перестановка – быстрая и компактная в хардвере
Не работают стандартные методы криптанализа
62
Keccak
“Трехмерный AES”
63
Keccak: операция θ
64
Keccak: операция ρ
65
Keccak: операция π
66
Keccak: операция χ
67
JH
Не Merkle-Damgård 4-битовые S-Box Относительно малоизучен
68
Skein
Самый простой Традиционные компоненты:
Davies-Meyer Merkle-Damgård
Три операции:
69
Структура
8- битовый S-Box: Grøstl 4-битовый S-Box: Keccak, JH : BLAKE, Skein
70
Скорость на Intel Core i7
Источник: http://bench.cr.yp.to/web-impl/amd64-ellprecisio-crypto_hash.html
MD4 MD5 SHA-1 Skein-256
Blake-256
Keccak-256
AES CTR
JH-256 SHA-256
Grøstl-256
0
5
10
15
20
25cycle
s/byte
on I
nte
l C
ore
i7
71
256 vs 512
Skein Blake Keccak JH Grøstl0
5
10
15
20
25
30
35
256-bit output512-bit output
cycle
s/byte
on I
nte
l C
ore
i7
72
Производительность на хадвере
Keccak Grøstl JH Blake Skein0
1
2
3
4
5
6
7
8
Hardware throughputT
hro
ughput
norm
ali
zed t
o S
HA
-256
73
План
Определение, применения Конструкция:
Davies-Meyer Merkle-Damgård
Общие атаки демонстрация
Конкретные хэш-функции Соревнование SHA-3 Заключение
74
Что дальше?
Не использовать MD4, MD5, SHA-1 Готовиться к новому стандарту Режимы использования хэш-функций:
рандомизация переход с HMAC на другие виды
MAC’ов
75
Анонс: Лекции завтра
Лекция 1: Поиск коллизий
без использования памяти параллельный для инкрементальных хэш-функций
Размен память/время Лекция 2:
Модель случайного оракула Неразличимость конструкций
76
Аутентификация
UMACJohn Black, Shai Halevi, Hugo
Krawczyk, Ted Krovetz, and Phillip Rogaway,
1999на длинных сообщения ~1.5 такта/байт
77
Target-collision resistance
Hk(M)Враг: Алиса
x
k
y
Hk(x)=Hk(y)
78
TCR хэш
Hk(M) – TCR
Для подписи M:1. Генерируем случайное k2. Подписываем k || Hk(M)
Атака?Найти M′, так что
k || Hk(M) = k || Hk(M′)