- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2021-03-27T23:11:45+09:00","default:k1rou","k1rou")
*GnuPG [#xfa05f52]
#author("2022-08-13T09:29:55+09:00","default:k1rou","k1rou")
*GnuPG とは [#p52c1c84]
**名称 [#d2230cb7]
-GNU Privacy Guard
-GNU PG
-GPG
**概要 [#c22bbc7a]
-https://www.gnupg.org/
**GnuPG とは [#w80dc35c]
-[[OpenPGP]]に準拠した[[OSS]]の実装
-[[GPL]]([[OSS]])
-[[OpenPGP]]に準拠
**動作環境 [#q767c2d1]
-Unix
-Windows
-macOS
**実装する機能 [#abfa9721]
*実装する機能 [#abfa9721]
-[[S/MIME]]
-[[SSH]]
**サポートする暗号化アルゴリズム [#x55fadb9]
***[[共通鍵暗号方式]] [#p148f16a]
*サポートする暗号化アルゴリズム [#x55fadb9]
**[[共通鍵暗号方式]] [#p148f16a]
-[[Twofish]]
-[[3DES]]
-[[AES]]
-[[Camellia]]
***[[公開鍵暗号方式]] [#n1847005]
**[[公開鍵暗号方式]] [#n1847005]
-[[RSA]]
-[[Elgamal]]
-[[ECDH]]
***[[ハッシュ]]関数 [#of6aab44]
**[[ハッシュ]]関数 [#of6aab44]
-[[SHA-2]]
***[[デジタル署名]] [#wd0b26ca]
**[[デジタル署名]] [#wd0b26ca]
-[[DSA]]
-[[ECDSA]]
-[[EdDSA]]
**操作(Liniux) [#lecfca91]
*操作(Liniux) [#lecfca91]
***インストール [#ac25c1dd]
-Debian系
apt-get install gnupg2
***公開鍵の管理 [#m6eca4ff]
**公開鍵の管理 [#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>
***ファイルの暗号化(公開鍵) [#r33c9cc8]
-鍵サーバで公開鍵を検索する
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]
**ファイルの暗号化(共通鍵) [#ae4a6dcd]
-ファイルを暗号化
gpg -c <file-name>
-ファイルを復号
gpg <file-name>
gpg --decrypt <encrypted-file-name>
***ファイルの署名 [#p468ba65]
-ファイルに署名
**ファイルの署名 [#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 --verify <signed-filename.gpg>
gpg --verify <signed-filename.asc>
--署名情報のみのファイルを検証 ※同一フォルダに元データのファイルを配置しておく必要がある
gpg --verify <signed-filename.sig>
gpg --verify <signed-filename.sig> <renamed-datafile> ※元データのファイル名を変更した場合
**関連サイト [#te2e94d3]
-署名されたファイルから元データを復元
gpg <signed-filename.gpg>
*署名のフォーマット [#b735387b]
**ASCIIのOpenPGP形式 [#q0e12f8d]
-----BEGIN PGP MESSAGE-----
-----END PGP MESSAGE-----
*関連サイト [#te2e94d3]
-gpgコマンドの使い方 (2019.1.30)~
https://qiita.com/kanatatsu64/items/bc05ed460eae5a4cb69e
**関連用語 [#cb0967f3]
-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]]