kakke18’s blog

ゆるふわ学生エンジニア

ハイブリッド暗号~安全な鍵配送を目指して~

暗号技術のすべて』の第8章を参考にしました。 今回は、鍵の配送について書いていきます。

鍵配送とは

以前の記事で 紹介した共通鍵暗号では、事前に鍵の共有が必要となります。 その際、鍵の配送を安全に行うことはとても重要なことです。

鍵配送の方法

事前に共有

最も素朴なアプローチです。通信を行う以前に直接会って、鍵を手渡しする方法です。 通信相手と直接会うため、最も安全な方法です。

  • 長所
    • なりすまし、鍵の盗難を防ぐことが可能
  • 短所
    • 通信相手が近くにいるとは限らないので、現実的な方法ではない

鍵配送センタ

信頼できる鍵配送サーバ(以下、サーバと略す)が存在し、 ユーザとサーバ間の通信は安全であると仮定します。 サーバが鍵生成や鍵管理を担い、ユーザはそれに対して、鍵生成リクエストや 鍵要求リクエストを送ることで鍵配送を実現しています。

  • 長所
    • 鍵管理をユーザが行う必要がない
    • 秘密鍵が漏洩したとしても、サーバに鍵生成リクエストを送るだけで良い
  • 短所
    • ネットワークの参加者が増加すると、サーバが管理する鍵の総数が指数的に増加する (n 人で通信を行う場合、n(n-1) / 2個の秘密鍵が必要となる)
    • これにより、DoS攻撃などの対象となりやすい

鍵共有プロトコル

鍵共有プロトコルとは、ユーザの一方が生成した鍵を送るのではなく、 ユーザ同士で協調し合うことで、互いに相手の秘密情報を知らないままに 秘密鍵の共有を実現する手法です。 詳しいアルゴリズムについては説明しませんが、以下のような種類があります。

ハイブリッド暗号

共通鍵暗号公開鍵暗号には、それぞれ以下のような欠点があります。

これらの欠点を補う暗号がハイブリッド暗号です。 Webサイトにおける暗号技術SSL、メールの暗号化のPGPなどに用いられています。

ハイブリッド暗号アルゴリズム

アリスがボブに暗号文を送信する場面を想定します。

  1. アリス:共有鍵暗号の共有鍵 key を生成
  2. アリス:公開鍵暗号の公開鍵 pk で key を暗号化し、ボブに送信
  3. ボブ:公開鍵暗号秘密鍵 sk で key を復号
  4. アリス:共通鍵暗号秘密鍵 key で暗号文を生成、ボブに送信
  5. ボブ:共通鍵暗号の共有鍵 key で暗号文を復号

f:id:kakke18:20190308021221j:plain

つまり、公開鍵暗号によって、共通鍵暗号の共有鍵を共有しています。

まとめ

鍵共有には以下の方法がある。

  • 直接会う
  • 鍵配送センタ
  • 鍵共有プロトコル
  • ハイブリッド暗号