- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-05-19T23:32:34+09:00","default:k1rou","k1rou")
#author("2022-05-20T16:53:43+09:00","default:k1rou","k1rou")
*GnuPG とは [#p52c1c84]
**名称 [#d2230cb7]
-GNU Privacy Guard
-GNU PG
-GPG
**概要 [#c22bbc7a]
-https://www.gnupg.org/
-[[GPL]]([[OSS]])
-[[OpenPGP]]に準拠
**動作環境 [#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 --gen-key
gpg --generate-key
--プロンプトで質問に答える必要ない
quick-generate-key <user-id>
quick-gen-key
-作成済の鍵を確認
gpg --list-keys
gpg --list-secret-keys ※秘密鍵のみ
-鍵の失効証明書の作成
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-----
*関連サイト [#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
*関連用語 [#cb0967f3]
-[[暗号化]]
-[[PGP]]