GnuPG について (12) 暗号化したのは誰?

従来型の対称暗号の弱点をいくつか克服するために生まれた公開鍵暗号だが、公開鍵暗号ならではの弱点というものもある。
計算量が膨大になるため、とにかく遅いことがまず第一にあげられる。そしてもう一つ、誰でも暗号化できるので、誰がそのデータを暗号化したのかわからないという弱点がある。

今回は、この「誰が暗号化したのか分からない」という弱点を取り上げる。

公開鍵暗号の計算が遅いと言う弱点は誰にでも共通する原理的な弱点なので、常につきまとう問題だ。
その一方、「誰が暗号化したのか分からない」という弱点は、運用方法によっては問題にならない。

たとえば、公開鍵をもっている相手が一人だけだという場合。相手が一人ならわざわざ公開鍵暗号を使う必要などないと言われるかもしれないが、世の中、いろいろなお約束事があるものだ。一対一のデータやり取りで公開鍵暗号を使う場面は決して無いとはいえない。この場合、データを暗号化する相手は一人しかいないので、「誰が~」問題は生じない。
あるいは、他の方法で、データを暗号化した相手を確認できる場合。暗号データの入ったフロッピーを手渡しされた場合などだ。この場合も、誰がデータを暗号化したのか分かっているのでこの問題は生じない。

「誰が暗号化したのか分からない」という問題が発生するのは、
・二人以上の人に公開鍵を渡してしまい、なおかつ
・データのやり取りで一々相手を厳密に確認していない(できない)
場合である。公開鍵をその名の通りネットなどで公開してしまい、メールでデータをやりとりするような場合が該当する。

PGP の開発者の Philip Zimmermann が反核運動家だったことを思い出してほしい。
世界中の仲間と連絡を取るために、彼は当然、自分の公開鍵をネット上で公開する。
Philip Zimmermann にアドバイスしたい人はその公開鍵でデータを暗号化し、彼にメールする。
ところが、単に公開鍵暗号を使ったのでは Philip Zimmermann は、それが本当に仲間からのメッセージなのか、彼を罠にはめようとしている敵によって偽造されたメッセージなのか、確認のしようがないのである。
メールの発信元など簡単に偽造できるのだから。

対称暗号なら、パスワードを知っているのは相手一人なので、このような問題は起きないのだが(しかし、それ以前に大勢と暗号通信するのが困難という問題がある)。

というわけで、このような状況で公開鍵暗号を使用する際には、「相手を確認する」という作業が必要になる。
データを送ってきた人に直接電話をしてメールを送ったかどうか確認するという方法もあるかもしれない。
しかし、Philip Zimmermann のように世界中に仲間が散っている場合はどうする? (そういえば、敵も世界中に散っているなと、ふと思った。)

こういった場合、公開鍵暗号の応用技術の一つである「電子署名」が使われることになる。

電子署名が必要になる背景を説明するだけで長くなったので、続きはまたの機会に。

この背景説明をすっ飛ばして電子署名の説明をしている文書が多いので、私はむしろここに重点を置いてみた。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック