2022年11月28日月曜日

超高密度符号化と量子テレポーテーション(その1)

【要旨】超高密度符号化と量子テレポーションに関して、Prof. Chris Bernhardt著[1]第7章をどのように学んだかをメモしておきたい。安易にツールや可視化に頼らずに、紙と鉛筆だけを用いて考えながら取り組むことに徹してきた。そして、今や機は熟した。ツール等で知識を確認する段階に達した。こういう手順を踏む方が「分かった喜び」が大きいことを実感した。本報(その1)では、幾つかの基本量子回路の作用を量子シミュレータQni[2]を利用しながら確認した。

単一量子ビットに対するXゲートとHゲートの適用
 量子ゲートのうち、単一量子ビットに作用させるPauli X(NOT)ゲートとHadamard(アダマール)ゲートは特に重要だ。図1に示すとおり、これらの作用を量子シミュレータQniで確認した。Xゲートは、量子状態ベクトルをX軸を回転中心としてπだけ回転させる。また、Hゲートは、X軸とZ軸間のπ/4の傾きの軸を中心としてπだけ回転させる。これらによる量子状態ベクトルの確率振幅θと位相φの変化を確認できる。Hゲートの作用として、|0〉と|1〉との重ね合わせ状態(superposition)が作られることが極めて重要である。
 図中に、自作の透明ブロッホ球を示しているが、これを手に取りながら、シミュレータの結果を確認できたのはとても良かったと思う。

2つの量子ビットの状態における量子ゲートの作用
 2つの量子ビットの場合、それがなす状態(2つの状態ベクトルのテンソル積)は、4つのケットベクトル |00〉、|01〉、|10〉、|11〉 の線形結合で表わされる。図2に、2番目の量子ビットq1にのみHゲートを作用させた結果を示した。この場合は、共に (1/√2 = 0.707) の2乗の確率(0.5)で |00〉、または |10〉 となることが確認できた。

Bell回路とReverse Bell回路
 次に、本報の続編で述べる「超高密度符号化」と「量子テレポーション」で必要となるBell回路とその逆作用となるReverse Bell回路を示す。図3に示すとおり、Bell回路は2つの量子ビットのち最初の量子ビットにまずHゲートを作用させ、続けて2番目の量子ビットにCNOT(制御付きNOT)を作用させるものだ。結果として、両量子ビットは「もつれた状態(Entangled)」となることが重要な点である。そして、両量子ビットの状態は、それぞれ50%の確率で |00〉 または |11〉 となる。これ以外の状態にはならない。すなわち、両量子ビットに相関関係が生じていることが分かる。
 この状態にさらにReverse Bell回路を作用させたのが図4である。Bell回路は自分自身が可逆回路である。従って、入力される2量子が4つの状態のいずれであっても、最終的に最初の状態に戻っている。図4には、Bell回路を作用させた後(Entangledの状態)と、さらにReverse Bell回路を作用させた後の状態(Unentangledの状態)を示しているので、このことが確認できるであろう。(なお、回路の適用結果では、量子ビットの並び順が最初の量子状態での量子ビット並びと逆順になっている。)
References
[1] Chris Bernhardt, “Quantum Computing for Everyone”, MIT Press, 2020 
https://www.chrisbernhardt.info/
[2] Qni; https://github.com/qniapp/qni

2022年11月24日木曜日

量子アニーリングによる渋滞解消のための信号制御

【要旨】数日前に、日立製作所のCMOSアニーリングマシン利用に関するwebサイト[1]に、「渋滞解消のための信号制御最適化」という解説が公開されました。テスト用のPythonソースコードも提供されていますので、早速試してみました。

渋滞解消のための信号制御最適化
 この課題は、古くから取り組まれています。車の自動運転技術も注目されていますが、今のところ、交通渋滞解消を目指すものではないでしょう。しかし、交通渋滞解消の技術は注目されるべきものです。それによる現代社会での経済的、社会的効果は計り知れません。
 従来は、車の台数や速度、車間距離、青信号の点灯時間と切り替えタイミング、交差点での進行方向等々を時間変化で捉えて微分方程式モデルを作り解くこともあるようです。しかし、今回の手法は、そういう要素を明示的に使わずに、「交差点をつなぐ道の上にいる車の量」を「青信号の点灯」と関連付けた画期的なモデルだと思われます。参考文献[2]の豊田中央研究所と東大による論文に基づいているとのことです。

