
公開鍵暗号方式とは、「秘密鍵」と「公開鍵」という非対称の鍵ペアを使った暗号方式で、PKIにおいて最も中心的な役割を担います。その呼名の通り、「秘密鍵」は所有者が秘密に保持しておく鍵、「公開鍵」は所有者が他者へ渡してよい鍵を言います。「秘密鍵」は、「私有鍵」とも呼ばれます。
公開鍵暗号方式の特徴はその処理の一方向性にあります。暗号化を例にとると、公開鍵によって暗号化されたデータは、秘密鍵のみでしか復号化できない、といった仕組みが実現できます。Aさん(送信者)がBさん(受信者)へ文書(平文)を暗号化して送付する場合を考えてみましょう。以下にそのしくみを紹介します。
-
1.まずBさん(受信者)は、公開鍵と秘密鍵のペアを作成
2.Bさんは、作成した公開鍵をAさん(送信者)に送信
3.Aさんは、受け取ったBさんの公開鍵を用いて、平文を暗号化
4.Aさんは、暗号化した暗号文をBさんに送信
5.Bさんは、受け取った暗号文を、Bさんの秘密鍵を用いて復号化
この手順のポイントは、受信者であるBさんの公開鍵で暗号化が行われることです。
AさんからBさんへ送られた暗号文は、秘密鍵を持つBさんしか復号できませんし、また、この暗号文が途中で誰かに盗まれたとしても、秘密鍵を持つBさん以外はそのメッセージを解読できません。
公開鍵暗号方式では、この秘密鍵をその名の通り秘密に保持することが最も重要になってくるのです。
ただ、こうした受信者の公開鍵・秘密鍵を使った公開鍵暗号方式を利用するのみで、受信者のBさんは暗号化されて送られてきたデータが本当にAさんからのものと信じてよいのでしょうか?答えはNOです。Bさんの公開鍵をAさん以外の第三者が入手しこれを使って作成した暗号文をBさんに送付する、いわゆるAさんのなりすましが起きる恐れがあります。
そこで、本当に特定の送信者であるかを確かめる仕組みとして登場するのが電子署名です。前述した公開鍵暗号方式による暗号化では送信者(Aさん)が受信者(Bさん)の公開鍵を用いて暗号化,受信者(Bさん)が自身の秘密鍵を用いて復号化しますが、電子署名では,送信者(Aさん)が自身の公開鍵・秘密鍵ペアを作成しAさんの公開鍵を受信者へ送信したうえ送信者(Aさん)の秘密鍵を使って暗号化し、受信者(Bさん)が送信者(Aさん)の公開鍵を使って復号化するというふうに、その関係が逆になっていることがポイントです。暗号化と言いながら、送信者であるAさんの公開鍵を持つ人は誰でもAさんからの 暗号化データを復号できることになりますが、見方を変えればAさんのみが秘密に保持している秘密鍵で暗号化した=間違いなくAさんが送信者であることが確認できたということになります。
Aさん(送信者)がBさん(受信者)へ送ったメッセージを、Bさんが本当にAさんによって作成・送付されたものであることを電子署名により確認する手順を以下に紹介します。
1.Aさん(送信者)は、予め作成した公開鍵をBさん(受信者)に送信
2.Aさんはメッセージ(元データ)を圧縮してデータを作成
3.Aさんは、Aさんの秘密鍵を用いて、圧縮データを暗号化
4.Aさんは、メッセージと暗号化された圧縮データ(電子署名)をBさんに送信
5.Bさんは、受け取った電子署名を、Aさんの公開鍵を用いて復号化
6.Bさんは、受け取ったメッセージを圧縮し、5で復号化された値と比較して、完全に一致することを確認
3~5において、暗号化されたAさんの圧縮データがAさんの公開鍵を使って元に戻すことができれば、そのデータはAさんによって作成、送付されたものであり、改ざんされていないということが言えます。
なぜなら、圧縮データから、公開鍵によって復号化できるデータを作成できるのは、対応する秘密鍵を保有するAさんだけだからです。
ここで、電子署名を理解するもうひとつのポイント「圧縮データ」があります。送信者から受信者に送られるのは、「暗号化されていないメッセージ本文」と「メッセージ本文から作成された圧縮データを送信者の秘密鍵で暗号化した情報」です。受信者は、まず自身の環境で「暗号化されていないメッセージ本文」から圧縮データを作成します。次に、「メッセージ本文から作成された圧縮データを送信者の秘密鍵で暗号化した情報」を送信者の公開鍵で復号化し、圧縮データを取得します。そして、受信者側で作成した圧縮データと復号化して取得した圧縮データを比較しこれらが一致することで、送られたメッセージが 改ざんされていないことが確認できるというわけです。
上記の電子署名のしくみの中では、データを圧縮する際に利用する圧縮アルゴリズム(=ハッシュ関数)が重要な役割を果たしています。ハッシュ関数によって任意の長さの文書などの情報を処理すると、160ビットなど一定の長さの固定データ(ハッシュ値=メッセージダイジェスト)に変換されます。
ハッシュ関数は、「元データが少しでも違うとハッシュ値が大きく異なる」、「ハッシュ値が同一となる元データを作成することができない」、などの性質を満たします。この性質は、前述の、圧縮後のデータを第三者に偽造されることを検知するのに役立ちます。
ここまで、公開鍵暗号方式による暗号化と電子署名のしくみを説明してきましたが、ここで重要になるのが、どうやって公開鍵を正しい所有者に紐付けて配布するか、という課題です。
暗号化に関しては送信者が受信者の公開鍵を入手する必要がありますし、電子署名では送信者の公開鍵を配布することが必要ですが、なりすましでない本当の所有者の公開鍵でなければ意味をなさないことはこれまでの説明でご理解いただけていると思います。
この課題を解決するために重要な役割を果たすのが、電子証明書及び信頼できる第三者機関として電子証明書を発行する認証局です。
次回は、電子証明書及び認証局についてより詳しく紹介していきたいと思います。
- 【第22回】電子認証サービスの基幹技術PKIとは? - インターネット利用で必要な電子証明書、電子署名、暗号化施術などについて -
- 【第28回】これが、電子証明書のすべて - 電子署名の正当性を裏付ける電子証明書および認証局について -
- 【第30回】認証局のウラ側教えます! - 高信頼性を実現するセキュアなシステムや運用体制について -
- 【第33回】暗号アルゴリズムの2010年問題 - 次世代暗号技術移行に向けた認証局の対応について -
- 【第36回】意外に知らない暗号の謎を解く! - 「暗号アルゴリズムの2010年問題」補論 -




























