We live in an ever changing world, and on the horizon is the era of quantum. We all hear about quantum computers, and how some may or may not have hit quantum supremacy, but one of the lesser known impacts of the advent of quantum computing is the impact it will have on encryption. In this day and age, encryption is used everywhere, and it is highly important. From protecting the messages to your friends on WhatsApp to keeping your credit car details safe when buying online, encryption keeps data safe by cleverly encoding it using secret keys that only the sender and receiver can decode… Or at lease that is the current working assumption.
For a moment think about how much data is out there. We are far away from the days where websites had a single static page and an email address. The internet of things is creating sensors that monitor our every moment, companies like Amazon are amassing our buying habits over generations, and almost all banking in the modern world is conducted online. Data is everywhere, and it is worth money, hence the need for solid encryption technologies. There are many working on what those technologies will one day look like, and to many, quantum key distribution (QKD) could be the answer to all of our problems.
Why is Current Encryption Tech Not Good Enough?
Encryption is split into two types, symmetric and asymmetric.
Starting with the simpler one, symmetric key encryption uses the same “secret” key for encryption and decryption. So you encrypt the data using your “secret” key, and give the encrypted data and the key to the person you want to read it. This is good if you are happy to literally take the data to person by hand on a memory stick, but how do you send the “secret” key secretly over the internet? It also has the problem that you are giving away your key, so your next message to a different person will need a different key. With a large user base, this becomes very difficult to manage. Asymmetric or “public” key encryption uses a different key for encryption and decryption. Every user in the network will have a “public” key and a “private” key associated with them. If you want to know more about the modern form of encryption, look into RSA.
This “public” key system is the bedrock to modern encryption algorithms. This is then added with the complexity of dealing with factors of very large prime numbers. When you multiply two large numbers together, you get a very large number that you can use for your key. The only reasons that computers struggle to beat the system is that modern computers cannot deal with these huge prime numbers effectively, and the process is too slow to be useful for malicious intent. The problem comes when we bring in quantum computing. There is a famous algorithm known as Shor’s algorithm that was developed in 1994, but would need a functioning quantum computer to be able to complete. If it ever works then it could in theory crack any encrypted data that uses these prime numbers as keys. So our banking data, all our messages and everything we currently use could be seen by anyone with a quantum computer. What all this means to us is that we need a fundamentally different way of encrypting data, or at least the way we generate and share keys.
Why is QKD any better?
Quantum physics is basically the way we describe the way matter and energy interact at the sub-atomic level. This is a follow on to classical physics which describes things like why the apple hit Newton on the head, and we we don’t sink in a swimming pool.
I could go into detail at this point about all the different nuances about the differences between quantum and classical physics, but most of it doesn’t really impact on QKD, as all we really care about are photons, the carrier of light. All we need to know about photons are that the have a direction, and a polarisation. The direction bit is fairly self explanatory, but polarisation needs a quick explanation. Photons oscillate (go up and down like a wave) at a certain frequency depending on the energy, for this we don’t really care about the frequency, but imagine what that looks like if it was going slowly. It only oscillates in one plane, so if it was to go through a slit, it would have to be at the same angle as the direction the light was oscillating in to actually pass through it. This is actually how sun glasses work, it only lets through light of a certain polarisation, so only some of it is let through.
The creepy thing about this polarised light is what quantum physics tell us about the polarisation. You can only know what polarisation it is by measuring it, which might seem like a stupid thing to say, but its a key part of quantum physics. Until that photon is measured it has an unknown state, so it can be seen as having every state. This is the part of the QKD technology that makes it work. Imagine if you sent a series of photons with binary bits encoded in the polarisation of the photons, so each photon is at a different angle depending on the bit it represents. The person reading the photons would measure the polarisation, which means that they now have a known state, i.e it has been chosen. The key is that if somebody tried to intercept the photon, and then resend what they read, the photon that was resent cannot be exactly the same so there will be a mismatch between the data sent by the sender, and received by the receiver. If they compared a small portion of the data over insecure channels, they would realise that the data sent is corrupted and start again.
Now imagine if that was a “secret” key. It would mean that there is a way to guarantee that the key you have sent was not corrupted or intercepted by anyone, and it was safe between the people communicating. On top of that, you don’t have the problem with prime numbers and quantum computers defeating it. In fact it may be a way that quantum computers (especially the optical ones) communicate within themselves, and with others, as they utilise this phenomenon as well to function.
That is QKD in a nutshell, and why it could the thing that changes encryption, something we all rely on every day, for the better. For further reading, look up the first ever QKD protocol, named BB84, it explains how QKD started to be implemented in the real world.