電子証明書には、発行者の電子署名がなされており、その電子署名は「公開鍵暗号」が使われていることについてはすでに簡単に紹介しました。実は電子署名に限らず、公開鍵暗号は電子証明書には欠かせない技術なのです。今回はこの公開鍵暗号について説明します。
「暗号」というと推理小説やスパイ映画で使われるイメージを持っている方も多いかと思います。また、世界中の数学者やコンピュータ技術者が研究対象としているような、とても難解なものに思われている方もいるかもしれません。しかし、暗号の仕組みは決して難しいものではありません。実際に簡単な暗号を作ってみましょう。
たとえば、「相手に伝えたい言葉をローマ字にして、それぞれの文字を3 文字後ろにずらす」というルールを使うと、次のように暗号化ができます。
これはとてもシンプルですが、暗号として機能しています。もし、当事者以外が暗号文を入手できたとしても、暗号を元に戻すのにはそれなりの時間と労力が必要になるでしょう。なぜなら、当事者以外は「3 文字ずらす」ことが暗号のルールになっていることを知らないからです。
これは公開鍵暗号方式ではなく、もうひとつの暗号方式である「共通鍵暗号方式」とよばれるものです。
さて、共通鍵暗号方式と公開鍵暗号方式の違いを説明する前に、今の例を使って暗号で使われる独特な用語を簡単に整理してみましょう。
これだけは知っておこう!
暗号で使われる用語について
次の6つの言葉を覚えておきましょう。
平文 (ひらぶん) |
第三者には知られることなく相手に伝えたい情報で、暗号化されていないデータのこと。 |
暗号文 | 平文を暗号化したデータのこと。 |
暗号化 | 平文を第三者にはわからないようにすること。 |
復号 | 復号暗号化された情報を元に戻すこと。 |
鍵 | 暗号化や復号に使う情報。 |
アルゴリズム | 暗号化や復号を行うためのルール。インターネットで使われているアルゴリズムにはいくつかの方式があり、それらはすべて公開されている。 共通鍵暗号方式:DES、AESなど 公開鍵暗号方式:RSA、DHなど |
なお、鍵を知らない第三者が暗号文から平文を割り出すことは、 一般的には復号ではなく、「解読」とよんで区別されています。こ れらの言葉を今の例に当てはめると次のようになります。
それでは共通鍵暗号方式の特徴について説明しましょう。
共通鍵暗号方式
暗号化と復号に同じ鍵を使う
今の例でいえば、A 君とB さんは二人とも「3 文字」という同じ鍵を用いて暗号化と復号を行っています。この「3 文字」が共通鍵です。このように、暗号化や復号に共通の鍵を使う方式を共通鍵暗号方式といいます。
共通鍵暗号方式では、当事者の双方ともが暗号化と復号を正しく行うために、何らかの方法であらかじめ共通鍵を相手に渡しておく、あるいは知らせておく必要があります。
共通鍵暗号方式には「共通鍵を相手に渡さなければならない」ことに二つの問題があります。
第一の問題点は、暗号文をやりとりしたい相手の人数分だけ個別の鍵を用意しなければならないということです。たとえばA 君が、B さん以外の人と暗号文をやりとりしたいなら、さらに共通鍵を用意しなければなりません。しかも、すでに持っているB さん用のものを流用することはできません。なぜなら、A 君がB さん以外の人と通信している暗号文をB さんが復号できてしまうからです。
第二の問題点は、共通鍵は秘密のうちに相手に渡さなければならないということです。直接会って手渡しができれば良いですが、電子メールなどの暗号化されていない通信手段を用いると、通信の途中で共通鍵が漏えいする可能性があります。
共通鍵暗号方式の場合、通信の秘密は共通鍵のみで守られているので、共通鍵を相手に安全に渡すことができなければ、暗号化通信が行えないのです。
公開鍵暗号方式
暗号化と復号に異なる鍵を使う
このような共通鍵暗号方式の問題点を解決する暗号方式が、公開鍵暗号方式です。
共通鍵暗号方式では、暗号化と復号に単一の鍵を使用します。
これに対して、公開鍵暗号方式は「公開鍵」と「秘密鍵」という二つの鍵を使って暗号化や復号を行います。
公開鍵と秘密鍵は二つで一組のペアになっており、一方の鍵で暗号化した平文は、ペアのもう一方の鍵を使わないと復号できない、という関係になっています。
つまり、公開鍵を使って暗号化した平文は、ペアとなっている秘密鍵によって復号します。
なお、公開鍵暗号アルゴリズムの中には、秘密鍵を使って暗号化することができるものもあります。秘密鍵を使って暗号化した平文は、ペアとなっている公開鍵を使うと復号できます。電子証明書の基本的なはたらきはこの原理に基づいています。詳しくは第8 話で説明します。
公開鍵は広く一般に配布することを前提としているからです。
たとえば、ウェブサイトからダウンロードしてもらったり、電子メールに添付して送信する、といった手段で不特定多数の人に渡す(=公開)することもできます。一方秘密鍵は自分だけが大切に安全に保管しておかなければなりません。
問題はありません。
なぜならば公開鍵と秘密鍵はペアになっており、秘密鍵は自分だけが持っているからです。
たとえば、A 君は自分の公開鍵を配布すれば、誰でもA 君に対して暗号化通信を行えます。悪意のあるハッカーが公開鍵を入手したとしても、暗号文を復号できるのは、秘密鍵を持っているA 君だけですので、通信内容がハッカーに漏えいすることはないのです。
公開鍵暗号方式のアルゴリズムにはいくつかの種類がありますが、現在インターネットで使われているものは、公開鍵から秘密鍵を割り出すことや、秘密鍵を使わずに暗号文を解読することは、スーパーコンピュータを使っても膨大な年数が必要といわれています。したがって、現実的にはほぼ不可能です。
実際には共通鍵暗号方式も多くの用途で使われています。
また、公開鍵暗号方式と共通鍵暗号方式を組み合わせる場合もあります。共通鍵暗号方式は公開鍵暗号方式と比べて暗号化や復号の速度が非常に速いという特長があるためです。
第6話 まとめ
- 暗号方式には共通鍵暗号方式と公開鍵暗号方式があります。
- 共通鍵暗号方式では暗号化と復号に同じ鍵を使います。
- 公開鍵暗号方式では公開鍵と秘密鍵のペアを使います。一方の鍵で暗号化した情報はペアのもう一方の鍵を使わないと復号できません。
- 電子証明書は公開鍵暗号方式を利用しています。