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 18: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 qubits in the Hadamard basis
  4. measures the second last qubits in the computational basis

    a. If the two measurements in step 3 and 4 result in and , an additional flag qubit in state is appended and the quantum message is decoded according to the error correction code
    b. Otherwise, an additional flag qubit in state is appended and the (disturbed) encoded quantum message is replaced by a fixed state
  • Mathematical Decoding Description:
    Mathematically, the decoding process is given by
    In the above, refers to decoding of the error correction code (see step 4a) and denotes the trace over the two trap registers. Moreover, and refer to the measurement projectors that determine whether the protocol accepts or aborts the received quantum message. It is
    and


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