文字列の暗号化と復号をしてみよう今回は2通りの方法にて行います。
これは先ほどの
gpg --encrypt --recipient fdopstm file_org gpg --encrypt --armor --recipient fdopstm file_org
の 変形として 出力ファイルを 指定したものです、したがって特に どうこ ういうものではありません。まず 元のファイルを作成しましょう。
元のファイルを作成
$ echo "ご機嫌よう!">file_org $ cat file_org ご機嫌よう!
暗号化を行い その出力ファイルを”asc-file”と 指定します。
$ gpg --encrypt --output asc-file --armor --recipient fdopstm file_org $ ls -l | sed 1d -rw-r--r-- 1 fdopstm users 928 9月 4日 14:33 asc-file -rw-r--r-- 1 fdopstm users 13 9月 4日 13:50 file_org $ file * asc-file: PGP armored data message file_org: ISO-8859 text $ cat asc-file -----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.7 (GNU/Linux) hQIOAwtErvLIwoU/EAgAj4JOUypdIjCHvGRHP62kocAYgbzJQ1h9vSk/U4MVU72w QvBxWd91DsiD8rfABFEW/e0RbBrvChYOkLkQnLNfhC5w4QeXy6GJt9BNvOkZg5F1 6vt5rnNGD5XS0VNokm4M6UoCHK8Lt1MsZMn3J0d2BAuARjBA3lwYN5tutHlkNfHI YEE5WWUlG9A0zfo/d9NT54Oft9klPoj+tN30ig3GVeSVDc3lYiWg9ySyLwDfYry6 E2mxvTlSXL4ajMBrlh4TEgBynJEE/XZDR2TFp0DYFcjxTO0CQmdb6/66X//nWDn6 lMEum5/wXhMj+lSs1Vdrpa02zkpigEL8zdmaPxJKggf/XZdSp8F4x1rNW3BGVOCS wBCl57v7lm6AdzelJp1NzNpfSF61F7mKxXrDX2o7rCkac9f1LS0y9tGIp/dhswTV R9SoJP6nKYkgMj6XGC1vRnBMhACV1GL/DRbjgPY+0DLF5l0akJWafk4ry3hrSk2g xBz7sxJaGxgQXoULyxKVwGwa5qH7exGbcthQ3WEFJbOABY2hYEoLWI4O4HzlQKRb XiTLK1hlAhBw7kIqUYVnK0jbP/mjWTJnncH/6hN37fNP5AYEmY3rjxus2J4OfO1f woe5OMeNBNZ3ysDMZ6R9c4JDeXKVRafdrMRxpcDMqxxYLjK7NIAoX6j43KMtUSnk 5dJTAbtK2zFjX1SpKm5MtiuksLgqseyCGtJFRMraFVCTlkkmvgzmsgETpJIuKm0K me4Yo+kjr/bUxc1G/Zyqd4mk9E9z9Z0rzLEY80em2TmNcmAjHe8= =O8Qz -----END PGP MESSAGE-----
暗号化されたファイル”asc-file”を 復号します 又その復号したデーター を ”decrypt_asc-file”に書き出します
$ gpg --decrypt asc-file >decrypt_asc-file 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“fdopstm (Here is fake) <fdopstm@catland.kigdm>” 2048ビットELG-E鍵, ID C8C2853F作成日付は2007-09-01 (主鍵ID CABF456E) パスフレーズを入力: パスフレーズがいります:“fdopstm (Here is fake) <fdopstm@catland.kigdm>” 2048ビットELG-E鍵, ID C8C2853F作成日付は2007-09-01 (主鍵ID CABF456E) gpg: 2048-ビットELG-E鍵, ID C8C2853F, 日付2007-09-01に暗号化されました “fdopstm (Here is fake) <fdopstm@catland.kigdm>” $ ls -l | sed 1d -rw-r--r-- 1 fdopstm users 928 9月 4日 14:33 asc-file -rw-r--r-- 1 fdopstm users 13 9月 4日 14:38 decrypt_asc-file -rw-r--r-- 1 fdopstm users 13 9月 4日 13:50 file_org $ file * asc-file: PGP armored data message decrypt_asc-file: ISO-8859 text file_org: ISO-8859 text $ cat decrypt_asc-file ご機嫌よう!
これが 先ほどの 暗号化と復号する方法です。これとは別の方式が有るよう です。
この方法を 見て行きましょう
$ gpg --output symmetric-file_org --armor --symmetric file_org パスフレーズを入力: /* まったく新しいパスフレーズを 入力します */ パスフレーズを再入力:/* 上記と同じ パスフレーズを 入力します */ $ ls -l | sed 1d -rw-r--r-- 1 fdopstm users 928 9月 4日 14:33 asc-file -rw-r--r-- 1 fdopstm users 13 9月 4日 14:38 decrypt_asc-file -rw-r--r-- 1 fdopstm users 13 9月 4日 13:50 file_org -rw-r--r-- 1 fdopstm users 181 9月 4日 14:55 symmetric-file_org $ file * asc-file: PGP armored data message decrypt_asc-file: ISO-8859 text file_org: ISO-8859 text symmetric-file_org: PGP armored data message $ cat symmetric-file_org -----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.7 (GNU/Linux) jA0EAwMC0x3lEWhXdOFgyS6dQP/jTRNv5/JFaymAEZT5KPMef5KYuMLYildZIky7 GPX056dlG+xjJ+wCFEwU =QE+P -----END PGP MESSAGE-----
ここで 考慮するのは パスフレーズは 任意に新しいものを使用できるという ことです。最初鍵をに作成したパスフレーズを 使う必要は必ずしも無いのです。
ファイル”symmetric-file_org”を 復号してみましょう
$ gpg --decrypt symmetric-file_org > decrypt-symmetric-file_org gpg: CAST5暗号化済みデータ パスフレーズを入力: /* 鍵を作成したパスフレーズを 入力 */ gpg: 復号に失敗しました: 鍵が不正です $ ls -l | sed 1d -rw-r--r-- 1 fdopstm users 928 9月 4日 14:33 asc-file -rw-r--r-- 1 fdopstm users 0 9月 4日 15:02 decrypt-symmetric-file_org -rw-r--r-- 1 fdopstm users 13 9月 4日 14:38 decrypt_asc-file -rw-r--r-- 1 fdopstm users 13 9月 4日 13:50 file_org -rw-r--r-- 1 fdopstm users 181 9月 4日 14:55 symmetric-file_org $ file * asc-file: PGP armored data message decrypt-symmetric-file_org: empty decrypt_asc-file: ISO-8859 text file_org: ISO-8859 text symmetric-file_org: PGP armored data message
至極当然のことですが もう一度やり直しましょう
$ gpg --decrypt symmetric-file_org > decrypt-symmetric-file_org gpg: CAST5暗号化済みデータ パスフレーズを入力: /*パスフレーズを 入力します これは鍵を作成したのと 異なる */ gpg: 1 個のパスフレーズで暗号化 gpg: 警告: メッセージの完全性は保護されていません $ ls -l | sed 1d -rw-r--r-- 1 fdopstm users 928 9月 4日 14:33 asc-file -rw-r--r-- 1 fdopstm users 13 9月 4日 15:14 decrypt-symmetric-file_org -rw-r--r-- 1 fdopstm users 13 9月 4日 14:38 decrypt_asc-file -rw-r--r-- 1 fdopstm users 13 9月 4日 13:50 file_org -rw-r--r-- 1 fdopstm users 181 9月 4日 15:14 symmetric-file_org $ file * asc-file: PGP armored data message decrypt-symmetric-file_org: ISO-8859 text decrypt_asc-file: ISO-8859 text file_org: ISO-8859 text symmetric-file_org: PGP armored data message $ cat decrypt-symmetric-file_org ご機嫌よう!
今回の場合はパスフレーズとして 最初に鍵を作成した パスフレーズ無しに つまり 別のパスフレーズで 暗号化し復号する事ができる ということです。
この 暗号化したファイル ”symmetric-file_org”を gpg は インストール してあるのだが 未だ鍵を作成していない 別の 計算機の 端末に 転送してみま しょう
$ scp symmetric-file_org 192.168.0.38:/home/darekasann/ darekasann@192.168.0.38's password: stty: standard input: 無効な引数です stty: standard input: 無効な引数です stty: standard input: 無効な引数です symmetric-file_org 100% 181 0.2KB/s 00:00
復号してみましょう
$ gpg -d symmetric-file_org gpg: ディレクトリー「/home/darekasann/.gnupg」ができました gpg: 新しい構成ファイル「/home/darekasann/.gnupg/gpg.conf」ができました gpg: 警告: 「/home/darekasann/.gnupg/gpg.conf」のオプションは起動している間、有効になりません gpg: 鍵輪「/home/darekasann/.gnupg/secring.gpg」ができました gpg: 鍵輪「/home/darekasann/.gnupg/pubring.gpg」ができました gpg: CAST5暗号化済みデータ パスフレーズを入力: /* パスフレーズを 入力 注意 以下に補足あり */ gpg: 1 個のパスフレーズで暗号化 ご機嫌よう! gpg: 警告: メッセージの完全性は保護されていません
御覧のように 未だ鍵は作成されていません
$ ls -l /home/darekasann/.gnupg/ | sed 1d -rw------- 1 darekasann users 8084 9月 4日 15:24 gpg.conf -rw------- 1 darekasann users 0 9月 4日 15:24 pubring.gpg -rw------- 1 darekasann users 0 9月 4日 15:24 secring.gpg
なんで 復号出来たのでしょう というより パスフレーズはどうして 渡せた のでしょうか?という事ですが この場合 両方の端末は 一人の人間が 操作してい てパスフレーズは当然 しっているので問題とはならないのですが、実際はこの 様な形で運用する事はありません。
ぶっちゃけた話 鍵 パスワード パスフレーズ が 盗まれたらだれでも 解読 出来るということです。当り前です。しかしながら ファイル”asc-file”は そういうことはできません。もうこれは 元の 計算機のユーザーの公開鍵にて 暗号化しているので 元の 計算機のユーザーの 秘密鍵を使わないと 復号でき ません、これもかなり 特殊な使い方になるということです。ちなみに
$ scp asc-file 192.168.0.5:/home/darekasann/ darekasann@192.168.0.5's password: stty: standard input: 無効な引数です stty: standard input: 無効な引数です stty: standard input: 無効な引数です asc-file 100% 928 0.9KB/s 00:00 $ gpg -d asc-file gpg: ELG-E鍵, ID C8C2853Fで暗号化されました gpg: 復号に失敗しました: 秘密鍵が得られません
送り先の端末では
$ gpg --list-key /home/fdopstm/.gnupg/pubring.gpg --------------------------- pub 1024D/CABF456E 2007-09-01 uid fdopstm (Here is fake) <fdopstm@catland.kigdm> sub 2048g/C8C2853F 2007-09-01
受け取った方では
$ gpg --list-key gpg: /home/darekasann/.gnupg/trustdb.gpg: 信用データベースができました $ ls -l /home/darekasann/.gnupg/ | sed 1d -rw------- 1 darekasann users 8084 9月 4日 15:24 gpg.conf -rw------- 1 darekasann users 0 9月 4日 15:24 pubring.gpg -rw------- 1 darekasann users 0 9月 4日 15:24 secring.gpg -rw------- 1 darekasann users 40 9月 4日 16:03 trustdb.gpg
にゃんたろう 拝!
2007年 9月 2日 (日) 23:54:28 JST 作成