-
[こちら] 相手の公開鍵をimport
$ gpg --fetch-keys https://github.com/ddddddO.gpg
-
[こちら] 相手の鍵IDを確認
$ gpg -k /home/pi/.gnupg/pubring.kbx --------------------------- pub rsa4096 2023-03-26 [SC] 1E2AF1DDED022B7CA39574F56F44E3423C0CBAD0 uid [ 不明 ] ddddddO <lbfdeatq@gmail.com> sub rsa4096 2023-03-26 [E]
-
[こちら] ファイルを暗号化
$ gpg --encrypt -r 相手の鍵ID -a ファイル名 # e.g. gpg --encrypt -r 1E2AF1DDED022B7CA39574F56F44E3423C0CBAD0 -a hello_world.tmp
-
[相手] ファイルを復号
$ gpg --decrypt 暗号ファイル名 # e.g. gpg --decrypt hello_world.tmp.asc
$ echo 'Hello world' | gpg -a -r ddddddO -e | gpg -d
-
暗号化
$ echo 'Hello world' | gpg -a -c > hello_world.asc # Enter passphrase.
-
復号
$ gpg -d hello_world.asc # Enter passphrase.
例)
$ echo 'Hello world' | gpg -u ddddddO --clear-sign > signed
$ cat signed
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hello world
-----BEGIN PGP SIGNATURE-----
iQJHBAEBCgAxFiEEHirx3e0CK3yjlXT1b0TjQjwMutAFAmQgctgTHGxiZmRlYXRx
QGdtYWlsLmNvbQAKCRBvRONCPAy60BAiEACvaNF4JLe1olyzDbNku3oCDi/H3o1I
UOfoZ5i2D3NBoNfXQrySC//Zum6cbhbhDLI6VPPANrqeF6MjBj60GvMl+mBso0CF
Z/kwzVywzVfre+my3zjqgcplVUFNHs01KJMT/iJgipOq52AR2llZ709coLvkGF+F
i47c4xDuiSqJuAjrrDqSIxbystRxPUmSHxZyP9pC4v6DAncDK4bRivslDjsZC3ye
/GLC9dpB2AsgaMiDc2XlqBOCJRPE9P6y/Digxb+prJMUUO1G6HN84PFVLfpfdbU6
pkwNo4kMIG5oC7FLqW9YFHv1qvVpE8eccAja9Bnfu+8O+QiDj726952zTGwOPCPl
OTH4icllqM6bGVwpkwjRyt5FKHV1djEUfoJ+sw7M0mjyQQUBe1hFY+US9lpQAzgd
GhQ0UixpWFNWfzxmD1JlgLLlnJ42hagfmq4OVdLw8TmUZ3pEA1iM4RNgx61vFdS6
0nxIrzm+jU5D4E660hn6T0R3i1zaCAcZ4ImAuhjMqnMI75wriz8/4egDQ1zuad5g
tg327HAMlqosZT5A5PZoYzp6algFaYV6rh/GUidTnxCTaKIamQZ9Atj2BZGlTMaO
7PPmVb4924Z9W8wHub03yRjymLRCzIEMPCSSI1YaTDXzySSF7Kl/VLmDJ7FPDc3y
0atVqma5S8vGXw==
=vWBt
-----END PGP SIGNATURE-----
$ cat signed | gpg -d
Hello world
gpg: 2023年03月27日 01時29分12秒 JSTに施された署名
gpg: RSA鍵1E2AF1DDED022B7CA39574F56F44E3423C0CBAD0を使用
gpg: 発行者"lbfdeatq@gmail.com"
gpg: "ddddddO <lbfdeatq@gmail.com>"からの正しい署名 [究極]
$
$ gpg --help
gpg (GnuPG) 2.2.27
libgcrypt 1.8.8
Copyright (C) 2021 Free Software Foundation, Inc.
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /home/ochi/.gnupg
サポートしているアルゴリズム:
公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256,
TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
圧縮: 無圧縮, ZIP, ZLIB, BZIP2
形式: gpg [オプション] [ファイル]
署名、検査、暗号化または復号
デフォルトの操作は、入力データに依存
コマンド:
-s, --sign 署名を作成
--clear-sign クリア・テクスト署名を作成
-b, --detach-sign 分遣署名を作成
-e, --encrypt データを暗号化
-c, --symmetric 暗号化には共通鍵暗号方式のみを使用
-d, --decrypt データを復号 (デフォルト)
--verify 署名を検証
-k, --list-keys 鍵の一覧
--list-signatures 鍵と署名の一覧
--check-signatures 鍵署名の検査と一覧
--fingerprint 鍵とフィンガープリントの一覧
-K, --list-secret-keys 秘密鍵の一覧
--generate-key 新しい鍵ペアを生成
--quick-generate-key すばやく新しい鍵ペアを生成
--quick-add-uid すばやく新しいユーザIDを追加
--quick-revoke-uid すばやくユーザIDを失効
--quick-set-expire すばやく新しい有効期限を設定
--full-generate-key 全機能の鍵ペアを生成
--generate-revocation 失効証明書を生成
--delete-keys 公開鍵リングから鍵を削除
--delete-secret-keys 秘密鍵リングから鍵を削除
--quick-sign-key すばやく鍵に署名
--quick-lsign-key すばやく鍵へローカルに署名
--quick-revoke-sig すばやく鍵への署名を失効
--sign-key 鍵に署名
--lsign-key 鍵へローカルに署名
--edit-key 鍵への署名や編集
--change-passphrase パスフレーズの変更
--export 鍵をエクスポートする
--send-keys 鍵サーバに鍵をエクスポートする
--receive-keys 鍵サーバから鍵をインポートする
--search-keys 鍵サーバの鍵を検索する
--refresh-keys 鍵サーバから鍵を全部更新する
--import 鍵のインポート/マージ
--card-status カード・ステイタスを表示
--edit-card カードのデータを変更
--change-pin カードのPINを変更
--update-trustdb 信用データベースを更新
--print-md メッセージ・ダイジェストを表示
--server サーバ・モードで実行
--tofu-policy VALUE TOFUポリシーを鍵に設定する
オプション:
-a, --armor ASCII形式の外装を作成
-r, --recipient USER-ID USER-ID用に暗号化
-u, --local-user USER-ID 署名や復号にこのUSER-IDを使用
-z N 圧縮レベルをNに設定 (0は非圧縮)
--textmode 正準テキスト・モードを使用
-o, --output FILE 出力をFILEに書き出す
-v, --verbose 冗長
-n, --dry-run 無変更
-i, --interactive 上書き前に確認
--openpgp 厳密なOpenPGPの振舞を採用
(コマンドとオプション全部の一覧は、マニュアル・ページをご覧ください)
例:
-se -r Bob [ファイル] ユーザBobへ署名と暗号化
--clear-sign [ファイル] クリア・テクスト署名を作成
--detach-sign [ファイル] 分遣署名を作成
--list-keys [名前] 鍵を表示
--fingerprint [名前] フィンガープリントを表示
バグは <https://bugs.gnupg.org> までご報告ください。
$
$ gpgpdump fetch https://github.com/ddddddO.gpg --utc --indent 2
Public-Key Packet (tag 6) (525 bytes)
Version: 4 (current)
Public key creation time: 2023-03-26T04:49:44Z
Public-key Algorithm: RSA (Encrypt or Sign) (pub 1)
RSA public modulus n (4096 bits)
RSA public encryption exponent e (17 bits)
User ID Packet (tag 13) (28 bytes)
User ID: ddddddO <lbfdeatq@gmail.com>
Signature Packet (tag 2) (590 bytes)
Version: 4 (current)
Signiture Type: Positive certification of a User ID and Public-Key packet (0x13)
Public-key Algorithm: RSA (Encrypt or Sign) (pub 1)
Hash Algorithm: SHA2-512 (hash 10)
Hashed Subpacket (56 bytes)
Issuer Fingerprint (sub 33) (21 bytes)
Version: 4 (need 20 octets length)
Fingerprint (20 bytes)
1e 2a f1 dd ed 02 2b 7c a3 95 74 f5 6f 44 e3 42 3c 0c ba d0
Signature Creation Time (sub 2): 2023-03-26T04:49:44Z
Key Flags (sub 27) (1 bytes)
Flag: This key may be used to certify other keys.
Flag: This key may be used to sign data.
Preferred Symmetric Ciphers for v1 SEIPD (sub 11) (4 bytes)
Symmetric Algorithm: AES with 256-bit key (sym 9)
Symmetric Algorithm: AES with 192-bit key (sym 8)
Symmetric Algorithm: AES with 128-bit key (sym 7)
Symmetric Algorithm: TripleDES (168 bit key derived from 192) (sym 2)
Preferred Hash Algorithms (sub 21) (5 bytes)
Hash Algorithm: SHA2-512 (hash 10)
Hash Algorithm: SHA2-384 (hash 9)
Hash Algorithm: SHA2-256 (hash 8)
Hash Algorithm: SHA2-224 (hash 11)
Hash Algorithm: SHA-1 (hash 2)
Preferred Compression Algorithms (sub 22) (3 bytes)
Compression Algorithm: ZLIB <RFC1950> (comp 2)
Compression Algorithm: BZip2 (comp 3)
Compression Algorithm: ZIP <RFC1951> (comp 1)
Features (sub 30) (1 bytes)
Flag: Symmetrically Encrypted Integrity Protected Data packet version 1
Key Server Preferences (sub 23) (1 bytes)
Flag: No-modify
Unhashed Subpacket (10 bytes)
Issuer Key ID (sub 16): 0x6f44e3423c0cbad0
Hash left 2 bytes
41 7d
RSA signature value m^d mod n (4094 bits)
Public-Subkey Packet (tag 14) (525 bytes)
Version: 4 (current)
Public key creation time: 2023-03-26T04:49:44Z
Public-key Algorithm: RSA (Encrypt or Sign) (pub 1)
RSA public modulus n (4096 bits)
RSA public encryption exponent e (17 bits)
Signature Packet (tag 2) (566 bytes)
Version: 4 (current)
Signiture Type: Subkey Binding Signature (0x18)
Public-key Algorithm: RSA (Encrypt or Sign) (pub 1)
Hash Algorithm: SHA2-512 (hash 10)
Hashed Subpacket (32 bytes)
Issuer Fingerprint (sub 33) (21 bytes)
Version: 4 (need 20 octets length)
Fingerprint (20 bytes)
1e 2a f1 dd ed 02 2b 7c a3 95 74 f5 6f 44 e3 42 3c 0c ba d0
Signature Creation Time (sub 2): 2023-03-26T04:49:44Z
Key Flags (sub 27) (1 bytes)
Flag: This key may be used to encrypt communications.
Flag: This key may be used to encrypt storage.
Unhashed Subpacket (10 bytes)
Issuer Key ID (sub 16): 0x6f44e3423c0cbad0
Hash left 2 bytes
d9 8a
RSA signature value m^d mod n (4096 bits)
$
- ddddddO の commit には
GPG key ID: 6F44E3423C0CBAD0
の署名がつく