78
1 Криптографические хэш-функции Илья Миронов Екатеринбург 16-17 апреля, 2011

Hash cse lecture1

  • Upload
    lilosea

  • View
    1.050

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Hash cse lecture1

1

Криптографическиехэш-функции

Илья МироновЕкатеринбург

16-17 апреля, 2011

Page 2: Hash cse lecture1

2

О докладчике

1993-99 мат-мех СПбГУ

1999-2003 Ph.D., Стэнфорд, США Анализ RC4 как тасование колоды

карт

2003- Microsoft Research, Silicon Valley криптография privacy

Page 3: Hash cse lecture1

3

Microsoft Research

Более 800 человек

Активная программа стажеров!

Page 4: Hash cse lecture1

4

Почему хэш-функции?

Один из основных примитивов Обманчивая простота Увлекательная теория Международный конкурс!

Page 5: Hash cse lecture1

5

План

Определение, применения Конструкция:

Davies-Meyer Merkle-Damgård

Общие атаки демонстрация

Конкретные хэш-функции Соревнование SHA-3 Заключение

Page 6: Hash cse lecture1

6

План

Определение, применения Конструкция:

Davies-Meyer Merkle-Damgård

Общие атаки демонстрация

Конкретные хэш-функции Соревнование SHA-3 Заключение

Page 7: Hash cse lecture1

7

Мир хэш-функций

Теория

ПрактикаАтаки

Page 8: Hash cse lecture1

8

Мир хэш-функций

Практика

Атаки

Теория

Стандарт SHA-3

Page 9: Hash cse lecture1

9

Что такое хэш-функция?

H: {0,1}*→{0,1}n

HM xсообщение хэш

Page 10: Hash cse lecture1

10

Что такое хэш-функция?

Hk: {0,1}*→{0,1}n

k— ключ или индекс

HM xсообщение хэш

Page 11: Hash cse lecture1

Что такое криптографическая хэш-функция?

Устойчивость к нахождению:

?

x

прообраза

?

x

второго прообраза

M

x

?

?

коллизии

?

?

=

11

Page 12: Hash cse lecture1

12

Применение: Таблицы паролей

12

пароль

Алиса H(пароль1)

Боря H(пароль2)

Вера H(пароль3)

Гена H(пароль4)

пароль ?= пароль1

принять или отказать

Алиса пароль1

Боря пароль2

Вера пароль3

Гена пароль4

H(пароль) ?=H(пароль1)

Алиса Боб

Page 13: Hash cse lecture1

13

Требование к безопасности?Дано:

x=H(пароль)Найти:

любую строку M, удовлетворяющуюH(M) = x

H — устойчива к нахождению прообраза (односторонняя функция)

Page 14: Hash cse lecture1

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

Page 15: Hash cse lecture1

15

Применение: SSL/TLS

15

Алиса Сервер

http://amazon.com

открытый ключ

сертификатэтот ключ

принадлежитAmazon.com

+подпись

Page 16: Hash cse lecture1

16

Применение: SSL/TLS

16

Алиса Сервер

http://amazon.com

открытый

ключсертифика

т

Page 17: Hash cse lecture1

17

Требования к безопасности?Дано:

C — подпись M, то есть C = H(M)d mod NНайти:

строку M′, удовлетворяющуюH(M) = H(M′)

H — устойчива к нахождению второго прообраза

Page 18: Hash cse lecture1

18

Переговоры

18

Алиса Боб

договор

договор+подпись

переговоры

Page 19: Hash cse lecture1

19

Переговоры

19

Алиса Боб

договор

договор+подпись

переговоры

договор′

договор′+подпись

Page 20: Hash cse lecture1

20

Требования к безопасности?Найти:

любые две строки M и M′, так чтоH(M) = H(M′)

H — устойчива к нахождению коллизий

Page 21: Hash cse lecture1

21

Стойкость идеальной хэш-функции

Устойчивость к нахождению:

?

x

прообраза

?

x

второго прообраза

M

x

?

?

коллизии

?

?

=

2n вычислений 2n 2n/2

Page 22: Hash cse lecture1

22

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

23≈√365 ⋅1.2

Page 23: Hash cse lecture1

23

Теория

Коллизии Обязательно существуют Парадокс дня рождения: 2n/2

Второй прообраз 2n

Односторонность 2nDan Simon’98

