Trap Code for Quantum Authentication: Difference between revisions
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:''''' | ||
# | #<math>\mathcal{S}</math> applies an <math>[[n,1,d]]</math> error correction code | ||
#<math>\mathcal{S}</math> appends 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> | |||
# | #<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> | ||
# | #<math>\mathcal{S}</math> applies 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:''''' | ||
# | #<math>\mathcal{A}</math> applies <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> | |||
# | #<math>\mathcal{A}</math> measures the last <math>n</math> qubits in the Hadamard basis <math>\{|+\rangle, |-\rangle\}</math> | ||
# | #<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> | ||
# | *'''''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;'>'' | |||
<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:
- applies an error correction code
- appends an additional trap register of qubits in state
- appends a second additional trap register of qubits in state
- permutes the total -qubit register by according to the key
- applies a Pauli encryption according to key
- Mathematical Encoding Description:
Mathematically, the encoding process is given byIn the above, denotes the quantum message after applying the error correction code for encoding (see step 1). - Decoding:
- applies according to key
- applies inverse permutation according to the key
- measures the last qubits in the Hadamard basis
- 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 byIn 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 isand