19.3. Как работает PGP

Когда пользователь шифрует сообщение с помощью PGP, то программа сначала сжимает текст, что сокращает время на отправку сообщения через модем и увеличивает надежность шифрования. Большинство приемов криптоанализа основаны на исследовании «рисунков», присущих конкретным текстовым файлам, что помогает взломать ключ. Сжатие ликвидирует эти «рисунки» и таким образом повышает надежность зашифрованного сообщения.

Для шифрования сообщения (рис. 10) используется качественный и быстрый алгоритм шифрования с секретным ключом. В ходе процесса, невидимого пользователю, для шифрования открытого текста используется временный случайный ключ, сгенерированный специально для этого «сеанса» (он представляет собой случайное число, созданное за счет движений мышки и нажатий на клавиши клавиатуры).

Затем данный случайный ключ шифруется с помощью открытого ключа получателя. Этот зашифрованный с использованием открытого ключа сеансовый ключ отправляется получателю вместе с зашифрованным текстом.

Как показано на рис. 11, процесс расшифровки происходит в обратном порядке. Личный ключ получателя используется для восстановления временного сеансового ключа, который, в свою очередь, используется при запуске быстрого алгоритма с секретным ключом для расшифровки основного тела сообщения.