インターネットで使われる暗号の基礎知識


では、どのようにこれらの危険を回避すれはよいのだろうか。一般的な暗号のしくみを解説しながら、それが電子メールでどのように使われるかを説明していこう。

セキュアメールについて説明する前に、その中で使われている暗号について説明する必要があるだろう。セキュアメールツールを使ってしまえばユーザー側からは何も見えないが、いったいそこて何が行われているかの知識を持っていれば安心感も増すに違いない。

ひとことで暗号といっても、その方法やどのようにそれが使われているかはさまざまである。ここでは、一般にインターネット上の通信で使われている「対称暗号方式」と「非対称暗号方式」を中心に解説しよう。

1対称暗号方式

対称暗号方式は、暗号化したものを元にもどす復号化に同じ鍵を用いる方法だ。そのため、「共通鍵暗号方式」とも呼ばれる。この方式は、暗号化と復号化にかかる時間が短く、暗号化された文の大きさも極端に大きくはならないという長所を持つ。

対称暗号方式を用いたメールの送受信は、送信者と受信者が伺一の共通鍵を保持して行うことになる。

ここで、4人で暗号化メールを相互に送受信することを考えてみよう。この場合、送信者と受信者の組み合わせか全部で6通りあるので、その組み合わせごとに共通鍵を用意する必要がある。すなわち、各自が受信者3人分の鍵を保持するわけだ。メールの相手が増えるにつれて保持する鍵も増えていくので、この方式は現実的ではない。

また暗号を行う前に送信者は受信者に鍵を送らなければならないか、ネットワーク上て鍵を送信すると誰かに盗まれる恐れがある。また無事に届いたとしても、相手の管理によっては、鍵をなくしたり盗まれたりすることもあるだろう。共通鍵方式ではこのような問題点もある。

非対称暗号方式は公開鍵暗号方式とも呼ばれる。この方式では、2つの対になった鍵(キーぺアー)を用いる。通常、一方を秘密鍵と呼びもう一方を公開鍵と呼ぷ。公開鍵を使って暗号化したものは、その公開鍵と対になっている秘密鍵でしか復号化できない。逆に秘密鍵を使って暗号化したものは、その秘密鍵と対になっている公開鍵でしが復号化できない。当然秘密鍵で暗号化した暗号文と公開鍵て暗号化した暗号文では結果が異なる。この方式の暗号化と復号化にかかる時間は共通鍵暗号方式にくらべて長く、また暗号化された文も長くなるという短所がある。

公開鍵暗号方式を用いたメールの送受信では、まずメールを受信する各自が、自分の秘密鍵と公開鍵を用意し、自分の公開鍵を他の人が見られるようにどこかに「公開」する、つまり知られるようにすることが必要である。そしてメールの送信者は、受信者の公開鍵を使ってメールの本文を暗号化する。暗号化メールの受信者は、自分の手必密鍵を使って復号化する。

秘密鍵を持つのは受信者のみなので、メールを他人に復号化される心配はない。公開鍵と秘密鍵の間には数学的な関係はあるが、公開鍵から秘密鍵を求めるには、天文学的な時間がかかることから安全といえるだろう。

対称暗号方式と同様に、4人のメールのやり取りを考えてみる。4人それぞれが自分自身の秘密鍵と公開鍵を用意し、公開鍵を他の3人に知らせるたけで、暗号化メールを相互にやり取りできる。

公開鍵自体は誰に知られても問題はないので、各自か安全に保持しなければならないのは、自分自身の秘密鍵だけでよい。

対称暗号方式より、鍵の保管や配送の点で勝っている方式といえる。公開鍵暗号方式は、こういった特性を活かして次に述べる「電子署名(Digital Signature)」でも大きな効力を発揮する。

暗号化の方法について述べてきたが、いったい、なりすましや改ざんを防ぐ手だてがあるのだろうか。その解決策が電子署名である。普通の(手で紙に書く)署名か自分か’書いたことを証明し、さらにその内容にうそ偽りがないことを証明するために用いるのと同じように、電子メールでは電子署名が使われる。いったいどのように「署名」するのかを図を見ながら説明していこう。

電子メールとして書かれた本文すなわち平文かある。これを「ハッシング」という方法で「ダイジェスト」と呼ばれる特殊な文に変換する。このハッシングとはハッシュ関数という決まった手順によって文を変換する方法で、まったく同し平文であればハッシングされた結果からは同じダイジェスト文か得られる。ハッシングによって作られたダイジェスト文は、どんな長い文でもまったく同じサイズの小さな文に変換される。このため、2つの長い文はハッシングしてから比較したほうか、効率的だ。

