GnuPG
2022-08-13 (土) 09:29:55
GnuPG とは †
名称 †
- GNU Privacy Guard
- GNU PG
- GPG
概要 †
- https://www.gnupg.org/
- OpenPGPに準拠したOSSの実装
- GPL(OSS)
動作環境 †
- Unix
- Windows
- macOS
実装する機能 †
サポートする暗号化アルゴリズム †
共通鍵暗号方式 †
公開鍵暗号方式 †
ハッシュ関数 †
デジタル署名 †
操作(Liniux) †
インストール †
- Debian系
apt-get install gnupg2
公開鍵の管理 †
- 鍵ペアの作成
- プロンプトで鍵の種類・鍵長/楕円曲線・有効期限を選択して作成 ※ver.2.1.17以降
gpg --full-generate-key gpg --full-gen-key →~/.gnupg ディレクトリにキーリング(鍵)が作成される(公開鍵: pubring.kbx/秘密鍵: trustdb.gpg) gpg --full-generate-key --expert gpg --full-gen-key --expert →鍵の種類などの選択で全ての選択肢を表示する
- デフォルトのパラメータで作成:プロンプトで名前とメールアドレスを入力して作成 ※標準的な方法
gpg --gen-key gpg --generate-key
- プロンプトで質問に答える必要ない
quick-generate-key <user-id> quick-gen-key
- プロンプトで鍵の種類・鍵長/楕円曲線・有効期限を選択して作成 ※ver.2.1.17以降
- 作成済の鍵を確認
- 公開鍵を確認
gpg --list-keys gpg --list-keys --keyid-format short ※8文字 gpg --list-keys --keyid-format long ※16文字 gpg --list-public-keys gpg -k
- 秘密鍵を確認
gpg --list-secret-keys gpg -K > [E=encryption, S=signing, C=certification, A=authentication]
- 公開鍵を確認
- 鍵の変更
gpg --edit-key <pubkey-ID> gpg --edit-key --expert <pubkey-ID> ※鍵の種類などの選択で全ての選択肢を表示する場合 > key <subkey-ID> ※操作するSub鍵を選択 > addkey ※Sub鍵の追加 > delkey※Sub鍵の削除 > save ※保存 gpg --edit-key <pubkey-ID> addkey ※Sub鍵の追加
- 鍵の失効証明書の作成
gpg -o <revoke-filename> --gen-revoke <email-address>
- 鍵を無効にする ※失効証明書のファイルを使う
gpg --import <revoke-filename>
- 鍵サーバで公開鍵を検索する
gpg --search-keys <names>
- 公開鍵に署名をする ※署名対象の鍵の名称を指定する
gpg --lsign-key <name>
ファイルの暗号化(公開鍵) †
- 公開鍵をエクスポート
gpg -o <(out)pubkey-filename> -a --export <email-address>
- 公開鍵をインポート
gpg --import <pubkey-filename>
- インポートした公開鍵に署名
gpg --sign-key <email-address>
- ファイルを暗号化(公開鍵)
gpg -e -a -r <email-address> <target-file-name>
- ファイルを復号(暗号鍵)
gpg <encrypted-file-name>
ファイルの暗号化(共通鍵) †
- ファイルを暗号化 gpg -c <file-name>
- ファイルを復号
gpg <file-name> gpg --decrypt <encrypted-file-name>
ファイルの署名 †
- ファイルに署名 ※署名ファイルを作成
- バイナリのOpenPGP形式(拡張子.pgp)
gpg -s <filename> gpg --sign <filename>
- ASCII形式(拡張子.asc)
gpg -s -a <filename>
- 出力するファイル名を指定
gpg -o <(out)signed-filename> --sign <target-filename>
- 元データを含めた署名ファイル
gpg --clear-sign <filename>
- バイナリのOpenPGP形式(拡張子.pgp)
- 署名情報のみのファイルを作成
- バイナリのOpenPGP形式(拡張子.sig)
gpg --detach-sign <filename>
- ASCII形式(拡張子.asc)
gpg --detach-sign -a <filename>
- バイナリのOpenPGP形式(拡張子.sig)
- 署名されたファイルを検証
- 署名ファイルを検証
gpg --verify <signed-filename.gpg> gpg --verify <signed-filename.asc>
- 署名情報のみのファイルを検証 ※同一フォルダに元データのファイルを配置しておく必要がある
gpg --verify <signed-filename.sig> gpg --verify <signed-filename.sig> <renamed-datafile> ※元データのファイル名を変更した場合
- 署名ファイルを検証
- 署名されたファイルから元データを復元
gpg <signed-filename.gpg>
署名のフォーマット †
ASCIIのOpenPGP形式 †
-----BEGIN PGP MESSAGE----- -----END PGP MESSAGE-----
関連サイト †
- gpgコマンドの使い方 (2019.1.30)
https://qiita.com/kanatatsu64/items/bc05ed460eae5a4cb69e
- 1分でわかるPGP - 村川研究室
https://web.wakayama-u.ac.jp/~takehiko/pgp.html
関連ツール †
- GPG Tools
- GPG Suite