Page 24: Hash cse lecture1

24

План

Определение, применения Конструкция:

Davies-Meyer Merkle-Damgård

Общие атаки демонстрация

Конкретные хэш-функции Соревнование SHA-3 Заключение

Page 25: Hash cse lecture1

25

Конструкции

Две основных компоненты Сжимающая функция Итератор

Page 26: Hash cse lecture1

26

Сжимающая функция

512 бит 160 бит

Page 27: Hash cse lecture1

27

Сжимающая функция

512 бит 160 бит

Page 28: Hash cse lecture1

28

Сжимающая функция

H

M

«сообщение»

«ключ»

Конструкция Davies-Meyer (~1979)

Page 29: Hash cse lecture1

29

Итератор

IV

M0 M1 M2 M3

H0 H1 H2 H3

Конструкция Merkle-Damgård (1989)

Page 30: Hash cse lecture1

30

Доказательство?

IV

M0 M1 M2 M3

H0 H1 H2 H3

длина

H4

Page 31: Hash cse lecture1

31

Обзор конструкции

M H(M)

Page 32: Hash cse lecture1

32

Обзор конструкции

IV

M0 M1 M2 M3

H0 H1 H2 H3

длина

H4

Page 33: Hash cse lecture1

33

M

Обзор конструкции

Page 34: Hash cse lecture1

34

Обзор конструкции

a1

b1

c1

d1

a2

b2

c2

d2

a3

b3

c3

d3

a48

b48

c48

d48

Page 35: Hash cse lecture1

35

IVM H(M)

Черный ящикНе

Page 36: Hash cse lecture1

36

Аутентификация

IV

k M1 M2 M3

H0 H1 H2 H3

MAC: Hk(M) = H(k || M)

Hk(M || M3) = C(Hk(M), M3)

Page 37: Hash cse lecture1

37

HMAC

MAC: Hk1,k2(M) = H(k2 || H(k1 || M))

Доказательство основывается на устойчивости к коллизиям

Page 38: Hash cse lecture1

38

Каскадные хэш-функции

F(M) = G1(M) || G2(M) – каскадная функция

«Если G1 и G2 независимы, то для поиска коллизии для F необходимо найти коллизии для обеих функций одновременно. Это требует произведения усилий, необходимых для атак на G1 и G2 по отдельности.»

Handbook of Applied Cryptography

Page 39: Hash cse lecture1

39

Атака Жу (Joux)

IV

M0, N0

H0 H1 H2 H3

k 2n/2 усилия для нахождения 2k коллизий

M1, N1 M2, N2 M3, N3

Page 40: Hash cse lecture1

40

Атака Жу

1. Проделав k·2n/2 вычислений, находим 2k коллизий для G1

2. Положив k = n/2, мы найдем среди них коллизию M, N для G2

3. G1(M) = G1(N) и G2(M) = G2(N)

Page 41: Hash cse lecture1

41

«Отравленный блок»

IV

M0

H0 H1 H2 H3

M1 M2, N2 M3

Page 42: Hash cse lecture1

42

if (R1 == R1) then print(“Dr. Jekyll”) else print(“Mr. Hyde”)

if (R2 == R1) then print(“Dr. Jekyll”) else print(“Mr. Hyde”)

Атакуем Postscript

Page 43: Hash cse lecture1

43

План

Определение, применения Конструкция:

Davies-Meyer Merkle-Damgård

Общие атаки демонстрация

Конкретные хэш-функции Соревнование SHA-3 Заключение

Page 44: Hash cse lecture1

44

Краткая история

1990 1995 2000 2005 2010

MD4

128 MD5128

SHA-0

160

SHA-1

SHA-2256

SH

A-3

256

512512

Page 45: Hash cse lecture1

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

Page 46: Hash cse lecture1

46

Хэш-функции 2000-х

Имя Автор Слово

Длина Раунды

Имя

SHA-256 NIST 32 256 64 2002

SHA-512 NIST 64 512 80 2002

Whirlpool

Barreto, Rijmen

— 512 10 2003

Page 47: Hash cse lecture1

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

Page 48: Hash cse lecture1

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

Page 49: Hash cse lecture1

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

Page 50: Hash cse lecture1

50

Развитие атак

M1

M2

1-3×64 байт

Первое поколение атак на MD4,MD5, SHA-0,1:

Page 51: Hash cse lecture1

