Prepare-and-Send Quantum Fully Homomorphic Encryption: Difference between revisions

Line 26: Line 26:
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.
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.
'''Decryption''' The Client uses the last secret key in the set, which was not used to create any gadget (Gadgets used 0-(L-1) secret keys only) and decrypts sent encryptions to obtain the pad key. The pad key thus obtained determines the Pauli operations on the sent quantum state to obtain the final and correct outcome of the computation. The client performs the required operations on individual qubits of the quantum state and gets the output of his computation.
'''Decryption''' The Client uses the last secret key in the set, which was not used to create any gadget (Gadgets used 0-(L-1) secret keys only) and decrypts sent encryptions to obtain the pad key. The pad key thus obtained determines the Pauli operations on the sent quantum state to obtain the final and correct outcome of the computation. The client performs the required operations on individual qubits of the quantum state and gets the output of his computation.
== Notation ==
* <math>\mathrm{k}</math>, security parameter
* <math>\mathrm{L}</math>, number of T gates in the evaluation circuit
* <math>\mathrm{n}</math>, dimension of input qubit
* <math>\mathrm{{pk_i,sk_i,evk_i}}</math>, <math>\mathrm{i_{th}}</math> homomorphic key set generated from HE.KeyGen(). Public key for encryption, secret key for decryption, evaluation function key, respectively for given k, the security parameter.
* <math>\Gamma_{pk_{i+1}}(\mathrm{sk_i})</math>, Gadget using <math>\mathrm{i_th}</math> secret key (<math>sk_i</math>) and encrypted by <math>\mathrm{(i + 1)_{th}}</math> public key (<math>\mathrm{pk_{i+1}}</math>)
* <math>\sigma</math>, single qubit state
* <math>\rho=|\psi\rangle\langle\psi|</math>, here <math>\rho</math> is the density matrix of quantum state <math>|\psi\rangle</math>
* <math>\rho</math>, n-qubit input state, where n is determined by the Client
* <math>\rho</math>(HE.Encpk(a)), a is encrypted with public key pk and is represented by density matrix ρ
* p, location of inverse phase gate
* x,z measurement outcome sets of Client for her Bell Pair measurements.
* x’,z’ measurement outcome sets of Server for his Gadget measurement.
* x˜[i], resulting ciphertext one gets for an input ith element of array x or ith bit of key x after the Encrypting it with ith of public key string, pk.


==Requirements==
==Requirements==
Write, autoreview, editor, reviewer
3,129

edits