Algoritmo de Shor

O algoritmo de Shor é um algoritmo quântico para encontrar os fatores primos de um inteiro. Foi desenvolvido em 1994 pelo matemático americano Peter Shor.[1][2] É um dos poucos algoritmos quânticos conhecidos com aplicações potenciais convincentes e fortes evidências de aceleração superpolinomial em comparação com os melhores algoritmos clássicos (não quânticos) conhecidos.[3] No entanto, superar os computadores clássicos exigirá computadores quânticos com milhões de qubits devido à sobrecarga causada pela correção de erros quânticos.[4]

Shor propôs múltiplos algoritmos semelhantes para resolver o problema da fatoração, o problema do logaritmo discreto e o problema de determinação de período. "Algoritmo de Shor" geralmente se refere ao algoritmo de fatoração, mas pode se referir a qualquer um dos três algoritmos. O algoritmo do logaritmo discreto e o algoritmo de fatoração são instâncias do algoritmo de determinação de período, e todos os três são instâncias do problema do subgrupo oculto.

Num computador quântico, para fatorar um inteiro , o algoritmo de Shor é executado em tempo polinomial, o que significa que o tempo gasto é polinomial em .[5] Ele requer portas lógicas quânticas da ordem de usando multiplicação rápida,[6] ou mesmo usando o algoritmo de multiplicação assintoticamente mais rápido atualmente conhecido, devido a Harvey e van der Hoeven,[7] demonstrando assim que o problema da fatoração de inteiros está na classe de complexidade BQP. O algoritmo de Shor é assintoticamente mais rápido que o algoritmo de fatoração clássico mais escalável, o crivo geral do corpo de números, que funciona em tempo subexponencial: .[8]

Viabilidade e impacto

Diagrama apresentando a criptografia e a descriptografia de um documento usando criptografia assimétrica. Algumas formas de criptografia (incluindo a criptografia assimétrica) correm o risco de serem quebradas por futuros computadores quânticos.

Assumindo que um computador quântico com um número suficiente de qubits possa operar sem sucumbir ao ruído quântico e a outros fenômenos de decoerência quântica, então o algoritmo de Shor poderia ser usado para quebrar esquemas de criptografia de chave pública, tais como:

  • O esquema RSA
  • A troca de chaves Diffie-Hellman em corpos finitos
  • A troca de chaves Diffie-Hellman de curva elíptica[9]

O RSA pode ser quebrado se a fatoração de grandes inteiros for computacionalmente viável. Até onde se sabe, isso não é possível usando computadores clássicos (não quânticos); não se conhece nenhum algoritmo clássico que consiga fatorar inteiros em tempo polinomial. No entanto, o algoritmo de Shor mostra que a fatoração de inteiros pode ser feita com um circuito de complexidade polinomial num computador quântico ideal. Assim, pode ser viável derrotar o RSA construindo um computador quântico grande o suficiente. Esse foi um poderoso motivador para o design e a construção de computadores quânticos e para o estudo de novos algoritmos de computação quântica. Ele também facilitou a pesquisa de novos criptossistemas que sejam seguros contra computadores quânticos, coletivamente chamados de criptografia pós-quântica (PQC).

Implementação física

A partir de 2026, com as altas taxas de erro dos computadores quânticos e o número limitado de qubits físicos disponíveis para a correção de erros quânticos, as demonstrações em laboratório do algoritmo de Shor obtêm resultados corretos apenas em uma fração das tentativas e só tiveram sucesso com pequenos semiprimos.

Em 2001, o algoritmo de Shor foi demonstrado por um grupo na IBM, que fatorou em , usando uma implementação baseada em RMN de um computador quântico com sete qubits.[10] Após a implementação da IBM, dois grupos independentes implementaram o algoritmo de Shor usando qubits fotônicos, enfatizando que o entrelaçamento de múltiplos qubits foi observado durante a execução dos circuitos do algoritmo de Shor.[11][12] Em 2012, a fatoração de foi realizada com qubits de estado sólido.[13] Mais tarde, também em 2012, a fatoração de foi alcançada.[14] Em 2016, a fatoração de foi realizada novamente usando qubits de íons aprisionados.[15] Contudo, nenhuma dessas demonstrações atende aos requisitos do algoritmo de Shor genuíno: elas compilam o circuito usando conhecimento prévio da solução, e algumas simplificaram o algoritmo de uma forma que o torna equivalente ao lançamento de uma moeda.[16]

