ここで量子コンピュータの基本原理を概説する.ブール代数における要素0,1を量子直交状態に対応させた時,それらは基本量子ビット(qubit)と呼ばれ,この直交状態の様々な組み合わせ(重ね合わせ)もまた,量子ビットとなる.一般に空間的に異なるシステムのn個の基本量子ビットを配列したとき古典ブール代数ではその可能な組は2n個となる.しかし,量子ではこの数の基本量子ビットによる組み合わせによって定義される量子状態もまた量子ビットとして扱えるため,ほぼ無限の組み合わせが可能となる.量子計算とはそれらを1つのベクトルとして処理するベクトル変換過程であり,無限の成分を含むそのベクトルが瞬時に計算されるので計算時間を極めて小さくできる.古典の計算問題を解くためのにこのようなベクトルの変換過程を設計することを量子アルゴリズムと言う.
一方,量子アルゴリズムを物理的に実現するために量子論理回路が必要である.しかし,近年,Controlled NOTと位相回転を行う論理回路の組み合わせで任意の量子アルゴリズムが実現できることが証明された.これによって,量子コンピュータの実現は量子論理回路による量子ネットワークの実現問題となっている.
(1)送信システム
送信信号:0と1
送信機(A)は垂直偏光と水平偏光で0と1を送信
量子状態: |↑>,|↓>
送信機(B)は右回転円偏光と左回転円偏光で0と1を送信
(2)受信システム
直線偏光用受信機(A)と円偏光受信機(B)を用意する.
(3)伝送システム
エネルギー損失のない理想伝送システムを考える.
(4)システム運用
0と1の乱数を送信機(A)と(B)のどちらかをランダムに選んでその0と1を送信.
受信者は同様に受信機(A)と(B)のどちらかをランダムに選んで光子を受信.
公衆回線で受信機の選択系列を送信者に伝達.
送信者は受信者に送信機と受信機の一致点(系列)を通知.
送受信者はその一致系列を共通の系列として共有する.それを秘密鍵とする.
(5)盗聴者の能力
盗聴者は受信者と同じ機能を持つと仮定する.
盗聴法(A):回線を切断し盗聴した後,得られた0あるいは1を再送信する.
盗聴法(B):回線の光の一部をモニターする.
(6)盗聴者の影響
送信者の送信機と受信者がそれに対応の受信機を選択したとき,そのビットには誤りが発生しない.盗聴者が介入すればある確率で誤りが発生する.なぜなら送信者の選択した送信機と同種の受信機を選択するのは確率的であるから,不一致の時,盗聴者が再送信したとき正規の受信者が送信者の送信機と同種の受信機を選択すれば結果が誤る確率がゼロとはならない.
もし,直線偏光と円偏光を同時に観測しようとすれば,不確定性原理によって両偏光信号に対して誤りが発生する.したがって送信者と受信者の間には誤りが発生する.
(7)盗聴者の検出
送信者と受信者の間で選択した装置が一致したビット列の一部を公開してビットが正しいか否かをチェックする.誤りがあれば盗聴者の存在が解る.
(1)送信システム
送信信号:0と1
非直交量子状態を二つ用意する.
量子状態: |+>, |−>
(2)受信システム
Kennedy提案型の量子受信機を2台用意する.
P1 = I - |+><+|
P2 = I - |−><−|
もし信号状態が |+> であるとき受信機A.を選択すれば確実に光子数ゼロを観測する.もし信号状態が |−> であれば|<+|−>|2の確率で光子数ゼロが観測され,1 - |<+|−>|2の確率で光子が観測される.
このとき通信路モデルはZ型となり,光子が観測されれば確率1で信号状態が |−> であることが解る.受信機B.の選択に対してはこの逆となる.
(3)伝送システム
エネルギー損失がある伝送システムを考えることができる.
(4)システム運用
0と1の乱数を送信機から |+>, |−>に変調して伝送.
受信者は受信機A.とB.のどちらかをランダムに選んで信号を受信.
受信者はどのビットスロットで光子が観測されたかを送信者に公衆回線で連絡する(どの受信機を使用したかは伝えない).光子が観測されなかったビットスロットは捨てる.残ったビット列{約(1 - | <+|−> |2)/ 2 }は完全に送信者と一致している.送受信者はその一致系列を共通の系列として共有する.それを秘密鍵とする.
(5)盗聴者の能力
盗聴者は受信者と同じ機能を持つと仮定する.
盗聴法:
回線を切断し盗聴した後,得られた0あるいは1を再送信する.
あるいは回線の光の一部をモニターする.
(6)盗聴者の影響と検出原理
送信者が |+>を送信した時,盗聴者が受信機B.を選択したとき,そのビットは確率|<+|−>|2で光子数ゼロとなる.盗聴者は|−>と判断してこれを再送信すれば,このとき受信者が受信機A.を選択すれば確率1 - |<+|−>|2で光子数を観測する.本来送信者が |+>を送信したとき受信機A.が選択されれば光子数ゼロであり,捨てられるはずのものである.このようにビット列に誤りが発生する.いくつかのビットスロット列のビットを公開して正しいことを検証する.もし誤りがあれば盗聴者がいることが判明する.
盗聴者が一部の光のみを分岐してモニターしたとき,受信者の光の量が変るので受信者はいずれの受信機を採用しても誤る確率が発生する.
本質的に「全ての数で割ってみる」というやり方よりも効率の良いやり方は無い、と信じられている。大きな数になると、こういう単純な計算をするのにもあまりにも計算量が膨大すぎて計算しきれなくなる。これを量子計算機でやるには次のようにする。まず、分解したい大きな数より小さい全ての数の「中間状態」を作る。そして、題意の数をこの「中間状態」で割り算して「余り」を求める。すると、たった一回の割り算で題意の数を題意の数未満の全ての数で割った「余り」の重ね合わせの「中間状態」を得ることが出来る。つまり、たった一回の割り算で全ての「余り」を求めることが出来る。この「余り」が“0”になっている数だけを集めてくれば一回で分解が完了する。しかし「どの数の余りが0になっているか」をどうやって調べるのか。一個一個の数について調べていたら結局、大きな数の大きさ回だけ演算をしなくてはいけなくなるので結局、速くならない。答えが求まっていても「読み出し操作」に時間がかかってしまう。これを回避するために、余りが0になった数だけを切り出す方法が必要だが、「量子力学の原理」で動いている量子計算機ではこれをうまくやることが出来る。この方法を用いて求めた答えは、50%の確率で正しい。例え、50%の確率でも10回繰り返せば、10回全て外れる確率は0.5の10乗で大体1000分の1くらいになる。これを何回でも繰り返せば、いつか「回路のハード的なエラー率」より小さくなる。