Й учебный вопрос: Асимметричное шифрование
Принципиальное отличие от симметричного шифрования в том, что для шифрования информации и ее последующем расшифровании используются различные ключи шифрования:
- открытый ключ для шифрования информации, вычисляется из секретного ключа;
- секретный ключ для расшифрования информации, зашифрованной с помощью парного ему открытого ключа.
Секретный и открытый ключи генерируются попарно. Секретный ключ должен оставаться у его владельца: он должен быть надежно защищен от несанкционированного доступа (аналогично ключу шифрования в симметричных алгоритмах). Копия открытого ключа должна находиться у каждого абонента криптографической сети, с которым обменивается информацией владелец секретного ключа.
Процесс обмена зашифрованной информацией выглядит следующим образом:
1) Подготовительный этап:
– абонент I генерирует пару ключей – секретный ключ и открытый ключ ;
- открытый ключ рассылает остальным абонентам ( может быть доступным, например в разделяемом ресурсе).
2) Использование – обмен информацией между абонентами i и j:
- абонент j зашифровывает сообщение с помощью открытого ключа абонента i ;
- абонент i расшифровывает сообщение с помощью секретного ключа . Никто другой ( в том числе абонент j) не может расшифровать данное сообщение, так как не имеет секретного ключа абонента i.
Наиболее совершенными являются следующие методы шифрования с открытым ключом: ЕСС, на западе в качестве стандарта принят RSA.
Математическая основа асимметричного шифрования состоит в использовании однонаправленных функций с секретом. В качестве такой функции, например, в алгоритме RSA, выполняется следующая операция для каждого i-го блока открытого текста:
,
где e – открытый ключ некоторого пользователя. Обратная операция – вычисление из со знанием e является невозможной ( не решается в течение какого-либо реального интервала времени). Однако владелец секретного ключа d ( из которого вычислен открытый ключ e) легко может выполнить следующую операцию:
и получить верный результат. Секретный ключ d является секретом, примененным в алгоритме однонаправленной функции, позволяющим расшифровать шифртекст.
Асимметричное шифрование по сравнению с симметричным обладает определенным преимуществом: оно позволяет динамически передавать открытые ключи, когда как для симметричного шифрования до начала сеанса защищенной связи необходимо обменяться секретными ключами.
Однако существуют недостатки:
- пока нет математического доказательства необходимости используемых в асимметричных алгоритмах функций;
- по сравнению с симметричным шифрованием асимметричное существенно медленнее, так как при шифровании и расшифровании используются весьма ресурсоемкие операции ( в частности, в RSA это возведение большого числа в степень, являющуюся другим большим числом). По этой причине реализовать аппаратный шифратор с ассиметричным алгоритмом существенно сложнее, чем реализовать аппаратно симметричный алгоритм;
- необходимо защищать открытые ключи от подмены.
Последнее рассмотрим подробнее. Пусть на ПК абонента j хранится открытый ключ абонента I . Злоумышленник n имеет доступ к открытым ключам, хранящимся у абонента j. Он генерирует свою пару ключей и и подменяет у абонента j открытый ключ абонента i на свой открытый ключ . Для того, чтобы отправить некоторую информацию абоненту I абонентjшифрует ее на ключе , думая, что это ключ . Соответственно, это сообщение не сможет прочитать абонент i, но зато легко расшифрует и прочитает абонент n.
От подмены ключей может спасти процедура сертификации ключей.