量子アニーリングによる信号制御最適化
 詳細は参考文献[1] [2]をご覧いただきたい。非常に丁寧な解説が[1]にあります。「各交差点で待機している垂直方向や水平方向の車の台数を信号制御によって均一化する」という観点から、イジングモデルを組み立てる考え方と具体的な手順が説明されています。もちろん、交差点に入る車の直進、右折、左折の割合や時間変化も考慮されています。そして最終的に、各交差点を量子のスピンに対応させて、スピン間の相互作用係数と外部磁場係数を使ったエネルギー関数(コスト関数)を導いています。
 私が気にしていたのは、いくつかの制約条件をどのようにコスト関数に組み入れるのか、でしたが、例えば、隣り合う信号が相反する場合にペナルティを与えることなどをうまく取り入れています。

実際に動かして試してみよう
 原理的なことを一通り理解した上で、日立のCMOSアニーリングマシンを動かして、動きを確かめます。Pythonソースコードが公開されていますので、誰でもできます。ただし、日立から、無料のAnnealing Cloud Web用のAPIキーを取得する必要があります。
 動かしてみると、なかなか素晴らしい!解説も分かりやすいのでとても勉強になります。各信号は量子スピンに対応するので、アニーリングの結果として、エネルギー関数を最小化するスピンの向き(北極、南極)のセットが返ってきます。すなわち、その時点では、北極ならその信号器の水平方向を青色に、南極なら垂直方向を青色にするのが最適だ、ということです。
 ただ、最適化の結果を見やすくしたい。とうことで、信号の青点灯と交差点での渋滞の度合いを可視化するアニメーションアプリを作成しました。図1にそれを示します。


感想
 色々なことが思い浮かぶのですが、この結果をみると、初期状態でかなり渋滞していても、この最適化で、青信号の点灯方向が変わり、急速に渋滞が解消に向かうことがわかります。その後は、信号の切り替えは穏やかになり、渋滞は徐々に減少します。もちろん、初期状態での車の量や、交差点での直進、右折、左折の割合などで状況は変わるでしよう。また、どこかのスピンが故障して、ある確率で方向が反転してしまう場合に、最適性はどのように失われるのでしょうか。(パリティチェックみたいな機構が付いているのかもしれませんが。)
 今回のこの解説は、今後、種々のアイディアを独自に試す場合の非常に重要な拠り所になりそうです。

参考文献

[1] CMOS Annealing Cloud Web News

[2] Daisuke Inoue, Akihisa Okada, Tadayoshi Matsumori, Kazuyuki Aihara, Hiroaki Yoshida: "Traffic Signal Optimization on a Square Lattice with Quantum Annealing"
[Submitted on 17 Mar 2020 (v1), last revised 1 Feb 2021 (this version, v2)]

2022年11月19日土曜日

深まる秋、落ち葉とどんぐりを拾う

 すっかり秋が深まった。読書の季節とも言われる。だが籠りがちになったら、散歩に出掛けて気分転換するのが良い。落ち葉が増えてきた小径をカサカサしばらく進むと、どんぐりを落とす木の下にきていた。種類は色々あるようだが、この近辺はコナラとマテバシイのようだ。落ちているどんぐりを布で軽く擦るとすぐに艶が出る。不思議な生命がまだ宿っているかのようだ。持ち帰って、落ち葉と共に台紙に貼り付けて眺める。今歩いてきた自然の情景を切り取り、机上に小さく再現したかのような感覚になる。
 この他に、もっと丸っこい、イガの付いたどんぐりも見つけていた。クヌギらしい。少し前に、量子ビットの模型(ブロッホ球)を作るために購入した透明アクリル球体が余分に残っているのを思い出した。それに残りのどんぐりを詰めて、机上に転がしてまた楽しむ。
 落ち葉やどんぐりの種類は、例えば以下のデジタル植物写真集で手軽に調べることができる。今回は、コナラ、マテバシイ、クヌギのどんぐりを確認することができた。
