0x90

一回休み

量子鍵交換のひとつ、BB84プロトコルについて

本稿では、量子鍵交換法の一つである、BB84プロトコルについてまとめます。

なお、私は量子情報は完全に素人なので、何か間違っていたり、conventionがおかしい可能性があります。気づいたら教えて下さい。

はじめに

AliceとBobが秘密鍵をやり取りするとします。盗聴者をEveとよびます。

内容

  1. まず、AliceがEPR pair $\frac{1}{\sqrt2}\left(|0\rangle|0\rangle + |1\rangle|1\rangle\right)$をつくり、$1$番目のqubitをBobに送ります。このとき、簡単のため$0, 1$は$z$方向のspinの大きさ(それぞれ$\pm1/2$)に対応するとします。もちろん、ただの二順位系と考えて構いません。
  2. Aliceは、送らなかった$0$番目のqubitを自分で観測します。その際、$z$方向のスピンを測るか、$x$方向のスピンを測るかをランダムに決めます。量子プログラミング言語では、ランダムにアダマールゲートを通すと思ってもらって差し支えないです。
  3. Bobは、送られてきた$1$番目のqubitを観測します。その際、こちらも$z$方向のスピンを測るか、$x$方向のスピンを測るかをランダムに決めます。
  4. 互いに、自分がどの向きで観測したかということを相手とやり取りします。
  5. 4.で向きが一致したものは、互いに等しい観測結果を得ているはずです。そこで、向きが一致したもののうち半分の観測結果を互いにやり取りします。互いにやり取りしたものが一致していたなら、残りの半分の観測結果から(AESなど古典暗号の)秘密鍵を作り、暗号通信します。

なぜこれで秘密鍵が漏れないか

Eveが秘密鍵の内容を知るためには、どうやっても1.の時点でBobに送られる状態を観測する必要があります。すると、射影仮設によりBobに送られた状態及びAliceの手元に残っている状態はEveの観測した状態に固定されます。そのため、たとえAliceとBobが同じ方向のスピンを測ったとしても、この方向がEveのものと異なれば、二人は同じ結果を得るとは限らなくなります。1 qubitの交換で、AliceとBobが同方向のspinを測ったとき、Eveがいるにもかかわらず同じ結果を得る確率は \[\frac{1}{2} + \frac{1}{2}\times\frac{1}{2} = \frac{3}{4}\] になります。第一項はEveとA, Bが同方向のspinを測った場合、第二項はEveが異なる方向のspinを測ったが、たまたまAliceとBobの測ったspinが同じ確率です。したがってこの調子で$n$ qubit交換すれば、AliceとBobがすべて同じ結果を得る確率は \[P = \left(\frac{3}{4}\right)^n\] と、指数関数的に減っていきます。

(なお、ここではノイズを無視しましたが、実際にはノイズによる影響も重要なようです)