Как pgp понимает каким ключем открывать?
Расскажите пожалуйста подробно, как pgp определяет каким ключем расшифровывать сообщение. ведь по идеи зашифрованный файл хранит в себе зашифрованное сообщение сеансовым ключем+зашифорванный открытым ключем этот сеансовый ключ. и данные об получателе должны храниться в зашифрованном виде, иначе их можно взломать. как тогда pgp определяет наличие необходимого ключа? Я так понимаю, что в ранних версиях была возможность выбора атомат/ручной(читал), но у меня такого нет(версия 8).
комментариев: 11558 документов: 1036 редакций: 4118
2.я так понял, что при генерации пары ключей каким-то образом для этой пары, генерируется и присваивается ID(как я понял берутся 8 младших байт отпечатка), который потом и фигурирует в зашифрованном сообщении и в самом ключе(при его экспорте). Просто не совсем понял раздел «ID-ключа и отпечаток». Если я прав то как можно этот ID посмотреть в программе.
ps – мне необходимо доказать и показать почему pgp автоматически производит выбор ключа открывания. В той ссылке ("некоторые метаданные" в первом параграфе) описана структура пакета сеансового ключа, зашифрованного открытым ключом:
03 (1 байт, индикатор версии)
[ID ключа шифрования] (8 байт)
[идентификатор PK-алгоритма] (1 байт)
[алгоритмо-зависимые большие числа шифртекста]
так вот этот ID ключа шифрования и есть ID открытого ключа? (мне выдвинули аргумент что это может быть ID ключа сеансового..)
комментариев: 11558 документов: 1036 редакций: 4118
Да, ID ключа = ID открытого ключа. Никаких других ID, видимых пользователю, PGP не предусматривает.
Нет.
Генерируется только ключевая пара. Отпечаток — это хэш-значение этой самой ключевой пары. А ID — это последние 8 байт отпечатка.
Ну вот Вы сами привели структуру пакета зашифрованного сеансового ключа. Там указан ID ключа шифрования. По этому ID PGP находит на связке закрытый ключ, расшифровывает с его помощью сеансовый ключ, а сеансовым автоматически расшифровывает сообщение.