Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cryptology-lectures_a4_10pt_2.docx
Скачиваний:
8
Добавлен:
22.12.2018
Размер:
678 Кб
Скачать
☆

Глава 13

Криптографические системы на основе дискретного

логарифмирования

Литература

1. Н. Коблиц, Курс теории чисел и криптографии, Москва, ТВП, 2001 г., 154 с.

2. В.Н. Крупский, Введение в сложность вычислений, М.: Факториал Пресс, 2006 г., 128 с.

3. Введение в криптографию / под общей ред. В.В. Ященко, -СПб, Питер, 2001 г., 288 с.

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

В поле вещественных чисел возведение в степень (нахождение bx с заданной точностью) не намного проще обратной

операции (нахождения logb x с заданной точностью).

Рассмотрим теперь конечную группу, например (Z/nZ)∗ или Fq (с умножением в качестве групповой операции).

Метод повторного возведения в квадрат позволяет вычислить b при больших x сравнительно быстро (за полиноми-

альное по log x время).

Определение. Пусть G – конечная группа, b – элемент группы G и y – элемент группы G, являющийся степенью b.

Любое целое число x, для которого bx = y, называется дискретным логарифмом y по основанию b.

13.2. Система Диффи-Хеллмана обмена ключами

Так как криптосистемы с открытым ключом значительно медленнее классических криптосистем (по крайней мере,

при нынешнем состоянии науки и техники), то разумнее использовать их в качестве дополнения к классическим

криптосистемам, с помощью которых и передаются сообщения. Зато процедуру согласования ключей классической

криптосистемы можно очень эффективно реализовать с помощью системы с открытым ключом.

Предположение Диффи-Хеллмана. Сложность вычисления gab по ga и gb чрезвычайно велика.

Предположение Диффи-Хеллмана априори не слабее предположения о чрезвычайной сложности дискретного ло-

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

ложение Диффи-Хеллмана было бы неверным.

13.3. Согласование случайного элемента из группы

Пусть значение q общеизвестно, т.е. все знают, из какого конечного поля выбирается ключ. Пусть, далее, g –

некоторый фиксированный элемент Fq , который также не является секретным. В идеале, g должен быть порождающим

элементом группы Fq .

Если же мы хотим, чтобы случайный элемент мог принимать любые значения из Fq , то g должен быть порожда-

ющим элементом.

Пусть есть два пользователя, Аида и Бернардо. Аида выбирает случайное число a между 1 и q − 1, которое она

держит в секрете, и вычисляет ga ∈ Fq , которое объявляет открыто. Бернардо делает то же самое: он случайно

выбирает b и объявляет gb. В качестве секретного ключа используется gab. Оба пользователя могут вычислить этот

ключ.

13.4. Криптосистема Мэсси-Омуры

Предположим, что все согласились использовать конечное поле Fq ; оно зафиксировано и общеизвестно. Каждый

пользователь системы втайне выбирает такое случайное целое e между 0 и q − 1, что НОД(e, q − 1) = 1, и с помощью

алгоритма Евклида вычисляет обратное к нему число d ≡ e−1 (mod q − 1), т.е. de ≡ 1 (mod q − 1).

Алиса (пользователь A) намерена передать сообщение P Бобу, она сначала посылает ему элемент P eA . Это послание

для Боба бессодержательно, так как он не знает dA (или eA, что то же самое) и не может восстановить P . Не пытаясь

понять смысл сообщения, Боб возводит его в свою степень eB и отсылает P eAeB обратно Алисе. Третий шаг состоит

в том, что Алиса несколько распутывает сообщение, возводя его в степень dA; так как P dAeA = P , то, по сути дела,

она отсылает Бобу P eB , который теперь может прочитать сообщение, возведя его в степень dB .

∗

x

∗

∗

13.5. Криптосистема Эль-Гамаля

13.5. Криптосистема Эль-Гамаля

Сначала зафиксируем очень большое конечно поле Fq и элемент g ∈ Fq (желательно, хотя и не обязательно, чтобы

он был порождающим). Предположим, что используются элементы открытого текста с численными эквивалентами

P в Fq . Каждый пользователь A выбирает случайно целое число a = aA, скажем, из диапазона 0 < a < q − 1. Это

секретный ключ дешифрования. Открытым ключом шифрования является элемент ga ∈ Fq .

Чтобы передать сообщение P пользователю A, мы выбираем случайно целое число k и посылаем A следующую

пару элементов из Fq :

(gk , P gak ).

Заметим, что вычислить gak можно, не зная a, просто возведя ga в степень k. Теперь A, зная a, может по этой

паре раскрыть P , возведя первый элемент gk в степень a-ю степень и разделив на результат второй элемент (или, что

эквивалентно, возведя gk в степень q − 1 − a и умножив на второй элемент).

13.6. Цифровая подпись на основе Эль-Гамаля

1. выбирается простое число q приблизительно в 160 бит (для этого используется генератор случайных чисел и

тест на простоту)

2. выбирается другое простое число p, сравнимое с 1 по модулю q размером приблизительно в 512 бит

3. выбирается порождающий элемент g единственной циклической подгруппы в Fp порядка q (т.е. вычисляется

(p−1)/q

g ≡ g0

(mod p) для случайного целого g0; если g = 1, то он и будет порождающим элементом)

4. выбирается секретный ключ как случайное целое число x из диапазона 0 < x < q. В качестве открытого ключа

берётся y = gx (mod p).

13.7. Вычисление и проверка подписи

Пусть Алиса хочет подписать сообщение. Сначала она применяет к своему открытому тексту хеш-функцию и

получает целое число h из диапазона 0 < h < q. Затем она выбирает случайное целое k из того же диапазона и

вычисляет gk (mod p). Пусть r – наименьший неотрицательный вычет по модулю q последнего выражения (значит, gk

сначала вычисляется по модулю p, а результат приводится по меньшему простому модулю q). Наконец, Алиса находит

такое целое s, что sk ≡ h + xr (mod q). Пара (r, s) вычетов по модулю q является её подписью.

Чтобы проверить подпись, получатель Боб вычисляет u1 ≡ s−1h (mod q) и u2 ≡ s−1r (mod q). Потом он вычисляет

g y (mod p). Если результат сравним с r по модулю q, то подпись считается подлинной. (Заметим, что gu1 yu2 ≡

−1

gs (h+xr) ≡ gk (mod p).)

51

∗

∗

u1 u2