В ассиметричных алгоритмах шифрования (или криптографии с ключом) для зашифровывания информационного сообщения используют один ключ (открытый), а для расшифровывания — другой (секретный). Эти ключи различны и не могут быть получены один из другого. Т.е. для формул (1)и(2) К1≠К2. Система шифрования с открытым ключом была разработана американскими криптологами У. Диффе и М.Е. Хеллманом в ноябре 1976 года.
Схема обмена сообщениями такова:
1) получатель вычисляет открытый и секретный ключи, секретный ключ хранит в тайне, открытый же делает доступным (сообщает отправителю, группе пользователей сети, публикует);
2) отправитель, используя открытый ключ получателя, зашифровывает сообщение, которое пересылается получателю;
3) получатель получает сообщение и расшифровывает его.
Как это применяется на практике. Есть инструкция, по которой каждый желающий может самостоятельно придумать (при помощи специальной программы для ПК) два взаимно обратных ключа Л и П. Ключ Л (личный) держится в секрете, а ключ П (публичный) может быть известен всем желающим. Рассмотрим пример обращения с этими ключами.
Предположим, некоторый банк С давно пользуется системой шифрования с открытым ключом. Его публичный ключ известен всем желающим. Допустим, что банк Н хочет обмениваться информацией с банком С. Директор банка Н разрабатывает два шифровальных ключа Лн и Пн. Ключ Пн публикуется в финансовой газете. Ключ Лн хранится в сейфе директора банка. Так как ключи взаимно обратны, то, если текст Т зашифровать ключом Лн и опубликовать в газете, то любой желающий его расшифрует, зашифровав его ключом Пн:
Пн(Лн(Т)) = Т
Предположим, что директор банка С хочет передать директору банка Н секретную информацию. Он шифрует её ключом Пн, и доставляет в банк Н, не заботясь о секретности, правильно расшифровать её можно только воспользовавшись ключом Лн. Кроме секретности, этот метод шифрования обеспечивает проверку подлинности сообщений. Например, предположим, что секретное сообщение из банка С в банк Н имеет вид:
«Перечислите с нашего счёта № 123456789 в Вашем банке 1 000 000 (один миллион) долларов на счёт № 987654321 в банке 3. Директор банка С.»
Вряд ли директор банка Н начнёт немедленно исполнять это поручение, ему нужно проверить его подлинность. Для этого директор банка С должен, отправляя сообщение, должен обеспечить его подлинность. Это делается так:
1. текст Т шифруется ключом Лс: Лс(Т);
2. то, что получилось, шифруется ключом Пн: Пн(Лс(Т)).
Именно это сообщение получает директор банка Н. Для того, чтобы узнать, что это за сообщение, директор банка Н должен:
1. зашифровать полученное сообщение ключом Лн: Лн(Пн(Лс(Т);
2. то, что получилось, шифруется ключом Пс, всем известным: Пс(Лн(Пн(Лс(Т)))).
Теперь немного математики. Докажем, что то, что получилось в результате проделанных шагов, и есть исходный текст сообщения Т.
Так как ключи взаимно обратны, то Т' = Т(К) <=> Т=Т'(К'), К' и К — взаимно обратные ключи. Тогда, так как Пн(Лн(Т)) = Т, то и Лн(Пн(Т)) = Т. Значит Пс(Лн(Пн(Лс(Т))))==Пс(Лс(Т))=Т. Таким образом. Директор банка Н может быть уверен, что сообщение поступило именно из банка С.
В ассиметричных системах необходимо применять длинные ключи (512 битов и больше). Длинный ключ резко увеличивает время шифрования, кроме того, генерация ключей весьма длительна.
Защита публичным ключом не является абсолютно надежной. Так как любой желающий может получить и использовать чей–то публичный ключ, то он может сколь угодно подробно изучить алгоритм шифрования и пытаться установить метод расшифровки сообщения, то есть реконструировать закрытый ключ.
Алгоритмы кодирования публичным ключом нет смысла скрывать. Обычно к ним есть доступ, а часто они просто широко публикуются. Тонкость заключается в том, что знание алгоритма ещё не означает возможности провести реконструкцию ключа в разумно приемлемые сроки.
Защиту информации принято считать достаточной, если затраты на её преодоление превышают ожидаемую ценность самой информации. В этом состоит принцип достаточности защиты. Он предполагает, что защита не абсолютна, и приёмы её снятия известны, но она все же достаточна для того, чтобы сделать это мероприятие нецелесообразным. При появлении иных средств, позволяющих–таки получить зашифрованную информацию в различные сроки, изменяют принцип работы алгоритма.