2010年04月23日

共通鍵暗号と公開鍵暗号

私たちの生活を支えている暗号
今日は暗号の話。
暗号と言うとイメージがあまり良くありません。
映画の中で怪しい人物が使っていたり、マニアックな印象も強いかもしれません。

しかし、
暗号は私たちの生活に欠かせない重要な役割を果たしています。
実際、私たちは毎日、何度も暗号の恩恵を受けて生活しています。

暗号と呼ぶよりもセキュリティーと表現したほうがなじみやすいかもしれませんが
わたちたちが普段使っている固定電話、FAXは暗号化された通信を行っています。
もちろん電話の親機と子機の間でも暗号化された信号を電波に乗せて通信しています。

固定電話だけでなく携帯電話ももちろんそうです。
暗号化されない情報が電波で町中を飛び交っていては大変ですよね。
携帯電話で通話するとき、メールをする時、情報はすべて暗号化されています。

インターネットを通じてこのブログを読んでいるということは
そのパソコンも当然暗号化された信号でやり取りしています。
インターネットで通信販売などを楽しんでいる方は
その安全性を暗号によって支えられているといってもよいでしょう。

一歩外に出ても
買い物をする時、銀行を利用するとき、電車に乗る時
いつでも暗号は私たちを影で支えてくれています。

暗号の活躍は紹介しきれませんが私たちは暗号だらけの世界で生活していることがお分かりいただけたでしょうか。

では最もポピュラーな共通鍵暗号公開鍵暗号について解説します。

共通鍵暗号
共通鍵暗号という名前はあまり知られていませんが
共通鍵暗号はおそらく誰でも最初に思いつく暗号のシステムです。

例えば
太郎くんが花子さんに手紙を送ろうとしています。
送りたいメッセージは
「ダイスキ」です。
この「ダイスキ」という文章をそのまま送ったのでは
途中で誰かに中身を見られてしまったら内容がばれてしまいます。
それを防ぐために太郎くんは
「ダイスキ」という文章を予め「キスイダ」という文章に変換、つまり暗号化して
この「キスイダ」という文章を花子さんに送ります。
受け取った花子さんは前もって太郎君と決めておいたルールを使って
「キスイダ」を元の文章に変換しなおします。これが復号です。
花子さんは「キスイダ」を「ダイスキ」に変換し
結果、太郎君のメッセージは無事に花子さんに届けられました。

一方この場合、途中で第三者が文章を盗み見たとしたらどうでしょうか。
「ダイスキ」と、そのまま送った場合は中身を見られてしまった時点でこの通信は失敗です。
しかし「キスイダ」と暗号化された文章なら
他人に見られたとしても、意味不明な単語を見られたところで内容を読み取られる心配はありません。
つまり太郎くんの「ダイスキ」というメッセージは守られたまま
無事に花子さんに届き、通信は成功です。

同じ「キスイダ」という文章を読んで
解読できない第三者と解読できる花子さんの違いは
事前に太郎くんと「これから送る手紙は暗号化して送るから文章を逆さから読んでね」
というやり取りが行われていたことです。
この事前のやりとり「逆さから読んでね」こそが共通鍵暗号のカギとなります。

これが共通鍵暗号です。
暗号化するときと復号するときに同じシステムを鍵として使うことから共通鍵暗号と呼ばれています。
この例では文章を逆さにする仕組みを使って暗号化し、
同じようにその仕組みをもとに複合しています。

共通鍵暗号の欠点
これで安全な通信が実現したわけですが
この共通鍵暗号、ひとつ弱点があることに気付くでしょうか。
この致命的な弱点がある以上、共通鍵暗号は100%安全な暗号とは言えません。
その弱点とは
事前のルール「逆さから読んでね」をどうやって太郎くんと花子さんで共有するか、という問題です。
言うまでもなく2人の「逆さから読んでね」というやりを第三者に知られてしまっては
その後の暗号は何の意味もなくなってしまいます。
それでは誰にも知られずに「逆さから読んでね」というルールを共有することができるでしょうか。
実は、暗号通信の準備段階であるこの時点では
逆さから読んでね」という通信も安全に行うことはできません。
これが共通鍵暗号の最大の欠点であり、共通鍵暗号の限界とも言えます。
事前のルールを共有する時点で1度だけどうしても危ない橋を渡らなければならないが
それさえ成功すれば後は安全に通信を行うことができる、これが共通鍵暗号の特徴なのです。
逆さから読んでね」、この一言さえ安全に届けられれば完璧な暗号となるのにそれが不可能。
おしいですよね。おしいところまでいっているのですが非常に残念な暗号システムです。

