Используя GPG, зашифруйте файл с помощью закрытого ключа

Используя GPG, зашифруйте файл с помощью закрытого ключа

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

решение1

GPG так не работает.

Вы шифруете файл открытым ключом (может быть вашим) и расшифровываете его закрытым ключом.

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

Видеть :http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto-1.html

решение2

Старый вопрос, но... Я наткнулся на него, когда искал что-то другое.

На самом деле вам здесь нужно не зашифровать файл, а создать подтверждение того, что вы являетесь источником файла. В этом и заключается цель подписей файлов.

Краткая базовая идея о том, как работает шифрование с открытым ключом: зашифрованное что-то вашим закрытым ключом может быть расшифровано только вашим открытым ключом. Зашифрованное что-то вашим открытым ключом может быть расшифровано только вашим закрытым ключом. (Почему это так, выходит за рамки этого ответа.)

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

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

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

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

Вы также можете объединить шифрование данных/файлов и их подписание, гарантируя, что зашифрованные данные не могут быть расшифрованы никем, кроме предполагаемого получателя, и что никакие зашифрованные данные не были подделаны.

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

Последнее замечание: Криптография всегда находится в состоянии текучести. То, что является «разумным» или «гарантированным», когда я это пишу, завтра может быть признано недействительным, если кто-то обнаружит слабость в одном из используемых алгоритмов.

Связанный контент