●植物の名前を探しやすい デジタル植物写真集

2022年11月16日水曜日

ビリヤードボールを使ったFredkinの万能論理ゲート

【要旨】量子コンピューティングに関するProf. Chris Bernhardtの著書[1]第6章は、"Classical Logic, Gates, and Circuits"だが、一般の論理回路の教科書には多分載っていない「Fredkinゲート」の説明がある。それは、著名な物理学者ファインマンも感銘を受けたと言われる、「ビリヤードボールによる万能ゲートの作成」である。その独創的なアイディアは量子(原子、分子)の衝突を連想させ、ファインマンの量子コンピュータ観に影響を与えたと言われる。この書籍で学んだことを纏めてみたい。(→改訂英語版はこちらをご覧ください。)

Fredkinのゲートとは
 これは、Edward Fredkinが1982年に発表した3入力(x, y, z)3出力の論理ゲートで、論理関数で表せば以下のように簡単なものである:
F(0, y, z )=(0, y, z),  F(1, y, z) = (1, z, y)

 最初のxは制御ビットなので、出力の1番目にそのまま出る。x = 0 の場合は、yとzとはそのまま出力され、x = 1 の場合は、yとzが交換されて出力される。簡単な計算で示すことができるのだが、以下の特徴を持つ:

  • 可逆論理ゲートになっている。すなわち、出力から入力へ到達できる。
  • 万能論理ゲートである。すなわち、NOTとANDとfan-out(入力の複製機能)をこのFredkinゲートのみで作成できる。
  • 入力と出力の1(True)の個数は常に等しい。これは後述するが、ビリヤードボールの個数が入力側と出力側で常に等しいことに対応する。
ビリヤードボールでFredkinゲートを作るという独創性
 Fredkinは、ビリヤードボールを使ってこのゲートを作成する方法を示した。ボール同士の衝突と、ボールと台の淵に置かれた鏡(入射角と反射角が等しい場合を想定した反射板)による反射を使う。ただし、完全な弾性衝突(エネルギーロスなし)や、複数のボールのサイズ、質量、速度、投入タイミングの完全な一致を想定するので、現実的に製造することは明らかに困難であり、概念的、論理的な論理モデルである。しかしながら、この方法は、驚くべき独創性に富んでおり、著名な物理学者ファインマンも感銘を受けた言われる。ボールの衝突が原子の衝突を連想させ、ファインマンの量子コンピュータへの考えにも影響を与えたとされる。

ビリヤードボールでスイッチゲートを作る
 まず、Fredkinゲートを構成するためのスイッチゲートを上記のビリヤードボールで作る。図1に示すように、2入力3出力である。ボールはIn1とIn2から投入される。それらのボールは弾性衝突と右上隅と左下隅に設置された鏡での反射を経て、Out1, Out2a, Out2bへ出力される。入力が2つとも与えられない場合は何も出力がない。In1にだけボールが入ると明らかにOut1にだけボールが出てくる。また、In2にのみボールが入るとOut2aにだけ出力がある。入力出力共に、ボール出現有りを1に、無しを0とすると、論理値表は右側のようになる。
 ここで注目すべきは、このゲートは可逆ゲートであることだ。実際、図の下段に示すように、入出力のラベル(論理式)はそのままで矢印だけを逆向き(3入力2出力)にすることで、その事実がわかる。
 さて、少し複雑なのが、In1とIn2に共にボールが投入された場合である。その動きを図2に示した。ここでは、見やすくするため、青と赤のボールを使っているが、本来はその区別は必要がない。入力側、出力側共に、とにかくボールが出現していれば1であり、出現しなければ0だということだけで十分なのである。
 なお、動作の簡単なアニメーション(衝突と反射を反映したスマホアプリ)を自作したので、以下にそのgif画像を示す。

