Hash cse lecture3

Preview:

DESCRIPTION

 

Citation preview

1

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

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

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

2

План лекции

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

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

3

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

случайное a

gaслучайное b

gb

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

ключ = gabH( )

g G, ord g = p

4

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

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

Computational Diffie-Hellman problem?

Decisional Diffie-Hellman problem:

Дано: Найти:

Дано: Найти:

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

5

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

𝑀 𝑥

6

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

случайное a

gaслучайное b

gb

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

ключ = gabH( )

g G, ord g = p

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

7

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

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

Computational Diffie-Hellman problem?

Decisional Diffie-Hellman problem:

Дано: Найти:

Дано: Найти:

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

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

)

9

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

Проблема RSA?

Decisional problem - ?

Дано: Найти:

10

Проблема RSA

Дано: Найти:

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

𝑀 1

𝐶 1𝑀 2𝐶2…

n подписей

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

11

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

𝑀 𝑥

12

Проблема RSA

Дано: Найти:

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

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

H-запросы:

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

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

13

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

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

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

3. На ответим

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

14

Сведение

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

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

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

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

отвечаем

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

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

15

16

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

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

Цель:

17

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

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

≪ 1𝑞

𝑝OPT=1

𝑛+1

18

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

𝑀 𝑥

- Traceability- Programmability

19

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

MH(M

)

20

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

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

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

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

21

Два мира

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

конструкции

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

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

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

23

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

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

24

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

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

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

25

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

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

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

26

Задача

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

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

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

27

Indifferentiability Framework

алгоритм C

оракулG

оракулF

симуляторS

distinguisher D

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

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

28

Композиция

алгоритмС

оракулG

системаP

врагA

оракулF

системаP

врагA′

29

Композиция

алгоритмС

оракулG

системаP

врагA

оракулF

системаP

врагA

симуляторS

D D

30

Композиция

алгоритмС

оракулG

системаP

врагA

оракулF

системаP

врагA

симуляторS

A′

31

Композиция

алгоритмС

оракулG

системаP

врагA

оракулF

системаP

врагA′

32

Вывод

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

33

Merkle-Damgård?

IV

M0 M1 M2 M3

H0 H1 H2 H3

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

34

Merkle-Damgård?

IV

M0 M1

H0 H1

35

Merkle-Damgård?

IV

M0 M1

H0 H1

C

G G IV

M0 M1

H0 H1

F

S S

distinguisher D

36

Различаем

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

2. H0=F(M0)

3. H1=S(H0,M1)

4. H1 ?= F(M0,M1)

37

Merkle-Damgård?

IV

M0 M1

H0 H1

C

G G IV

M0 M1

H0 H1

F

S S

distinguisher D

38

Отличие!

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

39

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

IV

M0 M1 M2 M3

H0 H1 H2 H3

40

Prefix-free encoding

IV

M0 M1 M2 M3

H0 H1 H2 H3

41

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

IV

M0, N0 M1 M2 M3

H0 H1 H2 H3

42

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

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

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

43

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

IV

M0

H0 H1

IVG0 G1

M1

44

Скорость

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

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

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

45

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

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

46

ВОПРОСЫ?