# How do you apply a CNOT on polarization qubits?

I read that a qubit can be encoded in a polarization state (horizontal or vertical polarization of a photon). How do you perform two-qubit operations on a polarization qubit?

A standard reference for linear optical quantum computing is Kok et al. 2009 (quant-ph/0512071).

If one qubit is encoded in the polarization degree of freedom of a single photon, and the second qubit in the path degree of freedom of the same photon, then a CNOT gate is trivially implemented by a polarizing beamsplitter. This is a kind of beamsplitter that only changes the path of the photon if its polarization is in some polarization state (say, $|V\rangle$), and leaves the photon in its path otherwise. This is therefore effectively a CNOT gate where the control qubit is the polarization and the target qubit is the path.

Of course, you cannot use the same idea to implement a gate between more than two qubits. Generally speaking, as long as you are working on degrees of freedom of a single photon (position, time/frequency, polarization, orbital angular momentum), it is still "easily" doable to implement transformations between them, but this is a limited approach because it is not really scalable to cram too much information into a single photon.

A very different story is the use of polarization qubits of many different photons. The main problem with this is that photons do not naturally interact with each other, so that two-qubit gates between such qubits are nontrivial. Indeed, it is easy to show that with linear optics alone it is impossible to implement arbitrary two-qubit gates in a deterministic way. For example, consider the case where one has two single photons, each one in a different spatial mode, and both in the initial polarization state $|H\rangle$. Using the standard second quantization notation, the set of transformations that can be implemented between these two photons within linear optics are given by $$a_H^\dagger b_H^\dagger \to\left(\sum_{k=H,V}\alpha_k c_k^\dagger +\beta_k d_k^\dagger\right)\left(\sum_{k=H,V}\gamma_k c_k^\dagger +\delta_k d_k^\dagger\right),$$ where $\alpha_k,\beta_k,\gamma_k,\delta_k$ are parameters characterising the linear transformation that is being implemented, $a_H^\dagger,b_H^\dagger$ are the creation operators of the input photons in the spatial modes $a$ and $b$ with polarization $H$, and $c$ and $d$ denote the two output modes of the photons. It can be seen that, for example, no set of values of $\alpha_k,\beta_k,\gamma_k,\delta_k$ can implement the transformation $$a_H^\dagger b_H^\dagger\to c_H^\dagger d_V^\dagger + c_V^\dagger d_H^\dagger,$$ meaning that it is not possible to generate deterministically, within linear optics, to transform $|00\rangle$ into the Bell state $|01\rangle+|10\rangle$.

What the above tells us is that linear optics quantum computing with single photons requires some kind of nonlinearity. One, therefore, needs to either use nonlinear elements such as Kerr media, or exploit the nonlinearity induced by the measurement process. Unfortunately, it is very hard to find materials implementing strong enough Kerr interactions (I don't think there is, to date, any viable known way to do this, but I may stand corrected). On the other hand, linear optical quantum computation using measurements is possible via the Knill, Laflamme, and Milburn (KLM) protocol. This protocol exploits photon bunching, gate teleportation, and projective measurements to obtain effective interactions between different polarization qubits. I will not go into the details of how this works here, as this may be worth a question of its own, but the circuit to implement a CZ gate using the KLM protocol can be found in Fig. 10 of Kok et al. 2009.

• Wow! What a long and detailed answer! Thank you very much! – Daniel Tordera Apr 17 '18 at 14:44