Calderbank-Shor-Steane (CSS) stabilizer code[1][2][3]


An \([[n,k,d]]\) stabilizer code admitting a set of stabilizer generators that are either \(Z\)-type or \(X\)-type Pauli strings. The stabilizer generator matrix is of the form \begin{align} H=\begin{pmatrix}0 & H_{Z}\\ H_{X} & 0 \end{pmatrix} \label{eq:parity} \end{align} such that the rows of the two blocks must be orthogonal \begin{align} H_X H_Z^T=0~. \label{eq:comm} \end{align} The above condition guarantees that the \(X\)-stabilizer generators, defined in the symplectic representation as rows of \(H_X\), commute with the \(Z\)-stabilizer generators associated with \(H_Z\).

Encoding is based on two related binary linear codes, an \([n,k_X,d_X]\) code \(C_X\) and \([n,k_Z,d_Z]\) code \(C_Z\), satisfying \(C_X^\perp \subseteq C_Z\). The resulting CSS code has \(k=k_X+k_Z-n\) logical qubits and distance \(d\geq\min\{d_X,d_Z\}\). The \(H_X\) (\(H_Z\)) block of \(H\) \(\eqref{eq:parity}\) is the parity-check matrix of the code \(C_X\) (\(C_Z\)). The requirement \(C_X^\perp \subseteq C_Z\) guarantees \(\eqref{eq:comm}\). Basis states for the code are, for \(\gamma \in C_X\), \begin{align} |\gamma + C_Z^\perp \rangle = \frac{1}{\sqrt{|C_Z^\perp|}} \sum_{\eta \in C_Z^\perp} |\gamma + \eta\rangle. \end{align}

A CSS code has stabilizer weight \(w\) if the highest weight of any stabilizer generator is \(w\), i.e., any row of \(H_X\) and \(H_Z\) has weight at most \(w\). In the context of comparing weight as well as of determining distances for noise models biased toward \(X\)- or \(Z\)-type errors, an extended notation for asymmetric CSS codes is \([[n,k,(d_X,d_Z),w]]\) or \([[n,k,d_X/d_Z,w]]\). The quantity \(\min\{d_X,d_Z\}\) is often called the worst-case minimum distance and is often less than the actual code distance due to degeneracy [4].

CSS-to-homology correspondence

CSS-to-homology correspondence: CSS codes and their properties can be formulated in terms of homology theory, yielding a powerful correspondence between codes and chain complexes, the primary homological structures. There exists a many-to-one mapping from size three chain complexes to CSS codes [5][6][7][8] that allows one to extract code properties from topological features of the complexes. Codes constructed in this manner are sometimes called homological CSS codes, but they are equivalent to CSS codes. This mapping of codes to manifolds allows the application of structures from topology to error correction, yielding various QLDPC codes with favorable properties.

A chain complex of size three is given by binary vector spaces \(A_2\), \(A_1\), \(A_0\) and binary matrices \(\partial_{i=1,2}\) (called boundary operators) \(A_i\) to \(A_{i-1}\) that satisfy \(\partial_1 \partial_2 = 0\). Such a complex is typically denoted as \begin{align} A_2 \xrightarrow{\partial_2} A_1 \xrightarrow{\partial_1} A_0~. \label{eq:chain} \end{align} One constructs a CSS code by associating a physical qubit to every basis element of \(A_1\), and defining parity-check matrices \(H_X=\partial_1^T\) and \(H_Z=\partial_2\)). That way, the spaces \(A_0\) and \(A_2\) can be associated with \(X\)-type and \(Z\)-type Pauli operators, respectively, and boundary operators determine the Paulis making up the stabilizer generators. The requirement \(\partial_1 \partial_2 = 0\) guarantees that the \(X\)-stabilizer generators associated with \(H_X\) commute with the \(Z\)-stabilizer generators associated with \(H_Z\).

Usually, the chain complex \(\eqref{eq:chain}\) used in the construction comes from the chain complex associated with a cellulation of a manifold. When the manifold is a two-dimensional surface, its entire chain is used. Higher-dimensional manifolds allow for longer chain complexes, and one can use the three largest non-trivial vector spaces in its chain.


Detects errors on \(d-1\) qubits, corrects errors on \(\left\lfloor (d-1)/2 \right\rfloor\) qubits.

Using the relation to chain complexes, the number of encoded logical qubits is equal to the dimension of the first \(\mathbb{Z}_2\)-homology of the chain complex, \(H_1(\partial, \mathbb{Z}_2) = \frac{\text{Ker}(\partial_1)}{\text{Im}(\partial_2)}\). The distance of the CSS code is equal to the minimum of the combinatorial (\(d-1\))-systole of the cellulated \(d\)-dimensional manifold and its dual.


