量子力学の奇妙さ その2

 私ごとながら、この4月に東京へ転居し働き場所も移籍したので、身辺がバタバタして続きが書けなかった。また始めることにしよう。

 

 前回、Entanglement(量子もつれ)について少し触れたが、この古典的世界には類似物のない状態の奇妙さに関連した話題を二つほど紹介しよう。それはQuantum Cryptography(量子暗号)とQuantum Eraser(量子消しゴム)である。

 まずはBB84プロトコルとよばれる量子暗号について[1]。これは送信者と受信者が共通の鍵乱数を共有することによる最も基本的な暗号通信の方法である。

 送信者は送りたい文章、たとえば I love you を通常の既知の手続きに従って0と1とからなる2値数表記に翻訳する。たとえば (1,0,0,1,0,1,1,0,・・・) となったとしよう。次に、この2値数列と同じ長さのランダムな2値数列(鍵乱数)を用意する。たとえば (0,0,1,1,0,1,0,1,・・・)のように。そして通信文と乱数列の各桁の数値を2を法として足し合わせる。その演算規則は
0+0=0, 0+1=1, 1+0=1, 1+1=0
である。上の例では出来あがった数列は (1,0,1,0,0,0,1,・・・)となるだろう。これ自身、まったくランダムな数列であってもはや何の情報も含まない。送信者はこのランダムな数列を、メールでも手紙でもよい通常の手段によって受信者に送る。受信者の手元には、あらかじめ送信者と同じ鍵乱数の列があるとすれば、受信者は受け取った通信文にこの鍵乱数をもう一度足すことによって (1,0,0,1,0,1,1,0・・・) = I love you と平文を復号することができる。


  鍵乱数は、使い捨てにする。つまり通信文のそれぞれに対して、それと同じ長さの乱数列を作りだし、一度きりで使い捨てる。この方法をone-time-padとよぶ。どんな精巧な暗号文でも、そこには必ず平文の情報が含まれているので、いつかは解読されてしまうが[2]、その点でone-time-pad暗号は絶対に安全な暗号といえる。ただし、鍵乱数が盗聴者に知られさえしなければ・・・。


 したがって、問題は「送信者と受信者が、いかに安全に鍵乱数を共有するか?」ということに尽きる。そこで登場するのが量子暗号であり、量子もつれである。その原理は「波動関数の壊れやすさ」を逆手にとって安全性を保証するのだ。BennettとBrassardによるオリジナルの論文では、この鍵乱数配送のやり方について、丁寧だがやや回りくどい書き方がしてある。量子もつれを使えば、一気にこれができるので、ここではその方法を説明しよう。


  内部自由度を持った粒子系なら、何でも「もつれた」状態になりうる。もつれた状態とは、その波動関数が個々の粒子の波動関数の積に分解できない状態である。前回は電子のスピンを例にとって量子もつれを説明した。いま実験的研究で最もよく用いられているのは光の偏りを用いた方法なので、以下では偏光を例として説明する。(フォトンの偏光は、フォトンというボース粒子のスピン自由度にほかならない[3]。)
 

 図1は、フォトンの波数ベクトル(黒い矢印)と、その直線偏光の向き(赤い矢印)の関係を描いたものである。

  図1      (a)                            (b)

スピンと同じように、量子化軸の選び方は自由なので、仮に(x, y)方向の偏光軸と、それらと45度、135度の向きで交差する偏光軸とを考える。この(a)と(b)二つの基底系(縦横偏光と斜め偏光とよぶことにしよう)は互いに直交はしていないことが重要なポイントである。


 ある種の光学素子を用いると、互いに量子もつれの関係にある2個のフォトンを別の波数ベクトル(進行方向)の状態に発生させることができる。最も強くもつれた状態を前回同様に|Ψ>と書くことにすると、縦横偏光では

|Ψ>=1/√2 {|x,y> - |y,x>}     (1)

と書くことができる。ただしケットベクトルの左側に書いたのは左へ飛んでゆくフォトン、右に書いたのは右に飛ぶフォトンの偏光である。スピンの時と全く同様に縦横偏光と斜め偏光の状態とは

|x>=1/√2{|+>+|−>}
|y>=1/√2{|−> -|+>}

