By Yasuhiko Hagiwara
Quantum computing is one of the most exciting and revolutionary fields in computer science today. It promises to solve problems that are beyond the reach of classical computers, such as simulating complex physical systems, optimizing large-scale networks, and breaking cryptographic codes. But what exactly is quantum computing, and how does it work? And what are the implications of quantum computing for cryptography and security? In this article, I will try to answer these questions and more, in a simple and accessible way.
To understand quantum computing, we first need to understand some basics of quantum physics. Quantum physics is the branch of physics that deals with the behavior of the smallest particles in nature, such as atoms, electrons, and photons. These particles have some strange and counterintuitive properties, such as:
Superposition: A quantum particle can exist in a combination of two or more states at the same time, until it is measured and collapses to one definite state. For example, an electron can spin up or down, or both at the same time, until we observe it and find out its actual spin.
Entanglement: Two or more quantum particles can become linked in such a way that their states are correlated, even if they are far apart. This means that measuring one particle will instantly affect the state of the other, without any physical connection or communication. For example, two entangled electrons can have opposite spins, and if we measure one and find it spinning up, we know that the other one is spinning down, no matter where it is.
Interference: Quantum particles can behave like waves, and interfere with each other, creating patterns of constructive and destructive interference. For example, a photon can pass through two slits and interfere with itself, creating a pattern of bright and dark spots on a screen.
These quantum phenomena are the basis of quantum computing. A quantum computer is a device that uses quantum particles, such as electrons, photons, or atoms, to store and manipulate information. Unlike classical bits, which can only be 0 or 1, quantum bits, or qubits, can be in a superposition of 0 and 1, or any combination in between. This means that a qubit can encode more information than a bit, and a quantum computer can process more information than a classical computer, in parallel.
To illustrate how qubits work, let’s use a simple analogy. Imagine a coin that can be heads or tails, or both at the same time. This coin represents a qubit, and its state can be described by two numbers, called amplitudes, that indicate the probability of finding the coin in heads or tails when we measure it. For example, if the coin is in a state where it is 50% heads and 50% tails, its amplitudes are 0.5 and 0.5, and we write its state as:
Here, |0> and |1> represent the heads and tails states, respectively, and the factor of 1/sqrt(2) ensures that the sum of the squares of the amplitudes is 1, which is a requirement for any valid quantum state. This state is also called a superposition state, because it is a combination of two basis states.
We can manipulate the state of the coin by applying operations, called gates, that change its amplitudes. For example, we can apply a gate that flips the coin, changing its state from heads to tails, or vice versa. This gate is called a NOT gate, or an X gate, and it is represented by a matrix:
To apply the gate to the coin, we multiply the matrix by the state vector, and get the new state. For example, if we apply the X gate to a coin that is in heads, we get:
This means that the coin is now in tails. Similarly, if we apply the X gate to a coin that is in tails, we get:
This means that the coin is now in heads. And if we apply the X gate to a coin that is in a superposition state, we get:
This means that the coin is still in a superposition state, but with the amplitudes reversed.
There are other gates that can perform different operations on the coin, such as rotating it, swapping it, or entangling it with another coin. By applying a sequence of gates, we can create complex quantum states and perform quantum computations.
One of the main goals of quantum computing is to achieve quantum supremacy, which is the ability of a quantum computer to perform a task that is impossible or intractable for a classical computer. This would demonstrate the superiority of quantum computing over classical computing, and open up new possibilities for solving hard problems.
One of the candidates for achieving quantum supremacy is the quantum random circuit sampling problem. This problem involves generating a random quantum circuit, which is a sequence of random gates applied to a set of qubits, and then sampling the output state of the circuit. The output state is a probability distribution over the possible values of the qubits, and sampling it means measuring the qubits and obtaining a random outcome. The challenge is to verify that the outcome is consistent with the expected distribution, given the random circuit.
This problem is easy for a quantum computer, because it can simply execute the random circuit and measure the output. However, it is very hard for a classical computer, because it would have to simulate the quantum circuit, which involves keeping track of all the possible states and amplitudes of the qubits, and then sampling from the resulting distribution. This would require an exponential amount of memory and time, as the number of qubits and gates increases.
In 2019, Google claimed to have achieved quantum supremacy by performing this problem on a 53-qubit quantum processor, called Sycamore, and obtaining an output that would take a state-of-the-art supercomputer 10,000 years to simulate. This claim was disputed by IBM, which argued that the problem could be solved faster by using a different classical algorithm and a larger supercomputer. However, Google’s achievement was still widely recognized as a significant milestone for quantum computing, and a proof of concept for quantum supremacy.
One of the most important applications of quantum computing is cryptography, which is the science of securing information and communication. Cryptography relies on mathematical problems that are easy to solve in one direction, but hard to solve in the reverse direction. For example, multiplying two large prime numbers is easy, but finding the prime factors of a large number is hard. These problems are called one-way functions, and they are the basis of many cryptographic schemes, such as public-key encryption and digital signatures.
However, quantum computing poses a serious threat to cryptography, because it can solve some of these hard problems faster than classical computers, using special quantum algorithms. One of the most famous quantum algorithms is Shor’s algorithm, which can find the prime factors of a large number in polynomial time, using a quantum computer. This algorithm can break the security of many widely used cryptographic schemes, such as RSA and ECC, which are based on the hardness of factorization and related problems.
Another quantum algorithm that can break cryptography is Grover’s algorithm, which can find the solution to a search problem in square root time, using a quantum computer. This algorithm can speed up the process of brute-force attacks, which involve trying all possible keys or passwords until finding the correct one. This algorithm can reduce the security of many symmetric-key schemes, such as AES and SHA, which are based on the hardness of search problems.
To counter the threat of quantum computing, cryptography needs to evolve and adapt to the new paradigm. This means developing new cryptographic schemes that are resistant to quantum attacks, or quantum-proof. These schemes are called post-quantum cryptography, or quantum-resistant cryptography, and they are based on mathematical problems that are hard for both classical and quantum computers.
Some of the candidates for quantum-resistant cryptography are:
Lattice-based cryptography: This is based on the hardness of finding the shortest vector in a high-dimensional lattice, which is a regular grid of points in space. Lattice-based cryptography can support many advanced features, such as fully homomorphic encryption, which allows performing arbitrary computations on encrypted data without decrypting it.
Code-based cryptography: This is based on the hardness of decoding a random linear code, which is a way of adding redundancy to a message to correct errors. Code-based cryptography can achieve high security levels with relatively small key sizes, and is resistant to most known quantum attacks.
Hash-based cryptography: This is based on the hardness of finding collisions or pre-images for cryptographic hash functions, which are functions that map any input to a fixed-length output, in a one-way and unpredictable manner. Hash-based cryptography can provide simple and efficient solutions for digital signatures, but has some limitations, such as large signature sizes and limited number of signatures per key.
Multivariate-based cryptography: This is based on the hardness of solving systems of multivariate polynomial equations, which are equations that involve multiple variables and powers. Multivariate-based cryptography can offer fast and compact solutions for encryption and signatures, but has some drawbacks, such as complex key generation and vulnerability to some quantum attacks.
These are some of the most promising and widely studied quantum-resistant cryptographic schemes, but there are others, such as isogeny-based, supersingular elliptic curve, and symmetric-key cryptography. The challenge is to find the best trade-offs between security, efficiency, and compatibility, and to standardize and implement them in practice.
Quantum computing is not only a threat to cryptography, but also an opportunity for innovation and discovery. Quantum computing can enable new applications and breakthroughs in various fields, such as:
Artificial intelligence: Quantum computing can enhance the capabilities of artificial intelligence, by enabling faster and more accurate machine learning, natural language processing, computer vision, and optimization. Quantum computing can also help understand the nature of intelligence and consciousness, by simulating quantum systems and exploring quantum effects in the brain.
Chemistry and physics: Quantum computing can simulate the behavior and interactions of molecules, atoms, and subatomic particles, with unprecedented accuracy and complexity. This can lead to new discoveries and inventions in chemistry and physics, such as designing new materials, drugs, catalysts, and energy sources.
Biology and medicine: Quantum computing can model and analyze biological systems and processes, such as DNA, proteins, enzymes, and cells. This can improve the understanding and treatment of diseases, such as cancer, Alzheimer’s, and Parkinson’s, and enable new possibilities for biotechnology, such as gene editing and synthetic biology.
Finance and economics: Quantum computing can optimize and solve complex problems in finance and economics, such as portfolio management, risk analysis, pricing, and forecasting. Quantum computing can also create new opportunities and challenges for the financial sector, such as quantum money, quantum cryptography, and quantum game theory.
These are some of the potential impacts of quantum computing, but there are many more, such as in astronomy, meteorology, cryptography, and art. Quantum computing is a game-changer for computer science and beyond, and it will shape the future of humanity in profound and unpredictable ways.
To conclude this article, I will show you a simple example of a quantum computer algorithm, that demonstrates some of the basic concepts and operations of quantum computing. This algorithm is called the Deutsch-Jozsa algorithm, and it solves the following problem:
Given a black-box function f(x) that takes a n-bit input x and returns a 1-bit output f(x), determine whether f(x) is constant (returns the same value for all inputs) or balanced (returns 0 for half of the inputs and 1 for the other half).
This problem is hard for a classical computer, because it would have to query the function f(x) at least 2^(n-1) + 1 times, to be sure of the answer. However, a quantum computer can solve this problem with only one query, using the Deutsch-Jozsa algorithm. The algorithm works as follows:
Prepare two quantum registers, one with n qubits and one with 1 qubit, and initialize them to |0> and |1>, respectively.
Apply a Hadamard gate to each qubit, creating a superposition of all possible inputs and outputs.
Query the function f(x) by applying a controlled-NOT gate between the n-qubit register and the 1-qubit register, using the function value as the control bit. This creates an entanglement between the input and output registers.
Apply a Hadamard gate to each qubit in the n-qubit register, undoing the superposition of the inputs.
Measure the n-qubit register. If the result is |0>, then the function is constant. If the result is anything else, then the function is balanced.
The algorithm can be represented by the following quantum circuit:
The algorithm works because of the interference of the quantum states. If the function is constant, then the output register does not affect the input register, and the Hadamard gates cancel out, leaving the input register in |0>. If the function is balanced, then the output register introduces a phase difference in the input register, and the Hadamard gates create a non-zero state, with some amplitudes being negative.
This algorithm is one of the first examples of quantum speedup, which is the advantage of quantum computing over classical computing, in terms of time or resources. It shows that quantum computing can solve some problems faster than classical computing, by exploiting the quantum phenomena of superposition, entanglement, and interference.
I hope you enjoyed this article, and learned something new about quantum computing and cryptography. Quantum computing is a fascinating and challenging field, that has many implications and applications for computer science and other domains. If you are interested in learning more about quantum computing, I recommend the following resources:
Quantum Computing for the Very Curious, a free online book that explains the basics of quantum computing in an interactive and intuitive way.
Qiskit, an open-source framework for creating and running quantum programs on real and simulated quantum devices.
IBM Quantum Experience, a cloud-based platform that allows you to access and experiment with IBM’s quantum computers and simulators.
Microsoft Quantum Development Kit, a set of tools and libraries for developing quantum applications using the Q# programming language.
Google Quantum AI, a research group that explores the applications of quantum computing for artificial intelligence and machine learning.
Your source for the latest tech news, guides, and reviews.
Receive Tech Decoded's Newsletter in your inbox every week.