For a depolarizing channel with probability \(p\), CSS codes allowing for arbitrarily accurate recovery exist with asymptotic rate \(1-2h(p)\), where \(h\) is the binary entropy function [9].


Stabilizer measurement [10].

Transversal Gates

CNOT gates. Self-dual CSS codes admit transversal Clifford gates.


LDPC CSS code symmetries called \(XZ\)-dualities allow for fold-transversal gates, i.e., transversal gates followed by qubit permutations [11].


Coherent decoders allow for measurement-free error correction [12]. One method is table/multi-control decoding [13], which scales exponentially with the number of ancillas used in syndrome measurement. Another method, the Ising-based decoder, utilizes the mapping of the effect of the noise to a statistical mechanical model [9][14] such that the decoding problem maps to preparation of the ground state of an Ising model.

Fault Tolerance

Steane error correction [15].Homomorphic gadgets fault-tolerant measurement unify Steane and Shor error correction [16].Parallel syndrome extraction for distance-three codes can be done fault-tolerantly using one flag qubit [17].

Code Capacity Threshold

Bounds on code capacity thresholds for various noise models exist in terms of stabilizer generator weights [18][19].


Fully homomorphic encryption [20].Entanglement purification protocols related to quantum key distribution (QKD) [21].


Introduction to CSS-to-homology correspondence by M. Hastings.Using linear programming to solve a set of equations and inequalities on weight distribution of a classical self-orthogonal code \(C=(n, 2^n-k)\) and its dual, one can find a \(C\) such that the \([[n,k,d]]\) CSS code constructed using \(C\) and its dual would have rate and distance close to the Singleton bound [22].


  • Qubit stabilizer code — Stabilizer generators can be expressed as either only \(X\)-type or only \(Z\)-type. However, any \([[n,k,d]]\) stabilizer code can be mapped onto a \([[4n,2k,2d]]\) self-orthogonal CSS code, with the mapping preserving geometric locality of a code up to a constant factor [23].
  • Movassagh-Ouyang Hamiltonian code — Movassagh-Ouyang codes stem from a prescription that converts an arbitrary classical code into a quantum code.



  • Linear binary code — Construction uses two related binary linear codes \(C_X\) and \(C_Z\).
  • Dual linear code — CSS codes for which \(C_X=C_Z \equiv C\) are called self-orthogonal since \(C^{\perp} \subseteq C\). The stabilizer group of such codes is invariant under the Hadamard gate exchanging \(X\) and \(Z\).
  • Alternant code — Alternant codes used in the CSS construction yield quantum codes that asymptotically achieve the quantum Gilbert-Varshamov bound [24].
  • Random quantum code — Random CSS codes asymptotically achieve linear distance with high probability, achieving the quantum Gilbert-Varshamov bound [1].
  • Entanglement-assisted (EA) stabilizer code — As opposed to CSS codes, EA stabilizer codes can be constructed from any linear binary code.
  • Galois-qudit CSS code — Extension of qubit CSS codes to Galois qudits.
  • Generalized homological product code — The notion of homological products arose from interpreting CSS codes in terms of chain complexes over manifolds, but some generalized products no longer yield CSS codes.
  • Graph homology code — CSS codes can also be constructed using homology techniques but for manifolds of dimension two or greater.
  • Group GKP code — An \(n\)-qubit CSS code corresponds to the \(C_1^\perp \subseteq C_2 \subset \mathbb{Z}_2^{n}\) group construction.
  • Homological bosonic code — CSS and homological CV codes utilize chain complexes in code construction, with the latter complexes having trivial homology.
  • Majorana stabilizer code — When constructing a Majorana stabilizer code from a self-orthogonal classical code with an odd number of bits and generator matrix \(G\), a more complex procedure must be applied to ensure that the fermion code has an even number of Majorana zero modes, and thus a physical Hilbert space [23][25]. Rather than taking \(G\) to be the stabilizer matrix as in the even case, we take \(G\oplus G\). This is a concatenation of classical codes as in the CSS construction and it yields a mapping \([2N-1,k,d]\rightarrow [[2N-1,2N-1-k,d^\perp]]_f\). This procedure may be further generalized by concatenating two different self-orthogonal classical codes with an odd number of bits, as is often done in the CSS construction.
  • Modular-qudit CSS code — Extension of CSS codes to modular-integer qudits.
  • Qubit BCH code — Some qubit BCH codes are CSS.
  • XP stabilizer code — Each XP-regular code can be mapped to a CSS code with a similar logical operator structure [26].


