量子準同型性に基づく安全なマルチパーティ量子加算暗号化

まとめ
安全なマルチパーティ計算は、古典的な暗号化において常に重要な役割を果たしてきました。量子準同型暗号化 (QHE) は、暗号化されたデータを復号化せずに計算を実行できます。現在、ほとんどのプロトコルは、参加者の秘密を保護するために半正直なサードパーティ (TP) を使用しています。すべての当事者のプライバシーを保護するために、TP の代わりに量子準同型暗号化スキームを使用します。量子準同型暗号化に基づいて、N 人の参加者が計算を支援する強力な量子コンピューティング機能をサーバーに委託できる、安全なマルチパーティ量子和スキームが提案されています。計算と鍵の更新プロセスをサーバーと半正直な鍵センターに委任することで、参加者はパウリ演算子を使用してプライベートメッセージデータを暗号化し、合計を取得します。さらに、サーバーは独自に集計ラインを設計および最適化することができ、秘密情報が負の場合でも正しい結果を得ることができます。正確性分析の結果、参加者は計算結果を正しく取得できたことがわかりました。セキュリティ分析により、このスキームは外部からの攻撃と参加者自身による攻撃の両方に抵抗でき、最大 N-2 人の参加者による共謀攻撃にも抵抗できることが証明されています。理論的には、このプロトコルは他の安全なマルチパーティ計算問題に一般化できます。

QOTP

量子準同型暗号方式には 4 つのアルゴリズムがあり、各アルゴリズムの実装プロセスは次のとおりです。

  1. 鍵生成アルゴリズム。クライアントは、セキュリティ パラメーターの単項表現をアルゴリズムへの入力として使用し、一連のキー、つまり古典的公開暗号化キー pk、古典的秘密復号化キー sk、および量子評価キー ρ evk ρ_evk を取得しますrvk _
  2. 暗号化アルゴリズム。クライアントは、平文情報Mを暗号鍵pkの値に従って暗号化し、暗号化情報Cをサーバに送信する。暗号化は、複数の X ゲートと Z ゲートを組み合わせた結果です。
  3. 準同型評価アルゴリズム。サーバは、受信した暗号化情報Cに対して単項演算子Uを実行し、評価情報Eをクライアントに送信する。このプロセスでは、量子評価キーが消費されます。
  4. 復号化アルゴリズム。サーバがユニタリー演算子 U を実行するため、クライアントは受信した評価情報 e を復号化するために復号鍵 sk を更新します。クライアントの復号化された情報は、本質的には平文情報 M に作用するユニタリ演算子 U です。

OTP の暗号化式は次のとおりです.
ここに画像の説明を挿入します
この暗号化式に基づくバリアントは次のとおりです:
ここに画像の説明を挿入します
サーバーが T ゲートまたは Ty ゲートの評価を実行すると、予期しない s エラーが発生します.
ここに画像の説明を挿入します
評価結果に対して X と Z のみが実行された場合、完全に取得できていないため、T|φ>、s エラーが発生する可能性があります。s誤差を排除するために、Gongらはu回転ベル測定のアイデアに基づいて、図に示すような量子回路を設計し、tゲートの準同型評価プロセスを完成させました。
ここに画像の説明を挿入します
暗号化キー a の値に従って、クライアントはS aの回転ベル測定を実行し、r と t の値を取得します。キー更新アルゴリズムに従って、クライアントは復号キーをa ⊕ ra\oplus rに更新します。あるrwaa r ⊕ ta\oplus r \oplus tあるrt、 t ゲートの評価を完了するために復号化アルゴリズムで使用されます。
ここに画像の説明を挿入します

量子全加算回路

