El algoritmo de Shor es un algoritmo de factorización cuántica (que descompone un número en factores primos) que le permite descomponer un número en el tiempo usando qubits lógicos .
El algoritmo de Shor fue desarrollado por Peter Shor en 1994 . Siete años después, en 2001 , su desempeño fue demostrado por un grupo de especialistas de IBM . El número 15 fue factorizado por 3 y 5 usando una computadora cuántica con 7 qubits .
La importancia del algoritmo radica en el hecho de que con su ayuda (cuando se usa una computadora cuántica con varios miles de qubits lógicos) es posible descifrar sistemas criptográficos de clave pública . Por ejemplo, RSA usa una clave pública que es el producto de dos grandes números primos. Una forma de descifrar el cifrado RSA es encontrar los factores. Cuando son lo suficientemente grandes, esto es casi imposible de hacer usando los algoritmos clásicos conocidos . Los algoritmos de factorización probados deterministas clásicos más conocidos, como el método de forma cuadrática de Shanks y el algoritmo de Pollard-Strassen , requieren tiempo de orden. Además , el método de forma cuadrática de Shanks puede ejecutarse en tiempo de orden si la hipótesis de Riemann es verdadera . Entre los algoritmos probabilísticos, el líder de la factorización es un método de tamiz de campo numérico especial , que puede encontrar un divisor primo con una probabilidad de 1/2 en tiempo subexponencial . El algoritmo de Shor, utilizando las capacidades de las computadoras cuánticas, puede factorizar un número. no solo en tiempo polinomial, sino en un tiempo no mucho mayor que el tiempo de multiplicación de enteros (es decir, casi tan rápido como el propio cifrado). Por lo tanto, la implementación de una computadora cuántica escalable pondrá fin a la mayor parte de la protección criptográfica moderna. No se trata solo del esquema RSA, que se basa directamente en las complejidades de la factorización, sino también de otros esquemas similares que una computadora cuántica puede descifrar de manera similar.
El algoritmo de Shor tiene un carácter probabilístico. La primera fuente de aleatoriedad está integrada en la reducción probabilística clásica de la factorización para encontrar el período de alguna función. La segunda fuente proviene de la necesidad de observar la memoria cuántica, que también da resultados aleatorios [1] .
La base del algoritmo de Shor: la capacidad de las unidades de información de las computadoras cuánticas -qubits- de tomar varios valores al mismo tiempo y estar en un estado de " entrelazamiento cuántico ". Por lo tanto, permite realizar cálculos en condiciones de economía de qubits. El principio de funcionamiento del algoritmo de Shor se puede dividir en 2 partes: la primera es la reducción clásica de la factorización para encontrar el período de una determinada función, la segunda es el hallazgo cuántico del período de esta función. Dejar:
- el número que queremos factorizar (no debe ser una potencia entera de un número impar); - el tamaño del registro de memoria que se utiliza (sin contar el volcado). El tamaño de bits de esta memoria es aproximadamente 2 veces el tamaño de . Más precisamente, ; es un parámetro aleatorio tal que y (donde es el máximo común divisor ).Tenga en cuenta que , , son fijos. El algoritmo de Shor utiliza una forma estándar de reducir el problema de expansión al problema de encontrar el período de una función para un número seleccionado al azar [2] .
El mínimo tal que es el módulo de pedido
El orden es el periodo de la función donde
Si puede calcularse eficientemente como una función de , entonces uno puede encontrar su propio divisor en el tiempo acotado por un polinomio con probabilidad para cualquier fijo .
Supongamos que para un periodo dado es par y satisface la condición
Después
— propio divisor La función es computable en tiempo polinomial.La probabilidad de que se cumpla esta condición donde es el número de primos impares distintos , por tanto, en este caso. Por lo tanto, es probable que se encuentre un buen valor en los intentos. El cálculo más largo en un intento es el cálculo [3] [4] .
Para implementar la parte cuántica del algoritmo, el circuito computacional es un registro cuántico y . Inicialmente, cada uno de ellos consta de un conjunto de qubits en un estado booleano cero
El registro se usa para colocar los argumentos de la función El registro (auxiliar) se usa para colocar los valores de la función con el periodo a calcular.
La computación cuántica consta de 4 pasos [5] :
Como resultado, resulta con probabilidad [6]
El resto de la ejecución se ejecuta en una computadora clásica:
Hasta cierto punto, la determinación del período de una función mediante la transformada de Fourier es similar a la medición de las constantes de la red cristalina mediante difracción de rayos X o de neutrones. Para determinar el periodo , no se requiere calcular todos los valores, en este sentido, el problema es similar al problema de Deutsch , en el que es importante conocer no todos los valores de la función, sino solo algunos de sus valores . propiedades [6] .
Sea una función con periodo desconocido
Para determinar el periodo se requieren dos registros con tamaños y qubits, los cuales inicialmente deben estar en el estado
En la primera etapa, se realiza una superposición unilateral de todos los vectores base del primer registro utilizando un operador de la siguiente forma:
, donde yAquí se utiliza la pseudotransformación de Hadamard . Aplicando al estado actual, obtenemos:
Midiendo el segundo registro con el resultado donde lleva al estado a
dóndeDespués de medir el estado, el primer registro consta solo de vectores base de la forma tal que para todo Por lo tanto, tiene un espectro homogéneo discreto. Es imposible obtener directamente el período o un múltiplo del mismo midiendo el primer registro, porque aquí hay una variable aleatoria. Aquí aplicamos la transformada discreta de Fourier de la forma
en el registro, ya que la probabilidad del espectro en el estado transformado es invariante con respecto al desplazamiento (solo se pueden transformar las fases, no los valores absolutos de las amplitudes). donde ySi es múltiplo de , entonces si es múltiplo de y en caso contrario. Incluso si no es una potencia de 2, el espectro muestra picos individuales con un período porque
Para el primer registro se utilizan qubits cuando porque esto garantiza al menos elementos en la suma dada, y así el ancho de los picos será del orden
Si ahora calculamos el primer registro, obtenemos un valor cercano a donde se puede escribir como Esto se reduce a encontrar una aproximación donde para un número particular de un punto binario Para resolver este problema, se usan fracciones continuas.
Dado que la forma de un número racional no es única, entonces u se define como si la probabilidad de que ambos números y sean primos fuera mayor que , por lo tanto, para que la probabilidad de éxito sea cercana a uno, solo se necesitan intentos [7] [5] .
Otro problema matemático, el logaritmo discreto , a menudo utilizado para crear sistemas criptográficos asimétricos, también es vulnerable al algoritmo cuántico propuesto por Shor en el mismo artículo [8] .
Algoritmos cuánticos | |
---|---|
informatica cuantica | |||||||||
---|---|---|---|---|---|---|---|---|---|
Conceptos generales |
| ||||||||
comunicaciones cuánticas |
| ||||||||
Algoritmos cuánticos |
| ||||||||
Teoría de la complejidad cuántica |
| ||||||||
Modelos de computación cuántica |
| ||||||||
Prevención de decoherencia |
| ||||||||
Implementaciones físicas |
|