Fredkinゲートをビリヤードボールのスイッチゲートで作る
 上記のスイッチゲート4個を用いて、最初に示したFredkinゲート(図3)を作ることができる。4個のうち2個は、上で述べた可逆性を使って逆向きにしたものが接続されている。結論から言うと、仮にスイッチゲート自体は作成できたとしても、それを組み合わせて、Fredkinゲートを構成するには超絶技巧が必要だ。すなわち、スイッチゲート間を流れるボールを反射させる鏡を適切に設置する必要がある上、衝突すべき時に衝突し、そうでない時には衝突しないように、経路上に適切に遅延を与える必要があるからである。もしも、それが実現できれば、Fredkinゲートは、図3に示すような、3入力3出力の論理ゲートとして使うことができる。
感想
 本書第6章は、量子コンピューティングの基本原理(量子のsuperpositionやentanglement,
Bell's theoremなど)が終わり、次に量子ゲート、量子回路に入る直前の章である。著者は、
「このFredkinゲートはこの後の量子回路に直接必要なものではないが、類稀なる独創性に感銘を受けて本章に含めた」と述べている。小生にもそれが分かった気がするのである。

References
[1] Chris Bernhardt, “Quantum Computing for Everyone”, MIT Press, 2020 

2022年11月10日木曜日

My understanding of the Quantum Key Distribution Protocol Ekert (E91)

Japanese abstract
前報は、単一量子ビットを利用する量子鍵配送プロトコルBB84の説明であったが、今回は、「もつれた状態」の2つの量子ビット対のストリームを利用した安全な鍵配送プロトコルEkertを説明する。これは、すでに本ブログで紹介した「Bellのテスト(Bellの不等式)」に基づいている。このような量子ビットを受け取った2者が、それぞれランダムに選択した正規直交基底を使ってそれを測定する。その結果の両者の古典ビット列の一致度が盗聴の有無を明らかにする。この記事は、Prof. Chris Bernhardtの著書[1]に基づいているが、小生が理解した内容を独自の観点からまとめたものである。

English Abstract
In my previous article, I described the quantum key distribution protocol BB84, which uses a single qubit. Here I describe the Ekert, a secure key distribution protocol that uses a stream of two qubit pairs in an entangled state. This is based on Bell's test (Bell's inequality) which was already introduced in this blog. Two parties that receive such qubits each measure them using randomly chosen orthonormal bases. The degree of matching between the two resulting classical bit strings reveals the presence or absence of eavesdropping. This article is based on Prof. Chris Bernhardt's book [1] and explains the Ekert from my own point of view.

Measure qubits in different orthonormal bases
First, let's see what happens when we measure the received qubits in a different orthonormal basis than the one from the sender. In the following, for simplicity, the orthonormal bases will simply be referred to as bases. Here, one is randomly selected from the three types of bases shown in Fig 1. Bases D000, D120, and D240 correspond to setting the orientation of measurement apparatus to due north, southeast, and southwest, respectively.
    Next, Fig. 2 summarizes how each ket vector (vertical vector) of the basis used for measurement on the transmitting side is expressed in a different basis. In general, the state of a qubit will be a linear combination of the ket vectors of the chosen basis. The probability that a measurement result falls to a ket vector is the square of the coefficient of that ket vector.
    As already shown in Bell's test, Fig. 2 reveals an important point. If the measurement result in the original basis is 0 (falling to the first ket vector), it will be 0 with a probability of 1/4 when measured in another different basis. Also, if the measurement in the original basis is 1 (falling to the second ket vector), it will be 1 again with a probability of 1/4 when measured in a different basis.
    That is, there is a 1/4 probability that a measurement on the original basis agrees with another measurement on a different basis. This is a theoretical value, but if you send enough qubits and measure them, it should approach this probability infinitely.

How the quantum key distribution protocol Ekert works
With the above preparation, we can describe the Ekert protocol. Suppose we send a stream of two qubit pairs to Alice and Bob. Importantly, paired qubits are always in the entangled state 
(1/√2) |↑〉|↑〉+(1/√2) |↓〉|↓〉.
 Both will each receive one of the pair. My description will be made below with reference to Fig.3.
    Note that the entangled states
(1/√2) |↑〉|↑〉+(1/√2) |↓〉|↓〉 
        and  
