Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Криптографические протоколы - Lection

.pdf
Скачиваний:
37
Добавлен:
17.03.2015
Размер:
533.67 Кб
Скачать

Экспоненциальный протокол подбрасывания монеты

1.A выбирает и публикует простое число p такое, что p−1 имеет большой простой множитель и все множители этого числа известны A.

Это условие необходимо, чтобы задача вычисления дискретного логарифма в группе Zp была вычислительно сложной.

2.B выбирает два таких различных образующих элемента h и g группы Zp, что задача дискретного логарифмирования относительно пары h, g решается вычис-

лительно сложно.

Эти числа B посылает A.

3.A проверят, что g и h действительно являются образующими элементами груп-

пы Zp, вырабатывает x R Zp−1 и одно из чисел yh = hx или yg = gx посылает B.

4.Задача B угадать, h или g выбрал A. Свою догадку он посылает A.

5.A сравнивает догадку B со своим выбором и свой ответ вместе с x посылает B.

6.B вычисляет hx и gx и сравнивает эти числа с числом, полученном им от A на шаге 3. Кроме того, B проверяет, что (x, p − 1) = 1.

Обоснование корректности протокола

Проанализируем возможность нечестных действий участников протокола.

A

обманет

B

, если

он сможет найти такое x0

 

 

, что gx = hx0 (mod p). Отсюда

 

 

 

1

 

Zp−1

 

следует, что g = hx0x

 

(mod p). Следовательно,

x0x−1 = logg h (mod p−1), то есть

x0 = x logg h. Это означает, что для определения x0

участник A должен уметь решать

задачу дискретного логарифмирования в группе Zp.

B может попытаться обмануть A на шаге 2 и послать A элементы g и h , не являющиеся образующими группы G. Но этот обман A обнаружит на шаге 3.

Протокол подбрасывания монеты на основе квадратичного вычета по модулю числа Блюма

1. B выбирает простые числа p и q такие, что p 6= q, p ≡ q ≡ 3 (mod 4), вычисляет n = pq и число n посылает A. Числа p и q участник A хранит в секрете.

2.A выбирает b R {1, 2, . . . , n−2 1 }, (b, n) = 1, вычисляет a = b2 (mod n) и a посылает B.

3.B решает сравнение x2 = a (mod n), находит четыре корня x1, n − x1, x2, n − x2,

x1, x2 Zn. Далее B находит c = min{x1, n − x1}, d = min{x2, n − x2} (очевидно, что b {c, d} ) и выписывает двоичное представление чисел c и d :

c = αk−1αk−2 . . . α1α0, d = βk−1βk−2 . . . β1β0.

51

Затем B находит i {0, 1, . . . , k − 1} такое, что

αj = βj, j = 0, i − 1, αi 6= βi.

Таким образом, i первый младший разряд, в котором числа c и d различаются.

Задача B состоит в определении бита αi или αi числа, выбранного участником A. Свою догадку (i, σ), σ {0, 1} B посылает A.

4.A посылает B число b.

5.B проверяет честность A, убеждаясь, что b {c, d}. Затем определяет правильность своей догадки, выписав двоичное представление числа b. После этого B посылает A p и q.

6.A проверяет честность B, вычисляя второй корень b0 6= ±b и сравнивая двоичные представления этих корней.

Обоснование корректности протокола

Проверим выполнение условий (I)–(III).

(I)Чтобы заменить σ на σ участник A должен на шаге 4 послать B корень b0 = ±b сравнения x2 = a (mod n), но знание двух таких корней, как известно, эквивалентно задаче факторизации числа n.

(II)B сможет угадать выбор A с вероятностью 1/2, поскольку сравнение x2 = a

(mod pq) имеет четыре решения, а число b выбиралось A случайно. Поэтому у B будут две равновероятные возможности выбора c, d {1, 2 . . . , n−2 1 }.

(III)Это естественное условие выполняется, так как σ {0, 1}.

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

1.B выбирает случайным образом число Блюма n = pq, p ≡ q ≡ 3 (mod 4) и посылает его A Числа p и q участник B хранит в секрете.

2. A выбирает b R Zn, вычисляет символ Якоби

 

b

= σ {−1, 1} и

a = b2 и

n

число a посылает B.

 

 

 

 

3.B находит все корни сравнения x2 = a (mod n) и пытается угадать символ Якоби σ, вычисленный участником A на шаге 2. Свою догадку δ {−1, 1} B посылает A.

4.A, получив δ, посылает число b участнику B.

5.B проверяет честность A. Для этого он сравнивает b2 с числом a.

52

Обоснование корректности протокола

 

 

 

Условие (I) выполняется, так как чтобы заменить на шаге 4 b на b0, где

