Universidade de Bras(cid:237)lia Instituto de CiŒncias Exatas Departamento de CiŒncia da Computa(cid:231)ªo Implementa(cid:231)ªo E(cid:28)ciente de Algoritmos para Teste de Primalidade Bruno Cesar Dias Ribeiro Bras(cid:237)lia 2013 Universidade de Bras(cid:237)lia Instituto de CiŒncias Exatas Departamento de CiŒncia da Computa(cid:231)ªo Implementa(cid:231)ªo E(cid:28)ciente de Algoritmos para Teste de Primalidade Bruno Cesar Dias Ribeiro Monogra(cid:28)a apresentada como requisito parcial para conclusªo do Bacharelado em CiŒncia da Computa(cid:231)ªo Orientador Prof. Dr. Diego de Freitas Aranha Bras(cid:237)lia 2013 Universidade de Bras(cid:237)lia (cid:22) UnB Instituto de CiŒncias Exatas Departamento de CiŒncia da Computa(cid:231)ªo Bacharelado em CiŒncia da Computa(cid:231)ªo a a Coordenador: Prof. Dr. Maristela Terto de Holanda Banca examinadora composta por: Prof. Dr. Diego de Freitas Aranha (Orientador) (cid:22) CIC/UnB Prof. Joªo JosØ Costa Gondim (cid:22) CIC/UnB Prof. Pedro Ant(cid:244)nio Dourado de Rezende (cid:22) CIC/UnB CIP (cid:22) Cataloga(cid:231)ªo Internacional na Publica(cid:231)ªo Ribeiro, Bruno Cesar Dias. Implementa(cid:231)ªo E(cid:28)ciente de Algoritmos para Teste de Primalidade / Bruno Cesar Dias Ribeiro. Bras(cid:237)lia : UnB, 2013. 143 p. : il. ; 29,5 cm. Monogra(cid:28)a (Gradua(cid:231)ªo) (cid:22) Universidade de Bras(cid:237)lia, Bras(cid:237)lia, 2013. 1. criptogra(cid:28)a assimØtrica, 2. primalidade, 3. chaves criptogrÆ(cid:28)cas CDU 004.4 Endere(cid:231)o: Universidade de Bras(cid:237)lia Campus UniversitÆrio Darcy Ribeiro (cid:22) Asa Norte CEP 70910-900 Bras(cid:237)lia(cid:21)DF (cid:22) Brasil Universidade de Bras(cid:237)lia Instituto de CiŒncias Exatas Departamento de CiŒncia da Computa(cid:231)ªo Implementa(cid:231)ªo E(cid:28)ciente de Algoritmos para Teste de Primalidade Bruno Cesar Dias Ribeiro Monogra(cid:28)a apresentada como requisito parcial para conclusªo do Bacharelado em CiŒncia da Computa(cid:231)ªo Prof. Dr. Diego de Freitas Aranha (Orientador) CIC/UnB Prof. Joªo JosØ Costa Gondim Prof. Pedro Ant(cid:244)nio Dourado de Rezende CIC/UnB CIC/UnB a a Prof. Dr. Maristela Terto de Holanda Coordenador do Bacharelado em CiŒncia da Computa(cid:231)ªo Bras(cid:237)lia, 22 de Julho de 2013 Agradecimentos Aos meus pais e irmªos, que nunca pouparam esfor(cid:231)os para me apoiar e orientar em todo caminho que decidi seguir. (cid:192)s Professoras Carla Koike, Fernanda Lima, Carla Castanho e a amigos por acreditarem em minha competŒncia. Aos Professores Pedro Ant(cid:244)nio Dourado de Rezende e Diego de Freitas Aranha, cujo conhecimento e entusiasmo foram de(cid:28)nitivos para despertar curiosidade por uma Ærea fascinante. i Resumo O desenvolvimento da criptogra(cid:28)a, em especial a criptogra(cid:28)a de chave assimØtrica, foi fatordeterminanteparaocrescimentoepopulariza(cid:231)ªodasredesdecomputadores. Foires- ponsÆvel pela viabiliza(cid:231)ªo de demandas como comØrcio e correio eletr(cid:244)nicos, assinaturas e certi(cid:28)ca(cid:231)ıes digitais. O uso adequado de tØcnicas criptogrÆ(cid:28)cas requer o desenvolvimento de aplica(cid:231)ıes e(cid:28)cientes que sejam capazes de executar em diversos tipos de dispositivos que cada vez mais se incorporam (cid:224) vida das pessoas. A gera(cid:231)ªo de chaves criptogrÆ(cid:28)cas Ø uma opera(cid:231)ªo nªo s(cid:243) cr(cid:237)tica quanto (cid:224) seguran(cid:231)a, mas tambØm de alto custo computa- cional. Este trabalho tem o intuito de estudar sistemas criptogrÆ(cid:28)cos, conceitos te(cid:243)ricos e teste de primalidade, elemento que compıe o nœcleo do processo de gera(cid:231)ªo de chaves. (cid:201) dado enfoque na implementa(cid:231)ªo, otimiza(cid:231)ªo e anÆlise de desempenho do Teste de Fro- benius QuadrÆtico Simpli(cid:28)cado, um teste de primalidade de 2005 e pouco explorado. Os resultados atingidos sªo positivos quanto (cid:224) viabilidade da redu(cid:231)ªo do custo computacional dessas opera(cid:231)ıes. Palavras-chave: criptogra(cid:28)a assimØtrica, primalidade, chaves criptogrÆ(cid:28)cas ii Abstract The development of cryptography, public key cryptography in particular, was a cru- cial factor responsible for the growth and popularization of computer networks. It was responsible for appearance of demands as email, e-commerce, digitals signature and certi- (cid:28)cation. The proper use of cryptographic techniques requires the development of e(cid:30)cient applications capable of running in all kind of devices witch more and more incorporates people’s lives. The generation of cryptographic keys is not only a critical security op- eration but also a have high computational cost. This project has the goal of studying cryptosystems and their theoretical basis and primality test, the core element of the key generation process. It has an especial approach on implementing, optimizing and perfor- mance analysis of Simpli(cid:28)ed Frobenius Quadratic Test, a primality test from 2005 and under explored. The achieved results are positives about the feasibility of reducing the computational cost of operation. Keywords: asymmetric cryptography, primality, cryptographic keys iii SumÆrio 1 Introdu(cid:231)ªo 1 1.1 Criptogra(cid:28)a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 Contexto Hist(cid:243)rico . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.2 Criptogra(cid:28)a Moderna . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.3 Seguran(cid:231)a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.4 Princ(cid:237)pios de Kercho(cid:27) . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Sistema CriptogrÆ(cid:28)co 5 2.1 Sistema CriptogrÆ(cid:28)co SimØtrico . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1 Vantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.2 Desvantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 Sistema CriptogrÆ(cid:28)co AssimØtrico . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.1 Fun(cid:231)ıes Unidirecionais . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2 Vantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.3 Desvantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Combina(cid:231)ªo dos Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Criptogra(cid:28)a de Chave Pœblica 14 3.1 Complexidade Computacional . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.1 Casos Melhor, Pior e MØdio . . . . . . . . . . . . . . . . . . . . . . 14 3.1.2 Limites Superior e Inferior . . . . . . . . . . . . . . . . . . . . . . . 15 3.2 Teoria dos Nœmeros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.1 Nœmeros Primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.2 Teorema Fundamental da AritmØtica . . . . . . . . . . . . . . . . . 18 3.2.3 Algoritmo Euclidiano . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.4 CongruŒncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2.5 Teorema ChinŒs do Resto . . . . . . . . . . . . . . . . . . . . . . . 21 3.2.6 Pequeno Teorema de Fermat . . . . . . . . . . . . . . . . . . . . . . 21 3.2.7 Teorema de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.8 S(cid:237)mbolos de Legendre e Jacobi . . . . . . . . . . . . . . . . . . . . . 22 3.3 Algoritmo RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3.1 Esquema de Cifra(cid:231)ªo . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3.2 Esquema de Assinatura Digital . . . . . . . . . . . . . . . . . . . . 26 3.3.3 Fun(cid:231)ıes de Resumo e Preenchimento . . . . . . . . . . . . . . . . . 28 iv 4 Teste de Primalidade 30 4.1 Import(cid:226)ncia dos Nœmeros Primos . . . . . . . . . . . . . . . . . . . . . . . 30 4.2 F(cid:243)rmula para Primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2.1 Fun(cid:231)ªo de Mills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3 Testes de Primalidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3.1 Crivo de Erat(cid:243)stenes . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.3.2 Teste de Fermat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.3.3 Teste de Solovay-Strassen . . . . . . . . . . . . . . . . . . . . . . . 35 4.3.4 Teste de Miller-Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.3.5 Teste de Adleman-Huang . . . . . . . . . . . . . . . . . . . . . . . . 37 4.3.6 Teste AKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5 Teste de Frobenius QuadrÆtico Simpli(cid:28)cado 40 5.1 Implementa(cid:231)ªo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.1.1 Relic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.1.2 Quadrado Perfeito . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.1.3 AritmØtica BÆsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.1.4 Exponencia(cid:231)ªo Modular . . . . . . . . . . . . . . . . . . . . . . . . 46 5.1.5 Probabilidade de Erro . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2 Otimiza(cid:231)ªo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2.1 Crivo para Quadrados Perfeitos . . . . . . . . . . . . . . . . . . . . 47 5.2.2 Multiplica(cid:231)ªo de Karatsuba . . . . . . . . . . . . . . . . . . . . . . 47 5.2.3 F(cid:243)rmula do Quadrado Complexo . . . . . . . . . . . . . . . . . . . 48 5.2.4 Janela Deslizante . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.2.5 Redu(cid:231)ªo de Montgomery . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2.6 Mudan(cid:231)a AlgØbrica . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2.7 Redu(cid:231)ªo Pregui(cid:231)osa . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3 Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.4.1 Consumo de Tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.4.2 Teste de Primalidade . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.4.3 Gerador de Primos . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6 Conclusªo 60 ReferŒncias 61 v Lista de Figuras 2.1 Modelo de comunica(cid:231)ªo utilizando criptogra(cid:28)a. Adaptado de Menezes [29]. 7 2.2 Modelo de comunica(cid:231)ªo utilizando criptogra(cid:28)a simØtrica. Adaptado de Menezes [29]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Modelo de comunica(cid:231)ªo utilizando criptogra(cid:28)a assimØtrica. Adaptado de Menezes [29]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4 Diagrama de uma fun(cid:231)ªo dita uniderecional. Adaptado de Goldreich [17]. . 11 3.1 Compara(cid:231)ªo assint(cid:243)tica entre crescimento das fun(cid:231)ıes. Retirado de Hein [19]. 16 3.2 Ilustra(cid:231)ªo da di(cid:28)culdade da fatora(cid:231)ªo de nœmeros grandes. Retirado de xkcd [50]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.1 Fluxograma das etapas do desenvolvimento do projeto. . . . . . . . . . . . 43 5.2 Consumo de tempo (%) vs. Tamanho de n (em potŒncia de 2) do TFQS versªo 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3 Consumo de tempo (%) vs. Tamanho de n (em potŒncia de 2) do TFQS versªo 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.4 GrÆ(cid:28)co do desempenho entre TFQS versªo 1 e versªo 5. . . . . . . . . . . 55 5.5 GrÆ(cid:28)co Rabin vs. TFQS para entrada primo. . . . . . . . . . . . . . . . . 57 5.6 GrÆ(cid:28)co Rabin vs. TFQS para entrada composto. . . . . . . . . . . . . . . 57 5.7 Gerador de primo com semente (cid:28)xa. Rabin vs. TFQS. . . . . . . . . . . . 58 5.8 Gerador de primo com semente aleat(cid:243)ria. Rabin vs. TFQS. . . . . . . . . . 59 vi
Description: