АСИММЕТРИЧНЫЕ ШИФРЫ
Основные понятия
Несмотря на достижения в области симметричной криптографии, к середине 1970-х годов стала остро осознаваться проблема неприменимости данных методов для решения целого ряда задач.
Во-первых, при использовании симметричных шифров необходимо отдельно решать часто нетривиальную задачу распределения ключей. Несмотря на использование иерархий ключей и центров распределения, в какой-то начальный момент ключ (или мастер-ключ) должен быть передан по безопасному каналу. Но такого канала может просто не быть, или он может быть достаточно дорогостоящим.
Во-вторых, при использовании методов симметричного шифрования подразумевается взаимное доверие сторон, участвующих во взаимодействии. Если это не так, совместное использование одного и того же секретного ключа может быть нежелательно.
Третья проблема связана с необходимостью проведения аутентификации информации и защиты от угроз, связанных с отказом отправителя (получателя) от факта отправки (получения) сообщений.
Перечисленные проблемы являются весьма существенными, и работа над их решением привела к появлению асимметричной криптографии, также называемой криптографией с открытым ключом.
Рассмотрим ряд определений.
Односторонней (однонаправленной) функцией называется такая функция F: X—FY, для которой выполняются следующие условия:
- 1) для всякого хеХ легко вычислить значение функции у = F(x), где увУ;
- 2) для произвольного yeY невозможно (чрезвычайно сложно) найти значение хеХ, такое что х = FA(y) (т. е. найти значение функции обратной F).
Односторонней функцией с секретом к, называется такая функция Fk: X—>Y, для которой выполняются следующие условия:
- 1) для всякого хеХ легко вычислить значение функции у - Fk(x), где у sY, даже в том случае, если значение к неизвестно;
- 2) не существует легкого (эффективного) алгоритма вычисления обратной функции Fk'(y) без знания секрета к
- 3) при известном к вычисление Fk'(y) для yeY не представляет существенной сложности.
В частности, односторонняя функция с секретом может быть использована для шифрования информации. Пусть М — исходное сообщение. Получатель выбирает одностороннюю функцию с секретом, и тогда любой, кто знаег эту функцию, можег зашифровать сообщение для данного получателя, вычислив значение криптограммы С = Fk(M). Расшифровать данную криптограмму может только законный получатель, которому известен секрет к.
Первой публикацией в области криптографии с открытым ключом принято считать статью Уитфилда Диффи (Whitfield Diffie) и Мартина Хеллмана (Martin Heilman) «Новые направления в криптографии», вышедшую в свет в 1976 году.
В отличие от симметричных, в асимметричных алгоритмах ключи используются парами — открытый ключ (англ, «public key») и секретный или закрытый (англ, «private key»). Схема шифрования будет выглядеть следующим образом.
Получатель В генерирует пару ключей — открытый KBj>ub и секретный КВц,г. Процедура генерация ключа должна быть такой, чтобы выполнялись следующие условия:
- 1) ключевую пару можно было бы легко сгенерировать;
- 2) сообщение, зашифрованное на открытом ключе, может быть расшифровано только с использованием секретного ключа;
- 3) зная только открытый ключ, невозможно рассчитать значение секретного.

Рис. 2.16. Асимметричное шифрование
После генерации ключей, абонент В передает открытый ключ отправителю А, а секретный ключ надежно защищает и хранит у себя
(рис. 2.16). Пересылка открытого ключа может осуществляться по незащищенному каналу связи. Отправитель А, зная сообщение М и открытый ключ, может рассчитать криптограмму С = Е(М, KHjmh) и передать ее получателю В. Получатель, зная секретный ключ, может расшифровать криптограмму М = D( С, Кцц,г).
Нарушитель даже в том случае, если он смог перехватить криптограмму и открытый ключ, не может расшифровать криптограмму.
Если использовать определение односторонней функции с секретом, то алгоритм шифрования и открытый ключ задают прямое преобразование Fk, алгоритм расшифровывания задает обратное преобразование, а секретный ключ получателя играет роль «секрета» к.
Рассмотрим теперь вопрос аутентификации сообщений.
Электронная цифровая подпись (ЭЦП)[1] — это реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе, а также обеспечивать неотказусмость подписавшегося.
Функции ЭЦП аналогичны обычной рукописной подписи:
- - удостоверить, что подписанный текст исходит от лица, поставившего подпись;
- - не дать лицу, подписавшему документ, возможности отказаться от обязательств, связанных с подписанным текстом;
- - гарантировать целостность подписанного текста.
Важное отличие ЭЦП заключается в том, что электронный документ вместе с подписью может быть скопирован нео1раниченное число раз, при этом копия будет неотличима от оригинала.
Обобщенная схема системы ЭЦП представлена на рис. 2.17.

Рис. 2.17. Электронная цифровая подпись
В ходе преобразований здесь используется пара ключей отправителя сообщения. Тог факт, что при вычислении ЭЦП применяется секретный ключ отправителя, позволяет доказать происхождение и подлинность сообщения. Получатель, имея открытый ключ отправителя, проверяет ЭЦП, и если подпись корректна, то он может считать, что сообщение подлинное.
- [1] Определение в соответствии федеральным законом Российской Федерации «Об электронной цифровой подписи».