Algoritmo

O problema que estamos tentando resolver é: dado um número composto ímpar , encontre seus fatores inteiros.

Para conseguir isso, o algoritmo de Shor consiste em duas partes:

  1. Uma redução clássica do problema de fatoração ao problema de determinação de ordem. Esta redução é semelhante à usada para outros algoritmos de fatoração de inteiros, como o crivo quadrático.
  2. Um algoritmo quântico para resolver o problema de determinação de ordem.

Redução clássica

Um algoritmo de fatoração completo é possível se formos capazes de fatorar eficientemente um arbitrário em apenas dois inteiros e maiores que 1, já que, se ou não forem primos, o algoritmo de fatoração poderá, por sua vez, ser executado neles até que restem apenas primos.

Uma observação básica é que, usando o algoritmo de Euclides, podemos sempre calcular o MDC (maior divisor comum) entre dois inteiros de forma eficiente. Em particular, isso significa que podemos verificar eficientemente se é par, caso em que é trivialmente um fator. Vamos, portanto, assumir que é ímpar para o restante desta discussão. Depois, podemos usar algoritmos clássicos eficientes para verificar se é uma potência de um primo.[17] Para potências de primos, existem algoritmos clássicos de fatoração eficientes;[18] portanto, o restante do algoritmo quântico pode assumir que não é uma potência de primo.

Se esses casos fáceis não produzirem um fator não trivial de , o algoritmo prossegue para lidar com o caso restante. Escolhemos um número inteiro aleatório . Um possível divisor não trivial de pode ser encontrado calculando (o MDC), o que pode ser feito clássica e eficientemente usando o algoritmo de Euclides. Se isso produzir um fator não trivial (significando que ), o algoritmo termina, e o outro fator não trivial é . Se um fator não trivial não foi identificado, isso significa que e a escolha de são coprimos, então está contido no grupo multiplicativo de inteiros módulo , possuindo um inverso multiplicativo módulo . Assim, tem uma ordem multiplicativa módulo , o que significa que

e é o menor inteiro positivo que satisfaz essa congruência.

A sub-rotina quântica encontra . Pode-se ver pela congruência que divide , denotado como . Isso pode ser fatorado usando a diferença de quadrados: Como fatoramos a expressão desta maneira, o algoritmo não funciona para ímpar (porque deve ser um número inteiro), o que significa que o algoritmo teria que ser reiniciado com um novo . Daqui em diante, podemos, portanto, assumir que é par. Não pode ser o caso em que , já que isso implicaria , o que implicaria contraditoriamente que seria a ordem de , a qual já definimos ser . Neste ponto, pode ou não ser o caso de . Se não dividir , isso significa que somos capazes de encontrar um fator não trivial de . Calculamos: Se , então a afirmação era verdadeira, e um fator não trivial de não pode ser alcançado a partir de , exigindo que o algoritmo reinicie com um novo . Caso contrário, encontramos um fator não trivial de , sendo o outro fator , e o algoritmo é concluído. Para este passo, também é equivalente calcular ; isso produzirá um fator não trivial se for não trivial, e não produzirá se for trivial (onde ).

O algoritmo reescrito de forma sucinta é o seguinte: seja ímpar e não uma potência de primo. Queremos extrair dois fatores não triviais de .

  1. Escolha um número aleatório .
  2. Calcule , o máximo divisor comum de e .
  3. Se , então é um fator não trivial de , com o outro fator sendo , e terminamos.
  4. Caso contrário, use a sub-rotina quântica para encontrar a ordem de .
  5. Se for ímpar, volte para a etapa 1.
  6. Calcule . Se for não trivial, o outro fator é e terminamos. Caso contrário, volte para a etapa 1.

Foi demonstrado que há grande probabilidade de sucesso após algumas execuções.[2] Na prática, uma única chamada à sub-rotina de determinação de ordem quântica é suficiente para fatorar completamente com probabilidade muito alta de sucesso se for usada uma redução mais avançada.[19]

