Editing Trap Code for Quantum Authentication

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
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
#Input: <math>\rho</math>, pair of keys <math>k=(k_1, k_2)</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>
#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 a second additional trap register of <math>n</math> qubits in state <math>|+\rangle\langle +|^{\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> permutes the total <math>3n</math>-qubit register by <math>\pi_{k_1}</math> according to the key <math>k_1</math>
#Append a second additional trap register of <math>n</math> qubits in state <math>|+\rangle\langle +|^{\otimes n}</math>
#<math>\mathcal{S}</math> applies a Pauli encryption <math>P_{k_2}</math> according to key <math>k_2</math>
#Permute the total <math>3n</math>-qubit register by <math>\pi_{k_1}</math> according to the key <math>k_1</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).
#Apply a Pauli encryption <math>P_{k_2}</math> according to key <math>k_2</math>
*'''''Decoding:'''''
*'''''Decoding:'''''
#<math>\mathcal{A}</math> applies <math>P_{k_2}</math> according to key <math>k_2</math>
#Input: <math>\rho^\prime</math> (state after encoding), pair of keys <math>k=(k_1, 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 <math>P_{k_2}</math> according to key <math>k_2</math>
#<math>\mathcal{A}</math> measures the last <math>n</math> qubits in the Hadamard basis <math>\{|+\rangle, |-\rangle\}</math>
#Apply inverse permutation <math>\pi_{k_1}^\dagger</math> according to the key <math>k_1</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>
#Measure the last <math>n</math> qubits in the Hadamard basis
*'''''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>
#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>




Line 39: Line 22:
#[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>
Please note that all contributions to Quantum Protocol Zoo may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Quantum Protocol Zoo:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)