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
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.