Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Эл-ты_криптологии-лек.doc
Скачиваний:
24
Добавлен:
24.11.2019
Размер:
757.76 Кб
Скачать

3.4. Шифр Эль-Гамаля

Пусть имеются абоненты A, B, C, ... , которые хотят передавать друг другу зашифрованные сообщения, не имея защищенных каналов связи. Шифр Эль-Гамаля решает эту задачу, используя в отличие от шифра Шамира только одну пересылку сообщения. Для каждого сообщения соответствующие секретные числа вычисляется заново.

Для всей группы абонентов открыто выбираются числа p и g с теми же свойствами, что и в системе Диффи-Хеллмана.

Затем каждый i-й абонент выбирает свое секретное число ci, 1 < ci < (p – 1) и вычисляет соответствующее ему открытое число di:

di = mod p (3.13)

В результате получаем таблицу вида табл. 3.3.

Таблица 3.3

Абонент

Секретный ключ

Открытый ключ

А

cA

dA

В

cB

dB

...

...

...

Полагем, что сообщение m, которое А должен передать В, удовлетворяет ограничению m<p. Тогда протокол передачи данных имеет вид:

Шаг 1. А формирует случайное секретное число k, 1  k  (p – 2) и вычисляет числа

r = mod p (3.14)

e = m mod p (3.15)

и передает их абоненту В.

Шаг 2. Абонент В вычисляет:

m' = e mod p. (3.16)

Свойства шифра Эль-Гамаля:

  • m' = m, то есть в результате реализации протокола от А к В действительно передается сообщение m;

  • противник, зная p, g, dB, r и e, не может узнать, какое сообщение было передано.

Докажем, что шифр действительно обладает указанными свойствами.

Подставим в (3.16) значение e из (3.15), получим:

m' = m  mod p.

Подставим сюда r из (3.14) и значение dB из (3.13), получим:

m' = m mod p = m mod p = m.

Последний переход осуществлен на основании теоремы Ферма:

mod p = 1k mod p = 1.

Таким образом, первое свойство доказано.

Для доказательства второго свойства учтем, что противник не может вычислить k из равенства (3.14), так как это задача дискретного логарифмирования. Следовательно, он не сможет вычислить m из равенства (3.15). Противник также не сможет воспроизвести действия абонента В, так как ему не известно секретное число cB – определение этого числа также является задачей дискретного логарифмирования.

Следует учитывать, что объем шифра в два раза превышает объем открытого сообщения, но требуется только одна передача данных.

3.5. Шифр rsa. Односторонняя функция с "лазейкой"

Разработчиками этого шифра являются Риверс, Шамир и Адлеман (1978 г.). Шифр до сих пор является одним из самых распространенных. Это шифр свободен от недостатков, присущих шифру Шамира (тройная пересылка сообщения) и шифру Эль-гамаля (удвоение объема сообщения). В шифре вместо (3.3) применяется другая односторонняя функция.

Шифр базируется на использовании следующих фактов из теории чисел:

  • задача проверки числа на простоту является относительно легкой;

  • задача разложения на множители числа вида n = pq, где p, qпростые числа, при условии, что известно только n, является очень трудной (это так называемая задача факторизации).

Пусть имеются абоненты A, B, C, ... . Каждый абонент случайно выбирает два секретных простых числа P и Q. Затем он вычисляет открытое (доступное другим абонентам) число:

N = PQ. (3.17)

После этого он вычисляет другое число = (P1)(Q  1) и выбирает некоторое число d < , взаимно простое с , и, по обобщенному алгоритму Евклида, находит число с такое, что:

cd mod = 1. (3.18)

Таким образом, мы имеем табл. 3.4.

Таблица 3.4

Абонент

Открытые параметры

Секретные параметры

А

NA, dA

PA, QA, cA

В

NB, dB

PB, QB, cB

...

...

...

Полагая, что длина сообщения удовлетворяет условию m < NB, опишем протокол передачи данных от A к B:

Шаг 1. А шифрует сообщение по формуле:

e = mod NB. (3.19)

и пересылает е абоненту В по открытому каналу.

Шаг 2. В вычисляет:

m' = mod NB. (3.20)

