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.
En este capítulo
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 : dos enteros son congruentes, , si divide a . Los números coprimos con forman un grupo con la multiplicación, , con elementos ( es la función de Euler).
Si , entonces . En particular, las potencias se repiten periódicamente: el orden de , el menor con , existe y divide a .
RSA usa y, con , elige un exponente de cifrado y otro de descifrado con . Conociendo y , calcular 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
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.
Sea impar, compuesto y que no sea potencia de un primo, con factores primos distintos, y sea elegido uniformemente en , con orden . Con probabilidad al menos , es par y . En ese caso
son factores no triviales de .
Por qué funciona el máximo común divisor
Como , divide a . No divide al primer factor, porque es el menor exponente con ; ni al segundo, por hipótesis. Así que 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 módulo cada potencia de primo se comportan de forma independiente.
Todo se reduce a encontrar el periodo de . 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
- Se preparan dos registros y se pone el primero, de qubits con , en superposición uniforme: .
- Se calcula de forma reversible en el segundo registro: . La exponenciación modular se hace por cuadrados sucesivos, con puertas para números de bits; es la parte más cara del algoritmo.
- Se mide el segundo registro (o simplemente se olvida). El primero colapsa a un estado uniforme sobre una progresión aritmética : un estado periódico de periodo .
- Se aplica la QFT al primer registro y se mide. El resultado está, con alta probabilidad, cerca de un múltiplo de : para algún .
El último paso es recuperar a partir de la fracción , 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.
Si , entonces es una de las reducidas (convergentes) del desarrollo en fracción continua de .
Como , la fracción (irreducible) aparece entre las reducidas de , que se calculan con el algoritmo de Euclides. Si y resultan ser coprimos, lo que ocurre con probabilidad , el denominador es el orden . Bastan unas pocas repeticiones.
Un ordenador cuántico puede factorizar un entero de bits con puertas elementales (u 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ó 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
- 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).
- G. L. Miller (1976). «Riemann's Hypothesis and Tests for Primality». Journal of Computer and System Sciences, 13(3).
- P. W. Shor (1994). «Algorithms for quantum computation: discrete logarithms and factoring». FOCS (versión de revista: SIAM J. Computing, 1997).
- L. M. K. Vandersypen et al. (2001). «Experimental realization of Shor's quantum factoring algorithm using nuclear magnetic resonance». Nature, 414.
- 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).
- C. Gidney (2025). «How to factor 2048 bit RSA integers with less than a million noisy qubits». Preprint en arXiv.
- NIST (2024). FIPS 203, 204 y 205: estándares de criptografía poscuántica.