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

Hash cse lecture3

  • Upload
    lilosea

  • View
    1.115

  • Download
    2

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Hash cse lecture3

1

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

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

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

Page 2: Hash cse lecture3

2

План лекции

Случайный оракул Чтение Запись

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

Page 3: Hash cse lecture3

3

Алгоритм Диффи-ХеллманаАлиса Боб

случайное a

gaслучайное b

gb

находим gabнаходим gab

ключ = gabH( )

g G, ord g = p

Page 4: Hash cse lecture3

4

Предположение

Дискретный логарифм?

Computational Diffie-Hellman problem?

Decisional Diffie-Hellman problem:

Дано: Найти:

Дано: Найти:

Дано: или Решить: да или нет

Page 5: Hash cse lecture3

5

Случайный оракул

𝑀 𝑥

Page 6: Hash cse lecture3

6

Алгоритм Диффи-ХеллманаАлиса Боб

случайное a

gaслучайное b

gb

находим gabнаходим gab

ключ = gabH( )

g G, ord g = p

случайный оракул

Page 7: Hash cse lecture3

7

Предположение

Дискретный логарифм?

Computational Diffie-Hellman problem?

Decisional Diffie-Hellman problem:

Дано: Найти:

Дано: Найти:

Дано: или Решить: да или нет

Page 8: Hash cse lecture3

8

RSA

Схема подписи RSAПараметры: N = pq, ed = 1 mod φ(N)Подпись: C=Me mod NПроверка: Cd=M mod N

Атака:C1 и С2 подписи на M1 и M2

(C1C2)d=M1M2

Подпись: C=H(M)e mod NПроверка: Cd=H(M) mod N

(C1C2)d=H(M1)H(M2

)

Page 9: Hash cse lecture3

9

Предположение

Проблема RSA?

Decisional problem - ?

Дано: Найти:

Page 10: Hash cse lecture3

10

Проблема RSA

Дано: Найти:

Враг, подделывающийподпись

𝑀 1

𝐶 1𝑀 2𝐶2…

n подписей

𝑀 ,𝐶— подделка

Page 11: Hash cse lecture3

11

Случайный оракул

𝑀 𝑥

Page 12: Hash cse lecture3

12

Проблема RSA

Дано: Найти:

Враг, подделывающийподпись

S-запросы: подпись на M

H-запросы:

𝑀 ,𝐶— подделка

n S-запросов и q H-запросов

Page 13: Hash cse lecture3

13

Отвечаем на запросы

1. Загадаем 2. На все , где отвечаем так, что знаем

подпись:- случайное число mod N

3. На ответим

Дано: Найти: mod N

Page 14: Hash cse lecture3

14

Сведение

С вероятностью мы угадали место подделки!

Потеря сведения – .

Page 15: Hash cse lecture3

Уменьшаем потерю

H-запросы:1. Выбираем случайное 2. С вероятностью отвечаем

отвечаем

Cможем ответить на все S-запросы:

Подделка поможет решить задачу: p

15

Page 16: Hash cse lecture3

16

Уменьшаем потерю

Вероятность успеха:

Цель:

Page 17: Hash cse lecture3

17

Уменьшаем потерю

max𝑝 (1−𝑝 )𝑛≈ 1𝑒 ∙𝑛

≪ 1𝑞

𝑝OPT=1

𝑛+1

Page 18: Hash cse lecture3

18

Случайный оракул

𝑀 𝑥

- Traceability- Programmability

Page 19: Hash cse lecture3

19

Случайный оракул?

MH(M

)

Page 20: Hash cse lecture3

20

Осторожно, модель!

Не предположение, а модель «Эвристика» - аргумент в пользу

протокола, но не доказательство Серия работ «доказуемо в модели

случайного оракула, ломается при замене на любую хэш-функцию»: Canetti, Goldreich, Halevi, STOC 1998 Nielsen, Crypto 2002  Goldwasser and Tauman, FOCS 2003 Bellare, Boldyreva, Palacio, Eurocrypt 2004

Page 21: Hash cse lecture3

21

Два мира

Оракул• RSA• DSA• эффективные

конструкции

«Стандартная модель»• экзотические

