GnuPGの導入

GnuPGって何ぞや?
GnuPGと言うのは、「公開鍵暗号方式で文章を暗号・復号化する事が出来、さらに、
電子署名をする事が出来るツール」の事です。
元々、DSAとRSAの両方の公開鍵暗号方式をサポートしたPGPと言うものがありましたが、
RSAは特許の問題で、使う時には高額のライセンス料を支払わないといけなくなりました。
そこで、RSAを除いてDSA方式のみを採用(RSAに比べDSAの方が暗・復号化に計算時間は
掛かりますが、DSA方式の方が数学(計算量とか)的に解読が困難であるので、実用上
問題ないでしょう)し、完全にGNU Public License(GPL)に準拠したGnuPGが登場しました。

GnuGPは各種プラットフォーム(Linux等のUNIX系OS、Windows、Mac等)に移植されていて、
現在の最新版はバージョン1.0.6です(2001/06/17現在)。
GnuPG本体はコマンドラインで操作するソフトですが、各種プラットフォームそれぞれに
GUIベースのフロントエンドが存在しますので、実際には非常に簡単に扱う事が出来ます。

公開鍵暗号方式って何ぞや?
公開鍵と秘密鍵の1組の鍵を用いて、暗号化したり復号化したりすることができる暗号 形式の事です(それに対し、一つの鍵を持つ暗号の事を「秘密鍵暗号方式」だとか 「共有鍵暗号方式」などと言います)。 一般に、この公開鍵暗号方式を使ってデータを送信する人は、データを送信したい相手 が公開している「公開鍵(Public key)」を用いて文章を暗号化します。 その暗号化されたデータを受信した人は、受信した人自身が持つ「秘密鍵(Private key)」で その暗号文を復号化し、読むことが出来る様にします。 この暗号形式の最大の強みは、暗号化に用いる鍵を公開し、その鍵が他人の手に渡っても、 復号化に用いる鍵さえ公開しなければ、途中で容易に解読されることはないと言う点です。 これが、暗号化にも復号化にも同じ一つの鍵を用いる共有鍵暗号ならば、安全なデータの やりとりに鍵の安全な配送が大きな問題となります。 ただ、暗号学的に共有鍵暗号の方が鍵さえ盗まれなければ、公開鍵暗号よりも 暗号強度が高く(=破られにくい)、暗・復号化処理にかかる時間が短いですから、 共有鍵暗号で暗号化した文とは別に、その暗号文の「鍵」だけを公開鍵暗号で送り受け すると言う方法が採られている事もあるようです。
GnuPGのインストール(for Windows)
GnuPGのOfficialサイト」に行って最新のGnuPGファイルをダウンロードし、 さらに「WinPTのサイト」に行って最新のWinPTファイルをダウンロードします。 後はインストールしたいフォルダに解凍するだけです。 但し、インストールしたいフォルダの全ての階層に英数字以外の文字が含まれている 場所、例えば「c:\windows\デスクトップ\gnupg\」(「デスクトップ」は本来半角カナ)や 「c:\暗号\gnupg\」の様な場所にはインストールできません(正確には出来ますが、 設定の段階で文字化けを起こし、動作が保証できません)。ご注意下さい。
WinPTの初期設定
インストールが終わったら、「WinPT」を起動して下さい。 すると「設定しますか?」みたいな事を英語で聞いてきますが、後でも設定できるので 今ここで設定しなくても構いません。 まず、タスクトレイの封筒のマーク(WinPTは実行すると タスクトレイに自動で入ります)を右クリックしてメニューを出し、 「GnuPG」→「Preferences」を選択します(下図)。 c:\gnupg」に本体、WinPTをインストールする設定では、以下のような設定に なるでしょう(この場合、フォルダ「c:\gnupg\keys」も作っておく)。
鍵生成
公開鍵と秘密鍵を生成するには、まずWinPTのメニューを出し、 「GnuPG」→「key generation」を選択します(下図)。 そして、以下のような感じで入力していきます。 (一番上のsubkey length(bits)の所は1024としてありますが、現在なら512bitでも 十分安全であろうかと思います) Passphraseにはパスワード(英数で大体8文字位?)を入力し、 Repeat Passphraseには、同じパスワードをもう一度入力します。 これでstartを押せば公開鍵、秘密鍵の生成が始まります。 鍵生成中にマウスを動かしたり、何かのソフトを立ち上げたりして下さい。 そうすることによって、乱数のエントロピーを増大させ、より安全な鍵の生成が 可能となります。 これで、鍵の生成は完了しました。
公開鍵を出力する
公開鍵を公開しないと、この暗号方式には意味がありません。 そこで公開鍵だけを出力しましょう。 まず、WinPTのメニューを出し、 「Keys」→「Export to Clibpaord(Clipboardの誤植?)」を選びます(下図)。 次に、公開鍵を出力したい鍵を選びます(下図)。 OK」をクリックすると、クリップボードに公開鍵が貼り付けられています。 それをテキストエディタ(メモ帳などの書式が入らない物)に貼り付けます。 すると、
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.6 (MingW32) - WinPT 0.2.1
Comment: For info see http://www.gnupg.org

