可以仅使用公共密钥的指纹来验证PGP消息吗?


1

共享公共密钥和仅共享其40位指纹有什么区别?公钥很长,因此,如果我希望某人能够验证我的消息,我可以给他们邮寄带有40位指纹的明信片吗?


一种更简单的方法是将您的公钥上传到公钥服务器(如果您不介意将公钥公开),然后通过电话/语音向您的朋友读取指纹(如果他们信任并识别您的声音) -没有邮费或等待邮件。
Xen2050 '16

Answers:


3

指纹就像钥匙的序列号-唯一标识符。它用于检查双方是否都在谈论同一密钥,以防万一公钥服务器中有多个具有相同名称的人。(与庞大的公共密钥字符串相比,一眼检查指纹也要容易得多。)

指纹是公钥的哈希,并且由于较短,因此必须包含较少的信息。因此,它不能用作公用密钥,因为无法在合理的时间内从指纹中检索公用密钥。哈希函数破坏了公钥与私钥的数学关系。

考虑一下人为设计的隐喻。假设您有一个锁(公用密钥)并在其内部晃动,以使一半的销钉消失,其余的销钉以某种确定性的方式进行重新排序(产生错误的锁,即指纹)。真正锁的钥匙(私钥)将无法打开该杂物锁,因为它与锁之间的物理互锁关系丢失了。但是,您可以通过比较两个拼凑而成的版本来确定两个锁是否相同,并假设修改过程是一个很好的哈希。

因此,不,您不能仅使用指纹来加密某人的消息。您必须拥有完整的公共密钥。

进一步阅读:PGP密钥验证公共密钥指纹


我会提到指纹应该像一个唯一的序列号。而且您在令人讨厌的锁隐喻上迷失了我(或者我分心了……)
Xen2050

@ Xen2050是的,这很奇怪。我试图使其更好一些,并添加了有关指纹唯一性的内容。
本N

我会+1,但我会尽量不要考虑断锁;-)
Xen2050

现在一切都说得通了。首先需要整个公钥,然后您可以通过电话或邮寄方式验证指纹。
HC巴顿

1

您可以通过明信片发送指纹以验证公钥吗?

简短答案:

实际上,指纹的思想是简化密钥验证的过程。因此,可以,您可以将指纹发送给其他人,以便他们可以验证他们拥有的公共密钥。但是,您需要注意保存发送指纹的通道。

较长版本:

通常可以通过某个密钥服务器访问公共密钥,或者人们在通过Internet发送的加密消息中提供其公共密钥。两者都不是非常值得信赖的信息来源,中间人可能会在您拉动钥匙时更改了钥匙。为了认证其他人的公共密钥(并与他们进行加密通信),需要验证/认证该公共可访问密钥。

为了简化此过程,您无需与相关人员会面/打电话给您(可能很长)的公用密钥,而是可以将您的指纹与刚刚从接收到的公用密钥中算出的指纹进行比较。

但是,用于保存指纹进行比较的通道必须保存。就个人而言,我有点偏执以至于用明信片传达指纹。但是,要验证/认证另一个人的公钥,并且如果您信任邮政服务以及可以访问该邮政信箱的邻居,则这是可行的。

按键和指纹之间的差异

用密码哈希函数计算指纹。尽管它是唯一的(没有两个不同的消息共享相同的哈希值),但是您不能反转该过程,因此,您不能解密使用相应公钥加密的任何消息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.