1. Bit
  2. Qubit
  3. Superposición
  4. Medida
  5. Entrelazamiento
  6. Circuitos
  7. Fourier
  8. Shor
  9. Grover
  10. Corrección

Capítulo 07 · Algoritmo de Shor

Factorizar encontrando un periodo

La seguridad de buena parte de internet descansa en una suposición: que factorizar números grandes es difícil. En 1994 Peter Shor demostró que un ordenador cuántico podría hacerlo en tiempo polinómico, convirtiendo la factorización en buscar el periodo de una función, y el periodo en un pico de Fourier.

Multiplicar dos primos de trescientas cifras le lleva a un ordenador microsegundos. Deshacer el producto, recuperar los primos a partir del resultado, les llevaría a los mejores algoritmos clásicos conocidos más tiempo que la edad del universo. Sobre esa asimetría descansa RSA (Rivest, Shamir y Adleman, 1977), el criptosistema que protege buena parte de las comunicaciones del mundo. En 1994 Peter Shor, en los Laboratorios Bell, demostró que un ordenador cuántico suficientemente grande lo rompería.

Un poco de teoría de números

Trabajamos módulo N: dos enteros son congruentes, a≡b(modN), si N divide a a−b. Los números coprimos con N forman un grupo con la multiplicación, ℤN∗, con φ(N) elementos (φ es la función de Euler).

Teorema (Euler, 1763)

Si gcd⁡(a,N)=1, entonces aφ(N)≡1(modN). En particular, las potencias axmodN se repiten periódicamente: el orden de a, el menor r>0 con ar≡1(modN), existe y divide a φ(N).

RSA usa N=pq y, con φ(N)=(p−1)(q−1), elige un exponente de cifrado e y otro de descifrado d con ed≡1(modφ(N)). Conociendo p y q, calcular d es fácil; sin ellos, nadie sabe hacerlo de forma eficiente. El mejor algoritmo clásico de factorización, la criba general del cuerpo de números, tarda un tiempo del orden de

exp⁡((649)1/3(ln⁡N)1/3(ln⁡ln⁡N)2/3),

subexponencial pero enorme: factorizar el número de 829 bits RSA-250 en 2020 costó unos 2700 años-núcleo de cálculo.

De factorizar a buscar periodos

La primera idea del algoritmo de Shor es clásica y se remonta a Gary Miller (1976): si sabemos calcular órdenes, sabemos factorizar.

Teorema (reducción al cálculo del orden)

Sea N impar, compuesto y que no sea potencia de un primo, con k≥2 factores primos distintos, y sea a elegido uniformemente en ℤN∗, con orden r. Con probabilidad al menos 1−21−k≥12, r es par y ar/2≢−1(modN). En ese caso

gcd⁡(ar/2−1,N)ygcd⁡(ar/2+1,N)

son factores no triviales de N.

Por qué funciona el máximo común divisor

Como ar≡1, N divide a ar−1=(ar/2−1)(ar/2+1). No divide al primer factor, porque r es el menor exponente con ar≡1; ni al segundo, por hipótesis. Así que N comparte un factor no trivial con cada uno, que el algoritmo de Euclides encuentra en tiempo polinómico. La cota de probabilidad sale del teorema chino del resto: los órdenes de a módulo cada potencia de primo se comportan de forma independiente.

Todo se reduce a encontrar el periodo r de f(x)=axmodN. Clásicamente, esto es tan difícil como factorizar. Cuánticamente, es un trabajo para la transformada de Fourier.

El cálculo cuántico del orden

  1. Se preparan dos registros y se pone el primero, de t qubits con N2≤Q=2t<2N2, en superposición uniforme: 1Q∑x=0Q−1|x⟩|0⟩.
  2. Se calcula f de forma reversible en el segundo registro: 1Q∑x|x⟩|axmodN⟩. La exponenciación modular se hace por cuadrados sucesivos, con O(n3) puertas para números de n bits; es la parte más cara del algoritmo.
  3. Se mide el segundo registro (o simplemente se olvida). El primero colapsa a un estado uniforme sobre una progresión aritmética x0,x0+r,x0+2r,…: un estado periódico de periodo r.
  4. Se aplica la QFT al primer registro y se mide. El resultado y está, con alta probabilidad, cerca de un múltiplo de Q/r: |yQ−ℓr|≤12Q para algún ℓ.

