Разрешив, в основном, проблему быстродействия, Циммерман включил также в PGP ряд полезных свойств. Например, перед применением RSA, Алисе необходимо сгенерировать свои секретный и открытый ключи. Процесс создания ключа не прост, поскольку требует нахождения пары огромных простых чисел. Но единственное, что следует сделать Алисе, — это случайным образом подвигать своей мышкой, и программа PGP создаст ее секретный и открытый ключи; движениями мышки вводится случайный фактор, который используется в PGP и благодаря которому гарантируется, что у каждого пользователя будет своя отличающаяся от других пара простых чисел и, тем самым, своя уникальная комбинация секретного и открытого ключей. После этого Алиса должна просто известить о своем открытом ключе.
Еще одно полезное свойство PGP — простота выполнения электронной подписи на сообщениях, отправляемых по электронной почте. Как правило, на этих сообщениях подпись не ставится, что означает невозможность проверки подлинности автора электронного сообщения. Например, если Алиса воспользуется электронной почтой, чтобы послать Бобу любовное письмо, она зашифрует его открытым ключом Боба, а тот, когда получит, расшифрует его своим секретным ключом. Вначале Бобу это льстит, но может ли он быть уверен, что любовное письмо действительно от Алисы? Возможно, что злокозненная Ева написала это электронное письмо и подписалась именем Алисы в конце. Кроме заверения собственноручно написанной чернилами подписью другого явного способа проверить авторство нет.
Или же представьте себе, что банк получает электронное письмо от клиента, в котором отдаются распоряжения, чтобы все его денежные средства были перечислены на номерной банковский счет частного лица на Каймановых островах. Опять-таки без собственноручно написанной подписи как может банк знать, что это электронное письмо действительно пришло от клиента? Оно могло бы быть написано преступником, пытающимся переместить денежные средства на свой банковский счет на Каймановых островах. Для выработки доверия к Интернету важно, чтобы существовала какая-либо форма достоверной цифровой подписи.
Цифровая подпись в PGP основана на принципе, который был впервые разработан Уитфилдом Диффй и Мартином Хеллманом. Когда они предложили идею о раздельных открытых и секретных ключах, то поняли, что наряду с решением проблемы распределения ключей их открытие позволяет также создавать подписи для электронных писем. В главе 6 мы видели, что открытый ключ используется для зашифровывания, а секретный ключ — для расшифровывания. На самом деле эти операции можно поменять местами, так что для зашифровывания будет использоваться секретный ключ, а для расшифровывания — открытый ключ. Режим зашифровывания как правило, игнорируется, поскольку никакой безопасности он не обеспечивает. Если Алиса применяет свой секретный ключ, чтобы зашифровать сообщение для Боба, то каждый может расшифровать его, потому что у всех есть открытый ключ Алисы. Но как бы то ни было, данный режим подтверждает авторство, так как если Боб может расшифровать сообщение с помощью открытого ключа Алисы, значит, оно должно было быть зашифровано с использованием ее секретного ключа; но только у Алисы имеется доступ к своему секретному ключу, поэтому данное сообщение было отправлено Алисой.
В сущности, если Алиса хочет послать Бобу любовное письмо, у нее есть две возможности. Либо она зашифрует сообщение с помощью открытого ключа Боба, чтобы обеспечить секретность переписки, либо она зашифрует его своим собственным секретным ключом, чтобы подтвердить авторство. Однако если она объединит обе операции, то сможет гарантировать и секретность переписки, и авторство. Существуют более быстрые способы для достижения этого, но здесь приводится один из способов, которым Алиса может послать свое любовное письмо. Она начинает с того, что зашифровывает сообщение с помощью своего секретного ключа, а затем зашифровывает получающийся зашифрованный текст, используя открытый ключ Боба. Вообразите себе сообщение, окруженное хрупкой внутренней оболочкой, которая представляет собой шифрование, выполненное с помощью секретного ключа Алисы, и прочную наружную оболочку, представляющую шифрование с использованием открытого ключа Боба. Получающийся шифртекст может быть расшифрован только Бобом, потому что только он имеет доступ к секретному ключу, необходимому для того, чтобы разбить эту прочную наружную оболочку. Расшифровав наружную оболочку, Боб затем сможет легко расшифровать с помощью открытого ключа Алисы и внутреннюю оболочку; эта внутренняя оболочка служит не для того, чтобы защитить сообщение, она удостоверяет, что данное сообщение пришло от Алисы, а не от какого-нибудь мошенника.
К этому моменту отправка зашифрованного PGP сообщения становится довольно сложной. Шифр IDEA используется для того, чтобы зашифровать сообщение, RSA применяется для зашифровывания ключа IDEA, а если необходима цифровая подпись, то должен быть задействован еще один этап шифрования. Однако Циммерман разработал свою программу таким образом, что она все будет делать автоматически, так что Алисе и Бобу не придется беспокоиться о математике. Чтобы отправить сообщение Бобу, Алиса просто напишет свое электронное письмо и выберет из меню на экране своего компьютера нужную опцию PGP. Затем она введет имя Боба, после чего PGP отыщет открытый ключ Боба и автоматически выполнит зашифровывание. Одновременно с этим PGP будет проделывать все необходимые манипуляции, требующиеся для создания электронной подписи на сообщении. При получении зашифрованного сообщения Боб выберет опцию PGP, и PGP расшифрует сообщение и удостоверит подлинность автора. В PGP нет ничего нового: Диффи и Хеллман уже придумали цифровые подписи, а другие криптографы пользовались комбинацией симметричного и асимметричного шифров для повышения скорости шифрования, но Циммерман первым объединил все это в простом в применении программном продукте для шифрования, который оказался достаточно эффективным для использования на персональном компьютере средних размеров.
К лету 1991 года Циммерман уже готов был придать PGP законченный вид. Оставались только две проблемы, причем ни одна из них не являлась технической. Одна из них — и проблема эта стояла довольно длительное время — заключалась в том, что RSA, который лежал в основе PGP, являлся запатентованным продуктом, а по патентному законодательству, перед тем как выпустить PGP, Циммерману требовалось получить лицензию у компании RSA Дата Секью-рити Инк. Однако Циммерман решил пока отложить эту проблему. PGP задумывалась не как программа для предприятий и компаний, а скорее как программа для отдельных людей. Он полагал, что не станет непосредственно конкурировать с RSA Дата Секьюрити Инк., и надеялся, что компания без задержки предоставит ему свободную лицензию.
Более серьезной и требующей немедленного разрешения проблемой был законопроект по борьбе с преступностью сената США от 1991 года, в котором содержался следующий пункт: «Конгресс считает, что поставщики услуг электронных средств связи и производители оборудования электронных средств связи должны обеспечить, чтобы системы связи позволяли правительству получать содержание открытого текста при осуществлении связи по телефонной и радиотелефонной линиям, при передаче данных и при использовании других средств коммуникации, когда, соответственно, это разрешено законодательно».
Сенат был обеспокоен тем, что развитие цифровой техники, к примеру, появление сотовых телефонов, может лишить возможности сотрудникам правоприменяющих органов вести прослушивание телефонных разговоров. Однако этот законопроект, помимо того, что вынуждал компании обеспечивать возможность прослушивания, похоже, представлял угрозу для всех видов криптостойкого шифрования.
Объединенными усилиями RSA Дата Секьюрити Инк., индустрии услуг связи и групп, выступающих за гражданские свободы, данный пункт пришлось снять, но по единодушному мнению, это явилось только временной отсрочкой. Циммерман опасался, что рано или поздно, но правительство снова попытается внести данный проект на рассмотрение, который фактически поставил бы шифрование и, в частности, PGP вне закона. Он всегда предполагал заняться продажей PGP, но теперь он изменил свое решение. Чем ждать и рисковать, что PGP будет запрещено правительством, он решил, что важнее, пока не станет слишком поздно, сделать ее доступной для всех. В июне 1991 года он предпринял решительный шаг и попросил своего друга разместить PGP на электронной доске объявлений Usenet. PGP — это всего-навсего программный продукт, так что его мог свободно и бесплатно переписать с доски объявлений любой желающий. Так PGP попал в Интернет.