このダイジェスト文を電子メールの送信者の秘密鍵で暗号化する。この暗号化されたダイジェスト文か電子署名である。送信者はメールの本文とこの電子署名を一緒に送信するのである。

受信者はメールを受け取ると、メール本文と電子署名に分ける。次にメール本文をハッシングしてダイジエスト文を作り、電子署名を送信者の公開鍵を使って復号化する。この両者を比較してまったく同しであるか否かを確認する。同じであれはメールそのものが改ざんされていないことか証明されるとともに、公開鍵で復号化できたということは送信相手の特定もされたことになる。

ここで重要なことは、公開鍵暗号方式での鍵の扱いである。電子署名で公開鍵を使う目的の1つは、相手を特定するということだが、公開鍵自体には人物を本当に特定するものは何1つない。対になった秘密鍵で暗号化されているということを証明しているにすぎない。公開鍵によって本当の人物を特定するのは困難である。

これを解決するための「鍵管理」の方法として、2者間で使用する公開鍵の正当性を証明する第三者としての機関が必要になる。これが「認証局(Certificate Authority)」である。

公開鍵暗号方式での鍵の正当性の検証が難しいことは述べた。そのために誌証局が必要であることも前述のとおりだ。ここでは認証局の大手であるベリサイン社を取り上げてその役割について説明する。

認証局の仕裏は、大きく分けて2つある。1つは、「デジタルID」という公開鍵とその公開鍵か誰のものであるかを証明する証明書を発行することである。図を使って説明しよう。

図6を見てほしい。Aさんは認証局に公開鍵の登録を行おうとしている。まず最初にキーペアー(秘密鍵と公開鍵)を生成する。通常この生成はセキュアメールソフトやWWWブラウザー内部で行われる。次に認証局に公開鍵とその公閉鍵の正当性を証明するような自分の属性(Aさんの名前、メールアドレスなど)を一緒に送る。認証局では受け取った情報をもとにデジタルlDを発行する。これで公開鍵の登録は完了である。

認証局のもう1つの仕事ば、登録されている公開鍵の問い合わせが第三者からあった場合に、それを証明書付きで送付することである。Aさんと暗号通信したい相手(この場合Bさん)がAさんの公開鍵を認証局に要求した場合、その公開鍵を証明書付きで送付する。

このように認証局は公開鍵に関する管理を厳重に行っている。では、認証局であるベリサイン社か、発行するデジタルlDとはいったいどのようなものなのかをみてみよう。デジタルlDは次のような内容になっている。有効期限、認証番号、発行した認証局名に加え、登録者の属性(名前、メールアドレスなど)、登録者の公開鍵がその中に含まれている。これらを組み合わせたものをハッシングして認証局としてのベリサイン社の秘密鍵て錯号化した電子署名を作る(これもデジタルIDの中に含まれている)。これがデジタルlDとして発行される。

しかし、ここで疑問が生しる。ベリサイン社の電子署名を検証するために使う公開鍵はどこにあるのだろう。これに関しては心配は無用だ。RSAデータセキュリティー社の提唱するS/MlMEという暗号通信方法を使ったセキュアメールソフトウエアには、標準でベリサイン社の公開鍵が添付されているのだ。例えばネットスケープコミュニケーター(ネットスケープメッセンジャー)やマイクロソフトインターネットエクスプローラー(アウトルックエクスプレス)、また最近ではEudoraProなどのメールソフトに暗号化機能をもたせるようなソフトウエアがあり、これのソフトウェアにはベリサイン社の公開鍵がすでに配布されたかたちで組み込まれているのである。

この図て説明した電子署名付き暗号化メールの送受信では「盗聴」「改ざん」「なりすまし」のすべての危険を回避することができる。ここで注目してほしいのは、なぜ共通鍵暗号を使ってメール全体を暗号化しているかということである。

共通鍵暗号方式は公開鍵暗号方式に比べて、暗号化と復号化処理が圧倒的に高速である。また暗号化で生成された文の大きさも小さくてすむ。そのため、メール全体を受信者の公開鍵で暗号化するより、メール全体を共通鍵で暗号化し、共通鍵だけを受信者の公開鍵で暗号化するほうが効率がよい。これはメール本文の大きさが大きくなるほと顕著となる。

また、同じメールを複数の人に送るときも、メール全体を受信者ごとに各自の公開鍵で暗号化するよりも、1つの共通鍵で暗号化し、共通鍵だけを各自の公開鍵で暗号化したほうが効率的である。

このように2つの暗号方式の利点を活かすことによって安全で高速な処理か実現されているのだ。なお、共通鍵は送信のたびにまったく新しいものが生成されるので、管理については考えなくてもよい。




メニュー