Криптографические протоколы - Lection
.pdfЭкспоненциальный протокол подбрасывания монеты
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