Trap Code for Quantum Authentication: Difference between revisions

From Quantum Protocol Zoo
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 1: Line 1:
The ''Trap Code'' is a non-interactive scheme for [[Authentication of Quantum Messages|quantum authentication]]. It appends two additional trap registers in a fixed state, on which a Pauli twirl or a permutation is acted on. It furthermore makes use of error correction codes for encoding the quantum message.
'''Tags:''' [[:Category:Two Party Protocols|Two Party Protocol]][[Category:Two Party Protocols]], [[:Category:Quantum Functionality|Quantum Functionality]][[Category:Quantum Functionality]], [[:Category:Specific Task|Specific Task]][[Category:Specific Task]], [[:Category:Building Blocks|Building Block]][[Category:Building Blocks]]
==Outline==
The ''trap code'' requires a shared pair of secret classical keys. It makes use of an error correction code to encode the quantum message. Consequently, two so-called trap registers in the fixed states <math>|0\rangle\langle 0|</math> and <math>|+\rangle\langle +|</math> are appended. The total register is then encrypted by applying a permutation and a Pauli twirl, each according to the classical keys. The receiver then applies the inverse Pauli twirl and permutation and consequently measures the two trap registers in the computational or Hadamard basis respectively to decide whether to accept or abort the process.
==Assumptions==
*The sender and receiver share a secret classical pair of keys
*The sender and receiver have agreed on an <math>[[n,k,d]]</math> error correction code
==Notation==
==Notation==
*<math>\mathcal{S}</math>: suppliant (sender)
*<math>\mathcal{A}</math>: authenticator (prover)
*<math>\rho</math>: 1-qubit input state
*<math>\rho</math>: 1-qubit input state
 
*<math>[[n,k,d]]</math>: an error correction code that corrects up <math>t</math> errors errors by encoding <math>k</math> logical qubits in <math>n</math> physical qubits, where <math>d=2t+1</math>
*<math>\{\pi_{i}\}</math>: a set of permutations indexed by <math>i</math>
*<math>\{P_{i}\}</math>: a set of Pauli operations indexed by <math>i</math>


