THE SUPERDENSE CODING PROTOCOL
By Nicola Stanisławska
The superdense coding protocol illustrates the principle of quantum communication grounded on the idea of the ability of providing a resource, independent of later usage, before the decision of the action is made. Furthermore, through its allowance of communicating more bits of information using a lesser number of qubits, an increase in the information capacity of a link can be observed. In its simplest terms, this concept is presented while communicating two bits of classical information using a pre-shared Bell state pair of qubits that allows for the sending of a single qubit. The following paper is aimed at presenting an overview of the superdense coding protocol by providing an instruction of how to carry out the procedure, a visualisation using IBM’s Quantum Computing Lab in python as well as its security.
Superdense coding is a procedure based on the principle of communicating several classical bits of information through utilizing a lesser number of qubits in a maximally entangled state (one of the four Bell states).
It aims at communicating two bits of classical information (00,01,10,11) from one party, often denoted as Alice, to another, denoted as Bob. Through the utilization of one of the unitary operations, Alice can encode the pair of bits she wants to transmit, sending the modified state to Bob. After receiving Alice's qubit and performing a Bell measurement, Bob obtains the encoded message of two classical bits of information .
Performing the protocol to communicate two bits of information (00,01,10,11) between two parties – Alice and Bob.
Alice’s qubit- denoted as A or q0
Bob’s qubit- denoted as B or q1
Establishing a communication scheme (preliminary phase)
In this preliminary phase of protocol, a communication scheme must be assembled in which
each two-bit message (00,01,10,11) corresponds to one of the four Bell states (|β00 >, |β01 >, |β10 >, |β11 >). Each Bell state is a result of the maximal entanglement of two qubits. An example of the most utilized communication scheme can be observed in Figure 2.
Figure 1: Proposed communication scheme in which each of the four Bell states corresponds to a two-bit message
Preparation (preliminary phase)
Typically, the entanglement of the two qubits (or creation of a Bell state) is performed by a third part (frequently referred to as Charlie or “C”). To entangle two qubits (create the first Bell state |β00 >), an H (Hadamard) and CNOT (also known as CX) gate must be applied. Quantum gates manipulate or change the state of qubits.
Figure 2: Matrix of Hadamard gate 
Figure 3: Matrix of CNOT gate 
The H gate is applied to q0 to create an equal superposition, thus, a 1 or 0 can be randomly measured. The CNOT gate is applied to q0 as the control and q1 as the target. If the control qubit (q0) is in the 0 state - no gate is applied to q1. However, if the control qubit (q0) is in the 1 state - an X gate is applied to q1. The state of q0 remains constant.
Figure 4: Visualisation of circuit containing 2 qubits, a Hadamard gate and CNOT gate with q0 as control and q1 as target
Consequently, the two qubits become entangled, forming the first Bell state |β00 >.
Sharing (preliminary phase)
To allow the sending of qubit A from Alice to Bob, the qubits must first be separated. The qubits are shared by a third party (Charlie), the qubit denoted as A assigned to Alice and qubit denoted as B to Bob. The proximity of separation does not influence the communication as quantum entanglement remains intact over extensive distances.
In this phase, Alice can modify the entangled qubit in the first Bell state and create one of the other Bell states accordingly to the message and communication scheme established afore. Alice must apply a unitary operation of either X or Z, one or in a combination, to q0.
The Z gate performs a 180-degree rotation about the Z axis (the vertical axis of the qubit), see Figure 6, flipping the phase of the qubit. Thus, if applied to the first Bell state, results in a negative phase. Its effect can be observed in |β01 > as well as |β11 >.
Figure 5: Multiplication of matrix of Z gate with the vector of qubit in the 0 state
Figure 5*: Multiplication of matrix of Z gate with the vector of qubit in the 1 state – change of phase from 1 to -1
Figure 6: Bloch Sphere representation of the appliance of a Z gate to a qubit in the 0 state. 
The X gate transforms the 0 state into the 1 state and vice versa. Its effect can be observed in |β10 > as well as |β11 >.
Figure 7: Multiplication of matrix of X gate with vector of qubit in the 0 state
Figure 8: Bell states represented in bra-ket notation.
1. To prepare the |β00 > Bell state , Alice does not need to apply any gates
2. To prepare the |β01 > Bell state, Alice applies a Z gate to q0
3. To prepare the |β10 > Bell state, Alice applies an X gate to q0
4. To prepare the |β11 > Bell state, Alice applies a Z gate and an X gate to q0
Alice sends her qubit to Bob using a third part, allowing for Bob to decipher the message. By the end of this phase, Bob receives qubit A to which Alice has applied the corresponding gate(s) to encode the two-bit message.
Decoding (conducting bell measurement)
In the final phase, the two qubits, A and B (q0 and q1) are measured by Bob to decode the intended message. However, the Bell state cannot be directly measured as each state has two possible outcomes. For example, |β00 > has two equally likely outcomes of |00 > or |11 >, which can be observed in Figure 9.
Figure 9: first bell state in bra-ket notation
Thus, Bob must perform a Bell measurement (also known as reverse Bell circuit) – first apply the CNOT gate with q0 as the control and q1 as target. Next, an H gate must be applied to q0. This eliminates the common part of all Bell states so that the outcome is unique to each circuit.
Figure 11: Full visualised superdense protocol circuit
Figure 10: Visualized Bell measurement
The result of the measurement is the adequate two-bit message.
Performing the protocol in python using IBM Quantum Computing Lab
Including only steps conducted using code (excluding establishing a communication scheme, sharing, sending)
A Quantum circuit (defined as qc.sdc) is generated, containing 2 bits and 2 qubits.
CNOT (CX) gate requires specification of control and target qubit. In this instance q0 is defined as the control (is first is the bracket) while q1 is defined as the target (is second in the bracket).
Applying appropriate gate
Z gate is applied accordingly to chosen message to create |β01 >
Applying Bell Measurement
Once again, the control and target qubits must be specified in the CNOT gate.
Finding least busy Quantum Computer accessible through IBM Quantum Computing Lab to execute the code 256x
Least busy backend is found, and circuit is run.
Executing the code on a quantum computer
Obtaining and visualising results on a histogram
A Bell measurement of |β01 > produced the two-bit message |01 > with the highest frequency of 94.1%. This represents a correct execution of the protocol as the communication scheme suggests that |β01 > corresponds to |01 >. However, we can observe that this frequency is not complete – each of the three other possible two-bit message was also measured at least once.
This occurrence is a result of the noise of qubits. As quantum computers rely on a highly precise environments, outside factors such as control electronics, heat or impurities can impact the state of the qubit. The data shows that the qubits quantum coherence was disrupted.
Superdense coding follows the fundamental principle of secure quantum coding as it eliminates the possibility of an eavesdropper. If a third party was to intercept the entangled Bell state, without access to qubit B or q1, is unable to decode the message. Furthermore, an outsider is unable to eavesdrop on information being transferred as an attempt to measure either qubit would collapse the state of that qubit which could be easily detected by either party .
In conclusion, the superdense coding protocol presents the prospect of providing a resource, independent of later usage, before the decision of the action is made. It also enables the sending a certain number of classical bits of information through the utilization of a lesser number of qubits. It can be summarised into a six-step procedure: establishing a communication scheme, preparation, sharing, encoding, sending, and decoding. The protocol can be carried out on a quantum computer through the access to IBM’s Quantum Computing Lab, however, the decoherance of contemporary hardware causes the results to contain inaccuracies. Moreover, superdense coding is proved to be a secure form of communication through its security from an eavesdropper.
,  Wikipedia (2022) Superdense coding, Wikipedia. Wikimedia Foundation. Available at: https://en.wikipedia.org/wiki/Superdense_coding
, , Zao, Q. et al. (2020) Fault-tolerant quantum error correction code preparation in UBQC, ResearchGate. Available at: https://www.researchgate.net/figure/Diagram-and-matrix-of-quantum-gates-a-Pauli-X-gate-b-Pauli-Y-gate-c-Pauli-Z-gate-d_fig5_342818848
 Shetty, A., 2021. Visualizing Quantum Logic Gates (part 1). [online] Medium. Available at:https://medium.com/quantum-untangled/visualizing-quantum-logic-gates-part-1-515bb7b58916