Escolar Documentos
Profissional Documentos
Cultura Documentos
!
O artigo está em inglês, mas eu traduzi ele (de uma forma bem informal) e apresento ele
aqui. Boa leitura.
!
Tá, vamos lá. Digamos que você queira quebrar o sistema de criptografia RSA, PGP, ou
qualquer outro sistema baseado em chave pública (na verdade, qualquer sistema que use
um número/hash para verificação/encriptação de dados), para roubar algum banco,
chantagear o presidente dos EUA, ler os e-mails comprometedores do seu chefe, não
importa. Todos sabemos (ou pelo menos assim acredito) que quebrar a criptografia RSA
se reduz à encontrar os fatores primos de um dado valor N.
t
tili
t l # l
tt!
+ il l it
%,
l
t
t ,
iii tiili
i -
l
l,
i,!i
i i
i
ltili t!ii
.(/0.12(1/(20(313.(.)(/
4
it!i"#t iiií"B
t
it l !iiii
l .3
t#
t
t
ti(5
.3 tt
lit
i
(.
ÃÃÃ [(2**x)%21 for x in range(21)]
[1, 2, 4, 8, 16, 11, 1, 2, 4, 8, 16, 11, 1, 2, 4, 8, 16, 11, 1, 2, 4]
Agora, peguemos outras duas sequências 25x mod 8 e 25x mod 16
Para estes dois valores em particular, não há uma sequência periódica, pois a partir de
um dado momento, a sequência converge para 0.
Bom, você deve estar derretendo sua cabeça Há alguma regra geral com a qual nós
podemos prever o período? Bom, eu acho que os matemáticos $á tenham pensado
sobre essa questão ...
Bem, eles pensaram, e um mátemático chamado Euler (eu adoro esse kra) descobriu um
belo padrão. Peguemos um número qualquer N, composto por dois números primos, p e
q, e considere a sequência ...
Tá, e qual é a mágica? Olhe bem Quando o x fornecido não é divisível por p ou por q, a
sequência acima irá se repetir com um período que eventualmente divide (p-1)(q-1).
Tomando o primeiro exemplo, N=15, os seus fatores primos são p=3 e q=5, então (p-
1)(q-1)=8. E o período da sequência foi 4, que divide 8. Se N=21, seus fatores primos
são p=3 e q=7, então (p-1)(q-1)=12. E, concluindo, o período foi 6, que é divisível por
12.
Agora, eu quero que você volte um pouco e raciocine um pouco sobre o que isso
significa. em termos genéricos, se nós podemos encontrar o período da sequência ...
... então nós podemos aprender algo sobre os fatores primos de N!! Em particular, nós
podemos descobrir um divisor de (p-1)(q-1). Agora, admitamos, não é a mesma coisa
como aprender os fatores p e q, no entanto isso me garante que possa ser algo! No
entanto, é mais do que isso! Isso nos mostra que, se pudermos descobrir
randomicamente vários divisores de (p-1)(q-1) (por exemplo, tentando diferentes
valores para x), então com muita probabilidade nós poderíamos colocar estes divisores
$untos para descobrir o próprio (p-1)(q-1). E assim que descobrirmos (p-1)(q-1), nós
poderemos usar alguns truques matemáticos para recuperar p e q, os fatores primos que
estamos procurando.
Então, qual é o problema nisso? Bem, até a sequência eventualmente começar a se
repetir, o número de passos antes que esta se repita pode ser tão grande quando o
prórpio N, e N pode ter milhares ou milhões de dígitos. É por isto que encontrar o
período não nos leva a algoritmos clássocos de fatoração mais rápidos.
Ah, mas nós temos um computador quântico! (Ou, pelo menos, acreditamos que temos
um) Então, ainda há esperança. Então, imagine que possamos criar uma enorme
superposição quântica usando todos os números em nossa sequência x mod N, x52 mod
N, etc. Então, há algumas operações que podemos fazer nessa superposição que poderia
revelar o período.
O ponto chave é que nós não estaremos procurando uma agulha num palheiro de
dimensões exponenciais, algo que talvez se$a difícil até para um computador quântico
descobrir. Em vez disso, devemos tentar encontrar o período da sequência, a qual é uma
propriedade global para todos os números da sequência $untos.
Então ... A tarefa que se interpõe entre nós e nossos fatores não é humanamente
impossível. No entanto, se nós queremos fazer essa idéia da busca pelo período
funcionar, nós precisaremos responder a duas questões
2. Supondo que, Sim, nós podemos construir esta superposição rapidamente, como nós
poderemos descobrir o período?
Vamos então responder a primeira questão. Nós podemos certamente criar uma
superposição com todos os números inteiros r, de 1 até N, ou mais. O problema é, dado
um número r, como nós poderemos rapidamente computar x5r mod N? Se r é, por
exemplo, o número 20 trilhões, nós teremos de multiplicar x por si mesmo 20 trilhões
de vezes? -om certeza isso não seria muito rápido e, para nossa sorte, isso não é
necessário. O que nós poderemos fazer é chamado repetição quadrática. Isso é
facilmente entendível olhando o exemplo
Suponha que tenhamos os seguintes valores N=17, x=3 e r=14. O primeiro passo para
fazer a repetição é representar r como uma soma de potências de 2
Então ...
Tendo isso em mente, podemos fazer todas as multiplicações do x5r mod N, sendo
assim, prevenindo os números de crescer descontroladamente nos estágios iniciais. Isto
nos leva ao resultado
3514 mod 17 = 2.
Ok, então nós podemos criar uma superposição de todos os pares de inteiros na forma
(r, x5r mod N), onde r varia de 1 até N (ou menos). Mas, tendo uma superposição de
todos os elementos de uma sequência periódica, como podemos extrair o período da
sequência?
Boa pergunta!
Para exemplificarmos, peguemos como exemplo um experimento feito nos anos 70,
onde várias pessoas são colocadas em uma sala, sem relógios e luz solar. No decorrer de
algumas semanas, as pessoas vão gradualmente mudando seu ritmo diário de um ciclo
de 24 horas para ciclos maiores, de 26, 27, 28 e por aí vai. Um dia, essas pessoas
acordam às às 9h da manhã, no outro dia às 11h e depois à 1h da tarde, e assim
sucessivamente. Então, se nada atrapalhar, eles uma hora vão voltar a acordar às 9h da
manhã, completando um ciclo.
-alma, a parte doida da explicação ainda está por vir. Agora, digamos que ho$e eu, que
faço parte do experimento, acordei às 5h da tarde. -om esse fato, somente, o que você
pode concluir à respeito de quão longo meu dia é?
Nada, não é mesmo? A única coisa que eu posso inferir é que não estou mais em um
ciclo de 24 horas, $á que não acordo no mesmo horário sempre. Agora uma coisa. Não
importa qual fosse o ciclo de horas que eu estivesse, em qualquer outro ciclo de horas
que não fosse o que eu sigo, eu iria em algum momento voltar a acordar na mesma hora
inicial.
Beleza, até aí tudo bem, não é? Agora, imagine que neste quarto onde eu estou as
paredes estão cobertas com vários relógios analógicos. No entanto, estes não são
relógios comuns. Primeiro, eles marcam somente as horas. Segundo, cada relógio segue
um ciclo diferente um, por exemplo, completa sua volta em 17 horas; outro às 22 horas
e um ainda, faz seu ciclo em 24.7 horas, e muitos outros em várias outras contagens.
Agora imagine que abaixo de cada um desses relógios há uma folha com uma agulha
marcadora ao centro. Quando eu entrei a primeira vez nessa sala, todos eles marcavam o
mesmo lugar, o centro da sua respectiva folha. E como tarefa, sempre que acordar, a
primeira coisa que devo fazer é mover o marcador de cada um desses relógios em um
centímetro na direção que o ponteiro do relógio está apontando.
Agora, uma pergunta. Examinando os marcadores na sala, é possível descobrir qual é o
ciclo de horas que eu estou seguindo?
Sim, por mais estranho que possa parecer, é possível, se você lembrar do que escrevi
logo ali atrás. Suponhamos que eu siga um ciclo de 26 horas. O que acontecerá na folha
do relógio que têm um ciclo de 24 horas? Não é difícil perceber que as marcações
seguirão um movimento periódico. -ada dia que eu acordo e marco a folha, eu estarei
acordando em uma hora diferente, pois meu ciclo não é sincronizado com este e,
eventualmente, todos estes movimentos em direções diferentes se cancelarão uns aos
outros, levando o marcador a chegar novamente ao centro da folha.
Por outro lado, o que acontecerá no relógio que têm o ciclo de 26 horas? A resposta será
diferente pois, até onde meu ciclo é sincronizado com precisão ao ciclo de 26 horas,
sempre que eu acordar o ponteiro do relógio estará apontando na mesma direção que
estava da última vez em que eu acordei. E assim será, até que o marcador nem mais
este$a dentro da folha.
Outra maneira de pensar nisso é em termos da interferência. Eu penso que, a chave para
o uso da mecânica quântica - e o que faz a diferença entre esta e a teoria clássica da
probabilidade - é que, enquanto as probabilidades são semrpe não-negativas, amplitudes
na mecânica quântica podem ser positivas, negativas, e até mesmo complexas. E por
causa disso, as amplitudes correspondem a diferentes formas de pegar uma resposta que
interfira destrutivamente e cancele todas as outras respostas não consonantes.