2017年3月6日月曜日

量子コンピューターがあなたのパスワードを破る日

 世の中では量子コンピューターが熱い話題を振りまいています。

 量子コンピューターの研究会が無数に開かれて、量子コンピューターを製作する(と称する)企業が相次いで立ち上がり、グーグルやインテルやマイクロソフトなど業界大手が資金をどばどば注いでいると報道されます。

 量子コンピューターの時代が到来すれば、既存のコンピューターの原理的な限界が突破され、超高速演算が可能になり、分子構造が瞬時に解析され、今の通信技術に使われている暗号は片っ端から解読される、などと景気のいい噂が飛び交います。

 しかしその量子コンピューターとはいったいどんな代物なのでしょうか。なぜそのような期待が集まっているのでしょうか。

 ここでは量子コンピューターの基本を、本当に基本から紹介しましょう。実は量子コンピューターがどういうものになるのか、誰も正確なところを知りません。



量子コンピューターの「り」は量子力学の「り」

「量子力学」は、原子や電子や分子や素粒子など、ミクロな粒子やミクロな物体の振る舞いを説明する物理学です。

 原子や電子や分子や素粒子などのミクロな存在について知られるようになってきたのは20世紀初めですが、そういうミクロな世界はそれまで人類の知っていたマクロな世界と全然違いました。なにしろ、「2個の物体は、同時に同じ場所に存在できない」とか、「物体と波は別物」といった常識すら通用しないのです。

 驚いた人類は、そういうミクロな世界の物理法則を手探りで突き止め、量子力学を創始しました。量子力学の基本原理は1926年前後のほんの数年間で出揃い、以後100年近く、ほとんど修正なしで使われてきました。

 量子力学によると、ミクロな粒子やミクロな物体の状態は「波動方程式」にしたがって変化します。ボールや天体やバネや人体などマクロな物体の変化を計算するには運動方程式を用いますが、ミクロな世界を支配するのは波動方程式です。



量子コンピューターとはだから何?

 現在の標準的なコンピューターは、データを、2進法という01の羅列で表現します。例えば「A」という文字は「01000001」という具合です。最小のデータは「0」または「1」の値をとる1桁の数値で、これは「ビット」と呼ばれます。

 コンピューターの行う複雑で膨大な処理も、01に施す単純な演算の組み合わせです。例えば「A」という文字データを「a」という文字データに変える単純な処理は、「01000001」というデータを「01100001」(a)に変える単純な演算で実現できます。

 コンピューターという物体は複雑で膨大な電子回路ですが、10は、この回路の電圧や電流などのオン・オフで表現されます。乱暴にいうと、コンピューターが「A」を「a」に変える処理をしているときには、コンピューター内の8本の信号線を「01000001」という8ビットの電流が流れていき、トランジスタでできた論理回路を通り抜けるうちに「01100001」に変えられます。

 量子コンピューターは、ビットを信号線の電圧や電流ではなく、ミクロな粒子や物体の状態で表現します。この状態は「キュービット」または「量子ビット」と呼ばれ、波動方程式にしたがって変化します。どういう粒子や物体をキュービットとして選ぶかは、研究者の好みによります。「量子ドット」「電子スピン」「核スピン」「超電導回路の電流」「イオンのスピン」などなど、あらゆる量子力学的おもちゃがキュービット候補として試されています。

 そして、キュービットにかける磁場やマイクロ波などをうまく調整すると、行いたいデータ処理や演算のための波動方程式が準備できると期待されます。

 つまり、量子コンピューターは

1)何らかのキュービットでデータを表現する。
2
)演算を行う波動方程式をどうにかして物理的に準備する。
3
)キュービットを波動方程式のもとで変化させる。
4
)演算結果のキュービットを読み取る。

という手順で演算や計算を行うのです。



量子コンピューターは何の役に立つ?

