IMPLEMENTAÇÃO DO MÉTODO DE FATORAÇÃO DE INTEIROS CRIVO QUADRÁTICO Alne de Paula Sanches 1 ; Adrana Betâna de Paula Molgora 1 Estudante do Curso de Cênca da Computação da UEMS, Undade Unverstára de Dourados; E-mal: alnee_sanches@hotmal.com Professora do Curso de Cênca da Computação da UEMS, Undade Unverstára de Dourados; E-mal: abmol@terra.com.br Área Temátca: Teora Computaconal dos Números Resumo. O Crvo Quadrátco é consderado como um dos métodos de fatoração de nteros mas mportantes da atualdade. No entanto, mplementar este método não é uma tarefa trval, pos envolve estudos sobre aspectos matemátcos e computaconas envolvdos em seu funconamento. O objetvo deste trabalho é apresentar uma descrção de uma mplementação realzada durante o desenvolvmento do mesmo. Palavras-chave: Algortmo.Congruênca. Dferença de quadrados. 1. Introdução O problema de fatoração de números nteros tem ocupado lugar de destaque na Teora dos números. Essa mportânca deve-se ao fato de que sstemas crptográfcos como o RSA têm sua segurança baseada na dfculdade de fatorar um número ntero qualquer dado, afrma Coutnho (000). O método de fatoração de nteros Crvo Quadrátco, devdo a Pomerance (1985, p.169), é consderado como um dos métodos de fatoração mas potentes, sendo utlzado na fatoração de números de aproxmadamente 100 dígtos decmas. Esse trabalho tem como objetvo realzar um estudo prátco do método Crvo Quadrátco, apresentando uma descrção de uma mplementação realzada durante o desenvolvmento do mesmo, e a análse dos resultados obtdos.. Materas e Métodos Para o alcance do objetvo proposto, foram realzados as seguntes etapas: 1. Estudo do manual da bbloteca GMP;. Integração da GMP em um complador C;
3. Estudo e mplementação do método de fatoração de nteros Crvo Quadrátco, utlzando as funções da bbloteca GMP; 4. Documentação do processo de mplementação do método Crvo Quadrátco, para um maor entendmento. 3. Resultados e Dscussão 3.1. Crvo Quadrátco A fatoração de nteros através do método Crvo Quadrátco tem como base o fato de que se exstrem números x e y que satsfaçam a condção x y (mod, então tem-se n que ( x y) ( x y) 0 (mod. Logo, ( x y) ( x y) ( x y ) e os números d mdc( x y, e f mdc( x y, poderão ser fatores não trvas de n. Ou seja, a déa básca do método consste em encontrar congruêncas da forma r y (mod, onde y y é um quadrado perfeto. Se x r, então x y (mod. De acordo com Crandall e Pomerance (00, p.01), na prátca, para encontrar x e y, em prmero lugar deve-se encontrar uma base de fatores, que é um conjunto de números prmos como, por exemplo, o conjunto 1,, p,..., p }, tal que p B, para um certo lmte B e, { para cada prmo p, o número n deve ser um resíduo quadrátco módulo p. Em seguda, são calculados números f ( r ) s dados por f ( r ) r n para r próxmo de n. Num segundo momento, devem-se determnar r s sufcentes para os quas f ( r ) pode ser completamente fatorado pela base de fatores. A quantdade desses f r ) s deve ser maor do que o número de prmos e menores do que B. Armazenando os f r ) s, em um vetor na base bnára, utlza-se a adção de vetores para descobrr uma combnação lnear que produz um vetor nulo que corresponderá a um quadrado perfeto. Então x será dado pelo produto dos r s correspondentes módulo n, e y será dado pela raz do produto dos fatores dos f r ) s correspondentes. Em seguda é calculado d mdc( x y,. Se d é fator não trval de n, então um fator fo encontrado e, para determnar o segundo fator basta calcular a dvsão de n por d. Em resumo, pode-se dzer que os passos para a fatoração de n pelo método Crvo Quadrátco, são: 1º Encontrar uma base de fatores.
º Determnar um conjunto de números que podem ser completamente fatorados sobre a base de fatores. 3º Usar a Elmnação Gaussana para encontrar um produto dos números determnados no º passo que seja um quadrado perfeto. Algortmo (Crvo Quadrátco) Entrada: n, B // número a ser fatorado e lmte B// Saída: fator1, fator //fatores de n// [Iníco] //Nessa etapa é determnada a base de fatores e calculado o símbolo de Legendre// p 1 =, r 1 = 1 ; n Para encontre números prmos p B tas que = 1; p Para encontre as raízes r com r n(mod p ); n, n1 ² Determne um conjunto S de +1 pares r, r ² n onde r é dado pela seqüênca de números r,... e n pode ser totalmente fatorado pela base de fatores; Para (( r, S) { e n p 1 ; v( ( e1, e,... e ); } Construa a matrz de ordem ( 1) com os vetores v( reduzdos (mod ); Através da Elmnação Gaussana encontre uma combnação lnear de vetores v r ) v( r )... v( r ) 0. ( 1 x r1 r... r mod n; y (...( mod n ( 1 fator 1 mdc( x y, ; fator 1 mdc( x y, ; retorne fator1, fator; [Fm algortmo] 3.. Implementação do Crvo Quadrátco 3..1. Ambente de desenvolvmento O método Crvo Quadrátco, fo mplementado na lnguagem C em uma plataforma Pentum IV, 300 MHz, 51 MB de RAM, usando o sstema operaconal Lnux Ubuntu. Para a representação de números grandes de tamanho arbtráro fo utlzada a bbloteca GMP, versão 4.3.1, escrta na lnguagem C, dsponblzada no ste http://gmplb.org/.
3... Etapas da mplementação O prmero passo do método Crvo Quadrátco é encontrar uma base de fatores. Os números pertencentes a essa base, devem satsfazer as seguntes condções: Ser prmo Ser menor que um lmte dado B Atender a condção do Símbolo de Legendre onde n / p 1 Para sso fo utlzada a função mpz_nextprme, que lsta os prmos até o lmte B especfcado. Para cada prmo fo calculado o símbolo de Legendre. Assm fo crado um vetor com os números para os quas as condções foram satsfetas. O segundo passo é determnar um conjunto de números que podem ser completamente fatorados sobre a base de fatores. Para sso, ncalmente foram calculados os f r ) s usando a fórmula f ( r ) r n. Na mplementação desta fórmula foram utlzadas as funções de adção mpz_add_u, potencação mpz_pow_u e subtração mpz_sub. Para determnar se os números f r ) s são completamente fatorados pela base de fatores fo utlzada a função mpz_cmp_u, que compara os fatores f r ) s com os prmos da base de fatores. Os f r ) s que satsfazem essa condção são armazenados em um vetor. O mesmo procedmento é feto para os r s correspondentes. O tercero passo é usar a Elmnação Gaussana para encontrar um produto dos números determnados no º passo que seja um quadrado perfeto. Para sso é crada uma matrz determnada pelos f r ) s, onde cada lnha representa um vetor de 0 s e 1 s correspondentes a um f r ), como segue: em prmero lugar é calculada a fatoração do f r ) dado; se o expoente do fator de f r ) for par atrbu-se 0 e, se for ímpar atrbu-se 1. Em seguda é utlzada a função ncalza_matrz_dentdade, que cra uma matrz dentdade cuja ordem é dada pelo número de f r ) s determnados. Após essas etapas, chama-se a função elmnação_gaussana_mod_, que realza a Elmnação Gaussana nas duas matrzes, procurando uma ou mas lnhas nulas. Encontrada uma lnha nula, deve-se tomar a lnha correspondente da matrz dentdade onde os 1 s que aparecerem correspondem aos r s determnados anterormente. Para calcular x e y como especfcado no algortmo apresentado fo utlzada, além das funções de multplcação e cálculo de raz quadrada, a função de operação modular mpz_mod. O mdc fo calculado utlzando-se a função mpz_gcd. Dessa forma foram retornados os fatores de n.
tempo de execução em segundos 3..3. Testes e análse dos resultados Foram testados números compostos ( contendo de a 30 dígtos decmas. O tempo de execução do algortmo fo meddo em segundos. Os resultados obtdos podem ser vsualzados na Fgura 1 a segur. 1000 800 600 400 00 0 4 6 8 10 1 14 16 18 0 4 6 8 30 numero de dígtos decmas de n Fgura 1: Tempo de execução Com base nos resultados obtdos, percebe-se que o tempo fatoração aumenta exponencalmente de acordo com a quantdade de dígtos de n. Não foram apresentados resultados de números maores devdo ao aumento muto sgnfcatvo do tempo de execução e à problemas de overflow (memóra nsufcente). Para uma mplementação mas efcente são necessáros estudos mas aprofundados de cada etapa do processo de fatoração. 5. Agradecmentos Os autores agradecem pelo apoo fnancero (bolsa) conceddo pela Unversdade Estadual de Mato Grosso do Sul e também por todos os acadêmcos, coordenadores, professores e técncos que, dretamente ou ndretamente, contrbuíram para a realzação desse trabalho. 6. Referêncas Crandall, R., Pomerance, C. 00. Prme Numbers- A Computatonal Perspectve. New Yor: Sprnger-Verlag, 1º Edção, 7p. Coutnho, S. 000. Números nteros e Crptografa RSA. IMPA-SBM. Pomerance, C. 1985. The Quadratc Seve Factorng Algorthm. New Yor: Sprnger- Verlag, Ed. T. Beth, N. Cot, and I. Ingemarsson, 13p.