元の質問
私は GPG とサブキーの使用について学んでいます。サブキーの使用と主キーをオフラインにしておくことの利点についてはよく理解できたと思いますが、これらのキーのうちどれを公開すべきかについての情報が不足しています。質問:
どのキーを公開すればよいですか?
主キー、サブキー、またはすべてを公開する必要がありますか? それぞれの長所と短所は何ですか?
友達はどのキーに署名すればよいですか?
友人が私をキーリングに追加する場合は、主キー、サブキー、またはすべてのキーを追加しますか? 新しいサブキーを設定した場合、友人はどのようにしてそれが主キーに関連付けられていることを検証できますか?
サブキーは主キーとどのように「関連付けられる」のでしょうか?
これらが関連しているという記事はたくさんありますが、どのように関連しているかを述べた記事はありません。これらには共通の数学的特性があるのでしょうか?
これを理解したいと思っていますので、ご説明いただければ幸いです。
アップデート
さらに調査を進めていくと、次のような興味深い記事を見つけました。GPG キーの構造この記事に記載されている情報から判断すると、少なくとも公開鍵を見ると、サブキーは文字通りマスター キー内に含まれているようです。私が当初理解していなかったのは、PGP キーにはキーの実際の数値だけでなく、多くのメタ情報が含まれているということでした。
私が理解しているのは1つ公開鍵?
どうやら、公開鍵は 1 つしかなく、それが私が公開するもので、友人が署名するもののようです。これが私のサブキーを関連付け、私のサブキーが実際に私のものであることを全員に伝えるものなのでしょうか?
サブキーを別のデバイスにコピーすると、公開キー全体も取得されますか?
それとも、サブキーには独自のサブ公開キーがあるのでしょうか?
答え1
まずはこれから始まります:
公開鍵は 1 つしかないと理解してよろしいでしょうか?
どうやら、公開鍵は 1 つしかなく、それが私が公開するもので、友人が署名するもののようです。これが私のサブキーを関連付け、私のサブキーが実際に私のものであることを全員に伝えるものなのでしょうか?
はい、いいえ。それは、「公開鍵」の複数の定義使用したいもの。
公開されているものが1つありますキーブロック、 どれのほとんどの人は一般的な意味では「PGP 公開鍵」と呼びます。(「証明書」と呼ばれることもあります。) リンク先の記事でご覧いただいたように、この公開鍵ブロックは複数のパケットで構成されています。
your "primary" public key parameters (the cryptographic values for RSA/DSA/etc)
├─ metadata for that public key (creation/expiry time, etc)
├─ a list of userids (name+email labels)
│ └─ each userid followed by a list of signatures (certifications)
└─ a list of "subkey" public key parameters (RSA numbers, etc)
└─ each subkey followed by a list of self-signatures (self-certifications)
しかし、これは暗号学上の意味での「1つの公開鍵」と同じものではありません。複数セット実際の RSA/DSA などのパブリックパラメータその中。
サブキーは主キーとどのように「関連付けられる」のでしょうか?
これらが関連しているという記事はたくさんありますが、どのように関連しているかを述べた記事はありません。これらには共通の数学的特性があるのでしょうか?
これらは、主キーによって作成された署名 (自己認証) とともに保存されます。ただし、数学的には完全に独立しており、異なるアルゴリズムで生成できます。
どのキーを公開すればよいですか?
主キー、サブキー、またはすべてを公開する必要がありますか? それぞれの長所と短所は何ですか?
これらすべてを 1 つのユニット (キーブロック) として。
それぞれのキーは、それぞれのタスクに必要です。主キーは、他の人のキー (ユーザー ID) や自分のサブキーおよびユーザー ID に対して行う署名 (証明書) を検証する必要があるため、公開されている必要があります。暗号化サブキーは、他の人が実際にメッセージを暗号化できるように、公開されている必要があります。などなど。
友達はどのキーに署名すればよいですか?
ユーザー インターフェイスでは、プライマリ キー (ID または指紋) を指定することで署名プロセスが開始されます。その後、ソフトウェアが適切な処理を実行します。
技術的には、どの鍵も署名されません。他の人があなたの鍵に署名します。ユーザーID、これらは主キーに関連付けられたテキスト ラベル (名前 + 電子メール) です。他の人のキーに署名する目的は、キーと名前 + 電子メールの間の結合を保証することです。キーだけに署名しても意味がありません。
友人が私をキーリングに追加する場合は、私の主キー、サブキー、またはすべてのキーが追加されるのでしょうか?
友達がキー ブロック全体 (主キー、サブキー、ユーザー ID) を追加します。
新しいサブキーを設定した場合、それがプライマリキーに関連付けられていることをどのように検証できますか?
独自のサブキーとユーザー ID は「自己認証」されます。つまり、作成するとすぐにプライマリ キーによって自動的に署名されます。プライマリ キーのフィンガープリントを配布するだけで十分なのは、これが検証ルートとして機能するためです。