通信の暗号化「公開鍵方式」と「共通鍵方式」はどう違う?

誰かに手紙を出す場合に、その内容を秘密にしたければ一定の基準に従って暗号化すれば良いでしょう。

文字を書く際に、一定の基準に従って、別の文字に入れ替えたものを記入します。

そして、その基準にした変換規則を、別の方法で伝えておけば、万が一、間違った相手に手紙が届いても解読することはできません。

この仕組みは、現在のネットワークを経由した通信でも、基本的に変わっていません。

しかし、ネットワークを利用した通信では、更に高度な手法を採用しているようです。

大きく分けると、「公開鍵方式」と「共通鍵方式」に区別することができる現在の暗号化形式ですが、実際にはどのような違いがあるのでしょうか?

また、どちらを利用すべきかを、判断する基準があるのでしょうか?

それとも、2つの方式を、同時に利用することができるのでしょうか?

 

「公開鍵方式」と「共通鍵方式」とは?

「公開鍵方式」と「共通鍵方式」とは、現在、ネットワークを経由した通信を、暗号化する手段として採用されている代表的な方式です。

それぞれに、特徴がありますので、その使用する目的によって、どちらを使うのかを判断する必要があります。

また、両者を同時に利用することによって、非常にセキュリティレベルの高い暗号化を行っている通信規格も存在します。

これは、Web上のサービスを提供しているサーバーと、パソコンなどの端末の間で、重要な通信を行う際に利用する「SSL」と呼ばれている通信規格です。

最初に「公開鍵方式」に付いて説明すると、これは2種類の鍵を使用する手段です。

この鍵を発行するのは証明書認証局(CA)と呼ばれている機関であり、通信を行う人が鍵を発行する訳ではありません。

一つは、公開されているもので、もう一つの鍵は秘密にされています。

秘密にされている方の鍵は、公開されている鍵に対応して、独自の内容を持っていますが、これは、暗号化された通信を受ける側のみが取得します。

通信を送信する側は、公開されている鍵によって、通信を暗号化しますが、公開されている方の鍵では復元することができません。

唯一、暗号化された通信を受け取る側のみが持っている、秘密にしている方の鍵でのみ、通信内容を復元することができるようにしています。

それに対して「共通鍵方式」では、送信側が、暗号化に使用した鍵と全く同じものを使って、受信した側が復元します。この記事の最初に書いた手紙を暗号化する方法と同じ手法です。

 

「公開鍵方式」と「共通鍵方式」の使い方

比較すると、公開鍵を利用する方が便利なように思えます。

確かに、鍵を公開しているわけですから、毎回鍵を渡す必要もありませんし、相手毎に鍵を用意する必要もありません。

しかし、暗号化した鍵とは異なる鍵を使用して、復元する訳ですから、どうしても時間がかかります。

その点では、同じ鍵を使って、復元する共通鍵方式の方が、処理速度は早くなります。

特定の相手であれば、安全に鍵を渡す方法さえ確保していれば、共通鍵方式でも、問題はないのかも知れません。

しかし、多数の相手に鍵を渡す必要がある場合は、公開鍵を利用する方がはるかに安全であると言えます。

では、すでに話した「SSL」では、どうでしょうか?この方式では、コンテンツを配信するWebサーバーから、セキュリティ対策のされている、Webページの閲覧を希望する端末に対して、SSL証明書と「公開鍵」が送信されてきます。

次に、パソコンなどの端末側で、受け取った公開鍵によって、端末側で独自に作成した「共通鍵」を暗号化したものを、サーバーへ送信します。

最後に、Webサーバーが、受信した暗号化されている「共通鍵」を、最初に、端末に送信した公開鍵に対応した秘密鍵によって、復元することによって、端末側から送信された「共通鍵」を、初めて取得することが可能となります。

以後は、復元した「共通鍵」を使用して暗号化したデータを、端末へ送信します。

 

「公開鍵方式」と「共通鍵方式」による安心

それぞれの特徴に応じて、使用することが必要になる両方式ですが、最近は、両方の長所をできるだけ活かすことができるようにした「ハイブリッド暗号方式」と呼ばれている方式が存在しています。

この方式では、送信側の作成した共通鍵によって、暗号化した通信データに、その共通鍵を、事前に取得していた受信者の公開鍵によって、暗号化したファイルを添付した上で送信します。

受信した側は、自分だけが持っている秘密鍵(公開鍵に対応したもの)によって、添付されているファイル(暗号化された共通鍵)を復元することによって、共通鍵を受け取ることが可能となります。

この方式も、共通鍵の再利用をしなければ、かなり高度なセキュリティ対策を行うことが可能となります。