暗号 復号 簡単な例

前へ |次へ

little summary  すこし整理しておきます

2通りの方法にて暗号化と復号を 行って来ました

gpg 暗号化

出力ファイルを指定した場合

まず 出力ファイルを指定した場合

$ gpg --encrypt --output file001-org.asc --armor --recipient USER_ID file1-org
$ gpg --output sym-file1_org.asc --armor --symmetric file1_org

ちなみに再度再現

$ gpg --encrypt --output file001-org.asc --armor --recipient fdopstm file1_org 
$ ls -l | sed 1d
-rw-r--r--    1 fdopstm       users         928  9月  4日  22:33 file001-org.asc
-rw-r--r--    1 fdopstm       users          13  9月  4日  13:50 file1_org

上記は ”パスフレーズを入力” を要求されませんが 暗号化ファイル” file001-org.asc”が 作成されます 一方 以下の場合は

$ gpg --output sym-file1_org.asc --armor --symmetric file1_org
パスフレーズを入力: /* パスフレーズ 新規新しいもの PP-New-one  */
パスフレーズを再入力: /* パスフレーズ 新規新しいもの PP-New-one  */
$ ls -l | sed 1d
-rw-r--r--    1 fdopstm       users         928  9月  4日  22:33 file001-org.asc
-rw-r--r--    1 fdopstm       users          13  9月  4日  13:50 file1_org
-rw-r--r--    1 fdopstm       users         181  9月  4日  22:36 sym-file1_org.asc

”パスフレーズを入力” を 要求されますが これは 任意の新しい パスフレー ズを使用する事が可能です

これらを 復号してみましょう 今回は ファイルに納めないで画面に出力の形と します

”file001-org.asc”の ファイルを復号する

$ gpg --decrypt file001-org.asc 
次のユーザーの秘密鍵のロックを解除するには
パスフレーズがいります:“fdopstm (Here is fake) <fdopstm@catland.kigdm>”
2048ビットELG-E鍵, ID C8C2853F作成日付は2007-09-01 (主鍵ID CABF456E)

パスフレーズを入力: /* パスフレーズ 鍵作成時のもの PP-gen-key  */
gpg: 2048-ビットELG-E鍵, ID C8C2853F, 日付2007-09-01に暗号化されました
      “fdopstm (Here is fake) <fdopstm@catland.kigdm>”
ご機嫌よう!

では ”sym-file1_org.asc”を 復号する時は

$ gpg --decrypt sym-file1_org.asc 
gpg: CAST5暗号化済みデータ
パスフレーズを入力: /* パスフレーズ 新規新しいもの PP-New-one  */
gpg: 1 個のパスフレーズで暗号化
ご機嫌よう!
gpg: 警告: メッセージの完全性は保護されていません

まずこれらをみると 復号時は パスフレーズの 問い合わせの回数は異なる。 ということになります。

出力ファイルを指定し無かった場合

出力ファイルを指定し無かった場合も 見ておきましょう。現在のファイルを 退避させます。

$ mkdir data
$ mv *.asc data/
$ ls -l | sed 1d
drwxr-xr-x    2 fdopstm       users        4096  9月  4日  23:02 data/
-rw-r--r--    1 fdopstm       users          13  9月  4日  13:50 file1_org
$ cat file1_org 
ご機嫌よう!

ではまずこれから あえて 復号まで処理します。

$ gpg --encrypt  --armor --recipient fdopstm file1_org 
$ ls -l | sed 1d
drwxr-xr-x    2 fdopstm       users        4096  9月  4日  23:02 data/
-rw-r--r--    1 fdopstm       users          13  9月  4日  13:50 file1_org
-rw-r--r--    1 fdopstm       users         928  9月  4日  23:03 file1_org.asc
$ gpg --decrypt file1_org.asc 

次のユーザーの秘密鍵のロックを解除するには
パスフレーズがいります:“fdopstm (Here is fake) <fdopstm@catland.kigdm>”
2048ビットELG-E鍵, ID C8C2853F作成日付は2007-09-01 (主鍵ID CABF456E)

