implements Secure Client-Server Delegated Computation
This example protocol achieves the functionality of Secure Client- Server Delegated Computation by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical Homomorphic Encryption (HE) scheme, it comes with properties of correctness, compactness and full homomorphism. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.
Homomorphic Encryption (HE) schemes can be divided into four stages:
1. Key Generation generates keys for encryption, decryption, and evaluation of the circuit,
2. Encryption encodes the input into a ciphertext using encryption key,
3. Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key, and
4. Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key.
This protocol requires Client to prepare and send the quantum states to Server, hence the name, Prepare and Send QFHE. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on quantum one-time pad i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. Fully Homomorphic Encryption can encrypt universal gate sets, and is presented for the set Clifford+T, though for T gates one needs an additional gadget. Adding the extra gadget requires an additional step called ”Gadget Construction” during the Key Generation Stage of the protocol
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional Phase gate (P) depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows. Out of $2m$ EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.
Key Generation (QFHE.KeyGen(1k,1L))
Encryption(QFHE.Enc())
Circuit’s Evaluation (QFHE.Eval())
Input: public key tuple $(pk_i)_{i = 0}^{L}$, Evaluation key tuple, Encrypted Pad key (${\\\tilde{a}^{[0]}…\\\tilde{a}^{[n]}$, $\\\tilde{b}^{[i]}…\\\tilde{b}^{[n]}}$), QOTP Input State ($ X^{a^{[1]}}Z^{b^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}\\\rho Z^{b^{[1]}}X^{a^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}$)
Output: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a’},\\\tilde{b’}$)=(HE.Eval${evk_L}^{\\\text{C}}(\\\tilde{a}$),HE.Eval${evk_L}^{\\\text{C}}(\\\tilde{b}$))
Let the Circuit be denoted by C and the gates be $c_i$
For all i, $c_i$ gate is applied on qubit m and the $m_{th}$ bits of pad key $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$ are updated to $(\\\tilde {a}’^{[m]},\\\tilde{b}’^{[m]})$ as follows.
If $c_i={P,H,CNOT}$, a Clifford gate then $c_iX^{a^{[m]}}Z^{b^{[m]}}\\\psi=X^{a’^{[m]}}Z^{b’^{[m]}}c_i\\\psi$
if $c_i=$P then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})\\\rightarrow (\\\tilde{a}^{[m]},\\\tilde{a}^{[m]}\\\oplus\\\tilde{b}^{[m]})$
if $c_i=$CNOT with m as target bit and n as control bit then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]};\\\tilde {a}^{[n]},\\\tilde{b}^{[n]})\\\rightarrow (\\\tilde {a}^{[m]},\\\tilde{b}^{[m]}\\\oplus \\\tilde {b}^{[n]};\\\tilde{a}^{[m]}\\\oplus \\\tilde {a}^{[n]},\\\tilde{b}^{[n]})$
If $c_i=T_j$ gate then: $ (T_jX^{a^{[m]}}Z^{b^{[m]}}\\\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Generate Measurement M$\\\leftarrow$ QFHE.GenMeasurement($\\\tilde {a}^{[m]},\\\Gamma_{pk_{j+1}}(sk_j),evk_j)$
Gadget Correction$(X^{a’^{[m]}}Z^{b’^{[m]}}T_j)\\\psi\\\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Server gets measurement outcome x’,z’
Recryption Server recrypts one-pad key using $pk_{k+1} (\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]})\\\leftarrow$ QFHE.Rec(${pk_{k+1}}(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$)
Server updates the recrypted key using x,z and x’,z’. ($\\\tilde {a’}^{[m]},\\\tilde{b’}^{[m]})\\\leftarrow (\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]}$)
Server sends the updated encryption and QOTP output state to Client.
Decryption (QFHE.Dec())
Input: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), The corresponding Encrypted Pad key is ($\\\tilde{a’},\\\tilde{b’}$)
Output: Final outcome of the computation C$\\\rho$C$^{\\\dagger}=\\\rho’$
No content has been added to this section, yet!
No content has been added to this section, yet!
implements Secure Client-Server Delegated Computation
This example protocol achieves the functionality of Secure Client- Server Delegated Computation by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical Homomorphic Encryption (HE) scheme, it comes with properties of correctness, compactness and full homomorphism. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.
Homomorphic Encryption (HE) schemes can be divided into four stages:
1. Key Generation generates keys for encryption, decryption, and evaluation of the circuit,
2. Encryption encodes the input into a ciphertext using encryption key,
3. Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key, and
4. Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key.
This protocol requires Client to prepare and send the quantum states to Server, hence the name, Prepare and Send QFHE. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on quantum one-time pad i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. Fully Homomorphic Encryption can encrypt universal gate sets, and is presented for the set Clifford+T, though for T gates one needs an additional gadget. Adding the extra gadget requires an additional step called ”Gadget Construction” during the Key Generation Stage of the protocol
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional Phase gate (P) depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows. Out of $2m$ EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.
Key Generation (QFHE.KeyGen(1k,1L))
Encryption(QFHE.Enc())
Circuit’s Evaluation (QFHE.Eval())
Input: public key tuple $(pk_i)_{i = 0}^{L}$, Evaluation key tuple, Encrypted Pad key (${\\\tilde{a}^{[0]}…\\\tilde{a}^{[n]}$, $\\\tilde{b}^{[i]}…\\\tilde{b}^{[n]}}$), QOTP Input State ($ X^{a^{[1]}}Z^{b^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}\\\rho Z^{b^{[1]}}X^{a^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}$)
Output: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a’},\\\tilde{b’}$)=(HE.Eval${evk_L}^{\\\text{C}}(\\\tilde{a}$),HE.Eval${evk_L}^{\\\text{C}}(\\\tilde{b}$))
Let the Circuit be denoted by C and the gates be $c_i$
For all i, $c_i$ gate is applied on qubit m and the $m_{th}$ bits of pad key $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$ are updated to $(\\\tilde {a}’^{[m]},\\\tilde{b}’^{[m]})$ as follows.
If $c_i={P,H,CNOT}$, a Clifford gate then $c_iX^{a^{[m]}}Z^{b^{[m]}}\\\psi=X^{a’^{[m]}}Z^{b’^{[m]}}c_i\\\psi$
if $c_i=$P then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})\\\rightarrow (\\\tilde{a}^{[m]},\\\tilde{a}^{[m]}\\\oplus\\\tilde{b}^{[m]})$
if $c_i=$CNOT with m as target bit and n as control bit then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]};\\\tilde {a}^{[n]},\\\tilde{b}^{[n]})\\\rightarrow (\\\tilde {a}^{[m]},\\\tilde{b}^{[m]}\\\oplus \\\tilde {b}^{[n]};\\\tilde{a}^{[m]}\\\oplus \\\tilde {a}^{[n]},\\\tilde{b}^{[n]})$
If $c_i=T_j$ gate then: $ (T_jX^{a^{[m]}}Z^{b^{[m]}}\\\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Generate Measurement M$\\\leftarrow$ QFHE.GenMeasurement($\\\tilde {a}^{[m]},\\\Gamma_{pk_{j+1}}(sk_j),evk_j)$
Gadget Correction$(X^{a’^{[m]}}Z^{b’^{[m]}}T_j)\\\psi\\\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Server gets measurement outcome x’,z’
Recryption Server recrypts one-pad key using $pk_{k+1} (\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]})\\\leftarrow$ QFHE.Rec(${pk_{k+1}}(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$)
Server updates the recrypted key using x,z and x’,z’. ($\\\tilde {a’}^{[m]},\\\tilde{b’}^{[m]})\\\leftarrow (\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]}$)
Server sends the updated encryption and QOTP output state to Client.
Decryption (QFHE.Dec())
Input: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), The corresponding Encrypted Pad key is ($\\\tilde{a’},\\\tilde{b’}$)
Output: Final outcome of the computation C$\\\rho$C$^{\\\dagger}=\\\rho’$
No content has been added to this section, yet!
No content has been added to this section, yet!
implements Secure Client-Server Delegated Computation
This example protocol achieves the functionality of Secure Client- Server Delegated Computation by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical Homomorphic Encryption (HE) scheme, it comes with properties of correctness, compactness and full homomorphism. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.
Homomorphic Encryption (HE) schemes can be divided into four stages:
1. Key Generation generates keys for encryption, decryption, and evaluation of the circuit,
2. Encryption encodes the input into a ciphertext using encryption key,
3. Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key, and
4. Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key.
This protocol requires Client to prepare and send the quantum states to Server, hence the name, Prepare and Send QFHE. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on quantum one-time pad i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. Fully Homomorphic Encryption can encrypt universal gate sets, and is presented for the set Clifford+T, though for T gates one needs an additional gadget. Adding the extra gadget requires an additional step called ”Gadget Construction” during the Key Generation Stage of the protocol
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional Phase gate (P) depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows. Out of $2m$ EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.
Key Generation (QFHE.KeyGen(1k,1L))
Encryption(QFHE.Enc())
Circuit’s Evaluation (QFHE.Eval())
Input: public key tuple $(pk_i)_{i = 0}^{L}$, Evaluation key tuple, Encrypted Pad key (${\\\tilde{a}^{[0]}…\\\tilde{a}^{[n]}$, $\\\tilde{b}^{[i]}…\\\tilde{b}^{[n]}}$), QOTP Input State ($ X^{a^{[1]}}Z^{b^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}\\\rho Z^{b^{[1]}}X^{a^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}$)
Output: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a’},\\\tilde{b’}$)=(HE.Eval${evk_L}^{\\\text{C}}(\\\tilde{a}$),HE.Eval${evk_L}^{\\\text{C}}(\\\tilde{b}$))
Let the Circuit be denoted by C and the gates be $c_i$
For all i, $c_i$ gate is applied on qubit m and the $m_{th}$ bits of pad key $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$ are updated to $(\\\tilde {a}’^{[m]},\\\tilde{b}’^{[m]})$ as follows.
If $c_i={P,H,CNOT}$, a Clifford gate then $c_iX^{a^{[m]}}Z^{b^{[m]}}\\\psi=X^{a’^{[m]}}Z^{b’^{[m]}}c_i\\\psi$
if $c_i=$P then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})\\\rightarrow (\\\tilde{a}^{[m]},\\\tilde{a}^{[m]}\\\oplus\\\tilde{b}^{[m]})$
if $c_i=$CNOT with m as target bit and n as control bit then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]};\\\tilde {a}^{[n]},\\\tilde{b}^{[n]})\\\rightarrow (\\\tilde {a}^{[m]},\\\tilde{b}^{[m]}\\\oplus \\\tilde {b}^{[n]};\\\tilde{a}^{[m]}\\\oplus \\\tilde {a}^{[n]},\\\tilde{b}^{[n]})$
If $c_i=T_j$ gate then: $ (T_jX^{a^{[m]}}Z^{b^{[m]}}\\\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Generate Measurement M$\\\leftarrow$ QFHE.GenMeasurement($\\\tilde {a}^{[m]},\\\Gamma_{pk_{j+1}}(sk_j),evk_j)$
Gadget Correction$(X^{a’^{[m]}}Z^{b’^{[m]}}T_j)\\\psi\\\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Server gets measurement outcome x’,z’
Recryption Server recrypts one-pad key using $pk_{k+1} (\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]})\\\leftarrow$ QFHE.Rec(${pk_{k+1}}(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$)
Server updates the recrypted key using x,z and x’,z’. ($\\\tilde {a’}^{[m]},\\\tilde{b’}^{[m]})\\\leftarrow (\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]}$)
Server sends the updated encryption and QOTP output state to Client.
Decryption (QFHE.Dec())
Input: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), The corresponding Encrypted Pad key is ($\\\tilde{a’},\\\tilde{b’}$)
Output: Final outcome of the computation C$\\\rho$C$^{\\\dagger}=\\\rho’$
No content has been added to this section, yet!
No content has been added to this section, yet!
implements Secure Client-Server Delegated Computation
This example protocol achieves the functionality of Secure Client- Server Delegated Computation by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical Homomorphic Encryption (HE) scheme, it comes with properties of correctness, compactness and full homomorphism. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.
Homomorphic Encryption (HE) schemes can be divided into four stages:
1. Key Generation generates keys for encryption, decryption, and evaluation of the circuit,
2. Encryption encodes the input into a ciphertext using encryption key,
3. Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key, and
4. Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key.
This protocol requires Client to prepare and send the quantum states to Server, hence the name, Prepare and Send QFHE. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on quantum one-time pad i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. Fully Homomorphic Encryption can encrypt universal gate sets, and is presented for the set Clifford+T, though for T gates one needs an additional gadget. Adding the extra gadget requires an additional step called ”Gadget Construction” during the Key Generation Stage of the protocol
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional Phase gate (P) depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows. Out of $2m$ EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.
Key Generation (QFHE.KeyGen(1k,1L))
Encryption(QFHE.Enc())
Circuit’s Evaluation (QFHE.Eval())
Input: public key tuple $(pk_i)_{i = 0}^{L}$, Evaluation key tuple, Encrypted Pad key (${\\\tilde{a}^{[0]}…\\\tilde{a}^{[n]}$, $\\\tilde{b}^{[i]}…\\\tilde{b}^{[n]}}$), QOTP Input State ($ X^{a^{[1]}}Z^{b^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}\\\rho Z^{b^{[1]}}X^{a^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}$)
Output: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a’},\\\tilde{b’}$)=(HE.Eval${evk_L}^{\\\text{C}}(\\\tilde{a}$),HE.Eval${evk_L}^{\\\text{C}}(\\\tilde{b}$))
Let the Circuit be denoted by C and the gates be $c_i$
For all i, $c_i$ gate is applied on qubit m and the $m_{th}$ bits of pad key $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$ are updated to $(\\\tilde {a}’^{[m]},\\\tilde{b}’^{[m]})$ as follows.
If $c_i={P,H,CNOT}$, a Clifford gate then $c_iX^{a^{[m]}}Z^{b^{[m]}}\\\psi=X^{a’^{[m]}}Z^{b’^{[m]}}c_i\\\psi$
if $c_i=$P then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})\\\rightarrow (\\\tilde{a}^{[m]},\\\tilde{a}^{[m]}\\\oplus\\\tilde{b}^{[m]})$
if $c_i=$CNOT with m as target bit and n as control bit then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]};\\\tilde {a}^{[n]},\\\tilde{b}^{[n]})\\\rightarrow (\\\tilde {a}^{[m]},\\\tilde{b}^{[m]}\\\oplus \\\tilde {b}^{[n]};\\\tilde{a}^{[m]}\\\oplus \\\tilde {a}^{[n]},\\\tilde{b}^{[n]})$
If $c_i=T_j$ gate then: $ (T_jX^{a^{[m]}}Z^{b^{[m]}}\\\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Generate Measurement M$\\\leftarrow$ QFHE.GenMeasurement($\\\tilde {a}^{[m]},\\\Gamma_{pk_{j+1}}(sk_j),evk_j)$
Gadget Correction$(X^{a’^{[m]}}Z^{b’^{[m]}}T_j)\\\psi\\\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Server gets measurement outcome x’,z’
Recryption Server recrypts one-pad key using $pk_{k+1} (\\\tilde {a\’\’}^{[m]},\\\tilde{b\’\’}^{[m]})\\\leftarrow$ QFHE.Rec(${pk_{k+1}}(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$)
Server updates the recrypted key using x,z and x’,z’. ($\\\tilde {a’}^{[m]},\\\tilde{b’}^{[m]})\\\leftarrow (\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]}$)
Server sends the updated encryption and QOTP output state to Client.
Decryption (QFHE.Dec())
Input: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), The corresponding Encrypted Pad key is ($\\\tilde{a’},\\\tilde{b’}$)
Output: Final outcome of the computation C$\\\rho$C$^{\\\dagger}=\\\rho’$
No content has been added to this section, yet!
No content has been added to this section, yet!
implements Secure Client-Server Delegated Computation
This example protocol achieves the functionality of Secure Client- Server Delegated Computation by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical Homomorphic Encryption (HE) scheme, it comes with properties of correctness, compactness and full homomorphism. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.
Homomorphic Encryption (HE) schemes can be divided into four stages:
1. Key Generation generates keys for encryption, decryption, and evaluation of the circuit,
2. Encryption encodes the input into a ciphertext using encryption key,
3. Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key, and
4. Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key.
This protocol requires Client to prepare and send the quantum states to Server, hence the name, Prepare and Send QFHE. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on quantum one-time pad i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. Fully Homomorphic Encryption can encrypt universal gate sets, and is presented for the set Clifford+T, though for T gates one needs an additional gadget. Adding the extra gadget requires an additional step called ”Gadget Construction” during the Key Generation Stage of the protocol
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional Phase gate (P) depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows. Out of $2m$ EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.
Key Generation (QFHE.KeyGen(1k,1L))
Encryption(QFHE.Enc())
Circuit’s Evaluation (QFHE.Eval())
Input: public key tuple $(pk_i)_{i = 0}^{L}$, Evaluation key tuple, Encrypted Pad key (${\\\tilde{a}^{[0]}…\\\tilde{a}^{[n]}$, $\\\tilde{b}^{[i]}…\\\tilde{b}^{[n]}}$), QOTP Input State ($ X^{a^{[1]}}Z^{b^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}\\\rho Z^{b^{[1]}}X^{a^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}$)
Output: QOTP Circuit Output State ($ X^{a\’^{[1]}}Z^{b\’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a\’},\\\tilde{b\’}$)=(HE.Eval${evk_L}^{\\\text{C}}(\\\tilde{a}$),HE.Eval${evk_L}^{\\\text{C}}(\\\tilde{b}$))
Let the Circuit be denoted by C and the gates be $c_i$
For all i, $c_i$ gate is applied on qubit m and the $m_{th}$ bits of pad key $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$ are updated to $(\\\tilde {a}’^{[m]},\\\tilde{b}’^{[m]})$ as follows.
If $c_i={P,H,CNOT}$, a Clifford gate then $c_iX^{a^{[m]}}Z^{b^{[m]}}\\\psi=X^{a\’^{[m]}}Z^{b\’^{[m]}}c_i\\\psi$
if $c_i=$P then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})\\\rightarrow (\\\tilde{a}^{[m]},\\\tilde{a}^{[m]}\\\oplus\\\tilde{b}^{[m]})$
if $c_i=$CNOT with m as target bit and n as control bit then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]};\\\tilde {a}^{[n]},\\\tilde{b}^{[n]})\\\rightarrow (\\\tilde {a}^{[m]},\\\tilde{b}^{[m]}\\\oplus \\\tilde {b}^{[n]};\\\tilde{a}^{[m]}\\\oplus \\\tilde {a}^{[n]},\\\tilde{b}^{[n]})$
If $c_i=T_j$ gate then: $ (T_jX^{a^{[m]}}Z^{b^{[m]}}\\\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Generate Measurement M$\\\leftarrow$ QFHE.GenMeasurement($\\\tilde {a}^{[m]},\\\Gamma_{pk_{j+1}}(sk_j),evk_j)$
Gadget Correction$(X^{a\’^{[m]}}Z^{b’^{[m]}}T_j)\\\psi\\\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Server gets measurement outcome x’,z’
Recryption Server recrypts one-pad key using pk$_{k+1}$ ($\\\tilde {a\’\’}^{[m]},\\\tilde{b\’\’}^{[m]})\\\leftarrow$ QFHE.Rec(${pk_{k+1}}(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$)
Server updates the recrypted key using x,z and x’,z’. ($\\\tilde {a\’}^{[m]},\\\tilde{b\’}^{[m]})\\\leftarrow (\\\tilde {a\’\’}^{[m]},\\\tilde{b\’\’}^{[m]}$)
Server sends the updated encryption and QOTP output state to Client.
Decryption (QFHE.Dec())
Input: QOTP Circuit Output State ($ X^{a\’^{[1]}}Z^{b\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}\\\rho\’ Z^{b’^{[1]}}X^{a\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}$), The corresponding Encrypted Pad key is ($\\\tilde{a\’},\\\tilde{b\’}$)
Output: Final outcome of the computation C$\\\rho$C$^{\\\dagger}=\\\rho\’$
No content has been added to this section, yet!
No content has been added to this section, yet!
implements Secure Client-Server Delegated Computation
This example protocol achieves the functionality of Secure Client- Server Delegated Computation by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical Homomorphic Encryption (HE) scheme, it comes with properties of correctness, compactness and full homomorphism. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.
Homomorphic Encryption (HE) schemes can be divided into four stages:
1. Key Generation generates keys for encryption, decryption, and evaluation of the circuit,
2. Encryption encodes the input into a ciphertext using encryption key,
3. Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key, and
4. Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key.
This protocol requires Client to prepare and send the quantum states to Server, hence the name, Prepare and Send QFHE. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on quantum one-time pad i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. Fully Homomorphic Encryption can encrypt universal gate sets, and is presented for the set Clifford+T, though for T gates one needs an additional gadget. Adding the extra gadget requires an additional step called ”Gadget Construction” during the Key Generation Stage of the protocol
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional Phase gate (P) depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows. Out of $2m$ EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.
Key Generation (QFHE.KeyGen(1k,1L))
Encryption(QFHE.Enc())
Circuit’s Evaluation (QFHE.Eval())
Input: public key tuple $(pk_i)_{i = 0}^{L}$, Evaluation key tuple, Encrypted Pad key (${\\\tilde{a}^{[0]}…\\\tilde{a}^{[n]}$, $\\\tilde{b}^{[i]}…\\\tilde{b}^{[n]}}$), QOTP Input State ($ X^{a^{[1]}}Z^{b^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}\\\rho Z^{b^{[1]}}X^{a^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}$)
Output: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a’},\\\tilde{b’}$)=(HE.Eval${evk_L}^\\\text{C}(\\\tilde{a}$),HE.Eval${evk_L}^\\\text{C}(\\\tilde{b}$))
Let the Circuit be denoted by C and the gates be $c_i$
For all i, $c_i$ gate is applied on qubit m and the $m_{th}$ bits of pad key $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$ are updated to $(\\\tilde {a}’^{[m]},\\\tilde{b}’^{[m]})$ as follows.
If $c_i={P,H,CNOT}$, a Clifford gate then $c_iX^{a^{[m]}}Z^{b^{[m]}}\\\psi=X^{a’^{[m]}}Z^{b’^{[m]}}c_i\\\psi$
if $c_i=$P then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})\\\rightarrow (\\\tilde{a}^{[m]},\\\tilde{a}^{[m]}\\\oplus\\\tilde{b}^{[m]})$
if $c_i=$CNOT with m as target bit and n as control bit then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]};\\\tilde {a}^{[n]},\\\tilde{b}^{[n]})\\\rightarrow (\\\tilde {a}^{[m]},\\\tilde{b}^{[m]}\\\oplus \\\tilde {b}^{[n]};\\\tilde{a}^{[m]}\\\oplus \\\tilde {a}^{[n]},\\\tilde{b}^{[n]})$
If $c_i=T_j$ gate then: $ (T_jX^{a^{[m]}}Z^{b^{[m]}}\\\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Generate Measurement M$\\\leftarrow$ QFHE.GenMeasurement($\\\tilde {a}^{[m]},\\\Gamma_{pk_{j+1}}(sk_j),evk_j)$
Gadget Correction$(X^{a’^{[m]}}Z^{b’^{[m]}}T_j)\\\psi\\\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Server gets measurement outcome x’,z’
Recryption Server recrypts one-pad key using pk${k+1}$ ($\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]})\\\leftarrow$ QFHE.Rec${pk_{k+1}}(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$
Server updates the recrypted key using x,z and x’,z’. ($\\\tilde {a’}^{[m]},\\\tilde{b’}^{[m]})\\\leftarrow (\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]}$)
Server sends the updated encryption and QOTP output state to Client.
Decryption (QFHE.Dec())
Input: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a’},\\\tilde{b’}$)
Output: Final outcome of the computation C$\\\rho$C$^\\\dagger=\\\rho’$
No content has been added to this section, yet!
No content has been added to this section, yet!
implements Secure Client-Server Delegated Computation
This example protocol achieves the functionality of Secure Client- Server Delegated Computation by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical Homomorphic Encryption (HE) scheme, it comes with properties of correctness, compactness and full homomorphism. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.
Homomorphic Encryption (HE) schemes can be divided into four stages:
1. Key Generation generates keys for encryption, decryption, and evaluation of the circuit,
2. Encryption encodes the input into a ciphertext using encryption key,
3. Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key, and
4. Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key.
This protocol requires Client to prepare and send the quantum states to Server, hence the name, Prepare and Send QFHE. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on quantum one-time pad i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. Fully Homomorphic Encryption can encrypt universal gate sets, and is presented for the set Clifford+T, though for T gates one needs an additional gadget. Adding the extra gadget requires an additional step called ”Gadget Construction” during the Key Generation Stage of the protocol
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional Phase gate (P) depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows. Out of $2m$ EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.
Key Generation (QFHE.KeyGen(1k,1L))
Encryption(QFHE.Enc())
Circuit’s Evaluation (QFHE.Eval())
Input: public key tuple $(pk_i)_{i = 0}^{L}$, Evaluation key tuple, Encrypted Pad key (${\\\tilde{a}^{[0]}…\\\tilde{a}^{[n]}$, $\\\tilde{b}^{[i]}…\\\tilde{b}^{[n]}}$), QOTP Input State ($ X^{a^{[1]}}Z^{b^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}\\\rho Z^{b^{[1]}}X^{a^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}$)
Output: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a’},\\\tilde{b’}$)=(HE.Eval${evk_L}^\\\text{C}(\\\tilde{a}$),HE.Eval${evk_L}^\\\text{C}(\\\tilde{b}$))
Let the Circuit be denoted by C and the gates be $c_i$
For all i, $c_i$ gate is applied on qubit m and the $m_{th}$ bits of pad key $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$ are updated to $(\\\tilde {a}’^{[m]},\\\tilde{b}’^{[m]})$ as follows.
If $c_i={P,H,CNOT}$, a Clifford gate then $c_iX^{a^{[m]}}Z^{b^{[m]}}\\\psi=X^{a’^{[m]}}Z^{b’^{[m]}}c_i\\\psi$
if $c_i=$P then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})\\\rightarrow (\\\tilde{a}^{[m]},\\\tilde{a}^{[m]}\\\oplus\\\tilde{b}^{[m]})$
if $c_i=$CNOT with m as target bit and n as control bit then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]};\\\tilde {a}^{[n]},\\\tilde{b}^{[n]})\\\rightarrow (\\\tilde {a}^{[m]},\\\tilde{b}^{[m]}\\\oplus \\\tilde {b}^{[n]};\\\tilde{a}^{[m]}\\\oplus \\\tilde {a}^{[n]},\\\tilde{b}^{[n]})$
If $c_i=T_j$ gate then: $ (T_jX^{a^{[m]}}Z^{b^{[m]}}\\\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Generate Measurement M$\\\leftarrow$ QFHE.GenMeasurement($\\\tilde {a}^{[m]},\\\Gamma_{pk_{j+1}}(sk_j),evk_j)$
Gadget Correction$(X^{a’^{[m]}}Z^{b’^{[m]}}T_j)\\\psi\\\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Server gets measurement outcome x’,z’
Recryption Server recrypts one-pad key using pk${k+1}$ ($\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]})\\\leftarrow$ QFHE.Rec${pk_{k+1}}(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$
Server updates the recrypted key using x,z and x’,z’. ($\\\tilde {a’}^{[m]},\\\tilde{b’}^{[m]})\\\leftarrow (\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]}$)
Server sends the updated encryption and QOTP output state to Client.
Decryption (QFHE.Dec())
Input: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a’},\\\tilde{b’}$)
Output: Final outcome of the computation C$\\\rho$C$^\\\dagger=\\\rho’$
No content has been added to this section, yet!
No content has been added to this section, yet!
implements Secure Client-Server Delegated Computation
This example protocol achieves the functionality of Secure Client- Server Delegated Computation by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical Homomorphic Encryption (HE) scheme, it comes with properties of correctness, compactness and full homomorphism. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.
Homomorphic Encryption (HE) schemes can be divided into four stages: 1. Key Generation generates keys for encryption, decryption, and evaluation of the circuit,
2. Encryption encodes the input into a ciphertext using encryption key,
3. Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key, and
4. Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key.
This protocol requires Client to prepare and send the quantum states to Server, hence the name, Prepare and Send QFHE. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on quantum one-time pad i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. Fully Homomorphic Encryption can encrypt universal gate sets, and is presented for the set Clifford+T, though for T gates one needs an additional gadget. Adding the extra gadget requires an additional step called ”Gadget Construction” during the Key Generation Stage of the protocol
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional Phase gate (P) depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows. Out of $2m$ EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.
Key Generation (QFHE.KeyGen(1k,1L))
Encryption(QFHE.Enc())
Circuit’s Evaluation (QFHE.Eval())
Input: public key tuple $(pk_i)_{i = 0}^{L}$, Evaluation key tuple, Encrypted Pad key (${\\\tilde{a}^{[0]}…\\\tilde{a}^{[n]}$, $\\\tilde{b}^{[i]}…\\\tilde{b}^{[n]}}$), QOTP Input State ($ X^{a^{[1]}}Z^{b^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}\\\rho Z^{b^{[1]}}X^{a^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}$)
Output: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a’},\\\tilde{b’}$)=(HE.Eval${evk_L}^\\\text{C}(\\\tilde{a}$),HE.Eval${evk_L}^\\\text{C}(\\\tilde{b}$))
Let the Circuit be denoted by C and the gates be $c_i$
For all i, $c_i$ gate is applied on qubit m and the $m_{th}$ bits of pad key $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$ are updated to $(\\\tilde {a}’^{[m]},\\\tilde{b}’^{[m]})$ as follows.
If $c_i={P,H,CNOT}$, a Clifford gate then $c_iX^{a^{[m]}}Z^{b^{[m]}}\\\psi=X^{a’^{[m]}}Z^{b’^{[m]}}c_i\\\psi$
if $c_i=$P then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})\\\rightarrow (\\\tilde{a}^{[m]},\\\tilde{a}^{[m]}\\\oplus\\\tilde{b}^{[m]})$
if $c_i=$CNOT with m as target bit and n as control bit then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]};\\\tilde {a}^{[n]},\\\tilde{b}^{[n]})\\\rightarrow (\\\tilde {a}^{[m]},\\\tilde{b}^{[m]}\\\oplus \\\tilde {b}^{[n]};\\\tilde{a}^{[m]}\\\oplus \\\tilde {a}^{[n]},\\\tilde{b}^{[n]})$
If $c_i=T_j$ gate then: $ (T_jX^{a^{[m]}}Z^{b^{[m]}}\\\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Generate Measurement M$\\\leftarrow$ QFHE.GenMeasurement($\\\tilde {a}^{[m]},\\\Gamma_{pk_{j+1}}(sk_j),evk_j)$
Gadget Correction$(X^{a’^{[m]}}Z^{b’^{[m]}}T_j)\\\psi\\\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Server gets measurement outcome x’,z’
Recryption Server recrypts one-pad key using pk${k+1}$ ($\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]})\\\leftarrow$ QFHE.Rec${pk_{k+1}}(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$
Server updates the recrypted key using x,z and x’,z’. ($\\\tilde {a’}^{[m]},\\\tilde{b’}^{[m]})\\\leftarrow (\\\tilde {a”}^{[m]},\\\tilde{b”}^{[m]}$)
Server sends the updated encryption and QOTP output state to Client.
Decryption (QFHE.Dec())
Input: QOTP Circuit Output State ($ X^{a’^{[1]}}Z^{b’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}\\\rho’ Z^{b’^{[1]}}X^{a’^{[1]}}\\\otimes…..\\\otimes X^{a’^{[k]}}Z^{b’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a’},\\\tilde{b’}$)
Output: Final outcome of the computation C$\\\rho$C$^\\\dagger=\\\rho’$
No content has been added to this section, yet!
No content has been added to this section, yet!
implements Secure Client-Server Delegated Computation
This example protocol achieves the functionality of Secure Client- Server Delegated Computation by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical Homomorphic Encryption (HE) scheme, it comes with properties of correctness, compactness and full homomorphism. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.
Homomorphic Encryption (HE) schemes can be divided into four stages: 1. Key Generation generates keys for encryption, decryption, and evaluation of the circuit,
2. Encryption encodes the input into a ciphertext using encryption key,
3. Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key, and
4. Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key.
This protocol requires Client to prepare and send the quantum states to Server, hence the name, Prepare and Send QFHE. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on quantum one-time pad i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. Fully Homomorphic Encryption can encrypt universal gate sets, and is presented for the set Clifford+T, though for T gates one needs an additional gadget. Adding the extra gadget requires an additional step called ”Gadget Construction” during the Key Generation Stage of the protocol
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional Phase gate (P) depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows. Out of $2m$ EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.
Key Generation (QFHE.KeyGen(1k,1L))
Encryption(QFHE.Enc())
1. Denote the $2m\\\$ entangled pairs be denoted by $\\\{(s_1,t_1),(s_2,t_2),...,(s_{2m},t_{2m})\\\}\\\$, such that
1. The classical information of gadget be g(sk)$=(\\\{(s_1,t_1),(s_2,t_2),...,(s_{2m},t_{2m}),p,sk\\\}\\\$.
1. The quantum state of gadget can be written as $\\\gamma_{x,z}(g(sk))=\\\pi_{j=1}^mX^{x[i]}Z^{z[i]}(P^\\\dagger){p[i]}|\\\phi\\\rangle\\\langle\\\phi|_{s_jt_j}(P^\\\dagger){p[i]}Z^{z[i]}X^{x[i]}\\\$
Circuit’s Evaluation (QFHE.Eval())
Input: public key tuple $(pk_i)_{i = 0}^{L}$, Evaluation key tuple, Encrypted Pad key (${\\\tilde{a}^{[0]}…\\\tilde{a}^{[n]}$, $\\\tilde{b}^{[i]}…\\\tilde{b}^{[n]}}$), QOTP Input State ($ X^{a^{[1]}}Z^{b^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}\\\rho Z^{b^{[1]}}X^{a^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}$)
Output: QOTP Circuit Output State ($ X^{a\’^{[1]}}Z^{b\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}\\\rho\’ Z^{b\’^{[1]}}X^{a\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a\’},\\\tilde{b\’}$)=(HE.Eval${evk_L}^\\\text{C}(\\\tilde{a}$),HE.Eval${evk_L}^\\\text{C}(\\\tilde{b}$))
Let the Circuit be denoted by C and the gates be $c_i$
For all i, $c_i$ gate is applied on qubit m and the $m_{th}$ bits of pad key $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$ are updated to $(\\\tilde {a}\’^{[m]},\\\tilde{b}\’^{[m]})$ as follows.
If $c_i={P,H,CNOT}$, a Clifford gate then $c_iX^{a^{[m]}}Z^{b^{[m]}}\\\psi=X^{a\’^{[m]}}Z^{b\’^{[m]}}c_i\\\psi$
if $c_i=$P then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})\\\rightarrow (\\\tilde{a}^{[m]},\\\tilde{a}^{[m]}\\\oplus\\\tilde{b}^{[m]})$
if $c_i=$CNOT with m as target bit and n as control bit then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]};\\\tilde {a}^{[n]},\\\tilde{b}^{[n]})\\\rightarrow (\\\tilde {a}^{[m]},\\\tilde{b}^{[m]}\\\oplus \\\tilde {b}^{[n]};\\\tilde{a}^{[m]}\\\oplus \\\tilde {a}^{[n]},\\\tilde{b}^{[n]})$
If $c_i=T_j$ gate then: $ (T_jX^{a^{[m]}}Z^{b^{[m]}}\\\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Generate Measurement M$\\\leftarrow$ QFHE.GenMeasurement($\\\tilde {a}^{[m]},\\\Gamma_{pk_{j+1}}(sk_j),evk_j)$
Gadget Correction$(X^{a\’^{[m]}}Z^{b\’^{[m]}}T_j)\\\psi\\\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Server gets measurement outcome x’,z’
Recryption Server recrypts one-pad key using pk${k+1}$ ($\\\tilde {a\’\’}^{[m]},\\\tilde{b\’\’}^{[m]})\\\leftarrow$ QFHE.Rec${pk_{k+1}}(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$
Server updates the recrypted key using x,z and x’,z’. ($\\\tilde {a\’}^{[m]},\\\tilde{b\’}^{[m]})\\\leftarrow (\\\tilde {a\’\’}^{[m]},\\\tilde{b\’\’}^{[m]}$)
Server sends the updated encryption and QOTP output state to Client.
Decryption (QFHE.Dec())
Input: QOTP Circuit Output State ($ X^{a\’^{[1]}}Z^{b\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}\\\rho\’ Z^{b\’^{[1]}}X^{a\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a\’},\\\tilde{b\’}$)
Output: Final outcome of the computation C$\\\rho$C$^\\\dagger=\\\rho\’$
No content has been added to this section, yet!
No content has been added to this section, yet!
implements Secure Client-Server Delegated Computation
This example protocol achieves the functionality of Secure Client- Server Delegated Computation by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical Homomorphic Encryption (HE) scheme, it comes with properties of correctness, compactness and full homomorphism. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.
Homomorphic Encryption (HE) schemes can be divided into four stages: 1. Key Generation generates keys for encryption, decryption, and evaluation of the circuit,
2. Encryption encodes the input into a ciphertext using encryption key,
3. Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key, and
4. Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key.
This protocol requires Client to prepare and send the quantum states to Server, hence the name, Prepare and Send QFHE. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on quantum one-time pad i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. Fully Homomorphic Encryption can encrypt universal gate sets, and is presented for the set Clifford+T, though for T gates one needs an additional gadget. Adding the extra gadget requires an additional step called ”Gadget Construction” during the Key Generation Stage of the protocol
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional Phase gate (P) depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows. Out of $2m$ EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.
Key Generation (QFHE.KeyGen(1k,1L))
Encryption(QFHE.Enc())
1. Denote the $2m\\\$ entangled pairs be denoted by $\\\{(s_1,t_1),(s_2,t_2),...,(s_{2m},t_{2m})\\\}\\\$, such that
1. The classical information of gadget be g(sk)$=(\\\{(s_1,t_1),(s_2,t_2),...,(s_{2m},t_{2m}),p,sk\\\}\\\$.
1. The quantum state of gadget can be written as $\\\gamma_{x,z}(g(sk))=\\\pi_{j=1}^mX^{x[i]}Z^{z[i]}(P^\\\dagger){p[i]}|\\\phi\\\rangle\\\langle\\\phi|_{s_jt_j}(P^\\\dagger){p[i]}Z^{z[i]}X^{x[i]}\\\$
Circuit’s Evaluation (QFHE.Eval())
Input: public key tuple $(pk_i)_{i = 0}^{L}$, Evaluation key tuple, Encrypted Pad key (${\\\tilde{a}^{[0]}…\\\tilde{a}^{[n]}$, $\\\tilde{b}^{[i]}…\\\tilde{b}^{[n]}}$), QOTP Input State ($ X^{a^{[1]}}Z^{b^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}\\\rho Z^{b^{[1]}}X^{a^{[1]}}\\\otimes…..\\\otimes X^{a^{[n]}}Z^{b^{[n]}}$)
Output: QOTP Circuit Output State ($ X^{a\’^{[1]}}Z^{b\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}\\\rho\’ Z^{b\’^{[1]}}X^{a\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a\’},\\\tilde{b\’}$)=(HE.Eval${evk_L}^\\\text{C}(\\\tilde{a}$),HE.Eval${evk_L}^\\\text{C}(\\\tilde{b}$))
Let the Circuit be denoted by C and the gates be $c_i$
For all i, $c_i$ gate is applied on qubit m and the $m_{th}$ bits of pad key $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$ are updated to $(\\\tilde {a}\’^{[m]},\\\tilde{b}\’^{[m]})$ as follows.
If $c_i={P,H,CNOT}$, a Clifford gate then $c_iX^{a^{[m]}}Z^{b^{[m]}}\\\psi=X^{a\’^{[m]}}Z^{b\’^{[m]}}c_i\\\psi$
if $c_i=$P then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})\\\rightarrow (\\\tilde{a}^{[m]},\\\tilde{a}^{[m]}\\\oplus\\\tilde{b}^{[m]})$
if $c_i=$CNOT with m as target bit and n as control bit then: $(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]};\\\tilde {a}^{[n]},\\\tilde{b}^{[n]})\\\rightarrow (\\\tilde {a}^{[m]},\\\tilde{b}^{[m]}\\\oplus \\\tilde {b}^{[n]};\\\tilde{a}^{[m]}\\\oplus \\\tilde {a}^{[n]},\\\tilde{b}^{[n]})$
If $c_i=T_j$ gate then: $ (T_jX^{a^{[m]}}Z^{b^{[m]}}\\\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Generate Measurement M$\\\leftarrow$ QFHE.GenMeasurement($\\\tilde {a}^{[m]},\\\Gamma_{pk_{j+1}}(sk_j),evk_j)$
Gadget Correction$(X^{a\’^{[m]}}Z^{b\’^{[m]}}T_j)\\\psi\\\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\\\psi)$
Server gets measurement outcome x’,z’
Recryption Server recrypts one-pad key using pk${k+1}$ ($\\\tilde {a\’\’}^{[m]},\\\tilde{b\’\’}^{[m]})\\\leftarrow$ QFHE.Rec${pk_{k+1}}(\\\tilde {a}^{[m]},\\\tilde{b}^{[m]})$
Server updates the recrypted key using x,z and x’,z’. ($\\\tilde {a\’}^{[m]},\\\tilde{b\’}^{[m]})\\\leftarrow (\\\tilde {a\’\’}^{[m]},\\\tilde{b\’\’}^{[m]}$)
Server sends the updated encryption and QOTP output state to Client.
Decryption (QFHE.Dec())
Input: QOTP Circuit Output State ($ X^{a\’^{[1]}}Z^{b\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}\\\rho\’ Z^{b\’^{[1]}}X^{a\’^{[1]}}\\\otimes…..\\\otimes X^{a\’^{[k]}}Z^{b\’^{[k]}}$), Corresponding Encrypted Pad key ($\\\tilde{a\’},\\\tilde{b\’}$)
Output: Final outcome of the computation C$\\\rho$C$^\\\dagger=\\\rho\’$
No content has been added to this section, yet!
No content has been added to this section, yet!