51

Развитие атак

M1

M2

1-3×64 байт

Произвольный префикс:

Page 52: Hash cse lecture1

52

Sotirov et al.’08

Self-signed

RapidSSL

user1

user2

user3

MD5 Collisions

Page 53: Hash cse lecture1

53

Два сертификата

серийный номер

срок годности

настоящее имя

ключ RSA

расширение X.509

подпись

сертификат врага

ключ RSA врага

расширение X.509

расширение Netscape

подпись

префиксы

коллизия

идентичныебиты

Page 54: Hash cse lecture1

54

План

Определение, применения Конструкция:

Davies-Meyer Merkle-Damgård

Общие атаки демонстрация

Конкретные хэш-функции Соревнование SHA-3 Заключение

Page 55: Hash cse lecture1

55

Соревнование SHA-3

В 2005 году принято решение о выработке нового стандарта в рамках соревнования Модель – стандарт AES

Формальное объявление – 2 ноября 2007

Начало соревнования: конец 2008 года

Первый раунд: 15 кандидатов Второй раунд: 5 кандидатов Выбор финалиста – 2012 год

Page 56: Hash cse lecture1

Соревнование SHA-3

56

2008 2009 2010 2011 2012

51

64

14

51

Page 57: Hash cse lecture1

5

Соревнование SHA-3

57

2008 2009 2010 2011 2012

51

64

14=15-123

MD6 снят авторами?

Page 58: Hash cse lecture1

58

Финалисты

BLAKE Grøstl JH Keccak Skein

Page 59: Hash cse lecture1

59

BLAKE

Интересная внутренняя структура

Непрозрачный дизайн: много произвольно выбранных

констант нет доказательств

хорошая скорость

Page 60: Hash cse lecture1

60

Grøstl

Основан на AES: может использовать AES-NI

много статей, один из медленных rebound attack

Page 61: Hash cse lecture1

61

Keccak

Не Merkle-Damgård!

Перестановка – быстрая и компактная в хардвере

Не работают стандартные методы криптанализа

Page 62: Hash cse lecture1

62

Keccak

“Трехмерный AES”

Page 63: Hash cse lecture1

63

Keccak: операция θ

Page 64: Hash cse lecture1

64

Keccak: операция ρ

Page 65: Hash cse lecture1

65

Keccak: операция π

Page 66: Hash cse lecture1

66

Keccak: операция χ

Page 67: Hash cse lecture1

67

JH

Не Merkle-Damgård 4-битовые S-Box Относительно малоизучен

Page 68: Hash cse lecture1

68

Skein

Самый простой Традиционные компоненты:

Davies-Meyer Merkle-Damgård

Три операции:

Page 69: Hash cse lecture1

69

Структура

8- битовый S-Box: Grøstl 4-битовый S-Box: Keccak, JH : BLAKE, Skein

Page 70: Hash cse lecture1

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

Page 71: Hash cse lecture1

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

Page 72: Hash cse lecture1

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

Page 73: Hash cse lecture1

73

План

Определение, применения Конструкция:

Davies-Meyer Merkle-Damgård

Общие атаки демонстрация

Конкретные хэш-функции Соревнование SHA-3 Заключение

Page 74: Hash cse lecture1

74

Что дальше?

Не использовать MD4, MD5, SHA-1 Готовиться к новому стандарту Режимы использования хэш-функций:

рандомизация переход с HMAC на другие виды

MAC’ов

Page 75: Hash cse lecture1

75

Анонс: Лекции завтра

Лекция 1: Поиск коллизий

без использования памяти параллельный для инкрементальных хэш-функций

Размен память/время Лекция 2:

Модель случайного оракула Неразличимость конструкций

Page 76: Hash cse lecture1

76

Аутентификация

UMACJohn Black, Shai Halevi, Hugo

Krawczyk, Ted Krovetz, and Phillip Rogaway,

1999на длинных сообщения ~1.5 такта/байт

Page 77: Hash cse lecture1

77

Target-collision resistance

Hk(M)Враг: Алиса

x

k

y

Hk(x)=Hk(y)

Page 78: Hash cse lecture1

78

TCR хэш

Hk(M) – TCR

Для подписи M:1. Генерируем случайное k2. Подписываем k || Hk(M)

Атака?Найти M′, так что

k || Hk(M) = k || Hk(M′)