web-dev-qa-db-ja.com

OpenPGP / GnuPGキーIDとは何ですか?

鍵ブロック自体と鍵のハッシュの有用性は理解していますが、なぜ追加情報が必要になるのかわからないので、追加情報の有用性を推測することはできません。

具体的には

  • それは何を意味し、
  • どこで使用されているか
  • (どのように)公開鍵ブロックを考慮してそれを決定できますか?

spacewalkは指紋とIDの違いを認識する であるので混乱を招くため、接線的に言及する傾向があります Fedoraによって公開された一部のGPGドキュメント はフレーズを含みます

KEYNAMEは、プライマリキーペアのキーIDまたはフィンガープリントに置き換えます。

これにより、2つの目的が同じであるかのように見えます。しかし、それが事実である場合、なぜ両方を最初に必要とするのでしょうか?

25
Parthian Shot

から RFC 488

V4フィンガープリントは、オクテット0x99の160ビットのSHA-1ハッシュで、2オクテットのパケット長が続き、その後にバージョンフィールドで始まる公開鍵パケット全体が続きます。キーIDは、指紋の下位64ビットです。

V3キーの場合も同様ですが、キーの長さは省略されています。

つまり、フィンガープリントは定数、パケット長、そして最後に公開鍵パケットの一部から計算されます。リンクされたRFCに何が含まれているか(したがって、それを計算する方法)に関する詳細な説明。

(長い)キーIDは最下位64ビットで表され、完全なフィンガープリントは扱いにくい長い値であるため使用されます。さらに多くの場合、最下位の32ビットで構成される短いキーIDが使用されます。これらの短いキーIDは 衝突の可能性が高すぎる であり、完全なフィンガープリントでさえ推奨されない場合でも、少なくとも長いIDの使用があると見なされることがよくあります。

一言で要約:

フィンガープリントは、公開鍵パケットから計算されたハッシュ値です。キーIDはフィンガープリントの一部です。

Fingerprint: 0D69 E11F 12BD BA07 7B37  26AB 4E1F 799A A4FF 2279
Long key ID:                                4E1F 799A A4FF 2279
Short key ID:                                         A4FF 2279

場合によっては、IDの前に0xそれらは16進値なので。

29
Jens Erat