Fatora¸c˜ao de Shor
e Problema do Subgrupo Oculto
Cleber Okida Denise Goya Mateus Santos
DCC - IME - USP
Aplica¸c˜oes da Engenharia Quˆantica `a Seguran¸ca da Informa¸c˜ao PCS-5714 - Prof. Paulo Barreto
maio/2008
Sum´ario
1 Introdu¸c˜ao
2 Fatora¸c˜ao de Shor
Redu¸c˜ao da Fatora¸c˜ao ao C´alculo de Ordem Algoritmo Quˆantico para C´alculo de Ordem
3 Problema do Subgrupo Oculto
Algoritmo Quˆantico para o Problema de Simon Algoritmo Quˆantico para C´alculo do Per´ıodo Algoritmo Quˆantico para Logaritmo Discreto Resultados Gerais
Motiva¸c˜oes
Seguran¸ca na Criptografia Cl´assica
Seguran¸ca vinculada `a cren¸ca na dificuldade de solu¸c˜ao de certos problemas (computacionalmente intrat´aveis).
Exemplos:
Sistema RSA baseia-se na dificuldade deFatora¸c˜ao de Inteiros Sistema ElGamal ´e protegido pela dificuldade do problema do Logaritmo Discreto
A seguran¸ca desses sistemas ´e quebrada se existirem
algoritmos eficientes (de complexidade de tempo polinomial) para resolver esses problemas.
Motiva¸c˜oes
Sistemas Quˆanticos
Sistemas computacionais quˆanticos podem ser mais eficientes que os cl´assicos?
Mostraremos que sim.
Existem algoritmos quˆanticos, de complexidade de tempo polinomial, que resolvem:
O problema daFatora¸c˜ao de Inteiros O problema doLogaritmo Discreto
Outros problemas do mesmo tipo(Problema do Subgrupo Oculto)
Circuitos Quˆanticos Primordiais
Transformada Quˆantica de Fourier Estimativa de Fase
Usa a transformada quˆantica inversa de Fourier
Fatora¸c˜ao de Shor
Peter Shor, em 1994:
Anunciou algoritmo quˆantico parac´alculo de ordem;
Observou que os problemas de fatora¸c˜ao de inteiros e logaritmo discreto podem ser reduzidos ao c´alculo de ordem.
Resultados finais foram publicados em [Shor97]
Fatora¸c˜ao de Shor
Descreveremos o algoritmo de Shor que:
Recebe um n´umero compostoN;
Usa como subrotina um algoritmo quˆantico para calcular a ordem de um n´umero;
Exibe como resposta um fator primo deN, com alta probabilidade de sucesso.
Ordem de um N´umero Inteiro M´odulo N
A ordem de um n´umero inteirox m´oduloN ´e o menor inteiro positivo r tal que
xr ≡1 mod N Exemplos:
42 ≡1 mod 15 26 ≡1 mod 21
Passos para encontrar fator primo de N
A partir do c´alculo de ordem dex m´odulo N, ´e poss´ıvel encontrar fator primo deN da seguinte forma:
Passos para encontrar fator primo de N
A partir do c´alculo de ordem dex m´odulo N, ´e poss´ıvel encontrar fator primo deN da seguinte forma:
Se x eN possuem fatores comuns, ent˜ao MDC(x,N) fornece um fator de N
Passos para encontrar fator primo de N
A partir do c´alculo de ordem dex m´odulo N, ´e poss´ıvel encontrar fator primo deN da seguinte forma:
Se x eN possuem fatores comuns, ent˜ao MDC(x,N) fornece um fator de N
Caso contr´ario,x ´e relativamente primo a N Ser for par, podemos definiry como
xr/2≡y mod N
Passos para encontrar fator primo de N
Observe que y satisfaz:
y2 ≡1 modN
Passos para encontrar fator primo de N
Observe que y satisfaz:
y2 ≡1 modN
Logo:
(y−1)(y+ 1)≡0 modN
Passos para encontrar fator primo de N
Observe que y satisfaz:
y2 ≡1 modN
Logo:
(y−1)(y+ 1)≡0 modN Ou seja, N divide (y−1)(y+ 1)
Passos para encontrar fator primo de N
Se 1<y <N−1, ent˜aoN n˜ao pode dividir separadamente nem (y−1) e nem (y+ 1)
Passos para encontrar fator primo de N
Se 1<y <N−1, ent˜aoN n˜ao pode dividir separadamente nem (y−1) e nem (y+ 1)
Ou seja, y−16≡0 mod N e y+ 16≡0 mod N
Passos para encontrar fator primo de N
Se 1<y <N−1, ent˜aoN n˜ao pode dividir separadamente nem (y−1) e nem (y+ 1)
Ou seja, y−16≡0 mod N e y+ 16≡0 mod N Conseq¨uentemente, MDC(y−1,N) e MDC(y+ 1,N) produzem fatores n˜ao triviais de N
Passos para encontrar fator primo de N
Se 1<y <N−1, ent˜aoN n˜ao pode dividir separadamente nem (y−1) e nem (y+ 1)
Ou seja, y−16≡0 mod N e y+ 16≡0 mod N Conseq¨uentemente, MDC(y−1,N) e MDC(y+ 1,N) produzem fatores n˜ao triviais de N
Se N tiver mais fatores, eles podem ser calculados aplicando-se recursivamente os passos anteriores.
Teorema da Teoria dos N´umeros
Os passos para encontrar fator primo deN, a partir do c´alculo de ordem dex m´oduloN, mostrados at´e o momento, satisfazem as condi¸c˜oes do seguinte Teorema, demonstrado em
[NielsenChuang00] e [Cardonha04]
Theorem
Seja N um n´umero inteiro composto, de L bits, e x uma solu¸c˜ao n˜ao trivial para a equa¸c˜ao x2 ≡1 mod N, com 1≤x≤N (isto ´e, x6≡1 mod N e x 6≡ −1 modN).
Ent˜ao, MDC(x−1,N) e MDC(x+ 1,N) s˜ao fatores n˜ao triviais de N, que podem ser calculados com O(L3) opera¸c˜oes.
Exemplo Num´erico
Considere N= 21 e x= 2
Como r= 6 ´e o menor inteiro que satisfaz 2r ≡1 mod 21, ent˜aor = 6 ´e a ordem de 2 m´odulo 21.
Como r ´e par, y≡23≡8 mod 21. Comoy <N−1:
MDC(y−1,N) = MDC(7,21) = 7 MDC(y+ 1,N) = MDC(9,21) = 3 3 e 7 s˜ao fatores de 21.
E Quando o Teorema N˜ao Puder Ser Aplicado?
Se r for ´ımpar ou n˜ao for verdade que 1<y <N−1, a estrat´egia falha.
Mostraremos adiante que essas situa¸c˜oes ocorrem com probabilidade muito pequena.
O algoritmo poderia escolher novo x e recome¸car.
Quando N ´e potˆencia de primo
Se N for um n´umero composto, por´em potˆencia de um ´unico primo, os passos dados falham.
Nesse caso, aplica-se um algoritmo cl´assico conhecido, de complexidadeO(L3), paraN com L bits.
C´alculo da Probabilidade de Sucesso
O Teorema abaixo limita a probabilidade de ocorrerem condi¸c˜oes em que a estrat´egia anterior n˜ao pode ser aplicada. Sua
demonstra¸c˜ao pode ser consultada em [NielsenChuang00] e [Cardonha04]
Theorem
Seja N um n´umero inteiro ´ımpar composto, fatorado na forma N=pα11· · ·pαmm. Seja x um inteiro escolhido uniformemente ao acaso, sujeito `as condi¸c˜oes1≤x ≤N−1 e x ´e relativamente primo a N. Seja r a ordem de x m´odulo N. Ent˜ao
P(r ser par e xr/26≡ −1 mod N)≥1−21m
C´alculo da Probabilidade de Sucesso
Exemplo
Considere N= 21 = 3x7
21 ´e produto de dois primos: m= 2.
Suponha um x relativamente primo aN escolhido uniformemente ao acaso, de ordem r.
P(r ser par exr/2 6≡ −1 modN)≥1−212 = 34
A probabilidade de sucesso aumenta `a medida que cresce o valor de m.
Algoritmo para Fatora¸c˜ao, Usando C´alculo de Ordem
Entrada: Um n´umero composto N, de comprimento L=⌈log2N⌉.
Sa´ıda: Um fator n˜ao trivial de N.
Tempo de Execu¸c˜ao: O(L3) opera¸c˜oes.
Algoritmo para Fatora¸c˜ao, Usando C´alculo de Ordem
Passos
1 Se N for par, devolva o fator 2;
2 Determine se N =ab para inteiros a≥1 eb ≥2; caso sim, devolva o fator a;
3 Escolha aleatoriamente x positivo, no intervalo de 1 aN−1.
Se MDC(x,N)>1, ent˜ao devolva o fator MDC(x,N).
4 Use a rotina dec´alculo de ordemde x m´odulo N e obtenha r;
5 Se ordem de r for par exr/2 6≡1 modN, ent˜ao calcule e devolva MDC(xr/2+ 1,N). Caso contr´ario, o algoritmo falha.
An´alise de Complexidade da Fatora¸c˜ao de Shor
Os maiores custos do algoritmo de fatora¸c˜ao de Shor s˜ao:
O(L3) para verifica¸c˜ao se N´e potˆencia de um ´unico primo O(L3) para execu¸c˜ao do algoritmo quˆantico de c´alculo de ordem, como veremos adiante
O que totaliza complexidade de O(L3) opera¸c˜oes.
Algoritmo Quˆantico para C´alculo de Ordem
Na computa¸c˜ao cl´assica, o c´alculo de ordem ´e considerado intrat´avel:
N˜ao se conhece algoritmo de complexidade polinomial emL para calcular a ordem de um n´umero m´oduloNcomL bits.
Veremos um algoritmoquˆanticoque o faz em tempo polinomial.
Algoritmo Quˆantico para C´alculo de Ordem
Dados inteirosN ex de comprimentoL
O objetivo ´e calcular o menor inteiro r tal quexr ≡1 modN O cora¸c˜ao do algoritmo ´e o uso do procedimento de
estimativa de fase
Algoritmo Quˆantico para C´alculo de Ordem
Dados inteirosN ex de comprimentoL
O objetivo ´e calcular o menor inteiro r tal quexr ≡1 modN O cora¸c˜ao do algoritmo ´e o uso do procedimento de
estimativa de fase
Com o operador unit´ario U |yi →|xy(modN)i Em que y ∈ {0,1}L e 0≤y ≤N−1.
Auto-estados de U
Os estados definidos por
|usi= 1
√r
r−1
X
k=0
exp
·−2πisk r
¸
|xk(modN)i para 0≤s ≤r−1, s˜ao auto-estados de U, pois
U |usi= 1
√r
r−1
X
k=0
exp
·−2πisk r
¸
|xk+1(modN)i=exp
·2πis r
¸
|usi
Auto-valores de U
Basta, ent˜ao, usarmos o procedimento de estimativa de fase para obtermos uma aproxima¸c˜ao dos auto-valores
exp
·2πis r
¸ a partir dos quais, extrairemos r
Viabilidade do Uso da Estimativa de Fase
Para usarmos o procedimento de estimativa de fase, s˜ao necess´arios:
Procedimentos eficientes para implementar a opera¸c˜ao U2j-controlada para qualquer inteiroj
Obtido comexponencia¸c˜ao modular
Viabilidade do Uso da Estimativa de Fase
Para usarmos o procedimento de estimativa de fase, s˜ao necess´arios:
Procedimentos eficientes para implementar a opera¸c˜ao U2j-controlada para qualquer inteiroj
Obtido comexponencia¸c˜ao modular
Devemos preparar eficientemente um auto-estado|usicom um auto-valor n˜ao trivial, ou ao menos uma superposi¸c˜ao de tais auto-estados
Viabilidade do Uso da Estimativa de Fase
Exponencia¸c˜ao Modular
A seq¨uˆencia de opera¸c˜oesU2j-controlada usada na estimativa de fase ´e equivalente a multiplicar o conte´udo do segundo registrador pela exponencial modularxz(mod N), ondez ´e o conte´udo do primeiro registrador (comt qubits).
Viabilidade do Uso da Estimativa de Fase
Exponencia¸c˜ao Modular
Realizada em duas fases:
1 Calcular x2(mod N),x4(mod N),· · ·x2j(mod N), para todo j at´e t−1
2 Efetuar a multiplica¸c˜ao:
xz(modN) = µ
xzt2t−1(modN)
¶ µ
xzt−12t−2(modN)
¶
· · · µ
xz120(modN)
¶
A exponencia¸c˜ao modular requerO(L3) portas.
Viabilidade do Uso da Estimativa de Fase
Preparo do Auto-Estado
O segundo registrador pode ser iniciado com |1i, pois
√1 r
r−1
X
s=0
|usi=|1i
A inicializa¸c˜ao tamb´em pode ser feita com |0i, caso o operadorUj seja substitu´ıdo por
V |ji |ki=|ji |k+xj(modN)i
Expans˜ao da Fra¸c˜ao Cont´ınua
Ao aplicarmos a estimativa de fase, obtemos uma aproxima¸c˜ao paraϕ≈s/r
Sabe-se queϕ´e um n´umero racional (raz˜ao de dois inteiros) Para extrairmos o valor r, aplicamos o algoritmo de fra¸c˜ao cont´ınua, que ´e uma variante do algoritmo de Euclides.
Expans˜ao da Fra¸c˜ao Cont´ınua
Vamos encontrar o m´aximo divisor comum de 79 e 28 pelo processo das divis˜oes sucessivas (algoritmo de Euclides):
79 = 2×28 + 23 28 = 1×23 + 5 23 = 4×5 + 3
5 = 1×3 + 2 3 = 1×2 + 1 2 = 2×1 + 0
Logo, MDC(79,28) = 1, uma vez que 1 ´e o ´ultimo resto n˜ao-nulo
Expans˜ao da Fra¸c˜ao Cont´ınua
Como conseq¨uˆencia imediata destas igualdades, podemos expressar o n´umero racional 7928 da seguinte forma:
79
28 = 2 + 23
28 = 2 + 1
28 23
= 2 + 1
1 +235 = 2 + 1 1 + 231
5
= 2 + 1
1 + 1
4+35
= 2 + 1
1 + 1
4+15
3
= 2 + 1
1 + 1
4+ 1
1+ 23
= 2 + 1
1 + 1
4+ 1
1+ 13 2
=2+ 1
1+ 1
4+ 1
1+ 1 1+1
2
Algoritmo de Fra¸c˜ao Cont´ınua
Dado um racionalϕ
Repete-se sucessivamente: subtrair a parte inteira e inverter a parte fracion´aria
Obtˆem-ses′ er′, sem fatores comuns, tais que s′/r′ =s/r Se xr′ ≡1 mod N, ent˜ao r′ ´e a ordem dex m´oduloN Esse c´alculo sempre converge e tem complexidade O(L3)
Algoritmo: C´alculo de Ordem
Entrada: Um n´umero composto N deL bits, um n´umero x relativamente primo a N,
uma caixa preta Ux,N que realiza a transforma¸c˜ao
|ji |ki →|ji |xjk modNi,
t = 2L+ 1 +⌈log(2 +2ǫ1)⌉ qubits iniciados em|0i, e Lqubits iniciados em |1i.
Sa´ıda: O menor inteiro r >0 tal quexr ≡1 modN . Tempo de Execu¸c˜ao: O(L3) opera¸c˜oes.
Algoritmo: C´alculo de Ordem
1. Estado inicial
|0i |1i 2. Criar superposi¸c˜ao
Algoritmo: C´alculo de Ordem
1. Estado inicial
|0i |1i 2. Criar superposi¸c˜ao
→ 1
√2t
2Xt−1 j=0
|ji |1i 3. Aplicar Ux,N
Algoritmo: C´alculo de Ordem
1. Estado inicial
|0i |1i 2. Criar superposi¸c˜ao
→ 1
√2t
2Xt−1 j=0
|ji |1i 3. Aplicar Ux,N
→ 1
√2t
2Xt−1 j=0
|ji |xjimodN
1 Xr−12Xt−1
Algoritmo: C´alculo de Ordem
4. Aplicar a inversa da Transformada Quˆantica de Fourier no primeiro registrador
Algoritmo: C´alculo de Ordem
4. Aplicar a inversa da Transformada Quˆantica de Fourier no primeiro registrador
→ 1
√r
r−1
X
s=0
|s/rfi |usi 5. Medir o primeiro registrador
Algoritmo: C´alculo de Ordem
4. Aplicar a inversa da Transformada Quˆantica de Fourier no primeiro registrador
→ 1
√r
r−1
X
s=0
|s/rfi |usi
5. Medir o primeiro registrador
→sf/r 6. Aplicar algoritmo de fra¸c˜ao cont´ınua
An´alise de Complexidade do C´alculo de Ordem
Opera¸c˜ao Tempo consumido Transformada de Hadamard O(L) Transformada Inversa de Fourier O¡
L2¢ Exponencia¸c˜ao Modular O¡
L3¢ Algoritmo de Fra¸c˜oes Cont´ınuas O¡
L3¢
Obterr der′ O¡
L3¢
Custo Total O¡
L3¢
Problema do Subgrupo Oculto
Todos algoritmos quˆanticos r´apidos conhecidos podem ser descritos como solu¸c˜ao de um problema geral:
Definition
Sejaf uma fun¸c˜ao de um grupoG finitamente gerado para um conjunto finitoX, tal que f ´e constante nas classes laterais do subgrupoK, e que toma valor distinto em cada classe lateral.
Dada uma caixa preta quˆantica que realiza a transforma¸c˜ao unit´ariaU |gi |hi=|gi |h⊕f (g)i, parag ∈G,h∈X, e ⊕ uma opera¸c˜ao bin´aria adequadamente escolhida emX, encontrar um conjunto de geradores paraK.
Problema do Subgrupo Oculto
Em outras palavras, o Problema do Subgrupo Oculto (PSO) consiste em encontrar os geradores de um subgrupo K de um grupo finito G, com uma fun¸c˜ao or´aculof definida em G tal que
f (a) =f (b) se, e somente se,aK =bK para todoa,b ∈G
Problema do Subgrupo Oculto
Exemplos
C´alculo de Ordem (visto) Problema de Simon C´alculo do Per´ıodo
Problema do Logaritmo Discreto
Problema de Simon
Simon [Simon94] apresentou um algoritmo quˆantico de tempo polinomial para o seguinte problema:
Dada, uma fun¸c˜ao f :Zn2 →Zn2 dois para um, ou seja, a cada par de valores distintos no dom´ınio corresponde a uma ´unica imagem no contradom´ınio e com periodicidade ǫ∈Zn2. f (x) =f (y)⇔y =x⊕ǫ,∀x,y ∈Zn2
Determine ǫeficientemente (isto ´e, com probabilidade maior que 12 e com poucas chamadas ao or´aculo).
A fun¸c˜aof definida no grupo Zn2 e constante nas classes laterais de um subgrupoK ={0, ǫ}n˜ao conhecido. O
objetivo ´e reconstruir este subgrupo. O algoritmo requer o uso Zn
Algoritmo de Simon
Inicialize o computador quˆantico no estado|0ni |0mi, e aplique K⊗n no a primeiro registrador para obter o estado
√1 2n
X
x∈Zn 2
|xi |0mi
ApliqueUf no estado final do passo 1 para obter
√1 2n
X
x∈Zn 2
|xi |f (x)i
Algoritmo de Simon (Continua¸c˜ao)
Me¸ca o segundo registrador e continue com o estado do primeiro registrador inalterado. Assim depois da medida o estado do primeiro registrador ter´a a forma:
√1
2(|x0i⊕ |x0+ǫi)|yi onde x0 ∈Zn2 foi escolhido equiprobabilisticamente (observe que depois da medida, a constante ´e renormalizada para √1
2 j´a que sobraram apenas dois termos na soma, termos cuja imagem ´e um elemento aleat´orioy do conjunto Im(f). Podemos ainda escrever o estado do primeiro registrador na forma mais geral:
p1
|K| X
k∈K |x0+ki
Algoritmo de Simon (Continua¸c˜ao)
Aplique a transforma¸c˜ao de Hadamard na superposi¸c˜ao envolvendo o primeiro registrador do estado final do passo anterior para obter:
K⊗n 1
√2(|x0i⊕ |x0+ǫi)|yi= 1
√2n−1 X
y:y.ǫ=0
(−1)(x0.y)|yi, com y, ǫ∈Zn2
Me¸ca o primeiro registrador para achar um valor yi tal que ǫ.yi = 0 (a probabilidade de se obter um yi espec´ıfico ´e 2n−11 . Repetir o processo acima para obter suficientes yi’s tal queǫ possa ser determinado resolvendo um sistema de equa¸c˜oes lineares y.ǫ, . . . ,y .ǫ= 0.
Problema do C´alculo do Per´ıodo
Seja f uma fun¸c˜ao peri´odica tal que f(x + r) = f(x).
Queremos calcular 0<r <2L com o uso de uma caixa preta U que realiza a transforma¸c˜ao unit´aria
U|xi |yi →|xi |y⊕f(x)i . Seja ainda t =O(L+log(1/ǫ))
Algoritmo: C´alculo do Per´ıodo
1. Estado inicial
|0i |0i 2. Criar superposi¸c˜ao
Algoritmo: C´alculo do Per´ıodo
1. Estado inicial
|0i |0i 2. Criar superposi¸c˜ao
√1 2t
2Xt−1 x=0
|xi |0i 3. Aplicar U
Algoritmo: C´alculo do Per´ıodo
1. Estado inicial
|0i |0i 2. Criar superposi¸c˜ao
√1 2t
2Xt−1 x=0
|xi |0i 3. Aplicar U
√1 2t
2Xt−1 x=0
|xi |f(x)i 1 Xr−12Xt−1
Algoritmo: C´alculo do Per´ıodo
O passo 3 do algoritmo utiliza a seguinte defini¸c˜ao ˆf(l) = 1
r
r−1
X
x=0
e−2πilx/r |f(x)i
O passo seguinte estima l/r com a aplica¸c˜ao da transformada inversa de Fourier. Esta estimativa que ser´a apresentada utiliza a seguinte transforma¸c˜ao
√1 2t
2Xt−1 j=0
e2πiϕj |ji |ui →|ϕei |ui
Algoritmo: C´alculo do Per´ıodo
4. Aplicar a inversa da Transformada Quˆantica de Fourier no primeiro registrador
Algoritmo: C´alculo do Per´ıodo
4. Aplicar a inversa da Transformada Quˆantica de Fourier no primeiro registrador
√1 r
r−1
X
l=0
|lf/ri |fˆ(l)i 5. Medir o primeiro registrador
Algoritmo: C´alculo do Per´ıodo
4. Aplicar a inversa da Transformada Quˆantica de Fourier no primeiro registrador
√1 r
r−1
X
l=0
|lf/ri |fˆ(l)i 5. Medir o primeiro registrador
l/rf 6. Aplicar algoritmo de fra¸c˜ao cont´ınua
Problema do Logaritmo Discreto
Dadosa,b eN calculars tal que b=asmod N Para resolver este problema considere
Problema do Logaritmo Discreto
Dadosa,b eN calculars tal que b=asmod N Para resolver este problema considere
f(x1,x2) =asx1+x2mod N
Problema do Logaritmo Discreto
Dadosa,b eN calculars tal que b=asmod N Para resolver este problema considere
f(x1,x2) =asx1+x2mod N f(x1+l,x2−ls) =f(x1,x2)
Problema do Logaritmo Discreto
Dadosa,b eN calculars tal que b=asmod N Para resolver este problema considere
f(x1,x2) =asx1+x2mod N f(x1+l,x2−ls) =f(x1,x2) (l,−ls), para um inteiro l
Problema do Logaritmo Discreto
Dadosa,b eN calculars tal que b=asmod N Para resolver este problema considere
f(x1,x2) =asx1+x2mod N f(x1+l,x2−ls) =f(x1,x2) (l,−ls), para um inteiro l
U|x1i |x2i |yi →|x1i |x2i |y⊕f(x1,x2)i
Problema do Logaritmo Discreto
Dadosa,b eN calculars tal que b=asmod N Para resolver este problema considere
f(x1,x2) =asx1+x2mod N f(x1+l,x2−ls) =f(x1,x2) (l,−ls), para um inteiro l
U|x1i |x2i |yi →|x1i |x2i |y⊕f(x1,x2)i armod N = 1, com r f´acil de se calcular Vamos mostrar um algoritmo que calcula s
Algoritmo: C´alculo do Logaritmo Discreto
1. Estado inicial
|0i |0i |0i
Algoritmo: C´alculo do Logaritmo Discreto
1. Estado inicial
|0i |0i |0i 2. Criar superposi¸c˜ao
1 2t
2Xt−1 x1=0
2Xt−1 x2=0
|x1i |x2i |0i
Algoritmo: C´alculo do Logaritmo Discreto
1. Estado inicial
|0i |0i |0i 2. Criar superposi¸c˜ao
1 2t
2Xt−1 x1=0
2Xt−1 x2=0
|x1i |x2i |0i 3. Aplicar U
1 2t
2Xt−1 x1=0
2Xt−1 x2=0
|x1i |x2i |f(x1,x2)i
1 Xr−12Xt−12Xt−1 ˆ
= 2t1√r
Pr−1 l2=0
hP2t−1
x1=0e2πi(sl2x1)/r |x1ii hP2t−1
x2=0e2πi(l2x2)/r |x2ii
|ˆf(sl2,l2)i
= 2t1√r
Pr−1 l2=0
hP2t−1
x1=0e2πi(sl2x1)/r |x1ii hP2t−1
x2=0e2πi(l2x2)/r |x2ii
|ˆf(sl2,l2)i
4. Aplicar a inversa da Transformada Quˆantica de Fourier nos dois primeiros registradores
= 2t1√r
Pr−1 l2=0
hP2t−1
x1=0e2πi(sl2x1)/r |x1ii hP2t−1
x2=0e2πi(l2x2)/r |x2ii
|ˆf(sl2,l2)i
4. Aplicar a inversa da Transformada Quˆantica de Fourier nos dois primeiros registradores
√1 r
r−1
X
l2=0
|sl]2/ri |lg2/ri |ˆf(sl2,l2)i
= 2t1√r
Pr−1 l2=0
hP2t−1
x1=0e2πi(sl2x1)/r |x1ii hP2t−1
x2=0e2πi(l2x2)/r |x2ii
|ˆf(sl2,l2)i
4. Aplicar a inversa da Transformada Quˆantica de Fourier nos dois primeiros registradores
√1 r
r−1
X
l2=0
|sl]2/ri |lg2/ri |ˆf(sl2,l2)i
5. Medir os dois primeiros registradores (slg2/r,lg2/r)
= 2t1√r
Pr−1 l2=0
hP2t−1
x1=0e2πi(sl2x1)/r |x1ii hP2t−1
x2=0e2πi(l2x2)/r |x2ii
|ˆf(sl2,l2)i
4. Aplicar a inversa da Transformada Quˆantica de Fourier nos dois primeiros registradores
√1 r
r−1
X
l2=0
|sl]2/ri |lg2/ri |ˆf(sl2,l2)i
5. Medir os dois primeiros registradores (slg2/r,lg2/r) 6. Aplicar o algoritmo de fra¸c˜oes cont´ınuas
Considera¸c˜oes sobre o Problema do Logaritmo Discreto
O passo 3 do algoritmo utiliza a seguinte defini¸c˜ao ˆf(l1,l2) = 1
√r
r−1
X
j=0
e−2πil2j/r |f(0,j)i Os valores de l1 e l2 devem satisfazer
r−1
X
k=0
e2πik(l1/s−l2)/r =r
O algoritmo utiliza U apenas uma vez e consomeO(log2r) unidades de tempo, consumo aproximado do algoritmo do
Subgrupos Abelianos
A id´eia central por tr´as da solu¸c˜ao do Problema do Subgrupo Abeliano Oculto ´e an´alise de Fourier em grupos abelianos.
SejaG um grupo abeliano finito e sejaHo espa¸co de Hilbert com base ortonormal {|gi:g ∈G}indexada pelos elementos deG.
A Transformada de Fourier se apresenta da seguinte forma:
FG |gi= 1 p|G|
X
h∈G
xg(h)|hi
O Problema do Subgrupo Oculto (PSO) em grupos abelianos
Subgrupo Ortogonal
Para qualquer subgrupoH de um grupo finito G, podemos definir o subgrupo ortogonalH⊥, como
H⊥={g ∈G |χg (h) = 1∀h∈H}
Como G ´e finito, para mostrar que H⊥´e um subgrupo deG, basta mostrarmos que a opera¸c˜ao do grupo ´e fechada em H⊥.De fato, sea,b ∈H⊥ ent˜ao para qualquer h∈H n´os temosχh(ab) =χh(b)χh(b)= 1×1 = 1, isto ´e,ab∈H⊥, logo H⊥≤G.
Transformada de Fourier em Grupos Abelianos
Como no algoritmo de Simon, consideraremos que temos dois registradores: um registrador com n= lg|G|q-bits e o segundo registrador com mq-bits, onde m´e um inteiro positivo maior ou igual que n. O algoritmo usa a seguinte sub-rotina:
Inicialize o computador quˆantico no estado|0Gi |0mi, onde|0Gi´e o estado base correspondente ao elemento neutro deG. Depois aplique FG no primeiro registrador para obter
p1
|G| X
g∈G
|gi |0mi
Aplique Uf no estado final do passo anterior e obtenha
1 X
Transformada de Fourier em Grupos Abelianos
Me¸ca o segundo registrador do estado final do passo anterior.
A medida, segundo um postulado da mecˆanica quˆantica, provoca um dist´urbio no estado original. Este estado por sua vez ´e levado no estado 1
p|H| X
g0∈Hi
|g0i |f (g0)i
Aplique FG no primeiro registrador e obtenha ent˜ao uma superposi¸c˜ao sobre H⊥, e teremos 1
p|H⊥| X
h∈H⊥
χh(gi)|hi
Transformada de Fourier em Grupos Abelianos
Me¸ca agora o primeiro registrador. A medida produz um elemento aleat´orio em H⊥.
Segue que se repetirmos esta sub-rotina quˆantica um n´umero de vezes logaritmico em |G|(e portanto polinomial em n) obtemos um conjunto de geradores paraH⊥, a partir do qual s˜ao obtidos os geradores de H.
Subgrupos N˜ao Abelianos
Uma quest˜ao natural ´e perguntar se computadores quˆanticos podem resolver o PSO em grupos N˜AO abelianos. Esta quest˜ao tem sido discutida regularmente pela comunidade cient´ıfica devido a importantes aplica¸c˜oes, como por exemplo,
No problema de isomorfismo de dois grafos, quando o grupo em quest˜ao ´e ogrupo Sim´etrico
Regev [Regev06] mostrou que uma solu¸c˜ao eficiente para o PSO nogrupo Di´edricoimplica um algoritmo eficiente para o problema de determinar o menor vetor em um reticulado, ou pelo menos para uma classe de reticulados para o qual nenhum algoritmo cl´assico ´e conhecido.
Subgrupos N˜ao Abelianos
O grupo Sim´etrico pode ser definido como se segue.
Considere um conjunto n˜ao vazioS e seja
G ={f :S →S |f bijetora}. Se a opera¸c˜ao ◦composi¸c˜ao de fun¸c˜oes, ent˜ao {G,◦}´e claramente um grupo tendo
Is :S →S definido por Is(x) =x,∀x ∈Scomo identidade. Se S ={1,2, . . . ,N}denotaremos esse grupo por SN, e temos que o n´umero de elementos deSN ´eN!.
Subgrupos N˜ao Abelianos
Agora veremos um grupo n˜ao abeliano, contendo exatamente 2N elementos. Este subgrupo ´e formado pelas rota¸c˜oes e reflex˜oes do plano que preservam um pol´ıgono regular comN v´ertices. Chamaremos este grupo de Di´edrico ou grupo de simetrias do pol´ıgono regular deN v´ertices e o denotaremos por DN. O conjunto formado pelas rota¸c˜oes formam um subgrupo abeliano deDN que denotaremos por CN.
Estudos de Grupos
S˜ao quest˜oes ainda em estudo:
Para quais grupos existem algoritmos quˆanticos eficientes que resolvem o PSO?
Existem grupos para os quais o PSO n˜ao pode ser resolvido eficientemente?
Resumo
Os Algoritmos quˆanticos conhecidos, que s˜ao
exponencialmente mais r´apidos que algoritmos cl´assicos, resolvem o Problema do Subgrupo Abeliano Oculto Acredita-se que algumas fam´ılias de grupos n˜ao abelianos podem n˜ao ter solu¸c˜ao eficiente para o PSO (em pesquisa).
Perguntas?
Referˆencias (1/2)
Shor, P.
Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer.
SIAM Journal on Computing, 1997.
Lomont, C.
The Hidden Subgroup Problem - Review and Open Problems.
arXiv:quant-ph/0411037, 2004.
Ettinger, M.; Hoyer, P.
On Quantum Algorithms for Noncommutative Hidden Subgroups.
arXiv:quant-ph/9807029v1, 1998.
Referˆencias (2/2)
Cardonha, C.; Silva, M.; Fernandes, C.
Computa¸c˜ao Quˆantica: Complexidade e Algoritmos.
http://www.ime.usp.br/∼magal/quantum/, 2004.
Portugal, R.; Lavor, C.; Carvalho, L.; Maculan, N.
Uma Introdu¸c˜ao `a Computa¸c˜ao Quˆantica.
SBMAC, 2004.
Regev, O.;
Lattice-Based Cryptography
CRYPTO 2006, LNCS 4117, pp. 131-141, 2006 Simon, D. R.;
On the power of quantum computation