Sub-rotina quântica de determinação de ordem

O objetivo da sub-rotina quântica do algoritmo de Shor é, dados inteiros coprimos e , encontrar a ordem de módulo , ou seja, o menor inteiro positivo tal que . Para conseguir isso, o algoritmo de Shor usa um circuito quântico envolvendo dois registradores. O segundo registrador usa qubits, onde é o menor inteiro tal que , ou seja, . O tamanho do primeiro registrador determina a precisão da aproximação produzida pelo circuito. Pode-se mostrar que usar qubits fornece precisão suficiente para encontrar . O circuito quântico exato depende dos parâmetros e , que definem o problema. A seguinte descrição do algoritmo usa a notação bra-ket para denotar os estados quânticos, e para denotar o produto tensorial.

O algoritmo consiste em dois passos principais:

  1. Usar a estimativa de fase quântica com uma matriz unitária representando a operação de multiplicação por (módulo ), e o estado de entrada (onde o segundo registrador é formado por qubits). Os autovalores deste codificam informações sobre o período, e pode ser visto como uma soma dos seus autovetores. Graças a essas propriedades, o estágio da estimativa de fase quântica dá como saída um inteiro aleatório na forma para algum aleatório.
  2. Usar o algoritmo de frações contínuas para extrair o período dos resultados da medição obtidos no estágio anterior. Este é um procedimento de pós-processamento (com um computador clássico) dos dados medidos a partir dos estados quânticos de saída, de forma a recuperar o período.

A conexão com a estimativa de fase quântica não foi discutida na formulação original do algoritmo de Shor,[2] mas foi posteriormente proposta por Alexei Kitaev.[20]

Estimativa de fase quântica

Sub-rotina quântica no algoritmo de Shor

Em geral, o algoritmo de estimativa de fase quântica, para qualquer unitário e autoestado tal que , envia estados de entrada para estados de saída próximos de , onde é uma superposição de inteiros próximos a . Em outras palavras, ele envia cada autoestado de para um estado contendo informações próximas ao autovalor associado. Para os propósitos da determinação de ordem quântica, empregamos esta estratégia usando o unitário definido pela ação:A ação de em estados com não é crucial para o funcionamento do algoritmo, mas precisa ser incluída para garantir que a transformação geral seja uma porta quântica bem definida. Implementar o circuito para estimativa de fase quântica com requer ser capaz de implementar de forma eficiente as portas . Isso pode ser alcançado através da exponenciação modular, que é a parte mais lenta do algoritmo.

A porta assim definida satisfaz , o que imediatamente implica que seus autovalores são as -ésimas raízes da unidade . Além disso, cada autovalor tem um autovetor da forma , e esses autovetores são tais que: onde a última identidade segue da fórmula da série geométrica, que implica .

Usar a estimativa de fase quântica em um estado de entrada retornaria, então, o inteiro com alta probabilidade. Mais precisamente, o circuito de estimativa de fase quântica envia para de modo que a distribuição de probabilidade resultante tenha pico em torno de , com . Essa probabilidade pode ser feita tão próxima de 1 quanto se queira, usando qubits extras.

Aplicando o raciocínio acima à entrada , a estimativa de fase quântica, portanto, resulta na evolução: Ao medir o primeiro registrador, agora temos uma probabilidade balanceada de para encontrar cada , e cada uma delas fornece uma aproximação inteira de , a qual pode ser dividida por para se obter uma aproximação decimal para .

Algoritmo de frações contínuas para recuperar o período

Em seguida, aplicamos o algoritmo de frações contínuas para encontrar inteiros e , onde fornece a melhor aproximação fracionária para a aproximação medida no circuito, para com e sendo coprimos. O número de qubits no primeiro registrador, , que determina a exatidão da aproximação, garante que desde que a melhor aproximação da superposição de tenha sido medida[2] (o que pode ser tornado arbitrariamente provável usando bits extras e truncando a saída). Contudo, embora e sejam coprimos, pode ser o caso que e não o sejam. Por causa disso, e podem ter perdido alguns fatores que estavam contidos em e . Isso pode ser remediado reexecutando a sub-rotina de ordem quântica um número arbitrário de vezes, para produzir uma lista de aproximações em frações: onde é o número de vezes que a sub-rotina foi executada. De cada podem ter sido removidos fatores diferentes, porque o circuito (provavelmente) terá medido valores distintos possíveis para . Para recuperar o verdadeiro valor de , podemos calcular o mínimo múltiplo comum (MMC) de cada : O mínimo múltiplo comum será a ordem do inteiro original com alta probabilidade. Na prática, uma única execução da sub-rotina quântica é em geral suficiente caso se utilize um pós-processamento mais avançado.[21]

