Source code for toqito.states.bb84

"""BB84 states represent the BB84 basis states, which are based on BB84, a quantum key distribution scheme.

In the BB884 scheme, each qubit is encoded with one of the 4 polarization states: 0, 1, +45° or -45°.
"""

import numpy as np

from toqito.matrices import standard_basis


[docs] def bb84() -> list[list[np.ndarray]]: r"""Obtain the BB84 basis states [@WikiBB84]. The BB84 basis states are defined as \[ |0\rangle := \begin{pmatrix} 1 \\ 0 \end{pmatrix}, \quad \\ |1\rangle := \begin{pmatrix} 0 \\ 1 \end{pmatrix}, \quad \\ |+\rangle := \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix}, \quad \\ |-\rangle := \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -1 \end{pmatrix}. \] Examples: The BB84 basis states can be obtained in `|toqito⟩` as follows in the form of a list of arrays. ```python exec="1" source="above" from toqito.states import bb84 print(bb84()) ``` Returns: The four BB84 basis states. """ # Computational basis states |0>, |1>: e_0, e_1 = standard_basis(2) # Plus/minus basis |+>, |-> e_p, e_m = (e_0 + e_1) / np.sqrt(2), (e_0 - e_1) / np.sqrt(2) return [[e_0, e_1], [e_p, e_m]]