El último paso es recuperar r a partir de la fracción y/Q, un problema de teoría de números de más de dos mil años: aproximar un número con fracciones de denominador pequeño.

Teorema (Legendre, 1798)

Si |x−pq|<12q2, entonces pq es una de las reducidas (convergentes) del desarrollo en fracción continua de x.

Como 12Q≤12N2<12r2, la fracción ℓ/r (irreducible) aparece entre las reducidas de y/Q, que se calculan con el algoritmo de Euclides. Si ℓ y r resultan ser coprimos, lo que ocurre con probabilidad Ω(1/log⁡log⁡r), el denominador es el orden r. Bastan unas pocas repeticiones.

El algoritmo de Shor con números pequeños. Elige N y una base a. 1. La función axmodN es periódica. 2. La parte cuántica (simulada de forma exacta): la distribución de la medida tras la QFT, con picos cerca de los múltiplos de Q/r. 3. Una muestra, su desarrollo en fracción continua y el periodo candidato. 4. Los máximos comunes divisores que dan los factores. Algunas bases fallan (r impar o ar/2≡−1): prueba con otra.
Teorema (Shor, 1994)

Un ordenador cuántico puede factorizar un entero de n bits con O(n3) puertas elementales (u O(n2log⁡nlog⁡log⁡n) con multiplicación rápida) y una probabilidad de éxito acotada inferiormente por una constante. El mismo método calcula logaritmos discretos, lo que rompe también Diffie-Hellman y la criptografía de curvas elípticas.

¿Cuánto falta?

En 2001 un equipo de IBM factorizó 15=3×5 con siete espines nucleares de una molécula. Desde entonces el récord de implementaciones honestas apenas se ha movido: el algoritmo de Shor necesita muchos qubits de alta calidad y circuitos muy largos, es decir, corrección de errores. Las estimaciones de recursos para RSA-2048 no han parado de bajar: unos 20 millones de qubits físicos durante 8 horas (Gidney y Ekerå, 2019), y menos de un millón de qubits ruidosos en menos de una semana (Gidney, 2025). Los procesadores actuales tienen del orden de cien a mil.

La amenaza se toma en serio, porque los datos cifrados se pueden guardar hoy y descifrar en el futuro. En 2024 el NIST publicó los primeros estándares de criptografía poscuántica (FIPS 203, 204 y 205), basados en problemas sobre retículos y funciones resumen para los que no se conoce ningún algoritmo cuántico eficiente. La lección matemática del algoritmo de Shor va más allá de la criptografía: los ordenadores cuánticos son extraordinariamente buenos encontrando estructura periódica oculta en grupos abelianos (el problema del subgrupo oculto), y nadie sabe si ese poder llega mucho más lejos.

Referencias

  1. R. L. Rivest, A. Shamir y L. Adleman (1978). «A Method for Obtaining Digital Signatures and Public-Key Cryptosystems». Communications of the ACM, 21(2).
  2. G. L. Miller (1976). «Riemann's Hypothesis and Tests for Primality». Journal of Computer and System Sciences, 13(3).
  3. P. W. Shor (1994). «Algorithms for quantum computation: discrete logarithms and factoring». FOCS (versión de revista: SIAM J. Computing, 1997).
  4. L. M. K. Vandersypen et al. (2001). «Experimental realization of Shor's quantum factoring algorithm using nuclear magnetic resonance». Nature, 414.
  5. C. Gidney y M. Ekerå (2021). «How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits». Quantum, 5 (arXiv 2019).
  6. C. Gidney (2025). «How to factor 2048 bit RSA integers with less than a million noisy qubits». Preprint en arXiv.
  7. NIST (2024). FIPS 203, 204 y 205: estándares de criptografía poscuántica.