インターネット上で買い物をするとき、個人情報を守っているのは暗号だということをご存じだろうか?1994年、私たちがインターネット上で日常的に使っている暗号が、一瞬にして解かれてしまう可能性が指摘された。暗号の歴史は、開発者と解読者の戦いの歴史でもある。今、絶対に破られない暗号の開発が始まっている。
悲劇の女王メアリー
“ In My End Is My Beginning(我が終わりに我が始まりあり)”
1587年、幽閉されていた部屋のクッションに刺繍されていたこの言葉を残して、スコットランド女王メアリーが斬首刑に処された。メアリーは自分を幽閉していたイングランド女王、エリザベスを暗殺しようとしていた。その計画が明るみに出、罪を問われたのだった。
暗殺計画を記したメアリーの手紙は、ビール樽の栓の中に隠されて運ばれていた。さらに、万が一敵の手に渡ったときのため、文章は暗号化されていた。それにもかかわらず、手紙は密かに書き写され解読されたのだ。
メアリーは悲しいことに2つの点で誤ったのかもしれない。1つは手紙を運んだ従者の忠誠心を信じたこと。従者は二重スパイで、メアリーの手紙を敵方に渡していた。2つ目は暗号の力を過信したこと。暗号を使った安心感のためか、計画は詳細にわたって書かれていたという。
メアリーの暗号文は、当時のヨーロッパ最高の暗号解読者の手にわたり、ほどなく解読された。どの記号がどれくらいの頻度で出てくるかを調べる頻度分析にかかれば、メアリーの暗号は弱いものだったのだ。不完全な暗号を使うことは、まさに命取りになることがわかる。
暗号はいつの時代も、国や政治の運命さえも握っている。その歴史は古く、古代ローマの軍人・政治家 ジュリアス・シーザーは、アルファベットの文字を同じ方向にずらした暗号(例えばAをD、BをEに置き換える)”シーザー暗号”を使っていたことが知られている。
暗号はさまざまに姿を変え、進化してきた。特に戦争時には、暗号技術の開発や解読のために最先端の技術が活用され、多くの優秀な人材が起用された。現在のコンピュータの原案を考えたことで有名なイギリスのチューリングも、第二次世界大戦中には、ドイツが使っていた暗号(エニグマ)の解読に従事していた。
これらの暗号は、暗号文に潜む規則性をうまく見つけ出すことで解読されてしまう。私たちが現在、インターネット上で日常的に使っている暗号はどのように安全が守られているのだろうか。
解かれてしまう現代の暗号
メアリーの暗号が解読されてしまったのは、暗号に規則性があるためだった。「暗号が破られないためには、暗号化や、復号化(暗号文を元に戻す)に使うルールである“鍵”を、通信文の1文字ごとに変えるしかない」-この方法はシャノンによって提案され、ワンタイムパッドと呼ばれている。ワンタイムパッドは安全だが、暗号文の文字数と同じ数だけの鍵が必要になる。これらの鍵を、離れた場所にいる送信者と受信者の間で共有することに手間がかかるのが問題だった。
暗号化の“鍵”を送信者と受信者の間でどのように共有するのか。この問題を解決するために1976年、新たに考え出されたのが“公開鍵配送方式”だ。これまでの暗号化は“秘密鍵配送方式”と呼ばれ、送信者と受信者つまり、暗号化と復号化において暗号表など一つの鍵を共有するのに対し、公開鍵配送方式では暗号化のための“公開鍵”と復号化のための“秘密鍵“を用意する。暗号化のためだけに利用する公開鍵は盗聴者に知られても構わないのでインターネットを通じて配布することができる。現在インターネット上で日常的に使われている“RSA暗号”もこの方式を使っている。
RSA暗号は、現在のコンピュータが苦手なことを逆手にとった暗号だ。現在のコンピュータは、けた数の大きい数字を“素因数分解”するのに時間がかかる。素因数分解とは与えられた数字を、3や5など、その数自身と1以外で割り切れない素数に分解することをいう。
例えば、10433×16453の答えを得るのはやさしいが、200949083の素因数分解の結果を導くのは難しい。現在のコンピュータでも200桁の数を素因数分解するのに何年もかかってしまう。RSA暗号ではこの素因数分解の原理をうまく利用して、暗号文に潜む規則性を複雑にして、解読を難しくする。軍事用のRSA暗号になると、まともに解けば200億年以上かかるものもある。このようにRSA暗号は、けた数の大きい数字の素因数分解が、現実的な時間で解くことができないことを利用しているのだ。逆に、とても早く素因数分解を計算することができれば公開鍵から秘密鍵がわかってしまい、この暗号は解かれてしまう。そして1994年、その可能性が指摘されたのだ。
ミクロのコンピュータが暗号を解く
莫大な量の計算を一瞬で解いてしまう“量子コンピュータ”。現代のコンピュータとは全く違う方法で計算をする量子コンピュータは、以前からその可能性が指摘され、研究がされていた。そして1994年、この分野の研究者にとって大きな転機が訪れた。量子コンピュータを使って大きなけた数の素因数分解を一瞬で解くことができる計算手順、“ショアのアルゴリズム”が発表されたのだ。これが量子コンピュータと暗号の研究者の注目を集め、開発競争が激化した。
量子とは、光の粒や原子など非常にミクロなものがもつ性質を意味する。量子コンピュータはメモリなどを光の粒や原子などから造ったコンピュータだ。光の粒である光子や原子は、ミクロならではの性質、“重ね合わせの状態”という性質をもつ。これは1つの粒子が、0と1というように、2つの性質を同時にもつことを意味する。コンピュータのメモリなどにミクロの粒子を使って、重ね合わせ状態をコントロールすることができれば、少ないビットで多くの状態を表すことができる。これによって、今までは一つずつ処理していた計算を、一気に処理することができるのだ。
現在は数個のビットを並べた量子コンピュータができているが、数十個のビットを並べて計算ができるようになるまでに20年ほどかかると予測されている。これは、たくさん並んだ量子を同時にコントロールするのが難しいためだ。RSA暗号を解くことができる数百ビットの量子コンピュータがいつできるか、あるいは本当に実現できるのか、見通しはたっていない。
しかし、ショアのアルゴリズムによってRSA暗号は解かれてしまうという事実は研究者に衝撃を与えた。そこで量子コンピュータの基礎研究と同時に、量子コンピュータができても“絶対に解かれることのない暗号”の開発が始まったのだ。
光の粒でつくる絶対安全な暗号
最強の暗号は頑強な構造物で作られるわけではない。おもしろいことに、ちょっと触ると性質が変わってしまう繊細な光の粒、光子がその最有力の候補だ。
絶対安全な暗号をつくるために研究者たちが注目したのが、原子や光子などの量子だった。量子コンピュータに対抗する手段に、暗号を量子で作る“量子暗号”を選んだのである。量子コンピュータができて公開鍵から秘密鍵がわかってしまうと、やはり、公開鍵配送方式は使えない。安全に暗号文を送るには、量子を使った秘密鍵配送方式しかない。量子は重ね合わせの状態に加え、観測を行うと元の状態が壊れる性質がある。つまり、鍵の配送に量子を用いれば盗聴しようとした際に鍵は壊れてしまうため、盗聴者の存在に気づくことができ、盗聴できない暗号ができるのだ。
1984年、このアイデアを光子で実現できることが、ベネット (Charles H. Bennett) とブラサール (Gilles Brassard) によって提案された。この暗号は、二人の頭文字と年号をとって“BB84”と呼ばれている。BB84では秘密鍵配送を、光子一個一個を伝送することで解決する。この秘密鍵を伝送するのが光子の“偏光”である。偏光とは波打つ方向が一定であること。光子一個も、この性質をもっている。
BB84では盗聴者がいたとすると、受信者が受け取る光子は元の状態から変化してしまうため、盗聴者がいることに気づくことができる。その場合には、送った秘密鍵を捨て、再度、秘密鍵を送り直す。たとえ盗聴されても、盗聴されたものは実際に送りたい暗号文ではなく暗号化のための秘密鍵であるため、秘密がもれることはない。また、秘密鍵の配布の際に盗聴者がいないことが確認できれば、送信者と受信者で共有できた秘密鍵によるワンタイムパッド法を用いて暗号通信を行うことができる。
簡単な量子暗号は、すでに実用化の段階にきている。暗号の歴史は長い間、開発者と解読者の知恵比べだった。今や暗号は、単なる知恵比べのレベルを超え、物理学の原理に根ざしたものに発展しつつあるのだ。
取材協力/掲載
今井浩 東京大学教授
林正人 東京大学特任助教授/2006年3月