このセクションでは、古典的な 2 進加算に基づいて量子全加算器回路を構築する方法について説明します。2 つの符号なし 2 進数 A=(a0,a1,…,a n-1 ) と B=(b0,b1,…,b n-1 )があるとします。これら 2 つの数値の合計は C = (c0, c1,…,cn) です。ここで、q はキャリー量子ビットです。
ここに画像の説明を挿入します
2 進加算には XOR 演算と AND 演算が含まれます。量子回路の CNOT ゲートと Toffoli ゲートは両方の操作を実行します。CNOT ゲートと Toffoli ゲートで構成される 2 要素全加算回路、2 ビット量子全加算回路を次の図に示します。
ここに画像の説明を挿入します
Toffoli ゲートは 2 つの H ゲート、1 つの S ゲート、6 つの CNOT ゲート、3 つの t ゲート、4 つの ty ゲートに分解でき、詳細な回路は下図に示されています。
ここに画像の説明を挿入します
Toffoliゲートの詳細な分解回路は、2ビット量子全加算器を実現するための基本要素です。これは、3 量子ビット ゲートの実装を 1 量子ビット ゲートと 2 量子ビット ゲートの組み合わせに変換します。これは、ある程度の実験と技術的な実装が容易です。

私たちのプロトコルでは、暗号化される参加者のメッセージは、水平偏波と垂直偏波を利用することで表現できる古典的なバイナリ データです。垂直偏光子 |1> は 1 を意味し、水平偏光子 |0> は 0 を意味します。すべてのフォトンは、送信前に QOTP を使用して暗号化されます。暗号化されたメッセージが従来型の場合、QOTP を使用して完全に安全な暗号文を生成できることに注意してください。
ここに画像の説明を挿入します

N 人の参加者 (P1、P2、…、Pn) がいると仮定します。各参加者は、自分だけが知っている長さ m の秘密メッセージ Ii を保持しています (i = 1、2、…、N)。これらはサーバーと信頼できるキー センターの助けを借りて Ii の合計を計算できます。これらと TP 間の通信モデルは上の図に示されています。計算のオーバーフローを防ぐには、安全パラメーター K が必要です。ここで、K = [log2(N)] + 2。以下の図に、このシナリオのフローチャートを示します。
ここに画像の説明を挿入します

  1. キー センターは長さ 2m の N 個のキーをランダムに生成し、安全なキー配布プロトコル (BB84 プロトコルなど) を使用してKeyi 0 Key^0_iケイ_0参加者 Pi に送信されます。
  2. 参加者の秘密情報I i I_iの場合私は数値は正またはゼロであり、参加者は 0-1 コードを使用して何もする必要はありません。それ以外の場合は、0-1 コードを 2 の補数に変換します。次に彼らは、一連の光子∣ ψ 1 i . . . ∣ ψ Mi |\psi^i_1\rangle...|\psi^i_M\rangle を準備しました。ψ1私は...∣ ψM私は 0-1 エンコーディングに基づいて、B inji = 1 Bin^i_j=1ビン_ _j私は=1,则∣ ψ ji ⟩ = ∣ 1 ⟩ |\psi^i_j\rangle=|1\rangleψj私は=∣1;如果 B i n j i = 0 Bin^i_j=0 ビン_ _j私は=0,则∣ ψ ji ⟩ = ∣ 0 ⟩ |\psi^i_j\rangle=|0\rangleψj私は=∣0 ._ _ 次に、Keyi 0 Key^0_iケイ_0光子列を暗号化し、 QOTPに基づいて ∣ Ψ 1 i . . . ∣ Ψ M i |\Psi^i_1\rangle...|\Psi^i_M\rangle を取得します。Ψ1私は...∣ ΨM私は =X a 1 ( 0 ) Z b 1 ( 0 ) ∣ ψ 1 i ⟩ 。X a M + L ( 0 ) Z b M + L ( 0 ) ∣ ψ Mi ⟩ X^{a_1(0)}Z^{b_1(0)}|\psi^i_1\rangle...X^{ a_{M+L}(0)}Z^{b_{M+L}(0)}|\psi^i_M\rangleバツある1( 0 ) Zb1( 0 )ψ1私は... XあるM + L( 0 ) ZbM + L( 0 )ψM私は._ _ 最後に、キー センターはセキュリティ パラメーター k に基づいて 2K のゼロ キーを追加します。
    参加者は、長さ |0> の k 個の光子を光子列の前に追加すると、新しい光子列は∣ 0 1 . . . ∣ 0 k ∣ Ψ 1 i 〉 . . . ∣ Ψ M i |0_1\rangle ...| となります。 0_k\rangle|\Psi^i_1\rangle...|\Psi^i_M\rangle01...∣ 0Ψ1私は...∣ ΨM私は.負の情報を持つ参加者は、光子列の前に長さ k |1 > 光子を追加し、新しい光子列は∣ 1 1 . . . ∣ 1 k ∣ Ψ 1 i . . . ∣ Ψ M i | 1_1\rangle... となります。 |1_k\rangle|\Psi^i_1\rangle...|\Psi^i_M\rangle11...∣ 1Ψ1私は...∣ ΨM私は
  3. 盗聴を防ぐために、参加者は Di おとりフォトンを用意し、自分のフォトン シーケンスにランダムに挿入しました。各フォトンは {|0>、|1>、|+>、|−>} から選択され、新しいフォトン シーケンスはサーバーに送信されます。
  4. サーバーが光子シーケンスを取得すると、参加者は挿入されたおとり光子の位置を発表しますP oi Po^i_i b a s e B a i base Ba^i 彼らはBいます私は挿入された餌が |0> または |1> の場合、測定基数は {|0>、|1>}、挿入された餌が |+> または |−> の場合、測定基数は |+> または |- です。 >。サーバーは測定結果に基づいて精度を計算し、精度があらかじめ設定したしきい値よりも低い場合、盗聴者の存在を示してプロトコルを終了します。それ以外の場合、サーバーはこれらのおとりフォトンを破棄し、次のステップに進みます。
  5. サーバーは、各参加者の光子のシーケンスを回路への入力として使用して、量子全加算器回路を構築します。評価操作では、鍵センターは、量子ゲートおよびサーバーによって実行される量子ゲートの鍵更新アルゴリズムに従って鍵を更新します。サーバーが量子回路内のすべての量子ゲートの実行を完了すると、鍵センターは最終的に更新されたKeyifinal Key^{final}_iを取得します。ケイ_最終_ _、これが復号化キーです。サーバーは計算結果をキーセンターに送信します。
  6. キーセンターは、復号キーを使用して光子シーケンス内のすべての光子を復号して測定し、測定結果をすべての参加者に公開します。次に、参加者はビットのシーケンスを計算して秘密メッセージの合計を取得します。

