いわゆる暗号化の技術には,大きく分けて「共通鍵暗号方式」と「公開鍵暗号方式」と呼ばれるものがある。ただし,インターネットでデータを送受信する場合,一般には「公開鍵暗号方式」が利用される。Windows OSもこの暗号方式を様々な個所で採用している。それにしても,なぜ共通鍵暗号方式をインターネットの世界で利用するのは好ましくないのだろうか。また,どうして公開鍵暗号方式なら,当事者にしか解読できないと言い切れるのだろうか?

 よく知られているように,インターネットでは常に「盗聴」のリスクが存在する。そのため,電子メールやインターネット・ショッピングなどで,パスワードやクレジット・カード番号を安全に送受信するには,通信データの「暗号化」が絶対に必要である。

 しかし,暗号化したデータは本当に当事者にしか解読できないのだろうか。本音をいうと,絶対に安全とは言い切れない気もするが,現時点では安全を裏付ける十分な根拠が示されている。

 とはいえ,過去を振り返ってみると,暗号の発展の歴史は「暗号破り」の歴史でもあった。「現在採用されている暗号技術がどこまで安全なのか」「落とし穴は本当にないのか…」と少なからず不安を感じている読者もいることだろう。今回は,なぜ暗号が当事者にしか読めないとされるのか,その理由を暗号化の歴史もふまえて解説していきたいと思う(図1)。

図1●暗号化したデータは第三者には読めない<br>暗号化していないと,インターネット上のデータは第三者に丸見えとなる。そこでデータを暗号化して送受信するのだが,なぜ暗号化したデータは当事者にしか読めないのだろうか?
図1●暗号化したデータは第三者には読めない
暗号化していないと,インターネット上のデータは第三者に丸見えとなる。そこでデータを暗号化して送受信するのだが,なぜ暗号化したデータは当事者にしか読めないのだろうか?
[画像のクリックで拡大表示]

暗号化に必ず必要な「鍵」

 暗号化といっても,実はその種類は膨大な数になる。それこそ歴史的には,紀元前にさかのぼるものまである。しかし,どのような暗号化にも,ほぼ共通した考え方が存在する。それは暗号を解読するための「鍵」だ。基本的な暗号方式は,鍵を持った者だけが暗号文を復号化できるように作られている(図2)。

図2●暗号化と復号化
図2●暗号化と復号化
暗号化と復号化には必ず「鍵」が必要になる。ある「鍵」を使って暗号化した「暗号文」は,同じ鍵を使わないと元の文に復号化できない。

 暗号化と復号化には必ず「鍵」が必要となるが,現在の暗号化には,大きく分けて2種類の方式がある。1つは,当事者同士が同じ秘密の鍵を用いる「共通鍵暗号方式」。もう1つは,対になる2つの鍵を用意し,片方の鍵を一般に公開可能なものとする「公開鍵暗号方式」である。

 まずは,歴史的にも古くからある「共通鍵暗号方式」から説明していくことにする。