量子論なしで、がんばってみたけれど ...
【 量子論なしで、がんばってみたけれど ... 】
この間、代表的な「量子キー配布 (QKD: Quantum Key Distribution ) 」のプロトコルであるBB84をコインとコイントスを用いてシミレートするモデルを作って紹介してきました。
前回見たように、BB84の中核である「量子キー配布」のプロトコルの説明も、量子論なしでなんとかできたと思っています。
お気づきの方も多いと思いますが、こうしたコインとコイントスによるBB84のモデルが成り立つ背景を簡単に説明したいと思います。ネタばらしです。
一般に量子ビット qubitの状態 |qubit> は、二つのベクトル |0> と|1>の重ね合わせ(線型結合です)のベクトルとして表現されます。
|qubit> = a|0> + b|1>
( ただし、aとb は全く自由に選べるわけではなく、
a^2 + b^2 = 1 という制約があります。)
問題は、我々が量子ビット qubit を「観測」すると、ベクトル |0> と |1> の重ね合わせの状態が破れて, |0> または |1>の状態しか観測できないことです。量子ビットは、必ず二つのベクトルの「重ね合わせ」の状態で存在しているのですが、その「重ね合わせ」の状態をそのままの形では我々は「観測」できないのです。
「観測」した途端、|qubit> = a|0> + b|1> の状態は、|0> 単独 あるいは |1> 単独 の状態に変わってしまうのです。ここでの 「|0> 単独」 あるいは 「|1> 単独」の状態は、普通のビット 0 あるいは、普通のビット 1 と考えて構いません。
要するに、重ね合わせの状態にある量子ビットは、観測すると普通のビット 0か1に変わってしまうのです!
ただ、大事な法則を物理学者たちは、実験を通じて経験的に発見しました。それは次のような法則です。
|qubit> = a|0> + b|1> を観測して、
|0>(普通のビット 0 です)を観測する確率は、|a|^2で与えられ、
|1>(普通のビット 1 です)を観測する確率は、|b|^2で与えられる。
|0> 単独の状態は、先の式で a =1, b = 0 の状態です。ですので、|0> 単独の状態を観測して|0>の状態を観測する確率は、|a|^2 = |1|^2 = 1 。すなわち 100%の確率で|0> 単独の状態は、|0> として観測されることになります。
同様に、|1> 単独の状態は、先の式で a =0, b = 1 の状態です。ですので、|1> 単独の状態を観測して|1>の状態を観測する確率は、|b|^2 = |1|^2 = 1 。すなわち 100%の確率で|1> 単独の状態は、|1> として観測されることになります。
先に、「|0> 単独」 あるいは 「|1> 単独」の状態は、普通のビット 0 あるいは、普通のビット 1 と考えて構いませんといったのですが、これは、普通のビット 0 あるいは、普通のビット 1 は、どう観測しても、何回観測しても、ビット 0 あるいは ビット 1 のままにとどまると言うことに対応しています。その意味では、「普通のビット」と言うのは、特別なタイプの「量子ビット」なのです。
今回のモデルで利用されているのは、|+> と呼ばれる qubitです。
|+> = 1/√2 |0> + 1/√2 |1>
先の式では a = b = 1/√2 という重ね合わせのqubit です。
この |+> は面白い性質を持っています。この |+> を観測して ビット 0 を得る確率は、|a|^2 = |1/√2 |^2 = 1/2 です。この |+> を観測して ビット 1 を得る確率は、|b|^2 = |1/√2 |^2 = 1/2 です。ですので、ビット 0 を得る確率と ビット 1 を得る確率は等しく 1/2 です。
これは、コインを投げて、表が出るか裏が出るかの確率が等しく 1/2 であることと同じです。 |+> のqubitを「量子コイン」と呼ぶことがあります。
実は、|+> の他に、もう一つ「量子コイン」と呼ばれる qubit があります。これを |−> で表します。
|−> = 1/√2 |0> − 1/√2 |1>
a = 1/√2, b = −1/√2 という重ねあわせのqubit です。
この |−> を観測して、ビット 0 を得る確率は、|a|^2 = |1/√2 |^2 = 1/2 。ビット 1 を得る確率は、|b|^2 = |−1/√2 |^2 = 1/2 です。|+> と同様に、ビット 0 を得る確率と ビット 1 を得る確率は等しく 1/2 です。
今回のモデルで、利用された4種類のコインは、次の qubit に対応しています。
コイン qubit
-----------------------------------------
黒0 (表 0, 裏 0) <--> |0>
白1 (表 1, 裏 1) <--> |1>
灰0 (表 0, 裏 1) <--> |+>
灰1 (表 1, 裏 0) <--> |−>
そして「観測」は「コイントス」に対応しています。
重要なことは、観測のたびに等しい確率で、0 または 1 を返す「量子コイン」の振る舞いは、コイントスのたびに同じ確率で 表 または 裏を示す「物理コイン」の振る舞いと、基本的には同じだと言うことです。
今回のモデルが、量子論に直接触れなくても、上述のコインとコイントスで、BB84プロトコルの基本部分をシミレートできたのは、そのおかげです。
【 このモデルには弱点があります。】
ただ、量子論なしで、がんばってみたのですが、残念ながら、このモデルには、弱点があります。
AliceからBobにコインを渡すのですが、この箇所で攻撃者Eveがコインの数字を盗み読む可能性があります。これでAliceが送り出したビットをEveは知ることになります。
また、Eveはコインの色から、Aliceが使ったエンコード方式も知ることができます。Bobのデコード方式を知っていれば、Eveは共有キーをピックアップすることが可能になります。
本当のBB84には、こうした「中間者攻撃」に対する脆弱性は、存在しません。
【「量子キー配布 -- BB84 コインからqubitへ」を公開しました 】
https://youtu.be/oqy52TNV9Wo?list=PLQIrJ0f9gMcMOZpuJsAE6UvyX4g0_TYnM
https://www.marulabo.net/docs/q-net/
コメント
コメントを投稿