==Protocol Description==
==Protocol Description==
'''Input:''' <math>\rho</math>, pair of secret classical keys <math>k=(k_1, k_2)</math></br></br>
'''Output:''' Quantum state <math>\rho^\prime</math> if the protocol accepts; fixed quantum state <math>\Omega</math> if the protocol aborts
*'''''Encoding:'''''
*'''''Encoding:'''''
#Input: <math>\rho</math>, pair of keys <math>k=(k_1, k_2)</math>
#<math>\mathcal{S}</math> applies an <math>[[n,1,d]]</math> error correction code
#Apply an <math>[[n,1,d]]</math> error correction code (corrects up to <math>t</math> errors, <math>d=2t+1</math>)
#<math>\mathcal{S}</math> appends an additional trap register of <math>n</math> qubits in state <math>|0\rangle\langle 0|^{\otimes n}</math>
#Append an additional trap register of <math>n</math> qubits in state <math>|0\rangle\langle 0|^{\otimes n}</math>
#<math>\mathcal{S}</math> appends a second additional trap register of <math>n</math> qubits in state <math>|+\rangle\langle +|^{\otimes n}</math>
#Append a second additional trap register of <math>n</math> qubits in state <math>|+\rangle\langle +|^{\otimes n}</math>
#<math>\mathcal{S}</math> permutes the total <math>3n</math>-qubit register by <math>\pi_{k_1}</math> according to the key <math>k_1</math>
#Permute the total <math>3n</math>-qubit register by <math>\pi_{k_1}</math> according to the key <math>k_1</math>
#<math>\mathcal{S}</math> applies a Pauli encryption <math>P_{k_2}</math> according to key <math>k_2</math>
#Apply a Pauli encryption <math>P_{k_2}</math> according to key <math>k_2</math>
*'''''Mathematical Encoding Description:''''' </br>Mathematically, the encoding process is given by <math display=block>\mathcal{E}_k: \rho \mapsto P_{k_2}\pi_{k_1}\left( \text{Enc}(\rho) \otimes |0\rangle\langle 0|^{\otimes n} \otimes |+\rangle\langle +|^{\otimes n}\right)\pi_{k_1}^\dagger P_{k_2}.</math> In the above, <math>\text{Enc}(\rho)</math> denotes the quantum message <math>\rho</math> after applying the error correction code for encoding (see step 1).
*'''''Decoding:'''''
*'''''Decoding:'''''
#Input: <math>\rho^\prime</math> (state after encoding), pair of keys <math>k=(k_1, k_2)</math>
#<math>\mathcal{A}</math> applies <math>P_{k_2}</math> according to key <math>k_2</math>
#Apply <math>P_{k_2}</math> according to key <math>k_2</math>
#<math>\mathcal{A}</math> applies inverse permutation <math>\pi_{k_1}^\dagger</math> according to the key <math>k_1</math>
#Apply inverse permutation <math>\pi_{k_1}^\dagger</math> according to the key <math>k_1</math>
#<math>\mathcal{A}</math> measures the last <math>n</math> qubits in the Hadamard basis <math>\{|+\rangle, |-\rangle\}</math>
#Measure the last <math>n</math> qubits in the Hadamard basis
#<math>\mathcal{A}</math> measures the second last <math>n</math> qubits in the computational basis <math>\{|0\rangle, |1\rangle\}</math></br></br>a. If the two measurements in step 3 and 4 result in <math>|+\rangle\langle +|</math> and <math>|0\rangle\langle 0|</math>, an additional flag qubit in state <math>|\mathrm{ACC}\rangle\langle\mathrm{ACC}|</math> is appended and the quantum message is decoded according to the error correction code </br>b. Otherwise, an additional flag qubit in state <math>|\mathrm{REJ}\rangle\langle\mathrm{REJ}|</math> is appended and the (disturbed) encoded quantum message is replaced by a fixed state <math>\Omega</math>
#Measure the second last <math>n</math> qubits in the computational basis </br>a. If the two measurements result in <math>|+\rangle\langle +|</math> and <math>|0\rangle\langle 0|</math>, an additional flag qubit in state <math>|\mathrm{ACC}\rangle\langle\mathrm{ACC}|</math> is appended and the quantum message is decoded according to the error correction code </br>b. Otherwise, an additional flag qubit in state <math>|\mathrm{REJ}\rangle\langle\mathrm{REJ}|</math> is appended and the (disturbed) encoded quantum message is replaced by a fixed state <math>\Omega</math>
*'''''Mathematical Decoding Description:''''' </br>Mathematically, the decoding process is given by <math display=block>\mathcal{D}_k: \rho^\prime \mapsto \text{Dec }\mathrm{tr}_{0,+}\left( \mathcal{P}_\text{acc} \pi_{k_1}^\dagger P_{k_2}(\rho^\prime) P_{k_2} \pi_{k_1} \mathcal{P}_\text{acc}^\dagger \right) \otimes |\mathrm{acc}\rangle \langle \mathrm{acc}| + \mathrm{tr}_{0,+} \left(\mathcal{P}_\text{rej} \pi_{k_1}^\dagger P_{k_2}(\rho^\prime) P_{k_2} \pi_{k_1} \mathcal{P}_\text{acc}^\dagger \right) \Omega \otimes |\text{rej}\rangle\langle \text{rej}|.</math> In the above, <math>\text{Dec}</math> refers to decoding of the error correction code (see step 4a) and <math>\mathrm{tr}_{0,+}</math> denotes the trace over the two trap registers. Moreover, <math>\mathcal{P}_\text{acc}</math> and <math>\mathcal{P}_\text{rej}</math> refer to the measurement projectors that determine whether the protocol accepts or aborts the received quantum message. It is <math display=block>\mathcal{P}_\text{acc} = I^{\otimes n}\otimes |0\rangle\langle 0|^{\otimes n}\otimes |+\rangle\langle +|,</math> and <math display=block>\mathcal{P}_\text{rej} = I^{\otimes 3n} - \mathcal{P}_\text{acc}.</math>




Line 22: Line 39:
#[https://arxiv.org/pdf/1211.1080.pdf| Broadbent et al. (2012)]
#[https://arxiv.org/pdf/1211.1080.pdf| Broadbent et al. (2012)]
#[https://arxiv.org/pdf/1607.03075.pdf| Broadbent and Wainewright (2016).]
#[https://arxiv.org/pdf/1607.03075.pdf| Broadbent and Wainewright (2016).]
<div style='text-align: right;'>''contributed by Shraddha Singh and Isabel Nha Minh Le''</div>
 