b0

=

σ,

участник A должен знать p и q.

n

 

Условия (II) и (III) выполняются, поскольку для половины решений сравнения x2 = a (mod n) символ Якоби равен 1, а для другой половины он равен −1.

Протокол подбрасывания монеты на основе корней сравнения x2 = a (mod n), являющихся квадратичными вычетами

Теорема 1.

Если n = pq число Блюма, то среди решений сравнения

 

 

 

 

 

 

x2 = a4 (mod n), a Zn

 

 

 

 

(1)

только один корень x1 = a2

является квадратичным вычетом.

 

 

 

 

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

 

a2

, x

 

d, x

 

 

 

d

 

 

 

.

 

 

 

Пусть

x

 

a2, x

 

 

 

= −

все решения сравнения (1)

Можно

 

1 =

n

2 =

 

3 =

 

 

4

 

 

считать, что |xi| < 2 .

−1

 

 

 

 

−a2

 

 

−a2

 

 

 

 

 

 

Поскольку

−1

=

= −1,

то

 

=

=

−1 и, следовательно,

−a

2

не

p

q

 

 

p

q

 

является

квадратичным вычетом.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

≡ a4 (mod n). Это означает,

Допустим, что d квадратичный вычет, то есть d2

что

 

 

 

 

 

(d − a2)(d + a2) ≡ 0 (mod n).

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)

Из n(2) следует, что pq|(d −a2)(d + a2). Пусть, например, p|d −a2. С учётом условия

|xi| < 2 получим

 

 

 

q - d − a2, q | d + a2, p - d + a2.

 

 

 

 

 

 

Из последних сравнений вытекает

 

 

 

 

 

 

 

 

 

 

d

=

a2

=

 

1,

 

d

=

a2

 

= 1,

−d

=

 

1,

d

 

= 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

±

q

q

 

p

 

p

 

 

 

 

q

 

Следовательно, ±d не является квадратичным вычетом по модулю n.

Замечание. Если

n = pq

не является числом Блюма, то теорема не верна. На-

пример, пусть n = 35 = 5·7,

a = 4, a2

≡ 16,

a4 ≡ 21 (mod 35). Сравнение x2 = 11

(mod 35) имеет четыре решения x1,2 = ±16,

x3,4 = ±9. Два из них x1 = 16, x3 = 9

являются квадратичными вычетами.

 

 

 

 

 

 

 

 

 

 

Описание протокола

1.A выбирает случайным образом число Блюма n = pq, выбирает x R Zn, вычисляет y = x2, z = y2 и пару (n, z) посылает B.

2.Задача B определить чётность y. Свою догадку σ R {0, 1} он посылает A.

3.A посылает B пару (x, y).

4.B проверяет честность A, вычисляя y = x2, z = y2.

53

Обоснование корректности протокола

Проверим выполнение условий (I)–(III).

(I)A не может изменить y на число другой чётности y0 так, чтобы y02 = z, y0 6= y. Это следует из теоремы.

(II)B не сможет определить y по z без знания p и q.

(III)Это условие выполняется, поскольку при p, q → ∞

P {y чётное} = P {y нечётное} = 12.

54

AВопросы к экзамену

1.Формальные алгебраические и вероятностные модели шифра. Стойкость шифров. Совершенный шифр, теорема Шеннона. Имитостойкость шифров.

2.Стандарт шифрования DES.

3.Стандарт шифрования ГОСТ 28147-89.

4.Криптоалгоритм RND.

5.Контроль целостности информации. Общая модель хэш-функций. Код аутентификации сообщений, имитовставка.

6.Хэш-функция MD5.

7.Хэш-функция SHA.

8.Хэш-функция ГОСТ Р.34.11-94.

9.Группа точек эллиптической кривой. Элементарные теоремы о порядке группы.

10.Теорема Хассе, Лемма 1.

11.Теорема Хассе, Лемма 2.

12.Теорема Хассе, Лемма 3.

13.Стандарты ЭЦП ГОСТ Р.34.10-94 и ГОСТ Р.34.10-2001.

14.Протоколы ЭЦП Эль-Гамаля, RSA, Фиата-Шамира.

15.Протокол аутентификации Фиата-Шамира.

16.Стандарт ЭЦП DSS.

17.Протоколы передачи ключей. Протокол Kerberos.

18.Протоколы открытого распределения ключей. Депонирование ключей.

19.Протоколы предварительного распределения ключей.

20.Протоколы доказательств с нулевым разглашением.

21.Протоколы подбрасывания монеты по телефону.

22.Протоколы голосования и игры в покер по телефону.

23.Протоколы передачи секрета с забыванием.

24.Протоколы разделения секрета.

55