公開鍵暗号
そこで登場するのが公開鍵暗号です。
公開鍵暗号の仕組みは非常に巧妙です。
まず暗号は手紙を受け取る側で作られます。
この場合、花子さんが暗号を作ります。
花子さん側で作られる暗号は大きく分けて2つのパーツで構成されています。
1つは錠前。南京錠の様な錠前をイメージしてください。
もう1つはその錠前をあけるための鍵です。
この錠前を公開鍵暗号公開鍵
それを開けるための鍵を公開鍵暗号秘密鍵と言います。
花子さんは秘密鍵だけを自分で大事に保管し、公開鍵である錠前を公開してしまいます。
錠前を公開する、とは
その錠前をたくさん作り、誰にでも「ご自由にお持ちください」と渡してしまうということです。
これで、その錠前は誰でも簡単に堂々と手に入れる事ができます。
太郎くんも他の人と同じように花子さんから錠前を手に入れます。
太郎くんは自分が書いた手紙に、花子さんからもらった錠前でロックを掛けます。
このロックが暗号化と考えてください。
このロックがかかっている以上、第三者は手紙の中身を読むことはできません。
ロックがかかった状態の手紙を受け取った花子さんは
自分だけが持っている鍵で手紙をあける。
これで暗号通信は成功です。
花子さんは最初に作った秘密鍵を一度も自分の手元から離していません。
共通鍵暗号の「逆さから読んでね」というルールは受け渡しの時点で危険がありましたが
今回の秘密鍵は最初から最後まで全く外の世界に触れる事がないので安全です。

公開鍵暗号の欠点
それでは公開鍵暗号の弱点についてはどうでしょうか。
お気づきの通り
第三者が悪意を持って公開鍵を入手した場合、
そこから花子さんの秘密鍵と同じ、いわゆる合鍵を作ることができるのではないか、
という問題があります。
事実、それは可能です。
可能ですが非常に時間がかかるというのがポイントです。
例えば国家機密になる様な重要な通信も公開鍵暗号が使われていますが
その公開鍵から合鍵となるものを作るためには数兆年かかるといわれています。
地球が誕生してまだたったの46億年です。
仮に通信されている文章のたった一部分を解読するのに数兆年かかったとしたらどうでしょう。
文章全体としてはいつになったら解読できるのか想像もつきません。
これは「通信は守られた」と考えてよいのではないでしょうか。
私のクレジットカードの暗証番号を何万年も何十万年もかけてやっと解明したところで意味がありませんよね。
このような理由から、
公開鍵から合鍵が作れるという事実は公開鍵暗号の欠点とはなり得ないのです。
これが、公開鍵暗号が完全な暗号と言える根拠です。

これまでの説明では触れていませんが
実は、公開鍵暗号にも欠点はあります。
この欠点は安全性に関するものではなく公開鍵暗号が安全であることには変わりないのですが
この公開鍵暗号公開鍵秘密鍵を作るのにとても手間がかかるのです。
そして秘密鍵公開鍵をあけるのにも手間がかかるのです。
いくら完璧とは言え
全ての通信を公開鍵暗号で行うのはあまりにも効率が悪く、あまり現実的な方法ではありません。

実際に使われている暗号システム
そこで毎回は無理だが、1度だけなら公開鍵暗号を使った安全な通信が行えるとしたらどうでしょう。
そのたった1度の安全な通信をどのように有効利用したらよいでしょう。
簡単に言えば、そのたった1回の通信で何を送るか、です。

答えは、「逆さから読んでね」です。
共通鍵暗号の欠点を思い出してください。
逆さから読んでね」、この一言さえ安全に届けられれば完璧な暗号となるのにそれが不可能。
公開鍵暗号の安全性を利用すればこの共通鍵を安全に届ける事ができます。
このように共通鍵暗号の唯一の欠点を解消することによって
その後の通信は共通鍵暗号によって安全に行うことができます。

こうやって公開鍵暗号共通鍵暗号を上手に組み合わせることによって
私たちの毎日の生活が守られているわけです。
もちろん他にもたくさんの暗号が私たちの生活を支えていますが
要するに、当たり前の様な安全な生活も
影で守ってくれている人たちがいるというお話です。

posted by D at 07:40| Comment(0) | TrackBack(0) | 数学 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。