3 Sharing Secrets with Quantum Key Distribution

This chapter covers:

  • Recognize the implications that quantum resources have for security
  • Programming a simulator in Python for a quantum key distribution protocol
  • Implementing the quantum NOT operation

3.1  All’s Fair in Love and Encryption

In the previous Chapter, we saw that we could use random numbers as a resource to send secret messages like "💖" to our friends. We also saw that by using quantum bits or qubits, we could generate truly random numbers that are impossible for any adversary to predict.

That’s only half the story, though, because we need to share those random numbers with our friends if we want to use the quantum random numbers to communicate securely with them. Those random numbers (often called a key) can be use with encryption algorithms which combine the randomness of the key with information people want to keep secret in such a way that only someone else with the key can see the information. We can see in 3.1 how two people could use a key (here random binary string) to encrypt and decrypt messages between themselves.

Figure 3.1. Mental model for how you and Eve might use encryption to communicate secretly, even over the Internet or another untrusted network.
CH03 FIG 1 what is encryption

3.1.1  Quantum NOT operations

3.1.2  Sharing classical bits with qubits

3.2  A tale of two bases

3.3  Quantum Key Distribution: BB84

3.3.1  Steps of the BB84 protocol:

3.4  Using our secret key to send secret messages

3.5  Summary