Escolhendo o tamanho do primeiro registrador

A estimativa de fase requer a escolha do tamanho do primeiro registrador para determinar a exatidão do algoritmo, e para a sub-rotina quântica do algoritmo de Shor, qubits são suficientes para garantir que a sequência de bits (bitstring) ideal medida na estimativa de fase (isto é, o onde é a aproximação mais exata da fase advinda da estimativa de fase) permitirá que o valor real de seja recuperado.

Cada antes da medição no algoritmo de Shor representa uma superposição de inteiros aproximando . Deixe representar o inteiro ideal em . O teorema a seguir garante que o algoritmo das frações contínuas irá recuperar a partir de :

Teorema  Se e são inteiros de bits, e então o algoritmo de frações contínuas executado sobre recuperará tanto quanto .

[3] Como é a bitstring ótima da estimativa de fase, tem uma exatidão de bits em relação a . Logo: o que implica que o algoritmo de frações contínuas irá recuperar e (ou eles com o seu máximo divisor comum já extraído).

O gargalo

O gargalo no tempo de execução do algoritmo de Shor é a exponenciação modular quântica, a qual é muito mais lenta do que a transformada de Fourier quântica e o pré/pós-processamento clássicos. Existem várias abordagens para construir e otimizar circuitos para a exponenciação modular. A abordagem mais simples e (atualmente) mais prática é mimetizar circuitos aritméticos convencionais com portas reversíveis, começando com somadores de propagação de transporte (ripple-carry adders). Conhecer a base e o módulo da exponenciação facilita otimizações adicionais.[22][23] Circuitos reversíveis tipicamente usam em torno da ordem de portas para qubits. Técnicas alternativas melhoram assintoticamente as contagens de portas usando transformadas de Fourier quânticas, mas não são competitivas com menos de 600 qubits devido a constantes muito altas.

Determinação de período e logaritmos discretos

Os algoritmos de Shor para os problemas do logaritmo discreto e para a determinação de ordem são instâncias de um algoritmo que resolve o problema de determinação de período. Todos os três são instâncias do problema do subgrupo oculto.

O algoritmo de Shor para logaritmos discretos

Dado um grupo com ordem e um gerador , suponha que sabemos que , para algum , e desejamos calcular , que é o logaritmo discreto: . Considere o grupo abeliano , onde cada fator corresponde à adição modular de valores. Agora, considere a função:

Isso nos dá um problema abeliano do subgrupo oculto, onde corresponde a um homomorfismo de grupos. O núcleo corresponde aos múltiplos de . Portanto, se pudermos encontrar o núcleo, seremos capazes de encontrar . Existe um algoritmo quântico para solucionar esse problema. Este algoritmo, tal como o de fatoração, é de autoria de Peter Shor e ambos são implementados criando uma superposição por meio de portas Hadamard, seguida pela implementação de como uma transformada quântica, finalizando com uma transformada de Fourier quântica.[3] Devido a isso, o algoritmo quântico para calcular o logaritmo discreto também é ocasionalmente referido como "Algoritmo de Shor".

O problema da determinação de ordem também pode ser visto como um problema do subgrupo oculto.[3] Para visualizar isto, considere o grupo de inteiros sob a operação de adição, e para um dado tal que , considere a função:

Para qualquer grupo abeliano finito , há um algoritmo quântico que soluciona o subgrupo oculto para em tempo polinomial.[3]

Ver também

  • GEECM, um algoritmo de fatoração que se diz ser "frequentemente muito mais rápido do que o de Shor"[24]
  • Algoritmo de Grover