準同型評価アルゴリズムのステップ 5 では、サーバーが暗号文に対してクリフォード ゲート操作を実行すると、クリフォード ゲートとパウリ行列の間の交換規則に従って、追加の古典リソースや量子リソースなしで新しい中間鍵を取得できます。サーバーによって実行される i 番目のクリフォード ゲート操作が Gi として定義され、光子シーケンスGi \psi\rangleに作用すると仮定します。G私はバツある( j ) Zb( j )ψk 番目のもの、 (Gi = CNOT の場合、入力量子ビットはそれぞれ k と l なので、Gi) Z bl ( j ) ∣ ψ G_iX^{a_k(j)}Z^{b_k(j) }|\psi\rangle\otimes G_iX^{a_l(j)}Z^{b_l(j)}|\ psi\rangleG私はバツある( j ) Zb( j )ψG私はバツある( j ) Zb( j )ψここで Gi∈{X, Y, Z, H, T, S, CNOT}, ak(j), bk(j) は (j+1) 中間キーです。演算 Gi と鍵更新アルゴリズムの場合、j+1 番目の中間鍵の計算プロセスは次のとおりです。
ここに画像の説明を挿入します
任意のユニタリ演算子は H、S、CNOT、および T ゲートで構成でき、クライアントは T ゲートの鍵更新を必要とします。サーバー上であらゆる単一操作を実行できるようになります。しかし、T ゲートが暗号化された量子ビットに作用すると、S エラーが発生します。

おすすめ

転載: blog.csdn.net/Chahot/article/details/132021784