Table Of ContentUniversidade 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:balho foi tão expressivo que teve reconhecimento da mídia internacional e também os autores foram prestigiados com os prêmios Gödel e Fulkerson em 2006. A motivação Computador Asus Q550L. Intel Core i7-4500U. 8GB DDR3. OS / kernel Ubuntu 13.10 x86_64 / 3.11.0-15-generic. Compilador