2012-12-14 92 views
1

以下是我所瞭解的或據我所知GPG 1.當GPG使用公鑰加密時,我們需要指定keyid/user_id來標識該密鑰。GPG如何找到相應的私鑰

  1. 但是當解密時,看起來好像我們不需要指定keyid/user_id。

所以我的問題是: GPG如何識別或找出該加密公鑰的相應私鑰? 是否在加密文件中顯示該信息?

+0

請對答案和評論做出迴應Keith。 –

回答

1

加密文件包含可用於解密的所有密鑰的列表。如果你有任何私鑰,你可以解密它。

+0

一個公鑰可能有多個私鑰來解密它?並從您的上下文中,私鑰實際上被放在加密文件中,對吧?當解密時,GPG將搜索您的私鑰匙,以查找您的私鑰是否與文件中的私鑰相匹配? – Keith

+0

一個加密文件可能被多個私鑰解密。私鑰沒有放在加密文件中,公鑰是。如果你有相應的私鑰,那麼你可以解密該文件。 –

+0

公鑰* id *(8字節)與公鑰加密的會話密鑰一起放入文件中。 –

3

通過使用密鑰ID,密鑰通常是密鑰安全散列(部分)。請注意,例如, RSA模數已經標識了公鑰和私鑰,所以通常在模數上的散列足以用於識別。沒有直接需要存儲的ID。

+0

[是的](http://tools.ietf.org/html/rfc4880#section-12.2) –

+0

你是對的,GnuPG使用公鑰部分的散列(部分)來識別密鑰。此外,KeyID存儲在加密數據包內。 –