量子暗号通信
BB84 プロトコル
量子力学を利用して暗号鍵の盗聴を検出する
暗号の話を始める前に、登場人物を紹介しましょう。同じ小学校に通うアリスとボブ、イブの 3 人です暗号技術の解説記事や論文では、説明のためによくこの架空の 3 人が登場します。 たいていはアリス (Alice) がボブ (Bob) にメッセージを送り、悪いハッカーのイブ (Eve) が盗聴を企てます。複雑な暗号の例になるとさらに、チャーリー (Charlie)、デイヴ (Dave)、というように頭文字に A, B, C, D,... を持つキャラクター達が続々と登場します。。 アリスは自宅ガレージで作った量子ドローンのファームウェアをボブに送ろうとしています。 イブは意地悪な天才ハッカーで、アリスの通信を盗聴し、ファームウェアにバックドアを仕掛けてドローンを乗っ取ってやろうともくろんでいます。
イブの盗聴をアリスは知っているので、ボブとの通信には絶対に破られない量子暗号通信を使います。 量子暗号通信は、アリスとボブが暗号鍵を安全に共有することを可能にします。
暗号鍵の共有
暗号鍵は通常、乱数で生成します。アリスが 0 と 1 をランダムに並べた長い文字列を作りボブに送ります。 ただし、もし普通のコンピュータでランダム文字列を生成してしまうと、イブがアリスの乱数生成アルゴリズムを突き止めることで暗号鍵を完璧に再現できてしまいます。 そこで、量子乱数ジェネレータMEASUREMENT 命令を参照を使って、原理的にまったく予測できない完璧な乱数を生成します。 今回、アリスは 4,000 文字の暗号鍵を量子乱数で生成したこととします。
今度は、生成した暗号鍵を盗聴されないようにボブへと送る必要があります。 しかしイブはアリスの通信をいつでも盗聴できる上、暗号解読が可能な最新の量子コンピュータまで持っています。 アリスが暗号鍵に普通の暗号をかけてボブにメールしようものなら、イブはたちどころに解除してしまうでしょう。 そこで BB84 プロトコルの出番です。
BB84 プロトコル
BB84 では、盗聴を検知するために量子チャンネルを使って暗号鍵データを送ります。 量子チャンネルとは量子ビットを送受信できる通信路で、現在の技術では光ファイバを通じて光子を量子ビットとして送ることで、これを実現できます。 アリスは量子チャンネルを通じて、0 と 1 からなる 4,000 文字の暗号鍵を、\(|0\rangle\) または \(|1\rangle\) の状態をもつ 4,000 個の量子ビットとしてボブに送ります。
量子ビットを送る際に、アリスはイブの盗聴を検出するための仕掛けを量子ビットに仕込んでおきますこの仕掛けの効果については、後半で説明します。
アリスは、送信する 1 量子ビットごとにランダムに
このときアリスの送る量子ビットは、次の 4 パターンのうちいずれか 1 つの状態になっています。
ボブはアリスがランダムに
これによってボブはどんなデータを受け取ることができるか、詳しく見てみましょう。
-
アリスとボブのどちらも
を適用しなかった場合 アリスが送った \(|0\rangle\) または \(|1\rangle\) をボブがそのまま受信するだけなので、測定すると正しいビットが得られます。
-
アリスとボブの両者が
を適用した場合 アリスが適用した
はボブの適用する によって打ち消されます。 よって、アリスが送った \(|0\rangle\) または \(|1\rangle\) をそのまま受信でき、測定すると正しいビットが得られます。 -
アリスまたはボブの一方が
を適用した場合 ボブの量子ビットは等しい重ね合わせ状態になるため、測定すると \(|0\rangle\) または \(|1\rangle\) が 50% ずつの確率で得られます。 つまりアリスが \(|0\rangle\) または \(|1\rangle\) のどちらを送ったかは分かりません。
ボブがアリスの送ったビット列を正しく読み出せるのは、
最後に、イブによる盗聴がないことを確認するために答あわせをします。 アリスとボブは得られた 2,000 文字のうち最初の半分 1,000 文字をインターネット経由で交換し、完全に一致していることをお互いにチェックします。 もし一致していれば、アリスとボブは完全に一致する 2,000 文字を共有していることが保証されます。 そのうちインターネットに流していない残り 1,000 文字は、二人以外にはまだ見られていません。 そこで、これを秘密の暗号鍵として使うことができます。
イブの盗聴を検出する
もしイブがアリスとボブの中間で量子ビットを盗聴していたら、結果はどう変わるでしょうか?
アリスの送った量子ビットをイブが
イブが唯一できることは、アリスの送った量子ビットを 50% の確率で当てることです。
イブはアリスの量子ビットを横取りし
このように間にイブがはさまることで、ボブが受け取る量子ビットの測定結果に影響が出ます。 これは、アリスとボブが最終チェックで 1,000 文字の値を突き合わせる時に発覚します。 イブがでたらめに送った量子ビットのせいで、最後の答えあわせの際に 1,000 文字の約半分 500 文字が一致しなくなってしまうのです。 こうなるとアリスとボブは別の通信方法を採るしかありませんが、イブによる暗号鍵ハッキングは未然に防げることになります。
まとめ
BB84 は量子乱数の完全なランダム性や、