はじめに
平文で送信するべきではないファイルをPGP公開鍵を用いて送信する方法を紹介します。
手順
AさんからBさんへ secure.txt
を送信するとします。
BさんがPGP公開鍵を作成し、Aさんへ送信する
gpg --full-generate-key
作成する際のユーザー名は bbbbb
、メールアドレスは bb@bb
、パスフレーズは b
としました。
以下のコマンドで公開鍵のファイルを生成します。
gpg --export -a "bbbbb" > b_public_key.asc
Bさんは作成した b_public_key.asc
をAさんに送信します。公開鍵であるため、外部に公開しても問題ありません。
また、Bさんは以下のコマンドで表示される作成した鍵のfingerprintsも送信します。
gpg --list-keys --with-subkey-fingerprints
pub rsa3072 2024-04-02 [SC] [expires: 2026-04-02]
22A86D806EAB665CA9E7B88AC9CDA2F3FEA076A0
uid [ultimate] bbbbb <bb@bb>
sub rsa3072 2024-04-02 [E] [expires: 2026-04-02]
CC940889A2A3637CDFCE7BCF0D024F6E42C9E782
AさんはBさんの公開鍵を用いて暗号化する
まずはBさんから受け取った公開鍵をインポートします。
gpg --import b_public_key.asc
続いて公開鍵を用いて暗号化します。
gpg --encrypt --recipient bb@bb secret.txt
このときfingerprintsが表示されるので正しいことを確認し、実行します。
これにより、 secret.txt.gpg
というファイルが生成されます。AさんはこれをBさんに送信します。
Bさんが復号する
Bさんは秘密鍵を用いて復号します。
gpg --decrypt secret.txt.gpg
復号した結果が表示されます。
以上です。