文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== Encrypt - GnuPG ====== * ここでは、署名・暗号化と検証・復号化についてとりあつかいます。 * 基本的にテキストファイル出力にするオプション -armor (-a) をつけて解説し、出力は .asc というテキストファイルになります。なければバイナリファイル .gpg になるでしょう。 * 秘密鍵は [[myarqtankey|arqtan@mail.asaasa.tk]] を用います。 ===== きほん ===== ==== 共通鍵 ==== * $ gpg -ac filename * $ gpg -armor --symmetric filename と同じ * 共通鍵暗号を用いる。パスワードZIPとかと理屈は同じ。 * <code bash> user$ echo -e Hello, world! > hello.txt user$ cat hello.txt Hello, world! user$ gpg -ac --batch --passphrase hello hello.txt (パスワード hello で hello.txt を暗号化する。バッチ指定、パスフレーズ指定することで自動化しているが、省略した場合はパスワード入力ダイアログが出てくる) user$ cat hello.txt.asc -----BEGIN PGP MESSAGE----- jA0ECQMKv7oanOhbJFX/0koBP0tRONeL9b1vmQEDEhVbLu/BWJKT3rJOPg9/DehB JbPnkjXFQsQeNoyF//aKwJZToJQ6IaHklF7C/u6ZwmIbAAiNIcHVvJWp7w== =NYCV -----END PGP MESSAGE----- user$ _ </code> * gpg -o output.txt -d filename * gpg --output output.txt --decrypt filename と同じ * 暗号を解除。なお、これについては公開鍵を用いた暗号化ファイルについても同じである。 * $ gpg -o hello.txt -d hello.txt.asc * $ gpg -d hello.txt.asc > hello.txt * いずれも同じ結果が得られる。 ==== 秘密鍵 - 署名と暗号化両方を行う ==== * $ gpg -aes -u arqtan -r arqtan -o hello.txt.asc hello.txt * 自分自身で署名し、自分用に暗号化する * -u で発信元を、-r で発信先を指定する。 * -aes の a がテキスト化、 e が暗号化、 s が署名を意味する。 * $ cat hello.txt.asc * 例によって内容確認 * <code> -----BEGIN PGP MESSAGE----- hF4DMwUa1axuYvYSAQdA8jp/o3K3VKr6V8++qfY93l+0LvC9Rpxz9noyPc0S7SYw g+HFgEiHsTtpRdU18iZbIiSOXLaA7dlFJmrFLiepcFGPdl6bqbeSh1PfrpRmoHmn 1MArAQkCEBnVXnG9l5KGsxpHBLgO5rzv2G8R6oE9E2A+sEM/nQId5R7F9/VNqBJ3 3vAIHbb5qzNUUUpmZGxEJ7Kx7quvwLHAVvwVU6plkdhOi+GopGBxKiZchr4Nztx1 kHutnApyj45DcDwftAcV7HgUE4aVuHl3nY3rGKgrbn5Z/1HQNhGE2vdkckTeVruy /EsJfsOVHQt8Oqe3S6sB1vlxAycsaUYKkb4EUQxndaQ8LlCPlCW2Sab7Gf3tv6NK GDGJXpCKrGA13xvbS4/EodVyCsIxs1ZRSwjd2rTivqNOj0KvUJ1KqsF8rwAvYQ== =OQyV -----END PGP MESSAGE----- </code> * $ gpg -o hello.txt -d hello.txt.asc * $ gpg hello.txt.asc > hello.txt * 暗号解除と署名確認をする 「-aes」のところを -ae や -as にしてみよう。どっちみち、暗号化されてるような状態で出力される。( as の場合は暗号化されてないので署名確認くらいにはなるか) ===== 署名各種 : テキストにクリア署名、バイナリに分離署名 ===== * テキスト内部に署名するときは --clear を用いる。 * $ gpg -a -u arqtan --clear hello.txt * $ cat hello.txt.asc * <code> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Hello, world! -----BEGIN PGP SIGNATURE----- iIwEARYKADQWIQRVupxjR5TvN0UiEfFVBc8Z0S0IggUCaMh80BYcYXJxdGFuQG1h aWwuYXNhYXNhLnRrAAoJEFUFzxnRLQiCp2MBAMs1wWL6cC+yNAcRpTYobwK1E0J3 c5d3XJAWVJGxl+pMAQDhbFbAwJyE66N5CMaH3BUPorPt+5JZSR6OXPgM3gEqCQ== =5xVI -----END PGP SIGNATURE----- </code> * $ gpg -d hello.txt.asc * バイナリの場合などは別ファイルに署名ファイルとして保存可能。 * $ gpg -a -u arqtan --detach-sign hello.txt * hello.txt.asc ができるので、 gpg -d か gpg --verify で署名の検証ができる。 tips/gnupg/encrypt.txt 最終更新: 2025/09/16 05:56by asaasa