差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| tips:gnupg:encrypt [2025/09/16 05:30] – asaasa | tips:gnupg:encrypt [2025/09/16 05:56] (現在) – [署名各種 : テキストにクリア署名、バイナリに分離署名] asaasa | ||
|---|---|---|---|
| 行 3: | 行 3: | ||
| * 基本的にテキストファイル出力にするオプション -armor (-a) をつけて解説し、出力は .asc というテキストファイルになります。なければバイナリファイル .gpg になるでしょう。 | * 基本的にテキストファイル出力にするオプション -armor (-a) をつけて解説し、出力は .asc というテキストファイルになります。なければバイナリファイル .gpg になるでしょう。 | ||
| * 秘密鍵は [[myarqtankey|arqtan@mail.asaasa.tk]] を用います。 | * 秘密鍵は [[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/ | ||
| + | JbPnkjXFQsQeNoyF// | ||
| + | =NYCV | ||
| + | -----END PGP MESSAGE----- | ||
| + | |||
| + | user$ _ | ||
| + | </ | ||
| + | * 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 | ||
| + | * 例によって内容確認 | ||
| + | * < | ||
| + | -----BEGIN PGP MESSAGE----- | ||
| + | |||
| + | hF4DMwUa1axuYvYSAQdA8jp/ | ||
| + | g+HFgEiHsTtpRdU18iZbIiSOXLaA7dlFJmrFLiepcFGPdl6bqbeSh1PfrpRmoHmn | ||
| + | 1MArAQkCEBnVXnG9l5KGsxpHBLgO5rzv2G8R6oE9E2A+sEM/ | ||
| + | 3vAIHbb5qzNUUUpmZGxEJ7Kx7quvwLHAVvwVU6plkdhOi+GopGBxKiZchr4Nztx1 | ||
| + | kHutnApyj45DcDwftAcV7HgUE4aVuHl3nY3rGKgrbn5Z/ | ||
| + | / | ||
| + | GDGJXpCKrGA13xvbS4/ | ||
| + | =OQyV | ||
| + | -----END PGP MESSAGE----- | ||
| + | </ | ||
| + | |||
| + | * $ 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 | ||
| + | * < | ||
| + | -----BEGIN PGP SIGNED MESSAGE----- | ||
| + | Hash: SHA512 | ||
| + | |||
| + | Hello, world! | ||
| + | -----BEGIN PGP SIGNATURE----- | ||
| + | |||
| + | iIwEARYKADQWIQRVupxjR5TvN0UiEfFVBc8Z0S0IggUCaMh80BYcYXJxdGFuQG1h | ||
| + | aWwuYXNhYXNhLnRrAAoJEFUFzxnRLQiCp2MBAMs1wWL6cC+yNAcRpTYobwK1E0J3 | ||
| + | c5d3XJAWVJGxl+pMAQDhbFbAwJyE66N5CMaH3BUPorPt+5JZSR6OXPgM3gEqCQ== | ||
| + | =5xVI | ||
| + | -----END PGP SIGNATURE----- | ||
| + | </ | ||
| + | * $ gpg -d hello.txt.asc | ||
| + | |||
| + | |||
| + | * バイナリの場合などは別ファイルに署名ファイルとして保存可能。 | ||
| + | * $ gpg -a -u arqtan --detach-sign hello.txt | ||
| + | * hello.txt.asc ができるので、 gpg -d か gpg --verify で署名の検証ができる。 | ||