今回は前に投稿した素数とRSAに関したテーマに引き続き
量子コンピューターに対して紹介させていただきたいです。
前回の投稿の末に言った通りに現在広く使われているRSA暗号化は
量子コンピューターとショアアルゴリズムのため
もうすぐ使えなくなります。
今回の投稿で量子コンピューターの基本概念をまとめたあと
次の投稿には量子コンピューターとショアアルゴリズムに
立ち向かえる格子暗号化を浅い知識ですがまとめたいです。
「目次」
- 九尾のきつねが望んだデコヒーレンス
- IBM Quantum Experience
1. 九尾のきつねが望んだデコヒーレンス
もしかしてこの宇宙がコンピューターではないかと思った時がありますか。
このような考え方はコンピューターの胎動期からもありました。
1941年、世界最初でプログラミングが可能な汎用コンピューターを作った
ドイツのコンラート・ツーゼは宇宙が根本的に万能ディジタルコンピューター
だと主張しました。
ところで宇宙が今日使われているディジタルコンピューターという仮定には
計算性能的な面で限界がありました。
そろばん
計算、calculusはギリシャ語で小石を意味します。
人間にとって最初の計算は多分指と小石などを再配列することでしたよね。
私たちの部族に器は何個か、豚は何匹か。
そうして石などを木の棒などに挟み込むと動きやすく
石を失う心配も消えます。
木のコンピューター、そろばんの誕生でした。
そろばんは0という抽象的な表現もできました。
そうすると小石がそろばんの計算力を付いて行くためには
どれくらいの小石が必要ですか。今日のINTEL CPUと比較すると?
私たちは計算に使われる技術が計算能力の限界を決めることを知られます。
微視世界にある量子は量子ゆらぎのため確率の波動を持っています。
高いところが高い確率を表現します。
WMAP衛星が観測した宇宙からのマイクロ波背景放射
問題はディジタルコンピューターが宇宙全体の時空間、エネルギーを使用しても
宇宙をシミュレーションするには足りない点があります。
量子力学によって私たちの宇宙がディジタルのように
決定論的ではないためです。
今はとんでもなく巨視的なのでほとんど相対性理論の領域であるこの宇宙は
ビッグバンの初期にはそのすべてが量子力学の量子ゆらぎが作用する
点のような小さな微視世界でした。
微視世界で作用する量子ゆらぎのため初期宇宙の密度は均一ではなかったです。
どんな地点は他の地点より密度が高いでした。
そしてビッグバンのあと、重力はこの差を増幅させました。
これはすぐ銀河団のたねになりました。
そして銀河と太陽などの密度を決定しました。
重力が太陽の熱核反応を引き出したあと、放射するエネルギーのため
生命体たちが生まれました。そして今恒星系は
ひかりと重力のネットワークで繋がっていますね。
宇宙はまるで量子ゆらぎをカーネルとしてブーテイングされたOSのようです。
もちろん今も微視世界は私たちの周りのどこでもあります。
ところで量子単位の微視世界を見るためには
本当に立派な顕微鏡があっても無理です。
それはヴェルナー・ハイゼンベルクの不確定性原理があるためです。
不確定性原理によると、私たちは微視世界にある量子の位置と運動量
2つともを正確に知られません。ターゲット量子の位置を分かるためには
量子の一つである光子を射て感知する必要があります。
ところで光子に当たったその小さな量子は運動量が変えます。
巨視世界の野良猫は数多くの光子に浴びても路面で楽に眠っていますが..
そのため量子力学の微視世界で観測は多くの反復観測による
統計的な予測だけが可能です。
まだ位置と運動量が決定されなかったすべての可能性が重畳された状態を
量子コヒーレンス(Coherence)と言います。
この量子重畳は2章で実際の量子コンピューターとして確認します。
サイコロ
ちなみに巨視世界を記述する相対性理論の創始者、
アルベルト・アインシュタインは亡くなる時まで微視世界を統計的な確率で
記述する量子力学のメカニズムに激しく反対しました。
そして「神はサイコロを振らない」という言葉を残しました。
アインシュタインは微視世界を確率で記述する量子力学が
まだ人が宇宙を理解する知識が足りなくため生まれた
不安定な理論として見ました。
でも今まで量子力学は半導体、レーザー、核燃料を含めて
今日の技術に使われています。
その量子力学に基ついた量子コンピューターも確率が基本メカニズムです。
そして決定論的なディジタルコンピューターに比べて
量子コヒーレンスとして比較できない計算力を持っています。
ごばん
碁盤には361個の目があります。
ディジタルコンピューターに根付いた人工知能AlphaGOは
1202個のCPUと176個のGPUを持っていました。
相手が碁石を打ったその瞬間に自分に有利な分岐だけを計算して
必要ない分岐は捨てて計算しないはずですね。
これに反して量子コンピューターは量子重畳によって361個の目が作られる
分岐を最初からすべて持っています。
ディジタルコンピューターは1,024個の実在する蓄電器が必要されますが
量子コンピューターはただ10個の量子があると1,024
(2^10、2になる理由は下記の文段にあります)個の状態を同時に持ています。
量子が必要されるあの一つの状態に決定されることを
量子デコヒーレンス(Decoherence)と言います。
量子コンピューターに使われる情報の単位はQubit(Quantum bit)だと
言われます。ディジタルコンピューターが蓄電器に電子を入れたり引いたりして
0と1を作るように量子コンピューターはレーザーパルスで量子のスピン方向を
左回りまたは右回りさせて0と1を作ります。
情報の単位なので必ず量子のスピン方向を基準として使う必要はありません。
Qubitが覆る速度はディジタルコンピューターが蓄電器を放電することより
1万倍早く1兆倍少ないエネルギーを消耗します。
そして今まで宇宙についた人間の理解によって
宇宙がコンピューターならディジタルではなく
宇宙の微視世界、そのものの確率に負える
量子コンピューターであるはずです。
ここまで見ると量子コンピューターはただ立派な技術だけだと見えますが
具現が難しい難点があります。問題は意図しなかったデコヒーレンスです。
ディジタルコンピューターは私たちが大きく音楽を聞いても
たまさかコンピューターを足で蹴飛ばしてしまっても
相変わらず音楽が聞こえます。CPUとメモリー、
すなわちトランジスターと蓄電器がそのような外部からの刺激は耐えられます。
ところで量子コンピューターは、まだ結果を得る前にも音楽と足が起こした
振動のため量子重畳状態がデコヒーレンスされてしまいます。
量子コンピューターに計算を任せると私たちは中間にその計算を観測すること
または影響を与えることもしてはいけません。
最終に必要な量子だけを意図的にデコヒーレンスさせて
望んだ結果だけを得る必要があります。
そのため量子コンピューターを外部の振動、熱、電磁場から隔離させるために
すごい注意を払わなければなりません。
あの量子コンピューターについた本で著者が量子コンピューター具現の難しさを
九尾の狐物語にたとえたことを見ました。
日本と中国にも九尾の狐の物語がありますが韓国の九尾の狐は
ちょっと悲しい物語もあります。
美しい女人に扮した九尾の狐が人になるため祈っていた。
狐は夫に100日間、夜には自身の部屋を覗かないでほしいと言った。
しかし100日がすぎる前に夫は好奇心に耐えられず
部屋を見てしまいました。
それで九尾の狐は結局人にならなかった。
2. IBM Quantum Experience
IBM Quantum ExperienceはIBMが提供する
実際の量子コンピューターが活用できるクラウドサービスです。
5年前は5-qubitの性能でしたが今は16-qubitにアップグレードされていました。
そしてその演算に使われるゲートに関してまとめて置きましたが
今はゲートを含めてインタフェースがかなり変わりました。
ここでは簡単に量子重畳を直接に確認します。
まずはシンプルなNOT演算からテストしてみましょう。
q0にNOTゲートを使ったあと観測
ブロックプログラミングに伴って生成されるPythonのコード
グラフィックインタフェースでブロックプログラミングします。
ブロックで作ると右側にqiskitというパッケージを使用する場合の
Pythonコードも自動生成されます。
上のイメージはq0からq2まで3つのqubitを生成したあと
q0にNOTゲートを適用した場合です。
演算サーバーと反復回数の設定
qubitの基本状態は0ですので、NOT演算すると1ですね。
ところでディジタルコンピューターは0をNOT演算すると
確かに1になりますが、量子コンピューターは
すべての可能な確率が重畳されていますので
0のNOTが0になる確率もあります。そのため反覆観測する必要があります。
その反覆単位はShotsだと言われます。
1024回の反復結果、高い確率で0のNOT演算は1だと判断します。
そして1024回を観測して結果、32回は0のNOTが0になりました。
量子重畳による立派な計算力に反して
このように確率に依存する短所がありますね。
0を1024回にNOT演算して1024回が全部0になる確率も0%ではないです。
一つのQubitを重畳(コヒーレンス)させるアダマールゲート
アダマール(Hadamard, H)ゲートはqubitが0と1を同時に持つ
状態になるように重畳させます。
重畳状態で観測されると半分は0、半分は1になります。
もちろん1024回全部1になる確率も0%ではないです。
量子コンピューターとして真の意味でランダムが具現できます。
申請した作業の待ち
ほぼ半々の確率
2個のqubitなら4つの場合がありますね。ただしこれもほぼですね。
IBM Quantum Experienceは量子コンピューターを使った結果をもらうために
ある程度の時間が掛かります。下記の結果はq0を重畳させてあとq1とswapした観測です。
このような量子コンピューターの量子重畳を通じて
RSA暗号化の解体ができるショアアルゴリズムを含め
既存より早めにデータを検索したり、アルゴリズムのサブルーティンを探したり
するアルゴリズムも発明されています。
ただ量子コンピューターがディジタルコンピューターを代替することではなく
量子コンピューターで意味があるアルゴリズムが発明された時だけ
意味がありました。
IBMの量子コンピューター専門家も
既存のディジタルコンピューターと量子コンピューター、
各々長所と短所があって未来には2種類のコンピューターが
相互補完の関係になると展望しました。
次回は量子コンピューターのショアアルゴリズムに立ち向かえる
ハードウェア・ソフトウェア的な暗号化メカニズムと
ソフトウェアメカニズムである格子暗号化を紹介させていただきたいです。