【PKI 基礎】公開鍵暗号化方式とは

公開鍵暗号化方式とは

公開鍵暗号化方式とは、暗号化と復号に使用する鍵が異なる暗号化方式のことです。

暗号化と復号に使用する鍵は、数学的な関係性があるためペアとなっています。(キーペアと呼ばれます)

キー ペアとなっている鍵でないと、暗号化したデータを復号することはできません。

キーペアとなる鍵は、秘密鍵・公開鍵とよばれる組み合わせでできており、使い分けされています。

キーペアのうちの1つの鍵を秘密鍵として内部に保持し、絶対に外から入手できないように厳密に管理します。

もう一方のキーペアの鍵は公開鍵とし、誰でも使用できるようにインターネット上にも公開してしまいます。

公開鍵暗号化方式では、秘密鍵で暗号化したデータは公開鍵でしか復号できず、また公開鍵で暗号化したデータは秘密鍵でしか復号できないという特徴があります。

そのため、インターネット上で暗号化通信を行う場合、安全でない通信経路で公開鍵をそのまま相手に渡し、公開鍵で暗号化されたデータを送信したとしても、そのデータを復号できるのは秘密鍵を保持する本人のみです。

そのため、共通鍵暗号化方式のように事前に通信相手と安全な方法で鍵を共有しなくとも、通信相手の公開鍵があれば安全に暗号化したデータを送信できることになります。

公開鍵暗号化方式は、暗号化と復号に使用する鍵が異なることからも推測できるように、アルゴリズムも複雑であり、暗号化・復号における処理速度は遅いという特徴があります。

処理速度という観点でみると、比較するアルゴリズムで異なってきますが、共通鍵暗号方式と比べると公開鍵暗号方式では暗号化・復号における処理量は 100 倍~数千倍多くなると言われています。

 

ハイブリッド暗号化とは

ここまで暗号化と復号に使用する鍵が同じである共通鍵暗号方式と、鍵が異なる公開鍵暗号化方式についてみてきました。

それぞれの暗号化方式の特徴を表にまとめてみると、以下の通り、鍵交換と処理速度の観点では相反する特徴をもっていることがわかります。

 

鍵交換

処理速度

共通鍵暗号方式

鍵をそのまま公開することは不可

速い

公開鍵暗号方式

公開鍵を公開しておけば問題ない

遅い

公開鍵暗号化方式では、公開鍵をインターネット上で公開しておけば、公開鍵を使ってデータを暗号化できるため、インターネット上でも安全に通信することが可能ですが、暗号化・復号における処理量が多いため、コンピューターへの処理負荷がかかったり、速度への影響も懸念されます。

一方、共通鍵暗号化方式であれば暗号化・復号における処理量は少なく負荷がかからないため、まとまったデータを暗号化するのであれば共通鍵暗号を利用する方が適切です。

ただし、共有鍵暗号方式の場合は暗号化と復号に共通の鍵を使用するため、通信相手と同じ鍵を保有している必要があります。

インターネット上でも交換してしまうと悪意のある第三者が鍵を入手できる恐れがありますので、安全な方法で事前に共有しておかなければなりません。

もしインターネット上で暗号化通信を行う相手が不特定多数いる場合、全ての通信相手とそれぞれを鍵を事前に共有しておくのは現実的ではありません。

そこで利用される方法として、共通鍵暗号化方式と公開鍵暗号化方式を組み合わせて利用するハイブリッド暗号が有用です。

ハイブリッド暗号では、公開鍵暗号化方式を利用して共通鍵暗号化方式で利用する鍵を暗号化して、安全に鍵を共有するという方式です。

それでは具体的に見ていきましょう。

 

まず自分の公開鍵をインターネット上に公開して、誰でも利用できるようにします。

② 通信相手は共通鍵暗号で使用する鍵を作成し、公開されている公開鍵で暗号化して送信します。

③ 送信されてきたデータをキーペアとなる秘密鍵で復号して、共通鍵を入手します。

④ 共通鍵を共有したら、共通鍵を用いてごりごり暗号化して通信相手にデータを送りまくります。

このように、ハイブリッド暗号はそれぞれの暗号化方式の特性を利用して、安全に鍵を交換し、処理速度が速い共通鍵暗号化方式のアルゴリズムを利用する方法です。

ハイブリッド暗号は、インターネット上で利用されている安全な通信(SSL や TLS 等)や、Windows OS で個人のファイルを保護できる EFS と呼ばれる機能で利用されています。

公開鍵の正当性

公開鍵暗号化方式における公開鍵とよばれる鍵は、誰でも使えるようにインターネット上で公開してします。

公開鍵で暗号化されたデータは、その公開鍵のキーペアとなる秘密鍵がない限り、復号して読み解くことはできませんので、インターネット上でも安全に利用できます。

しかしながら、ここで気になる点として公開されている公開鍵そのものは本当に安全なのでしょうか。

もし悪意のある第三者が作成した公開鍵を通信相手と偽って公開していた場合、公開鍵で暗号化して安全に通信を行ったつもりでも、その悪意のある第三者にデータを盗み見られてしまいます。

公開鍵暗号化方式を利用してインターネット上で安全に通信を行うためには、公開されている公開鍵が、通信したい相手本人の鍵であることを保証する仕組みが必要です。

公開鍵を保証する仕組みがあれば、鍵の正当性も確保できるため、誤って悪意のある第三者が偽った公開鍵を利用する恐れもありません。

この公開鍵を保証する仕組みがデジタル証明書と呼ばれる技術になります。

デジタル証明書の詳細な仕組みを説明する前に、まず前提知識としてハッシュ アルゴリズムとデジタル署名という技術を理解しましょう。