For sure you’ve heard of these quantum computers that are about to get useful soon and that are expected to destroy the security of large parts of the cryptography we’re using today. As part of my bachelor’s thesis in physics, I worked on quantum cryptography or quantum key distribution which offers a secure alternative to do cryptography even in the presence of large-scale quantum computers. While publishing my thesis as part of this article for anyone interested in reading it, I also want to use this chance to tell you a little bit about the problem of today’s cryptography and quantum computers, and which solutions currently are being worked on.
Luckily, quantum key distribution isn’t that hard to experimentally realize as this machine shown here. (It’s a molecular beam epitaxy system to grow the crystal structure of a VCSEL, some type of laser.))
There exist many different types of cryptography, and in this post I’ll focus on encryption. That means, the art or the science of converting messages such that nobody except you and your friend is able to read their content. For any type of encryption, you need some kind of key. Computers work with numbers, more specifically with 0-s and 1-s, so think of this key as a random sequence of 0-s and 1-s for now. If you and your friend both know this random sequence, you’ll be able to use symmetric cryptography to encrypt and decrypt messages using this key. But the obvious problem is: how to establish this key between you and your friend? That’s where asymmetric cryptography comes into play. With asymmetric cryptography, you have not one but two keys: a public key and a private key. The private key is only known to you; the public key, however, is meant to be publicly shared with anyone. Using this combination of public and private keys, algorithms like Diffie-Hellman exist that give both your friend and you a symmetric key that is only know to both of you. Instead of generating a symmetric key, though, algorithms like RSA may be used that allow you to directly encrypt and decrypt messages using your public and private keys.