PGPの仕組み

 メールの暗号化で国際的に使われているのが,「PGP」(Pretty Good Privacy)という暗号化プログラムだ。PGPは個人で使用するのであれば,フリーソフトウェアとして使用できる。PGPの具体的な使用方法については後述するが,その前に機能を簡単に理解しておこう。

 PGPは2つの異なる鍵を使う。1つを「公開鍵」,そしてもう一方の鍵を「秘密鍵」として使用する(公開鍵暗号方式)。多少分かりづらいかもしれないが,PGPを使用しているユーザーは2つの鍵を所有し,暗号化したメールを送信するには「メールを送信する相手の公開鍵」を使用して暗号化を行う。

 公開鍵は文字通り公開するための鍵であり,公開鍵サーバやホームページで公開したり,メールなどで相手に渡すわけだ。送信する側はこの「相手の公開鍵」を使って暗号化し,受信した側はもう1つの鍵である「自分の秘密鍵」で復号化を行う(図1)。

図1■PGPの概念図画面
PGPを使用しているユーザーは2つの鍵を所有し,暗号化したメールを送信するには「メールを送信する相手の公開鍵」を使用して暗号化を行う。受信した側はもう1つの鍵である「自分の秘密鍵」で復号化を行う

 また,PGPは暗号化のほかに,「電子署名」も行うことができる。電子署名とは実社会で言う署名と同じ機能を持つ。メール内容やファイルなどに電子署名(サイン)することができる。電子署名は送る側(つまり自分)の秘密鍵を使用して署名を行う。署名されたメールやファイルを受信した側は,相手の公開鍵を元に照合を行う(図2)。

図2■電子署名付きの送信画面
電子署名は送る側(つまり自分)の秘密鍵を使用して署名を行う。署名されたメールやファイルを受信した側は,相手の公開鍵を元に照合を行う

 次に,公開鍵が本物であるかの確認(なりすましの防止)だが,これは「電子指紋」(FingerPrint)というものを使い,参照することができる。あらかじめ普段のメールの署名欄などに電子指紋を入れておくことで,受け取った相手が公開鍵が間違いないものか電子指紋を照合することで確認するわけだ(図3)。

※例:筆者の電子指紋
Fingerprint : DE7B 3A02 8191 990D ACA2 BA35 363E D5CE 8112 0E08

 概要を述べるとこのようになるが,PGPについてさらに詳しく知りたい場合は,配布元の「The International PGP Home Page」を参照してほしい。

図3■電子指紋の照合画面
あらかじめ普段のメールの署名欄などに電子指紋を入れておくことで,受け取った相手が公開鍵が間違いないものか電子指紋を照合することで確認できる

GnuPGとは
 「The International PGP Home Page」にあるダウンロードページを見ると,PGPのほかに「GnuPG」と書かれたリンクが張られている。GnuPG(GNU Privacy Guard。GPGとも言う)とは,電子メールなどの暗号化を行う「OpenPGP」のGNU版だ。PGPと同じく暗号化のためのソフトだが,PGPではRSAやIDEAといった特許で保護されたアルゴリズムを利用しているため,のちほど紹介する「PGP Freeware Version 7.0.3」でも,ある意味では完全にフリーソフトウェアとは言えない。それに対してGnuPGは,特許問題のないアルゴリズムのみを用いているため,完全に自由に使用できるほか,GPLに基づいてソースコードも公開されている。ただし,コマンドラインのみでしか利用できないなど,まだユーザビリティに優れていない。なお,Becky! Internet Mailなど,メールソフト用のプラグインも開発されている場合があるので,興味のある人は調べてみるとよいだろう。


PREV 2/5 NEXT