マトリョーシカ的日常

ワクワクばらまく明日のブログ。

秘密がなければ秘密は持てない/「暗号解読(下)」

 f:id:kyokucho1989:20160207180323j:plain:h400

 先週の木曜から右手の人差し指が痛い。激痛と言うほどではなく、じんわりやんわりと痛い。週末を経てだんだんと腫れが大きくなってきた。こわいかにと、整形外科にいった。大変盛況しており、女性の事務員が十人くらいいて、そこそこ忙しそうにしていた。十分ほど待つと診察に呼ばれて先生と対面した。彼は五秒も見ないうちに「○○炎(なんかの炎症)ですね」と判断し、私は抗生物質をもらった。2000円かかった。

 暗号の話のつづきを書く。

 暗号にとって、鍵配送問題は鬼門である。暗号を使った通信を行う場合、必ず事前にルールを決めて使用者の間で共有しなければならない。対面できるなら耳元で内緒話をすればいいが、実際は相手は遠くにいるため船や飛行機を使ってコードブックなどを郵送していた。これが問題がだった。暗号通信が増えれば増えるほど、運ぶべき鍵(ルール)も増える。輸送費がばかにならないのだ。それを解決しようと立ち上がったのが、ホイットフィールド・ディーフィーだった。彼は一九四四年生まれのフリーランスな暗号家だ。鍵配送問題に興味をもった彼は、スタンフォード大学教授のマルティ・ヘルマンと同大学のラルフ・マークルと一緒に問題解決を目指した。

 鍵配送問題がそれほど大問題になるのは、まさに八方ふさがりの状況だからである。(中略)つあり、あらかじめ秘密(鍵)を共有していなければ、秘密(暗号文書)はやりとりができないというジレンマに陥ってしまうのだ。

 鍵配送問題をやっつけるのは不可能に思えた。どれほど何重にプロテクトをかけても最後の鍵には鍵をかけられないからだ。暗号の話にたびたび登場する人物にアリス・ボブ・イブの三人がいる。彼らは架空の人物で、それぞれが暗号送信者・受信者・盗聴者である。これからは彼らを使って話を進めよう。

 このようなストーリーを考える。アリスは秘密文書を箱に入れ南京錠をかけてボブに送る。ボブはそれを受け取ると箱にもうひとつの南京錠をかけ、アリスへ送り返す。アリスは自分がかけた南京錠を開け、ボブに再度送る。ボブは自分の鍵をはずし文書を読む。「二回も送って面倒だな」と思っただろうか。だが、こういう手続きをすると相手の南京錠の鍵を持つ必要がなくなる。鍵配送問題は解決されたのか!?

 そうではなかった。実際のシステムに組み込むには錠前ではなく数学が必要だ。その場合は鍵をはずす順番が大切になる。「掛けた順序と逆順で外す」という基本原則が重要なのだ。一本の鉄格子に並列にかける南京錠とは異なり、数学による暗号化は箱に入れ子式に鍵をかけることである。文書を小さい箱に入れ鍵をかけ、それを大きい箱に入れ鍵をかける。取り出す時はかけたときは反対の順序で外さなければならない。しかし、上記のアリスとボブの鍵交換では「掛けた順序と逆順で外す」はなりたたない。ディーフィーは落ち込んだが、めげずに鍵配送問題を避ける方法を探し続けた。そのときに着目したのが一方向関数である。

 一方向関数は作用させるのは簡単だが、解除するのは非常に難しいという性質を持つ。(中略)このため一方向関数は、”ハンプティ・ダンプティ関数”と呼ばれることもある。

 一方向関数はモジュラー関数に多く見受けられる。あの電卓のMODボタンである。数を除したときの余りを求めることができるが、その余りを予測するのはなかなか難しい。ディーフィーはそこに目をつけて、
Y^x (mod P)
というモジュラー関数を用いることにした。これはYのx乗したものをPで割った時の余りを出す関数である。詳細は省くがこの関数をアリスとボブが数字のやりとりをしながら使用することで、イブに盗聴されても問題ない通信方法が完成したのである。この暗号システムは「鍵交換システム」と呼ばれた。鍵交換システムは鍵配送問題を解決した暗号手段であったが、相手が文書を受け取り送り返すまで通信にラグが生じるという問題があった。メキシコの娘が朝もやの中で暗号を送信しても、カムチャッカの若者はまだきりんの夢をみており、すぐに鍵をかけて送り返すことができない。鍵のリレーは続かない。

 これを解決するのが公開鍵暗号である。

 思いの外長くなってしまった。続きは次回にしよう。

暗号解読 下巻 (新潮文庫 シ 37-3)

暗号解読 下巻 (新潮文庫 シ 37-3)