(1/√2) |↘︎〉|↘︎〉+(1/√2) |↖︎〉|↖︎〉
are exactly the same. This fact is proven in reference [1], but is omitted here.
    Suppose that Alice performs measurements on the selected basis D120 (see Figure 1) before Bob does. For example, if the result is 0 (ie, |↘︎〉|↘︎〉), Bob's qubit will also be |↘︎〉 because of the entangled state. Bob measures it on a randomly chosen basis. If the basis is different from Alice's, he gets 0 with probability 1/4, from the fact already revealed in Fig2. Similarly, if Alice's measurement result is 1, Bob's measurement result will be 1 with probability 1/4.
    Now, after all qubits have been processed, Alice and Bob exchange their lists of bases (not measurement results) of their choice. In that case, secure communication is not particularly required. Since there are three types of bases that can be selected by both, the two bases match in 1/3 of the total cases. Qubits always give the same result when measured on the same basis. Therefore, If no eavesdropping has occurred, the measurements with their agreed bases can be the common key.

Why can eavesdropping be detected?
Now consider the case where Eve eavesdrops on an entangled qubit. As I mentioned in the previous BB84 protocol explanation, Eve always needs to set a certain base and use it to make measurements. If measured in such a way, the entanglement will disappear immediately. As a result, the probability that Alice's and Bob's classical bits match will change. For example, if Eve eavesdrops before Alice's measurements, we find that the entanglement disappears and the probability that Alice and Bob's classical bits match increases to 3/8. In other words, when the bases of Alice and Bob are different, if the probability that the classical bits of both match is 1/4, it can be said that there was no eavesdropping.
Acknowledgments
Thanks to Prof. Chris Bernhardt, author of reference [1], for kindly answering some of my questions about entanglement and Bell's inequality.
    I used the illustration (icon) of the Qni quantum circuit simulator[2] to show the qubit vectors..

References
[1] Chris Bernhardt, “Quantum Computing for Everyone”, MIT Press, 2020 

2022年11月6日日曜日

Amazon AlexaとMIT App Inventorのコラボ

【要旨】自然言語による応答システムとして、SiriやGoogleアシスタントなどを多くの人が利用しています。しかし、それらを組み込んで自分に必要な応答システムを自作するのは敷居が高いと言えるでしょう。今回、Amazonが10年間に渡って培ったAIによる自然言語処理AlexaとMIT App Inventorがコラボして、素晴らしいシステムをユーザに提供し始めました。まだ、全くの入り口に過ぎませんが、試用してみました。

Amazon AlexaとMIT App Inventorのコラボ
 下図のようなアナウンスがあり、いくつかのYoutube動画などでも紹介されています。これは初心者向けのチュートリアルですが、ビデオや資料を見ていると色々な魅力、可能性が感じられます。MITでは、自然言語でアプリの仕様を喋ることによって、現在のようなアプリ(処理ブロック)を自動生成するプロジェクトAptlyを進めています。今回のコラボは、Amazonの強力な自然言語処理を利用することで、Aptlyを推し進めることに繋がるのだと思います。(Aptlyについてはこちらで簡単に紹介しました。)

自然言語による自分なりの応答システムを作る道が拓けそう
 上記の情報をもとにして、簡単な自然言語による応答をテストしてみました。スマホ(AndroidまたはiPhone)とAlexaをCloud DBで連携させるものです。Alexaのデバイスを持っていれば良いのですが、それがなくても、PC上のエミュレータを使うことができます。また、Amazonの通常のアカウントの元で、「Developer ID」を取得しておく必要があります。上記URLの説明には、"no Amazon device or account required."と書いてあるのですが、"no account"は、教室の場合は先生だけがaccountを持っていれば良い、ということのようです。

 この簡単な例では、スマホからメッセージをCloudDBへ格納し、それをAlexa側から"get my message"や"what is my message"のように発話をすることで取り出しています。また、逆に"send the message"や"post the message"などと発話してCloudDBへ送り、スマホ側でそれを取り出します。ユーザは、"get ..."や"what is ..."などをIntentに登録できますが、必ずしもそのように発話しなくても、それらに近い言葉を使っても、AI自然言語処理が適宜判断できます。

 これは簡単な例に過ぎませんが、それでも、自分なりの特色ある応答システムを作れそうな気になりませんか?しかもそれを、これまで通り、MIT App Inventorの環境のままで実現できそうなところが素晴らしいです。今までは作れそうもないと思っていた人にとっても、新しい世界が拓けるように思います。
