
До этой недели я никогда не пользовался gpg (2.0.14), и я не профессионал в криптографии, но результаты, которые я получаю с gpg, кажутся странными.
Когда я импортирую ключи (например, gpg --import public.key), которые были сгенерированы OpenPGP, gpg, похоже, успешно их обрабатывает и не сообщает об ошибках. Однако, когда я затем экспортирую эти ключи и сравниваю с оригиналами, онинетто же самое. Я предполагаю, что именно поэтому gpg не может расшифровать сообщения, созданные [в другом месте] с помощью исходного открытого ключа.
Шаги для воспроизведения: используйте такой инструмент, какhttps://sela.io/pgp/для генерации набора ключей, импорта в gpg, экспорта из gpg, сравнения.
Несовместимость? Пропустил шаг? Боги программного обеспечения продолжают плести против меня интриги с серией мелких неприятностей?
решение1
Единственное отличие, которое я вижу, заключается в том, что GPG 2.0.14 (который у меня установлен на CentOS 6) выводит ключевые пакеты с заголовками старого формата (вероятно, для более широкой совместимости, по крайней мере в прошлые годы), а не с заголовками нового формата, которые используются на этом сайте (см.rfc4880 раздел 4.2), и по умолчанию не защищен (но это легко удалить). Тела пакетов, а значит и значения ключей, идентичны, как и должно быть.
Однако импорт толькопубличныйключ никогда не позволяет вам расшифровать или подписать. Весь смысл открытого ключа или «асимметричной» криптографии заключается в том, что только предположительно уникальный держательчастныйключ, который GPG по историческим причинам называетсекретключ, может расшифровывать или подписывать, тогда как открытый ключ может быть открытым и использоваться кем угодно для шифрования или проверки.
Добавлено: хотя это крайне сомнительная практика — использовать веб-сайт для генерации ключей, особенно когда на нем даже не указано (насколько я могу судить), что генерация происходит в браузере (хотя на основе использования ЦП, указанного ProcExp, это, по-видимому,вероятный). И странно, что они генерируют главный ключ с флагами CSEA и два подключаемых ключа, оба с флагами SEA, которые по сути бесполезны и являются пустой тратой ресурсов процессора.