<div style='text-align: right;'>''Contributed by Isabel Nha Minh Le and Shraddha Singh''</div>
<div style='text-align: right;'>''This page was created within the [https://www.qosf.org/qc_mentorship/| QOSF Mentorship Program Cohort 4]''</div>

Latest revision as of 19:50, 16 January 2022

The Trap Code is a non-interactive scheme for quantum authentication. It appends two additional trap registers in a fixed state, on which a Pauli twirl or a permutation is acted on. It furthermore makes use of error correction codes for encoding the quantum message.

Tags: Two Party Protocol, Quantum Functionality, Specific Task, Building Block

Outline[edit]

The trap code requires a shared pair of secret classical keys. It makes use of an error correction code to encode the quantum message. Consequently, two so-called trap registers in the fixed states and are appended. The total register is then encrypted by applying a permutation and a Pauli twirl, each according to the classical keys. The receiver then applies the inverse Pauli twirl and permutation and consequently measures the two trap registers in the computational or Hadamard basis respectively to decide whether to accept or abort the process.

Assumptions[edit]

  • The sender and receiver share a secret classical pair of keys
  • The sender and receiver have agreed on an error correction code

Notation[edit]

  • : suppliant (sender)
  • : authenticator (prover)
  • : 1-qubit input state
  • : an error correction code that corrects up errors errors by encoding logical qubits in physical qubits, where
  • : a set of permutations indexed by
  • : a set of Pauli operations indexed by

Protocol Description[edit]

Input: , pair of secret classical keys

Output: Quantum state if the protocol accepts; fixed quantum state if the protocol aborts

  • Encoding:
  1. applies an error correction code
  2. appends an additional trap register of qubits in state
  3. appends a second additional trap register of qubits in state
  4. permutes the total -qubit register by according to the key
  5. applies a Pauli encryption according to key
  • Mathematical Encoding Description:
    Mathematically, the encoding process is given by
    In the above, denotes the quantum message after applying the error correction code for encoding (see step 1).
  • Decoding:
  1. applies according to key
  2. applies inverse permutation according to the key
  3. measures the last Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle n} qubits in the Hadamard basis Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \{|+\rangle, |-\rangle\}}
  4. Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathcal{A}} measures the second last Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle n} qubits in the computational basis Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \{|0\rangle, |1\rangle\}}

    a. If the two measurements in step 3 and 4 result in Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle |+\rangle\langle +|} and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle |0\rangle\langle 0|} , an additional flag qubit in state Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle |\mathrm{ACC}\rangle\langle\mathrm{ACC}|} is appended and the quantum message is decoded according to the error correction code
    b. Otherwise, an additional flag qubit in state Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle |\mathrm{REJ}\rangle\langle\mathrm{REJ}|} is appended and the (disturbed) encoded quantum message is replaced by a fixed state Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \Omega}
  • Mathematical Decoding Description:
    Mathematically, the decoding process is given by Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathcal{D}_k: \rho^\prime \mapsto \text{Dec }\mathrm{tr}_{0,+}\left( \mathcal{P}_\text{acc} \pi_{k_1}^\dagger P_{k_2}(\rho^\prime) P_{k_2} \pi_{k_1} \mathcal{P}_\text{acc}^\dagger \right) \otimes |\mathrm{acc}\rangle \langle \mathrm{acc}| + \mathrm{tr}_{0,+} \left(\mathcal{P}_\text{rej} \pi_{k_1}^\dagger P_{k_2}(\rho^\prime) P_{k_2} \pi_{k_1} \mathcal{P}_\text{acc}^\dagger \right) \Omega \otimes |\text{rej}\rangle\langle \text{rej}|.} In the above, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \text{Dec}} refers to decoding of the error correction code (see step 4a) and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathrm{tr}_{0,+}} denotes the trace over the two trap registers. Moreover, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathcal{P}_\text{acc}} and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathcal{P}_\text{rej}} refer to the measurement projectors that determine whether the protocol accepts or aborts the received quantum message. It is Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathcal{P}_\text{acc} = I^{\otimes n}\otimes |0\rangle\langle 0|^{\otimes n}\otimes |+\rangle\langle +|,} and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathcal{P}_\text{rej} = I^{\otimes 3n} - \mathcal{P}_\text{acc}.}


References[edit]

  1. Broadbent et al. (2012)
  2. Broadbent and Wainewright (2016).
Contributed by Isabel Nha Minh Le and Shraddha Singh
This page was created within the QOSF Mentorship Program Cohort 4