6.2. Асимметричные криптоалгоритмы

Криптоалгоритм RSA предложили в 1978 году три автора: Р. Райвест (Rivest), А. Шамир (Shamir) и А. Адлеман (Adleman). Алгоритм получил свое название по первым буквам фамилий его авторов.  Алгоритм RSA стал первым алгоритмом с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи. Надежность алгоритма RSA основывается на использовании очень больших простых чисел.

Сравнивая наиболее популярные алгоритмы симметричного и асимметричного шифрования, следует отметить, что быстродействие RSA существенно ниже быстродействия DES (в 100 раз), а программная и аппаратная реализация криптоалгоритма RSA гораздо сложнее, чем DES. Поэтому криптосистема RSA, как правило, применяется для передачи небольшого объема сообщений.

Кроме популярного алгоритма асимметричного шифрования RSA к асимметричным криптоалгоритмам и криптосистемам относятся:

· алгоритм открытого распределения ключей Диффи-Хеллмана;

· алгоритм асимметричного шифрования Эль Гамаля;

· асимметричная криптосистема ЕСС на эллиптических кривых и др.

Алгоритм открытого распределения ключей Диффи-Хеллмана был предложен в 1976 году. В этом криптоалгоритме используются свойства однонаправленных функций, предложенных У. Диффи и М. Хеллманом. Уникальность алгоритма Диффи-Хеллмана заключается в том, что пара абонентов сети имеет возможность получить известное только им секретное число, передавая по открытой сети открытые ключи. После этого абоненты могут приступить к защите сообщений уже известными проверенными способами – применяя электронную цифровую подпись и симметричное шифрование с использованием полученного разделяемого секрета.

Алгоритм Диффи-Хеллмана посвящен, прежде всего, решению проблемы распределения ключей.

Алгоритм асимметричного шифрования Эль Гамаля был предложен в 1985 году. Безопасность его работы обусловлена сложностью вычисления дискретных логарифмов в конечном поле. Длина шифртекста, формируемого алгоритмом Эль Гамаля, вдвое больше длины исходного открытого текста. Схема Эль Гамаля может быть использована как для шифрования, так и для электронной цифровой подписи.

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

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

· не нужна секретная доставка ключей;

· исчезает квадратическая зависимость числа ключей от числа пользователей.

Однако у асимметричных криптосистем имеются и недостатки:

· на настоящий момент нет математического доказательства необратимости используемых в асимметричных алгоритмах однонаправленных функций;

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

· необходимо защищать открытые ключи от подмены.

Поясним более подробно проблему защиты открытых ключей от подмены. Предположим, на компьютере абонента А хранится открытый ключ КВ абонента В. Пусть злоумышленник @ имеет доступ к открытым ключам, хранящимся у абонента А. Он генерирует свою пару ключей k@ и К@ и подменяет у абонента А открытый ключ КВ абонента В на свой открытый ключ К@. Для того чтобы отправить некую информацию абоненту В, абонент А зашифровывает ее на ключе К@, думая, что это ключ КВ. Соответственно, это сообщение не сможет прочитать абонент В, но зато легко расшифрует и прочитает злоумышленник @. Атаку подмены открытых ключей может предотвратить процедура сертификации открытых ключей.