ハイブリッド暗号~安全な鍵配送を目指して~
『暗号技術のすべて』の第8章を参考にしました。 今回は、鍵の配送について書いていきます。
鍵配送とは
以前の記事で 紹介した共通鍵暗号では、事前に鍵の共有が必要となります。 その際、鍵の配送を安全に行うことはとても重要なことです。
鍵配送の方法
事前に共有
最も素朴なアプローチです。通信を行う以前に直接会って、鍵を手渡しする方法です。 通信相手と直接会うため、最も安全な方法です。
- 長所
- なりすまし、鍵の盗難を防ぐことが可能
- 短所
- 通信相手が近くにいるとは限らないので、現実的な方法ではない
鍵配送センタ
信頼できる鍵配送サーバ(以下、サーバと略す)が存在し、 ユーザとサーバ間の通信は安全であると仮定します。 サーバが鍵生成や鍵管理を担い、ユーザはそれに対して、鍵生成リクエストや 鍵要求リクエストを送ることで鍵配送を実現しています。
- 長所
- 短所
鍵共有プロトコル
鍵共有プロトコルとは、ユーザの一方が生成した鍵を送るのではなく、 ユーザ同士で協調し合うことで、互いに相手の秘密情報を知らないままに 秘密鍵の共有を実現する手法です。 詳しいアルゴリズムについては説明しませんが、以下のような種類があります。
- DH共有プロトコル(Diffie-Hellman)
- STS共有プロトコル(Station-to-station)
- 楕円DH共有プロトコル
ハイブリッド暗号
共通鍵暗号や公開鍵暗号には、それぞれ以下のような欠点があります。
これらの欠点を補う暗号がハイブリッド暗号です。 Webサイトにおける暗号技術SSL、メールの暗号化のPGPなどに用いられています。
ハイブリッド暗号アルゴリズム
アリスがボブに暗号文を送信する場面を想定します。
- アリス:共有鍵暗号の共有鍵 key を生成
- アリス:公開鍵暗号の公開鍵 pk で key を暗号化し、ボブに送信
- ボブ:公開鍵暗号の秘密鍵 sk で key を復号
- アリス:共通鍵暗号の秘密鍵 key で暗号文を生成、ボブに送信
- ボブ:共通鍵暗号の共有鍵 key で暗号文を復号
つまり、公開鍵暗号によって、共通鍵暗号の共有鍵を共有しています。
まとめ
鍵共有には以下の方法がある。
- 直接会う
- 鍵配送センタ
- 鍵共有プロトコル
- ハイブリッド暗号