A. R. Calderbank and P. W. Shor, “Good quantum error-correcting codes exist”, Physical Review A 54, 1098 (1996). DOI; quant-ph/9512032
A. M. Steane, “Error Correcting Codes in Quantum Theory”, Physical Review Letters 77, 793 (1996). DOI
“Multiple-particle interference and quantum error correction”, Proceedings of the Royal Society of London. Series A: Mathematical, Physical and Engineering Sciences 452, 2551 (1996). DOI; quant-ph/9601029
D. Gottesman. Surviving as a quantum computer in a classical world
A. Y. Kitaev, “Quantum computations: algorithms and error correction”, Russian Mathematical Surveys 52, 1191 (1997). DOI
H. Bombin and M. A. Martin-Delgado, “Homological error correction: Classical and quantum codes”, Journal of Mathematical Physics 48, 052105 (2007). DOI; quant-ph/0605094
Sergey Bravyi and Matthew B. Hastings, “Homological Product Codes”. 1311.0885
Nikolas P. Breuckmann, “PhD thesis: Homological Quantum Codes Beyond the Toric Code”. 1802.01520
E. Dennis et al., “Topological quantum memory”, Journal of Mathematical Physics 43, 4452 (2002). DOI; quant-ph/0110143
J. Łodyga et al., “Simple scheme for encoding and decoding a qubit in unknown state for various topological codes”, Scientific Reports 5, (2015). DOI; 1404.2495
Nikolas P. Breuckmann and Simon Burton, “Fold-Transversal Clifford Gates for Quantum Codes”. 2202.06647
Toshiaki Inada et al., “Measurement-Free Ultrafast Quantum Error Correction by Using Multi-Controlled Gates in Higher-Dimensional State Space”. 2109.00086
G. A. Paz-Silva, G. K. Brennen, and J. Twamley, “Fault Tolerance with Noisy and Slow Measurements and Preparation”, Physical Review Letters 105, (2010). DOI; 1002.1536
Albert T. Schmitz, “Thermal Stability of Dynamical Phase Transitions in Higher Dimensional Stabilizer Codes”. 2002.11733
A. M. Steane, “Active Stabilization, Quantum Computation, and Quantum State Synthesis”, Physical Review Letters 78, 2252 (1997). DOI; quant-ph/9611027
Shilin Huang, Tomas Jochym-O'Connor, and Theodore J. Yoder, “Homomorphic Logical Measurements”. 2211.03625
Pei-Hao Liou and Ching-Yi Lai, “Parallel syndrome extraction with shared flag qubits for CSS codes of distance three”. 2208.00581
A. A. Kovalev and L. P. Pryadko, “Fault tolerance of quantum low-density parity check codes with sublinear distance scaling”, Physical Review A 87, (2013). DOI; 1208.2317
I. Dumer, A. A. Kovalev, and L. P. Pryadko, “Thresholds for Correcting Errors, Erasures, and Faulty Syndrome Measurements in Degenerate Quantum Codes”, Physical Review Letters 115, (2015). DOI; 1412.6172
G. Alagic et al., “Quantum Fully Homomorphic Encryption with Verification”, Advances in Cryptology – ASIACRYPT 2017 438 (2017). DOI; 1708.09156
P. W. Shor and J. Preskill, “Simple Proof of Security of the BB84 Quantum Key Distribution Protocol”, Physical Review Letters 85, 441 (2000). DOI; quant-ph/0003004
A. R. Calderbank et al., “Quantum Error Correction via Codes over GF(4)”. quant-ph/9608006
S. Bravyi, B. M. Terhal, and B. Leemhuis, “Majorana fermion codes”, New Journal of Physics 12, 083039 (2010). DOI; 1004.3791
J. Fan et al., “Partially Concatenated Calderbank-Shor-Steane Codes Achieving the Quantum Gilbert-Varshamov Bound Asymptotically”, IEEE Transactions on Information Theory 1 (2022). DOI
Sagar Vijay and Liang Fu, “Quantum Error Correction for Complex and Majorana Fermion Qubits”. 1703.00459
Mark A. Webster, Benjamin J. Brown, and Stephen D. Bartlett, “The XP Stabiliser Formalism: a Generalisation of the Pauli Stabiliser Formalism with Arbitrary Phases”. 2203.00103
Page edit log

Zoo code information

Internal code ID: css

Your contribution is welcome!

on (edit & pull request)

edit on this site

Zoo Code ID: css

Cite as:
“Calderbank-Shor-Steane (CSS) stabilizer code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022.
@incollection{eczoo_css, title={Calderbank-Shor-Steane (CSS) stabilizer code}, booktitle={The Error Correction Zoo}, year={2022}, editor={Albert, Victor V. and Faist, Philippe}, url={} }
Share via:
Twitter |  | E-mail
Permanent link:

Cite as:

“Calderbank-Shor-Steane (CSS) stabilizer code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022.