量子情報処理といっても基本的な流れは同じです.処理する情報(数)を物理系の状態で表し,状態を操作して,得られた状態を読み出して答えとします.小学校で足し算を習ったとき,「りんご3つと,なし2つで合わせていくつ?」と聞かれたら(違うものを足しても意味がないなどと答えずに)りんごとなしをおはじき3個と2個に置き換えて(エンコード),おはじきを一緒にして(これが状態の操作),数えて5個という答えが出ます(デコード).量子情報処理ではおはじきの代わりにスピンとか光子の偏光とかいった物理系の状態を使います.操作する対象が量子力学的状態になるので,普通の場合(古典)とは違った操作ができるようになるわけです.
スピンや偏光といったものは量子ビット(qbit,キュービット)を表します.これは普通のディジタル情報処理で基本となるビットに対応するものです.ビットは1と0のどちらかの値(おはじきがある/ない)を取ります.もちろん,1の状態と0の状態には共通点がありません.量子ビットは,よく0と1の中間も表すといわれますが,数直線上の点を思い浮かべるとちょっと意味が違います.共通点のない2つの状態を直交するベクトルで表します.光子の垂直偏光状態と水平偏光状態が良い例です.ベクトルの長さはその状態が観測される確率になるというのが量子力学での約束ですから単位ベクトルになります.
ブラケットの記法を使うと0の状態ベクトルは|0>,1の状態ベクトルは|1>となり(あまり気にしないで2次元のベクトル(0,1)と(1,0)みたいなものだと思ってください),一般的な状態はa|0>+b|1>と表されます.この状態を0と1の重ね合わせといいます.ここでa,bは|a|2+|b|2=1を満たす複素数であることに注意して下さい.そうすると状態ベクトルはcosθ|0>+exp[iφ]sinθ|1>と書くこともできます.0と1の比率だけでなくその間の位相φが重要になります.ベクトルなので2つの状態の線形結合(重ね合わせ)を作ることができて,位相が等しいと強めあい,180度ずれていると打ち消しあうという干渉が現れます.逆に干渉を利用して測定結果を操作することができ,量子情報技術の一つの重要な要素になっています.重ね合わせは干渉を引き起こすのでコヒーレンス(可干渉性)といいます.2つの状態を重ね合わせるためには2つの状態のどちらがあるのか区別できないことが必要です.区別できると2つの状態の位相関係など無意味になり(なにせどちらかしかないので)干渉は起きなくなります.
状態の測定はベクトルを測定の軸(基底)に射影することに当たります.cosθ|0>+exp[iφ]sinθ|1>を測定すると確率cos2θで0が,確率sin2θで1という値が得られ,測定後の状態は測定結果0のとき|0>,1のとき|1>になります.重ね合わせであったものがどちらかの状態に決まってしまうので,波動関数の収縮とか呼ばれることもあります.
測定に関してもう一つ重要なことは,重ね合わせ状態を測定したときの値は確率的にしか決まらないこと,あるいは状態が1個しかないときに測定で状態を完全に知ることができないことです.状態は長さ1の2次元複素ベクトルですから,実数の係数を2つ決めなくてはいけないわけです.繰り返し測定しても状態が収縮しているため前と同じ結果しか得られないので意味がありません.このことから,任意の重ね合わせ状態のコピーも作れないことがわかります.もし,コピーが作れるとすると,状態が1つあれば無限個のコピーが作れます.同じ状態が無限個あれば,それらを全て測定することで状態が完全にわかります.つまり,状態が1つあれば状態を完全に知ることができることになって,状態が決まらないということと矛盾します.このことは量子暗号の安全性に関係する重要な性質です.
量子情報処理における位相の重要性と測定による状態の収縮は反面量子計算の実現を難しくしています.環境と量子系の相互作用は量子系からすると結果を見ない測定にあたり,状態を確定してしまうので量子系の位相をランダムにする働きがあり,状態の可干渉性が失われます.これをデコヒーレンスといい,量子ビットの数が多くなったり,環境の温度が高い場合には顕著になります.「量子ビットはすぐデコヒーレンスしささって,ほんとあずましくないんだわ・・・」そこを何とかするのが研究課題のひとつでもあります.
量子ビットに対する操作は量子ビットが2次元のベクトルですから,2行2列の複素行列になります.2量子ビットに対しては4x4行列で以下量子ビット数が増えるとテンソル積で行列を大きくします.ベクトルの長さが変わってはまずいので操作はユニタリー変換であることを要求します.量子ビットをユニタリー変換することを計算機的にいうと量子ゲートを作用させることになります.任意の量子ゲートは1量子ビットに対するゲート(恒等変換を含めて4種類)と2量子ビットゲートのうちの一つで構成できることが示されています.そのため,量子計算機を作ろうとする研究は1量子ゲートと2量子ゲートを作ることから始まると考えられてきました.光子について1量子ゲートは比較的簡単で,偏光で表したときは光学ではお馴染みの波長板(複屈折)で作れてしまいます.2量子ゲートは光子同士の相互作用が小さいので作るのは難しいです.たまにしか成功しないことに目をつぶって波長板や偏光ビームスプリッタを使うか、あるいは電子の力を借りるか(これもやさしくはない)ということになります.個人的な意見としてはこういうボトムアップ的なやり方はうまくいかないのではないかと思っていて,いろいろ抜け道を捜しています.
量子ビットが2個以上あるとさらに不思議なことが起こります.例えば,光子が2個あって,一つが垂直偏光ならもう一つも垂直偏光になるといった相関があるとします.この状態は|0>|0>という4次元(2x2次元)のベクトルで表されます.水平偏光についても同様に|1>|1>という状態を考えることができます.さらに,これらの状態は重ね合わせることができて,(1/2)1/2(|0>|0>+|1>|1>)というような状態が作れます.この状態を測定するとふたつの光子の偏光は常に同じになるという結果が得られます.これは偏光をどの向きについて測っても同じ結果が得られます.
これは,片方の光子を測定するともう一方の光子の状態が決まってしまうということで,光子がどれだけ離れていても瞬時に起こります.古典的に相関している場合には,垂直-水平偏光にについては相関していても,例えば45度-135度の偏光方向について測定するとふたつの光子の測定結果はランダムになりますので,この重ね合わせ状態は量子力学的な系に特有のものだということがわかります.このような状態をエンタングル状態といいます.量子論のきっかけを作ったアインシュタインが出来上がった量子力学に納得できず,おかしなことの例として指摘したのがこの状態です.量子力学の建設者のひとりであるシュレーディンガーも「どうもわからん」とメモを残しています(もちろんドイツ語で.)これがおかしなことではないことは実験で確かめられています.エンタングルメントを使った量子テレポーテーションといったことも実証されています.ただし,状態が瞬時に決まるといっても情報が超光速で伝わるわけではないことに注意が必要です.あくまでも相関しているのは向きだけで,測定結果である0,1(水平偏光,垂直偏光)はランダムに決まっているからです.測定結果をこちらの意志で決められれば超光速通信ができるわけですが,そこまで自然は掟破りを許さないようです.
エンタングルした光子対を作る方法として最もポピュラーなものはSpontaneous Parametric Down Conversionを使ったものです.これは非線形結晶に光子をいれると入射光子のエネルギーの半分の光子が対になって出てくるものです.この過程ではエネルギー保存則と運動量保存則を満たさなければなりません.運動量保存則を満たすために結晶の複屈折を使って結晶中の光子の波数(運動量に比例)をうまく合わせます(位相整合)が,このとき入射する光子と生成される光子に一定の偏光関係が必要です.Type I位相整合結晶では入射光子の偏光に対して生成される光子の偏光は直交して出てきます.そこで、結晶を2つ使って入射する光子の偏光を傾けておくと一つの結晶では例えば水平偏光のペアが,もう一つの結晶からは垂直偏光のペアがでます.どちらの結晶から光子対が出たか区別できないとき、光子対の状態は水平のペアと垂直のペアの重ね合わせになるのでエンタングルした状態が得られるわけです.