パスフレーズを入力: /* パスフレーズ 鍵作成時のもの PP-gen-key  */
gpg: 2048-ビットELG-E鍵, ID C8C2853F, 日付2007-09-01に暗号化されました
      “fdopstm (Here is fake) <fdopstm@catland.kigdm>”
ご機嫌よう!
$ ls -l | sed 1d
drwxr-xr-x    2 fdopstm       users        4096  9月  4日  23:02 data/
-rw-r--r--    1 fdopstm       users          13  9月  4日  13:50 file1_org
-rw-r--r--    1 fdopstm       users         928  9月  4日  23:03 file1_org.asc

なぜ 復号までしてしまうのかは 次の 処理をまず見てみましょう。暗号化を次 の方法で行います。今回も復号までの処理を 行います。

$ gpg  --armor --symmetric file1_org
パスフレーズを入力: /* パスフレーズ 新規新しいもの PP-New-one  */
パスフレーズを再入力: /* パスフレーズ 鍵作成時のもの PP-gen-key  */
ファイル「file1_org.asc」は既に存在します。上書きしますか? (y/N) 
ファイル「file1_org.asc」は既に存在します。上書きしますか? (y/N) y
$ ls -l | sed 1d
drwxr-xr-x    2 fdopstm       users        4096  9月  4日  23:02 data/
-rw-r--r--    1 fdopstm       users          13  9月  4日  13:50 file1_org
-rw-r--r--    1 fdopstm       users         181  9月  4日  23:09 file1_org.asc
$ gpg --decrypt file1_org.asc
gpg: CAST5暗号化済みデータ
パスフレーズを入力: /* パスフレーズ 鍵作成時のもの PP-gen-key  */
gpg: 1 個のパスフレーズで暗号化
ご機嫌よう!
gpg: 警告: メッセージの完全性は保護されていません

一応上書き確認は有るようです。設定がたまたまそうなっているのかは存じ ませんが?要するに 出力ファイルの名前を指定しない場合は 出力されるファイ ルの名前は決まっているということです。但し、どちらで 暗号化されているか はこのままではなーんも わからない 今わかるのは ファイルの大きさは異なっ ている様ですが?退避させたファイルをみると。

$ ls -l data/ | sed 1d
-rw-r--r--    1 fdopstm       users         928  9月  4日  22:33 file001-org.asc
-rw-r--r--    1 fdopstm       users         181  9月  4日  22:36 sym-file1_org.asc

たまたまかどうかは不明ですが大きさは今回は、同じになってるようです?

暗号化といっても 二種類あるので 名前をつけておかないとわからなくなり -ます。help の抜粋をみても

-e, --encrypt                 データを暗号化
-c, --symmetric               暗号化には対称暗号法のみを使用

もう一つという感じです 用語的に 以下のようなものが考えられなくも無い のですが”公開鍵暗号化 対称暗号化”とか ”対称鍵暗号 公開鍵暗号”これも 正鵠では無いようです やはり help の抜粋が いいようです??残念ながら

補足

”--encrypt” の 方は 対称暗号法 と 公開鍵暗号 の 両方を使用するよう ですし、 又今回までの パスフレーズに関して 鍵作成時の パスフレーズしか 使 用できないというような ニュアンスで書いていますが そうでも 無いようです が 今回はこの 限定された 状態での事と考えておく方が よろしいかと思います。

いずれにせよ これらの使用方法は 自分自身の使用方法ということでありま す。”暗号化には対称暗号法のみを使用”に 対してはまあ パスフレーズを 共 有しておられる方には 復号出来るということであるが、このパスフレーズの送 る方法が中々面倒ということなのです、(隣に居ればということでは ありませ ん)しかしながら、これらを使う事は 可能です。見てきた通りの方法で処理で きます。次からは 二名の ユーザーを作成してデーターのやりとりをする場合を 見て行く事にします。

にゃんたろう 拝!

2007年 9月 5日 (水) 21:21:27 JST 作成


前へ |次へ

暗号 復号 簡単な例

Copyright © 2007. nyantarou All Rights Reserved.