"Филипп Зимерман. Кодирование с открытым ключом для всех" - читать интересную книгу автора

включают в себя идентификатор пользователя владельца ключа
(обычно это имя пользователя), временную метку, которая указывает
время генерации пары ключей, и собственно ключи. Сертификаты
открытых ключей содержат открытые ключи, а сертификаты секретных
ключей - секретные. Каждый секретный ключ также шифруется с
отдельным паролем. Файл ключей, или каталог ключей ("кольцо с
ключами" - "keyring") содержит один или несколько таких
сертификатов. В каталогах открытых ключей хранятся сертификаты
открытых ключей, а в каталогах секретных - сертификаты секретных
ключей.

На ключи также внутренне ссылаются "идентификаторы ключей",
которые являются "сокращением" открытого ключа (самые младшие 64
бита большого открытого ключа). Когда этот идентификатор ключа
отображается, то показываются лишь младшие 24 бита для краткости.
Если несколько ключей могут одновременно использовать один и тот
же идентификатор пользователя, то никакие два ключа не могут
использовать один и тот же идентификатор ключа.

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

Документы подписываются посредством добавления перед ними
удостоверяющей подписи, которая содержит идентификатор ключа,
использованного для подписи, подписанный секретным ключом
дайджест сообщения и метку даты и времени, когда подпись была
сгенерирована. Идентификатор ключа используется получателем
сообщения, чтобы найти открытый ключ для проверки подписи.
Программное обеспечение получателя автоматически ищет открытый
ключ отправителя и идентификатор пользователя в каталоге открытых
ключей получателя.

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

Эти два типа каталогов ключей и есть главный метод сохранения
и работы с открытыми и секретными ключами. Вместо того, чтобы
хранить индивидуальные ключи в отдельных файлах ключей, они
собираются в каталогах ключей для облегчения автоматического