% pgp -kg Pretty Good Privacy(tm) Version 6.5.8 Internal development version only - not for general release. (c) 1999 Network Associates Inc. Export of this software may be restricted by the U.S. government. Choose the public-key algorithm to use with your new key 1) DSS/DH (a.k.a. DSA/ElGamal) (default) 2) RSA Choose 1 or 2: 1 Choose the type of key you want to generate 1) Generate a new signing key (default) 2) Generate an encryption key for an existing signing key Choose 1 or 2: 1 Pick your DSS ``master key'' size: 1) 1024 bits- Maximum size (Recommended) Choose 1 or enter desired number of bits: 1 Generating a 1024-bit DSS key. You need a user ID for your public key. The desired form for this user ID is your name, followed by your E-mail address enclosed in, if you have an E-mail address. For example: John Q. Smith Enter a user ID for your public key: メールアドレス("名前 <アドレス>"の形式) Enter the validity period of your signing key in days from 0 - 10950 0 is forever (the default is 0): You need a pass phrase to protect your DSS secret key. Your pass phrase can be any sentence or phrase and may have many words, spaces, punctuation, or any other printable characters. Enter pass phrase: ←パスフレーズ Enter same pass phrase again: ←パスフレーズ再入力 PGP will generate a signing key. Do you also require an encryption key? (Y/n) Y Pick your DH key size: 1) 1024 bits- High commercial grade, secure for many years 2) 2048 bits- "Military" grade, secure for forseeable future 3) 3072 bits- Archival grade, slow, highest security Choose 1, 2, 3, or enter desired number of bits: 2 Enter the validity period of your encryption key in days from 0 - 10950 0 is forever (the default is 0): Note that key generation is a lengthy process. PGP needs to generate some random data. This is done by measuring the time intervals between your keystrokes. Please enter some random text on your keyboard until the indicator reaches 100%. Press ^D to cancel 100% of required data ← 35%くらいでスタートするので、100%になるまで適当にキーを押す Enough, thank you. .******** ..................................................******* . Make this the default signing key? (Y/n) Y Key generation completed.
(setq pgg-default-scheme "pgp") (setq pgg-default-user-id "メールアドレス") (setq pgg-pgp-user-id "メールアドレス") (setq pgg-cache-passphrase nil)
後日また挑戦することにしよう・・・。
というわけで後日。pgp6が駄目ならgpgに挑戦してみようと言うことで、gpgをいれる。
% gpg --gen-key gpg (GnuPG) 1.2.1; Copyright (C) 2002 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. gpg: 警告: やばいメモリーを使用しています! gpg: 詳細はhttp://www.gnupg.org/faq.htmlをご覧ください すきな鍵の種類を選択してください: (1) DSAとElGamal (既定) (2) DSA (署名のみ) (5) RSA (署名のみ) どれにしますか? 1 DSA鍵対は1024ビットになります。 新しいELG-E鍵対を生成します。 最小の鍵長は 768 ビット 既定の鍵長は 1024 ビット 最大の推奨鍵長は 2048 ビット どの鍵長にしますか? (1024) 要求された鍵長は1024ビット 鍵の期限を決めてください。 0 = 無期限= 有効期限 n 日間 w = 有効期限 n 週間 m = 有効期限 n か月間 y = 有効期限 n 年間 鍵の有効期間は? (0) Keyは無期限です これでいいですか (y/n)? y あなたの鍵を同定するためにユーザーIDが必要です。 このソフトは本名、コメント、電子メール・アドレスから 次の書式でユーザーIDを構成します: "Heinrich Heine (Der Dichter) " 本名: false 電子メール・アドレス: false@wizard-limit.net コメント: 次のユーザーIDを設定しました: "false <false@wizard-limit.net>" 名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? o 秘密鍵を保護するためにパスフレーズがいります。 今から長い乱数を生成します。キーボードを打つとか、マウスを動かす とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で 乱雑さの大きないい乱数を生成しやすくなるので、お勧めします。 ++++++++++.++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++.+++++.+++++++++++++++++++++++++.++++++++++++++++++++++++++++++>+++++.+++++........................+++++ 十分な長さの乱数が得られません。OSがもっと乱雑さを収集 できるよう、何かしてください! (あと300バイトいります) (適当にキーを打つ 今から長い乱数を生成します。キーボードを打つとか、マウスを動かす eとか、ディスクにアクセスするとかの他のことをすると、乱数生成子で 乱雑さの大きないい乱数を生成しやすくなるので、お勧めします。 +++++.+++++++++++++++.a+++++o+++++;++i++++++++..+++++s++++++++++.+++++j.++++++++++.++++++++++.+++++++++++++++.+++++.+++++.++++++++++++++++++++.+++++>+++++...... .............+++++^^^^^^^^^ gpg: /var/home/false/.gnupg/trustdb.gpg: 信用データベースができました 公開鍵と秘密鍵を作り、署名しました。 絶対的に信用した鍵として記録しました。 pub 1024D/4EBA6BEA 2003-04-30 false 指紋 = C985 E3AB 3C7A E022 EBE9 1598 C067 1647 4EBA 6BEA sub 1024g/91E780F9 2003-04-30
(setq pgg-default-scheme "gpg") (setq pgg-default-user-id "メールアドレス") (setq pgg-pgp-user-id "メールアドレス") (setq pgg-cache-passphrase nil)これで、メールを書いて C-c C-x e で暗号化したメールが送れて、届いたメールも読むことができた。
% gpg --import ファイル名 gpg: 警告: やばいメモリーを使用しています! gpg: 詳細はhttp://www.gnupg.org/faq.htmlをご覧ください gpg: 鍵A8B0443A: 公開鍵「false <false@wizard-limit.net>」を読み込みました gpg: 処理数の合計: 1 gpg: 読込み: 1
% gpg --sign-key false@wizard-limit.net gpg: 警告: やばいメモリーを使用しています! gpg: 詳細はhttp://www.gnupg.org/faq.htmlをご覧ください pub 1024D/A8B0443A 作成: 2003-04-28 期限: never trust: -/- sub 2048g/9C58F30B 作成: 2003-04-28 期限: never (1). false <false@wizard-limit.net> pub 1024D/A8B0443A 作成: 2003-04-28 期限: never trust: -/- 主鍵の指紋: D171 AEB5 06DF FF9E 0C95 C537 7A1D BC41 A8B0 443A false <false@wizard-limit.net> 署名しようとしている鍵が実際に上記の名前の人のものかどうか、どの程度 注意して検証しましたか? 答がわからなければ、「0」を入力してください。 (0) 答えません。 (default) (1) 全然、確認していません。 (2) 一応、確認しました。 (3) かなり注意して確認しました。 どれにしますか? 3 本当にこの鍵にあなたの鍵で署名してよいですか: "false <false@wizard-limit.net>" この鍵は、かなり注意して確認しました。 本当に署名しますか? y 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります: "false <false@wizard-limit.net>" 1024ビットDSA鍵, ID 4EBA6BEA作成日付は2003-04-30
送り側\受け側 | UNIX | Windows | |
---|---|---|---|
UNIX | 暗号化のみ | ○ | ○ |
署名のみ | ○ | △ | |
暗号化+署名 | ○ | × | |
Windows | 暗号化のみ | ○ | ○ |
署名のみ | ○ | ○ | |
暗号化+署名 | ○ | ○ |
[1 <multipart/mixed (7bit)>] [1.1 <multipart/encrypted (7bit)>] [1.1.1 <application/pgp-encrypted (7bit)>] [1.1.2 <application/octet-stream (7bit)>] [1.2 <text/plain; US-ASCII (7bit)>] [2 <application/pgp-signature (7bit)>]また、UNIXで署名のみしたメールをWindowsに送って、Beckey!のメニューからPGP:復号化と検証...を選ぶと、エラーは出ずに終了するのだが、何のメッセージも出ないのでこれが正しいのかどうか良くわからない。
後日その2)
と思ったら、別のWindowsマシンで試したところ、ちゃんとpgpが出すメッセージを読むことができた。なので、
送り側\受け側 | UNIX | Windows | |
---|---|---|---|
UNIX | 暗号化のみ | ○ | ○ |
署名のみ | ○ | ○ | |
暗号化+署名 | ○ | × | |
Windows | 暗号化のみ | ○ | ○ |
署名のみ | ○ | ○ | |
暗号化+署名 | ○ | ○ |
後日その3)
大丈夫なマシンと駄目なマシンの違いを見ると、駄目なマシンはSocksCap経由でIMAPサーバと通信するようになってる。
試しに、駄目なマシンでSocksCapを使わないで実験したら、正しく署名の検証結果を見ることができた。
SocksCapがなんに関係しているんだろう??
あと、gpg がやばいメモリーとか警告を出すのが嫌なので、~/.gnupg/gpg.conf を以下のように変更した。
keyserver pgp.nic.ad.jp keyserver-options honor-http-proxy no-secmem-warning※ keyserver-options は、使用するマシンがfirewall の内側にいるため。あわせて、環境変数 http_proxyにhttp://proxy-server:3128 を設定した。
思い出しました!で、pgp -ke でパスフレーズを覚えやすいものに変更して、
% pgp -kx false@wizard-limit.net false.asc secring.skr % gpg --import false.ascしようとしたら、自己署名がないって言うようなエラーになったので、
% pgp -ks false@wizard-limit.net % pgp -kx false@wizard-limit.net false.asc secring.skr % gpg --import false.ascでうまく行った。(ユーザIDが同じなんだけど、どうやって区別するのかな?) 早速、古いメールで暗号化されている奴を探して読もうとしたら、secret key が見つかりません・・・。