使用GPG,用私钥加密文件

使用GPG,用私钥加密文件

我正在设置一个系统来更新设备上的软件,我想使用我创建的私钥对更新文件进行加密,然后使用公钥对其进行解密。我发现的所有示例都使用收件人公钥进行加密,我想使用我的私钥进行加密。我看过 Bob 和 Alice 的示例,这些示例使用您的私钥然后使用收件人的公钥对文件进行加密,但我不知道如何进行私钥加密。

答案1

这不是 GPG 的工作方式。

您使用公钥(可能是您的)加密文件,并使用私钥解密它。

因此,如果您在互联网上共享您的公钥,任何人都可以使用您的公钥加密文件,但您是唯一能够解密该文件的人。

看 :http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto-1.html

答案2

老问题,但是......我在寻找其他东西时发现了它。

您真正想要的不是加密文件,而是创建一个验证,证明您是文件的来源。这就是文件签名的目的。

公钥加密工作原理的快速基本概念:使用私钥加密的内容只能通过公钥解密。用你的公钥加密的东西只能用你的私钥解密。 (为什么会这样超出了这个答案的范围。)

在正常操作中,如果有人想向您发送消息,他们会使用您的公钥对其进行加密,因为只有您的私钥可以解密它。

签名生成文件/数据的单向哈希,并颠倒公钥和私钥的角色:拥有您的公钥的任何人都可以解密哈希,并且他们可以确定只有您生成加密的哈希,因为只有您的私钥密钥可用于首先对其进行加密。

哈希值用于验证文件自您签名以来未被篡改。对文件的任何更改都会更改其哈希值,并清楚地表明它已被更改。由于他们没有您的私钥,因此他们无法生成新哈希的新签名以使用您的公钥进行解密。

许多系统使用此方法对其他文件的校验和/哈希文件进行签名,以确保具有这些校验和/哈希的文件是真实的。

您还可以将数据/文件加密和签名结合起来,确保加密的数据不能被预期接收者以外的任何人解密,并且加密的数据没有被篡改。

“在幕后”,这就是 GPG 和相关程序的工作原理。使用密钥数据加密数据的计算成本太高。相反,他们会生成随机的“一次性密码”(OTP),以使用更快的加密方法进行加密。然后,使用预期接收者的密钥对密码进行加密,并与加密数据一起发送。由于只有他们的私钥才能解密用于加密数据的密码,因此您可以非常合理地保证其他人无法解密。

最后一点:密码学总是处于不断变化的状态。当我写这篇文章时,什么是“合理的”或“有保证的”,明天可能会因为有人发现所使用的算法之一的弱点而变得无效。

相关内容