Hash cse lecture1

Preview:

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′)