Новейшим подходом к шифрованию компьютерных данных является метод шифрования с открытым и закрытым ключом, при котором ключ для дешифрования сообщения содержится в самом передаваемом сообщении.
Основной проблемой при шифровании всегда оставалась передача ключа лицу, принимающему зашифрованные сообщения. Системы шифрования с открытым и закрытым ключом появились в 70-х гг. как системы, обеспечивающие передачу шифрованных сообщений, для расшифровки которых можно было использовать ключ, отличный от ключа шифрования. Этим такие системы принципиально отличались от старых систем, в которых у получателя и отправителя сообщений должен быть один ключ.
В компьютерной системе шифрования с открытым ключом используется программа, шифрующая данные при помощи открытого ключа получателя. Открытый ключ - это шифр, который получатель делает доступным, и который служит инструкцией (руководством) по шифрованию сообщения. Открытый ключ создается программой шифрования, и у каждого пользователя он свой.
После того, как сообщение зашифровано, его может расшифровать только получатель при помощи своего личного, закрытого ключа. Личный ключ создается самим пользователем при установке программы и передается ей в качестве исходной информации. Одновременно с ним создается открытый ключ.
Для обоих корреспондентов требуется программа шифрования/дешифрования. Если пользователь А хочет отправить шифрованное сообщение пользователю В, то пользователь А сначала должен получить открытый ключ пользователя В. Открытый ключ предоставляется через сервер открытых ключей. Пользователь В помещает на этот сервер свои открытые ключи (или ключ) - столько, сколько нужно. Пользователь А берет этот ключ, а затем "вставляет" его в программу шифрования сообщений и готовит сообщение, которое затем будет отправлено пользователю В. Для дешифрования сообщений пользователь В использует свой закрытый ключ. Программа шифрования считывает открытый ключ, который сообщает, каким образом было зашифровано сообщение, чтобы его можно было дешифровать закрытым ключом. При этом для расшифровки сообщения уже нельзя воспользоваться открытым ключом. Это означает, что только получатель сообщения сможет прочитать сообщение, отправленное пользователем А.
Таким образом, закрытый ключ в сочетании с программой шифрования используется для дешифрования сообщения, зашифрованного при помощи открытого ключа пользователя и такой же программы шифрования. Без знания закрытого ключа дешифровать зашифрованный файл невозможно.
Этот метод удобен для тех, кому требуется принимать зашифрованные сообщения, передаваемые по электронной почте от многих корреспондентов. Все они могут использовать программу шифрования и открытый ключ для шифрования сообщений, но расшифровать его сможет лишь получатель при помощи закрытого ключа.
Данный процесс схематически изображен на рисунке:
Шифрование и дешифрование сообщения с использованием, соответственно, открытого и закрытого ключей
Помимо шифрования сообщений, системы с открытым ключом могут применяться в качестве средств аутентификации сообщений или иных данных, приходящих от получателей.
Как уже указывалось, открытый ключ можно разместить на любом количестве соответствующих серверов в Web. Эти сайты бесплатно хранят открытые ключи и организованы в виде базы данных. Для поиска таких серверов достаточно ввести в поисковую программу ключевую фразу public key servers (серверы открытых ключей).