Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8. Элементы криптографии.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
131.58 Кб
Скачать

8.4. Алгоритмы асимметричного шифрования

При использовании алгоритмов симметричного шифрования каждая из обменивающихся информацией сторон должна иметь копию общего секретного ключа, что создает сложнейшую проблему управления ключами. Этого недостатка лишены алгоритмы ассиметричного шифрования (однако у них есть свои собственные недостатки, например, они более медленные).

В ассиметричных алгоритмах (алгоритмах с открытым ключом) используются два ключа: открытый и секретный. Открытый ключ может быть опубликован в справочнике наряду с именем пользователя. В результате любой желающий может зашифровать с его помощью свое сообщение и послать закрытую информацию владельцу соответствующего секретного ключа. Расшифровать посланное сообщение сможет только тот, у кого есть секретный ключ.

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

Имеется набор широко известных и всесторонне изученных односторонних функций. К ним относятся функции, изученные при решении задачи разложения целых чисел на множители, проблемы вычисления дискретных логарифмов или вычисления квадратных корней по модулю составного числа. Отметим, что применяемые функции являются односторонними только в вычислительном отношении, т.е. имея достаточно большие компьютерные мощности, их вполне можно обратить, причем быстрее, чем найти секретный ключ в результате полного перебора.

Рассмотрим построение ассиметричных алгоритмов на примере системы, разработанной в 1978 году американцами Р.Ривестом, Э.Шамиром и Л.Адлеманом. По их именам эта система получила название RSA. Вообще она является первой и наиболее известной системой с открытым ключом.

Пусть абоненты A и B решили организовать для себя возможность секретной переписки. Для этого каждый из них независимо выбирает два больших простых числа ( , и , ), находит их произведение (rA и rB), функцию Эйлера от этого произведения ((rA) и ( rB)) и случайное число (a и b), меньшее вычисленного значения функции Эйлера и взаимно простое с ним. Кроме того, A из уравнения

a  1 (mod (rA))

находит (0 < < (rA)), а B из уравнения

b  1 (mod (rB))

находит (0 < < (rB)). Затем A и B публикуют доступную всем информацию вида:

A: rA, a;

B: rB, b.

Теперь кто угодно может отправлять конфиденциальные сообщения A или B. Например, если пользователь C хочет отправить сообщение m для B (m должен быть меньшим rB или делится на куски, меньшие rB), то он использует ключ b для получения шифрованного сообщения m1 по формуле

m1mb (mod rB),

которое и отправляется B. Получатель сообщения B для дешифрирования m1 использует ключ в формуле

mbm (mod rB),

так как b  1 (mod (rB)), следовательно, b = k(rB) + 1 для некоторого целого k и mk(rB) + 1  (m(rB) )kmm (mod rB), так как m(rB)  1 (mod rB) по теореме Эйлера-Ферма.

Функция Эйлера (n), где n – натуральное число, определяется следующим образом:

(1) = 1; ,

где pi – простые сомножители числа n, i – кратности простых сомножителей числа n.

Задача нахождения секретного ключа в алгоритме RSA будет иметь такую же сложность, что и задача разложения числа на простые множители, поскольку здесь использовалась соответствующая односторонняя функция. Рассмотрим алгоритм RSA на примере. Пусть для A имеем = 7 и = 23. Тогда rA = = 161, (rA) = (161) = 6  22 = 132, a = 7, = 19. Если кто-то захочет отправить A секретное сообщение m = 3, то он должен будет преобразовать его в m1  37  94 (mod 161). Когда A получит m1 = 94, он дешифрирует его по формуле m = 9419  3 (mod 161).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]