(追記)
 AmazonのAlexaは本来、日本語もできるのですが、このコラボに関しては日本語による命令は(現時点では多分)できないようです。ただし、メッセージの内容そのものは日本語でもOKであり、日本語のText-to-Speech、Speech-to-Text、CloudDBへの格納検索はもちろんできます。

2022年11月4日金曜日

量子鍵配送プロトコルBB84をスマホアプリで確認

abstract: 理論上(計算上)は明確になっている事項でも、実際に一歩づつトレースして理解することは意味があると考えました。AliceからBobへ、長い古典ビット列を送信することを想定します。問題は、それをEveに盗聴される可能性です。しかし、量子コンピューティングの世界では、Eveが盗聴すれば必ず露呈するという、量子鍵配送プロトコルBB84があります。そのエッセンスを、自作したスマホアプリを使って説明を試みました。

【改訂】2023-05-28、後半に「実際にBB84を構成するには」を追加し補足した。

Check the quantum key distribution protocol BB84 with a smartphone app
Even if the conclusion is known in theory, it is useful to deepen understanding by actually proceeding step by step. Now imagine sending a long string of classical bits from Alice to Bob. The problem is that it can be eavesdropped on by Eve. However, in the world of quantum computing, there is a quantum key distribution protocol (BB84) that if Eve eavesdrops, it will always be revealed. This time, I will explain the essence using a self-made smartphone app.

量子鍵配送プロトコルBB84の概要
 このプロトコルは1984年に発表されたもので、量子ビットの重ね合わせ(Quantum Superposition)を利用している。ここでは、単一量子ビットをひとつづゝ連続して送信するので、量子もつれ(Quantum Entanglement)は無い。(量子もつれ状態の量子ビット対の送信用には、Ekertプロトコルがあるが、それは別記事とする。)

 図1は、BB84の原理を確認するためのアプリである。量子シミュレータではない。Aliceは、例えば古典ビット2048個(これを暗号鍵にするつもり)の4倍の8192個を用意するが、これをそのままBobへ送信はしない。代わりに、2種類の2次元正規直交基底(以後、単に基底と呼ぶ)HかVを各ビット毎にランダムに選択して、ビット値に対応する、基底のケットベクトル(縦ベクトル)を送信する。古典ビット0と1は、それぞれ、基底の1番目と2番目のケットベクトルに対応させている。つまり、量子ビット(の状態ベクトル)を送信するのである。具体例は後で示す。
 Bobは、受信した量子ビット毎に、ランダムに(Aliceとは無関係に)同様にHかVを選択して、それによって量子ビットを「測定」する。その結果として、全部の受信が完了後には、Aliceと同じ長さの古典ビット列(8192個で構成)を得る。AliceとBobの持つこの古典ビット列の合致度によって、盗聴の有無を判定できるのである。

  Eveが盗聴する場合、受信量子ビットをそのままBobへ転送して自分はそのコピーを盗聴する、ということは量子原理から不可能である。盗聴するには、受信した量子ビットを必ず「測定」し、その結果としての量子ビットをBobへ転送するしかない。測定前の量子ビットは、(日常思考からは不思議なことだが)量子基本原理として、0に対応するか1に対応するかは決まらない。また、測定するには、どの基底を用いるかを決める必要がある。基底の選択によって0か1かに決まる確率は変化するが、Eveにとっては、ランダムに基底を選択する以外に方策がない。

正規直交基底と量子ビットの重ね合わせと測定
 上で述べた基底とその測定について、具体例で説明する。ここで選択できる基底VHは以下のようなものである。
 一般に量子ビットは、基底(|u>, |v>)を用いる場合、以下のような状態にある。これは量子重ね合わせ状態(Quantum Superposition)と呼ばれる。そして測定を行うと|u>か|v>のどちらかに確定する。つまり、0か1かになる。その確率は、それぞれの係数の2乗で決まる。
 ある量子ビットに対して同一基底を適用するのならば、何度測定しても必ず同一の結果になる。しかし、異なる基底で計測した場合は、0と1のどちらに倒れるかの確率は、基底のケットベクトルの係数(振幅確率)の平方となる。振幅確率の求め方は、参考文献[1]にあるので、それを使って、基底H, Vの場合を計算すると以下のようになる。
 このことから、HとVを使う限り、元の計測と今回の計測で異なる基底が使われる場合は、ちょうど確率0.5(= (±1/√2)の平方)で元の計測結果と同一となることが分かる。そこがポイントである。

