• Nenhum resultado encontrado

Crivo Quadr´ atico

No documento Teoria dos numeros e o RSA (páginas 71-78)

Um dos mais poderosos m´etodos de fatora¸c˜ao conhecidos ´e o Crivo Quadr´atico [10, 30]. Apesar de ser um dos melhores algoritmos existentes para fatora¸c˜ao (isto n˜ao significa que possa realmente fatorar um n´umero composto grande), existem apenas estimativas com rela¸c˜ao ao seu desempenho.

Este m´etodo tem como t´ecnica uma abordagem similar `a que foi feita no m´etodo de Fermat. No lugar de procurar x e y que satisfazem n = x2 − y2, procuramos

encontrar aleatoriamente x e y que satisfazem x2 ≡ y2 (mod n). Encontrar tal par

(x, y) n˜ao significa que encontramos uma fatora¸c˜ao de n, mas significa que n divide x2− y2 = (x − y)(x + y). As chances s˜ao de pelo menos 50-50 para que os primos

divisores de n estejam distribu´ıdos entre os divisores de ambos os fatores (x − y) e (x + y). Assim, d = mdc(x − y, n) ser´a um fator n˜ao trivial de n.

A complexidade para o crivo quadr´atico fatorar um n´umero n, n˜ao rigorosamente provada, ´e dada por e(1+o(1))

log n log log n[27]. Portanto, para n muito grande o trabalho

executado por uma implementa¸c˜ao do m´etodo cresce exponencialmente, o que torna a fatora¸c˜ao de n muito grande impratic´avel.

Conclus˜ao

No presente trabalho buscamos apresentar o RSA e alguns resultados da Teoria dos N´umeros relacionados ao RSA. Com este objetivo consideramos o problema de gerar primos aleatoriamente e de fatorar inteiros grandes.

Com rela¸c˜ao `a gera¸c˜ao de n´umeros primos, apresentamos alguns algoritmos para testar a primalidade de n´umeros de forma gen´erica. Dois dos algoritmos apresenta- dos s˜ao probabil´ısticos, o Solovay-Strassen e o Miller-Rabin, ambos com complexidade O(lg3n). Tamb´em apresentamos um algoritmo determin´ıstico, o AKS, que foi recen- temente descoberto e que tem complexidade O(lg19n).

Comparando os testes de primalidade probabil´ısticos, o uso do algoritmo de Miller- Rabin apresenta pelo menos duas vantagens em rela¸c˜ao ao de Solovay-Strassen: O algoritmo de Miller-Rabin ´e de implementa¸c˜ao mais simples, uma vez que o outro algoritmo exige o c´alculo do s´ımbolo de Jacobi. Al´em disso, a probabilidade de erro ´e limitada por 14 enquanto que para o algoritmo de Solovay- Strassen a probabilidade de erro ´e limitada por 12.

A descoberta do AKS ´e de grande relevˆancia matem´atica, pois como consequˆencia prova que o problema de determinar a primalidade de um n´umero pertence a classe polinomial (classe P).

Na pr´atica, o AKS leva muito mais tempo para apresentar uma resposta (ainda que em tempo polinomial) se comparado com os testes probabil´ısticos como, por exemplo, o Miller-Rabin que fornece um parecer bem confi´avel com poucas itera¸c˜oes.

Assim, para gerar n´umeros primos grandes podemos combinar velocidade com cer- teza, usando um algoritmo que teste a primalidade rapidamente com possibilidade de erro pequena (como ´e o caso do algoritmo MILLER-RABIN por ter uma probabilidade de erro menor) e um algoritmo mais lento, mas que certamente respoder´a a pergunta se um n´umero inteiro ´e primo ou composto.

Por´em, se a estimativa para r no algoritmo AKS for melhorada a complexidade do algoritmo poderia ser tamb´em melhorada. Tal possibilidade ´e apoiada em uma conjectura: a conjectura de densidade dos primos alem˜aes de Sophie 1.

Conjectura. O n´umero de co-primos alem˜aes de Sophie ´e assint´otico a Dx

log x, onde

D a constante prima gˆemea (≈ 0, 66016).

Se a conjectura for verdadeira, ent˜ao existe r de tamanho O(lg2n) com as propri- edades requeridas, o que reduziria o tempo do algoritmo para O(lg9n) (detalhes em [3] e [4]).

Uma outra possibilidade seria diminuir a estimativa de r para O(lg n) com a prova da seguinte conjectura.

Conjectura. Se r n˜ao divide n e se

(x − a)n ≡ (xn− a) mod (xr− 1, n), ent˜ao n ´e primo ou n2 ≡ 1 (mod r).

1Se r e r+1

2 s˜ao primos, ent˜ao r+1

Se este resultado for verdadeiro, o algoritmo passaria a ter complexidade O(lg6.5n) (ver [3] e [4]).

Voltando, ao RSA vimos que a sua seguran¸ca depende da dificuldade computaci- onal de fatorar um inteiro grande. Apresentamos no¸c˜oes de como alguns algoritmos de fatora¸c˜ao funcionam.

Como, atualmente, os m´etodos de fatora¸c˜ao existentes n˜ao s˜ao eficientes para fatorar num´eros inteiros como os que s˜ao usados no RSA, este sistema criptogr´afico tem se mostrado seguro.

Referˆencias Bibliogr´aficas

