インターネットの安全を実現する鍵交換技術

| 2.2. 鍵交換の基本技術

2.1. 通信の秘密を守る暗号技術

インターネットでの通信は、常に「盗聴」や「なりすまし」といった危険性を伴います。そのような状況において、安全に通信を行うためには暗号技術を使うことになります。暗号自体については、現時点では安全とされるアルゴリズムがいくつか知られており、インターネットにおける通信においてもそれらを使用すればよいことになります。しかし、実際にインターネットで通信を行うシステムを開発するにあたっては、暗号アルゴリズムではなく、第三者に対して秘密にしなければならない「鍵」の管理をどのように行うかが課題となります。

この章では、最初に「鍵とは何か」を含めて暗号技術の基本的なことについて説明をして、その後に暗号鍵の安全な管理を行うための鍵交換技術について解説します。


2.1.1. 暗号の基本的な考え方

他人に盗み見られたくないメッセージを安全でない通信路を使ってやり取りするには、昔から暗号が使われていました。代表的なのは置換暗号で、平文の1文字1文字を決められた規則にしたがって、別の文字に置き換えていくというものです。たとえば、シーザー暗号は置換暗号の一種ですが、各文字を辞書順にしたがって一定量シフトした文字に置き換えるというものです。

暗号化の例:「SHINRAI」→(3文字ずつ後ろにシフト)→「VKLQUDL」。復号の例:「VKLQUDL」→(3文字ずつ前にシフト)→「SHINRAI」。

図2-1 暗号化・復号の例

歴史的には、暗号化の仕組みを秘密にしておくことで、セキュリティが確保されてきました。上の例では、シーザー暗号によって、暗号化された文だということがわからなければ、VKLQUDLからSHINRAIを復元することは難しいでしょう。現代では、暗号化の仕組みは公にして、代わりに鍵(Key)を秘密にしておくことで、暗号のセキュリティを確保します。シーザー暗号の例では、「x文字分シフトとする」のxが鍵となります。xの値が分らなければ、たとえシーザー暗号を使って暗号化されているということが分っていても、復号することは簡単ではありません。(実は、シーザー暗号は単純な暗号なので、解読するのは簡単なのですが...)

さて、現在用いられている暗号アルゴリズムには様々なものがありますが、鍵の性質の観点から共通鍵暗号アルゴリズムと公開鍵暗号アルゴリズムの2種類に大別することができます。


2.1.1. 共通鍵アルゴリズム

共通鍵暗号アルゴリズムは、伝統的な暗号アルゴリズムで、冒頭の例で紹介した置換暗号も、共通鍵暗号アルゴリズムの一種です。暗号化と復号で同じ鍵を用います(あるいは、暗号化の鍵から復号鍵を計算できたり、逆も計算できたりします)。共通鍵暗号アルゴリズムのセキュリティは、鍵(秘密鍵:secret-key)を秘密にしておくことにかかっているので、鍵が漏れてしまったら、セキュリティは保てなくなってしまいます。

秘密鍵をKey_secret、平文をM、暗号分をCとしたとき、共通鍵暗号アルゴリズムは以下のように表せます。

  • Encrypt(Key_secret, M) = C
  • Decrypt(Key_secret, C) = M
共通鍵暗号アルゴリズムでは、同一の秘密鍵を用いて、暗号化及び復号を行います。

図2-2 共通鍵暗号アルゴリズムにおける暗号化と復号の模式図

2.1.3. 公開鍵暗号アルゴリズム

公開鍵暗号アルゴリズムは、暗号化に用いられる鍵と復号に用いられる鍵が異なるように設計されています。さらに、復号鍵は、暗号化鍵から現実的な時間内で計算できないようになっています。ですから、たとえ暗号化の鍵が漏れてしまったとしても、対応する復号鍵を知らないと、メッセージを復元することはできません。さらには、暗号化の鍵を公開しておくことで、誰でも暗号文を作ることができます。この場合、復号鍵を知っている本人だけが、暗号文を復号することができます。そのようなことから、暗号化鍵を公開鍵(public-key)、復号鍵を私有鍵(private-key)と呼びます。(私有鍵を秘密鍵と呼ぶこともありますが、ここでは対称アルゴリズムにおける秘密鍵=secret-keyと区別するために、私有鍵と記述します)

公開鍵をKey_public、私有鍵をKey_private、平文をM、暗号分をCとしたとき、公開鍵アルゴリズムは以下のように表せます。

  • Encrypt(Key_public, M) = C
  • Decrypt(Key_private, C) = M
公開鍵暗号アルゴリズムでは、公開鍵と私有鍵のペアを用います。一方で暗号化したものは、他方でしか復号出来ません。(例)公開鍵で暗号化し、私有鍵で複合します。

図2-3 公開鍵暗号アルゴリズムにおける暗号化と復号の模式図

ところで、暗号化鍵を秘密にして、復号鍵を公開するとどうなるでしょうか?これは、電子署名で用いられます。

無料小冊子のお申込みはこちら

株式会社システム計画研究所のオフィシャルサイトはこちら

当サイトへのご質問及び安全・安心・信頼のシステム開発に関するご相談はこちら

通信・ネットワークシステムの開発マネージメント情報サイト「通信・ネットワークシステム開発.COM」はこちら

サーバ監視・ネットワーク監視ツール isNetSentry-S のサイトはこちら