では 再度 ”$ gpg --gen-key”で キーを 作成します。前のものは 1式 削 除しましたので 、そうして ”gpg --output revoke.asc --gen-revoke (user id)”で 破棄証明書 を 作成して 残しておきます。以下の参考のもので (此 処のものの 参考にする gnupg の バージョンは 異なっていますが 参考になると考 えます)
http://www.gnupg.org/gph/en/manual.html
Generating a new keypair
Generating a revocation certificate
此処までが 完了と言う事です。破棄証明書は いくらでも作成出来るし これを適用する場合は パスフレーズ 無しで 処理でき るため 厳重に 保管する事が必要です。”gpg --import 破棄証明書”そ んでもって
公開鍵を 見える形で 出しましょう といっても 2組の 方法が 有るようで す
gpg --output user-file.gpg --export user id(user mail address) gpg --output user-file.asc --armor --export user id(user mail address)
これらの相違は 見た場合 読める アスキー形式 と データーの 形で 見ても わからない形式の 2種類です では ユーザー ファイルを nyanco ユーザー id を nyanta として 作成 してみましょう、必ずしも メールアドレスでは 無くて も 良いようです。
$ gpg --output nyanco.gpg --export nyanta $ gpg --output nyanco.asc --armor --export nyanta
出来上がったものは?
$ ls -l nyanco.* -rw-r--r-- 1 mm users 1702 2月 16日 10:56 nyanco.asc -rw-r--r-- 1 mm users 1173 2月 16日 10:56 nyanco.gpg $ file nyanco.* nyanco.asc: PGP armored data public key block nyanco.gpg: data
内容は?
$ cat -v nyanco.asc /* 読める 意味は 別として */ -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.1 (GNU/Linux) mQGiBEPzzmgRBACAMjIuP5Qar3WfR8JhZ8EGDtZpt1JZdHypS0eZOu45KjnO/ret KZEwkuCUKyp2uNgQmDlHOPLNrWafcw2cfv9DibVADehtqHC3rqzYdplb33zedLgR ... oIPM2350VOeViAXAu040vfc+4McF =OIi+ -----END PGP PUBLIC KEY BLOCK----- $ cat -v nyanco.gpg /* 読めない 端末 つぶれた? */ M-^Y^AM-"^DCM-sM-Nh^Q^D^@M-^@22.?M-^T^ZM-/uM-^_\ GM-BagM-A^F^NM-ViM-7RYt|M-)KGM-^Y:M-n9*9M-NM-~M-7M--)M-^Q0M-^RM-` .... >M-`M-G^E $
当然、添付 何ぞに 追記するのは ”nyanco.asc”の 方に なると考えられます。 また ”gpg --armor --export nyanta”の ものは
$ gpg --armor --export nyanta -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.1 (GNU/Linux) mQGiBEPzzmgRBACAMjIuP5Qar3WfR8JhZ8EGDtZpt1JZdHypS0eZOu45KjnO/ret KZEwkuCUKyp2uNgQmDlHOPLNrWafcw2cfv9DibVADehtqHC3rqzYdplb33zedLgR ... AAkFAkPzzn8CGwwACgkQYfh4vYFnRwOFvACdGlO6WYRtjg17Z/DQKVTOBErHy3wA oIPM2350VOeViAXAu040vfc+4McF =OIi+ -----END PGP PUBLIC KEY BLOCK-----
の ように 画面に 出力する事が出来ますが、以下のものは 使用方法として は 成立 しないようです、ファイルに書き出す必要があるようです。詳細は存じ ておりませんが
$ gpg --output --export nyanta gpg: 「nyanta」が開けません
暗号と 復号 通常の 方法は 相手の 公開鍵で もって 暗号化して それを相手に 送付 する それを 相手は 相手の 秘密鍵で もって 復号する。
いま試験を行うに際して 直ちに 行うとすると だれかさん という 相手が必 要であり だれかさんも 自分の 公開鍵を 持っていないと いけないし だれかさ んの 公開鍵を 自分も 手に入れておかないと いけない 、それには 時間がかか るので、取り敢えず 簡単に 自分自身 で 自分自身の ファイルを 暗号 復号 してみよう これは すぐに 行う事が 可能である。
$ echo "こんにちは" > first_try /* 暗号化する ファイルを作成 */ $ cat first_try こんにちは $ gpg --output first.gpg --encrypt --recipient non first_try $ cat -v first.gpg M-^E^B^N^CM-?M-^EM-TFCM-^\M-[M-5^P^GM-~#M-o M-(M-rM-^C^U^GM--\ [M-iM-/D^M-qdcM-5cM-Q[M-wM-8^^M-+M-G^HM-hM-W $
ファイルを 暗号化 する 様式は
gpg --output first.gpg --encrypt --recipient non first_try gpg --output 暗号ファイル.gpg --encrypt --recipient ユーザーの ID 元のファイル
ここで 重要な点は まず 様式” --output” と ”--encrypt” は 当然であ るが 共通の 事柄である 、そうして ”--recipient”は 個々に 異なる ユーザー毎に 指 定する必要がある 様式としては --recipient で有るが これは あくまで 個々に 指定する 項目であ る 相手の 公開鍵 で 処理する 必要がある。わかり難く言えば 相手が AAさん と BBさんが いて 其々に 送るとすると 暗号化の 処理は 其々に 行わなくて は いけないことになる。取り敢えず 自分自身の ものについて 処理した場合は、 暗号化する場合の 所を 見ると --recipient の 所に 自分自身を 指定してあることが わかると 思 う。
異なるユーザーに 送付する場合は 一例として( ユーザー AA ユーザー BB) が いる場合は この様に なると 考えられる 但し、いますぐ検証は出来ない 相手が 必要であるので また 相手の 公開鍵を 入手していないので 正しいか どうかは 後に 検証が 必要であるが この様に なると にゃんたろうは思う
$ gpg --output AA.gpg --encrypt --recipient AA-id first_try $ gpg --output BB.gpg --encrypt --recipient BB-id first_try
当然 ”ユーザー AA” と ”ユーザー BB” の 公開鍵 を 入手している 前 提である 、 そうして この 出来上がった ファイル AA.gpg と BB.gpg は 自分自身 この場合(にゃんたろう)は 解読 出来ない (復号 する事は 不可能 )ということになる。これを 復 号 するには 各々の 秘密鍵 で 復号 する事に なるので あるが これは 不可能 あくまで ”ファイル AA.gpg”を 復号 するのは ”ユーザー AA”の 秘密鍵 を 持った 人 そうして 同じ様に BB.gpg を 復号 するのは ”ユーザー BB”の 秘密鍵 を 持った 人 のみ 可能に なる。” ユーザー AA”の 秘密鍵 を 持った 人 が 必ず AA さんで 有るかは 誰 も わからない 検証の しようが 無い という事は 覚えておかないと いけない。 言える事は ”ユーザー AA”の 秘密鍵 を 持った 人は 誰でも 解読 復号 可能に なると 言う事である。通常は 一致するものとして 考えるが 実 際の 場合は どうなるかわ わからない 注意しないと いけない と いうのは ”ユーザー AA”の 公開鍵 という ものは 必ずしも ”ユーザー AA”が 作成したとは わからない つまり 公開鍵 を 入手 したからといって その 公開鍵が ”ユーザー AA”が 本当に 作成したものであるという 確証は 何処にも 存在しない あくまで 信頼 するか どうか ということです。直接 本人から 手渡されるか どうか この場合 も 直接合う人が 本人か どうかわ わからない という 連鎖は あるに しても 何処かで折り合いを つけて 運用していることは 重要です。
復号 してみよう
$ gpg --output second-firast --decrypt first.gpg 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“nyantarou (sumi-non non) <ntmail@nyanta.no-ip.info>” 2048ビットELG-E鍵, ID 439CDBB5作成日付は2006-02-16 (主鍵ID 81674703) パスフレーズを入力: パスフレーズがいります:“nyantarou (sumi-non non) <ntmail@nyanta.no-ip.info>” 2048ビットELG-E鍵, ID 439CDBB5作成日付は2006-02-16 (主鍵ID 81674703) gpg: 2048-ビットELG-E鍵, ID 439CDBB5, 日付2006-02-16に暗号化されました “nyantarou (sumi-non non) <ntmail@nyanta.no-ip.info>” $ file second-firast second-firast: ISO-8859 text $ cat second-firast こんにちは
”暗号化 ”という にゃんたろう に とって 少々 理解出来がたい 所 が 有るにしても 結果は 見ての とうりである。そこで 復号 する 様式は
$ gpg --output second-firast --decrypt first.gpg $ gpg --output 復号したファイル --decrypt 暗号ファイル.gpg
復号する場合は 誰から 送られて来た場合でも 当然 自分の 公開鍵で 暗号 化 されているので 自分の 秘密鍵で 復号すれば 良い この場合 復号した 結果 が おかしな もので 有れば 自分の 公開鍵で 暗号化されていないという結果で ある。但し、相手が おかしなものを 暗号化した場合は 当然 復号しても おか しな もので あるが
いままで 矢無を得ず 暗号化 に 公開鍵を 使用する方法として 見てきたが 自分自身の ファイルを 暗号化して 保存しておけば 少しは 秘密が 守れるかも しれない この場合は ”--symmetric”オプションを 使用 すれば 良いようであ る では 見てみよう
$ echo "こんばんわ" > goodnight /* 何かファイルを作成 */ $ cat goodnight こんばんわ $ gpg --output obanndesu.gpg --symmetric goodnight /* 暗号化しませう */ パスフレーズを入力: koreha himitu desu パスフレーズを再入力: koreha himitu des gpg: パスフレーズの作成エラー: パスフレーズが無効です gpg: 「goodnight」の対称暗号に失敗しました: パスフレーズが無効です /* そうですか では */ $ gpg --output obanndesu.gpg --symmetric goodnight /*再度 暗号化しませう */ パスフレーズを入力: koreha himitu desu パスフレーズを再入力: koreha himitu desu $ /* 出来たようです! */ $ ls -l goodnight obanndesu.gpg -rw-r--r-- 1 mm users 11 2月 16日 15:42 goodnight -rw-r--r-- 1 mm users 58 2月 16日 15:45 obanndesu.gpg $ file goodnight obanndesu.gpg goodnight: ISO-8859 text obanndesu.gpg: data $ cat -v obanndesu.gpg M-^L^M^D^C^C^BM-P9.e"^_M-"M-;`M-I) ... /* 当然ですな */ $ gpg --output hukugenn-goodnight --decrypt obanndesu.gpg /* 復号しませう */ gpg: CAST5暗号化済みデータ パスフレーズを入力: /* 今回は 1回 ですか! */ gpg: 1 個のパスフレーズで暗号化 /*下線部分 日本語でしょうか? */ gpg: 警告: メッセージの完全性は保護されていません $ ls -l goodnight obanndesu.gpg hukugenn-goodnight -rw-r--r-- 1 mm users 11 2月 16日 15:42 goodnight -rw-r--r-- 1 mm users 11 2月 16日 15:49 hukugenn-goodnight -rw-r--r-- 1 mm users 58 2月 16日 15:45 obanndesu.gpg $ file goodnight obanndesu.gpg hukugenn-goodnight goodnight: ISO-8859 text obanndesu.gpg: data hukugenn-goodnight: ISO-8859 text $ cat -v hukugenn-goodnight /* あらーー! */ M-$M-3M-$M-sM-$M-PM-$M-sM-$M-o $ mv goodnight bk_goodnight $ ls -l bk_goodnight obanndesu.gpg hukugenn-goodnight -rw-r--r-- 1 mm users 11 2月 16日 15:42 bk_goodnight -rw-r--r-- 1 mm users 11 2月 16日 15:49 hukugenn-goodnight -rw-r--r-- 1 mm users 58 2月 16日 15:45 obanndesu.gpg $ file bk_goodnight obanndesu.gpg hukugenn-goodnight bk_goodnight: ISO-8859 text obanndesu.gpg: data hukugenn-goodnight: ISO-8859 text /* 未だわからないのです */ $ gpg obanndesu.gpg /* やりかたがまずいのか? これでは どうだ! */ gpg: CAST5暗号化済みデータ パスフレーズを入力: gpg: 1 個のパスフレーズで暗号化 gpg: 警告: メッセージの完全性は保護されていません $ ls -l bk_goodnight hukugenn-goodnight obanndesu obanndesu.gpg -rw-r--r-- 1 mm users 11 2月 16日 15:42 bk_goodnight -rw-r--r-- 1 mm users 11 2月 16日 15:49 hukugenn-goodnight -rw-r--r-- 1 mm users 11 2月 16日 15:53 obanndesu -rw-r--r-- 1 mm users 58 2月 16日 15:45 obanndesu.gpg $ file bk_goodnight hukugenn-goodnight obanndesu obanndesu.gpg bk_goodnight: ISO-8859 text hukugenn-goodnight: ISO-8859 text obanndesu: ISO-8859 text obanndesu.gpg: data $ cat -v obanndesu /* あらーー! */ M-$M-3M-$M-sM-$M-PM-$M-sM-$M-o $ less obanndesu /* そうか!!! */ こんばんわ $ less hukugenn-goodnight こんばんわ $ cat hukugenn-goodnight こんばんわ $ cat obanndesu こんばんわ $ diff -s bk_goodnight obanndesu Files bk_goodnight and obanndesu are identical $ diff -s bk_goodnight hukugenn-goodnight Files bk_goodnight and hukugenn-goodnight are identical $ cat -v bk_goodnight M-$M-3M-$M-sM-$M-PM-$M-sM-$M-o $ cat bk_goodnight こんばんわ
ということの 様です 日本語 難しい!!!
$ gpg --output obanndesu.gpg --symmetric goodnight $ gpg --output hukugenn-goodnight --decrypt obanndesu.gpg /* これより */ $ gpg obanndesu.gpg /* こちら */ /* 暗号 */ $ gpg --output 暗号化されたファイル.gpg --symmetric 暗号化する元のファイル /* 復号 */ $ gpg 復号化するファイル.gpg /* (= "暗号化されたファイル.gpg") */
通常使用する場合は 暗号化した後で 元のファイルを 削除 するのでしょう そうして復号すれば 元のファイルを 得られるような 使いかたを するのでしょ う 元のファイルをおいておくような 使いかたは 無駄で 安全で無いということ で 良いのでしょう。
にゃんたろう 拝!
2006年 2月16日 (木) 21:55:52 JST 作成