【要旨】これまで、密度行列に関する記事を2つ(こちらとこちらに)書いた。それによれば、もしも、完璧なノイズ耐性量子コンピュータがあれば、量子計算は最初から最後まで、純粋状態を保たれるので、混合状態は考える必要がないように思われた。しかし、それは誤りであり、たとえ、そのような量子コンピュータであっても、混合状態は有効に利用されるのである。そのことを、量子鍵配送プロトコルBB84を例として理解した。Qiskitに装備されている動的量子回路機能を用いて、IBM Quantum実機で確かめることもできた。
🟢量子鍵配送プロトコルBB84の仕組み
すでに、過去の記事(こちらとこちら)で詳細を述べたが、短く言えば以下のようになるだろう。
「Aliceは、古典ビット(0か1)と、使用する基底(2種)をそれぞれランダムに選んで決定する。そして、選択した基底における、古典ビットに対応する状態ベクトルをBobへ送る。
Bobは、Aliceとは全く独立に選んだ基底で、受信した量子状態を測定する。もしもAliceとBobの選んだ基底が一致していれば、両者は同一の古典ビットを得ることになる。
しかし、ここでEveが盗聴を試みる場合、Eveは自身がランダムに選んだ基底でAliceの量子状態を測定してしまう。そして、Eveは盗聴を隠蔽するため、自身の測定結果に応じて量子状態を再度生成してBobへ送らざるを得ない。これは、”量子状態複製不可定理”による。しかし、Eveの選んだ基底がAliceのものと異なる場合(1/2の確率)、BobへはAliceが送ったものとは異なる(変質した)量子状態が届くことになる。
その結果、後線でAliceとBobが互いの基底を照合し、『基底が一致していたケース』のみを抽出したとしても、そのうち1/4(25%)の確率で二人の古典ビットが不一致を起こす。 AliceとBobはこのエラー率を検出することで、Eveの盗聴を確実に察知できる。」
🟢混合状態はどこに現れ、利用されるか
Aliceは「基底 Z= {|0>, |1>} または基底 X = {|+>, |->}」と「古典ビット(0または1)」をそれぞれ全くランダムに選び、以下に示す可能な4つの状態のいずれか1つを送信することになる。
すなわち、送信される側のBobや、途中で盗聴を試みるEveの視点では、彼らはAliceがどの基底を使ったかを事前には知らない。したがって、彼らにとって届く量子状態は、4つの純粋状態が等確率(各 25%)で混ざり合った最大混合状態(Maximal Mixed State)になる。それを密度行列ρで表すと以下のようになる。
ρ = (|0><0| + |1><1| + |+><+| + |-><-| ) /4 = (1/2)I (Iは単位行列)
このことは、Aliceが2つの基底をランダムに行き来することで、「基底情報を知らないEveが、その量子ビットから正しくビット情報を取り出すことはできない」ことを意味する。あるいは、
「Eveがどの基底で待ち伏せしても、見つからず盗聴することは不可能」であることを示している。これが混合状態の正体であると言える。
🟢Qikitの動的量子回路機能でBB84を構成する
以前は、量子回路は「測定」して得られた古典ビット情報に依存して、その後の量子回路を動的に変更や追加することができなかった。しかし、現在のQiskitではそれが可能なので、上に述べた混合状態を含む量子回路を、一つのジョブとして実行することができ、非常に便利である。その回路図は以下の通りである。
Alice, Eve, およびBobがそれぞれ、どの基底を採用したか、また、測定結果はどうだったを見るため、量子回路の途中で、それぞれ2回づつ測定を行っている。それらの結果を6個の古典レジスタに格納し、その値に応じて、必要な量子ゲートを動的に追加している。
🟢IBM Quantumマシン実機(ibm_kingston)による実行結果
以上の量子回路を、Open Planで利用可能なIBM 量子コンピュータ実機で実行した結果を以下に示す。盗聴なし、盗聴ありの両ケースとも、ノイズによる若干の影響がみられたが、ほぼ、理論値通りの結果が得られた。
==================================================
【 Eveによる盗聴なし】IBM Quantum ibm_kingston usage = 2s
==================================================
採用鍵の長さ: 504 / 1000 shots
AliceとBobの選択基底が合致した先頭30個について:
Aliceの鍵 : [1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0]
Bobの鍵 : [0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0]
実機エラー率: 1.4% (理論値: 0% + 実機ノイズ)
==================================================
==================================================
【 Eveによる盗聴あり】IBM Quantum ibm_kingston usage = 2s
==================================================
採用鍵の長さ: 455 / 1000 shots
AliceとBobの選択基底が合致した先頭30個について:
Aliceの鍵 : [0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0]
Bobの鍵 : [1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0]
実機エラー率: 25.9% (理論値: 25% + 実機ノイズ)
==================================================

0 件のコメント:
コメントを投稿