#author("2022-08-13T09:29:55+09:00","default:k1rou","k1rou") #author("2024-12-12T10:48:03+09:00","default:k1rou","k1rou") *GnuPG とは [#p52c1c84] **名称 [#d2230cb7] -GNU Privacy Guard -GNU PG -GPG **概要 [#c22bbc7a] -https://www.gnupg.org/ -[[OpenPGP]]に準拠した[[OSS]]の実装 -[[GPL]]([[OSS]]) **動作環境 [#q767c2d1] -Unix -Windows -macOS *実装する機能 [#abfa9721] -[[S/MIME]] -[[SSH]] *サポートする暗号化アルゴリズム [#x55fadb9] **[[共通鍵暗号方式]] [#p148f16a] -[[Twofish]] -[[3DES]] -[[AES]] -[[Camellia]] **[[公開鍵暗号方式]] [#n1847005] -[[RSA]] -[[Elgamal]] -[[ECDH]] **[[ハッシュ]]関数 [#of6aab44] -[[SHA-2]] **[[デジタル署名]] [#wd0b26ca] -[[DSA]] -[[ECDSA]] -[[EdDSA]] *操作(Liniux) [#lecfca91] ***インストール [#ac25c1dd] -Debian系 apt-get install gnupg2 **公開鍵の管理 [#m6eca4ff] -鍵ペアの作成 --プロンプトで鍵の種類・鍵長/楕円曲線・有効期限を選択して作成 ※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 -作成済の鍵を確認 --公開鍵を確認 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> **ファイルの暗号化(公開鍵) [#r33c9cc8] -公開鍵をエクスポート 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> **ファイルの暗号化(共通鍵) [#ae4a6dcd] -ファイルを暗号化 gpg -c <file-name> -ファイルを復号 gpg <file-name> gpg --decrypt <encrypted-file-name> **ファイルの署名 [#p468ba65] -ファイルに署名 ※署名ファイルを作成 --バイナリの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形式(拡張子.sig) gpg --detach-sign <filename> --ASCII形式(拡張子.asc) gpg --detach-sign -a <filename> -署名されたファイルを検証 --署名ファイルを検証 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> *署名のフォーマット [#b735387b] **ASCIIのOpenPGP形式 [#q0e12f8d] -----BEGIN PGP MESSAGE----- -----END PGP MESSAGE----- *gpgコマンドの英語化(macOS) [#s1618548] -macOSのターミナルでgpgコマンドの実行結果を日本語ではなく英語で表示する LANG=en_US.UTF-8 gpg LANG=en gpg LANG=C gpg *関連サイト [#te2e94d3] -gpgコマンドの使い方 (2019.1.30)~ https://qiita.com/kanatatsu64/items/bc05ed460eae5a4cb69e -6. 署名と検証~ https://lecture.ecc.u-tokyo.ac.jp/~yama/2021S-JOHO/GPG/GPG/gpg_6.html -1分でわかるPGP - 村川研究室~ https://web.wakayama-u.ac.jp/~takehiko/pgp.html *関連ツール [#i25d47b4] -GPG Tools --GPG Suite *関連用語 [#cb0967f3] -[[暗号化]] -[[PGP]]