$ echo "this is message" > message.txt
$ cat message.txt
this is message
相手の公開鍵で暗号化
メッセージの共有相手から事前に公開鍵をもらっておく必要がある。
相手の鍵の中に、暗号用用途 ([E]) の鍵が含まれている必要がある。
pub ed25519/BF98EE21F2F9F048 2024-04-04 [C]
A360CEF20643088F3958CDECBF98EE21F2F9F048
uid [unknown] foo@example.com
sub ed25519/02B2D9F670FD18C9 2024-04-04 [S]
sub cv25519/371EEB1712AAD061 2024-04-04 [E] # <- NEED [E] KEY
相手の鍵を指定して、 gpg --encrypt --recipient *KEYID* *FILE*
コマンドを実行する。(KEYID は相手のメールアドレスでもよい。)
–armor オプションを併せて指定すると、テキスト形式で出力される。(ファイルサイズはバイナリで出力した時よりも大きくなる)
$ gpg --encrypt --recipient 371EEB1712AAD061 message.txt
$ ls
message.txt message.txt.gpg
$ cat message.txt.gpg
���`�10�fTv!��~����ւh���uIү�m &?�W�q��:Z��8G1�OB��p�_,S�k3�M}�NW>7�.KQm\�B|���j꽽{��}
b)��8-z�␦��ֲL}�9�OQ�_^�VH�
$ gpg --armor --encrypt --recipient 371EEB1712AAD061 message.txt
$ ls
message.txt message.txt.asc
$ cat message.txt.asc
-----BEGIN PGP MESSAGE-----
hF4DNx7rFxKq0GESAQdAODJxrtgR5PtcY8aLP4iGYgL+mQLRZ+zGW59KYH5hCXEw
3J149tyDSW2/MdYW8DvZpLILlcYryp/xuFtbTzW1Wyk71FyhX6IjDGREQkTzG0TW
0k8BEIUOAtjt+c2EccpmzuQ/r75AXZzUlhigPtOSzjdGoL2dLTsPJ2P313YC0ptR
j7ZVL+KKCNQ9BQZ5KOYH0WXjUEJuqHng9oUKsR2uuuAv
=bFxQ
-----END PGP MESSAGE-----
自分の秘密鍵で復号
自分の公開鍵で暗号化されたファイルを受け取ったら、自分の秘密鍵で復号する。処理結果をファイルに残すとオプションと併用して、 gpg --output *OUTFILE* --decrypt *INFILE*
コマンドを実行する。
$ ls
message.txt.asc
$ gpg --output message.txt --decrypt message.txt.asc
gpg: encrypted with 255-bit ECDH key, ID 371EEB1712AAD061, created 2024-04-08
"foo@example.com"
$ ls
message.txt message.txt.asc
$ cat message.txt
this is message