← Quantum Store · Guides · Lessons · Glossary · Packages · About · Türkçe
Communication and cryptography course: teleportation, BB84 and post-quantum encryption · Lesson 2 / 5 · 12 min
Quantum teleportation: moving a state with entanglement
The state of a qubit can be transferred to another qubit without sending the qubit itself. All it takes is a Bell pair and two classical bits. Build the teleportation circuit step by step and verify it with Qiskit.
The idea
Alice holds an unknown qubit state and wants to get it to Bob, who is far away. She cannot copy it, and measuring it would destroy it. The solution Bennett and colleagues found in 1993: Alice and Bob share a Bell pair in advance, Alice measures her two qubits together and tells Bob the result, two classical bits, over the phone.
Depending on these two bits Bob applies X and Z corrections to his qubit, and it turns into Alice’s original state. The original state in Alice’s hands is destroyed by the measurement; this is a move, not a copy.
The circuit
q0 holds the state to teleport, q1 holds Alice’s half of the Bell pair and q2 Bob’s. Alice first applies CNOT(q0 → q1) and H(q0), then measures q0 and q1. If q1 gives 1 Bob applies X; if q0 gives 1 he applies Z.
Measuring and then applying a gate depending on the result gives the same outcome as postponing the measurement to the end and making the corrections with controlled gates. That is why the code below and the playground circuit use a CNOT and a CZ instead of measurements. In the end the state of q2 is exactly the initial state of q0.
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector, partial_trace, state_fidelity
original = QuantumCircuit(1)
original.ry(1.0, 0) # the "unknown" state to teleport
qc = QuantumCircuit(3)
qc.ry(1.0, 0)
qc.h(1)
qc.cx(1, 2) # Bell pair between q1 and q2
qc.cx(0, 1)
qc.h(0) # Alice's Bell measurement
qc.cx(1, 2) # X correction if q1 gave 1
qc.cz(0, 2) # Z correction if q0 gave 1
bob = partial_trace(Statevector(qc), [0, 1]) # q2 only
print(round(state_fidelity(bob, Statevector(original)), 6)) # 1.0
Not faster than light
Teleportation does not send information faster than light: if Bob looks at his qubit before he receives Alice’s two classical bits, he only sees random results. And the classical bits travel at most at the speed of light.
Teleportation was demonstrated with photons in 1997. In 2017 China’s Micius satellite received photon states teleported from a ground station up to 1,400 km away. Today teleportation is seen as one of the basic operations of a quantum internet that will connect quantum computers.
Try it yourself
The |1⟩ state of q0 was teleported to q2: the leftmost bit is always 1. Remove the X on q0 so that |0⟩ is teleported: the leftmost bit is always 0. Then put the X back and remove the first CNOT between q1 and q2: without the Bell pair teleportation breaks down.
Open the circuit in your browserThe circuit playground is in Turkish. Button guide: “1000 kez ölç” = measure 1000 times, “Durum vektörünü göster” = show the state vector, “Bu devrenin Qiskit kodu” = this circuit’s Qiskit code, “Geri al” = undo, “Temizle” = clear. Click a gate in the circuit to remove it.
Key points
- Teleportation transfers the state of a qubit without sending the qubit itself.
- It needs a shared Bell pair, Alice’s measurement and two classical bits.
- The original state is destroyed by the measurement; the no-cloning theorem is not violated.
- Because classical bits are needed, teleportation does not allow faster-than-light communication.
Test yourself
What does Bob need to receive from Alice to correct his qubit in quantum teleportation?
- Two classical bits
- The qubit Alice measured
- Nothing; the state is transferred instantly
Show the answer
Two classical bits. Alice’s measurement result is two classical bits; Bob applies the X and Z corrections depending on them.
← The no-cloning theorem: why quantum information cannot be copied · Superdense coding: two bits with one qubit →