まずは現在の鍵束の状態を確認。
$ gpg --verbose --list-public-keys --with-fingerprint --with-fingerprint --keyid-format 0xlong gpg: using PGP trust model /home/hoge/.gnupg/pubring.gpg ----------------------------- pub 4096R/0xB8A5F029FDD5840B 2000-01-01 Key fingerprint = 09F6 31A9 B3C5 193C 6BA1 55B2 B8A5 F029 FDD5 840B uid u00 <u00@example.com> sub 4096R/0x12041ECC0E41ECA0 2000-01-01 Key fingerprint = 7D63 ACDE C98C 3EBE 22A3 D3CD 1204 1ECC 0E41 ECA0 pub 4096R/0x2F33B318C9F24399 2000-01-01 Key fingerprint = 68CC 485E C1EA B02D ED29 D46E 2F33 B318 C9F2 4399 uid u01 <u01@example.com> sub 4096R/0x83526B256456735D 2000-01-01 Key fingerprint = F2B4 158E 494D 4850 6F43 07CF 8352 6B25 6456 735D pub 4096R/0x6F31A58CCF8F88CB 2000-01-01 Key fingerprint = E531 4438 ABF0 9A0B 9348 FB90 6F31 A58C CF8F 88CB uid u02 <u02@example.com> sub 4096R/0x065DEE9F22DD20F0 2000-01-01 Key fingerprint = 54F0 99C9 991A A3FF 5491 02E0 065D EE9F 22DD 20F0 $ gpg --verbose --list-secret-keys --with-fingerprint --with-fingerprint --keyid-format 0xlong gpg: using PGP trust model /home/hoge/.gnupg/secring.gpg ----------------------------- sec 4096R/0xB8A5F029FDD5840B 2000-01-01 Key fingerprint = 09F6 31A9 B3C5 193C 6BA1 55B2 B8A5 F029 FDD5 840B uid u00 <u00@example.com> ssb 4096R/0x12041ECC0E41ECA0 2000-01-01 Key fingerprint = 7D63 ACDE C98C 3EBE 22A3 D3CD 1204 1ECC 0E41 ECA0
暗号化を行うには --encrypt を使い、暗号化ファイルの受取人に対応する key id を --recipient または --hidden-recipient で指定する。暗号化ファイルに key id の情報を含める場合は --recipient、含めない場合は --hidden-recipient を使う。
$ gpg --verbose --encrypt --recipient u01 --hidden-recipient u02 ~/secret_file.txt gpg: using PGP trust model gpg: using subkey 22DD20F0 instead of primary key CF8F88CB gpg: This key belongs to us gpg: using subkey 6456735D instead of primary key C9F24399 gpg: This key belongs to us gpg: reading from `secret_file.txt' gpg: writing to `secret_file.txt.gpg' gpg: RSA/AES256 encrypted for: "6456735D u01 <u01@example.com>" gpg: RSA/AES256 encrypted for: "22DD20F0 u02 <u02@example.com>"
--decrypt と --verbose を同時に使えば、暗号化ファイルの受取人は暗号化ファイルの作成時に使われた key id を知ることが可能。--hidden-recipient を使った場合には指定した key id が 0 で埋められていることがわかる。
$ gpg --verbose --decrypt --batch /home/hoge/secret_file.txt.gpg gpg: public key is 6456735D gpg: public key is 00000000 gpg: encrypted with RSA key, ID 00000000 gpg: encrypted with RSA key, ID 6456735D gpg: decryption failed: secret key not available