mQGiBDsrbJ4RBACKyptfVD0Gfdd1660+mKNZF9HH6Z/8td1KewpdpSeGsDWqSKsk
VQ/b03lDIuQSQp7cyMkg3GyXyc3qpKJgSG1RPYR/OCq+rcTa4VzTEBLLgGRszdrv
W4kTifhp3+F0WwB5jUxZcMJA56YvH/hSg43qIdesOnj4qmgI62Lw3u2WBwCgtAqK
pP1ofW7k4E/zE2bcTcSPIcsD/1++7IssYrRHNCZWNNdmIlaiDWv/Zl5M8wt4OVXA
PvC7ai7xx77RbDYmHhlOlCgm1Niq8E2NuN9iv4Jrl8Ki3By0TRHShycbBw0K+3w9
z5tfDcNWdi9hz4rPze0Rc+o1AKMo5bnSBw/Oc34fvmYhZJEI4uX+aKo9AiXtpw/Y
tVSkA/9wgQP/eZDr8pVLoRghMK4kQpXWmDP62O7iPLsLt8CC3aSBP/L2zBig8Vgh
7K3zk2jgdMZ/Fl7WFfePNLJaRaOMe+nuAlX+/ZTe7Y7mFRoIZRjJtjuOoVDEl/7X
SRJh6IxqCOy3/5QqYKQukMT3HcEpNEDRYkX+LW4169v64MFRV7QZZ3JuIDxncm5A
cmVtdXMuZHRpLm5lLmpwPohXBBMRAgAXBQI7K2yeBQsHCgMEAxUDAgMWAgECF4AA
CgkQOqpgXNlHMWEIKgCZAdhnCzV2l4YNjnxEXA8f/gpFqqsAnjsuwe4vnr8WETw/
UNWg3kDV+xSOuQENBDsrbKIQBACvavrPmrdk3PRdkM58+V8AZhjY89sm9So3RXQv
lLExKL7R66kAc3Ln4n2kZYeeDI4cTHm7Go58FM83F60lybrgQTbUZAsbAzud2iv9
qGJNd+bhpPRBPmur4ru33udYC9nCCd+DmRN4salaEFp09U94Q9zfJdHxCHZpua7j
8wzfCwADBQP/SPvBZU/cc0pAqMELvQ6tXN9Z8kgzo2aXBzWKqHFCqqqwGNBRjEq+
P9IjhwaT9kjzMR+6KKVad7fCBtj+DSZyIoC3SZcd+5rZHJTewn1siq4pVIJMIR47
ZYS0QOqB8Qyhi0zEsygDaY2oGsXqHuf7KNcrSBLKgdvfZvCEkV0VyGCIRgQYEQIA
BgUCOytsogAKCRA6qmBc2UcxYQJwAJ4rw6NSnNA0idbEp7LZ6ExT+js5DgCdEhTb
TcbOFrtgkMV/x/+MpZQLH98=
=ltTf
-----END PGP PUBLIC KEY BLOCK-----
の様に、公開鍵が出てきます(これは私の正式な公開鍵です)。 後はこれをホームページなり、掲示板なり、メールなりで公開すれば 準備完了です。
他人の公開鍵を登録する。
基本的に公開鍵は暗号化に使うので、それを登録しておかないと意味がありません。 そこで、他人が上記のように公開している公開鍵を登録しましょう。 まず、GnuPGの物でかつ「-----BEGIN〜」から、「-----END PGP〜」までの全てを クリップボードにコピー(つまり単にドラッグして「コピー」)します。 次にWinPTのメニューを出し、「Keys」→「Import from clipboard」を選択します(下図)。 すると、以下の様なウィンドウが出ます。 Typeのところで「pub」となっている事を確認して下さい。 後は、「Import」を押せばその公開鍵が登録されます。
文章を暗号化する
まずは暗号化したい文章(全角、半角、数字、記号、何でも構いません)をクリップボードに コピーしておきます。 次に、WinPTのメニューを開き、「Encrypt clipboard」を選択します(下図)。 すると、以下の様なウィンドウが出ます。 後は暗号化するための(送信したい相手の)公開鍵を選んで「OK」を押すと、 クリップボード内の文章が暗号化されます。 例えば次のような文になるはずです。
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.0.6 (MingW32) - WinPT 0.2.1
Comment: For info see http://www.gnupg.org