[1] Abrah˜ao, L. F. O Teorema dos N´umeros Primos. Disserta¸c˜ao (Tese de Mestrado). IMECC-Unicamp, 1998.

[2] Adleman, L. Pomerance, C. Rumely, R. On Distinguishing Prime Numbers from Composite Numbers. Annals of Mathematics, v. 117, p. 173-206, 1983.

[3] Agrawal, M. Kayal, N. Saxena, N. PRIMES is in P, 2002. Dispon´ıvel em: <http://www.cse.iitk.ac.in/users/manindra/index.html>,

[4] Aoyama, T. Polynomial Time Primality Testing Algorithm, 2003. Dispon´ıvel em: <http://www.cs.rit.edu/˜axt9690/ms project/ms project.html>,

[5] Apostol, T. M. Introduction to Analytic Number Theory. Undergraduate Texts in Mathematics. Spring-Verlag, 1986.

[6] Atkin, A. Morain, F. Elliptic Curves and Primality Proving, 1991. Dispon´ıvel em: <http:/www.lix.polytechnique.fr/˜morain/>.

[7] Bach, E. Shallit, J. Algorithmic Number Theory, v. 1: Efficient Algorithms. Foundations of Computing. MIT Press, 1997.

[8] Bach, E. Explicit Bounds for Primality Testing and Related Problems. Mathe- matics of Computation, v. 55, p. 355-380, 1990.

[9] Bernstein, Daniel J. Detecting Perfect Powers in Essentially Linear Time. Mathematics of Computation, v. 67, p. 1253-1283, 1998.

[10] Bressoud, D. M. Factorization and Primality Testing. Undergraduate Texts in Mathematics. Springer-Verlag: New York, 1989.

[11] Buchmann, J. M¨uller, V. Primality Testing. Universit¨at des Saarlandes: Ger- many, 1992.

[12] Cohen, H. A course in Computational Algebric Number Theory. Graduate Texts in Mathematics. Springer-Verlag: New York, 1993.

[13] Cormen, T. H. Leiserson, C. Rivest, R. Stein, C. An Introduction to Algorithms. MIT Press: Cambridge, MA, 2002.

[14] Coutinho, S. C. N´umeros Inteiros e Criptografia RSA. IMPA/SBM: Rio de Janeiro, 2000.

[15] Fouvry, E. Theoreme de Brun-Titchmarsh; Application au Theoreme de Fermat. Inventiones Mathematicae, v. 79, p. 383-407, 1985.

[16] Garefalakis, T. Primality Testing, Integer Factorization and Discrete Loga- rithms. University of Toronto: Toronto, 1998.

[17] Goldwasser, S. Killian, J. Primality Testing Using Elliptic Curves. Journal of the ACM, v. 46 , p. 450-472, 1999.

[18] Kahn, D. The Codebreakers: The Story of Secret Writing. MacMillan Publishing: New York, 1967.

[19] Koblitz, N. A Course in Number Theory and Cryptography. Graduate Texts in Mathematics. Springer, 1994.

[20] Lemos, Manuel. Criptografia, N´umeros Primos e Algoritmos, Col´oquio Brasileiro de Matem´atica. Impa: Rio de Janeiro, 1989.

[21] Lenstra, A. K. Integer Factoring. Designs, Codes and Cryptography, v. 19 , p. 31-58, 2000.

[22] Lidl, R. Niederreiter, H. Introduction to Finite Fields and Their Applications. Cambrigde University Press, 1994.

[23] Lucchesi, C. L. Introdu¸c˜ao `a Criptografia Computacional. Editora da UNICAMP: Campinas, 1986.

[24] Menezes, A. Van Oorchot, P. Vanstone, S. Handbook of Applied Cryptography. CRC Press, 1997.

[25] Miller, G. Riemanns’s Hypothesis and Test for Primality. Journal of Compu- tation. and System Science, v. 13, p. 300-317, 1976.

[26] Monier, L. Evaluation and Comparsion of Two Efficiente Probabilistic Primality Testing Algorithms. Theoretical Computer Science, v. 11, p. 97-108, 1980. [27] Pomerance, C. Factoring. Proceedings of Symposia in Applied Mathematics,

[28] Rabin, M. O. Probabilistic Algorithm for Primality Testing. Journal of Number Theory, v. 12, p. 128-138, 1980.

[29] Ribenboim, P. The Book of Prime Number Records. Springer-Verlag: New York, 1996.

[30] Riesel, H. Prime Numbers and Computer Methods for Factorization. Progress in Mathematics, 57. Birkh¨auser: Boston, MA, 1985.

[31] Rivest, R. L. Shamir, A. Adleman, L. A Method for Obtaining Digital Signatures and Public Key Cryptosystems. Communications of the ACM, v. 21, p. 120-127, 1978.

[32] Santos, J. P. Introdu¸c˜ao `a Teoria dos N´umeros. IMPA-CNPq: Rio de Janeiro, 2003.

[33] Smid, M. Primality Testing in Polynomial Time. Maio, 2003. Dispon´ıvel em: <http://www.scs.carleton.ca/˜michiel/primes.ps.gz>

[34] Solovay, R. Strassen, V. A fast Monte-Carlo Test for Primality. SIAM Journal of Computing, v. 6, p. 84-85. 1977.

No documento Teoria dos numeros e o RSA (páginas 71-78)

Documentos relacionados