ポイント

●データの中身を隠して秘密を守るときには,受信者の公開鍵で暗号化する
●送信元が自分であることを相手に証明する署名で使う場合は,送信者の個人鍵で暗号化する
●公開鍵暗号方式の長所は,鍵の配送(配布)が容易で,管理が楽な点である
●短所は,暗号化や復号の処理が重くて時間がかかり,大量のデータ処理に向いていない点である

 公開鍵暗号方式は,共通鍵暗号方式よりも仕組みが複雑です。しかし,公開鍵暗号を使うための前提条件をしっかりと把握していれば混乱せずに理解できます。公開鍵暗号方式を利用する場合の前提条件に関しては前回の「公開鍵暗号方式[前編]----利用するためのルール」で詳しく解説しましたので,まだ読んでいない方は確認しておいてください。今回は公開鍵暗号方式の使い方と,特徴を見ていきます。

使い方(1)---データの中身を隠して秘密を守る場合

 公開鍵暗号方式では,暗号化する(鍵をかける)時に利用する鍵の種類によって2つの使い方があります。共通鍵暗号方式のようにデータの中身を第三者に見られたくない場合は,あらかじめ入手しておいた受信者の公開鍵で暗号化します。

 例えば,AさんからBさんへデータを送る場合のやりとりを見てみましょう。ここでは,Aが送信者,Bが受信者で,AさんからBさんに送信するデータの中身を悪意のある第三者に見られたくないものとします。

 登場人物は,Aさん,Bさん,悪意のある第三者の3人です。また,ここに存在する鍵の種類はAさんの個人鍵,Aさんの公開鍵,Bさんの個人鍵,Bさんの公開鍵の4種類になります。個人鍵は絶対秘密にしますので,AとBそれぞれが,自分の個人鍵を所持していて,外部の人間は入手できません。一方,公開鍵は公開してもかまわないので,悪意のある第三者も含めた全員が持っているものとします(図1)。

図1 公開鍵暗号方式を使って2者間でデータを送る際に登場する鍵の種類
第三者は公開されている送信者の公開鍵Aと,受信者の公開鍵Bは入手できる。

 Aさんはあらかじめ入手しておいたBさんの公開鍵Bで暗号化します(図2-1)。仮に悪意のある第三者が途中で盗聴したとしても,持っている可能性がある鍵は公開鍵Aと公開鍵Bだけです。これでは復号して中を見ることはできません(2)。

 Bさんの公開鍵で暗号化したデータを正しく復号できるのは,公開鍵BのペアとなっているBさんの個人鍵Bだけです(3)。ここで「?」と思った方は,前回の「公開鍵暗号方式[前編]----利用するためのルール」を確認してください。

図2 AからBへ安全にデータを送る際に使われる鍵の組み合わせ
公開鍵Bで暗号化して送出し,個人鍵Bで復号する。

使い方(2)---送信者を証明する署名として使う場合

 公開鍵暗号方式には,もう一つの使い方があります。「送信者が正規のユーザーであることを証明する署名」として使う方法です。

 この場合は送信者は自分の個人鍵で署名文を暗号化します。例えば,Bさんに送られてきた署名文がAさんのものであるかを確認したいとしましょう(図3)。

図3 署名として使うときの鍵の組み合わせ
個人鍵Aで暗号化して送出し,公開鍵Aで復号する。公開鍵Aで正しく復号できる暗号データを作れるのは個人鍵Aを持ったAさんしかいないので,送信元はAさんだと確認できる。

 Aさんは自分の個人鍵Aで署名文を暗号化します(図3-1)。Bさんは,あらかじめ入手しておいたAさんの公開鍵Aで,暗号化されている署名文を復号します(2)。正しく復号できれば,この署名文の送信者は「復号に用いた公開鍵Aのペアの個人鍵Aを持つAさんである」,つまり送信者が間違いなくAさんだ,ということを確認できます。

 仮に悪意のある第三者がなりすましを企てたとしましょう。悪意のある第三者が所持しているのはAの公開鍵とBの公開鍵です。署名文をいずれの鍵で暗号化しても,受信者であるBが所持している送信者Aの公開鍵で復号することはできません(3)。つまり悪意のある第三者がなりすましても,Bさんはそれを見破ることができます。