Clifford gates are unitaries that map Pauli operators to Pauli operators under conjugation: if $C$ is Clifford and $P$ is a Pauli, then $C P C^\dagger$ is also a Pauli (up to global phase). This closure property partitions quantum gates into two classes with profound consequences for simulation, error correction, and the boundary between classical and quantum advantage. Clifford-only circuits are efficiently simulatable classically; adding even one non-Clifford gate requires exponential resources.
Key single-qubit Clifford matrices:
$$H = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \quad S = \begin{pmatrix} 1 & 0 \\ 0 & i \end{pmatrix}$$
CNOT in computational basis:
$$\mathrm{CNOT} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix}$$
The defining property of Cliffords is how they conjugate Pauli operators. Examples:
In general, if $P$ is Pauli and $C$ is Clifford, then $C P C^\dagger = e^{i\phi} P'$ where $P'$ is also Pauli and $\phi$ is a global phase.
Non-Clifford gates (like the T gate) do NOT preserve the Pauli group under conjugation:
$$T X T^\dagger = \frac{1}{\sqrt{2}}(X + Y), \quad T Z T^\dagger = Z$$
The result $\frac{1}{\sqrt{2}}(X + Y)$ is not Pauli, breaking the closure property. This small addition enables universal quantum computation but requires expensive resource overhead in fault-tolerant systems.
Clifford gates permute the basis directions on the Bloch sphere:
Clifford circuits thus act as Bloch sphere symmetries, never creating superpositions in Pauli bases.
The Clifford group $\mathcal{C}_n$ on $n$ qubits has size:
$$|\mathcal{C}_1| = 24 \quad (2^4 \cdot 3, \text{ single-qubit Cliffords})$$ $$|\mathcal{C}_2| = 11,520 \quad (\text{two-qubit Cliffords})$$ $$|\mathcal{C}_n| = 2^{n(n+1)} \prod_{k=1}^{n} (4^k - 1) / (4 - 1)$$
Generation: Any Clifford can be decomposed into H, S, and CNOT gates (generators). The group is finite but grows rapidly with qubit count.
Quantum algorithms decompose into a Clifford base layer plus non-Clifford gates (usually T). The T-count (number of T gates) is the primary cost metric in fault-tolerant quantum computing because:
Quantum compilers minimize T-count through circuit optimization. A single T gate nested in a Clifford circuit costs orders of magnitude more than the Clifford layer.