Specifically, we’ll be diving into the fascinating world of binary elliptic curves (EC) and how they can be broken by those ***** qubits.
First things first: what are ECs? Well, in traditional public-key encryption systems like RSA or ECC, you use a pair of keys one for encrypting messages and another for decrypting them. The catch is that these keys need to be kept secret (hence the term “public” and “private”). But what if someone manages to steal your private key? That’s where ECs come in!
ECs are a type of public-key encryption system that use elliptic curves instead of traditional number theory. The idea is simple: you choose an elliptic curve (which looks like a squiggly line on a graph), and then pick some points on the curve to be your “keys”. To encrypt a message, you multiply one of these keys by another point on the curve this gives you a new point that represents your ciphertext.
Now, how qubits can break ECs. The key insight is that quantum computers are really good at factoring large numbers (which is what RSA relies on for security). But they also have another trick up their sleeve: they can perform a type of operation called “quantum Fourier sampling” (QFS) which allows them to efficiently find the discrete logarithm of a point on an elliptic curve.
So, how do we use QFS to break ECs? Well, let’s say you have two points \({P}_{1}\) and \({P}_{2}\) on your chosen elliptic curve (which are your “keys”). To encrypt a message using this system, you would multiply these keys together:
\begin{equation}
C = {P}_{1}^{x}{P}_{2}^{y}
\end{equation}
where \({P}_{1}\) and \({P}_{2}\) are the public keys, and \(x\) and \(y\) are the message bits. To decrypt this ciphertext, you would need to find the discrete logarithm of \({C}^{z}\), where \({C}^{z} = {P}_{1}^{x}{P}_{2}^{y}{P}_{3}^{z}\).
But here’s the catch: finding the discrete logarithm is a really hard problem! In fact, it’s believed to be as difficult as factoring large numbers. But with QFS, we can efficiently find this value for binary elliptic curves (which are the ones that are most commonly used in practice).
So how does QFS work? Well, let’s say you have a point \({P}_{1}\) on your chosen elliptic curve. To perform QFS, you would first choose a random value for \(x\), and then compute:
\begin{equation}
C = {P}_{1}^{x}
\end{equation}
Next, you would measure the “phase” of this state (which is essentially the angle between \({P}_{1}\) and \({C}\)). This phase will be a random value with uniform distribution over [0, 2π). But if we repeat this process many times, we can start to see patterns emerge. Specifically, we’ll notice that certain values of \(x\) (which correspond to points on the curve) are more likely than others.
This is because when you perform QFS on a binary elliptic curve, the phase will be concentrated around specific angles these are called “quantum Fourier peaks”. By measuring the frequency of these peaks, we can efficiently find the discrete logarithm of any point on the curve!
It’s a fascinating topic that combines the power of quantum computing with the elegance of traditional public-key encryption systems. And who knows maybe one day we’ll be able to use this technology to secure our data in ways that were once thought impossible!