A」を「a」に変える処理には、量子コンピューターでなくても、普通のコンピューターで十分です。もし量子コンピューターが実用化されても、みなさんがこの記事を読むために使っているスマホやPCやタブレットが、量子コンピューターに置き換わることはまずないでしょう。

 量子コンピューターはある種の計算に威力を発揮すると期待されています。「フーリエ変換」「因数分解」「離散対数」などなどといったたぐいの計算です。

 普通のコンピューターに大きな整数を1個与えて、その因数を探して因数分解するよう命じると、大変時間がかかることが知られています。数が大きくなると、因数を探す計算ステップが爆発的に増えてしまうのです。

 けれどもその計算を量子コンピューターに与えると、数が大きくなっても、計算ステップがさほど増えないことが分かっています。だから巨大な数を因数分解させると、量子コンピューターは普通のコンピューターを圧倒すると期待されています。

 普通のコンピューターにとって因数分解が苦手だという事実は、暗号通信に利用されています。暗号通信とは、私たちがパスワードやカード情報を送信する際に使われまくっているコンピューター技術です。

 現在主流の暗号技術では、暗号解読の手順に因数分解が組み込まれています。あらかじめ因数を知っている解読者ならただちに暗号解読できますが、因数を知らない盗聴者は、因数分解に長時間かかります。コンピューターが因数分解するのに時間がかかるおかげで、私たちは盗聴者に解読される心配なしにネットで買い物できるのです。

 けれども、大きな数を素早く因数分解できる量子コンピューターが実用化されたなら、既存の暗号通信方式はもう危くて使えません。何らかの新しい暗号通信技術が必要になるでしょう。既存の暗号通信に代わるのは、量子技術に基づく暗号かもしれません。



だが量子コンピューター製作はとてつもなく難しい

 しかし量子コンピューターの第1段階としてキュービットを用意するためには、とんでもなく高度な技術が要求されます。量子ドットや電子スピンなどのキュービット候補を単に並べるだけでは駄目で、全体が1個の波動関数で表わされる「エンタングルメント状態」あるいは「量子もつれ状態」にしないといけません。エンタングルメント状態でないと、望みの波動方程式にしたがって変化しません。

 現在、トラップしたイオンをレーザーで励起させる手法で、10個以上のエンタングルメント状態にあるキュービットが達成されています。一方、PCやスマホのCPU64ビットと銘打ったものが普通で、キュービットの世界記録はこれに届きません。50キュービット以上でないと量子コンピューターは有利にならないという見積もりもあります。普通のコンピューターと競争しうる量子コンピューターはまだ先という印象です。

 そしてキュービットは増やせば増やすほど不安定になります。周囲の熱雑音を受けると、エンタングルメント状態でなくなってしまいます。(これは、ミクロな粒子や物体をたくさん集めるとマクロな物体となってしまって量子力学の適用範囲外になるため、という見方もできます。)

 つまり量子コンピューターは、普通のコンピューターに対抗できるほどキュービットを集めると、量子コンピューターでいることが困難になるという、本質的な問題を抱えているのです。

 ともあれ、現在、研究者は競ってキュービット製作に取り組んでいます。キュービットの数と、安定して存在できる時間は伸びつつあります。量子コンピューターが完成に近づいているという人もいます。

 量子コンピューター分野の急速な発展を注視しましょう。



量子コンピューターの研究は観測問題ともエンタングルしてる

 ところで量子力学は、その創始期から、欠陥を抱えた体系であることが指摘されています。量子力学の欠陥問題は「観測問題」と呼ばれます。さまざまな言い表し方がありますが、端的にいうと、「ミクロな物体はいくつ集めるとマクロになるのか」「量子力学が適用できるのはどこまでか」という問題です。この問に、現在の量子力学は答えることができません。

 量子コンピューターの実現可能性は、この観測問題と重なります。量子コンピューターの実験は、観測問題の実験です。量子コンピューターの研究をする人は、同時に観測問題に取り組んでいるのです。量子コンピューターの研究がこの問題に、解答、あるいは解答につながる洞察を与えることは疑いありません。

 量子コンピューターが実現できてもできなくても、その研究により、量子力学の基礎的な理解が進みつつあるといえます。

 観測問題という、100年近く未解決だった宿題がついに解ける日が来るかもしれません。

 

IBM2015年に発表した4つのキュービットから成る量子回路。 Photo by IBM Research, under CC BY-ND 2.0.

 

量子力学はミクロな世界の物理法則。

 

量子コンピューターは、データをキュービットで表現する。

 

0 件のコメント:

コメントを投稿