hQEOA1lgfwJ2XsKoEAP+NV0/QKV5rFOORKT8ZYTFzdVbK5MIyjJt6eYCbKyPuYQe
LFj9dIgC1IfEBa8OrwG0ytLNOd6l8TG/Unjln6BRx37tvpRJRGQQtLWiPgdF0pE7
tkNmVy8WuDEgft3LLU4LFzE05yxtJpm0vZmOnSllKwihDxs/j3E3qdfUT/LaMVcD
/A3vLv8Z1ah7aUVkxjgVp+1iUPBm2mBxUDyIflDsxGXkzTNkisHfnxtlITDNvL78
hfLYEkF4Kyuiq7mU8CDSFSboD/LZtxRG0KGVCFzlToEd+dQSAKGV8ZVMMUEFKSPg
eeGpNBLd5wsJXUCahwvioEr6AuzGgKDsyjWxxNtfsaST0sBZARqR+uCyxCpR24k7
C3PT3Xv6iN6VbFyIl0KNbfh7FxT98BZFC+eLJENKmEcgptAVKjZv4kEkBOsQ3te1
0z35VhFkZ76fSmKrkbJCFeAb5SkwsPBZbelmK+dHTLeWzANh9FXi6rGWneaAZtPL
sWRkUhcK94fIg7JuMUaK660F54x3KdCr0AEJjh9T5cvomQonfqJXxDZ3Ex8U9yF4
I835Tnt1xFlTZsmppFae8bamU9qRvhNrI0MkSGAMH+PkyKFWjaskj9/34oHmlVYI
ndOyri1WxC7dwlHHOMduZczJD/H8SXPiBOjsRa3MfOW+MnFqhlmULbRDcVoM2Dpy
3qcJKF2D+o3/RzNJHOvYipCsESBclpYPmdtUIsQ=
=N59I
-----END PGP MESSAGE-----
これら全てをテキストエディタなどに貼り付けて、メールや掲示板等で公開鍵の 持ち主に送りましょう。
暗号文を復号する
自分の公開鍵によって暗号化されて送られてきた暗号文を復号しましょう。 まず送られてきた文章全てをクリップボードにコピーします。 次にWinPTのメニューを開き「Decrypt/Verify clipboard」を選択します(下図)。 すると、以下の様なウィンドウが出ます(下図)。 (複数鍵がある場合は鍵を選択することになります) 後は、「Please enter your passphrase」に鍵生成の時に入力したパスワードを入力すれば、 クリップボードに入っている暗号文は復号されます。 これでテキストエディタ等にクリップボードから「貼り付け」ると、内容を読むことができます。
あとがき
以上でGnuPGの基本的なインストールの仕方、使い方の説明は終わりです。 何か文章に、誤りや誤解を招くような表現、あるいはご意見ご質問ご感想等がございましたら、 是非とも掲示板までご連絡下さい。 よろしくお願いいたします。2002/01/19 追記: ・GPGOE(GPG Outlook Express) Plug-inがWinPTのホームページでリリースされています。 MicroSoft社のOutlook ExpressにGnuPGを導入する物のようです。現在確認中(2002/01/19)。

indexに戻る