GnuPGでarmorオプションの用途は何ですか?

GnuPGでarmorオプションの用途は何ですか?

gpg秘密鍵または公開鍵をエクスポートしてarmorをスイッチとして指定すると、プレーンテキストキーが表示されますが、gnupgp Webサイトにはこれらの鍵が実際に暗号化されていることが示されているようです。普通のテキストなら鎧と呼ぶのはなぜですか?私は理解できません。

キーはバイナリ形式でエクスポートされますが、キーを電子メールで送信したりWebページに公開したりするのは不便です。したがって、GnuPGはコマンドラインオプションをサポートします。--armorその結果、uuencoded 文書と同様の ASCII armor 形式で出力されます。通常、GnuPGのすべての出力(キー、暗号化された文書、署名など)は、--armorオプションを追加することでASCIIに拡張できます。

https://www.gnupg.org/gph/en/manual/x56.html

答え1

gpg --export出力バイナリデータ。これはテキストとして直接表示することはできませんが、base16(つまり16進数)エンコーディングでは次のようになります。

f53e9c4b013d3c6554c3161116face55f11db56dab1a941fe3a6e5ad246d4eb7

gpg --export --armor出力64ビットベースエンコードされたデータ、プレーンテキストヘッダー、フッター:

-----BEGIN PGP PUBLIC KEY BLOCK-----

9T6cSwE9PGVUwxYRFvrOVfEdtW2rGpQf46blrSRtTrc=

-----END PGP PUBLIC KEY BLOCK-----

これは、電子メールや他のテキスト中心のメディアでキーを共有するために使用されるより伝統的な形式です。バイナリデータは ASCII テキストで転送できないために使用されます。さらに、base64は、バイナリデータをテキストで表現する他の従来の方法よりも優れています(例:16進数(つまり、16進数)。


メモ:これらの例は教育的理由により簡略化されている。

答え2

PGP(GPGを含む)「鎧」は暗号化ではありません。暗号化はデータを読み取ることができず(キーを持つ人だけが元に戻すことができる)、データの不正使用を防ぎます(正式に機密性を提供します)。 Armoringは単純なプロセス(ほとんどBase64ですが、uuencodeで使用するのと同じBase64ではない)仕様を読んでいる人なら誰でも簡単に元に戻すことができます。鎧良いテキスト(アーマード(バイナリ)データではありません)良い不適切なツール(テキストエディタなど)を使用している人にとっては、ゴミですが、cat有能な人も読むことができます。

特に、署名されたが暗号化されていないPGPメッセージは、武装しているかどうかにかかわらず、能力のある人なら誰でも読むことができます。 PGP公開鍵の場合は上記と同じです。暗号化されたPGPメッセージは、鍵を持つ人だけが読むことができます。メッセージの暗号化方法によっては、秘密鍵、パスワード、またはその両方が使用できます。これは、保護されているかどうかにかかわらず同じです。 PGP秘密鍵は常に暗号化され、(KEK)鍵(この場合は常にパスワード)を所有している人だけが完全に読み取ることができます。人々部分秘密鍵は鎧に関係なく能力のある人なら誰でも読むことができます。

これ目的鎧の目的は、正しい処理を助けることです。電子メール用にPGPが作成された頃、ほとんどの電子メールシステムはテキストのみを処理でき、バイナリデータを破損、破壊、または完全に破棄しました。本質的にバイナリであるPGPメッセージとキーブロックを正常に送信するために、テキスト形式で「保護」され、受信および処理時に保護されません。今日、ほとんどすべての電子メールシステムはほとんど不要なバイナリデータを処理していますが、テキスト用に設計されたツール(切り取りと貼り付けなど)または参照提案Webページを使用してデータを処理したい場合は、まだ保護されています。テキストは処理しますが、バイナリは処理しません)。別のツールを使用せずに人が簡単に理解できるという利点もあります。

関連情報