Обратите внимание на то, что при направлении передачи АВ используются параметры только абонента В.

Свойства шифра RSA:

  • m' = m, то есть в результате реализации протокола от А к В действительно передается сообщение m;

  • противник, перехватывающий зашифрованное сообщение и знающий открытые параметры, не может узнать, какое сообщение было передано.

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

Теорема 3.3. (основная теорема арифметики)

Любое целое положительное число может быть представлено в виде произведения простых чисел, причем единственным образом.

Определение: пусть дано целое число N  1. Функцией Эйлера называется функция натурального аргумента, значение которой (N), N ℕ равно количеству чисел в ряду 1,2, ..., N – 1, взаимно простых с N.

Теорема 3.4. Если p – простое число, то (p) = p – 1.

Теорема 3.5. Пусть p и q – различные простые числа. Тогда (pq) = (p – 1)(q – 1).

Теорема 3.6. (Эйлер). Пусть a и b – взаимно простые числа. Тогда:

a(b) mod b = 1.

Теорема 3.7. Пусть p и q – простые числа и pq и k – произвольное целое число. Тогда:

ak(pq)+1 mod (pq) = a.

Вернемся к анализу свойств шифра RSA.

По построению протокола m' = mod NB = mod NB. Равенство (3.18) означает, что для некоторого k: cBdB = kB + 1.

Согласно (3.17) и теореме 3.5 B = (PB – 1)(QB – 1) = (NB). Отсюда по теореме 3.7 получим:

m' = mod NB = m.

Таким образом, первое свойство доказано.

При доказательстве второго свойства учтем, что противник знает только открытые параметры. Для того, чтобы найти секретный параметр cB, он должен знать значение B = = (PB – 1)(QB – 1), то есть необходимо знать параметры PB и QB. Для этого ему нужно решить задачу разложения на множители числа N, а это трудная задача (в отличие от того, что выбор больших случайных чисел PB и QB возможен за приемлемое время).

Второе свойство также доказано.

Применяемая в системе RSA односторонняя функция y = xd mod N обладает так называемой "лазейкой", позволяющей легко вычислять обратную функцию x = mod N, если известно разложение N на простые множители. Действительно, в этом случае легко вычислить = (P – 1)(Q – 1), а затем с = d 1 mod . Следовательно, противник, зная PB и QB, то есть "лазейку, может вычислить секретный параметр cB, а значит, используя (3.20), определить исходное сообщение.

Если же P и Q не известны, то вычисление обратной функции практически невозможно, поскольку найти P и Q, то есть "лазейку" ("потайной ход"), за приемлемое время невозможно. Таким образом односторонность данной функции порождается трудностью задачи факторизации.

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

Следует учитывать, что для шифра RSA важно, чтобы каждый абонент выбирал собственную уникальную пару простых чисел P и Q, то есть чтобы модули NA, NB, ... были различны. В противном случае данный абонент мог бы читать зашифрованные сообщения, предназначенные для другого абонента. Однако это не требуется для второго открытого параметра d. Он может быть одинаковым у всех абонентов. Часто рекомендуют выбирать d = 3, при соответствующем выборе P и Q. Тогда шифрование осуществляется очень быстро – всего за два умножения.

Рассмотренная система невскрываема при больших P и Q, но обладает следующим недостатком:

А передает сообщение В, используя открытую информацию абонента В (числа NB и dB). Противник не может читать сообщения. предназначенные для В, но он может передать сообщение к В от имени А.

Избежать этого можно, используя более сложны протоколы, например, такой:

пусть А должен передать В сообщение m. Сначала А вычисляет число

e = mod NA.

Противник не сможет этого сделать, так как cA секретно. Затем А вычисляет число

f = mod NB

и передает его в В. Абонент В вычисляет числа

u = mod NB и w = mod NA. (*)

В результате абонент В получает сообщение w = m.

Обратите внимание на то, что в этой версии протокола мы встречаемся с новой ситуацией: В знает, что сообщение пришло именно от А, так как правильная расшифровка получится, только если в (*) использовано число NA. То есть А как будто "подписал" свое сообщение секретным словом cA. Это пример, так называемой электронной подписи. Далее этот аспект рассматривается подробнее.