Quantum Cryptography is when you use the laws of physics to encrypt your data. We have been able to encrypt data using vastly large prime numbers that would have to be factored to decrypt the key. The number is so large it would take current cutting-edge processors the projected life-time of the universe to crack.
With all things there are flaws, some of the prime numbers are easier to crack than others, these are known as weak keys. Another method of encryption is photon-encryption this is when a laser generates a photon that contains your key. The photon cannot be hacked this is currently impossible, this is because The Heisenberg Uncertainty Principal states that you cannot look at protons without changing or destroying them.
That is all well, however the devices that generate these protons can be hacked and they have flaws as well. The sensors that allow the photon to be generated can inadvertently generate more than on proton with the exact same key. This second copy could be obtained by someone else and you would not be none the wiser.
Also a strong pulse can be generated that can blind a proton detector making it unable to detect when a single proton is generated.