Quantum key distribution (QKD) is a method of securely generating and sharing encryption keys between two parties using the principles of quantum mechanics. QKD allows the parties to detect any eavesdropping attempts by a third party, and to produce a random secret key that is known only to them. BB84 is a quantum key distribution protocol developed by Charles Bennett and Gilles Brassard in 19841. It is the first quantum cryptography protocol.
The protocol is provably secure assuming a perfect implementation, relying on two conditions: (1) the quantum property that information gain is only possible at the expense of disturbing the signal if the two states one is trying to distinguish are not orthogonal (see no-cloning theorem); and (2) the existence of an authenticated public classical channel1. It is usually explained as a method of securely communicating a private key from one party to another for use in one-time pad encryption1. The proof of BB84 depends on a perfect implementation. Side channel attacks exist, taking advantage of non-quantum sources of information. Since this information is non-quantum, it can be intercepted without measuring or cloning quantum particles1.