предположения• сложные схемы

Page 22: Hash cse lecture3

22

NIST в Federal Register: “C.1 SecurityAlgorithms will be judged on the following factors:…• The extent to which the algorithm output is indistinguishable from a random oracle”

http://csrc.nist.gov/groups/ST/hash/documents/FR_Notice_Jan07.pdf

Page 23: Hash cse lecture3

23

Как строить случайные оракулы?

Случайный оракул – монолитная структура.

Page 24: Hash cse lecture3

24

Конкатенация оракулов

Дано: F и G – случайные оракулы

F(M)||G(M) – тоже случайный оракул

Page 25: Hash cse lecture3

25

Конкатенация оракулов

Дано: H – случайный оракул с длиной выхода бит:

• –случайный оракул• – случайный оракул

Page 26: Hash cse lecture3

26

Задача

Используя данного оракула, строить других оракулов с наперед заданными свойствами:

Другой вход Другой выход Обратимость («идеальный шифр»)

Уметь все эти свойства доказывать!

Page 27: Hash cse lecture3

27

Indifferentiability Framework

алгоритм C

оракулG

оракулF

симуляторS

distinguisher D

Coron et al., “Merkle-Damgård Revisited: how to Construct a Hash Function”, CRYPTO 2004

не может различить два мира

Page 28: Hash cse lecture3

28

Композиция

алгоритмС

оракулG

системаP

врагA

оракулF

системаP

врагA′

Page 29: Hash cse lecture3

29

Композиция

алгоритмС

оракулG

системаP

врагA

оракулF

системаP

врагA

симуляторS

D D

Page 30: Hash cse lecture3

30

Композиция

алгоритмС

оракулG

системаP

врагA

оракулF

системаP

врагA

симуляторS

A′

Page 31: Hash cse lecture3

31

Композиция

алгоритмС

оракулG

системаP

врагA

оракулF

системаP

врагA′

Page 32: Hash cse lecture3

32

Вывод

Если конструкция удовлетворяет indifferentiability framework, её можно использовать вместо настоящего случайного оракула.

Page 33: Hash cse lecture3

33

Merkle-Damgård?

IV

M0 M1 M2 M3

H0 H1 H2 H3

оракул оракул?

Page 34: Hash cse lecture3

34

Merkle-Damgård?

IV

M0 M1

H0 H1

Page 35: Hash cse lecture3

35

Merkle-Damgård?

IV

M0 M1

H0 H1

C

G G IV

M0 M1

H0 H1

F

S S

distinguisher D

Page 36: Hash cse lecture3

36

Различаем

1. Выбираем M0, M1

2. H0=F(M0)

3. H1=S(H0,M1)

4. H1 ?= F(M0,M1)

Page 37: Hash cse lecture3

37

Merkle-Damgård?

IV

M0 M1

H0 H1

C

G G IV

M0 M1

H0 H1

F

S S

distinguisher D

Page 38: Hash cse lecture3

38

Отличие!

Cправа результаты будут разными, слева – одинаковыми!

Page 39: Hash cse lecture3

39

Усекаем выход

IV

M0 M1 M2 M3

H0 H1 H2 H3

Page 40: Hash cse lecture3

40

Prefix-free encoding

IV

M0 M1 M2 M3

H0 H1 H2 H3

Page 41: Hash cse lecture3

41

Атака в операций

IV

M0, N0 M1 M2 M3

H0 H1 H2 H3

Page 42: Hash cse lecture3

42

Отличие от случайного оракула

H(M0,M1,M2,M3)=H(N0,M1,M2,M3)

для любых M1,M2,M3!

Page 43: Hash cse lecture3

43

Конструкция Лукса

IV

M0

H0 H1

IVG0 G1

M1

Page 44: Hash cse lecture3

44

Скорость

SHA-1: одно применение сжимающей функции на 512 бит входа

Конструкция Лукса: два применения сжимающей функции на 352 = 512-160 бит входа

Эффективность упала на 2/3

Page 45: Hash cse lecture3

45

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

Схемы, сохраняющие свойство случайного оракула лучше, чем , с высокой скоростью?

Page 46: Hash cse lecture3

46

ВОПРОСЫ?