Answers:
指纹就像钥匙的序列号-唯一标识符。它用于检查双方是否都在谈论同一密钥,以防万一公钥服务器中有多个具有相同名称的人。(与庞大的公共密钥字符串相比,一眼检查指纹也要容易得多。)
指纹是公钥的哈希,并且由于较短,因此必须包含较少的信息。因此,它不能用作公用密钥,因为无法在合理的时间内从指纹中检索公用密钥。哈希函数破坏了公钥与私钥的数学关系。
考虑一下人为设计的隐喻。假设您有一个锁(公用密钥)并在其内部晃动,以使一半的销钉消失,其余的销钉以某种确定性的方式进行重新排序(产生错误的锁,即指纹)。真正锁的钥匙(私钥)将无法打开该杂物锁,因为它与锁之间的物理互锁关系丢失了。但是,您可以通过比较两个拼凑而成的版本来确定两个锁是否相同,并假设修改过程是一个很好的哈希。
因此,不,您不能仅使用指纹来加密某人的消息。您必须拥有完整的公共密钥。
实际上,指纹的思想是简化密钥验证的过程。因此,可以,您可以将指纹发送给其他人,以便他们可以验证他们拥有的公共密钥。但是,您需要注意保存发送指纹的通道。
通常可以通过某个密钥服务器访问公共密钥,或者人们在通过Internet发送的加密消息中提供其公共密钥。两者都不是非常值得信赖的信息来源,中间人可能会在您拉动钥匙时更改了钥匙。为了认证其他人的公共密钥(并与他们进行加密通信),需要验证/认证该公共可访问密钥。
为了简化此过程,您无需与相关人员会面/打电话给您(可能很长)的公用密钥,而是可以将您的指纹与刚刚从接收到的公用密钥中算出的指纹进行比较。
但是,用于保存指纹进行比较的通道必须保存。就个人而言,我有点偏执以至于用明信片传达指纹。但是,要验证/认证另一个人的公钥,并且如果您信任邮政服务以及可以访问该邮政信箱的邻居,则这是可行的。
用密码哈希函数计算指纹。尽管它是唯一的(没有两个不同的消息共享相同的哈希值),但是您不能反转该过程,因此,您不能解密使用相应公钥加密的任何消息。