という関係があるので、これを上の式に入れれば

|Ψ>=―1/√2 {|+,-> -|-,+>}    (2)

と斜め偏光の基底で表すこともできる。


 縦横偏光のフィルターで測ったとき、x偏光を0、y偏光を1に対応させることにしよう。同じように斜め偏光フィルターで測ったとき、+向きを0、−向きを1に対応させる。さらに偏光の向きの測定方法(偏光フィルターを受光器の前に置けばよい)にも0と1を割り振る。偏光フィルターの向きを縦横としたときを0、斜めとしたときを1と約束しておこう。1フォトンずつ測定するので、どんなフィルターの向きで測定しても、信号は0または1のどちらかになることに注意する。通常の光を偏光フィルターを通して観測したときのように、「半分だけ」光が通るようなことはない。x偏光のフォトンを+の向きだけ通す斜め偏光のフィルターで観測すると、50パーセントの確率で透過するか(すなわち0と観測)か吸収される(1と観測)。

 さてこれで準備完了である。信号の送り手はワンペアずつ絡み合ったフォトンを作り出し、その一方たとえば左に飛び出したフォトンの偏光を測定する。受信者はその対になった右へ進むフォトンの偏光を測定する。これは何キロも離れた場所で、独立に行うことができる。ただし、二人ともコイントスをやって、一回の測定ごとに偏光フィルターの向きを縦横(0)とするか斜め(1)とするかを勝手にかつランダムに決める。この作業を多数回やった測定結果を並べてみると、たとえば

(送り手のデータ)
フィルターの向き 1 1 0 1 0 0 1 0 1 1 0 1・・・
測定結果      1 0 0 1 1 0 0 1 1 0 1 1・・・

(受け手のデータ)
フィルターの向き 1 0 1 1 1 0 1 1 0 1 0 0・・・
測定結果      0 0 1 0 0 1 1 1 1 1 0 1・・・

のような一見まったく意味のないランダムな測定結果が得られるだろう。しかし、選んだ偏光フィルターの向きがたまたま一致していたときの結果だけ選び出してみると、太字で示したように、送り手と受け手の測定結果は必ず反対になっているはずである。フィルターの向きが一致しないときは、測定結果は50パーセントの確率で一致することもあれば一致しないこともある。


(送信者のデータ)
フィルターの向き 1 1 0 1 0 0 1 0 1 1 0 1・・・
測定結果      1 0 0 1 1 0 0 1 1 0 1 1・・・

(受信者のデータ)
フィルターの向き 1 0 1 1 1 0 1 1 0 1 0 0・・・
測定結果      0 0 1 0 0 1 1 1 1 1 0 1・・・

 そこで、二人は事後にどういう向きで測定したかを通常の手段(電子メールやファクス)で教え合い、それが一致していなかったときの結果を捨て、一致していた場合の測定結果だけを鍵乱数として共有すればよい。上の例では 共有される乱数列は1 1 0 0 0 1・・・。ただし受信者は0と1を入れ替えることを忘れてはいけない。この方法では、送りたい鍵乱数列の長さのおよそ倍の長さの乱数を作り出さなければならない。約半数は無駄になる。

 実は送り手と受け手の立場は全く対等であって、どちらが先に測定を行っても構わないし、絡み合ったフォトンを長い時間保存しておけるなら、何時間の時間遅れがあっても構わない。もし、盗聴者がいたとして、途中で一方のフォトンの偏光を観測したとすると、状態ベクトルがそこで「収縮」してしまうので、同じ量子状態をそしらぬ顔で再送することができない。また、たとえそれができたとしても、フィルターの向きの選択は送信者の選択とも受信者の選択とも違ったランダム列になっているはずなので、何の情報も得られない。

[1] C.H. Bennett and G. Brassard, Proc. Int. Conf. Comput. Systems & Signal Processing, p.174 1984.

[2] たとえば サイモン・シン 「暗号解読」 新潮文庫 (青木薫 訳)

[3] フォトンのスピンの大きさは1だが、質量が0なのでヘリシティがよい保存量になり、2つの向きしかとらない。



                                        (May 2013)

目次に戻る