最新のコンピューティング テクノロジに精通している場合は、おそらく量子コンピューティングの概念について聞いたことがあるでしょう。専門用語はこの分野を少し威圧的で難解に聞こえるかもしれませんが、量子コンピューティングの原理とそのアプリケーションは、十分な知識と経験があれば直感的なレベルで理解できます。
量子コンピューティングは、量子力学などの物理法則を利用して、従来のコンピューターよりもはるかに高速に計算を実行します。これにより、金融モデリング、最適化、量子通信、 量子暗号(この記事の後半で詳しく説明します) など、何千もの潜在的なアプリケーションへの扉が開かれます。技術が進歩し続けるにつれて、最終的には量子コンピューティング戦略を採用するコンピュータ システムが増え、幅広いアプリケーションを可能にし、基本的な物理原理を適用して一般的な問題を解決するようになります。
この記事では、量子回路の簡単な概要と、それを機能させる量子力学の原理について説明します。
量子回路の詳細に入る前に、量子回路が何で構成されているか (量子ゲートと量子ビット) を明らかにしましょう。
おそらくあなたが現在使用しているもののような古典的なコンピューターは、情報を転送するためにビットに依存しています。ビットは、0 と 1 の 2 つの値のいずれかになる状態を表します。ビットを組み合わせてバイナリを作成し、数値からテキストに至るまでのあらゆる情報を表すために使用できます。たとえば、数値 12 は 2 進数では 1100 で表されます。これは、バイナリの基数が 2 であるため、可能な値スロットは 2⁰、2¹、2³、2⁴ などになる可能性があるためです。この概念を適用すると、12 を 2 進数に変換すると次のようになります。
8 4 2 1 1 1 0 0 -> 8 + 4 + 0 + 0 -> 12
8 と 4 を足すと 12 になることがわかっているので、8 と 4 には 2 進数で 1 の値が割り当てられます。一方、2 と 1 は 12 の出力を生成することとは無関係であるため、両方に 0 の値が与えられます。これにより、数値 12 の最終的なバイナリ値 1100 が得られます。
ビットの原理を量子コンピューティングに適用して、キュービットを理解することができます。キュービットは、ビットと同じようにコンピューターの状態を表すために使用されますが、ビットとは異なり、状態の重ね合わせで存在できます。つまり、0 と 1 の両方を同時に表すことができます。しかし、これはどうしてでしょうか? 1 つの単位で両方の可能な値を同時に表現するにはどうすればよいでしょうか?
重ね合わせをさらに理解するために、類推を使用しましょう。コインを空中に投げ上げることを想像してください。コインが空中にある間、コインは表と裏の値を同時に表す重ね合わせの状態にあります。コインが地面に落ちて重ね合わせの状態が崩壊し、表または裏のいずれかになる場合にのみ、コインの価値を明確に知ることができます。同様に、量子力学では、キュービット (別名、量子ビット) は、0 と 1 の両方の値を表す状態で存在できます。キュービットが 0 または 1 に崩壊した場合にのみ、キュービットの明確な状態を知ることができます。
量子ゲートは、回路内の論理ゲートに非常に似ています。論理ゲートは、古典コンピューターと量子コンピューターの両方に適用され、バイナリ入力 (つまり、0 と 1、スピンアップ電子とスピンダウン電子、猫と犬など) を取り込んで単一の結果になる構造です。ブール関数と呼ばれるシステムを使用して、値 (つまり、1、スピンアップ電子、およびドッグ) を計算します。これらのゲートを一緒に使用して、堅牢な回路を作成できます。量子ビットを導入すると、古典的なゲートと量子ゲートの違いが明らかになります。量子ゲートと古典ゲートの違いは、重ね合わせ、可逆性、エンタングルメントです。自由に量子力学を持たない古典的なゲートとは異なり、量子ゲートはどの値が通過するかに関する情報を保持できるため、本質的に可逆的になります。量子ゲートを通過したものはすべて逆にすることができますが、同じ原則は古典的なゲートには適用されません。つまり、量子ゲートを使用して、入力を特定の目的の出力に操作します。
学ぶべき最後の重要な概念はもつれです。量子エンタングルメントは、2 つ以上の粒子の状態が相互に関連し、相互に依存するときに発生します。これにより、研究者は、粒子間の距離に関係なく、他の粒子の状態を測定することで、1 つの粒子の状態を判断できます。たとえば、上向きスピン粒子と下向きスピン粒子の両方が存在する場合、上向きスピン粒子の状態を参照することで、下向きスピン粒子の構成を正確に推測できます。エンタングルメントは、量子アルゴリズム、特に安全な通信チャネルに依存するアルゴリズムをさらに調査すると重要になります。
ベクトルを使用した状態表現を深く掘り下げる前に、ベクトルに関する予備知識を理解しておくことが重要です。
量子物理学では、システムの現在の状態を記述するために状態ベクトルが使用されます。状態ベクトルは、ベクトル内の数値のコレクションをホストします。ベクトル内の各要素には、量子ビットが特定の状態にある確率が含まれます。
簡単な例は次のとおりです…
上の画像は、測定時に確実に 0 を出力する量子ビット |0⟩ を示しています。同様に、|1⟩ で示される 1 を出力する量子ビットも存在する必要があります。状態間に収束がないため、これら 2 つの状態は相互に排他的であることがわかっています (キュービットは 0 または 1 を出力します)。これは、上で直交ベクトルによって表されます。以下のもう少し複雑な例に同じ概念を適用できます…
上の画像 (|q0⟩ で示される) は、単なる |0⟩ と |1⟩ よりも微妙な状態を表しています。上記の量子ビットは、次のように書き換えることができます。
この状態は、出力が完全に |0⟩ または |1⟩ ではなく、重ね合わせとも呼ばれる 2 つの線形結合である、キュービット q0 の状態ベクトルを示しています。
重ね合わせの抽象的な現象を視覚化するために、量子物理学者はブロッホ球と呼ばれる数学的ツールを使用して、量子ビットの可能な状態を視覚化します。ブロッホ球上の任意の点が、量子ビットの可能な状態になることができます。以下の画像は、シータ = pi / 2 およびファイ = 0 の |+⟩ の状態のキュービットを視覚化します。
動作中の量子ビットと量子ゲートを示すために、入力が左側に、出力が右側に示されている回路図を見ることができます。間にある操作は、あいまいな記号で表されるゲートです。これは、標準的なビットベースのコンピューターの典型的な回路です。入力信号は A、B、および C であり、これらはすべて回路に渡され、その間のゲートによって操作されて、結果の信号 Q が生成されます。これは、古典的な回路を視覚化した古典的な回路図です。
量子回路図は、固有の可逆性も考慮に入れる必要があるため、この回路規則をさらに高めます。したがって、それらは少し異なって見え、古典的な回路とはいくつかの異なる規則に従います。量子回路は次のようになります...
この回路をコンポーネントに分解してみましょう。
量子回路と古典回路の主な違いは、量子回路では量子ビットが水平の直線で表示されるのに対し、量子ゲートでは入力量子ビットと出力量子ビットの数が同じであるのに対し、古典回路ではさまざまな方向に進むことができるビット線があることです。
パウリ X ゲートは、量子ゲートの内部動作を簡単に紹介します。その目的は非常に単純です: 否定です。従来の NOT ゲートと非常によく似たパウリ X ゲートは、キュービットの状態を反対の値に反転します。これは、以下の真理値表で概説されています。物理的な世界に適用されると、X ゲートの機能は、電子のスピンアップ状態をスピンダウン状態に、またはその逆に変えます。
|0> → |1>または|1> → |0>
X ゲートと同様に、Pauli Y ゲートは次の変換を行う単一の量子ビット操作です。
|0> → -i|1> AND |1> → i|0>
これは、ブロッホ球の Y 軸を中心に量子ビットを回転させることで表示できます。
パウリ Z ゲートも、 |1> → -|1>をマップし、|0> を変更しない単一の量子ビット操作です。 Z ゲート操作は、ブロッホ球の z 軸を中心とした pi ラジアンによる回転によって視覚化できます。
パウリ X、Y、Z ゲートのブロッホ球表現
アダマール ゲートは、量子コンピューティングで使用される最もユビキタスなゲートです。これは、次のマッピングをもたらす単一の量子ビット操作です。
∣0> → (|0> + |1>)/√2 AND ∣1> → ( |0> — |1>)/√2
これにより、2 つの基本的な量子ビット状態の等しい重ね合わせが作成され、状態が 1 または 0 になる確率が等しいことを意味します。
制御されたゲートは、2 つ以上のキュービット操作であり、複数のキュービットがキュービットに対する何らかの操作の制御として機能できます。たとえば、CX、CY、および CZ ゲートです。
コントロールドXゲート
CX ゲートとも呼ばれる制御された x ゲートは、2 つの量子ビットに作用し、最初の量子ビットの状態が |1> の場合、2 番目の量子ビットに対して NOT 操作を実行します。
この記事でカバーできる範囲を超えるゲートは他にもたくさんあります。他の量子ゲートとその機能を詳しく調べたい場合は、Qiskit による量子操作とゲートのこの概要を調べることをお勧めします。
以下のこの例の回路を分析するために適用することにより、量子回路の知識をさらに活用しましょう…
上記の回路例では、エンタングル状態を作成するために、2 つのアダマール ゲートと CNOT (別名 CX) ゲートを使用しています。
最初に、2 つのアダマール ゲートを適用して重ね合わせ状態を作成し、次に CX ゲートを適用します。量子ビットの初期状態は |0⟩ です。
その状態をアダマール ゲートに渡すと、|+⟩ が出力されます。この回路には 2 つのアダマール ゲートがあるため、2 つの値のテンソル積 |+⟩ ⊗ |+⟩ が得られます。この場合、CX ゲートを適用しても何も行われないため、この結果は |00⟩ + |01⟩ + |10⟩ + |11⟩ の出力になります。
この回路を操作すると、出力は同じ確率で 4 段階になるはずです。
ブロッホ球を使用して各量子ビットの状態ベクトルを視覚化すると、各量子ビットにアダマール ゲートを適用すると、Z(|0⟩, |1⟩) から X 基底に切り替わり、下の画像に示すように、CXゲートは何も変更しませんでした…
量子回路は、量子系の振る舞いをシミュレートする量子シミュレーション、金融から物流までの幅広い分野での複雑な最適化問題の解決、それらのような機械学習アルゴリズムなど、幅広いアプリケーションを持っています。画像と音声の認識、および暗号化などのサイバーセキュリティ アプリケーションに使用されます。
通信のセキュリティを確保するために量子力学をどのように使用できるかを理解するために、量子力学の知識を適用できるようになりました。量子暗号は、暗号化キーを交換してメッセージを暗号化および復号化することにより、2 つの当事者間の通信のための安全なチャネルを可能にします。古典的なコンピューティング テクノロジに依存する従来の暗号化システムは、強力なコンピュータによって迅速に解読および解読できる数学的原理に基づいています。量子暗号は、量子力学の不確実性原理を使用して、盗聴者が検出されずに 2 つの当事者間の通信を傍受することを不可能にすることで、この問題を解決します。
量子暗号を実装するプロトコルの 1 つは、量子鍵配送 (別名 QKD) です。これは、量子暗号の中で最も広く研究されている方法です。 QKD は一連の光子を利用して、鍵と呼ばれるランダムなシーケンスで表される秘密を送信します。これにより、送信の両端で値を比較することにより、キーがいつ侵害されたかを検出できます。電話回線などの古典的な計算システムでは、「盗聴」によって秘密コードを傍受することができます。
ただし、量子暗号化されたキーを観察しようとすると、伝送を通過する光子が中断され、最終的に異なる値につながるため、QKD でこれを行う方法はありません。この現象を示すために、下の画像を参照してみましょう。 Alice と Bob はお互いに秘密鍵を交換したいと考えていますが、お互いに送信するメッセージを Eve が覗き見するのを避けたいと考えています。 QKD を使用することで、アリスは特定の量子状態で光子を送信することにより、安全なメッセージをボブに送信できます。ボブは、アリスが送信した各光子を測定して状態を解読することで、メッセージを解読できます。
不確定性原理は、粒子の量子状態に対して実行されるあらゆる種類の測定が、その状態を無期限に変更することを示しています。 QKD では、アリスからボブに送信された量子粒子をイブが測定しようとすると、粒子の状態が変更されて彼女の存在が明らかになるため、これは保護メカニズムとして使用されます。さらに、イブが送信中に送信された粒子をこっそりとコピーしようとすると、 「非複製定理」のおかげでコピーできなくなります。このシステムは、アリスとボブの両方が、ワンタイム パッドとしても知られる秘密鍵を送信する方法を提供します。イブがメッセージを覗き見しているかもしれません。
QKD は、さまざまなプロトコルをサポートしています。 1つの光子を利用してアリスとボブの間で情報を送信する単一光子QKD 、弱いレーザーパルスを使用して光子状態を送信する弱コヒーレントレーザーパルスQKD、エンタングルされた光子源のペアをアリスとボブに送信するエンタングルドフォトンQKDなどがあります。
QKD が行われる物理量子チャネルでは、光子、イオン、超伝導回路などのさまざまな物理システムが使用されます。光子ベースの QKD の場合、回路は通常、単一光子源、ビームスプリッター、2 つの偏光フィルター、および 2 つの単一光子検出器を使用します。
この回路は、アリスがランダムな偏光状態を持つ一連の単一光子をボブに送信すると、ボブが 2 つの極性状態からランダムに選択して、最終的なキー ビット値を決定する光子を測定するように構成されています。すべての光子が測定されると、Alice と Bob は、従来のチャネルを使用してそれぞれの結果のサブセットを比較し、盗聴の試みを検出できます。
RSA (別名 Rivest–Shamir–Adleman) 暗号化アルゴリズムは、パブリック チャネルを介した通信を保護するために広く使用されているプロトコルです。しかし、量子コンピューターはアルゴリズムに固有の脆弱性をもたらしました。それは、従来のコンピューティング システムの非効率性に依存して大きな数を因数分解することでした。
この脆弱性に対応して、セキュリティ研究者は、Quantum-Safe RSA (別名 QS-RSA) などの複数の耐量子アルゴリズムを開発しました。 QS-RSA は、RSA の修正バージョンであり、従来の RSA 暗号化/復号化機能を保持しながら、代替の量子安全数学関数を使用して公開鍵と秘密鍵を生成します。
もう 1 つの耐量子暗号プロトコルは BB84 です。 BB84 プロトコルでは、バイナリ 0 を直線ベースで 0°、または対角ベースで 45° に設定するように定義します。同様に、バイナリ 1 は、直線ベースで 90°、または対角ベースで 135° で表されます。
まず、アリスはビット列と同じ長さの基数 (直線または対角) をランダムに選択することにより、量子チャネルを介して情報を送信します。続いて、文字列の各ビットが繰り返され、アリスはチャネルを介して同じ偏光の光子をボブに送信します。ボブは光子を受け取ると、各光子の基底をランダムに選択してその極性を測定します。彼が選択した極性がアリスによって送信されたものと一致する場合、彼はアリスが送信したビットを正しく見つけることができます。ビットが Alice が送信したビットと一致しない場合、Bob にはランダムなビットが割り当てられます。
次に、Alice と Bob はパブリック チャネルを介して通信し、Bob が Alice から送信された光子を測定するために使用したベースを通信します。次に、アリスは、ボブがエンコードされたビットに対して正しく推測できたベースをボブに送り返します。その後、Alice と Bob は両方とも、エンコードされたビットと測定されたビットを異なるベースで削除し、シフトされたキーと呼ばれる同一のビット文字列を生成します。
誰かが情報送信を傍受しているかどうかを確認するために (エヘム イブ)、アリスとボブは、一致するはずのシフトされたキーのいくつかのビットを交換できます。交換されたビットのいずれかが一致しない場合、Eve が送信をリッスンしていたことを確認できます。以下の画像は、Eve が Bob と Alice の間の伝送を監視していた例を示しています。 Alice と Bob は両方とも 6 つの一致するベースを持っていましたが、これらのベースのうち 1 つだけが一致し、Eve の存在が明らかになりました。これにより、アリスとボブは別の量子チャネルに戻り、通信を継続します。
全体として、この記事では、量子コンピューティングの背後にある新進気鋭のテクノロジを少し垣間見ることができます。提供された例と説明が、量子回路、エンタングルメント、重ね合わせ、パウリ Y ゲートのような量子ゲート、QS-RSA や BB84 のような量子暗号アルゴリズムとプロトコルなど、量子力学のいくつかの概念を解明するのに役立つことを願っています。量子力学は、通信チャネルを保護するためのより効果的な方法を提供することにより、暗号化に革命をもたらしました。量子力学をサイバーセキュリティ固有のアプリケーションに適用することで、今後数年間、通信方法とデータ保護方法が変化し続けることは明らかです。