盗聴があったとすれば何が変化するのか
 以上の準備をした上で、盗聴の有無で何が異なるのかを図2で見てみよう。すでに述べた通り、Eveが盗聴するとすれば、Eveは盗聴した量子ビット毎に、ランダムに基底HかVをに選択し、測定しなければならない。その結果として②に示された量子ビット列をBobへ送る。すなわち、Bobは本来の①の量子ビットとは異なる②を受信することになる。
 それにより、Bobの測定結果は本来のものと異なるであろう。Bobの測定結果として得られる古典ビット列は、Aliceが元々設定した古典ビット列と比較される。盗聴されていない場合は、上に述べた手順から、AliceとBobがそれぞれ選択した基底(H, V)は0.5の確率で一致するので、古典ビット列の少なくとも1/2が一致する。さらに、すでに述べた通り、異なる基底で測定したケースでは(量子ビットの重ね合わせにより)、確率0.5で両者の古典ビットが合致する。結局、(1/2)+(1/2)*(1/2) = 3/4 = 0.75の確率で両者の古典ビットは合致する。
 一方、盗聴があった場合は、Eveによる基底選択が加わるので、AliceとBobの基底の一致確率は(1/2)*(1/2)に低下する。そして、基底が一致しない場合のAliceとBobの古典ビットの一致確率は3/8となる。結局、確率(1/4)+(3/8)=5/8 = 0.625でAliceとBobの古典ビットが一致する。従って、最終的にAliceとBobの古典ビットの一致確率が0.75であれば盗聴は無く、0.625であれば盗聴されたと結論付けられる。

実際にBB84を構成するには
 これで理論は説明された。上の説明から、AliceとBobの選択した基底が一致する回数は2nとなる。その合致した基底でBobが測定した結果のビット列は、Aliceが持っているビット列と一致する。従って、盗聴がないと仮定すれば、Aliceはその2n長のビット列をBobに送らずに、両者がキーとしてそのビット列を共有できる。
 だが、実際には、Aliceは基底の量子状態ベクトルをBobに送信しているのでその盗聴の有無を確認しなければならない。そこで、両者はこの2n長のビット列の半分のn長のビット列を「暗号化しない通常通信」で送り合って、その一致度を確認する。もしも完全に一致すれば盗聴はないと言える。一方、その1/4が一致しなければ盗聴があったと言える。(そこでは、盗聴するにはその量子ビット(量子状態ベクトル)を測定する必要があり、そうすれば、Bobに送られるべき量子の状態は変化することを巧みに利用している。)
 盗聴がないと分かった場合には、合致した2n長のビット列の残りの半分であるn長のビット列をキーとして安全に使える。(実際には2n長が合致しているのだが、上記通常通信により、そのうちの半分は他人に知られている可能性があるためである。)

AliceとBobの持つ情報の一致度をスマホで計算
 ここでようやく前述のスマホアプリが登場する。今回は、両者の選択基底が異なる場合の振幅確率の平方はいずれの場合も0.5であった。このため、重ね合わせ状態にある量子ビットの測定結果は単にコイントス乱数で決めることができる。ただし、本当は、その乱数が「真の乱数」であることが求められる。スマホの数学ライブラリの乱数でも、非常に多く発生させれば問題は生じないだろう。図3には、Aliceが8192個の古典ビットを乱数で一つづゝ発生させた場合の結果を示している。
 盗聴なしとありの場合の両方とも、AliceとBobの最終的な古典ビットの一致度は、上に述べた数値とほぼ同一(小数点以下3桁まで一致)となった。このことから、BB84の理論通りの結果が得られたと言える。

参考文献
[1] Chris Bernhardt: Quantum Computing for Everyone, The MIT Press, 2020.