文字列の暗号化と復号をしてみよう
簡単な文字列を作成してそれを 暗号化しそのあと復号してみよう。まず文字 列ファイルを暗号化する。
file_org を作成
$ echo "こんにちは!" >file_org $ cat file_org こんにちは! $ cat -v file_org M-$M-3M-$M-sM-$M-KM-$M-AM-$M-OM-!M-*
では 最初は 以下のように 作成してみましょう
$ gpg --encrypt --recipient fdopstm file_org $ ls -l | sed 1d -rw-r--r-- 1 fdopstm users 13 9月 2日 10:50 file_org -rw-r--r-- 1 fdopstm users 614 9月 2日 10:54 file_org.gpg $ file * file_org: ISO-8859 text file_org.gpg: data
想像がついてると思いますが”file_org.gpg”は 画面の乱れる文字列です 抜粋を見てみると。
$ cat -v file_org.gpg M-^E^B^N^C... ...7M-f6M-^K
のように なっています。まあ これでも 問題はないのですが!
特に指定しな いと”.gpg”の 形の 暗号化された ファイルが出来るようです。
では こういう方法で作成してみましょう
$ gpg --encrypt --armor --recipient fdopstm file_org $ ls -l | sed 1d -rw-r--r-- 1 fdopstm users 13 9月 2日 10:50 file_org -rw-r--r-- 1 fdopstm users 924 9月 2日 11:10 file_org.asc -rw-r--r-- 1 fdopstm users 614 9月 2日 10:54 file_org.gpg $ file * file_org: ISO-8859 text file_org.asc: PGP armored data message file_org.gpg: data
大きなファイルができています 中身を見てみましょう。
$ cat file_org.asc -----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.7 (GNU/Linux) hQIOAwtErvLIwoU/EAf+Id2ShlXSfZuEOMusSYUsfQFjIFp0pk3iRX0JC4ubVoe9 wN+hdKbF/h9P3Ia4hwUqFi6R+hooaN6m7QYZHjE1LTm/Fqdu82ELhNYYnSKq/KjI AfQFIk4kbF8jta+q1kSegO7I6O+Djh4cizzkoVMDj9d7eT6I0flXb956+NHZnkMa zqPEMufOS1Mm+2cccfA7bMVoWZoHKB961M7/RQY9AAny6nLSmpQpc/rO38FAk/4H zjWMxRYh2lfzC+IgTYDxdPsIaBt+KXCpU/RknhEhB3FRSyPGQfW4r6jClobfdjUK tU7rXJS7fb1xA0Xo/1mMMp8nQovrzStXaYYX+vGtmQgAoy0lxT1GsPBqPg7IIWse KiOhrfQRJpGcn9rlcelORV6KYcSgZPJta0oNf4EAGioFIqrfnNObE8lL4A+G/MCi sYWh/3muDJEVQG0QlYWK1x1sdS1qYI8d6IMG9GgsIl/4M6MB+shkah7GDza9+jLn Wkyn5Uko8uYCdmYmXIYdPcgELTRba3hYs3UoIwnmq0d4VPTy/M+gBgtEgUvwO4Pc ha/THdx6XKMjbk4zlcO1siujLbieP+2+Fn/KCb32St7YMnfwicEIGuiICCNx/M/O Nqvqlk7chnb2eZXyEFQGUWz6kKDsFzwb0CI1iEfigNIVIvoE0eNHE6CeFyJxBRqW ydJRAdwfe+QasxNeio1fWbLEi63HiXUdVGXayks3/fhzcm930NcmL/6FdsRO9Kew T7Fm04p/CbArY3iL53mjzfozM2Wo0n5vGBpn2l19yYfKV82H =Qd8L -----END PGP MESSAGE-----
まあこれが ”こんにちは!”とは ちょっと 想像はできません!
では復号をしてみます。
まず この様にしてみましょう
これで 復号することができる。
$ gpg --decrypt file_org.gpg 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“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>” こんにちは!
もう一つを 復号してみましょう
$ gpg --decrypt file_org.asc 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“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>” こんにちは!
これで問題はないのですが ファイルに 納めるためには
$ gpg --decrypt file_org.gpg >decrypt_type_gpg_file_org 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“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 decrypt_type_gpg_file_org -rw-r--r-- 1 fdopstm users 13 9月 2日 11:41 decrypt_type_gpg_file_org $ file decrypt_type_gpg_file_org decrypt_type_gpg_file_org: ISO-8859 text $ cat decrypt_type_gpg_file_org こんにちは! $ cat -v decrypt_type_gpg_file_org M-$M-3M-$M-sM-$M-KM-$M-AM-$M-OM-!M-*
もう一つの方も
$ gpg --decrypt file_org.asc >decrypt_type_asc_file_org 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“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 decrypt_type_asc_file_org -rw-r--r-- 1 fdopstm users 13 9月 2日 11:46 decrypt_type_asc_file_org $ cat decrypt_type_asc_file_org こんにちは! $ cat -v decrypt_type_asc_file_org M-$M-3M-$M-sM-$M-KM-$M-AM-$M-OM-!M-*
確認しておきましょう
$ diff3 decrypt_type_asc_file_org decrypt_type_gpg_file_org file_org $ diff -s decrypt_type_asc_file_org decrypt_type_gpg_file_org Files decrypt_type_asc_file_org and decrypt_type_gpg_file_org are identical $ diff -s decrypt_type_gpg_file_org file_org Files decrypt_type_gpg_file_org and file_org are identical
少なくとも個人の 文字列を 他の人に 見えなくする事は出来ますが パスフ レーズを忘れると わやですわ!
この方法は 良く見ると 自分自身の 公開鍵を使用して 暗号化をして それを 自分自身の 秘密鍵にて 復号しているということです。本来というか 通常の使 用方法とは 異なっています。本来とか通常 というのは 正鵠でないならば
ここに 二人 Honnnin と Aite という人が いるとします。環境として この 二人とも gnupg を 持っているとします 状況は
Honnnin は 秘密鍵(Honnnin)と 公開鍵(Honnnin)を 持っています
Aite は 秘密鍵(Aite)と 公開鍵(Aite)を 持っています
有る文字列 の ファイル(Honnnin)を 暗号化する場合、 通常 は Honnnin に対して 暗号化する ということは (秘密の 日記 等には 使用するかも知れませんが)、Aite に 渡して 復号してもらう ということが ほとんどでしょう。
Honnnin ファイル(Honnnin) | |--- 暗号化 公開鍵(Aite)で行う | 暗号 ファイル(Honnnin )<==(公開鍵(Aite) で 暗号化) ---- (送る) | | | ---- (受け取る) 暗号 ファイル(Honnnin )<==(公開鍵(Aite) で 暗号化) | |--- 復号化 秘密鍵(Aite)で行う | Aite ファイル(Honnnin) を 読む事が出来る この場合 ”暗号 ファイル(Honnnin )<==(公開鍵(Aite) で 暗号化) ”は もう ”Honnnin”は 読む事は出来ない事に 留意しなければ なりません
こんかいは 暗号化 を Honnnin の 公開鍵にて 暗号化したので これを 復号 するのは Honnnin の 秘密鍵でしか 復号出来ない事に なります。まあこれはこ れで 良いのですが
にゃんたろう 拝!
2007年 9月 2日 (日) 23:54:28 JST 作成