Okay, let's outline the quantum algorithm designed to efficiently factor large numbers: **Shor's Algorithm**, developed by Peter Shor in 1994.
It's crucial to understand that Shor's algorithm doesn't _directly_ find the factors. Instead, it efficiently solves a related problem: **finding the period** of a specific function. Knowing this period allows us to deduce the factors using classical computation.
**The Problem:** Factor a large composite integer N.
The Core Idea (Classical Reduction):
Factoring N can be reduced to finding the order or period r of a randomly chosen integer a modulo N (where 1<a<N and gcd(a,N)=1). The period r is the smallest positive integer such that ar≡1(modN).
Once we find such an r:
1. If r is odd, the method fails for this choice of a. We need to pick a different a and try again.
2. If r is even, we compute x=ar/2(modN).
3. If x≡−1(modN) (i.e., x=N−1), the method fails for this choice of a. Pick a different a.
4. Otherwise (r is even and ar/2≡−1(modN)), we have found non-trivial factors of N by calculating:
- factor1=gcd(x−1,N)
- factor2=gcd(x+1,N)
The classical difficulty lies in finding the period r efficiently. This is where the quantum computer comes in.
**Shor's Algorithm Steps (Quantum Period Finding):**
Let n=⌈log2N⌉ be the number of bits needed to represent N. We typically need about 2n qubits for the first register and n qubits for the second.
1. **Classical Pre-check:**
- Choose a random integer a such that 1<a<N.
- Calculate d=gcd(a,N) using the classical Euclidean algorithm.
- If d>1, then d is a non-trivial factor of N, and we are done.
- If d=1, proceed to the quantum steps.
2. **Quantum State Preparation:**
- Initialize two quantum registers. Let the first register (input register) have t qubits, where 2t is large enough (e.g., N2≤2t<2N2, so t≈2n). Let the second register (output register) have n qubits.
- Apply the Hadamard gate H to each qubit in the first register to create a uniform superposition of all integers from 0 to 2t−1: ∣ψ1⟩=2t1x=0∑2t−1∣x⟩∣0⟩
3. **Modular Exponentiation (Quantum Oracle):**
- Apply a quantum circuit that computes the modular exponentiation f(x)=ax(modN). This operation maps ∣x⟩∣0⟩ to ∣x⟩∣ax(modN)⟩. Apply this to the superposition state: ∣ψ2⟩=2t1x=0∑2t−1∣x⟩∣ax(modN)⟩
- This step entangles the two registers. The function f(x) is periodic with the period r we seek.
4. **Measure the Second Register:**
- Measure the second register. Let the outcome be some value k.
- This measurement collapses the state of the first register into a superposition of only those values of x for which ax(modN)=k. These x values are separated by the period r. If x0 is the smallest such x, the state of the first register becomes (approximately): ∣ψ3⟩≈M1j=0∑M−1∣x0+jr⟩ where M≈2t/r is the number of inputs x mapping to the measured k. The first register now holds a state whose periodicity is r.
5. **Quantum Fourier Transform (QFT):**
- Apply the Quantum Fourier Transform to the first register. The QFT transforms the periodic state into a state where the amplitudes are concentrated near multiples of 2t/r. ∣ψ4⟩=QFT∣ψ3⟩
6. **Measure the First Register:**
- Measure the first register. Let the outcome be y. This measured value y is likely to be close to an integer multiple of 2t/r. That is: 2ty≈rc for some integer c.
7. **Classical Post-processing (Finding r):**
- Use the measured value y and the known value 2t. Use the classical **Continued Fractions Algorithm** on the fraction y/2t to find the best rational approximation c/r with a denominator r less than N.
- The denominator r obtained from the continued fractions algorithm is a strong candidate for the period.
- **Verification:** Check if ar≡1(modN). If not, r might be a factor of the true period, or the measurement y was unlucky. Also, check if r is even and if ar/2≡−1(modN).
- If the candidate r works and satisfies the conditions, calculate the factors gcd(ar/2−1,N) and gcd(ar/2+1,N).
- If the candidate r fails (e.g., it's odd, ar≡1(modN), or it leads to trivial factors 1,N), repeat the entire algorithm (steps 1-7) with a different random base a. The probability of success in each run is reasonably high.
**Efficiency:**
- The most computationally intensive classical algorithms for factoring (like the General Number Field Sieve) have sub-exponential complexity.
- Shor's algorithm, running on an ideal quantum computer, has polynomial complexity, roughly O((logN)3). The quantum parts (Modular Exponentiation and QFT) are the critical steps that provide the speedup.
- This exponential speedup is why Shor's algorithm poses a significant threat to current public-key cryptography systems like RSA, which rely on the classical difficulty of factoring large numbers.
**Requirements:**
Shor's algorithm requires a large-scale, fault-tolerant quantum computer capable of executing deep circuits with high fidelity. Building such a machine is a major ongoing challenge in physics and engineering. Current quantum computers are too small and noisy (NISQ era) to factor cryptographically relevant numbers using Shor's algorithm.