Q-Rious Transmissions

Superdense coding quantum communication protocol

Description

Alice is stuck in the bygone era of classical computing, while Bob is using quantum. She wants to show Bob a cool picture so she decides to give quantum a chance. Bob and Alice share a quantum state. Alice can't figure out how to send qubits, so she shares details of each operation instead. The initial state is 1/sqrt(2)*(|00> + |11>)

author: boron

40KB
Open
info.txt

Solution

Superdense coding is a quantum communication protocol based on the sender and receiver pre-sharing a pair of maximally entangled qubits.

We are told that the initial state is 12(00+11)\frac{1}{\sqrt{2}}(|00\rangle+|11\rangle).

Using the superdense coding protocol, Alice applies one of four quantum gates (II, XX, ZZ, ZXZ*X) to transform the entangled qubit into one of four Bell states.

Applying a quantum gate to a qubit is essentially performing matrix multiplication. This article does a great job at explaining it.

For instance, the XX gate is represented as X=[0110]X =\begin{bmatrix} 0 & 1\\ 1 & 0\\ \end{bmatrix}. When applied to 1|1\rangle, the following matrix multiplication is performed:

As a result of applying the quantum gates, a new entangled state is formed, and this can be decoded by Bob to obtain the classical 2-bit message by applying CNOT and HIH\otimes I.

The following script applies each quantum gate to the entangled state, and decodes the classical 2-bit messages. Each gate in the message would thus translate to 2 bits.

The decoded message looks like this. Hmm... not very useful! This is not surprising, though, since the message contains a lot of identity __ (II) gates, which do not modify the quantum state - we should expect a lot of repeated bits in the output.

It turns out that this was a QR code! The 40,000 bits can be arranged into a 200 x 200 square matrix. Each bit represents either a white or black pixel.

Since white pixels have the RGB value of 255 and black pixels have the RGB value of 0, we multiply the array by 255 to obtain an image.

We get a QR code, which we can decode to reveal the flag!

Last updated

Was this helpful?