Referências

  1. Shor, P.W. (1994). «Algorithms for quantum computation: Discrete logarithms and factoring». Proceedings 35th Annual Symposium on Foundations of Computer Science. [S.l.: s.n.] pp. 124–134. ISBN 978-0-8186-6580-6. doi:10.1109/sfcs.1994.365700
  2. 1 2 3 4 Shor, Peter W. (outubro de 1997). «Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer». SIAM Journal on Computing. 26 (5): 1484–1509. arXiv:quant-ph/9508027Acessível livremente. doi:10.1137/S0097539795293172
  3. 1 2 3 4 5 Nielsen, Michael A.; Chuang, Isaac L. (9 de dezembro de 2010). Quantum Computation and Quantum Information (PDF) 7ª ed. [S.l.]: Cambridge University Press. ISBN 978-1-107-00217-3. Consultado em 24 de abril de 2022. Cópia arquivada (PDF) em 11 de julho de 2019
  4. Gidney, Craig; Ekerå, Martin (2021). «How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits». Quantum. 5. Bibcode:2021Quant...5..433G. arXiv:1905.09749Acessível livremente. doi:10.22331/q-2021-04-15-433 Parâmetro desconhecido |numero-artigo= ignorado (ajuda)
  5. Veja também Tempo pseudo-polinomial.
  6. Beckman, David; Chari, Amalavoyal N.; Devabhaktuni, Srikrishna; Preskill, John (agosto de 1996). «Efficient networks for quantum factoring». Physical Review A. 54 (2): 1034–1063. Bibcode:1996PhRvA..54.1034B. PMID 9913575. arXiv:quant-ph/9602016Acessível livremente. doi:10.1103/physreva.54.1034
  7. Harvey, David; van der Hoeven, Joris (março de 2021). «Integer multiplication in time O (n log n)» (PDF). Annals of Mathematics. 193 (2). doi:10.4007/annals.2021.193.2.4
  8. «Number Field Sieve». wolfram.com. Consultado em 23 de outubro de 2015
  9. Roetteler, Martin; Naehrig, Michael; Svore, Krysta M.; Lauter, Kristin E. (2017). «Quantum resource estimates for computing elliptic curve discrete logarithms». In: Takagi, Tsuyoshi; Peyrin, Thomas. Advances in Cryptology – ASIACRYPT 2017 – 23rd International Conference on the Theory and Applications of Cryptology and Information Security, Hong Kong, China, December 3–7, 2017, Proceedings, Part II. Lecture Notes in Computer Science. 10625. Springer. pp. 241–270. ISBN 978-3-319-70696-2. arXiv:1706.06752Acessível livremente. doi:10.1007/978-3-319-70697-9_9
  10. Vandersypen, Lieven M. K.; Steffen, Matthias; Breyta, Gregory; Yannoni, Costantino S.; Sherwood, Mark H.; Chuang, Isaac L. (dezembro de 2001). «Experimental realization of Shor's quantum factoring algorithm using nuclear magnetic resonance». Nature. 414 (6866): 883–887. Bibcode:2001Natur.414..883V. PMID 11780055. arXiv:quant-ph/0112176Acessível livremente. doi:10.1038/414883a
  11. Lu, Chao-Yang; Browne, Daniel E.; Yang, Tao; Pan, Jian-Wei (19 de dezembro de 2007). «Demonstration of a Compiled Version of Shor's Quantum Factoring Algorithm Using Photonic Qubits». Physical Review Letters. 99 (25). Bibcode:2007PhRvL..99y0504L. PMID 18233508. arXiv:0705.1684Acessível livremente. doi:10.1103/PhysRevLett.99.250504 Parâmetro desconhecido |numero-artigo= ignorado (ajuda)
  12. Lanyon, B. P.; Weinhold, T. J.; Langford, N. K.; Barbieri, M.; James, D. F. V.; Gilchrist, A.; White, A. G. (19 de dezembro de 2007). «Experimental Demonstration of a Compiled Version of Shor's Algorithm with Quantum Entanglement». Physical Review Letters. 99 (25). Bibcode:2007PhRvL..99y0505L. PMID 18233509. arXiv:0705.1398Acessível livremente. doi:10.1103/PhysRevLett.99.250505 Parâmetro desconhecido |numero-artigo= ignorado (ajuda)
  13. Lucero, Erik; Barends, Rami; Chen, Yu; Kelly, Julian; Mariantoni, Matteo; Megrant, Anthony; O'Malley, Peter; Sank, Daniel; Vainsencher, Amit; Wenner, James; White, Ted; Yin, Yi; Cleland, Andrew N.; Martinis, John M. (2012). «Computing prime factors with a Josephson phase qubit quantum processor». Nature Physics. 8 (10): 719. Bibcode:2012NatPh...8..719L. arXiv:1202.5707Acessível livremente. doi:10.1038/nphys2385
  14. Martín-López, Enrique; Laing, Anthony; Lawson, Thomas; Alvarez, Roberto; Zhou, Xiao-Qi; O'Brien, Jeremy L. (12 de outubro de 2012). «Experimental realization of Shor's quantum factoring algorithm using qubit recycling». Nature Photonics. 6 (11): 773–776. Bibcode:2012NaPho...6..773M. arXiv:1111.4147Acessível livremente. doi:10.1038/nphoton.2012.259
  15. Monz, Thomas; Nigg, Daniel; Martinez, Esteban A.; Brandl, Matthias F.; Schindler, Philipp; Rines, Richard; Wang, Shannon X.; Chuang, Isaac L.; Blatt, Rainer (4 de março de 2016). «Realization of a scalable Shor algorithm». Science. 351 (6277): 1068–1070. Bibcode:2016Sci...351.1068M. PMID 26941315. arXiv:1507.08852Acessível livremente. doi:10.1126/science.aad9480
  16. Smolin, John A.; Smith, Graeme; Vargo, Alexander (julho de 2013). «Oversimplifying quantum factoring». Nature. 499 (7457): 163–165. Bibcode:2013Natur.499..163S. PMID 23846653. arXiv:1301.7007Acessível livremente. doi:10.1038/nature12290
  17. Bernstein, Daniel (1998). «Detecting perfect powers in essentially linear time». Mathematics of Computation. 67 (223): 1253–1283. doi:10.1090/S0025-5718-98-00952-1
  18. Por exemplo, calculando as primeiras raízes de , e.g., com o método de Newton e verificando o resultado inteiro quanto à sua primalidade (Teste de primalidade AKS).
  19. Ekerå, Martin (junho de 2021). «On completely factoring any integer efficiently in a single run of an order-finding algorithm». Quantum Information Processing. 20 (6). Bibcode:2021QuIP...20..205E. arXiv:2007.10044Acessível livremente. doi:10.1007/s11128-021-03069-1Acessível livremente Parâmetro desconhecido |numero-artigo= ignorado (ajuda)
  20. Kitaev, A. Yu (1995). «Quantum measurements and the Abelian Stabilizer Problem». arXiv:quant-ph/9511026Acessível livremente
  21. Ekerå, Martin (maio de 2024). «On the Success Probability of Quantum Order Finding». ACM Transactions on Quantum Computing. 5 (2): 1–40. arXiv:2201.07791Acessível livremente. doi:10.1145/3655026Acessível livremente
  22. Markov, Igor L.; Saeedi, Mehdi (2012). «Constant-Optimized Quantum Circuits for Modular Multiplication and Exponentiation». Quantum Information and Computation. 12 (5–6): 361–394. Bibcode:2012arXiv1202.6614M. arXiv:1202.6614Acessível livremente. doi:10.26421/QIC12.5-6-1
  23. Markov, Igor L.; Saeedi, Mehdi (2013). «Faster Quantum Number Factoring via Circuit Synthesis». Phys. Rev. A. 87 (1). Bibcode:2013PhRvA..87a2310M. arXiv:1301.3210Acessível livremente. doi:10.1103/PhysRevA.87.012310 Parâmetro desconhecido |numero-artigo= ignorado (ajuda)
  24. Bernstein, Daniel J.; Heninger, Nadia; Lou, Paul; Valenta, Luke (2017). «Post-quantum RSA». Post-Quantum Cryptography. Col: Lecture Notes in Computer Science. 10346. [S.l.: s.n.] pp. 311–329. ISBN 978-3-319-59878-9. doi:10.1007/978-3-319-59879-6_18

Bibliografia

Ligações externas