Comput adores e Redes de Comput adores

1
Lui z Manoel Si l va de Fi guei r edo
Rio de Janeiro
2 0 0 6
CURSO DE CRI PTOGRAFI A E
SEGURANÇA EM REDES
NÚMEROS PRI MOS E CRI PTOGRAFI A DE
CHAVE PÚBLI CA
UNI VERSI DADE FEDERAL FLUMI NENSE - UFF
CENTRO DE ESTUDOS DE PESSOAL - CEP
Copyright © 2006 Centro de Estudos de Pessoal
Todos os direitos reservados ao Centro de Estudos de Pessoal (CEP)
Nenhuma parte deste material poderá ser reproduzida, armazenada ou transmitida de qualquer
forma ou por quaisquer meios - eletrônico, mecânico, fotocópia ou gravação, sem autorização do
CEP e do autor.
C r éd i t o s C r éd i t o s C r éd i t o s C r éd i t o s C r éd i t o s
Capa e projeto gráfico: Maria Rachel Barbosa
Diagramação: Maria Rachel Barbosa
Rafael Fontenele
Redação pedagógica: Mônica Nogueira da Costa Figueiredo
Vanessa Maria Barbosa
Revisão: Letícia Maria Lima Godinho
Vanessa Maria Barbosa
Centro de Estudos de Pessoal (CEP)
Praça Almte. Júlio de Noronha S/ N
Leme - Rio de Janeiro - RJ
2 2 0 1 0 - 0 2 0
Tel 21 2295-1140
Figueiredo, Luiz Manoel Silva de
F4 7 5 n Números primos e criptografia de chave pública
/ Luiz Manoel Silva de Figueiredo. – Rio de Janeiro:
UFF / CEP - EB, 2006.
180p. – (Curso de Criptografia e Segurança em
Redes).
ISBN 8 5 - 9 8 5 6 9 - 4 6 - 1
1. Criptografia. 2. Números primos.
CDD – 001.5436
SUMÁRIO
PROGRAMA DA DISCIPLINA ...........................................................................................................................................5
PLANO DE AULAS DA UNIDADE 1 .................................................................................................................................6
PLANO DE AULAS DA UNIDADE 2 .................................................................................................................................7
UNIDADE 1 .......................................................................................................................................................................9
AULA 1 NÚMEROS PRIMOS .........................................................................................................................................10
Texto 1 Teoria dos números ...........................................................................................................................................10
Texto 2 Divisores ............................................................................................................................................................12
Texto 3 Números perfeitos ............................................................................................................................................... 15
Texto 4 Números primos .................................................................................................................................................. 17
Texto 5 A infinitude dos números primos .......................................................................................................................19
Atividades ........................................................................................................................................................................21
AULA 2 ALGORITMO DA DIVISÃO ..............................................................................................................................22
Texto 6 Axioma de Eudoxius ..........................................................................................................................................22
Texto 7 O algoritmo da divisão .......................................................................................................................................23
Texto 8 O máximo divisor comum (mdc) ........................................................................................................................25
Texto 9 O mínimo múltiplo comum (mmc) .......................................................................................................................29
Texto 10 O mdc e mmc de vários inteiros ......................................................................................................................29
Texto 11 Como calcular o máximo divisor comum .........................................................................................................30
Atividades ........................................................................................................................................................................ 31
AULA 3 ALGORITMO DE EUCLIDES ...........................................................................................................................32
Texto 12 Dois resultados preliminares ...........................................................................................................................32
Texto 13 O algoritmo de Euclides ...................................................................................................................................33
Texto 14 Cálculo do mdc e do mmc através da fatoração .............................................................................................35
Texto 15 Relação entre mdc(a,b) e mmc(a,b) ................................................................................................................37
Texto 16 Convergência do algoritmo de Euclides ...........................................................................................................38
Atividade ........................................................................................................................................................................ . 41
AULA 4 TESTES DE PRIMALIDADE ............................................................................................................................42
Texto 17 Primeiro teste de primalidade ..........................................................................................................................42
Texto 18 Teorema dos números primos .........................................................................................................................46
Atividades ........................................................................................................................................................................48
AULA 5 ARITMÉTICA MODULAR .................................................................................................................................49
Texto 19 Relações ..........................................................................................................................................................50
Texto 20 Congruência módulo n .....................................................................................................................................52
Texto 21 Classes de equivalência ...................................................................................................................................54
Texto 22 Classes de congruência ..................................................................................................................................55
Atividades ........................................................................................................................................................................58
AULA 6 OPERAÇÕES COM CLASSES DE CONGRUÊNCIA ......................................................................................59
Texto 23 Definição de soma e de produto de classes ....................................................................................................59
Texto 24 Tabelas de soma e de multiplicação ...............................................................................................................62
Texto 25 Divisibilidade ....................................................................................................................................................64
Texto 26 Potências .........................................................................................................................................................67
Atividades ........................................................................................................................................................................70
AULA 7 DIVISÃO MODULAR ........................................................................................................................................71
Texto 27 A inversa de uma classe de congruência módulo n ........................................................................................71
Texto 28 Quando uma classe em ℤ
n
tem inversa? ....................................................................................................72
Texto 29 A congruência linear
a x ≡ b mod n
.......................................................................................................74
Texto 30 Como escrever o mdc de dois inteiros em combinação linear ........................................................................76
Atividades ........................................................................................................................................................................ 81
AULA 8 TEOREMA DE FERMAT ..................................................................................................................................82
Texto 31 Fermat .............................................................................................................................................................. 82
Texto 32 O teorema de Fermat .......................................................................................................................................83
Texto 33 Aplicação do teorema de Fermat à solução de potências ............................................................................... 87
Texto 34 Equações diofantinas ....................................................................................................................................... 88
Texto 35 Uso das congruências para resolver equações diofantinas .............................................................................90
Atividades ........................................................................................................................................................................92
UNIDADE 2 .....................................................................................................................................................................93
AULA 9 TESTE DE PRIMALIDADE DE FERMAT .........................................................................................................94
Texto 36 Testes de primalidade ....................................................................................................................................... 94
Texto 37 Teste de Fermat ...............................................................................................................................................95
Texto 38 Números de Carmichael ..................................................................................................................................97
Texto 39 Teste de Miller-Rabin .......................................................................................................................................99
Atividades ........................................................................................................................................................................102
AULA 10 TEOREMA DE EULER ..................................................................................................................................103
Texto 40 Euler ...............................................................................................................................................................103
Texto 41 A função  de Euler ....................................................................................................................................103
Texto 42 Teorema de Euler ..........................................................................................................................................108
Atividades ......................................................................................................................................................................112
AULA 11 TEOREMA CHINÊS DOS RESTOS .............................................................................................................113
Texto 43 Exemplo com duas equações .........................................................................................................................113
Texto 44 Exemplo com três equações ........................................................................................................................... 114
Texto 45 Teorema chinês dos restos ...........................................................................................................................117
Texto 46 Aplicações à criptografia: partilha de um segredo ..........................................................................................120
Texto 47 Partilha de um segredo com o teorema chinês dos restos .............................................................................122
Atividades ........................................................................................................................................................................125
AULA 12 RSA ............................................................................................................................................................... 126
Texto 48 A criptografia de chave pública .......................................................................................................................126
Texto 49 RSA .................................................................................................................................................................128
Texto 50 O GP/Pari ........................................................................................................................................................131
Texto 51 Considerações práticas: escolha dos primos e preenchimento de bits .........................................................132
Texto 52 Assinatura digital ............................................................................................................................................. 134
Texto 53 A segurança do RSA ......................................................................................................................................136
Texto 54 Os desafios RSA ............................................................................................................................................137
Atividade .........................................................................................................................................................................137
AULA 13 LOGARITMO DISCRETO ..............................................................................................................................138
Texto 55 Raízes primitivas módulo n ............................................................................................................................138
Texto 56 Grupos e subgrupos ......................................................................................................................................140
Texto 57 Logaritmos discretos .......................................................................................................................................143
Atividades .......................................................................................................................................................................147
AULA 14 APLICAÇÕES À CRIPTOGRAFIA ................................................................................................................148
Texto 58 Teste de Lucas ...............................................................................................................................................148
Texto 59 Esquema de troca de chaves de Diffie-Hellman ............................................................................................151
Texto 60 ElGamal ..........................................................................................................................................................153
Texto 61 Algoritmo de assinatura digital ........................................................................................................................155
Atividades .......................................................................................................................................................................159
AULA 15 CRIPTOGRAFIA COM O USO DE CURVAS ELÍPTICAS ............................................................................160
Texto 62 Curvas elípticas ..............................................................................................................................................160
Texto 63 Corpos finitos .................................................................................................................................................161
Texto 64 Grupo de uma curva elíptica ...........................................................................................................................163
Texto 65 Criptografia de curvas elípticas ......................................................................................................................166
Atividades ........................................................................................................................................................................170
COMPLEMENTE SEU ESTUDO ...................................................................................................................................171
SOLUÇÕES DAS ATIVIDADES .....................................................................................................................................172
REFERÊNCIAS ..............................................................................................................................................................179

Programa da disciplina
Ementa
Aritmética dos inteiros: números primos, algoritmo da divisão, mdc e mmc,
algoritmo de Euclides. Aritmética modular: congruência módulo, soma e produto de
classes, inversa de uma classe módulo n. Teoremas de Fermat, Euler e o teorema
chinês dos restos. Testes de primalidade: teste das divisões sucessivas, teste de
Fermat, teste de Rabin-Miller, números de Charmichael.
Criptografia de chave pública: princípios, o algoritmo RSA, assinatura digital.
O problema do logaritmo discreto, teste de Lucas, esquema de troca de chaves de
Diffie-Hellman, ElGamal e o algoritmo de assinatura digital. Criptografia com o uso
de curvas Elípticas: curvas elípticas, grupo de uma curva elíptica e aplicações.
Carga horária
60 horas
Objetivo
Apresentar a área da Matemática chamada Teoria dos Números, abordando
os resultados utilizados em criptografia.
Metodologia
O conteúdo programático será apresentado na forma de textos e exemplos,
com atividades a serem realizadas. Para complementar seu estudo, serão sugeridos
livros e websites.
Avaliação
Prova escrita ao final da disciplina e avaliação a distância (atividades online).
5
Plano de Aulas
Unidade 1 – Teoria dos Números
Conteúdo Onde encontrar
Aula 1 – Números Primos
Teoria dos Números
Divisores
Números perfeitos
Textos 1 a 5
Aula 2 – Algoritmo da Divisão
Axioma de Eudoxius
Algoritmo da divisão
Máximo divisor comum e mínimo múltiplo comum
Textos 6 a 11
Aula 3 – Algoritmo de Euclides
Cálculo do mdc e do mmc através da fatoração
Convergência do Algoritmo de Euclides
Textos 12 a 16
Aula 4 – Testes de Primalidade
Primeiro teste de primalidade
Teorema dos números primos
Textos 17 e 18
Aula 5 – Aritmética Modular
Relações
Congruência módulo n
Classes de equivalência
Classes de congruência
Textos 19 a 22
Aula 6 – Operações com classes de congruência
Definição de soma e de produto de classes
Tabelas de soma e de multiplicação
Divisibilidade e potências
Textos 23 a 26
Aula 7 – Divisão modular
Inversa de uma classe de congruência módulo n
MDC de dois inteiros como combinação linear
Textos 27 a 30
Aula 8 – Teorema de Fermat
Aplicação do teorema de Fermat
Equações diofantinas
Textos 31 a 35
Carga horária: 25 h
6
Unidade 2 – Criptografia de Chave Pública
Conteúdo Onde encontrar
Aula 9 – Teste de Primalidade de Fermat
Testes de primalidade
Teste de Fermat
Números de Carmichael
Teste de Miller-Rabin
Textos 36 a 39
Aula 10 – Teorema de Euler
Função  de Euler
Textos 40 a 42
Aula 11 – Teorema Chinês dos Restos
Exemplo com duas e três equações
Aplicações à criptografia
Partilha de um segredo com o teorema
Textos 43 a 47
Aula 12 – RSA
Criptografia de chave pública
GP/Pari
Assinatura digital
Segurança do RSA
Textos 48 a 54
Aula 13 – Logaritmo Discreto
Raízes primitivas módulo n
Grupos e subgrupos
Logaritmos discretos
Textos 55 a 57
Aula 14 – Aplicações à Criptografia
Teste de Lucas
Esquema de troca de chaves de Diffie-Hellman
ElGamal
Algoritmo de assinatura digital
Textos 58 a 61
Aula 15 – Criptografia com o uso de Curvas
Elípticas
Corpos finitos
Grupo de uma curva elíptica
Criptografia de curvas elípticas
Textos 62 a 65
Carga horária: 35 h
7
Unidade
Teoria dos Números
Caro aluno, seja bem-vindo à disciplina Números
primos e criptografia de chave pública.
Nesta primeira unidade, você vai estudar os
conceitos e resultados matemáticos que são
a base das aplicações em criptografia de
chave pública.
Bom estudo!
9
1
Aula 1 – Números Primos
Nesta primeira aula, você vai conhecer os números primos, que são a base para o
estudo dos inteiros.
A grande importância dos números primos está em que todo inteiro pode ser escrito
de maneira essencialmente única como produto de primos, como veremos a seguir.
Texto 1 - Teoria dos Números
A Teoria dos Números é a área da Matemática que estuda as propriedades dos números inteiros
e os problemas que aparecem naturalmente neste estudo. O termo “aritmética” também é utilizado
para se referir à Teoria dos Números.
Este campo de estudo da Matemática possui muitos problemas em aberto — problemas não
resolvidos — fáceis de serem compreendidos, mas de difícil solução. Ao longo desta unidade você
conhecerá alguns deles.
A Teoria dos Números se divide em seis ramos principais.
1. Teoria elementar dos números
É a parte que estuda os inteiros e suas propriedades sem utilizar técnicas derivadas de outros
campos da Matemática. Inclui também o estudo de divisibilidade, máximo divisor comum,
fatoração em números primos, algoritmo de Euclides e congruência.
2. Teoria analítica dos números
Este ramo emprega técnicas do cálculo e da análise para o estudo de problemas de inteiros.
Esta área inclui o famoso teorema dos números primos e a hipótese de Riemann.
3. Teoria algébrica dos números
Aqui o conceito de número é estendido para o de número algébrico e o conceito de inteiro para
o de inteiro algébrico. Números algébricos são raízes de polinômios com coeficiente racionais.
Muitas propriedades elementares dos inteiros não valem para os inteiros algébricos.
10
4. Teoria combinatória dos números
Estuda as propriedades de inteiros empregando técnicas da área da Matemática chamada
Combinatória. O principal fundador desta área é o matemático húngaro Paul Erdös (1913 –
1996).
5. Teoria geométrica dos números
Também chamada de geometria dos números, usa técnicas geométricas para o estudo de
números inteiros.
6. Teoria computacional dos números
Estuda algoritmos computacionais na Teoria dos Números.
Há dois grupos de algoritmos de grande importância em criptografia:
! testes de primalidade - são algoritmos que determinam se um dado inteiro é ou não
primo;
! algoritmos de fatoração de inteiros - determinam a fatoração em primos de um
dado inteiro.
11
Paul Erdös mostrou desde cedo aptidão para a Matemática. Com
quatro anos descobriu algumas propriedades dos números primos. Fez
numerosas e variadas contribuições e tinha fascínio em resolver
problemas, como os de análise combinatória, teoria dos grafos e teoria
dos números. Sempre queria resolvê-los de forma simples e elegante.
A Teoria dos Números tem, talvez como nenhuma outra área, a
propriedade de incorporar métodos de outros campos de estudo,
tornando-a um belo e complexo conjunto de conhecimentos e técnicas.
Texto 2 - Divisores
Agora vamos apresentar nosso primeiro tópico em Teoria dos Números: os divisores.
Sejam a e b inteiros.
Dizemos que a divide b quando existir um inteiro c tal que b =a c . Usamos a notação a∣b ,
para indicar que a divide b e escrevemos a ∤b quando a não divide b . Quando a∣b ,
dizemos também que b é múltiplo de a .
Exemplos:
6∣12
,
23∣115
, mas
4 ∤21
.
Algumas propriedades imediatas são:
1. n∣n
Significa que todo inteiro divide a si mesmo. Isto segue da definição. Observe que n =1⋅n .
2. 1∣n
Isto é, 1 divide qualquer inteiro. Segue da definição, observando que n =n⋅1 .
3. n∣0
Todo inteiro é divisor de 0. Basta observar que 0=n⋅0 .
Vamos examinar outras propriedades um pouco mais elaboradas.
Proposição 1: a∣b e b ∣a ⇒ ∣a ∣=∣b ∣
Demonstração
Como a∣b e b ∣a , então existem inteiros k
1
e k
2
, tais que a =k
1
⋅b e b =k
2
⋅a .
12
Substituindo uma expressão na outra, resulta que
a =k
1
⋅k
2
⋅a ⇒a =k
1
⋅k
2
a ⇒k
1
⋅k
2
=1
Como k
1
e k
2
são inteiros e k
1
⋅k
2
=1 , então k
1
=k
2
=1 ou k
1
=k
2
=1 .
De a =k
1
⋅b , concluímos que a =±b , ou seja, ∣a ∣=∣b ∣ .
Proposição 2. Sejam a , b e c inteiros. Se a∣b e b ∣c , então a∣c .
Demonstração.
Como a∣b e b ∣c , então existem inteiros k
1
e k
2
tais que
b =k
1
⋅a e c =k
2
⋅b
Substituindo o valor de b da primeira equação na segunda, resulta que
c =k
2
⋅b =k
2
⋅k
1
⋅a =k
2
⋅k
1
⋅a .
Portanto, c é múltiplo de a , isto é, a∣c .
Exemplo: 3∣15 e 15∣45 , logo 3∣45 .
Proposição 3. Sejam a , b e c inteiros. Se c ∣a e c ∣b , então c ∣ma nb  , para
quaisquer inteiros m e n .
Demonstração.
Como c ∣a e c ∣b , então existem inteiros k
1
e k
2
, tais que a =k
1
⋅c e b =k
2
⋅c .
13
Substituindo em ma nb , temos:
ma nb =m⋅k
1
⋅c n⋅k
2
⋅c =mk
1c
nk
2c
=mk
1
nk
2
c .
Portanto, c ∣ma nb  .
Exemplo: 7∣21 e 7∣14 , logo 7∣21m14n  para quaisquer inteiros m e n .
Chamaremos D n  ao conjunto de todos os divisores de n .
Exemplo: D 12 ={±1,±2, ±3,±4,±6, ±12 }
Observe que se d é divisor de n , então d também é divisor de n , pois, se d ∣n , então
existe inteiro k , tal que
n =k ⋅d ⇒ n =k ⋅d  ⇒ d ∣n.
Assim, os divisores de um inteiro vêm sempre em pares de inteiros simétricos.
Chamamos
D
+
n 
ao conjunto dos divisores positivos de n .
Exemplo: D
+
12 ={1, 2, 3, 4, 6, 12 } e D
+
6 ={1, 2, 3, 6 } .
Se d ∣n e d ≠n , então dizemos que d é divisor próprio de n .
Por exemplo, os divisores próprios positivos de 6 são os inteiros 1, 2e3.
Observe que 6 é a soma de seus divisores próprios positivos: 6=1 23 . Curioso, não? No
próximo texto voltaremos a essa questão.
Veja, a seguir, mais algumas propriedades sobre divisores.
Proposição 4. Sejam a e b inteiros. Então a∣b se, e somente se, D a ⊂D b  .
14
Demonstração
Suponha que a∣b . Para provar a inclusão D a ⊂D b  , basta mostrar que
x ∈D a ⇒x ∈D b  , isto é, todo elemento de D a  também é elemento de D b  .
Vamos lá! Se x ∈D a  , então x ∣a . Mas a∣b por hipótese. Logo,
x ∣a e a∣b ⇒ x ∣b ⇒ x ∈D b  .
Vamos supor agora que D a ⊂D b  . Como a ∈D a  (todo inteiro é divisor de si mesmo) e
D a ⊂D b  , então a ∈D b  , isto é, a∣b .
Provamos então que a∣b ⇔D a ⊂D  b  , isto é, a∣b é o mesmo que D a ⊂D b  ,
mostrando que a relação de divisibilidade entre dois inteiros a∣b  é equivalente à relação de
inclusão entre os conjuntos dos divisores destes inteiros D a ⊂D  b  .
Quando falarmos de máximo divisor comum (mdc) e mínimo múltiplo comum (mmc) de dois
inteiros, retornaremos a essa analogia entre os inteiros e o conjunto de seus divisores.
Texto 3 - Números Perfeitos
Você viu que o inteiro 6 tem a propriedade de ser a soma de seus divisores próprios positivos:
6=1 23 .
Como é chamado um inteiro com esta característica? Um inteiro que é a soma de seus divisores
próprios positivos é chamado de número perfeito.
Agora, pense em outros inteiros que são números perfeitos. O próximo na lista é o número 28.
Veja:
D
+
28 ={1, 2, 4, 7, 14, 28 }
e temos que 28 =12 4 714 .
Os quatro primeiros números perfeitos são 6, 28, 496 e 8128 . Estes quatro inteiros eram os
únicos números perfeitos que os antigos gregos conheciam.
15
Euclides descobriu que estes quatro números são gerados pela fórmula
2
n 1
2
n
1 
para valores de n =2, 3, 5 e 7 .
Então:
n =2  2
2 1
2
2
1  = 2 4 1 =2⋅3 =6
n =3  2
3 1
2
3
1  = 2
2
8 1 =4⋅7 =28
n =5  2
5 1
2
5
1  = 2
4
32 1 =16⋅31 =496
n =7  2
7 1
2
7
1  = 2
6
128 1 =64⋅127 =8128
Observe que nos quatro casos,
2
n
1 
é um inteiro primo. Euclides mostrou que
2
n 1
2
n
1 
é um número perfeito quando
2
n
1 
é primo.
Como os inteiros n =2, 3, 5 e 7 são exatamente os quatro primeiros números primos, os
gregos naturalmente imaginaram que o quinto número perfeito seria obtido com n =11 .
No entanto, o número
2
11
1
não é primo. De fato,
2
11
1=2047=23 ×89
. Logo,
2
11 1
2
11
1 
não é número perfeito.
Na verdade, o quinto número perfeito é o número
2
12
2
13
1 =33.550.336
, que é o inteiro
2
n 1
2
n
1 
, para n =13 .
No século XVIII, Euler mostrou que a fórmula
2
n 1
2
n
1 
fornece todos os números perfeitos
pares.
Como você viu, nem todo inteiro
2
n 1
2
n
1 
é número perfeito (por exemplo, não é perfeito
para n =11 ). Mas todo número perfeito par é da forma
2
n 1
2
n
1 
. Este inteiro é perfeito
exatamente quando
2
n
1
é primo.
16
Para saber quem foi Euclides de Alexandria, leia a seção
“Saiba mais” ao final desta aula.
Portanto, há uma associação entre números perfeitos e primos da forma
2
n
1
. Estes são
chamados primos de Mersenne, em homenagem ao monge Marin Mersenne (1588-1648).
Há uma busca mundial por primos grandes, em parte devido ao uso destes em criptografia. Os
maiores primos conhecidos são os primos de Mersenne. O 42° primo de Mersenne é o maior
primo conhecido atualmente, descoberto em 14 de fevereiro de 2005. Trata-se do número
2
25.964.951
1
, que é um primo com 7.816.230 algarismos.
Há muito ainda o que investigar nesta área de estudo. Por exemplo, não se sabe se há infinitos
primos de Mersenne. Mas vamos deixar este assunto para uma outra hora e voltar a falar de
números primos e fatoração única.
Texto 4 - Números Primos
Os números primos desempenham um papel fundamental no estudo dos inteiros e nas técnicas
de criptografia.
Um inteiro p ≠±1 é um número primo quando seus únicos divisores são ±1 e ±p.
Exemplo: p =2,3 ,5 ,7 ,11 ,13 ,17 ,19 ,23 e 29 são os 10 primeiros números primos positivos.
Observe que se p é primo, então p também é. Assim, são primos
p =2,3, 5, 7,11, 13, 17, 19, 23 e 29 .
Um número N ≠±1 que não é primo é chamado composto. Assim, 12 é um número composto.
Observe que ±1 não é primo nem composto.
17
O francês Marin Mersenne ficou conhecido por seu trabalho na Teoria
dos Números e por se corresponder com outros matemáticos,
possibilitando assim a comunicação do conhecimento pela Europa em
uma época que os jornais científicos não existiam.
Os números primos sempre estiveram no centro da preocupação dos matemáticos que estudam
os inteiros. Como você verá a seguir, todo inteiro fatora-se como produto de primos. Isto faz com
que os primos sejam uma espécie de bloco com os quais são construídos os inteiros, assim como
todas as moléculas são feitas de átomos.
Veja um exemplo.
O inteiro 60 pode ser escrito como
60 =2
2
×3 ×5.
Esta é a fatoração de 60 em produto de
primos. Dizemos que 2, 3 e 5 são os fatores primos de 60.
Podemos, por exemplo, escrever 60 também como:
60 =3×5 ×2
2
60 =5×3 ×2
2
60 =2×3 ×2×5.
O que todas estas fatorações têm em comum? É fácil ver que todas usam os mesmos primos,
apenas mudando a ordem. Em todas, o primo 2 aparece duas vezes, o primo 3 aparece uma vez
e o primo 5 aparece uma vez.
É neste sentido que dizemos que a fatoração é única: os mesmos primos aparecem o mesmo
número de vezes, apenas a ordem difere duas fatorações de um inteiro.
O fato de que todo inteiro pode ser escrito de maneira única com produto de fatores primos é um
teorema muito importante, chamado Teorema da Fatoração Única ou Teorema Fundamental da
Aritmética.
Teorema da Fatoração Única
Dado um inteiro positivo n ≥2 , podemos escrevê-lo de modo único na forma:
n =p
1
e
1
× ⋯ × p
k
e
k
,
18
Vale destacar que a fatoração de inteiros em produtos de primos
é, essencialmente, única. Lembre-se que fatorar um inteiro N
é escrevê-lo como produto de primos.
Mas o que significa dizer que a fatoração é única?
onde 1p
1
p
2
⋯p
k
são primos distintos e e
1,
⋯, e
k
são inteiros positivos.
Os primos p
1,
⋯, p
k
são chamados fatores primos de n, enquanto os expoentes e
1,
⋯, e
k
são
chamados multiplicidades dos primos p
1,
⋯, p
k
, respectivamente, na fatoração de n.
Exemplo: No caso de
72 =2
3
×3
2.
, o primo 2 tem multiplicidade 3 na fatoração de 72, e o primo
3 tem multiplicidade 2.
Texto 5 – A infinitude dos Números Primos
Você estudou que os primos são os blocos fundamentais, os átomos, que constituem os inteiros.
Uma primeira questão que se coloca naturalmente é a seguinte:
Euclides respondeu a esta pergunta há 2.300 anos. A resposta é que existe um número infinito de
primos. Esta resposta aparece como a Proposição 20 do livro IX dos Elementos de Euclides.
O método utilizado na demonstração é o de redução ao absurdo ou demonstração por
contradição. Este tipo de prova é feita assumindo-se como verdade o oposto do que queremos
provar e chegando-se a uma contradição. O fato de obter uma sentença falsa mostra que a
proposição não pode ser negada, sendo por isso verdadeira.
Proposição 5. Existe um número infinito de números primos.
Demonstração
Vamos supor o contrário, isto é, que haja apenas um número finito de inteiros primos. Seja
p
1
p
2
⋯p
k
a lista de todos os inteiros primos. Seja agora
p
#
o produto de todos eles:
p
#
=p
1
. p
2
. ⋯. p
k.
19
Existe um número finito ou infinito de primos?
Considere
N =p
#
1.
Nenhum dos primos p
1,
p
2,
⋯, p
k
pode ser divisor de N, pois, para
todo primo p
i
, p
i
∣p
#
. Se p
i
∣N , então p
i
∣ N p
#
=1, o que não pode acontecer, pois
p
i
1.
Como nenhum p
i
pode dividir N , então N não tem nenhum divisor primo. Portanto N
deve ser um inteiro primo. Mas N p
k
é maior que todos os primos da lista p
1,
⋯, p
k
, o que é
uma contradição, pelo fato de que esta é a lista de todos os primos.
Nesta aula você identificou algumas propriedades fundamentais dos números primos e
aprendeu que um inteiro é chamado número perfeito quando é a soma de seus
divisores próprios positivos. Na próxima aula, você estudará o algoritmo de divisão.
20
Saiba mais: Euclides de Alexandria
Euclides foi um matemático grego que viveu entre 325 e 265 a.C., tendo
lecionado em Alexandria, no Egito. Sua obra mais famosa é a coleção de 13
livros chamados Elementos. Nela, Euclides apresenta uma coleção de
definições, postulados (axiomas) e proposições (teoremas) e as provas destes
teoremas, abordando os campos da Geometria e da Teoria dos Números.
Essa obra pode ser considerada o livro-texto mais bem sucedido da história da
humanidade: foi um dos primeiros livros a serem impressos e é superada
apenas pela Bíblia em número de edições – mais de mil já foram feitas. Até o
início do século XX, era utilizado como livro-texto em muitas escolas.
Uma das grandes virtudes dos “Elementos” é apresentar de forma lógica e
estruturada boa parte do conhecimento matemático conhecido à época de
Euclides. Embora a maior parte dos resultados não tenha sido descoberta por
ele, muitas das demonstrações foram feitas por Euclides.
A obra de Euclides teve um papel importante, ao legar à posteridade o
conhecimento matemático grego. A estrutura lógica de seu trabalho influenciou
o desenvolvimento de toda a Matemática.
Atividades
1) Determine D 10 e D 20  . Verifique que D 10 ⊂D 20 .
2) Primos gêmeos são pares de primos cuja diferença é dois. Encontre os cinco primeiros pares
de primos gêmeos.
3) Existem primos trigêmeos, isto é, ternos de primos do tipo p , p 2 e p 4 ?
4) Mostre que todos os números pares entre 4 e 40 podem ser escritos como soma de primos.
21
Aula 2 – Algoritmo da Divisão
Nesta aula, você vai conhecer o chamado algoritmo da divisão, que é, na verdade,
um teorema, e não propriamente um algoritmo.
Texto 6 – Axioma de Eudoxius
Inicialmente, oberve que dados dois inteiros a e b , se a não é múltiplo de b , então
situa-se entre dois múltiplos consecutivos de b.
Exemplo: a =61 e b =5 . O inteiro 61 situa-se entre 60 =12×5 e 65 =13×5, que
são múltiplos consecutivos de 5.
Este princípio, muitas vezes chamado erradamente de Princípio de Arquimedes, aparece nos
Elementos de Euclides. Podemos escrevê-lo da seguinte forma:
Dados dois inteiros a e b ≠0, existe um inteiro q tal que
para b 0, q ⋅b ≤a q 1 b
para b 0, q ⋅b ≤a q 1 b.
Observe que a possibilidade de a ser múltiplo de b está coberta pelo menor ou igual em
q ⋅b ≤a .
Exemplos:
- Se a =35 e b =7 , então q =5 : 5×7 =35.
- Se a =42 e b =13 , então q =3 : 3×13 42 4×13.
- Se a =42 e b =13 , então q =3 : 3 ×13 42 4 ×13  .
22
Texto 7 – O Algoritmo da Divisão
O teorema da divisão define precisamente o quociente e o resto de dois inteiros; mostra que eles
existem e são únicos.
Teorema: Dados inteiros a e b , b 0, existe um único par de inteiros q e r tais que
a =q ⋅b r , onde 0≤r b.
O inteiro q é chamado quociente e r é o resto da divisão de a por b . Observe que se
b é divisor de a , então o resto é 0: a =q ⋅b.
Demonstração
Pelo teorema de Eudoxius, como b 0 , existe q , tal que q ⋅b ≤a q 1 b .
Subtraindo q ⋅b temos:
q ⋅b q ⋅b ≤ a q ⋅b  q 1  b q ⋅b
0 ≤a q ⋅b b
Se definirmos r =a q ⋅b , então:
0 ≤ r  b e r = a q ⋅b ⇒ a = q ⋅b r .
Assim foi demonstrada a existência do quociente e do resto. Veja agora a demonstração da
unicidade.
O truque usual para demonstrar a unicidade é supor que há dois e mostrar que são iguais. No
caso em questão, vamos supor que há outro par q
1,
r
1
 tal que:
a = q
1
⋅b r
1
e 0 ≤ r
1
 b
Subtraindo a equação anterior de a =q ⋅b r , temos:
a =q ⋅b r
a =q
1
⋅b r
1
0=q q
1
b r r
1

Portanto, b q q
1
=r r
1
. Logo, b ∣r r
1
 , isto é, r r
1
 é múltiplo de b .
23
Mas, 0 ≤r , r
1
b e a ≤ r , r
1
 b .
Assim, o maior valor possível de r r
1
 é b 1 (quando r =b 1 e r
1
=0 ) e o menor
valor possível de r r
1
 é b 1  (quando r =0 e r
1
=b 1 ). Então, temos que
r r
1
é múltiplo de b e
b 1  ≤ r r
1
≤ b 1 .
Mas o único múltiplo de b neste intervalo é o 0, logo r r
1
=0 ⇒ r =r
1
.
Ao substituir em b ⋅q
1
q =0 , t e mos q
1
q =0 ⇒q
1
=q .
No enunciado do teorema, colocamos a restrição b 0 . No entanto, o teorema continua válido
se b 0 . Neste caso, definimos quociente e resto como a =q ⋅b r , com 0≤r ∣b ∣ .
Exemplos:
- a =17 e b =3 ⇒q =5 e r =2 17 =5×3 2 
- a =15 e b =4 ⇒q =3 e r =3 15 =3 ×4 3 
Alguns argumentos presentes na demonstração do teorema são comuns em Matemática. Por
exemplo, quando queremos provar a unicidade, supomos que existam dois e provamos que são
iguais.
Outro ponto chave, que aparece em outras demonstrações, é o argumento de que, se
b ∣t e b t b , e nt ã o t =0.
A demonstração anterior usa este argumento para t =r r
1
.
24
Estas demonstrações parecem um pouco difíceis no início, porém,
caso sinta necessidade, leia com atenção duas ou três vezes para
que possa entendê-las. Ao compreender os argumentos, você poderá
utilizá-los em outros problemas, com facilidade.
Texto 8 - O máximo divisor comum (mdc)
O conceito de máximo divisor comum de dois inteiros é simples e o algoritmo para calculá-lo tem
grande importância em várias aplicações.
A definição de mdc é:
Exemplos:
- mdc 15,25 =5
- mdc 300,140 =20
- mdc 20,35 =5
- mdc 8, 28 =4
Observe que o mdc de dois inteiros é sempre positivo. É fácil ver por que, se d é divisor comum
de a e b , d também é. Assim, os divisores comuns vêm em pares de simétricos ±d. O
maior divisor comum será o maior dos divisores comuns positivos.
Exemplo:
- mdc 12,18=mdc 12,18=mdc 12, 18 =mdc 12, 18 =6.
Outra maneira de definir mdc a , b  é através dos conjuntos dos divisores D a e D b .
D a =divis or e s de a e D b =divis or e s de b.
Logo, D a ∩D b =divis or e s comuns de a e b . Como mdc a , b  é o maior divisor
comum, então:
mdc a , b =ma x D a ∩D b 
Dois inteiros a e b são ditos relativamente primos ou primos entre si se mdc a , b =1.
25
O máximo divisor comum de dois inteiros não-nulos a e b é o
maior inteiro que divide a e b . É denotado por mdc a , b .
Exemplo:
- 20 e 27 são relativamente primos.
- Se p é primo, a é inteiro e p ∤a , então p e a são relativamente primos.
Isso acontece porque os únicos divisores positivos de p são p e 1. Como p ∤a , então p
e a não têm divisores comuns além de ±1, isto é, mdc a , p =1. Ou seja, p e a são
relativamente primos.
Uma propriedade muito importante do mdc a , b  é que ele sempre pode ser escrito como
combinação linear de a e b. Um inteiro n é combinação linear de a e b se existem
inteiros k
1
e k
2
tais que n =k
1
⋅a k
2
⋅b . É exatamente o que acontece com o mdc.
Teorema: Sejam a e b inteiros não-nulos e seja d =mdc a , b . Então, existem inteiros
k
1
e k
2
tais que
d =k
1
a k
2
b .
Exemplos:
- mdc(60,24)=12. O inteiro 12 pode ser escrito como 12 =1×60 2×24 .
- mdc(50,30) = 10. O inteiro 10 pode ser escrito como 10 =2×50 3×30 .
Observe que até agora não falamos sobre como calcular efetivamente o mdc a , b , nem
como encontrar os inteiros k
1
e k
2
, tais que mdc a , b =k
1
⋅a k
2
⋅b . Falaremos sobre
isso em breve.
Para terminar esta parte, você vai conhecer agora uma propriedade muito importante do
mdc a , b  .
O mdc a , b  é múltiplo de todos os divisores comuns de a e b .
Exemplos:
D 30 ={±1, ±2, ±3,±5, ±6,±10, ±15, ±30 }
26
D 24 ={±1, ±2, ±3,4,±6, ±8,±12, ±24 }
D 30 ∩D 24 ={±1, ±2,±3, ±6 }
Observe que mdc 24,30=6 . E 6 é múltiplo de todos os divisores comuns: os elementos de
D 30 ∩D 24 .
Vejamos a demonstração deste resultado.
Teorema: Sejam a e b inteiros não-nulos. Então, d =mdc a , b  se, e somente se,
(i) d ∣a e d ∣b.
(ii) Se d ' ∣a e d ' ∣b e nt ã o d ' ∣d .
Em outras palavras, o mdc a , b  se caracteriza por ser um divisor comum e por ser múltiplo
de todos os divisores comuns.
Demonstração
Seja d =mdc a , b  , então d ∣a e d ∣b , pois d é divisor comum, o que prova o item (i).
Seja d ' um inteiro tal que d ' ∣a e d ' ∣b . Sabemos que d é combinação linear de a e
b , isto é, existem inteiros k
1
e k
2
tais que d =k
1
⋅a k
2
⋅b.
Como d ' ∣a e d ' ∣b , então d ' ∣k
1
⋅a k
2
⋅b  , logo d ' ∣d , o que prova o item (ii).
Por outro lado, se um inteiro positivo d atende aos itens (i) e (ii), então é:
- divisor comum pelo item (i);
- o maior divisor comum, pois, pelo item (ii), se d ' é outro divisor comum, então
d ' ∣d ⇒ d ' ≤d .
Portanto, se um inteiro positivo d atende aos itens (i) e (ii) então d=mdca , b . Veja a
seguir vários resultados referentes ao mdc de dois inteiros. Estes resultados e os exemplos que
aparecem em seguida são importantes para que você compreenda como funciona o algoritmo da
divisão para encontrar o máximo divisor comum de dois inteiros.
27
Proposição: Para todo inteiro t, mdc t ⋅a , t ⋅b  = t mdc a , b  .
Esta proposição, por brevidade, vai ficar sem demonstração. Ela pode ser encontrada em
Introdução à Teoria dos Números, de José Plínio de Oliveira Santos, 1998.
Exemplo: mdc 150, 35 =mdc 5⋅30, 5⋅7 =5⋅mdc 30,7 =5⋅1=5.
Uma conseqüência da proposição anterior é que, se a e b são divisíveis por um inteiro c ,
então
a
c
e
b
c
são inteiros e mdc a , b  = mdc c ⋅
a
c
, c ⋅
b
c
 = c mdc 
a
c
,
b
c
.
Ao dividir a e b por d =mdc a , b  temos:
d =mdc a , b =mdc d ⋅
a
d
, d ⋅
b
d
 = d mdc 
a
d
,
b
d
,
mas d =d ⋅mdc 
a
d
,
b
d
 ⇒ mdc 
a
d
,
b
d
=1.
Concluímos que:
Proposição. Se d =mdc a , b  , então os inteiros
a
d
e
b
d
são primos entre si.
Exemplo: a =35 e b =75 . Temos que mdc 35,75=5.
Os inteiros
35
5
=7 e
75
5
=15 são primos entre si.
Outra proposição muito utilizada é a seguinte:
Proposição. Se a∣bc e mdc a , b =1 , então a∣c .
Demonstração
28
Como mdc a , b =1 , então 1 é combinação linear de a e b , isto é, existem k
1
e k
2
,
tais que 1=k
1
a k
2
b . Ao multiplicar esta equação por c , resulta em
c =k
1
a c k
2
bc  .
Mas a∣bc (por hipótese) e a∣a c , logo a ∣ k
1
a c k
2
bc =c.
Exemplo. Se t é inteiro qualquer e 7∣15⋅t , então 7∣t , pois mdc 7,15 =1.
Texto 9 – O mínimo múltiplo comum (mmc)
O mínimo múltiplo comum de dois inteiros a e b é o menor inteiro positivo que é múltiplo
comum de a e b . É representado por mmc a , b .
Exemplos:
- mmc 2,3 =6
- mmc 20,25 =100
- mmc 1, n =n , para todo inteiro n .
- mmc 3, 5 =15.
Claramente, se a∣b , então mdc a , b =a e mmc a , b =b .
Exemplo: 15 divide 75, logo mdc 15,75=15 e mmc 15,75 =75 .
Veremos na próxima aula que o mmc de dois inteiros está diretamente relacionado ao mdc, por
meio de uma fórmula simples.
Texto 10 – O mdc e mmc de vários inteiros
Os conceitos de mdc e mmc de dois inteiros podem ser facilmente generalizados para mais de
dois inteiros, da seguinte forma:
29
Para dados inteiros não-nulos a
1,
a
2,
⋯, a
t
, definimos mdc a
1,
a
2,
⋯, a
t
 como o maior
divisor comum de a
1,
a
2,
⋯, a
t
, e mmc a
1,
a
2,
⋯, a
t
 como o menor múltiplo comum de
a
1,
a
2,
⋯, a
t
.
Exemplos:
- mdc 20,30 ,50 =10
- mmc 20,30 ,50 =300
Assim, mostramos que:
mdc a , b , c =mdc mdc a , b  , c  e mmc a , b , c =mmc mmc a , b  , c  .
Exemplos:
- mdc 20,30 ,50 =mdc mdc 20,30 ,50 =mdc 10,50 =10.
- mmc 20,30 ,50 =mmc mmc 20,30 ,50 =mmc 60,50 =300.
Texto 11 – Como calcular o máximo divisor comum
Agora que você conheceu as definições do mdc e do mmc de dois ou mais inteiros positivos, veja
como calculá-los.
Uma maneira eficiente de calcular o mdc é utilizar o algoritmo de Euclides. Estudaremos o
algoritmo de Euclides na próxima aula. Como o mmc está relacionado ao mdc por uma fórmula
simples, podemos calcular o mmc de dois inteiros calculando primeiro o mdc destes inteiros.
No endereço http://www.maths.hscripts.com/hcf.php, há uma calculadora de mdc e mmc online.
Em inglês, mdc é chamado GCD (Greates Commom Divisor) ou HCF (Highest Commom Factor)
e mmc é chamado LCD (Least Commom Multiple).
Na calculadora online existe um primeiro espaço onde se coloca o número de inteiros para os
quais queremos calcular o mdc e o mmc. Em seguida, aparecem os espaços onde devem ser
digitados estes números e, após apertar o botão “go”, aparecem os resultados.
30
A imagem a seguir trata de um exemplo obtido na calculadora online.
Nesta aula, você estudou o teorema da divisão, que define precisamente quociente
e resto, e mostra a unicidade destes. Estudou também o máximo divisor comum
(mdc) e mínimo múltiplo comum (mmc) de dois ou mais inteiros e algumas de suas
propriedades.
Os próximos passos serão estudar o algoritmo de Euclides para o cálculo do mdc e
ver a relação entre o mdc e o mmc de dois inteiros. Faremos esses dois avanços
na próxima aula.
Atividades
1) Encontre o quociente e o resto dos seguintes pares de inteiros:
a) a = 35 e b = 12
b) a = -30 e b = 18
c) a = 315 e b = 250
2) Calcule o mdc e o mmc dos pares de inteiros da questão anterior.
3) Na próxima aula, vamos mostrar que, para todo par de inteiros não-nulos, a e b valem
mdc a , b ⋅mmc a , b =a⋅b. Verifique essa fórmula com os itens da questão 1.
4) Na próxima aula, vamos mostrar também que, para todo par de inteiros não-nulos a e b, se q e
r são o quociente e o resto da divisão de a por b, então vale mdc a , b =mdc q , r  .
Verifique essa fórmula com os itens da questão 1.
31
Aula 3 – Algoritmo de Euclides
O algoritmo de Euclides é utilizado para determinar o máximo divisor comum (mdc)
de dois inteiros. É, certamente, um dos mais antigos algoritmos matemáticos
conhecidos. Surge, por volta de 300 a.C., na coleção de livros Elementos, de
Euclides. Há, no entanto, indicações de sua existência muito antes desta data.
Este algoritmo permite determinar o mdc de dois inteiros, sem que seja necessário
fatorá-los, sendo este, em geral, um problema mais complexo.
Texto 12 – Dois resultados preliminares
Para demonstrar o algoritmo são necessários dois resultados preliminares. Veja a seguir.
Proposição: Dados dois inteiros não-nulos a e b , para qualquer inteiro k vale que
mdc ¦a , b )=mdc ¦a , b +ka ) .
Demonstração
Os pares ¦a , b ) e ¦a , b +ka ) têm os mesmos divisores comuns, pois, por um lado, se
d ∣a e d ∣b , então d ∣b +ka ; por outro lado, se d ∣a e d ∣b +ka , então
d ∣b +ka -ka ⇒ d ∣b .
Como os pares ¦a , b ) e ¦a , b +ka ) têm os mesmos divisores comuns, certamente vão ter o
mesmo máximo divisor comum, isto é, mdc ¦a , b )=mdc ¦a , b +ka ) .
Exemplo: mdc ¦5,5 t +1 )=mdc ¦5,1 )=1, para todo t inteiro.
Uma conseqüência direta da proposição anterior é que
Proposição: Se a e b são inteiros e a =qb +r , sendo q e r inteiros, então
mdc ¦a , b )=mdc ¦b , r ).
Demonstração
Se a =qb +r , então r =a -qb. Portanto
32
mdc ¦a , b )=mdc ¦b , a )=mdc ¦b , a -qb )=mdc ¦b , r ).
Essa última proposição é a chave para o algoritmo de Euclides. Perceba que, para calcular o mdc
de dois inteiros a >b , basta calcular o mdc dos inteiros b e r , em que r é o resto da
divisão de a e b . Qual é a vantagem? Simples, os inteiros são menores. Veja um exemplo:
Seja a =1725 e b =315. A divisão de a por b é 1725 =5⋅315 +150.
Então,
mdc ¦1725,315 )=mdc ¦315,150 ).
O segundo mdc é facilmente calculado, pois os números são menores. Aliás, podemos aplicar o
mesmo processo no segundo mdc.
315 =2⋅150 +15 ⇒ mdc ¦315,150 )=mdc ¦150,15 ).
Como 15∣150 , então mdc ¦150,15 )=15. Portanto, mdc ¦1725,315)=15 .
Texto 13 – O Algoritmo de Euclides
Vamos, agora, descrever o algoritmo de um modo mais formal. Sejam a e b dois números
inteiros positivos. Podemos assumir que a ≥b . Caso contrário, invertemos a ordem dos
números.
Se a =b , teremos d =mdc ¦a , b )=a =b.
Vamos considerar a >b . Pelo Teorema da Divisão de Euclides, existem números q
1
e r
1
tais que:
a =q
1
⋅b +r
1,
onde 0 ≤r
1
b.
Se r
1
=0 , então a =q
1
⋅b e b é um dos divisores positivos de a . Nesse caso,
d =mdc ¦a , b )=b.
33
Se r
1
≠0, temos 0r
1
b e a =q
1
⋅b +r
1
. Nesse caso,
d =mdc ¦a , b )=mdc ¦b , r
1
).
Seguimos para um novo passo do algoritmo, agora com os inteiros b e r
1
. Sejam q
2
e
r
2
o quociente e o resto da divisão de b por r
1
, respectivamente.
b =q
2
⋅r
1
+r
2,
em que 0≤r
2
r
1
.
Se r
2
=0 , temos b =q
2
⋅r
1
e, nesse caso,
mdc ¦b , r
1
)=r
1
=mdc ¦a , b ) .
Paramos o nosso algoritmo nesse estágio.
Se r
2
≠0 , temos 0r
2
r
1
e b =q
2
⋅r
1
+r
2
. Nesse caso,
d =mdc ¦a , b )=mdc ¦b , r
1
)=mdc ¦r
1,
r
2
).
Como a seqüência dos restos satisfaz às condições
b >r
1
>r
2
>⋯>r
k
>⋯≥0,
partindo de um b fixado, existirá um primeiro índice k tal que r
k
=0. Nessa etapa, paramos o
algoritmo e temos que:
d =mdc ¦a , b )=mdc ¦b , r
1
)=⋯=mdc ¦r
k -2
, r
k -1
)=r
k -1
.
Exemplo:
Vamos aplicar o algoritmo de Euclides para determinar
mdc ¦245,168 ).
245 = 1×168 +77
168 = 2×77 +14
77 = 5 ×14 +7
14 = 2 ×7+0
34
Então,
mdc ¦245,168 )=mdc ¦168,77 )=mdc ¦77,14 )=mdc ¦14,7 )=7, pois 7∣14.
É comum esse processo ser representado pelo esquema a seguir:
1 2 5 2
245 168 77 14 7
77 14 7 0
Texto 14 – Cálculo do mdc e do mmc através da fatoração
Uma outra maneira de calcular o mdc e mmc de dois inteiros a e b é utilizar sua fatoração.
Sejam:
a =p
1
o
1
⋅p
2
o
2
⋅.⋅p
k
o
k
e b =p
1
ß
1
⋅p
2
ß
2
⋅.⋅p
k
ß
k
em que escrevemos a e b com todos os primos envolvidos em a e b , usando
expoentes nulos, caso seja necessário.
Se um primo p
i
divide a , mas não divide b , podemos colocar p
i
na fatoração de b ,
mas com expoente 0, pois p
i
0
=1, o que não altera a fatoração.
Exemplo: Sejam a =12 e b =21 . Temos que
a =2
2
⋅3
e b =3⋅7 . Ao escrever essas
fatorações com os mesmos primos, obtemos:
a =2
2
⋅3
1
⋅7
0
e b =2
0
⋅3
1
⋅7
1
.
Ao colocar os inteiros a e b com os mesmo fatores primos p
i
, temos:
mdc ¦a , b )=p
1
y
1
⋅p
2
y
2
⋅.⋅p
k
y
k
, onde y
i
=min ¦o
i
, ß
i
).
Isto é, o expoente de um primo p
i
na fatoração de mdc ¦a , b ) é o mínimo entre os expoentes
de p
i
nas fatorações de a e b .
35
Como y
i
=min ¦o
i
, ß
i
) , então y
i
≤o
i
e y
i
≤ß
i
, para todo i , 1≤i ≤k.
Assim, p
i
y
i
∣ p
i
o
i
e p
i
y
i
∣ p
i
ß
i
.
Logo,
d =p
1
y
1
⋅p
2
y
2
⋅.⋅p
k
y
k
∣ p
1
o
1
⋅p
2
o
2
⋅.⋅p
k
o
k
=a e d =p
1
y
1
⋅p
2
y
2
⋅.⋅p
k
y
k
∣ p
1
ß
1
⋅p
2
ß
2
⋅.⋅p
k
ß
k
=b ,
ou seja, d ∣a e d ∣b .
Se d ' é outro divisor comum de a e b , e se p
i
aparece com expoente c
i
na fatoração de
d ' , então,
p
i
c
i
∣ p
i
o
i
e p
i
c
i
∣ p
i
ß
i
⇒ c
i
≤o
i
e c
i
≤ß
i
⇒ c
i
≤ min ¦o
i
, ß
i
)=y
i
⇒p
i
c
i
∣ p
i
y
i
.
Lembrando que y
i
é o expoente de p
i
na fatoração de d , segue-se que d ' ∣ d. Portanto
d é divisor comum e todo divisor comum d ' divide d , o que prova que d =mdc ¦a , b ).
Ao utilizar um raciocínio análogo ao mencionado anteriormente, pode-se deduzir a fatoração do
mínimo múltiplo comum de dois inteiros a e b .
Se a =p
1
o
1
⋅p
2
o
2
⋅.⋅p
k
o
k
e b =p
1
ß
1
⋅p
2
ß
2
⋅.⋅p
k
ß
k
, então,
mmc ¦a , b )=p
1
6
1
⋅p
2
6
2
⋅.⋅p
k
6
k
, em que 6
i
=ma x ¦o
i
, ß
i
).
O expoente de p
i
na fatoração de mmc ¦a , b ) é o máximo dos expoentes de p
i
na
fatoração de a e b .
36
Pode parecer mais fácil obter o máximo divisor comum de dois
inteiros utilizando a fatoração. O grande problema é fatorá-los.
Nas aplicações interessantes, lidamos com inteiros muito
grandes. Nesse caso, fatorar é um problema mais complexo
que usar o algoritmo de Euclides para obter o mdc.
Exemplo. Seja a =84 e b =18. Então
a =2
2
⋅3⋅7
e
b =2⋅3
2
.
Logo,
mdc¦84,8)=2
1
. 3
1
=6
e mmc ¦84,18 )=2
2
⋅3
2
⋅7 =252.
No entanto o cálculo do mmc ¦a , b ) não é prático, se os inteiros a e b forem grandes,
dada a dificuldade de fatorá-los. Para o cálculo do mmc ¦a , b ) , não há um algoritmo de
Euclides. O que existe é uma relação direta com o mdc ¦a , b ), permitindo o cálculo de um a
partir do outro. É o que você vai estudar no texto a seguir.
Texto 15 – Relação entre mdc ¦a , b ) e mmc ¦a , b )
Para ver a relação entre o mdc ¦a , b ) e o mmc ¦a , b ) , perceba inicialmente que, para
quaisquer inteiros x e y ,
ma x ¦x , y )+min ¦x , y )=x +y .
Por exemplo, se x ≤y (o caso x ≥y é análogo), então
ma x ¦x , y )=y e min ¦x , y )=x ⇒ ma x ¦ x , y )+min ¦x , y )=x +y.
Sejam agora
a
e
b
inteiros e a =p
1
o
1
⋅p
2
o
2
⋅.⋅p
k
o
k
e
b =p
1
ß
1
⋅p
2
ß
2
⋅.⋅p
k
ß
k
.
Você viu que:
mdc ¦a , b )=p
1
y
1
⋅p
2
y
2
⋅.⋅p
k
y
k
, onde y
i
=min ¦o
i
, ß
i
) e
mmc ¦a , b )=p
1
6
1
⋅p
2
6
2
⋅.⋅p
k
6
k
,
onde
6
i
=ma x ¦o
i
, ß
i
)
.
Assim,
mdc ¦a , b )⋅mmc ¦a , b )=¦ p
1
y
1
⋅p
2
y
2
⋅.⋅p
k
y
k
)⋅¦ p
1
6
1
⋅p
2
6
2
⋅.⋅p
k
6
k
)=p
1
y
1
+6
1
⋅p
2
y
2
+6
2
⋅.⋅p
k
y
k
+6
k
,
em que são agrupadas as potências de mesma base, somando os expoentes.
37
Mas, para todo i , y
i
+6
i
=min ¦o
i
, ß
i
)+ma x ¦o
i
, ß
i
)=o
i

i
,
portanto,
p
1
y
1
+6
1
⋅p
2
y
2
+6
2
⋅.⋅p
k
y
k
+6
k
=p
1
o
1

1
⋅p
2
o
2

2
⋅.⋅p
k
o
k

k
=¦ p
1
o
1
⋅p
2
o
2
⋅.⋅p
k
o
k
)⋅¦ p
1
ß
1
⋅p
2
ß
2
⋅.⋅p
k
ß
k
)=a⋅b ,
ou seja,
mdc ¦a , b )⋅mmc ¦a , b )=a⋅b.
Exemplo:
a =84 =2
2
⋅3⋅7 e b =18 =2⋅3
2.
.
Temos mdc ¦84,18 )=2⋅3=6 e
mmc ¦84,18 )=2
2
⋅3
2
⋅7 =252.
Então:
mdc ¦84,18 )⋅mmc ¦84,18 )=6⋅252 =1512 =84⋅18 =a⋅b.
Texto 16 – Convergência do Algoritmo de Euclides
Veremos agora uma abordagem mais computacional do Algoritmo de Euclides.
Para calcular o mdc de dois inteiros positivos a e b , podem-se listar todos os divisores
positivos comuns de a e b e determinar o máximo destes divisores.
Um algoritmo desse tipo pode ser escrito da seguinte forma:
Entrada: inteiros positivos a e b .
Saída: mdc ¦a , b ) .
• Para todo inteiro k entre 1 e o mínimo de a e b , teste se k ∣a e k ∣b . Em
caso afirmativo, inclua k em um conjunto D.
• Retorne o máximo do conjunto D.
Este é um algoritmo que sempre funciona, pois retorna o mdc de dois inteiros a e b . No
entanto é extremamente lento. Ainda que possa ser melhorado de diversas maneiras, esse
algoritmo não é prático para inteiros grandes, uma vez que são necessárias várias divisões.
38
O Algoritmo de Euclides pode ser escrito do seguinte modo:
Entrada: inteiros positivos a e b .
Saída: mdc ¦a , b ) .
• Seja r o resto da divisão de a por b .
• Se r =0 , então o resultado é b e paramos.
• Se r ≠0 , então calculamos mdc ¦b , r ) e retornamos esse valor como resposta.
Este algoritmo é definido por recorrência, isto é, o algoritmo cita ele mesmo várias vezes, a fim de
obter o resultado.
Essa é uma pergunta muito importante quando consideramos aplicações computacionais práticas
que utilizam o Algoritmo de Euclides.
Para respondermos a essa pergunta, precisamos da seguinte proposição:
Proposição. Sejam a e b inteiros positivos, com a ≥b , e seja r o resto da divisão de
a e b . Então r ≤a / 2 .
Demonstração
Como 0≤r b , se b ≤a /2 , então r ≤a / 2.
Se b >a /2 , o quociente da divisão de a por b é 1, logo:
a =b ⋅1+r ⇒ r =a -b.
39
O Algoritmo de Euclides tem duas vantagens: é rápido e fácil de
ser implementado computacionalmente.
Mais quão rápido converge o Algoritmo de Euclides? Por exemplo, ao
iniciar com inteiros a e b de 1000 dígitos, quantos passos, no máximo,
seriam necessários para chegarmos ao final do algoritmo?
Mas b >a /2 ⇒ -b -a /2 ⇒ a -b a -a / 2=a / 2 . Portanto r a / 2 .
Com essa proposição se determina o número máximo de passos necessários para que o
algoritmo de Euclides termine.
No algoritmo de Euclides temos
mdc ¦a , b )=mdc ¦b , r )=mdc ¦r , r
1
)=mdc ¦r
1,
r
2
)=mdc ¦r
2,
r
3
)=⋯
Observe que a cada dois passos trocamos os primeiros elementos de um par pelo resto da
divisão dos dois elementos do par.
Por exemplo, no 3º passo ( mdc ¦r , r
1
) ), o primeiro elemento do par é r , que é o resto da
divisão de a por b (par no 1º passo).
No 4º passo ( mdc ¦r
1,
r
2
) ), o primeiro elemento do par é r
1
, que é o resto dos inteiros do 2º
passo ( mdc ¦b , r ) ).
Assim, r ≤a / 2 ⇒ r
2
≤r / 2≤a / 4 ⇒ r
4
≤r
2
/ 2≤r / 4≤a / 8. A cada dois passos, o maior
número do par fica reduzido a, no máximo, metade do valor. Você pode observar que os restos
r
k
, para k inteiro par, satisfazem
r
k

a
2
k / 2+1
.
Na pior hipótese, vale a igualdade na fórmula acima e o algoritmo para quando encontramos
resto 1.
Fazendo r
k
=1 na fórmula anterior, obtemos:
a
2
k /2 +1
=1 ⇒a =2
k /2 +1
Ao aplicar logaritmo de base 2 de ambos os lados, temos:
log
2
a =
k
2
+1 ⇒ log
2
a -1 =
k
2
⇒k =2log
2
a -2.
40
A conclusão é que o número máximo de passos para terminar o algoritmo de Euclides é
2 log
2
a -2, em que a é o maior dos inteiros que iniciaram o algoritmo.
Exemplo: Se a é um inteiro de mil dígitos, então
a ≤10
1000
.
Assim,
k ≤2 log
2
10
1000
-2=2000 log
2
10 -2≈2000⋅3,322 -2 =6641.
O algoritmo chega ao resultado em, no máximo, 6.641 passos.
Nesta aula você teve contato com muitas demonstrações, contas com fatorações
em primos e, por isso, pode ter encontrado alguma dificuldade. Algumas vezes é
preciso ler mais de uma vez. Há detalhes que só podem ser percebidos depois que
os conceitos ficam mais amadurecidos.
Você também estudou o algoritmo de Euclides, a expressão do mdc e do mmc, em
termos da fatoração em primos dos inteiros envolvidos, e a fórmula que relaciona o
mdc e o mmc.
Atividade
1) Use o algoritmo de Euclides para calcular o mdc entre os pares de números abaixo. A partir do
mdc, calcule o mmc destes números.
a) a =847 e b =91 .
b) a =2475 e b =231 .
41
Aula 4 – Testes de Primalidade
Como afirmar se um inteiro é primo? Trata-se de um problema relevante em várias
aplicações de Teoria dos Números, incluindo as aplicações em Criptografia.
Um teste de primalidade é qualquer algoritmo que determina se um inteiro é primo.
Não confunda teste de primalidade com um problema relacionado: o de fatoração
de inteiros.
Nesta aula, você vai estudar um processo clássico para obter todos os primos de 1
a n e a descrição de um teste de primalidade simples.
Texto 17 – Primeiro teste de primalidade
Vamos agora descrever um método simples para determinar se um inteiro n é ou não primo.
Se um inteiro n não é primo, então há algum fator primo menor que ele. A idéia é dividir n
por todos os primos menores que ele. Caso não seja divisível por nenhum, então será primo.
Não é necessário testar todos os primos menores que n ; basta avaliar os primos menores ou
iguais a
n .
Proposição. Se n não é primo, então possui um fator primo menor ou igual a
n .
Demonstração
Se n é composto, então existem n
1
e n
2
, tais que n =n
1
⋅n
2
, em que 1n
1
n e
1n
2
n.
42
Determinar a fatoração de um dado inteiro é computacionalmente
mais difícil do que determinar se esse inteiro é ou não primo.
Suponha que n
1
≤n
2
(o caso n
2
≤n
1
é análogo). Assim:
n = n
1
⋅n
2
≥ n
1
⋅n
1
= n
1
2
⇒ n
1
≤n .
Seja p fator primo de n
1
(caso n
1
seja primo, p =n
1
). Como n
1
≤n e p ∣n
1
, então
p ≤n
1
≤n e, como p ∣n
1
e n
1
∣n , então p ∣n . Logo, p é fator primo de n menor ou
igual a
n .
Exemplo: Vamos determinar se 127 é primo. Como
127 é um pouco maior que 11, basta
testar a divisibilidade de 127 pelos primos 2, 3, 5, 7 e 11. Como ele não é divisível por nenhum
destes números, então 127 é primo.
Para usar este método, convém ter em mãos uma lista de primos. Uma forma para obtê-la, até
um número escolhido, é o conhecido crivo de Eratóstenes.
Leia sobre Eratóstenes na seção “Saiba mais” ao final desta aula.
O crivo de Eratóstenes é um método muito antigo para encontrar todos os primos até um certo
inteiro específico. A palavra crivo quer dizer peneira. O algoritmo atua, de fato, como uma
peneira, separando os múltiplos dos primos em sucessão, deixando passar apenas os que não
são divisíveis por estes primos. Ao final do processo, apenas os primos passam pela peneira.
O método consiste em escrever todos os inteiros de 1 a N. Como 1 não é primo, pode ser riscado
imediatamente.
O algoritmo prossegue, seqüencialmente, em passos. Em cada etapa, encontramos o primeiro
número que não foi riscado, marcamos ele como primo e riscamos todos os seus múltiplos
próprios. Enquanto o último número a ser avaliado não excede a raiz quadrada de N, repetimos
os passos citados. Quando o algoritmo pára, os inteiros remanescentes são primos.
Por exemplo, vamos escrever o crivo de 1 a 100. Devemos eliminar os múltiplos dos primos
menores ou iguais a
100 =10 .
43
44
Inicialmente, escrevemos todos os inteiros
de 1 a 100. Riscamos o 1, que não é
primo.
Encontramos e marcamos como primo o
número 2. Em seguida, riscamos todos os
múltiplos próprios de 2.
Depois marcamos 3 como primo e
riscamos seus múltiplos próprios.
Concluímos que os primos de 1 a 100 são:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 e 97.
Para conhecer mais sobre os crivos de Eratóstenes, visite os dois endereços listados a seguir:
http://www.cut-the-knot.org/Curriculum/Arithmetic/Eratosthenes.shtml
Neste endereço há um aplicativo em que você pode escolher o inteiro N. Então, aparece
em um botão o próximo inteiro não-riscado. Ao apertá-lo, são riscados os múltiplos
próprios deste inteiro e o próximo não-riscado é exibido.
http://www.faust.fr.bw.schule.de/mhb/eratosiv.htm
Neste outro endereço, você encontra um aplicativo de crivo de Eratóstenes montado de 1
a 400. Ao clicar em um inteiro da tabela, os múltiplos próprios desse inteiro desaparecem.
45
O primeiro inteiro não-riscado é o 7.
Selecionamos 7 como primo e riscamos
seus múltiplos próprios.
Como o próximo número não-riscado é 11,
que é maior que a raiz quadrada de 100, o
algoritmo pára e os inteiros remanescentes
podem ser marcados como primos.
Em seguida, o primeiro inteiro não-
riscado é o 5. Marcamos 5 como primo e
riscamos seus múltiplos próprios.
Texto 18 – Teorema dos Números Primos
Para responder a algumas questões, como, por exemplo,
- existem infinitos primos, mas como eles se distribuem?
- conforme os inteiros ficam maiores, os primos se tornam mais espaçados?
- a densidade dos primos diminui?
é necessário definir a função x .
Se x é real positivo, então x  é o número de inteiros primos menores ou iguais a x .
Exemplos:
• 10 =4 (os primos 2, 3, 5 e 7 são menores que 10);
• 100 =25 , há 25 primos menores que 100. Confira na lista que fizemos usando o
crivo de Eratóstenes;
• 1000=168 ;
• 10
4
=1.229 ;
• 10
5
=9.592 ;
46
O teste apresentado inicialmente – dividir um inteiro N pelo primos
menores ou iguais a
N – sempre funciona; porém, na prática, não pode
ser utilizado para inteiros com fatores primos muito grandes. É comum ser
utilizado para testar a primalidade de inteiros pequenos.
Vários testes de primalidade populares são probabilísticos. Esses testes
não permitem afirmar com certeza se um inteiro n é primo, mas podem
comprovar que n provavelmente é primo.
Se n passa no teste, então apresenta certa probabilidade de ser primo.
A chance de erro pode ser reduzida a um valor arbitrariamente baixo, se
aplicarmos o teste várias vezes.
O teste probabilístico mais simples é o teste de Fermat, que será estudado
na Aula 9.
• 10
6
=78.498 .
Um resultado importante, suposto originalmente por Gauss, no século XIX, e provado por
Hadamard e Vallé-Poussin, em 1896, é o chamado teorema dos números primos, que afirma que:

lim
x ∞
x 

x
log x 

= 1
onde log x é o logaritmo natural de x (logaritmo na base e ).
Esse resultado significa que, se x é muito grande, então x  deve estar próximo de
x
log  x 
, pelo menos em termos relativos.
Mesmo para valores muito grandes de x , o erro x 
x
log x 
é bastante elevado. Por
exemplo, para
x =10
16
, o erro é da ordem de
10
13
.
Há vários problemas não resolvidos na Matemática, relacionados à questão da distribuição dos
números primos. Um dos problemas sem solução mais importantes — a chamada hipótese de
Riemann — relaciona-se à função x  e ao teorema dos números primos.
Nesta aula 4, você aprendeu o que são testes de primalidade e estudou o teste
mais simples, que é tentar dividir N por todos os primos menores ou iguais a
N . Este método nos leva ao crivo de Eratóstenes, que é um algoritmo antigo
para elaborar tabelas de primos.
Você também estudou a questão da distribuição dos números primos e o Teorema
dos Números Primos.
Vamos voltar à questão dos testes de primalidade ao apresentarmos o pequeno
teorema de Fermat, que dá origem a um teste probabilístico, chamado teste de
Fermat.
47
Atividades
1) Determine se os seguintes inteiros são primos:
a) N = 229
b) N = 1223
c) N = 481
2) Use o crivo de Eratóstenes para determinar todos os primos até N=200. Determine 200 .
48
Saiba mais: Eratóstenes
Eratóstenes foi um matemático, geógrafo e astrônomo grego que viveu de 276
a 194 a.C. Nasceu em Cyrene (atual Líbia), mas estudou, trabalhou e morreu
em Alexandria, onde atuou como bibliotecário da famosa biblioteca dessa
cidade.
Eratóstenes fez contribuições importantes para as áreas de Matemática e
Ciências. Foi o primeiro a calcular a circunferência da Terra, usando
trigonometria e o conhecimento do ângulo de elevação do Sol ao meio-dia, em
duas cidades distantes.
Há controvérsias sobre a unidade de medida usada por Eratóstenes, mas
acredita-se que o valor obtido por ele esteja entre 39.690 Km e 46.620 Km,
valor próximo ao conhecido hoje, de 40.080 Km. Eratóstenes mediu também a
distância da Terra ao Sol, da Terra à Lua e teria compilado um catálogo de
675 estrelas.
Eratóstenes era conhecido na época pelo apelido de beta, a segunda letra do
alfabeto grego. A razão do nome é que, segundo seus contemporâneos, ele
tinha grande conhecimento em várias áreas, mas em cada uma delas era
apenas o segundo melhor.
Aula 5 – Aritmética Modular
Aritmética modular é um sistema em que as operações entre os inteiros são feitas “módulo” um
outro inteiro n . O sentido desta frase será melhor compreendido ao longo desta aula.
Para entender o sistema, pense em um relógio. Se ele marca 21 horas neste momento, daqui a 5
horas marcará 2 horas da manhã, certo?
Isso ocorre porque, após as 24 horas, o relógio volta a marcar 0 hora, reiniciando a contagem. Se
ele marca 18 horas, após 10 horas marcará 4 horas da manhã. Assim: 18 10=28 e
28 24=4 .
Esta “aritmética do relógio” acontecerá em qualquer evento cíclico. É semelhante ao código de
César. Usando um alfabeto de 23 letras, se trocarmos cada letra pela próxima, duas unidades à
frente, então temos:
A1   C 3 
B 2   D 4 
⋮ ⋮
V 21   Z 23 
X 22   A1 
Z 23   B 2 
Veja que V (letra 21) é substituída por Z (letra 23); X (letra 22) por A (letra 1) e Z (letra 23) por B
(letra 2). Em números, esta substituição corresponde à operação x x 2, com o detalhe de,
após o 23, voltamos ao início. Isto é uma aritmética modular, no caso módulo 23.
Para definir exatamente essas noções, é importante que você conheça o estudo das relações de
equivalência e veja como a aritmética modular se traduz em uma relação de equivalência
chamada congruência módulo n .
49
Como você estudou na primeira disciplina do curso, um código de César
é um método em que uma chave, definida por um número, é usada para
cifrar e para decifrar a mensagem. Leia mais sobre esse método
criptográfico na aula 5 do livro Introdução à Criptografia.
Assim, nesta aula, você vai estudar a definição de relação e o que é uma relação de equivalência,
e ainda vai aprender que congruência módulo n é uma relação de equivalência.
Texto 19 - Relações
Uma relação em um conjunto S é uma maneira de comparar os elementos de S .
Exemplo:
São relações:
• A relação de igualdade = nos inteiros.
• A relação  nos inteiros.
• A relação “ter a mesma idade” em um grupo de pessoas.
• A relação “ser da mesma espécie” no conjunto de animais em um zoológico.
Isso lhe dá uma idéia do que seja uma relação. Veja a definição formal de relação no quadro a
seguir.
Exemplos:
• A relação de igualdade no conjunto {1,2 ,3 ,4 ,5 } é o subconjunto
R ={1,1  , 2,2  , 3,3 , 4,4  , 5,5 } .
• A relação ≤ no conjunto {1,2 ,3 ,4 ,5 } é o subconjunto
R ={1,1 , 1,2  , 1,3  , 1,4  , 1,5  , 2,2  , 2,3  , 2,4  , 2,5  , 3,3  , 3,4  ,
3,5 , 4,4  ,  4,5  , 5,5  }
.
A idéia dessa representação é que, para uma relação em um conjunto S, temos um subconjunto
R ⊆S ×S , tal que x , y ∈R , quando x e y se relacionam.
Muitas relações interessantes obedecem às propriedades que serão destacadas a seguir.
50
Podemos definir uma relação em um conjunto S como um subconjunto
de S ×S (conjunto dos pares ordenados {x , y ; x , y ∈S } ).
Seja S um conjunto e ~ uma relação em S . Dizemos que a relação ~ é
i. reflexiva, quando a ~a para todo a ∈S .
ii. simétrica, quando a ~b ⇒b ~a para todo a , b ∈S.
iii. transitiva, quando a ~b e b ~c ⇒ a ~c , para todos a , b , c ∈S.
Confira alguns exemplos.
• A relação de igualdade nos inteiros é reflexiva, simétrica e transitiva (Verifique).
• A relação ≤ nos inteiros é reflexiva ( a ≤a ) e transitiva ( a ≤b e b ≤c ⇒a ≤c ), mas
não é simétrica (por exemplo, se a ≠b , então não vale a ≤b e b ≤a ).
• A relação  no conjunto dos inteiros é transitiva, mas não é reflexiva nem simétrica.
• A relação "ter a mesma idade que" no conjunto dos alunos de uma sala é:
- reflexiva (aluno A tem a mesma idade que ele mesmo),
- simétrica (se A tem a mesma idade que B, então B tem a mesma idade que A)
- transitiva (se A tem a mesma idade que B e B tem a mesma idade que C, então A tem
a mesma idade que C).
• A relação de inclusão ⊆ no conjunto P  X  dos subconjuntos de um conjunto X é uma
relação reflexiva e transitiva, mas não é simétrica.
Há uma quarta propriedade que surge em várias relações importantes (inclusive ≤) :
Uma relação ~ é
iv. anti-simétrica, quando a ~b e b ~a ⇒a =b .
A relação ≤ no conjunto dos inteiros é reflexiva, anti-simétrica e transitiva.
Podemos agora definir a relação de equivalência.
51
Uma relação em um conjunto S é chamada relação de equivalência, se ela é reflexiva,
simétrica e transitiva.
Exemplos.
• A relação de igualdade nos inteiros é relação de equivalência.
• A relação "ter a mesma idade que" no conjunto dos alunos de uma sala é relação de
equivalência.
A relação ≤ no conjunto dos inteiros não é relação de equivalência, pois não é simétrica, mas é
importante.
Muitas relações interessantes, assim como ≤, são reflexivas, anti-simétricas e transitivas. Elas
também recebem um nome especial.
São relações de ordem:
• A relação ≤ no conjunto dos inteiros.
• A relação ⊆ no conjunto dos subconjuntos de um conjunto X .
• A relação "a divide b" no conjunto dos inteiros.
Agora, vamos voltar às congruências módulo n , ponto de partida desta aula.
Texto 20 – Congruência Módulo n
Seja n um inteiro positivo. Dizemos que a ≡b mod n , se a b é um múltiplo de n , ou
seja, se a =b kn para algum k ∈ℕ .
52
Uma relação reflexiva, anti-simétrica e transitiva é chamada relação de ordem.
Exemplos:
• 14 ≡6 mod 4 , pois 4 divide 14 6=8 .
• 3 ≡7 mod 5 , porque 5 divide 3 7 =10 .
• 10 ≡0 mod 5 , pois 5 divide 10 0=10 .
Observe que a ≡0 mod n ⇔ n∣a 0  ⇔ n∣a , ou seja, os inteiros que são congruentes a 0
módulo n são exatamente os múltiplos de n .
Sejam a inteiro e n inteiro positivo, q e r o quociente e o resto da divisão de a por
n . Temos que:
a =q ⋅n r ⇒ a r =q ⋅n ⇒ a ≡r mod n .
Então, por exemplo, todos os inteiros que têm resto 1 pela divisão por n são congruentes a 1
módulo n .
Encontrar o resto da divisão de a por n é equivalente a achar um inteiro r , 0 ≤r n , tal
que a ≡r mod n . Esta observação é importante porque veremos diversas fórmulas que
permitem encontrar facilmente um inteiro pequeno que seja congruente módulo n a uma dada
potência.
Agora, vamos estabelecer o fato de que a relação de congruência módulo n é uma relação de
equivalência.
Proposição. Para todos a , b e c inteiros e n inteiro positivo, vale que:
1. a ≡a mod n (propriedade reflexiva)
2. a ≡b mod n ⇒ b ≡a mod n (propriedade simétrica)
3. a ≡b mod n e b ≡c mod n ⇒ a ≡c mod n (propriedade transitiva)
Como exercício, prove as afirmações 1 e 2 da proposição. Depois, siga e veja a demonstração da
afirmação 3. Ao final, junto com a resposta dos exercícios, veja as demonstrações feitas.
53
Demonstração. Quanto à afirmação 3, se
a ≡b mod n e b ≡c mod n ,
então,
n∣a b  e n∣b c  ⇒ n∣a b b c =a c  ⇒ a ≡c mod n .
Esta proposição mostra que a relação de congruência módulo n é uma relação de equivalência.
No próximo texto, você vai aprender que uma relação de congruência em um conjunto cria uma
partição desse conjunto, que é dada pelas classes de equivalência.
Após você estudar estas classes, voltaremos à relação de congruência módulo n .
Texto 21 - Classes de Equivalência
Uma relação de congruência em um conjunto S induz naturalmente a uma classificação dos
objetos do conjunto.
Por exemplo, a relação de equivalência dada por "ter a mesma idade que" no conjunto dos alunos
de uma escola classifica-os em um subconjunto de alunos de mesma idade. Todos os alunos de
15 anos, por exemplo, são equivalentes por esta relação, e ficam dentro da mesma "classe".
Esta classificação é expressa pelo conceito de classe de equivalência.
Dada uma relação de equivalência ~ em um conjunto S , a classe de equivalência de um
elemento x ∈S é formada pelos elementos que são equivalentes a x por ~.
Denotamos a classe de equivalência de x por  x assim:
 x = {y ∈S ∣y ~x }
Observe que, se y ∈ x , então x ∈  y , o que é apenas outra forma de dizer que, se
y ~x , e nt ã o x ~y , que é a propriedade de simetria de uma relação de equivalência.
Por outro lado, se x ∈  y , então  x = y , pois, se z ∈ x , então z ~x . Como x ∈  y , então
x ~y ; logo z ~x e x ~y ⇒ z ~y ⇒ z ∈  y .
Desta forma, z ∈ x ⇒ z ∈ y , o que mostra que  x ⊂ y .
54
Podemos mostrar de forma análoga que  y ⊂ x , provando assim que  x = y , quando x ∈  y .
Isso permite concluir que, se  x ∩ y ≠∅, então  x = y , pois se z ∈  x ∩ y , então
z ∈ x e z ∈  y ⇒  z = x e  z = y ⇒  x = y .
Em outras palavras, duas classes de equivalência ou são iguais, ou são disjuntas.
Observe ainda que, como x ∈ x , todo elemento de S está em alguma classe de equivalência.
Essas observações podem ser resumidas em duas propriedades muito importantes das classes
de equivalência:
i. Duas classes distintas são disjuntas.
ii. A união de todas as classes de equivalência é todo o conjunto S.
Desse modo, o conjunto das classes de equivalência em um conjunto S é formado por
subconjuntos não-vazios disjuntos de S, cuja união é S. Este conjunto é chamado espaço
quociente da relação de equivalência ~ e é algumas vezes denotado por S / ~ .
Uma partição de um conjunto S é uma coleção de subconjuntos não-vazios S
i
, disjuntos dois
a dois ( S
i
∩S
j
=∅ se i ≠ j ), tal que S é a união dos S
i
.
O que foi mostrado anteriormente é que, dada uma relação de equivalência em um conjunto S ,
o conjunto de suas classes de equivalência forma uma partição de S .
Reciprocamente, não é difícil mostrar que
Texto 22 – Classes de Congruência
A relação de congruência módulo n é uma relação de equivalência.
55
Dada uma partição de S, existe uma relação de equivalência tal
que suas classes de equivalência são os conjuntos da partição.
Vamos a um exemplo: quais são as classes módulo 5?
Primeiro, vamos obter a classe do 0:
x ∈

0 ⇒ x ≡0 mod 5 ⇒ 5∣x 0  ⇒ 5∣x
Portanto,

0 é formado pelos múltiplos de 5:

0={5k ∣k ∈ℤ} = {... ,10, 5,0 ,5 ,10 , ... }
Qual é a classe de 1?
x ∈

1 ⇒ x ≡1 mod 5 ⇒ 5∣x 1  ⇒ x 1=5k ⇒ x =5k 1, pa r a a lgum k ∈ℤ.
Assim,

1 é formado pelos múltiplos de 5 somados a 1:

1={5k 1 ∣k ∈ℤ} = {... , 9,4,1 ,6 ,11 , ... }
Continuando, obtemos:


2={5k 2 ∣k ∈ℤ} = {... , 8,3,2 ,7 ,12 , ... }


3={5k 3 ∣k ∈ℤ} = {... , 7,2,3 ,8 ,13 , ... }


4 ={5k 4 ∣k ∈ℤ} = {... ,6, 1,4 ,9 ,14 , ... }
E o

5 ? Como 5 ∈

0 , temos

5=

0 .
As classes

0 ,

1 ,

2 ,

3 ,

4 são todas as classes módulo 5. Observe que, para qualquer a
inteiro, existem inteiros q e r , tal que a =5q r , onde 0≤r 5 (divisão de n por 5).
Logo a ≡r mod 5 ⇒ a ∈ r .
Assim, {

0 ,

1 ,

2 ,

3 ,

4 } é o espaço quociente (conjunto das classes de equivalência) da relação
de congruência módulo 5. Chamamos este conjunto de ℤ
5
.
56
Quais são as classes de equivalência para congruência módulo n ?
Podemos generalizar esta observação. Veja a seguir.
Proposição. Seja n inteiro positivo. O conjunto de todas as classes de congruência módulo
n é o conjunto {

0 ,

1 , ... , n 1 } .
Demonstração
Dado qualquer inteiro a , existem inteiros q e r , tais que:
a =q ⋅n r , s e ndo 0 ≤r n.
Portanto a ≡r mod n ⇒ a ∈ r . Desta forma, todos os inteiros estão em alguma das classes

0 ,

1 , ... , n 1 .
Por outro lado, as classes

0 ,

1 , ... , n 1 são todas distintas, pois dois inteiros entre 0 e
n 1 só podem ser congruentes módulo n se forem iguais.
Representamos por ℤ
n
o conjunto de todas as classes de congruência módulo n .
Então: ℤ
n
={

0 ,

1 , ... , n 1 }
Cada classe  a é um conjunto infinito. O inteiro a é um representante da classe  a . Veja que,
para uma classe, podemos escolher qualquer elemento dela como representante.
Por exemplo: para módulo 5, qualquer inteiro da forma 5k 1 é representante da classe

1 .
Nesta aula, você estudou as relações de congruência módulo n . Para isso,
aprendeu as relações em geral, conheceu algumas propriedades e viu, em
particular, que as relações reflexivas, simétricas e transitivas são chamadas
relações de equivalência.
57
Uma relação de equivalência em um conjunto particiona este
conjunto em classes de equivalência.
Outro ponto estudado foi a relação de congruência módulo n , que é uma
relação de equivalência. O conjunto das classes de congruência módulo n é
denotado por ℤ
n
. Você viu ainda a demonstração de que:

n
={

0 ,

1 , ⋯, n 1 }.
A congruência módulo n é uma poderosa ferramenta na Teoria dos Números. E
você verá, ao longo da disciplina, que essa ferramenta é utilizada quase que
universalmente.
Atividades
1) Seja S ={1,2 ,3 ,4 } . Considere as seguintes relações em S:
R
1
={1,1  , 2,2  , 3,3 , 4,4 }
R
2
={1,2  , 1,3  , 2,2 , 2,3 }
R
3
={1,1  , 1,2  , 2,2 , 2,3  , 3,3  , 4,4 }
R
4
={1,1  , 1,2  , 1,3  , 2,1  , 2,2 , 3,1  , 3,3 }
R
5
={1,1  , 1,2  , 1,3 , 1,4  , 2,2  , 2,3  , 2,4  , 3,3  , 3,4  , 4,4 }
Para cada uma das relações anteriores, indique se é reflexiva, simétrica ou transitiva.
2) Determine se as afirmações a seguir são verdadeiras ou falsas:

a) 25 ≡1 mod 12
b) 5 ≡14 mod 3
c) 12 ≡2 mod 3
d) 57 t ≡5 mod 7, pa r a t odo t ∈ℤ
e)
x
2
17 y =3 mod 17 ⇒ x
2
≡3 mod 17
58
Aula 6 - Operações com Classes de Congruência
A Matemática é a rainha das ciências e a
Aritmética é a rainha da Matemática.
Carl Friedrich Gauss
Como você estudou na primeira aula, a aritmética, termo utilizado para se referir à
Teoria dos Números, tem como objetivo estudar os números inteiros, suas
operações e representações.
Agora você vai estudar as operações com classes de congruência. Neste próximo
passo, vai aprender a definição de soma e de produto de classes módulo n .
Você se lembra que a aula anterior, sobre Aritmética Modular, iniciou com a
aritmética das horas de um relógio? Vamos ver mais sobre esse exemplo.
Texto 23 – Definição de Soma e de Produto de Classes
A aritmética do relógio é uma aritmética módulo 24. Por exemplo, se o relógio marca 23 horas,
após 5 horas vai marcar 4 horas da manhã. Isso acontece porque 23 524 =4 (após às 24
horas, o relógio volta a marcar 0 hora). Para uma aritmética módulo 24, temos a soma
23 5=4 . Mais precisamente, em ℤ
24
, temos 23 

5=

4 .
A operação de soma em ℤ
n
é definida naturalmente por  a 

b =a b . O problema desta
definição é que a e b são representantes das classes  a e

b , respectivamente. Nesse
caso, se fossem utilizados outros representantes, seria obtido o mesmo resultado? Vamos ver um
exemplo.
Em ℤ
8
, 65 =11 ≡3 mod 8 . Logo,

6

5=6 5=11 =

3 .
Mas 14 ≡6 mod 8 e 21 ≡5 mod 8 , logo 14 =

6 e 21 ≡

5 mod 8 . Se somarmos

6

5 , usando os representantes 14 e 21, vamos obter o mesmo resultado? Verificamos
facilmente que sim, pois
14 21 =1421 =35 =

3 .
59
É claro que este é apenas um exemplo. Para que a definição  a 

b =a b faça sentido, temos
de provar que, para qualquer inteiro positivo n , a soma a b não depende dos
representantes escolhidos nas classes  a e

b .
Na próxima proposição, vamos provar que tanto a soma como o produto de classes não
dependem da escolha dos representantes.
Proposição. Em ℤ
n
, se

a ' = a e

b ' =

b , então
1. a ' b ' =a b
2. a ' ⋅b ' =a⋅b
Demonstração

a ' = a ⇒ a ' ≡a mod n ⇒ a ' =a k
1
n , para algum k
1
∈ℤ.

b ' =

b ⇒ b ' ≡b mod n ⇒ b ' =b k
2
n , para algum k
2
∈ℤ.
Logo,
a ' b ' =a k
1
n b k
2
n =a b k
1
k
2
 n ⇒ a ' b ' ≡a b mod n
,
o que mostra que a ' b ' =a b .
a ' ⋅b ' =a k
1
n ⋅b k
2
n =a b a k
2
n b k
1
n k
1
k
2
n
2
=a b n bk
1
a k
2
k
1
k
2
n 
.
Portanto a ' b ' ≡a b mod n ⇒ a ' ⋅b ' =a b .
Uma forma equivalente de ver a proposição anterior é somar e multiplicar duas congruências
módulo n .
Se a ≡a ' mod n e b ≡b ' mod n , então
• a b ≡a ' b ' mod n
• a b ≡a ' b ' mod n
60
Seja k um inteiro positivo. Ao multiplicar uma congruência a ≡b mod n por ela mesma
k vezes, obtemos:
a ≡b mod n ⇒ a
k
≡b
k
mod n
Em particular, se a ≡1 mod n , então
a
k
≡1 mod n
para todo k inteiro positivo.
Pelo exposto, podemos, com toda a segurança, definir soma e produto de classes por
 a 

b =a b
 a⋅

b =a⋅b
Assim, podemos agora somar e multiplicar classes em ℤ
n
. Este, agora, não é mais só um
conjunto, mas um conjunto com operações de soma e multiplicação.
Essas operações herdam diversas propriedades da soma e da multiplicação dos inteiros:
• Propriedades da soma
  a 

b  c = a 

b  c 
 a 

b =

b  a
 a 

0 = a
 a a =

0
• Propriedades da multiplicação
  a⋅

b ⋅ c = a⋅

b⋅ c 
 a⋅

b =

b⋅ a
 a⋅

1= a
• Distributividade
 a⋅

b  c = a⋅

b  a⋅ c
Um conjunto com operações de soma e de multiplicação que satisfazem às oito propriedades
listadas anteriormente é chamado um anel.
Podemos então falar no Anel ℤ
n
.
61
Texto 24 – Tabelas de Soma e de Multiplicação
Uma maneira de visualizar as operações de soma e de multiplicação de classes em ℤ
n
é
através de tabelas. Nelas, listamos todas as classes na primeira linha e na primeira coluna. Cada
entrada na tabela corresponde à operação dos elementos indicados na primeira linha e na
primeira coluna.
Como exemplo, vamos fazer as tabelas de soma e de multiplicação de ℤ
5
:
Veja que a última entrada (à direita e abaixo) da tabela soma é

3=

4

4 . Na tabela de
multiplicação, a última entrada é

1=

4⋅

4 .
62
+
0
1
2
3
4 0
1 4
2
3
0
0
0
0
0
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
0
1
2
3
4
1 4
2
3
4
0
3
0
1
1
1
2
2
2
3
3
3
4
4
4
0
0
0
0
0
0
0
0
1
2
Analise cuidadosamente todas as entradas dessas tabelas. Confira cada uma delas para ter
certeza de que você entendeu a construção.
Tabelas de soma e de multiplicação de ℤ
4
:
Vamos continuar o estudo da estrutura de ℤ
n
na próxima aula. Agora, vamos trabalhar algumas
aplicações da congruência, iniciando pelas regras de divisibilidade.
63
+
0
1
2
3
1
2
3
1
0
1
0
2
1
1
2
2
2
3
3
3
3
0
0
0
0
1
2
3
1
2
3
0
0
1
2
2
3
3
0
1
0
0
0
0
0
0
2
2
Texto 25 – Divisibilidade
As regras de divisibilidade por 2, 3, 5, 9 e 11 são bem conhecidas. Como exercício de
congruência, vamos entendê-las.
Observe inicialmente que, como usamos um sistema de numeração de base 10, se um inteiro
a é escrito como a =a
k
⋅a
k 1
... a
1
⋅a
0
, então:
a =a
k
⋅10
k
a
k 1
⋅10
k 1
... a
1
⋅10 a
0
.
Por exemplo, se a=257 , então
a =2⋅10
2
5⋅107=200 50 7
.
A seguir, veja os casos de divisibilidade:
Divisibilidade por 3 e 9
Como 10 ≡1 mod 3 , então
10
i
≡1 mod 3
para qualquer expoente i . Assim, se
a =a
k
⋅a
k 1
... a
1
⋅a
0
, então
a = a
k
⋅10
k
a
k 1
⋅10
k 1
... a
1
⋅10 a
0
≡ a
k
a
k 1
a
1
a
0
mod 3 .
O inteiro a é divisível por 3 se, e somente se,
3∣a ⇔ a ≡0 mod 3 ⇔ a
k
a
k 1
a
1
a
0
≡0 mod 3
ou seja, a é divisível por 3 se, e somente se, a soma de seus algarismos for divisível por 3.
O mesmo vale para 9. Como 10 ≡1 mod 9 , então
10
i
≡1 mod 9
para qualquer expoente
i . Nesse caso o mesmo raciocínio se aplica. Vale que um inteiro a é divisível por 9 se, e
somente se, a soma de seus algarismos for divisível por 9.
Você deve ter percebido, nesse primeiro exemplo, que o artifício para deduzir regras de
divisibilidade por n é verificar a classe de congruência de 10 e suas potências módulo n .
64
Vamos a outro caso.
Divisibilidade por 2 e 4
Como 10 ≡0 mod 2 , então
10
i
≡0 mod 2
, para todo i 0 . Assim, se
a =a
k
⋅a
k 1
... a
1
⋅a
0
, então
a =a
k
⋅10
k
a
k 1
⋅10
k 1
... a
1
⋅10 a
0
≡ a
0
mod 2 .
Logo, a é divisível por 2 se, e somente se, a
0
for divisível por 2, isto é, quando a é par.
Com relação à divisibilidade por 4, 10 ≡2 mod 4 , mas 10² ≡0 mod 4 ; logo
10
i
≡0 mod 4
para todo i ≥2 .
Portanto, se a =a
k
⋅a
k 1
... a
1
⋅a
0
, então
a = a
k
⋅10
k
a
k 1
⋅10
k 1
... a
1
⋅10 a
0
≡ a
1
⋅10 a
0
mod 4 .
Assim, a é divisível por 4 se, e somente se, o número a
1cdot
a
0
(número formado por seus dois
últimos algarismos) for divisível por 4.
Exemplo: 99.875.320 é divisível por 4, pois o número 20 é.
Divisibilidade por 5 e 10
Como 10 ≡0 mod 5 , então
10
i
≡0 mod 5
, para todo i ≥1 .
Assim, se a =a
k
⋅a
k 1
... a
1
⋅a
0
, então:
a = a
k
⋅10
k
a
k 1
⋅10
k 1
... a
1
⋅10 a
0
≡ a
0
mod 10 .
Portanto, a é divisível por 5 se, e somente se, a
0
=0 ou a
0
=5 .
Como 10 ≡0 mod 10 , vale o mesmo raciocínio, e um inteiro a é divisível por 10 se, e
somente se, a
0
for divisível por 10, isto é, quando a
0
=0 .
65
Divisibilidade por 11
Observe as classes módulo 11 das potências de 10.
• 10 ≡1 mod 11 .

10
2
≡1 
2
mod 11 ⇒ 10
2
≡1 mod 11

10
3
≡1 
3
mod 11 ⇒ 10
3
≡1 mod 11
Em geral, ao elevar 10 ≡1 mod 11 à potência i , temos:
10
i
≡1 
i
mod 11
.
Mas 1 
i
=
{
1 s e i é pa r
1 s e i é ímpa r
}
, logo 10
i

{
1 mod 11 s e i é pa r
1 mod 11 s e i é ímpa r
}
.
Assim,
a =a
k
⋅10
k
a
k 1
⋅10
k 1
... a
1
⋅10a
0
≡ a
k
⋅1 
k
a
k 1
⋅1 
k 1
...a
2
a
1
a
0
mod 11
Temos aqui uma soma alternada dos algarismos de a . O inteiro a é divisível por 11 se, e
somente se,
a ≡0 mod 11 ⇔ a
0
a
1
a
2
a
3
... 1 a
k
≡0 mod 11 .
Ou seja, a é divisível por 11 se, e somente se, a
0
a
1
a
2
a
3
...1 a
k
for divisível por
11.
Exemplo: a=28.435 é divisível por 11, pois 53 4 8 2=0 , que é divisível por 11.
No próximo texto, vamos mostrar outra aplicação das congruências: o cálculo de potências
módulo n .
66
Texto 26 – Potências
Outra aplicação muito útil da congruência é determinar o resto da divisão de uma potência
a
k
por um inteiro n . A idéia é encontrar algum s , tal que
a
s
seja um inteiro pequeno, e fazer a
divisão do expoente k pelo inteiro s .
Se k =q ⋅s r , com 0≤r s , então
a
k
=a
q ⋅s r
=a
s

q
⋅a
r
.
Se
a
s
é congruente módulo n a um inteiro pequeno, então podemos reduzir
a
k
a uma
potência menor. Se, por exemplo,
a
s
≡1 mod n
, então:
a
k
=a
s

q
⋅a
r
≡ 1 
1
⋅a
r
≡ a
r
mod n , com 0≤r s .
Veja a seguir alguns exemplos que vão facilitar a compreensão destas técnicas.
Exemplos:
1) Calcule o resto da divisão de
10
33
por 99
.
Vamos usar o fato de que
10
2
≡1 mod 99
. Como 33 =2⋅16 1 , então:
10
33
=10
2⋅16 1
=10
2

16
⋅10
1
≡ 1⋅10 mod 99 ≡ 10 mod 99
Portanto, 10 é o resto da divisão de
10
33
por 99.
2) Calcule o resto da divisão de
2
34
por 15.
Inicialmente, vamos determinar se alguma potência de 2 pode facilitar a solução.
Veja:
2
1
=2, 2
2
=4, 2
3
=8, 2
4
=16 ≡1 mod 15
.
Agora, utilizamos a potência
2
4
. Sendo 343 =4 ×853 , temos:
2
343
=2
4t ime s 853
=2
4

85
⋅2
3
≡ 1 
85
⋅2
3
mod 15 ≡ 8 mod 15
.
67
Portanto, o resto da divisão de
2
343
por 15 é 8.
3) Calcule o resto de
3
125
por 7
.
Vamos tentar as potências de 3:
3
1
=3, 3
2
=9≡2 mod 7, 3
3
=27 ≡1  mod 7
Podemos usar tanto
3
2
como
3
3
para resolver o problema. Para ilustrar, vamos fazer das duas
maneiras.
• Usando
3
2
≡2 mod 7
e sendo 125 =2×62 1 , temos
3
125
=3
2×621
=3
2

62
⋅3 ≡ 2
62
⋅3 mod 7
.
Agora, vamos tentar uma potência de 2 adequada. Como
2
3
=8 ≡1 mod 7
, a divisão de 62 por
3 resolve o problema. Sendo 62 =20×3 2 , temos:
3
125
≡2
62
⋅3 mod 7≡2
3×202
⋅3 mod 7≡2
3

20
⋅2²⋅3 mod 7 ≡1⋅2
2
⋅3 mod 7
ou seja,
3
125
≡12 mod 7 ≡5 mod 7
. Portanto, o resto de
3
125
por 7 é 5.
• A outra solução usa
3
3
≡1 mod 7
. Temos que 125 =41 ×32 , logo
3
125
=3
3

41
⋅3
2
≡ 1 
41
⋅3
2
≡ 9 mod 7 ≡ 5 mod 7
,
o que confirma que o resto da divisão de
3
125
por 7 é 5.
Esses três exemplos demonstram o uso de congruência para encontrar restos de potências. Vale
destacar que a potência exata a ser usada em cada caso depende do problema. Como vimos no
último exemplo, nem sempre uma potência é a única ou a melhor escolha.
Outra questão é que, dados inteiros positivos a e n , nem sempre há uma potência de a
que seja congruente a 1 módulo n . Vamos voltar a esse assunto nas próximas aulas.
68
Nesta aula, definimos soma e produto de classes em ℤ
n
. Com estas operações,

n
deixa de ser só um conjunto e passa a ser um anel, isto é, um conjunto com
operações de soma e de produto que satisfazem às oito propriedades listadas
nesta aula.
Nas próximas aulas vamos aplicar as técnicas de congruência a dois problemas: o
dos testes de divisibilidade e o de determinação do resto pela divisão de potências
grandes de um inteiro por n .
69
No endereço http://britton.disted.camosun.bc.ca/modart/jbmodart.htm há
uma discussão interessante sobre aritmética modular e arte. Você
também encontra um aplicativo que constrói dinamicamente tabelas de
soma e de multiplicação modulares.
Saiba mais: Módulo
A palavra módulo foi introduzida na Matemática pelo alemão Carl Friedrich
Gauss, em 1801, no seu famoso livro Disquisitiones Arithmeticae. Este é um
livro-texto de Teoria de Números; nele o matemático Gauss reúne os
resultados obtidos anteriormente por Fermat, Euler, Lagrange, Legendre e
pelo próprio autor.
Antes do livro, a Teoria dos Números era considerada uma coleção de
resultados isolados e de conjecturas. Gauss, então com 24 anos, deu uma
estrutura lógica aos resultados conhecidos, corrigiu demonstrações falhas,
preencheu as lacunas e ampliou vários resultados.
Atividades
1) Elabore as tabelas de soma e de multiplicação de ℤ
6
.
2) Determine um teste de divisibilidade para 8.
3) Calcule o resto da divisão de:
a)
2
303
por 15.
b)
7
250
por 48 .
c)
5
61
por 7 .
70
Aula 7 – Divisão Modular
Na última aula, você estudou as definições de operações de soma, diferença e
multiplicação em ℤ
n
. Agora, vamos apresentar a divisão módulo n .
Nesta parte, você vai aprender também como escrever o mdc de dois inteiros
como combinação linear deles, utilizando o algoritmo de Euclides.
Texto 27 – A inversa de uma classe de congruência módulo n
Para iniciar o estudo, vamos a uma questão:
Se c =a / b , então a =b ⋅c . Podemos assim entender que dividir a por b é encontrar um
x tal que b ⋅x =a . Em ℤ
n
, seria a operação de encontrar uma classe  x tal que

b ⋅ x = a ,
ou seja, encontrar x de modo que
bx ≡a mod n.
Assim, dividir a por b é equivalente a resolver a equação de congruência anterior.
Uma outra forma de entender a divisão é ver a / b como
a⋅1 / b =a⋅b
1
, isto é, a divisão de
a e b é o produto de a pela inversa de b . Já a inversa de b é o número que
multiplicado por b resulta em 1, isto é,
b ⋅b
1
=1.
Em ℤ
n
, a inversa de

b é uma classe

b ' , tal que

b ⋅

b ' =1 . Assim, o problema de encontrar
a inversa de b é equivalente a encontrar um inteiro b ' tal que:
b ⋅b ' ≡1 mod n.
Perceba que neste ponto temos duas dificuldades: nem sempre uma classe em ℤ
n
tem inversa,
71
O que significa dividir a por b ?
assim como nem sempre a equação bx ≡a mod n tem solução. Em conseqüência, nem
sempre é possível dividir duas classes em ℤ
n.
.
Exemplos:
• Em ℤ
10
, a classe

3 tem inversa, que é a classe

7 , pois

3⋅

7 =21 =

1 . Por outro
lado, a classe

2 não tem inversa em ℤ
10
. Note que, se você tentar encontrar uma
classe  x tal que

2⋅ x =

1 , não vai obter a solução.
• Em ℤ
5
, todas as classes não-nulas têm inversa:

1⋅

1 =

1 ,

2⋅

3 =

1 e

4⋅

4=

1 .
De acordo com o que foi apresentado anteriormente, somos levados à seguinte questão: quais as
classes que possuem inversa em ℤ
n
?
Texto 28 – Quando uma classe em ℤ
n
tem inversa?
Seja  a ∈ℤ
n
. Se  a tem inversa

a ' , então:

 a⋅

a ' =

1 ⇒ a⋅a ' ≡1 mod n ⇒n ∣ a⋅a ' 1 .
Logo, existe k ∈ℤ , tal que:
a a ' k n =1.
Seja agora d =mdc a , n . Como d ∣a e d ∣n , então:
d ∣a a ' kn  ⇒ d ∣1 ⇒ d =1.
Provamos, assim, que, se uma classe  a ∈ℤ
n
tem inversa, então mdc a , n =1. Portanto,
mdc a , n =1 é uma condição necessária para que a classe  a possua inversa.
72
Mas será essa uma condição suficiente?
De fato, se mdc a , n =1 , então existem k
1
e k
2
, tais que a k
1
nk
2
=1 . Logo
a k
1
1=nk
2
é múltiplo de n , ou seja,
a k
1
≡1 mod n ⇒  a⋅

k
1
=

1
o que mostra que  a tem inversa em ℤ
n
.
Provamos, desta forma, o seguinte:
Proposição: A classe  a em ℤ
n
tem inversa se, e somente se, mdc a , n =1.
Exemplos:
• As classes que têm inversa em ℤ
12
são {

1 ,

5 ,

7 ,

11 }.
• As classes que possuem inversa em ℤ
10
são {

1 ,

3 ,

7 ,

9 }.
• As classes que têm inversa em ℤ
5
são {

1 ,

2 ,

3 ,

4 }.
Uma conseqüência da proposição é que se p é primo, então todas as classes não-nulas em

p
possuem inversa. Isto acontece porque, sendo p primo e 1≤a ≤p 1 , então
mdc a , p =1. É o caso de ℤ
5
, no exemplo anterior.
Chamamos de ℤ
n
*
o subconjunto de ℤ
n
formado pelas classes que têm inversa. Assim:
• ℤ
12
* ={

1 ,

5 ,

7 ,

11 }.
• ℤ
10
* ={

1 ,

3 ,

7 ,

9 }.
• ℤ
p
* ={

1 , ⋯, p 1 }=ℤ
p
* {

0 }.
O conjunto ℤ
n
* não é fechado para a soma, isto é, a soma de dois elementos que têm inversa
módulo n pode não ter inversa módulo n . Por exemplo, em ℤ
12
*
, as classes

1 e

5 têm
inversa, mas

1

5=

6 não possui inversa.
No entanto, vale que:
73
Demonstração
Sejam  a e

b duas classes em ℤ
n
* que têm inversa. Sejam suas inversas   e

 ,
respectivamente. A inversa de  a⋅

b é classe  ⋅

 , pois:
  a⋅

b ⋅  ⋅

 =   a⋅ ⋅

b ⋅

 =

1⋅

1 =

1 .
Texto 29 – A congruência linear a x ≡b mod n
Vamos voltar à seguinte questão: a congruência linear a x ≡b mod n tem solução? Com o que
vimos anteriormente, podemos indicar uma situação em que a congruência tenha solução:
quando mdc a , n =1 .
Se mdc a , n =1 , então o inteiro a tem inversa  módulo n . Logo
a x ≡b mod n ⇒ a  x ≡b mod n ⇒ 1⋅x ≡b mod n ⇒ x ≡b mod n ,
o que mostra que a x ≡b mod n tem uma solução quando mdc a , n =1 .
E o que acontece quando mdc a , n 1 ? Neste caso, a equação a x ≡b mod n pode ter
várias soluções ou nenhuma. Veja os exemplos:
• 2x≡6 mod 8 tem duas soluções: x ≡3 mod 8 e x ≡7 mod 8 , pois
2⋅3 ≡6 mod 8 e 2⋅7 ≡6 mod 8 , respectivamente. Observe que não há outra
solução módulo 8 (teste todos os inteiros entre 0 e 7).
• A congruência 2x≡7 mod 8 não tem solução, pois mdc 2,8 =2 ∤7. Você pode
comprovar que isto é verdade, testando os inteiros de 0 a 7.
74
Lema: o conjunto ℤ
n
* é fechado para a multiplicação. Assim, o produto
de duas classes que possuem inversa sempre tem inversa.
A solução completa para o problema sobre o número de soluções da equação de congruência
linear a x ≡b mod n é o seguinte Teorema, cuja demonstração omitiremos.
Teorema: A equação de congruência a x ≡b mod n tem solução se, e somente se,
b for múltiplo de d =mdc a , n  .
Além disso, se d ∣b , a equação possui exatamente d soluções módulo n . Se x
0
é uma
solução qualquer, então as d soluções módulo n são dadas por:
x
k
=x
0

n
d
k , k =0 ⋯d 1 .
Uma demonstração do teorema pode ser encontrada em Introdução à Teoria dos Números, de
José Plínio de Oliveira Santos, 1998.
Retornando aos dois exemplos anteriores:
• 2x≡6 mod 8 tem duas soluções, pois mdc 2,8 =2 e 2divide s 6
• O valor x ≡3 mod 8 é uma solução óbvia, pois 2⋅3 =6 . A outra solução é
x ≡3
8
2
≡7 mod 8.
• 2x≡7 mod 8 não tem solução, porque mdc 2,8 =2 e 2 ∤7 .
Observe que, quando dizemos que há d soluções módulo n , queremos mostrar que há d
classes módulo n distintas que são soluções da equação. Há infinitos inteiros que são solução
de a x ≡b mod n . No entanto, estes inteiros representam exatamente d classes de
congruência módulo n .
Por exemplo, a equação 2x≡6 mod 8 tem soluções x ≡3 mod 8 e x ≡7 mod 8 , que são
as classes

3 e

7 em ℤ
8
. O inteiro x =11 também é solução, mas 11 ∈

3 . Observe
que x =15 também é solução, mas 15 ∈

7 .
Confira outro exemplo a seguir.
75
Determine todas as soluções para a equação 6 x ≡9 mod 21 .
Inicialmente, observamos que d =mdc 6,21 =3 e 3 divide 9; logo a equação tem três
soluções módulo 21. Tentando valores de x a partir de 0, encontramos a solução x
0
=5 .
( 6⋅5 =30≡9 mod 21 ).
A partir desta, encontramos todas as soluções:
x
k
=x
0

n
d
k , k =0 ⋯d 1  ⇒ x
k
=5 7k , k =0,1 e 2.
Portanto, as soluções são x ≡5 mod 21 , x ≡12 mod 21 e x ≡19 mod 21 .
Neste exemplo, a primeira solução não era totalmente óbvia, mas conseguimos encontrá-la com
poucas tentativas. É claro que para números maiores vamos precisar de outras técnicas.
Uma técnica que sempre funciona é escrever d =mdc a , n  em termos de a e n .
Sabemos que existem inteiros x
0
e y
0
, tais que d =x
0
a y
0
n . Como d ∣b , então b /d é
um inteiro.
Ao multiplicar a equação anterior por este inteiro, o resultado é:
b
d
d =
b
d
x
0
a 
b
d
y
0
n ⇒ b =

bx
0
d

a 

b
y
0
d

n ⇒

bx
0
d

a ≡b mod n.
Vale destacar que a aplicação dessa técnica depende de saber escrever o mdc de dois inteiros
como combinação linear desses inteiros. Será o assunto do próximo texto.
Texto 30 - Como escrever o MDC de dois inteiros em combinação linear
A solução para o problema está no algoritmo de Euclides, o mesmo utilizado para determinar o
máximo divisor comum de dois inteiros. Uma pequena modificação no algoritmo permite que ele
não apenas forneça o mdc a , b  , mas também escreva d como combinação linear de a
e b .
76
Vamos iniciar com um exemplo para ilustrar o processo.
Exemplo:
Calcule mdc 4723,2350  e expresse esse mdc em termos de 4723 e 2350 .
Para o cálculo do mdc, fazemos as divisões sucessivas:
4723
2350
23
4
=
=
=
=
2 ×2350 23
102 ×23 4
5 ×43
1 ×31
O que mostra que mdc 4723,2350 =1.
Agora, vamos escrever 1 como combinação linear de 4723 e 2350 . O processo é obter
o valor do resto na última equação e ir substituindo os valores dos restos, usando as outras
equações, até chegarmos à primeira. Veja:
• Isolamos o 1 na última equação, obtendo: 1=41 ×3.
• Obtemos o valor de 3 na penúltima equação e substituímos:
3=23 5 ×4 ⇒ 1=41t ime s 3 =4 1×235×4 =6 ×4 1×23.
• Obtemos o valor de 4 (2ª equação) e substituímos:
4 =2350 102 ×23 ⇒ 1 =6×4 1 ×23 =6 ×2350 102 ×23 1×23
=6 ×2350 613 ×23.
• Obtemos o valor de 23 (1ª equação) e substituímos:
23 =4723 2t ime s 2350 ⇒ 1 =6×2350 613 ×23 =6 ×2350 613 × 4723 2t ime s 2350 
=1232 ×2350 613 ×4723.
Concluímos que 1=1232 ×2350 613 ×4723. Esta expressão também permite calcular a
inversa de 2350 módulo 4723 . Reduzindo o módulo 4723 a expressão, obtemos
1232 ×2350 ≡1 mod 4723, ou seja, 1232 é a inversa de 2350 módulo 4723 .
77
O método apresentado é simples e sempre funciona, embora seja trabalhoso. Do ponto de vista
computacional, apresenta o sério inconveniente de que precisamos armazenar todos os
quocientes e restos intermediários até o final. Em uma conta com muitos passos, armazenar
estes inteiros pode ser um problema.
Há, no entanto, uma pequena mudança no algoritmo de Euclides que permite expressar o
mdc a , b  como combinação linear de a e b , sem armazenar os quocientes e restos
intermediários. A idéia é expressar cada resto intermediário em termos de a e b , ou seja,
para todo resto intermediário r
k
obter os inteiros x
k
e y
k
, tais que r
k
=a⋅x
k
b⋅y
k
.
Os passos do algoritmo de Euclides são:
a
b
r
1

r
k 2
=
=
=
=
b q
1
r
1
r
1
q
2
r
2
r
2
q
3
r
3
r
k 1
q
k
r
k
O termo geral r
k 2
=r
k 1
q
k
r
k
implica em r
k
=r
k 2
r
k 1
q
k
. Substituindo
r
k 1
=a⋅x
k 1
b⋅y
k 1
e r
k 2
=a⋅x
k 2
b⋅y
k 2
, que são as fórmulas que expressam
r
k 1
e r
k 2
em termos de a e b , obtemos:
r
k
=r
k 2
r
k 1
q
k
=

a⋅x
k 2
b⋅y
k 2

q
k

a⋅x
k 1
b ⋅y
k 1

= a x
k 2
q
k
⋅x
k 1
b  y
k 2
q
k
⋅y
k 1

Ao compararmos esta fórmula com r
k
=a⋅x
k
b⋅y
k
, temos que:
{
x
k
=x
k 2
q
k
⋅x
k 1
y
k
=y
k 2
q
k
⋅y
k 1
1 
Assim, você pode observar que o valor de um par x
k
, y
k
 depende apenas dos valores
x
k 1
, y
k 1
 e x
k 2
, y
k 2
 correspondentes aos dois passos anteriores.
Para começarmos a aplicar a fórmula, falta ainda um detalhe: o primeiro passo.
O primeiro passo do algoritmo é a linha a =b ⋅q
1
r
1
⇒ r
1
=1⋅a q
1
⋅b . Assim, temos
78
x
1
=1 e y
1
=q
1
na fórmula r
1
=a⋅x
1
b ⋅y
1
. Para que a fórmula (1) seja válida também
para k =1 , temos que definir os valores de x
0
, y
0
 e de x
1
, y
1
 .
É fácil ver que, ao definir x
0
, y
0
=0,1  e x
1
, y
1
=1,0  , então x
1
=x
1
q
1
⋅x
0
e
y
1
=y
1
q
1
⋅y
0
, ou seja, a fórmula (1) permanece válida para k =1 .
Parece complicado, não? Na verdade não é. Acompanhe a seguir dois exemplos que vão facilitar
a compreensão.
Exemplo: Vamos refazer o exercício de expressar 1=mdc 4723,2350  em termos de
4723 e 2350 .
À direta das divisões do algoritmo, escrevemos duas colunas para os valores de x
k
e de y
k
. A
cada passo fazemos x
k
=x
k 2
q
k
⋅x
k 1
e y
k
=y
k 2
q
k
⋅y
k 1
. Começamos com as duas
linhas “especiais” com os valores de x
1
, y
1
=1,0  e x
0
, y
0
=0,1  . O algoritmo está
representado a seguir. Em cada linha está escrito o quociente em negrito para facilitar a
visualização.
4723
2350
23
4
=
=
=
=
2⋅235023
1 0 2⋅23 4
5⋅43
1⋅31
x
k
y
k
1 0
0 1
12⋅0=1 0 2⋅1=2
0 102⋅1=102 1102⋅2 =205
15 102 =511 25⋅205 =1027
102 1 511 =613 205 1 1027 =1232
Obtivemos o resultado 1=613 ⋅4723 1232⋅2350.
Para reforçar, veja mais um exemplo. Desta vez vamos utilizar números menores.
Exemplo: Calcule a inversa de 23 módulo 41 .
Temos que mdc 23,41 =1 . Vamos usar o algoritmo de Euclides para escrever 1 em
termos de 23 e 41 .
79
41
23
18
5
3
=
=
=
=
=
1⋅23 18
1⋅18 5
3⋅5 3
1⋅3 2
1⋅2 1
x
k
y
k
1 0
0 1
11⋅0=1 0 1⋅1 =1
01⋅1=1 1 1⋅1 =2
13 1 =4 1 3⋅2 =7
1 1⋅4=5 21 7 =9
4 1 5 =9 7 1⋅9 =16
A conclusão é que 1=9⋅41 16⋅23 . Obtemos, então, a congruência: 16⋅23 ≡1 mod 41.
Portanto a inversa de 23 módulo 41 é 16 . Como 23 16=7 , podemos dizer que 7
é a inversa de 23 módulo 41 . Em outras palavras, x ≡7 mod 41 é a única solução da
equação 23 x ≡1 mod 41 .
A aula 7 iniciou-se com a questão da divisão modular, o que nos levou a duas
perguntas:
1. Quando uma classe  a em ℤ
n
tem inversa?
2. Quando a equação de congruência linear a x ≡b mod n tem solução?
A resposta à primeira pergunta é que uma classe  a em ℤ
n
tem inversa se, e
somente se, mdc a , n =1.
No caso da segunda questão, a resposta é que a equação a x ≡b mod n tem
solução se, e somente se, d =mdc a , n  divide b . Neste caso, a equação
tem exatamente d soluções módulo n .
Outra questão apresentada foi: sendo mdc a , n =1 , como é possível
efetivamente calcular a inversa de a módulo n ? A resposta está em usar a
versão estendida do algoritmo de Euclides, apresentada durante a aula.
80
Atividades
1) Determine as classes que têm inversa em ℤ
9
e em ℤ
20
2) Para cada uma das seguintes equações de congruência, determine se ela tem solução. Caso
tenha, determine todas as soluções.
a) 3 x ≡8 mod 15
b) 2 x ≡20 mod 32
c) 5 x ≡7 mod 11
3) Usando o algoritmo de Euclides estendido, escreva mdc a , b  em termos de a e b
para cada um dos pares de inteiros a seguir.
a) a =35 e b =65
b) a =15 e b =23
4) Calcule a inversa de 45 módulo 91 .
81
Aula 8 - Teorema de Fermat
Nesta aula, você vai estudar o teorema de Fermat e sua aplicação ao cálculo de
algumas potências.
Vamos iniciar o estudo apresentando quem foi Fermat, personagem importante na
história da Matemática.
Texto 31 - Fermat
O francês Pierre de Fermat (1601-1665) estudou direito e trabalhou como juiz em Toulouse. Era,
de certa forma, um matemático amador, mas que fez enormes contribuições a várias áreas da
Matemática.
É considerado um dos precursores do cálculo diferencial, sendo responsável por avanços
notáveis nas áreas de geometria analítica e de probabilidade. Fez contribuições importantes para
a Teoria dos Números.
Fermat trabalhou a Teoria dos Números, enquanto lia uma tradução, para o latim, do livro
Aritmética, do matemático grego Diofante, que viveu de 200/214 a 284/298 d.C. Esse livro
apresentava todos o conhecimento dos gregos em Teoria dos Números, organizado na forma de
perguntas e respostas. Continha mais de 100 problemas, cada qual com uma solução detalhada.
Durante a leitura da publicação, Fermat escrevia notas nas margens largas do livro, detalhando
novas soluções para os problemas, resultados que ele descobria. O matemático morreu em
janeiro de 1665. Sua notável contribuição à Matemática não foi registrada em livros, pois Fermat
não teve interesse em publicar. Ela consta apenas em trocas de cartas com matemáticos
contemporâneos e em anotações soltas.
As contribuições teriam se perdido, se o filho mais velho de Fermat, chamado Clément-Samuel,
não tivesse a preocupação de reunir e divulgar as soluções do pai. Cinco anos após a morte do
matemático, Clément-Samuel publicou uma edição especial de Aritmética, com as observações
de Fermat. A edição foi intitulada Aritmética de Diofante contendo observações de P. de Fermat.
Uma dessas observações é um teorema famoso conhecido como Último Teorema de Fermat.
82
No próximo texto, vamos estudar o “pequeno teorema de Fermat” ou, simplesmente, “teorema de
Fermat”. Fique atento para não confundir com o “último teorema de Fermat”, que vamos
apresentar ao final da aula 8.
Texto 32 – O Teorema de Fermat
Para ter uma idéia do que diz o teorema de Fermat, vamos iniciar com um caso particular: o
inteiro
2
p
2
. Veja o valor de
N =2
p
2
para alguns primos.
p =2  N =2
2
2 = 2 = 2⋅1
p =3  N =2
3
2 = 8 2 = 6 = 3⋅2
p =5  N =2
5
2 = 32 2 = 30 = 5⋅6
p =7  N =2
7
2 = 128 2 = 126 = 7⋅18
p =11  N =2
11
2 = 2.0482 = 2.046 = 11⋅186
Você deve ter percebido que, para estes valores de p primo, vale que p divide
2
p
2
. Esse
fato já era conhecido pelos chineses desde a Antiguidade. O teorema de Fermat mostra que o
fato observado anteriormente é sempre verdadeiro, sendo válido para todo primo p e base
inteira a .
Teorema de Fermat: Seja p um número primo e a um inteiro. Então,
a
p
≡ a mod p
.
Perceba que
a
p
≡ a mod p
é o mesmo que
p ∣ a
p
a 
.
Acompanhe mais alguns exemplos:
p =3 e a =5  3 divide a
p
a = 5
3
5 = 120
p =5 e a =4  5 divide a
p
a = 4
5
4 = 1.020
Vamos demonstrar o teorema de Fermat em breve, mas antes precisamos de um resultado
auxiliar.
83
Vimos que as classes {

0 ,

1 , ... , n 1 } são todas as classes de congruência módulo n .
Qualquer conjunto formado por n elementos, em que cada um representa uma das classes

0 ,

1 , ... , n 1 , é um sistema completo de representantes módulo n , também chamado
sistema completo de resíduos módulo n .
Assim:
• {0,1 ,2 ,3 ,4 } é um sistema completo de resíduos módulo 5.
• {0, 6, 2, 13, 24 } também é um sistema completo de resíduos módulo 5, pois
0 ∈

0 , 6 ∈

1 , 2 ∈

2 , 13 ∈

3 e 24 ∈

4 .
Observe que, em um sistema completo de resíduos, toda classe está representada e cada uma é
representada uma única vez.
Considere o conjunto {0, 1, 2, ... , p 1 } . Seja a inteiro, onde p ∤a . Quais são as classes que
aparecem no conjunto {0⋅a , 1⋅a , 2⋅a , ... ,  p 1 ⋅a } ?
Veja o exemplo a seguir.
Seja p =7 e a =4 . Vamos multiplicar os elementos do conjunto {0, 1, 2, 3, 4, 5, 6 } por 4 :
0⋅4 ≡ 0 mod 7
1⋅4 ≡ 4 mod 7
2⋅4 ≡ 1 mod 7
3⋅4 ≡ 5 mod 7
4⋅4 ≡ 2 mod 7
5⋅4 ≡ 6 mod 7
6⋅4 ≡ 3 mod 7
Observe que, na coluna da direita, aparecem todas as classes

0 ,

1 ,

2 ,

3 ,

4 ,

5 e

6 . Portanto
o conjunto {0⋅4, 1⋅4 , 2⋅4, 3⋅4, 5⋅4, 6⋅4 } forma um sistema completo de resíduos módulo
7 .
84
Viu que interessante? Elabore você mesmo um exemplo. Tente com qualquer p primo e a
inteiro, em que p não divide a , e verifique que o conjunto {0⋅a , 1⋅a , ... ,  p 1 ⋅a } é um
sistema completo de resíduos módulo p .
A demonstração é simples. Lembre-se que 0⋅a =0 ≡0 mod p . Para 1≤i ≤p 1 , como
mdc a , p =1 , p ∤i , então p ∤i ⋅a . Assim nenhum i ⋅a , com 1≤i ≤p 1 está em

0 .
Agora, basta mostrar que os p 1 inteiros 1⋅a , 2⋅a , ... ,  p 1 ⋅a estão todos em classes de
congruência diferentes, o que implica que representam as p 1 classes

1 ,

2 , ... , p 1 .
Se j ⋅a ≡ k ⋅a mod p , com 1≤ j , k ≤p 1 , então:
p ∣  j ⋅a k ⋅a  ⇒ p ∣  j k a ⇒ p ∣  j k  ,
pois mdc  p , a =1 . Mas  p 1 j k p 1 , porque 1≤ j , k ≤p 1 . Logo, se j k
é múltiplo de p , então j k =0 ⇒ j =k .
Assim, dois inteiros distintos j ⋅a e k ⋅a , 1≤ j , k ≤p 1 são não-congruentes módulo p .
Desta forma, demonstra-se a
Proposição: Seja p primo e a inteiro, onde p ∤a , o conjunto {0⋅a , 1⋅a , ... ,  p 1 ⋅a }
forma um sistema completo de resíduos módulo p .
Uma conseqüência é que, ao multiplicar todos os elementos do conjunto
{0⋅a , 1⋅a , ... ,  p 1 ⋅a } , vamos obter um resultado congruente módulo p ao produto
1⋅2⋅...⋅ p 1  , pois as classes são as mesmas. Assim:
1⋅a ⋅2⋅a ⋅3⋅a ⋅⋅ p 1 ⋅a  ≡ 1⋅2⋅3⋅⋅ p 1  mod p
Veja que nesse ponto estamos prontos para demonstrar o teorema de Fermat.
Demonstração do Teorema de Fermat
85
Sejam p primo e a inteiro. Se p divide a , então
a ≡0 mod p e a
p
≡0 mod p
, logo
a
p
≡a mod p
e nada temos a fazer.
Suponha que p não divide a . O artifício é usar o conjunto {1⋅a , 2⋅a , ... ,  p 1 ⋅a } .
Vimos anteriormente que

1⋅a ⋅2⋅a ⋅3⋅a ⋅⋅ p 1 ⋅a  ≡ 1⋅2⋅3⋅⋅ p 1  mod p
Lembre-se que  p 1 ! =1⋅2⋅3⋅⋅ p 1  . Ao colocar os  p 1  inteiros que aparecem no
lado esquerdo da equação anterior como potência, temos:
a
p 1
⋅ p 1 ! ≡  p 1 ! mod p
a
p 1
⋅ p 1 !  p 1 ! ≡ 0 mod p
a
p 1
1  p 1 ! ≡ 0 mod p
p divide
a
p 1
1  p 1 !
É fácil ver que mdc  p ,  p 1 ! =1 , porque o primo p não aparece em
 p 1 ! =1⋅2⋅3⋅...⋅ p 1  . Como
p ∣a
p 1
1 ⋅ p 1 !
e mdc  p ,  p 1 ! =1 .
Assim, p divide
a
p 1
1
, isto é,
a
p 1
≡1 mod p
. Ao multiplicar os dois lados por a ,
obtemos:
a
p
≡ a mod p
,
o que conclui a demonstração do teorema de Fermat.
Uma forma equivalente de enunciar este teorema é:
Teorema: Sejam a e p inteiros e p primo. Se p ∤a , então:

a
p 1
≡1 mod p
Esta formulação é equivalente à primeira, porque:
86
• Se p ∣a , então
a
p
≡a mod p
é sempre verdade.
• Se p ∤a , então
a
p
≡a mod p ⇔ a
p 1
≡1 mod p
.
Texto 33 – Aplicação do Teorema de Fermat à solução de potências
O teorema de Fermat pode ser aplicado à solução de potências módulo n . Veja algumas
aplicações.
Exemplos:
• Determine o resto de
2
182
por 19 .
Como p =19 é primo e 19 ∤2 , temos que
2
19 1
=2
18
≡1 mod 19
.
Sendo 182 =18⋅10 2 , obtemos:
2
182
=2
18

10
⋅2
2
≡ 1
10
⋅4 mod 19 ⇒ 2
182
≡ 4 mod 19
Portanto o resto da divisão de
2
182
por 19 é 4 .
• Encontre o resto da divisão de
3
100
por 7 .
Como p =7 é primo e 7 ∤3 , então
3
71
=3
6
≡ 1 mod 7
.
Sendo 100 =6⋅16 4 , temos:
3
100
=3
6

16
⋅3
4
≡ 3
4
mod 7
Como
3
4
=81 ≡ 4 mod 7
, então o resto de
3
100
por 7 é 4 .
• Mostre que
n =2
70
3
70
é um múltiplo de 13 .
87
Para provar que 13∣n , vamos calcular separadamente as classes de
2
70
e
3
70
.
Como p =13 é primo e 13 ∤2 , então
2
12
≡1mod 13
.
Sendo 70 =5⋅12 10 , obtemos:
2
70
=2
12

5
⋅2
10
≡2
10
mod 13
Para reduzir ainda mais esta potência, podemos usar o fato de que
2
5
=32 ≡6 mod 13
,
logo
2
10
=2
5

2
≡ 6
2
mod 13 ⇒ 2
10
≡ 36 mod 13 ⇒ 2
10
≡ 10 mod 13
.
Assim,
2
70
≡10 mod 13
.
Agora vamos ao
3
70
. Em vez de usar o teorema de Fermat, é mais simples considerar
que
3
3
=27 ≡1 mod 13
. Sendo 70 =3⋅23 1 , temos
3
70
=3
3

23
⋅3
1
≡3 mod 13
.
Concluindo,
2
70
3
70
≡103 mod 13 ⇒ 2
70
3
70
≡0 mod 13
.
Portanto 13 divide
2
70
3
70
.
Texto 34 – Equações diofantinas
Uma aula que trata de Fermat não pode terminar sem menção ao último teorema de Fermat.
Neste texto, vamos apresentar as equações diofantinas, de forma geral, e mostrar como as
congruências módulo n podem ser usadas para resolver algumas destas equações .
88
Uma equação diofantina é uma equação polinomial
para a qual buscamos apenas soluções inteiras.
Veja alguns exemplos:
• a x by =1 . Esta é uma equação diofantina linear: todos os termos têm grau 1 .

x
2
y
2
=z
2
. Esta equação está relacionada ao teorema de Pitágoras. Um trio de inteiros
não-nulos que satisfaz esta equação é chamado de terno pitagórico e são lados de um
triângulo retângulo, tendo o inteiro z como hipotenusa.

x
2
n y
2
=1
. É a chamada equação de Pell. Foi uma das equações diofantinas estudadas
por Fermat.
A equação
x
2
y
2
=z
2
tem infinitas soluções. Fermat estudou o caso de equações
x
n
y
n
=z
n
para n ≥3 e afirmou que nenhuma equação deste tipo tem solução formada por
inteiros não-nulos.
Fermat escreveu este teorema em uma das margens da Aritmética de Diofanto e assinalou que
tinha uma demonstração maravilhosa para o teorema, mas a margem era muito pequena para
contê-la. O matemático nunca escreveu a ninguém sobre sua prova “maravilhosa”. O fato é que
esse teorema se tornou o famoso último teorema de Fermat e desafiou os maiores matemáticos
do mundo pelos 357 anos seguintes.
Em junho de 1993, o matemático inglês Andrew Wiles anunciou uma demonstração do teorema.
Após a divulgação, vários problemas foram encontrados. Em setembro de 1994, Wiles, com a
ajuda do matemático inglês Richard Taylor, seu antigo aluno, conseguiu demonstrar
definitivamente o teorema.
A história do último teorema de Fermat é muito curiosa e rica, repleta de episódios fascinantes.
Uma ótima descrição pode ser encontrada no livro O último teorema de Fermat, de Simon Singh,
Editora Record, 1999.
89
x
y
z
Há outras questões importantes em Teoria dos Números que podem ser facilmente resolvidas
com o uso de congruências. Vamos examinar alguns problemas.
Texto 35 - Uso das congruências para resolver equações diofantinas
Em alguns casos, congruências podem ser usadas para mostrar que uma certa equação não tem
solução, ou para fornecer indicações sobre estas soluções. Vamos explicar essa questão com um
exemplo.
1. Existem inteiros x , y e k tais que
x
2
y
2
=4k 3
?
Uma outra maneira de formular essa questão é a seguinte: algum inteiro da forma n =4k 3
pode ser escrito como soma de dois quadrados?
A resposta é não. Uma maneira simples de provar isso é usar congruência módulo 4 . Observe
que:
x
2
y
2
=4k 3 ⇒ x
2
y
2
≡3 mod 4
Vamos provar que essa última equação não tem solução. Para tal, verificamos os valores
possíveis para
x
2
y
2
módulo 4 .
Há quatro classes de congruência módulo 4 . Seus quadrados são:
Observe que

2
2
=

4=

0
e

3
2
=

9=

1
.
Assim,
x
2
y
2
mod 4
pode ser

0

0=

0 ,

0

1=

1 ou

1

1=

2 . Não há classes  x e  y ,
tais que
 x
2
 y
2
=

3
, ou seja, não há valores de x e y tais que
x
2
y
2
≡3 mod 4
.
90
1 1
1
0 0
0 2
3
x
x
2
Portanto, a equação diofantina
x
2
y
2
=4k 3
não apresenta soluções.
Esta aula teve como tema central a figura de Pierre de Fermat. Falamos um pouco
deste grande matemático. Em seguida, enunciamos e provamos o teorema de
Fermat.
Você também estudou algumas aplicações do teorema de Fermat, a solução de
potências e as equações diofantinas.
91
Trecho escrito por Fermat na margem do livro Aritmética de Diofanto.
Cubum autem in duos cubos, aut quadrato-quadratum in duos quadrato-quadratos,
et generaliter nullam in infinitum ultra quadratum potestatem in duos eiusdem
nominis fas est dividere cuius rei demonstrationem mirabilem sane detexi.
Hanc marginis exigitas non caperet.
Pierre de Fermat
A tradução é:
"É impossível separar um cubo em dois
cubos, uma quarta potência em duas
quartas potências, e, em geral,
qualquer potência mais alta que a
segunda em duas potências iguais. Eu
descobri uma prova verdadeiramente
maravilhosa para isso, que essa
margem é pequena demais para
conter."
Atividades
1) Calcule o resto da divisão:
a) de
2
172
por 17 ;
b) de
3
334
por 23 ;
c) de
5
1266
por 127 .
2) Usando congruência módulo 8, mostre que a equação diofantina
x
2
y
2
8z=6
não tem
soluções.
92
Unidade
Criptografia de Chave Pública
Caro aluno, na unidade 2 você vai estudar as aplicações
em criptografia de chave pública dos conceitos
e resultados matemáticos vistos na unidade 1.
Bom estudo!
93
2
Aula 9 – Teste de Primalidade de Fermat
Uma questão importante em Teoria dos Números e que tem interessantes
aplicações em criptografia é a questão de decidir se um dado inteiro é ou não
primo. Testes que permitem tal decisão são chamados testes de primalidade. O
pequeno teorema de Fermat, estudado na aula passada, dá origem a um teste de
primalidade bastante útil.
Texto 36 - Testes de Primalidade
O teste de primalidade é um algoritmo que determina se um dado número inteiro é um primo. É
importante notar que este é um problema diferente e mais simples que o de fatorar um inteiro.
Na aula anterior, vimos o método simples que consiste em dividir um inteiro n por todos os
primos menores ou iguais a
n . Caso nenhum destes primos seja divisor de n , então n é
primo.
Este é um teste determinístico, ou seja, que determina com certeza se o inteiro dado é primo ou
não. No entanto, é prático apenas para inteiros pequenos ou inteiros que sejam divisíveis por um
primo pequeno. Em criptografia, por exemplo, onde lidamos com inteiros bastante grandes, este
teste simples é de pouca utilidade.
Além dos testes determinísticos, existem os probabilísticos, que são os testes que podem provar
que um número é composto, mas podem indicar, apenas com certa probabilidade, que um inteiro
é primo.
Os testes probabilísticos são muito utilizados por serem mais rápidos que os testes
determinísticos. Além disso, testes probabilísticos modernos, como o de Rabin-Miller, são
extremamente eficientes, no sentido de que, se um inteiro passar em várias execuções do teste,
há grande probabilidade de ele ser primo.
Vamos iniciar a aula apresentando um teste probabilístico simples, derivado do teorema de
Fermat.
94
Texto 37 – Teste de Fermat
O teorema de Fermat dá origem a um teste de primalidade probabilístico muito interessante,
chamado teste de Fermat.
Demonstração.
Seja n um inteiro cuja primalidade queremos determinar. Pelo teorema de Fermat, se
n é primo, então
a
n1
1≡0mod n
para todo a , tal que mdc a ,n=1 .
1. Escolhemos uma base a (geralmente um número primo pequeno), tal que
mdc a ,n=1 .
2. Testamos se
a
n1
1≡0mod n
.
3. Se não vale
a
n1
1≡0mod n
, então n não é primo e dizemos que a base a é
testemunha de que n é composto.
4. Se
a
n1
1≡0mod n
, então n passou no teste para a base a .
Se um inteiro n é composto, mas passa no teste de Fermat para a base a , dizemos que
n é pseudoprimo de Fermat para base a . Por exemplo, o número 341 é pseudoprimo
para a base 2 , pois
2
340
≡1mod 341
, mas 341=11⋅31 é composto. Na verdade,
341 é o menor pseudoprimo para a base 2 .
A existência de pseudoprimos atesta que o teste de Fermat não é determinístico. Mas
pseudoprimos são raros. Por exemplo, há apenas três pseudoprimos para a base 2 menores
que mil: os inteiros 341 , 561 e 645 . Há apenas 245 pseudoprimos para a base 2
entre 1 e um milhão.
Podemos aumentar ainda mais a eficácia do teste de Fermat, aplicando-o repetidamente e
usando várias bases. O número 341 , por exemplo, não passa no teste para a base 3 ,
porque
3
340
≡56mod 341
. Portanto 3 é testemunha de que 341 é composto.
95
O uso de duas bases aumenta a eficácia do teste de Fermat. Veja:
( Entre 1 e
10
5
, por exemplo, há apenas 23 pseudoprimos para as bases 2 e 3 .
( Entre 1 e
2,5×10
9
existem 4.709 pseudoprimos para as bases 2 e 3 .
Ao adicionar a base 5 , restam apenas 2.552 pseudoprimos no mesmo intervalo. Já, ao
acrescentar a base 7 , sobram apenas 1.770 pseudoprimos até
2,5×10
9
.
A expressão “pseudoprimo” também é utilizada para designar um inteiro composto que passa em
um teste probabilístico. Por exemplo, um pseudoprimo de Euler é um composto que passa no
teste de Euler. Há também pseudoprimos de Lucas, pseudoprimos fortes etc.
A raridade dos pseudoprimos tem aplicações práticas importantes na criptografia RSA, em que,
como vamos estudar, deve-se escolher um inteiro que seja produto de dois primos grandes.
Para que seja eficiente, este algoritmo de geração de primos depende de testes de primalidade
rápidos, pois os algoritmos determinísticos são lentos. Muitas vezes é preferível tolerar uma
possibilidade muito pequena de usar um pseudoprimo e utilizar testes muito mais rápidos e simples.
A tabela a seguir mostra o menor pseudoprimo para as bases entre 2 e 20. Uma tabela
semelhante, mas para bases até 200, pode ser encontrada no website da Wikipedia (disponível
em http://en.wikipedia.org/wiki/Pseudoprime).
96
A expressão pseudoprimo é utilizada com significados diferentes nas
referências. Alguns autores chamam de pseudoprimo qualquer inteiro (primo
ou não) que passe no teste de Fermat. Aqui estamos definindo pseudoprimo
como um inteiro composto ímpar que passe nesse teste. Pseudoprimos para
a base 2 recebem também o nome de números de Poulet.
O algoritmo usual para gerar primos grandes é escolher um inteiro ímpar
grande e testar se é primo. Caso não seja, escolhemos arbitrariamente
outro ímpar, ou somamos 2 ao ímpar anterior, e testamos novamente.
Inteiro a Menor
pseudoprimo
para a base a
Inteiro a Menor
pseudoprimo
para a base a
11 15=3· 5
2 341=11· 13 12 65=5· 13
3 91=7· 13 13 21=3· 7
4 15=3· 5 14 15=3· 5
5 124=2
2
· 31 15
341=11· 13
6 35=5· 7 16 51=3· 17
7 25=5
2
17 45=3
2
· 5
8 9=3
2
18 25=5
2
9 28=2
2
· 7 19 45=3
2
· 5
10 33=3· 11 20 21=3· 7
Texto 38 - Números de Carmichael
Neste ponto, pode parecer que a solução para evitar os pseudoprimos seria utilizar muitas bases
diferentes. Como vimos anteriomente, ao usar apenas as bases 2, 3, 5e 7, restam apenas
1.770 pseudoprimos entre 1 e
2,5×10
9
. Usando mais bases, teremos ainda menos
pseudoprimos.
Testar para diversas bases é um procedimento utilizado, mas não é suficiente para garantir
primalidade. O fato é que há inteiros que enganam o teste de Fermat para todas as bases.
Um “número de Carmichael” é um inteiro positivo composto n que satisfaz a congruência
b
n−1
1mod n
para todos os inteiros b co-primos com n . Ele recebe esse nome em
homenagem ao matemático americano Robert Carmichael (1879-1967).
Portanto números de Carmichael são pseudoprimos de Fermat para todas as bases. Por isso, são
algumas vezes chamados de pseudoprimos absolutos.
Uma caracterização para os números de Carmichael é dada pelo teorema de Korselt, de 1899.
97
Teorema (Korselt): Um inteiro positivo composto n é um número de Carmichael se, e somente
se, todo fator primo p de n satisfaz as duas condições a seguir:
1.
p
2
não divide n.
2. p1 divide n1 .
Korselt observou essas propriedades, mas não conseguiu encontrar um exemplo de tal número.
O primeiro exemplo foi descoberto em 1910 por Robert Carmichael, que observou que o número
510 atende às condições do teorema, pois 561=3⋅11⋅17 é livre de quadrados. E vale que:
2∣560, 10∣560 e 16∣560.
O número 561 é o menor número de Carmichael. Os próximos seis números de Carmichael são:
1105=5· 13· 17 4 ∣ 1104,12 ∣ 1104, 16 ∣ 1104
1729=7· 13· 19 6 ∣ 1728, 12 ∣ 1728, 18 ∣ 1728

2465=5· 17· 29 4 ∣ 2464,16 ∣ 2464, 28 ∣ 2464
2821=7· 13· 31 6 ∣ 2820, 12 ∣ 2820, 30 ∣ 2820
6601=7· 23· 41 6 ∣ 6600,22 ∣ 6600, 40 ∣ 6600
8911=7· 19· 67 6 ∣ 8910, 18 ∣ 8910, 66 ∣ 8910
Os números de Carmichael não seriam um problema tão grande para o teste de Fermat, se
houvesse apenas um número finito deles. O problema de existirem infinitos números de
Carmichael permaneceu em aberto por bastante tempo até que, em 1994, os matemáticos
William Alford, Andrew Granville e Carl Pomerance provaram que há infinitos números de
Carmichael.
Todos os números de Carmichael listados anteriormente têm três fatores primos. O número
desse tipo com quatro fatores primos é 41041=7· 11· 13· 41 .
Demonstração do teorema de Korselt
A prova completa do teorema de Korselt depende de alguns resultados que não serão estudados
nesta demonstração. Você pode encontrá-los em Coutinho (1997).
98
Vamos provar aqui metade do teorema e comprovar que um inteiro que satisfaz as duas
condições do teorema é um número de Carmichael.
Seja n um inteiro que satisfaz as condições 1 e 2. Seja b inteiro co-primo com n . Se
p é um fator primo de n , então p ∤b . Pelo teorema de Fermat,
b
p 1
≡1 mod p .
Como, por hipótese,  p1 ∣ n1 , temos que n1= p1q para algum inteiro positivo
q . Portanto
b
p 1
≡1 mod p  ⇒ b
p1

q
≡1 mod p ⇒ b
n1
≡1 mod p 
.
Assim, para todo primo p divisor de n , temos
b
n1
≡1 mod p 
.
Observe agora que a fatoração de n é da forma n=p
1
⋅p
2
⋅⋅p
k
, em que todos os primos
distintos p
1
, p
2
,, p
k
têm expoente 1, pela condição 1 do teorema ( p
i
2
∤n ).
Como provamos que b
n1
≡1 mod p
i
 para todo primo p
i
que divide n , segue-se que
b
n1
1
é múltiplo de todos os p
i
, logo é múltiplo de n=p
1
⋅p
2
⋅⋅p
k
, ou seja,
b
n1
1≡0 mod n ⇒ b
n1
≡1 mod n
.
O inteiro n é, portanto, um número de Carmichael.
Texto 39 – Teste de Miller-Rabin
O teste de primalidade de Miller-Rabin é um teste probabilístico criado em 1976 por G.L. Miller e
modificado por M.O. Rabin. O teste é uma pequena modificação do teste de Fermat, sendo bem
mais eficiente que este, ainda que permaneça uma pequena chance de erro.
Seja n um inteiro positivo ímpar cuja primalidade queremos testar. O inteiro n1 é par. Seja
s a maior potência de 2 que divide n1 , isto é,
n1=2
s
⋅d , onde d é ímpar.
99
Seja 1bn1 um inteiro que servirá de base para o teste. Considere as seguintes potências
de b :
b
d
, b
2d
, b
2
2
d
,  , b
2
s 1
d
, b
2
s1
d
.
Se n for um número primo, então a última desta potência é congruente a 1 módulo n , pois,
pelo teorema de Fermat,
b
2
s
d
=b
n1
≡1 mod n.
Talvez alguma potência anterior a essa seja congruente a 1 módulo n . Seja k o menor
expoente tal que
b
2
k
d
≡1 mod n
, isto é, tal que n divide
b
2
k
d
1.
Se k =0 , então
b
2
0
d
≡1 mod n ⇒ b
d
≡1 mod n.
Caso contrário, se k 0 , então
podemos fatorar
b
2
k
d
1
como
b
2
k
d
1=b
2
k1
d
1b
2
k1
d
1 .
Como n é primo e divide
b
2
k
d
1
, então divide um dos dois fatores à direita na equação
anterior. Mas n não pode dividir
b
2
k1
d
1
pela escolha de k como o menor inteiro, tal que
n divide
b
2
k
d
1
. Portanto n divide
b
2
k1
d
1
, isto é,
b
2
k1
d
≡1 mod n .
Nossa análise revelou o seguinte: se n é primo, então para toda base b , 1bn1 ,
escrevendo as d potências
b
d
, b
2d
, b
2
2
d
,  , b
2
s 1
d
, ou a primeira é congruente a 1
módulo n (caso k =0 como dito anteriormente), ou alguma delas será congruente a 1
módulo n . Se nada disso acontecer, então o inteiro n é composto e dizemos que b é
testemunha de que n é composto.
Se um inteiro positivo composto n passa no teste de Miller-Rabin para a base b , então
afirmamos que n é pseudoprimo forte para a base b .
Exemplos
Vamos ver agora algumas aplicações.
100
1) Vimos que 341 é pseudoprimo de Fermat para a base 2 . Vamos testá-lo com o teste de
Miller-Rabin.
Se n=341 , temos que
n1=340=2
2
⋅85
. Precisamos calcular duas potências:
2
85
e
2
2⋅85
. Calculando as potências obtemos:
2
85
≡32 mod 341
2
170
= 2
85

2
≡32
2
≡1 mod 341
Como nem a primeira potência é congruente a 1 módulo 341, nem alguma delas é congruente a
1 módulo 341, então 2 é testemunha de que 341 é composto.
O segundo pseudoprimo de Fermat para a base 2 é o número de Carmichael 561. Vamos ver se
passa no teste de Miller-Rabin com a base 2?
Se n=561 , então
n1=560=2
4
⋅35
. Temos, então, que calcular as potências módulo
561 a seguir:
2
35
, 2
2×35
, 2
2
2
×35
,2
2
3
×35
. Calculando essas potências, obtemos:
2
35
≡263 mod 561
2
2×35
= 2
35

2
≡263
2
≡166 mod 561
2
4×35
=2
70

2
≡166
2
≡67 mod 561
2
8×35
= 2
140

2
≡67
2
≡1 mod 561
Como nem a primeira potência é congruente a 1 módulo 561, nem alguma delas é congruente a
1 módulo 561, então 2 é testemunha de que 561 é composto.
Mas mesmo esse teste tem os seus algozes. Os primeiros pseudoprimos fortes para a base 2 são
2.047, 3.277, 4.033, 4.681, 8.321, 15.841, 2.934, ... .
Os primeiros pseudoprimos fortes para a base 3 são 121, 703, 1.891, 3.281, 8.401, 8.911,
10.585, ... .
Há mesmo alguns pseudoprimos fortes bem pequenos. É fácil verificar que 25 é pseudoprimo
forte para a base 7.
101
Apesar da existência de pseudoprimos fortes, a aplicação do teste de Miller-Rabin com o uso de
várias bases é extremamente eficiente. Usando as bases 2 , 3 e 5 , o teste falha apenas
para 13 inteiros entre 1 e
2,5×10
10
.
Se adicionamos a base 7 , então existe um único inteiro composto neste intervalo que passa no
teste de Miller, a saber, o inteiro 3.215.031.751 . Adicionando a base 11 , não há
pseudoprimos fortes para as bases 2 , 3 , 5 , 7 e 11 entre 1 e
10
12
. Veja no
endereço http://mathworld.wolfram.com/StrongPseudoprime.html.
Não há um inteiro composto que passe no teste de Miller-Rabin para todas as bases. De fato,
pode-se provar que, se um inteiro n passa nesse teste para n/4 bases, então n é
certamente primo. Embora esta afirmação forneça um critério determinístico de primalidade, este
não é prático, uma vez que testar n/4 bases para inteiros n grandes é totalmente inviável.
Nesta aula, estudamos dois testes de primalidade: os testes de Fermat e o de
Miller-Rabin. São dois testes probabilísticos: um número que não passa em um
destes testes é certamente composto e, se passar no teste, então, muito
provavelmente, será primo. Porém há inteiros que enganam o teste; são os
chamados pseudoprimos.
Pseudoprimos para uma base b são inteiros compostos que passam no teste de
Fermat para a base b , enquanto que pseudoprimos fortes para uma base b
são inteiros compostos que passam no teste de Miller-Rabin para a base b .
Há inteiros, aliás um número infinito deles, que são compostos, mas passam no teste
de Fermat para todas as bases. São os chamados números de Carmichael. Não há
inteiros compostos que passam no teste de Miller-Rabin para todas as bases.
Atividades
1) Mostre que 15 é pseudoprimo para a base 4.
2) Mostre que 25 é pseudoprimo para a base 7.
3) Mostre que 91 é pseudoprimo para a base 3.
4) Mostre que 25 é pseudoprimo forte para a base 7.
102
Aula 10 – Teorema de Euler
Nesta aula, você vai estudar a função  (letra grega – pronuncia-se fi) de Euler e
conhecer o teorema de Euler, que tem grande importância na criptografia RSA.
Texto 40 – Euler
Leonhard Euler nasceu na Basiléia, Suíça, em 1707, e morreu aos 74 anos. Foi, sem dúvida, um
dos grandes matemáticos do século XVIII. As obras completas de Euler ocupam 75 volumes. Foi
estimado que, só para copiar à mão as obras do matemático, uma pessoa levaria 50 anos,
trabalhando oito horas por dia.
Euler ficou completamente cego durante os últimos 17 anos de sua vida. Sua produção
matemática neste período, no entanto, aumentou graças à sua incrível memória e capacidade de
realizar cálculos complexos, sem auxílio de lápis e papel. Cerca de metade de sua produção
matemática foi feita neste período.
Texto 41 – A função  de Euler
Vimos que um inteiro a tem inversa módulo n se, e somente se, mdc a , n =1 . Assim, as
classes que têm inversa em ℤ
n
são:

n
*
={ a ∣1≤a ≤n 1 e mdc a , n =1 }
Quantos elementos tem ℤ
n
*
? Observe que o número de elementos de ℤ
n
*
é o número de
inteiros entre 1 e n 1 que são co-primos com n . Este número é, por definição, n  .
Portanto, para n ≥1,
n =
número de inteiros entre
1
e
n 1
co-primos com
n
.
Exemplos:
• 10 =4
• 12 =4
103
• 15 =8
• 20 =48
Antes de prosseguir, certifique-se de que entendeu a definição de n  , verificando os valores
do exemplo anterior.
A função n  desempenha um papel importante na criptografia RSA, como você verá nas
próximas aulas.
Se o valor de n é pequeno, podemos calcular o valor de n  simplesmente contando os
inteiros entre 1 e n 1 co-primos com n . Porém, para valores maiores de n ,
precisamos utilizar algumas propriedades dessa função. Vamos enunciar estas propriedades
como proposições.
A primeira proposição diz respeito à situação em que n é primo. Nesse caso, todo inteiro a
entre 1 e p 1 é co-primo com p . Provamos assim que:
Proposição 1 - Se p é primo, então  p =p 1.
Exemplos:
• 5 =4
• 17 =16
O próximo caso a tratar é o da potência de um primo.
Se
n =p

, então quantos inteiros entre 1 e n 1 são co-primos com n ? Observe que
mdc a , p

=1
se, e somente se, mdc a , p =1 . Então, a pergunta é: quantos inteiros
entre 1 e n 1 não são divisíveis por p ?
Uma maneira de responder esta pergunta é determinar quantos inteiros entre 1 e
n 1=p

1
são múltiplos de p . A questão é complexa. Os múltiplos de p entre 1 e
n 1=p

1
são:
1⋅p , 2⋅p , 3⋅p , ⋯,  p
1
1 ⋅p
104
Observe que o último número da lista é exatamente
p

p
, ou seja, o último múltiplo de p
antes de
p

1
, e que a lista tem exatamente
p
1
1
inteiros.
Como há
p
1
1
múltiplos de p entre 1 e
p

1
, então existem:
 p

1 

t ot a l de int e ir os
 p
1
1 

múlt iplos de p
= p

p
1

int e ir os copr imos com p

inteiros que não são múltiplos de p entre 1 e
p

1
. Esse é o total de inteiros co-primos
com
p

, logo:
 p

=p

p
1
Provamos então a
Proposição 2 - Se p é primo, então  p

=p

p
1
.
Exemplos:

27 =3
3
=3
3
3
2
=27 9 =18.

25 =5
2
=5
2
5
1
=25 5 =20.
• 64 =2
6
=2
6
– 2
5
=6432 =32.
Observe que a proposição 1 é um caso particular da proposição 2. Se fizermos =1 na
proposição 2 , obtemos:
 p
1
=p
1
p
11
=p p
0
=p 1.
A próxima proposição diz respeito às situações em que desejamos calcular n  , e n é
produto de primos distintos. Com ela e a proposição anterior, somos capazes de calcular n 
para qualquer inteiro n que consigamos fatorar em produto de potências de primos.
Proposição 3 - Se a e b são inteiros positivos e mdc a , b =1 , então
a⋅b =a b  .
105
A demonstração do teorema pode ser encontrada em José Plínio de Oliveira Santos, op. cit.
Alguns exemplos bastam para tornar bem claro como as proposições 2 e 3 são suficientes para
calcularmos n  , para qualquer n a partir de sua fatoração em produtos de primos.
Exemplos:
• 15 =3⋅5 =3 ⋅5 =2⋅4=8. Observe que mdc 3,5 =1 .

375 =3⋅5
3
=3  5
3
=2 5
3
5
2
=2⋅120 =240.
Preste atenção à fórmula a b =a b  que, em geral, não se verifica quando a e b
não são co-primos.
Exemplos:
• 10 =2⋅5 =2 ⋅5 =1⋅4=4. (2 e 5 são co-primos)
• 4 =2.
• 40 =2
3
⋅5 =2
3
 5 =2
3
2
2
 4=16.
• Veja que 40 ≠4 10 . (4 e 10 não são co-primos)
É fácil provar, por indução, que a fórmula vale para o produto de vários fatores, desde que eles
sejam todos primos entre si, ou seja, se a
1,
a
2,
⋯, a
k
são inteiros positivos, tais que
mdc a
i
, a
j
=1 para i ≠ j . Então
a
1
a
2
⋯a
k
=a
1
a
2
⋯a
k
.
Exemplos:
• 120 =8⋅3⋅5 =8 3  5 =4⋅2⋅4=32.

300 =2
2
⋅3⋅5
2
=2
2
3 5
2
=2⋅2⋅20=80.
Podemos concluir esta parte reunindo as propriedades 2 e 3 em uma única fórmula. Se n é
inteiro positivo e fatora-se como
n =p
1

1
⋅p
2

2
⋯p
k

k
106
então:
n = p
1

1
⋅p
2

2
⋯p
k

k

= p
1

1
⋅ p
2

2
⋅⋅ p
k

k
= p
1

1
p
1

1
1
⋅ p
2

2
p
2

2
1
⋅⋅ p
k

k
p
k

k
1

=p
1

1

1
1
p
1

⋅p
2

2

1
1
p
2

⋅⋅p
k

k

1
1
p
k

Na última igualdade, fatoramos cada expressão  p
k

k
p
k

k
1
 por p
k

k
, resultando em
p
k

k

1
1
p
k

. Podemos agora reunir todos os termos p
k

k
da expressão.
Como n =p
1

1
⋅p
2

2
⋯p
k

k
, resulta que:
n =n

1
1
p
1

1
1
p
2

⋅⋅

1
1
p
k

onde p
i
são os primos que dividem n . Pode-se ainda tornar esta fórmula um pouco mais
compacta, usando uma notação comum para produtos, que é o símbolo

.
Podemos escrever, então, que:
n =n

p
i
pr imo
p
i
divide n

1
1
p
i

Antes de passar ao próximo tópico, acompanhe um último comentário que é de extrema
importância para a criptografia RSA.
Vimos anteriormente que é fácil calcular n  , caso conheçamos a fatoração de n . Porém o
que acontece quando não conhecemos essa fatoração? Se n for muito grande, pode ser
computacionalmente impraticável checar diretamente quais inteiros entre 1 e n 1 são co-
primos com n .
De forma geral, a maneira mais rápida de calcular n  é fatorar n . Se não for possível
fatorar n , não há como calcular n  . Este simples fato está na base da segurança do RSA.
Veremos que a chave pública do RSA é um par n , e  , em que n é um produto de dois
107
primos distintos n =p⋅q e o inteiro e tem inversa módulo n  .
A chave privada é o par n , d  , em que d é a inversa de e módulo n  . Quem conhece
n  pode facilmente calcular a inversa de e módulo n  , usando o algoritmo de Euclides
estendido.
Quem gerou as chaves sabe a fatoração n =p⋅q e pode calcular facilmente:
n = p⋅q = p q = p 1 q 1 .
Quem conhece n , mas não conhece a fatoração n =p⋅q , deve fatorar n antes de poder
calcular n  .
A segurança do RSA baseia-se no fato de que calcular n  é essencialmente equivalente a
fatorar n , e que fatorar um inteiro grande n é um problema difícil.
Mas ainda é cedo para explicarmos exatamente como funciona o RSA. Antes disso, deve-se
entender o Teorema de Euler, que é o assunto da próxima parte.
Texto 42 – Teorema de Euler
Vamos iniciar recordando o teorema de Fermat.
Se p é primo e p ∤a , então
a
p 1
≡1 mod p
. O teorema de Euler é uma generalização
deste resultado, apresentando uma fórmula para o caso de um inteiro n qualquer. Veja a
seguir.
Teorema. Sejam n e a inteiros. Se mdc a , n =1 , então
a
n 
≡1 mod n .
Exemplos:
• Sejam a =3 e n =10 . Temos que mdc 3,10=1 . Pelo teorema,
108
3
10 
≡1 mod 10
, ou seja,
3
4
≡1 mod 10
. De fato,
3
4
=81≡1 mod 10
.
• Sejam a =5 e n =12 . Como mdc 5,12=1 , então
5
12 
≡1 mod 12
, ou seja,
5
4
≡1 mod 12
. De fato,
5
2
=25 ≡1 mod 12 ⇒ 5
4
=5
2

2
≡1 mod 12 .
Para demonstrar o teorema, precisamos primeiro provar o lema que vamos enunciar a seguir.
Lembre-se que há n  classes que têm inversa módulo n . Portanto, qualquer conjunto
formado por inteiros que pertencem a classes módulo n distintas e que representam todas as
classes que têm inversa módulo n , tem n  elementos.
Demonstração
Inicialmente, observe que a
1,
a
2,
⋯, a
 n 
são todos inversíveis módulo n , pois o produto
de elementos inversível módulo n é inversível módulo n .
Os inteiros a
1,
a
2,
⋯, a
 n 
representam classes distintas módulo n , porque:

a
i
≡a
j
mod n ⇒ 
1
a
i
≡
1
a
j
mod n ⇒ a
i
≡a
j
mod n ⇒ i =j
(lembre que os a
i
' s estão em classes distintas módulo n , logo a
i
≡a
j
mod n ⇒ i =j .)
Portanto, o conjunto {a
1,
a
2,
⋯, a
n 
} é formado por n  elementos, todos inversíveis módulo
n , e que estão em classes distintas módulo n , o que prova que formam um conjunto de
representantes das classes inversíveis módulo n .
109
Lema: Se {a
1,
a
2,
⋯, a
n 
} é um conjunto de representantes de todas as classes
que tem inversa módulo n , e se  é inteiro que tem inversa módulo n (isto é,
mdc , n =1 ), então {a
1,
a
2,
⋯, a
n 
} também é um conjunto de
representantes de todas as classes que tem inversa módulo n .
Veja que provamos, em outras palavras, que:
{a
1
, a
2
, ⋯, a
n 
}={a
1
, a
2
, ⋯, a
 n 
}.
Agora, estamos em posição de provar o teorema de Euler.
Demonstração do Teorema de Euler
Seja a inteiro, em que mdc a , n =1 . Escolha um conjunto {a
1,
a
2,
⋯, a
n 
} de
representantes das classes que possua inversa módulo n . Pelo lema anterior, o conjunto
{a⋅a
1,
a⋅a
2,
⋯, a⋅a
 n 
} também é um conjunto de representantes das classes que tem inversa
módulo n . Ao multiplicar os elementos desses conjuntos obtemos:
a
1
⋅a
2
⋅⋅a
n 
=a⋅a
1
⋅a⋅a
2
⋅⋅a⋅a
 n 
ou seja,
a
1
⋅a
2
⋅⋅a
n 
≡a⋅a
1
⋅a⋅a
2
⋅⋅a⋅a
n 
mod n
Ao fatorar o termo a do lado direito da congruência, obtemos:
a
1
⋅a
2
⋅⋅a
n 
≡a
 n 

a
1
⋅a
2
⋅⋅a
 n 
mod n
Por fim, observe que o termo a
1
⋅a
2
⋅⋅a
 n 
é um produto de elementos inversíveis módulo
n , logo é inversível módulo n e pode ser cancelado dos dois lados da congruência (o que é
equivalente a multiplicar os dois lados da congruência pela inversa dele). Daí resulta que
a
n 
=1 mod n .
Exemplo:
Calcule o resto da divisão de
9
122
por 28 .
Como 28 =4⋅7 =2⋅6 =12 e mdc 9, 28 =1 , pelo teorema de Euler

9
12
≡1 mod 28
.
110
Sendo 120 =12⋅10 =2 , obtemos:
9
122
=9
12⋅102
= 9
12

10
⋅9
2
≡9
2
mod 28 .
Como
9
2
=81 ≡25 mod 28
, temos que o resto de
9
122
por 28 é 25 .
Para terminar, observe que o teorema de Fermat é um caso especial do teorema de Euler, pois,
se p é primo, vale que  p =p 1 . Logo, para p ∤a , o teorema de Euler assegura que:
a
p 
=a
p 1
≡1 mod p ,
sendo exatamente o teorema de Fermat.
Chegamos ao fim desta aula. Nela, estudamos a função  de Euler, definida por
n  , que é o número de inteiros entre 1 e n 1 que são co-primos com
n .
Você também estudou as principais propriedades da função  . São elas:
•  p =p 1 para todo p primo.
•  p

=p

p
1
=p


1
1
p

• Se mdc a , b =1 , então a⋅b =a b  .
Como um inteiro a possui inversa módulo n se, e somente se,
mdc a , n =1 , então n  é exatamente o número de classes módulo n
que têm inversa.
Vimos o teorema de Euler, que diz que
a
 n 
≡1 mod n
se mdc a , n =1 ,
generalizando o teorema de Fermat, visto na aula passada.
111
O teorema de Euler é o que faz o método empregado na criptografia RSA
funcionar, como veremos na aula sobre o RSA, ainda nesta disciplina.
Atividades
1) Encontre o valor de n  para os seguintes valores de n :
a) n =90 .
b) n =250
c) n =1620
2) Mostre que:
a) {1, 5, 7 11 } é um conjunto de representantes das classes que têm inversa módulo
12 .
b) Multiplique todos os elementos deste conjunto por 7 e mostre que o conjunto
resultante também é formado por representantes de todas as classes inversíveis
módulo 12 .
3) Usando o teorema de Euler, calcule os restos de:
a )
17
81
por 24.
b)
2
4208
por 49.
112
Aula 11 - Teorema Chinês dos Restos
O chinês Qin Jiushao, que viveu de 1202 a 1261, é considerado um dos grandes
matemáticos do século XIII. Jiushao não se dedicava exclusivamente à
Matemática. Possuía conhecimentos em várias áreas e ocupou cargos burocráticos
em diversas províncias chinesas.
O matemático chinês publicou, em 1247, o livro chamado Shu-shu chiu-chang,
tratado matemático dividido em nove seções. Nele aparece, pela primeira vez, o
que hoje é chamado Teorema Chinês dos Restos, assunto desta aula.
Jiushao contribuiu também para a solução de sistemas lineares, cálculo de somas
de séries aritméticas e técnicas de solução de equações. Foi o responsável pela
adoção do símbolo zero na matemática chinesa.
Para iniciar o estudo sobre o Teorema Chinês dos Restos e a aplicação deste à
criptografia, vamos começar com um exemplo.
Texto 43 – Exemplo com duas equações
Em nosso exemplo, encontramos uma solução para o sistema de congruências:
{
x ≡ 4 mod 3
x ≡ 2 mod 5
Uma forma de resolver o sistema é encontrar a solução geral da primeira congruência e fazer a
substituição na segunda.
Como x ≡4 mod 3 , então x =43t , para algum t ∈ℤ . Substituindo este valor na segunda,
obtemos:
x ≡2 mod 5 ⇒ 4 3t ≡2 mod 5 ⇒ 3t ≡2 mod 5
Ao multiplicar pela inversa de 3 módulo 5, que é 2 2⋅3 =6≡1 mod 5  , temos:
113
2⋅3t ≡2⋅2  mod 5 ⇒ 6t ≡4 mod 5 ⇒ t ≡1 mod 5 .
Assim, t =1 5k , para algum k ∈ℤ.
Finalmente, substituindo este valor de t em x =43t , obtemos:
x =43⋅1 5k =43 15k =7 15k
O cálculo anterior mostra que todo inteiro da forma x =7 15k é solução para o sistema e,
reciprocamente, toda solução é da forma x =7 15k . Isso mostra que, se por um lado o
sistema tem infinitas soluções inteiras, por outro, todos são congruentes a 7 módulo 15 .
Dizemos então que a solução é única módulo 15 .
Assim, o sistema
{
x ≡ 4 mod 3
x ≡ 2 mod 5
tem solução única módulo 15 , dada por x ≡7 mod 15 .
Antigos chineses e gregos estudavam este tipo de problema relacionando-o com a astronomia. O
sistema de congruência anterior resolve um problema do tipo: se um astro A foi visível no mês
4 e é visível a cada três meses, e o astro B foi visto no mês 2 e é visível a cada cinco meses,
de quantos em quantos meses serão visíveis juntos?
A resposta, que calculamos resolvendo o sistema, é que serão visíveis no mês 7 e, depois, a
cada 15 meses.
Texto 44 – Exemplo com três equações
Vamos agora usar a mesma técnica para resolver um sistema de três equações.
Apresentamos o exemplo como problema de astronomia, traduzimos em forma de sistema e
resolvemos a questão com a mesma técnica empregada para o sistema de duas equações,
conforme resolução anterior.
114
Problema:
Um certo corpo celeste foi visível no mês 1 e observações anteriores revelam que é visível a cada
11 meses. Outro astro foi visível no mês 3 e sabe-se que é visível a cada 13 meses. Um terceiro
astro foi visível no mês 4 e é visível a cada 15 meses. Quando os três corpos celestes serão
visíveis no mesmo mês?
Chamando de x o mês:
, o primeiro astro é visível nos meses x =1 11t ,
, o segundo em x =3 13k ,
, e o terceiro em x =415l .
Escrevendo em forma de congruência, temos que encontrar uma solução para o sistema:
{
x ≡ 1 mod 11
x ≡ 3 mod 13
x ≡ 4 mod 15
Vamos empregar a mesma técnica utilizada para o sistema anterior, com duas equações. A
primeira congruência nos diz que x =1 11t para algum t ∈ℤ.
Substituindo este valor na segunda congruência, obtemos:
x ≡3 mod 13 ⇒ 1 11t ≡3 mod 13 ⇒ 11t ≡2 mod 13
A inversa de 11 módulo 13 é 6, pois 11⋅6=66 ≡1 mod 13 . Ao multiplicar os dois lados da
congruência por 6, temos:
6 11t  ≡6⋅2 mod 13 ⇒ 66t ≡12 mod 13 ⇒ t ≡12 mod 13 .
Assim, t =12 13k , para k ∈ℤ. Substituindo esse valor de t no valor de x ,
x =1 11t =111 12 13k =133 143k .
Para todo k ∈ℤ, o valor de x =133 143k satisfaz às duas primeiras congruências.
115
Substituindo-o na terceira, temos:
x ≡4 mod 15 ⇒ 133 143k≡4 mod 15 .
Mas 143 ≡8 mod 15 e 133 ≡13 mod 15 , logo
13 8k ≡4 mod 15 ⇒ 8k ≡9 mod 15 ⇒ 8k ≡6 mod 15
A inversa de 8 módulo 15 é 2 , pois 8⋅2 =16≡1 mod 15 . Assim,
2⋅8k ≡2⋅6 mod 15 ⇒ 16 k ≡12 mod 15 ⇒ k ≡12 mod 15 .
Temos então k =12 15w para w ∈ℤ. Substituindo no valor de x, obtemos:
x =133 143k =133 143 12 15w=1.849 2145w .
Assim, os astros serão simultaneamente visíveis no mês 1.849 , e daí a cada 2.145
meses.
Observe que 2.145=11⋅13⋅15 é o produto dos módulos. Novamente, a solução é única
módulo o produto entre os módulos.
Este método de resolver os sistemas lidando com as equações, duas a duas, pode ser
empregado com um número qualquer de equações. Contudo, nem sempre há soluções, como
mostra o próximo exemplo.
Exemplo.
Resolva o sistema:
{
x ≡ 3 mod 5
x ≡ 6 mod 15
Da primeira equação obtemos x =3 5t . Substituindo na segunda, temos:
x ≡6 mod 15 ⇒ 3 5t ≡6 mod 15 ⇒ 5t ≡3 mod 15 .
116
Mas mdc 5,15 =5 ∤3 ; logo a equação anterior não tem solução, o que mostra que o sistema
também não possui.
Texto 45 – Teorema Chinês dos Restos
Vamos agora enunciar e demonstrar o teorema para um sistema com duas equações, utilizando a
mesma técnica anterior.
Teorema Chinês dos Restos
Sejam m
1
e m
2
inteiros positivos e primos entre si. Então o sistema
{
x ≡ b
1
mod m
1
x ≡ b
2
mod m
2
tem solução, e essa solução é única módulo m
1
⋅m
2
.
Demonstração
A primeira equação pode ser escrita na forma x =b
1
k ⋅m
1
. Substituindo na segunda,
obtemos:
x ≡b
2
mod m
2
 ⇒ b
1
k ⋅m
1
≡b
2
mod m
2
 ⇒ m
1
⋅k ≡b
2
b
1
mod m
2

Para que essa congruência tenha solução, é necessário (e suficiente) que mdc m
1,
m
2
 divida
b
2
b
1
.
Como, por hipótese, mdc m
1,
m
2
=1 , então a congruência sempre tem solução.
Seja  o inverso de m
1
módulo m
2
.
⋅m
1
⋅k ≡⋅b
2
b
1
 mod m
2
⇒ ⋅m
1
⋅k ≡b
2
b
1
mod m
2

⇒ k ≡b
2
b
1
 mod m
2
117
Logo, existe t ∈ℤ , tal que k =b
2
b
1
t ⋅m
2
.
Substituindo esse valor de k em x =b
1
m
1
⋅k , temos:
x =b
1
m
1
b
2
b
1
t ⋅m
2

x =b
1
⋅m
1
 b
2
b
1
t ⋅m
1
⋅m
2
x =1⋅m
1
b
1
⋅b
2
⋅m
1
t ⋅m
1
⋅m
2
.
Como  é inversa de m
1
módulo m
2
, então:
⋅m
1
≡1 mod m
2
 ⇒ ⋅m
1
⋅m
2
=1 ⇒ ⋅m
2
=1 ⋅m
1
para algum ∈ℤ .
Substituindo este valor, obtemos:
x =⋅b
2
⋅m
1
⋅b
1
⋅m
2
t ⋅m
1
⋅m
2
, em que  e  são inteiros tais que m
1
m
2
=1 e
podem ser facilmente calculados usando o algoritmo de Euclides estendido.
Provamos então que há solução e, no processo, encontramos uma fórmula que fornece as
soluções.
Vejamos agora a questão da unicidade. A maneira usual de provar unicidade módulo m
1
⋅m
2
é
supor que haja outra solução y e mostrar que x ≡y mod m
1
⋅m
2
.
Sejam, portanto, x e y duas soluções do sistema.
Então:
{
x ≡ b
1
mod m
1
x ≡ b
2
mod m
2
e
{
y ≡ b
1
mod m
1
y ≡ b
2
mod m
2
Subtraindo as equações com o mesmo módulo, resulta em x y ≡0 mod m
1
⇒ m
1
∣x y 
118
e x y ≡0 mod m
2
⇒ m
2
∣x y  .
Mas mdc m
1,
m
2
=1 . Como x y  é múltiplo comum de m
1
e m
2
, então é múltiplo de
mmc m
1,
m
2
=m
1
⋅m
2
, ou seja, x y ≡0 mod m
1
⋅m
2
 ⇒ x ≡y mod m
1
⋅m
2
 .
Observe que a condição mdc m
1,
m
2
=1 garante a existência de solução, porém, segundo a
a demonstração anterior, haverá também solução de mdc m
1,
m
2
1 desde que
mdc m
1,
m
2
 divida b
2
b
1
.
E se tivermos mais de duas equações?
Nesse caso, a condição para garantir a existência da solução é que os módulos sejam dois a dois
primos entre si. Por exemplo, se forem três equações:
{
x ≡ b
1
mod m
1
x ≡ b
2
mod m
2
x ≡ b
3
mod m
3
então, a condição é mdc m
1,
m
2
=mdc m
1,
m
3
=mdc m
2,
m
3
=1 .
Como mdc m
1,
m
2
=1 , o teorema para um sistema de duas equações mostra que há solução
x ≡f
1
mod m
1
⋅m
2
.
As duas equações x ≡b
1
mod m
1
 e x ≡b
2
mod m
2
 podem ser substituídas pela
equação x ≡f
1
mod m
1
⋅m
2
 , pois x é solução das duas equações se, e somente se, a
solução de x ≡f
1
mod m
1
⋅m
2
 .
Assim, o sistema com três equações é equivalente (tem as mesmas soluções) que o sistema com
duas equações:
{
x ≡ f
1
mod m
1
⋅m
2

x ≡ b
3
mod m
3

.
É claro que mdc m
3
, m
1
⋅m
2
=1 , pois mdc m
3,
m
2
=1 e mdc m
3,
m
1
=1 .
119
Ao aplicar novamente o teorema para duas equações, resulta que existe, e é única módulo
m
1
⋅m
2
⋅m
3
, uma solução para:
{
x ≡ f
1
mod m
1
⋅m
2

x ≡ b
3
mod m
3

o que prova o teorema para três equações.
O processo descrito anteriormente permite demonstrar o teorema para um sistema com um
número qualquer de equações. Usando o teorema já demonstrado para duas equações,
reduzimos de n equações para n 1 equações, daí para n 2 etc., sucessivamente até
chegarmos a duas equações.
Dessa forma, concluímos o
Teorema chinês dos restos: Se m
1,
m
2,
... , m
k
são inteiros positivos dois a dois primos entre
si, então o sistema
{
x ≡ b
1
mod m
1
x ≡ b
2
mod m
2

x ≡ b
k
mod m
k
tem uma única solução módulo m
1
⋅m
2
⋅...⋅m
k
.
Texto 46 – Aplicações à criptografia: partilha de um segredo
Há uma aplicação muito interessante do Teorema Chinês dos Restos à criptografia, no que diz
respeito ao problema da partilha de um segredo.
Em criptografia, um esquema de partilha de um segredo é um método para distribuição deste
entre vários participantes de um grupo. Assim, cada um recebe uma parte do segredo, que só
pode ser reconstruído quando todas as partes forem reunidas. Partes individuais não permitem
por si só descobri-lo.
120
Contudo, há aplicações em que não é necessária a junção de todas as partes para que o segredo
seja revelado, mas sim um número suficiente de pessoas. Por exemplo, um segredo industrial
pode ser partilhado entre dez funcionários de uma indústria, de tal forma que, se seis deles se
reunirem, suas partes poderão reconstruir o segredo. A idéia aqui pode ser que talvez alguns
funcionários possam ser subornados, descuidados com sua parte do segredo etc., mas não seis
deles ao mesmo tempo.
Sejam n e k inteiros positivos, k n . Um esquema de divisão de um segredo, em que este
é partilhado em um grupo de n pessoas, é chamado k , n  -crítico se:
1. Ao reunirem-se k ou mais partes, é possível descobrir o segredo.
2. A reunião de um número menor que k de partes não permite descobrir o segredo.
Há vários esquemas simples que são n , k  -críticos. Veja alguns exemplos:
• Suponha que o segredo seja a palavra criptografia e desejamos partilhá-lo entre quatro
pessoas em um esquema 4, 4  -crítico. Um esquema simples seria usar as quatro
partes:
“CRIP _ _ _ _ _ _ _ _”,
“_ _ _ _ TO _ _ _ _ _ _”,
“_ _ _ _ _ _ GRA _ _ _ “ e
“_ _ _ _ _ _ _ _ _ FIA”.
Apenas as quatro partes juntas poderiam recuperar a palavra toda. Uma pessoa que tivesse
apenas uma das partes teria que tentar todas as possibilidades nas outras posições de letras, o
que seria um número muito grande de combinações possíveis.
Note que esse esquema não será bem sucedido, uma vez que o conhecimento de um número
menor que quatro partes provê informação valiosa sobre o segredo. Uma pessoa que tivesse a
primeira parte saberia que se trata de uma palavra com 12 letras começando por “CRIP”. Não
seria difícil adivinhar o resto.
• Outro esquema n , n  -crítico é o seguinte:
Codifique o segredo como um inteiro s . Gere n 1 inteiros aleatórios r
1,
r
2,
... , r
n 1
.
121
Distribua esses inteiros para n 1 pessoas e dê à última pessoa o inteiro
s r
1
r
2
... r
n 1
. Se as n pessoas revelarem juntas suas partes, então podem somá-la:
r
1
r
2
... r
n 1
s r
1
r
2
... r
n 1
=s
No entanto cada parte é totalmente aleatória, não revelando nenhuma informação sobre o inteiro
s .
No próximo texto, vamos usar o Teorema Chinês dos Restos para construir um esquema
n , k  -crítico de partilha de um segredo.
Texto 47 – Partilha de um segredo com o Teorema Chinês dos Restos
Sejam n e k inteiros, k n . Vamos usar o Teorema Chinês dos Restos para desenvolver
um sistema de partilha de um segredo que seja n , k  -crítico. Suponha que o segredo que
desejamos dividir seja codificado como um inteiro s .
Temos que escolher um conjunto S de n inteiros com uma propriedade muito especial.
Seja A o produto dos k menores elementos de S . Então, o produto s de quaisquer k
ou mais elementos é sempre maior ou igual a A .
Seja B o produto dos k 1 maiores elementos do conjunto. Então, o produto de menos de
k elementos do conjunto é sempre menor ou igual a B . Suponha que o conjunto S seja
escolhido de tal forma que:
B  s  A .
Sejam m
1,
m
2,
, m
n
os n elementos do conjunto S . Distribui-se entre os participantes os
pares m
i
, s
i
 , onde s
i
≡s mod m
i
 . Se t participantes se reúnem para tentar descobrir
o segredo, devem resolver o sistema:
x ≡ s
1
mod m
1

x ≡ s
2
mod m
2


122
x ≡ s
t
mod m
t

Como os módulos m
i
, 1≤i ≤t são primos dois a dois, então, pelo Teorema do Resto Chinês, o
sistema sempre tem solução, que é única módulo m
1
⋅m
2
⋅⋅m
t
.
Mas será esta solução igual ao segredo inicial s ?
Seja s
0
a solução encontrada para o sistema anterior. Como s também é solução  já que
s ≡s
i
mod m
i
  e a solução é única módulo m
1
⋅m
2
⋅⋅m
t
, então:
s
0
≡ s mod m
1
⋅m
2
⋅⋅m
t
 .
Se t k , então m
1
⋅m
2
⋅⋅m
t
é o produto de menos de k elementos no conjunto S;
portanto é menor ou igual a B . Assim, podemos apenas garantir que s s
0
é múltiplo de
m
1
⋅m
2
⋅⋅m
t
. Como s B e s
0
m
1
⋅m
2
⋅⋅m
t
B , então s ≠s
0
.
Se t ≥k , então m
1
⋅m
2
⋅⋅m
t
é o produto de k ou mais elementos de S, logo será maior ou
igual a A. Como s A, s
0
≡ s mod m
1
⋅m
2
⋅⋅m
t
 e Am
1
⋅m
2
⋅⋅m
t
, então devemos
ter s =s
0
e o segredo estará recuperado.
No caso de t k , a segurança do sistema está na existência de muitos múltiplos de
m
1
⋅m
2
⋅⋅m
t
entre A e B, uma vez que As B e que s
0
≡ s mod m
1
⋅m
2
⋅⋅m
t
 .
Isto é, queremos que AB seja grande se comparado com todos os produtos m
1
⋅m
2
⋅⋅m
t
possíveis ( t k ).
Exemplo.
Queremos desenvolver um sistema de partilha de um segredo que seja 5,4  -crítico, ou seja,
são cinco participantes, mas o segredo será descoberto se quatro deles revelarem suas partes ao
mesmo tempo.
Seja S ={11, 13, 15, 16, 17 } . O produto dos três maiores elementos é 15⋅16⋅17 =4080 .
123
Por outro lado, o produto dos quatro menores elementos é 11⋅13⋅15⋅16 =34320 . Suponha
que o segredo seja codificado como o número s =32000 . Os participantes receberão o
seguinte:
• s ≡1 mod 11  - participante 1 recebe o par 1,11 .
• s ≡7 mod 13  - participante 2 recebe o par 7,13 .
• s ≡5 mod 15  - participante 3 recebe o par 5,15 .
• s ≡0 mod 16  - participante 4 recebe o par 0,16  .
• s ≡6 mod 17  - participante 5 recebe o par 6,17  .
A reunião de apenas três desses sistemas resulta em um que terá solução s
0
que é única
módulo M, onde M é o produto dos três módulos envolvidos.
Temos que M ≤15⋅16⋅17=4080 . Como s é solução, então s ≡s
0
mod M  . Portanto
fica revelada a classe de s módulo M, o que dá informação relevante sobre s , mas não seu
valor exato.
Nesta aula, você estudou o famoso Teorema Chinês dos Restos. Apresentamos
alguns exemplos e provamos o teorema para módulos primos entre si.
Você aprendeu também uma aplicação prática deste teorema em criptografia, o
que permite construir um sistema de partilha de um segredo que seja n , k  -
crítico.
124
Atividades
1. Resolva o sistema
{
x ≡ 1 mod 11
x ≡ 7 mod 15
2. Resolva o sistema
{
x ≡ 1 mod 7
x ≡ 4 mod 9
x ≡ 5 mod 10
3. Resolva o sistema
{
2x ≡ 1 mod 3
3x ≡ 4 mod 7
x ≡ 1 mod 8
Sugestão: multiplique a primeira equação pelo inverso de 2 módulo 3 e a segunda pelo inverso de
3 módulo 7. Depois, resolva de maneira usual.
4. Crie um sistema de partilha de um segredo que seja 6,3  -crítico.
125
Aula 12 – RSA
Na disciplina “Criptografia Geral”, conhecemos a criptografia de chave pública.
Naquele momento, descrevemos os princípios gerais dos sistemas de chave
pública e mostramos que eles funcionam com base em funções matemáticas que
envolvem conhecimentos na área de Teoria dos Números.
Bem, chegou a hora de descrevermos o funcionamento exato do RSA.
Texto 48 – A criptografia de chave pública
Vamos iniciar com uma revisão do conceito de criptografia de chave pública.
Um sistema desse tipo permite ao usuário enviar uma mensagem de forma segura sem conhecer
qualquer chave secreta. O sistema opera com um par de chaves criptográficas, geralmente
denominadas chave privada e chave pública. Essas chaves são relacionadas matematicamente,
mas o conhecimento de uma delas não permite descobrir o valor da outra.
A chave privada é utilizada para cifrar uma mensagem, enquanto a chave pública será utilizada
para decifrá-la. A figura a seguir ilustra o esquema usual de criptografia de chave pública.
Neste esquema, cada um gera seu par de chaves. Se duas pessoas, Alice e Bob, querem se
comunicar, cada qual gera seu par de chaves D
A
, E
A
 e D
B
, E
B
 , onde D
A
é a chave
privada de Alice e E
A
é sua chave pública. D
B
e E
B
são as chaves privada e pública de Bob.
As chaves públicas podem ser divulgadas e as chaves privadas devem ser mantidas em sigilo.
Para mandar a mensagem P para Bob, Alice a criptografa usando E
B
, o que resulta no texto
criptografado E
B
P  , que é enviado. Para decifrar a mensagem, Bob usa sua chave privada
126
Te xt o
Cla r o
Cifr a ge m
De cifr a ge m
Te xt o
Cifr a do
Te xt o
Cla r o
cha ve
pública
cha ve
pr iva da
D
B
e recupera o texto inicial: D
B

E
B
P 

=P .
Na criptografia moderna, toda mensagem ou, de maneira geral, qualquer informação, é
representada por um número inteiro. Os processos de cifrar e decifrar são, na verdade, funções
que atuam em inteiros. Assim, D
B
e E
B
são funções matemáticas inversas uma da outra:
D
B

E
B
P 

=P e E
B

D
B
C 

=C
tais que o conhecimento de uma delas não permite a dedução da outra. Isto é, são funções que
têm inversa, porém não é computacionalmente viável calcular essa inversa.
Descrevemos assim um sistema de chave pública em linhas gerais. A questão que surge agora é:
como isto é implementado na prática? Que funções matemáticas são utilizadas?
Há várias implementações para o esquema de chave pública: uma das primeiras e mais
conhecidas é o RSA, que vamos estudar em detalhe nesta aula. Mas existem outras
implementações. Algumas destas serão apresentadas ao longo do curso, como o esquema
chamado ElGamal, as técnicas baseadas em curvas elípticas, entre outras.
No próximo texto, vamos detalhar o funcionamento do RSA.
127
A criptografia de chave pública foi inventada, no início da década de 70,
pelo matemático Clifford Cocks, que trabalhava para o serviço secreto
inglês, o GCHQ. A descoberta foi mantida em sigilo até 1997. Em 1976,
um esquema geral de criptografia de chave pública foi proposto por
Diffie e Hellman, que trabalhavam no problema de combinação de
chaves na criptografia tradicional.
Em 1977, os matemáticos Rivest, Shamir e Adleman criaram um
algoritmo de chave pública chamado RSA, as iniciais de seus nomes. O
RSA usa exponenciação módulo o produto de dois primos grandes para
cifrar e decifrar uma mensagem. Sua segurança está baseada na
dificuldade matemática de fatorar um inteiro grande.
Texto 49 – RSA
O primeiro passo no algoritmo é a geração das chaves. Cada participante deve gerar seu par de
chaves.
Geração de chaves
Os passos envolvidos na geração das chaves são:
Passo 1 – Escolha, de modo aleatório, dois primos grandes distintos p ≠q .
Passo 2 – Calcule n =p⋅q .
Passo 3 – Calcule o valor da função de Euler n  :
n = p⋅q = p q = p 1 q 1  .
Passo 4 – Escolha um inteiro e , em que 1e n  e MDC e , n =1 .
Passo 5 – Calcule o inteiro d , tal que 1d n  e d ⋅e ≡1 mod n  .
As chaves são:
- a chave pública é o par e , n  .
- a chave privada é o par d , n  .
Algumas observações sobre os passos do processo de geração de chaves:
• No passo 1 – no procedimento da escolha de dois primos aleatórios distintos, pode-se
escolher um inteiro ímpar aleatório. Depois, faz-se o teste nesse inteiro, para
determinar se é primo. Caso não seja, testa-se o inteiro ímpar consecutivo a ele e
assim por diante. Esse método requer testes de primalidade rápidos que tenham uma
margem de erro muito pequena.
O teste de Fermat, utilizando várias bases, é uma boa opção: é rápido e seguro.
Embora os números de Carmichael enganem o teste, eles são extremamente raros.
• Os passos 4 e 5 podem ser realizados por meio do algoritmo de Euclides estendido.
Como mdc e , n =1 , então o inteiro e tem inversa módulo n  , isto é,
existe inteiro d , 1d n  , tal que e⋅d ≡1 mod n  .
128
Processo de criptografia
Suponha que a mensagem a ser cifrada seja o inteiro P . Em sistemas criptográficos, as
mensagens são transformadas em números e quebradas em blocos de bits de tamanho
especificado. Assim, P é na verdade um certo inteiro de tamanho máximo conhecido. O inteiro
n , que faz parte da chave pública n , e  , deve ser maior que P .
Se um outro participante, Bob, por exemplo, deseja enviar mensagem para alguém, digamos
Alice, deve obter a chave pública de Alice n , e  .
O processo de cifragem é muito simples. A mensagem cifrada é o inteiro C, 1≤C ≤n , tal que
C ≡P
e
mod n 
.
O cálculo de
P
e
mod n 
, uma exponenciação módulo n , pode ser feito de forma rápida.
Processo de decifragem
Decifrar uma mensagem consiste em realizar uma nova exponenciação, desta vez usando a
chave privada d , que só Alice conhece. Para decifrar a mensagem C , Alice calcula
C
d
mod n 
. Com isso, Alice recupera a mensagem original.
Como e⋅d ≡1 mod n  , então e d =1 k n  para algum k ∈ℤ. Logo:
C
d
= P
e

d
= P
e d
= P
1 k n 
= P ⋅ P
n 

k
.
Aqui entra o teorema de Euler. Se mdc P , n =1 , então
P
n 
≡1 mod n .
Portanto:
C
d
= P P
n 

k
≡ P mod n 
.
Assim, a mensagem original P é recuperada.
Exemplo:
129
Faremos um exemplo completo, mas com números pequenos. O exemplo é apenas didático, uma
vez que uma escolha de números tão pequenos não oferece qualquer segurança.
Vamos escolher o módulo e gerar as chaves:
Passo 1 - Escolhemos p =61 e q =71 , dois primos distintos.
Passo 2 - n =61⋅71 =4331 será o módulo utilizado.
Passo 3 - Calculamos n =60⋅70 =4200 .
Passo 4 - Escolhemos e =23 como parte da chave pública.
Passo 5 - Calculamos
d ≡e
1
mod 4200 
. Usando o algoritmo estendido de
Euclides, verificamos que d =3287 é a inversa de 23 módulo 4200 .
A chave pública é o par 23,4331  .
A chave privada é o par 3287, 4331 .
A função de cifragem é a função
E P =P
23
mod 4331 
.
A função de decifragem é a função
D C =C
3287
mod 4331 
.
Por exemplo, a mensagem P =20 cifrada por:
E 20 =20
23
mod 4331 =2388 mod 4331 .
Para decifrar esta mensagem, usamos a função
D 2388 =2388
3287
mod 4331 =20 mod 4331 
que recupera a mensagem original.
Evidentemente, o módulo escolhido anteriormente n =4331 é muito pequeno para oferecer
qualquer segurança real. Por outro lado, mesmo para esse valor pequeno, as contas de
exponenciação são grandes para serem feitas à mão.
No próximo texto, mostraremos como as contas anteriores foram feitas utilizando um pacote de
computação algébrica.
130
Texto 50 – O GP/Pari
Há muitos programas matemáticos de uso geral que lidam bem com aritmética modular. Há vários
deles comerciais, com o Maple e o Mathematica, alguns gratuitos e outros ainda de código livre.
Um programa de código livre bastante popular entre os matemáticos que trabalham com Teoria
dos Números é o programa PARI/GP. Há versões para diversos sistemas operacionais e pode ser
obtido (código fonte inclusive) no endereço http://pari.math.u-bordeaux.fr/. Há um manual
detalhado e um tutorial para os que quiserem utilizar o programa.
Pari/GP possui amplo suporte para aritmética modular, testes de primalidade, fatoração de
inteiros etc. As contas do exemplo anterior foram feitas usando o Pari/GP. Segue, na figura, a
captura de tela das operações realizadas, utilizando o GP/Pari em sistema Linux.
Vamos acompanhar, passo a passo, as operações realizadas:
Linha 1 – Definimos n =61⋅71 =4331 . A multiplicação é dada pelo símbolo ∗ .
Observe que o sistema numera os resultados obtidos. O prompt ? é o sinal que o
sistema aguarda nova entrada. O valor 4331 está agora armazenado na variável n .
131
Linha 2 – Armazenamos na variável fi o valor e ule r phi n  . Esta é a função n  .
Assim, fi =4200 =4331  .
Linha 3 – Definimos e =23 .
Linha 4 – Definimos a =Mod e , fi =Mod 23,4200  . A função Mod é utilizada
para aritmética modular. Assim, o que fizemos foi definir a =23 mod 4200 .
Linha 5 – Para calcular a inversa de 23 módulo 4200 , pedimos o valor de 1 / a ,
que o sistema entende como a inversa de 23 mod 4200. O resultado é
3287 mod 4200.
Linha 6 – Definimos d =3287 .
Agora que calculamos as chaves, vamos criptografar a mensagem.
Linha 7 – Definimos P =20 mod 4331 .
Linha 8 – A mensagem criptografada é
C =P
e
. A exponenciação em GP/Pari é dada
pelo símbolo ^ . Obtivemos C =2388 mod 4331 .
Linha 9 – Para decifrar a mensagem, fazemos
C
d
, o que resulta em 20 mod 4331 ,
que é a mensagem original P.
Embora o GP/Pari não seja um sistema específico para criptografia, é uma ferramenta bastante
útil para todos aqueles interessados em Teoria dos Números.
Texto 51 – Considerações práticas: escolha dos primos e preenchimento de bits
Várias questões práticas devem ser consideradas em uma implementação real do RSA.
A primeira está relacionada com a escolha dos primos. Os primos p e q devem ser grandes,
uma vez que é fácil fatorar um inteiro que tenha um fator primo pequeno.
132
Outra consideração é que p e q não devem ser muito próximos. Pois, nesse caso, o inteiro
n =p⋅q pode ser facilmente fatorado com o método de fatoração de Fermat.
Outro fator que deve ser considerado é que as mensagens m=0 e m=1 resultam em
c =0
e
=0
e
c =1
e
=1
, o que fornece a um atacante informação sobre o texto claro.
Além disso, caso a mensagem m e a chave pública e forem tão pequenas que
m
e
n
,
então a mensagem transmitida é
m
e
. Um atacante pode recuperar a mensagem m
simplesmente extraindo a raiz e-ésima de
m
e
(como número real).
Os problemas expostos anteriormente exigem que se faça alguma forma de pré-tratamento da
mensagem, um sistema de preenchimento de bits, conhecido por ambos os participantes, e que
evite que mensagens pequenas sejam criptografadas.
Outro problema é que o sistema descrito é totalmente determinístico, devido à ausência de
qualquer componente aleatória. Assim, uma vez escolhido um par de chaves, uma mesma
mensagem clara M resultará sempre na mesma mensagem criptografada C .
Nesse caso, um atacante pode cifrar uma série de palavras escolhidas, criando seu próprio
dicionário de textos criptografados. Ao tentar decifrar uma mensagem criptografada, ele pode
comparar a mensagem com seu dicionário, procurando por textos cifrados para os quais ele
conhece o texto claro, e assim ganhar informação sobre a mensagem.
Observe que o uso de preenchimento da mensagem é uma técnica antiga, utilizada há séculos.
Uma forma comum é adicionar no início e/ou no final da mensagem expressões escolhidas em
uma lista combinada. O recipiente da mensagem pode facilmente reconhecer as expressões e
retirá-las, mas o uso destas expressões torna o número de textos cifrados possíveis,
correspondendo a um certo texto claro, bem extenso.
133
A solução é algum tipo de pré-tratamento que faça com que a mesma
mensagem clara na entrada resulte em diferentes textos cifrados na
saída do algoritmo, tornando impraticável a construção de um
dicionário de textos cifrados.
Existem diversos esquemas de preenchimento padronizados que são usados em implementações
reais do RSA, tais como o PCKS.
Texto 52 – Assinatura digital
A criptografia de chave pública também é utilizada como um meio de assinatura digital. Esta, tal
como uma assinatura em papel, consiste em um bloco de informação adicionado à mensagem
que comprova a identidade do emissor, confirmando quem ele diz ser.
Há três usos básicos para assinaturas digitais:
1. Garantir autenticidade – como a chave pública é conhecida, qualquer pessoa pode usar a
chave pública de Alice e enviar uma mensagem para ela fazendo-se passar por Bob.
Outro exemplo: uma pessoa deposita R$ 100,00 em uma agência bancária, intercepta a
mensagem da agência para a central, informando o depósito, e passa a repetir a
mensagem várias vezes.
2. Garantir integridade – uma pessoa pode interceptar uma mensagem que foi enviada por
Bob para Alice (usando a chave pública de Alice), alterar a mensagem, recriptografar a
mensagem com a chave pública de Alice e enviá-la novamente a Bob.
3. Garantir não-repudiação – Bob pode enviar uma mensagem para Alice e depois negar tê-
la enviado. Uma assinatura digital garante que só Bob poderia ter enviado a mensagem.
Todos esses três serviços são garantidos por um esquema de assinatura. Mas como implementar
um esquema de assinatura digital usando a criptografia de chave pública?
Existem vários esquemas de assinatura digital. Veja um exemplo a seguir.
134
Saiba mais informações sobre o PCKS no endereço
http://www.rsasecurity.com/rsalabs/node.asp?id=2124.
Esquema
Bob usa sua chave privada para criptografar algum texto que ele e Alice conhecem. Alice usa a
chave pública de Bob para decifrar a mensagem e comparar com o texto combinado. Se são
iguais, então foi de fato Bob quem enviou a mensagem, uma vez que só ele conhece sua chave
privada.
O texto combinado deve ser algo que não possa ser reutilizado; caso contrário, um atacante
poderia usar posteriormente a mesma assinatura.
Usualmente, utilizam-se as chamadas funções de hash, que têm como entrada a mensagem e
resultam em um inteiro. Uma função de hash deve possuir características que tornem improvável
que dois textos distintos tenham o mesmo hash e seja impossível inverter a função (a partir do
hash obter o texto).
Assim, Bob envia uma mensagem para Alice, criptografando a mensagem com a chave pública
de Alice, e assina, criptografando o hash da mensagem com sua chave privada. Ou seja, Bob
envia:

E
A
P  , D
B
H P 

onde:
- E
A
é a chave pública de A;
- D
B
é a chave privada de B;
- P é o texto claro;
- H é a função de hash utilizada.
Alice recebe este par e usa sua chave privada para recuperar a mensagem P =D
A
E
A
P  .
Ao obter a mensagem, calcula seu hash H P  . Então, ela aplica E
B
na segunda parte do
par, obtendo E
B
D
B
H P  , e compara com H P  . Se forem idênticos, então a assinatura
confere.
135
Texto 53 – A segurança do RSA
A segurança do RSA está baseada na dificuldade de dois problemas matemáticos:

- a fatoração de inteiros grandes;
- o problema RSA.
Este último pode ser definido como o problema de extrair a e-ésima raiz módulo de um inteiro
composto n . Em outras palavras, dados inteiros n , e e
m
e
mod n
, como se faz para
deduzir o valor de m .
Atualmente, a melhor forma de resolver o problema RSA é fatorar o inteiro n . Se um atacante
conseguir fatorar n =p⋅q , então poderá calcular facilmente o valor de n  e, assim, o valor
de
d ≡e
1
mod n
, descobrindo a chave privada.
Até o momento, não se conhece um algoritmo para fatoração de inteiros grandes, em um
computador clássico, que funcione em tempo polinomial. Nem foi provado que um algoritmo deste
tipo possa existir.
Portanto, para chaves suficientemente grandes, o RSA é seguro, levando-se em conta o
conhecimento matemático atual do problema da fatoração de inteiros grandes.
Em 1993, Peter Schor mostrou que uma nova forma de computadores, o computador quântico,
pode, em princípio, fatorar inteiros grandes em tempo polinomial, usando o algoritmo de Schor.
No entanto não se espera que haja computadores quânticos em funcionamento antes de 2015.
Até meados de 2005, o maior inteiro fatorado usando métodos gerais é um inteiro de 663 bits, isto
é, escrevendo estes inteiros em base 2, usamos 663 bits. Quando falamos em métodos gerais,
aludimos ao fato de que há inteiros muito maiores já fatorados, mas inteiros de um tipo
específico, o que permite métodos especiais de fatoração.
O inteiro de 663 bits foi fatorado como parte do esforço de quebrar o RSA-200, um dos desafios
RSA (falaremos sobre isto a seguir). Este feito foi alcançado com um grande número de
computadores, trabalhando de forma distribuída. Estima-se que um computador com processador
de 2.2 Ghz levaria algo em torno de 75 anos para fatorar esse inteiro. Normalmente, são usadas
chaves RSA de 1024 a 2048 bits, o que dá uma idéia da segurança que estes algoritmos
oferecem.
136
Texto 54 – Os desafios RSA
Os desafios RSA são colocados pela empresa RSA Laboratories. Trata-se de inteiros semiprimos
(produto de dois primos distintos) e o desafio é fatorá-los. Os inteiros são numerados de acordo
com seu tamanho. No início, eram numerados conforme o número de dígitos decimais. O primeiro
desafio foi o RSA-100 (um semiprimo com 100 dígitos decimais), que foi fatorado em poucos
dias.
O último inteiro a ser fatorado foi o RSA-200 (200 dígitos decimais), fatorado em maio de 2005. O
maior inteiro na lista de desafios RSA é um inteiro de 2048 bits (RSA-2048), com 617 dígitos
decimais. Atualmente, é oferecido um prêmio de US$ 200 mil para quem conseguir fatorar este
número. Isso mostra a confiança existente de que números desta ordem ainda estão muito além
dos que podem ser fatorados hoje em dia.
Nesta aula, detalhamos o funcionamento do algoritmo de chave pública RSA,
discutimos alguns detalhes de sua implementação e aspectos de sua segurança.
Vimos também um software de computação algébrica de uso geral bastante útil
para aqueles interessados em Teoria dos Números, o GP/Pari. Exploramos uma
das aplicações importantes da criptografia de chave pública, que é a de possibilitar
as assinaturas digitais.
Atividade
1) A chave pública de Alice é (143,23). Bob utiliza essa chave para criptografar uma mensagem
para Alice. Bob envia a mensagem C =2 . Quebre o código, descubra a chave privada de Alice
e revele a mensagem original.
137
Aula 13 – Logaritmo Discreto
Nesta aula, você vai estudar os logaritmos discretos, que têm aplicação importante
em criptografia, em especial no esquema de troca de chaves de Diffie-Hellman, no
algoritmo de assinatura digitas (digital signature algorithm – DSA) e no sistema
criptográfico ElGamal.
Texto 55 – Raízes primitivas Módulo n
Pelo teorema de Euler, que você estudou na aula 10, se a e n são inteiros primos entre si,
então:
a
!¦ n )
≡1 ¦mod n ),
o que mostra que a equação
a
x
≡1 ¦mod n )
sempre tem pelo menos uma solução.
De fato, em geral, esta equação tem várias soluções, inclusive, em alguns casos, inteiros
positivos menores que !¦n ). Chamaremos de ordem de a módulo n , denotado or d
n
¦a ) ,
ao menor inteiro positivo m , tal que
a
m
≡1 ¦mod n )
.
Exemplos:
- A ordem de 7 módulo 15 é 4 , pois:

7
1
≡7 ¦mod 15 ).

7
2
=49≡-1 ¦mod 15 ) .

7
3
=7⋅49 ≡-7≡8 ¦mod 15 ) .

7
4
=¦ 7
2
)
2
≡¦-1 )
2
≡1 ¦mod 15 ).
138
Dessa forma, percebemos que
7
4
≡1 ¦mod 15 )
e que nenhuma potência de 7 menor que
4 é congruente a 1 módulo 15 . Logo, or d
15
¦7 )=4 . Observe que !¦15 )=8.
Como atividade, desenvolva os dois exemplos a seguir.
- A ordem de 4 módulo 9 é 3 . Observe que !¦9 )=6.
- A ordem de 2 módulo 9 é 6 .
Dos três exemplos anteriores, apenas no último temos que a ordem de a módulo n é !¦n ).
No entanto, nos três casos, or d
n
¦a ) é um divisor de !¦n ) . Esse fato é conseqüência do
teorema a seguir.
Teorema: Sejam a e n inteiros positivos primos entre si e seja or d
n
¦a ) a ordem de a
módulo n . Então,
a
x
≡1 ¦mod n )
se, e somente se, x é múltiplo de or d
n
¦a ) .
Demonstração
Seja m=or d
n
¦a ) . Por um lado, se x é múltiplo de m , então x =m⋅k para algum k
inteiro. Logo
a
x
=a
m⋅k
=¦ a
m
)
k
≡1
k
=1 ¦mod n ).
Por outro lado, se x não é múltiplo de m e
a
x
≡1 ¦mod n )
, então sejam q e r ,
respectivamente, o quociente e o resto da divisão de x por m :
x =m⋅q +r , 0 r m.
Observe que r ≠0 , pois m ∤x . Portanto
a
x
=a
m⋅q +r
⇒ a
x
=a
r
⋅¦ a
m
)
q
⇒ 1≡a
r
⋅1
q
¦mod n ) ⇒ a
r
≡1 ¦mod n ) ,
em que usamos
a
x
≡1 ¦mod n )
e
a
m
≡1 ¦mod n )
.
Porém
a
r
≡1 ¦mod n )
e 0r m contrariam a escolha de m como o menor inteiro
139
positivo, tal que
a
m
≡1 ¦mod n )
.
Assim, se x não é múltiplo de m , então não pode ocorrer
a
x
≡1 ¦mod n )
, o que conclui a
demonstração do teorema.
Pelo teorema de Euler,
a
!¦ n )
≡1 ¦mod n )
. Dessa forma, pelo teorema anterior, !¦n ) é
necessariamente um múltiplo da ordem de a módulo n , o que confirma a observação feita
após os exemplos.
Quando !¦n ) é a ordem de a módulo n , então dizemos que a é uma raiz primitiva
módulo n .
Exemplo: O inteiro 2 é uma raiz primitiva módulo 9 , porque a ordem de 2 módulo 9 é
!¦9 )=6.
Texto 56 – Grupos e Subgrupos
Quando estudamos aritmética modular, definimos ℤ
n
como o conjunto das classes de
congruência módulo n e definimos soma e produto de classes.
Você também estudou que estas operações atendem a certas propriedades, caracterizando
assim uma estrutura chamada anel.
O conjunto dos elementos inversíveis módulo n , denotado ℤ
n
*
, é fechado para a operação de
multiplicação. Isso significa que o produto de dois elementos em ℤ
n
*
é um elemento em ℤ
n
*
, ou
seja, o produto de duas classes inversíveis é uma classe inversível.
Acontece que ℤ
n
*
, com a operação de multiplicação de classes, atende as seguintes
propriedades que caracterizam uma estrutura denominada grupo:
140
Raízes primitivas têm importantes aplicações em criptografia.
Você estudará algumas delas ainda nesta aula.
• associatividade: ¦ ¯ a⋅
¯
b )⋅¯ c =¯ a⋅¦
¯
b⋅¯ c ) .
• comutatividade: ¯ a⋅
¯
b =
¯
b⋅¯ a .
• existência do elemento neutro: ¯ a⋅
¯
1=¯ a .
• existência do elemento inverso: para toda classe ¯ a existe classe ¯ o , tal que ¯ a⋅¯ o=1 .
Podemos dizer, então, que ℤ
n
*
é um grupo.
Estudo de grupos
O estudo de grupos é muito interessante. Os grupos podem subdividirem-se em subgrupos.
Se G é um subconjunto de ℤ
n
*
, então este herda automaticamente a associatividade e
comutatividade de ℤ
n
*
.
Caso G seja fechado para o produto de classes, possua a classe
¯
1 e todo elemento em G
contenha uma inversa em G , então G é um subgrupo dentro do grupo ℤ
n
*
.
Todo elemento a ∈ℤ
n
*
gera um subgrupo de ℤ
n
*
da seguinte forma: se m é a ordem de a
módulo n , então o conjunto
〈 ¯ a 〉=¦1, ¯ a , ¯ a
2
, ¯ a
3
, ., ¯ a
m -1
¦
forma um subgrupo de ℤ
n
*
.
Para compreender que 〈 ¯ a 〉 é subgrupo, observe que
• 〈 ¯ a 〉 é fechado para o produto.
De fato, qualquer potência de ¯ a está no conjunto, pois dado z inteiro positivo,
existem q e r , tais que z =q ⋅m+r , 0≤r m .
Logo,
¯ a
z
=¯ a
q ⋅m +r
=¦ ¯ a
m
)
q
⋅¯ a
r
=
¯
1
q
⋅¯ a
r
=¯ a
r
.
Como 0≤r m , então
¯ a
z
=¯ a
r
∈〈 ¯ a 〉
.

¯
1 ∈〈 ¯ a 〉 .
• Dados
¯ a
j
em 〈 ¯ a 〉 , com 1≤ j ≤m -1 , sua inversa é
¯ a
m - j
, que também está em
〈 ¯ a 〉 , pois
¯ a
j
⋅¯ a
m - j
=¯ a
m
=
¯
1 .
141
Observe que, se m é a ordem de a módulo n , então os inteiros
1, a , a
2,
., a
m -1
são
todos não-congruentes módulo n .
Para provar isso, note que, se
a
i
≡a
j
¦mod n )
, com 0≤i ≤j ≤m -1 , então, ao dividir
ambos os lados da congruência por a
i
 o que é possível, pois mdc ¦a , n )=1 , temos
a
j -i
≡1 ¦mod n )
. Se i ≠ j , então a congruência anterior contraria a minimalidade de m ,
porque 0≤ j -i m .
O subgrupo 〈 ¯ a 〉 é chamado subgrupo cíclico de ℤ
n
*
gerado por ¯ a . Quando a for uma raiz
primitiva módulo n, acontece algo muito interessante: como as !¦n ) classes
¦1, ¯ a , ¯ a
2
, ¯ a
3
, ., ¯ a
!¦ n )-1
¦
são todas não-congruentes módulo n e ℤ
n
*
tem exatamente
!¦n ) elementos, então

n
*
=¦1, ¯ a , ¯ a
2
, ¯ a
3
, ., ¯ a
!¦n )-1
¦ ,
isto é, o próprio grupo ℤ
n
*
é cíclico e gerado por 〈 ¯ a 〉 .
Observe que nem todo inteiro positivo n tem uma raiz primitiva. Pode-se mostrar que n tem
raiz primitiva se, e somente se, n for da forma 2, 4,
p
o
e
2⋅p
o
, em que p é um primo
ímpar.
Exemplos:

• Vimos anteriormente que 2 é raiz primitiva módulo 9 . O inteiro 9 é da forma
3
2
.
• Não há raiz primitiva módulo 8. De fato, ℤ
8
*

¯
1 ,
¯
3 ,
¯
5 ,
¯
7 ¦ .
A classe
¯
1 tem ordem 1 e as classes
¯
3 ,
¯
5 e
¯
7 possuem ordem 2 , enquanto que
!¦8 )=4.
142
Texto 57 – Logaritmos discretos
Os logaritmos discretos na aritmética modular têm propriedades semelhantes ao logaritmos de
números reais positivos. Por isso, antes de definir logaritmos discretos, vamos fazer uma breve
revisão da função logaritmo.
Sejam b e y números reais positivos, com b ≠ 1. O logaritmo de y na base b é um
número real x , tal que
y =b
x
, o que se denota por
x =log
b
y
Exemplos:
• log
2
8 =3 , pois
2
3
=8
.

log
1
2
16 =-4
, porque
¦
1
2
)
-4
=16 .
• log
10
0,01 =-2 , pois
10
-2
=0,01
.
• log
10
1 =0 , porque
10
0
=1
.
São conseqüências diretas da definição que, para todo b real positivo, b ≠ 1.
٠ log
b
1=0
٠ log
b
b =1
São válidas também as seguintes propriedades, em que b, y e z são reais positivos e b ≠ 1.
٠ log
b
¦ yz )=log
b
¦ y )+log
b
¦z )
٠ log
b
¦ y / z )=log
b
¦ y )-log
b
¦z )
٠ log
b
¦ y
r
)=r ⋅log
b
y
٠
y =b
log
b
¦ y )

143
Todas essas propriedades podem ser demonstradas facilmente a partir da definição de logaritmo.
Vamos agora voltar à aritmética modular.
Seja p um primo e a uma raiz primitiva módulo p (lembre-se que sempre há raízes
primitivas módulo um primo p ). A ordem de a módulo p é !¦ p )=p -1 , isto é, p -1
é a menor potência de a congruente a 1 módulo p .
Assim, os inteiros
a
1
, a
2,
., a
p -1
são todos não-congruentes módulo p . Como ℤ
p
*
tem
p -1 elementos, então

p
*
=¦a
1
, a
2,
., a
p -1
¦.
Para todo inteiro b , se p ∤b , então
¯
b ∈ℤ
p
*
. Logo existe um único inteiro j ,
0≤ j ≤p -1 , tal que:
b ≡a
j
¦mod p )
.
Vamos denotar este inteiro j por ind
a , p
¦b ) e chamá-lo índice do inteiro b na base a
módulo p .
Portanto, por definição, ind
a , p
¦b ) é o menor inteiro maior ou igual a zero, tal que:
a
ind
a , p
¦ b )
≡b ¦mod p ).
Exemplo:
As potências de 2 módulo 11 são as seguintes:
2
0
=1 2
4
=16 ≡5 2
8
=256 ≡3
2
1
=2 2
5
=32 ≡10 2
9
=512 ≡6
2
2
=4 2
6
=64 ≡9 2
10
=1024 ≡1
2
3
=8 2
7
=128 ≡7
¦mod 11 ) ,
o que mostra que 2 é raiz primitiva módulo 11.
144
A tabela anterior indica também os valores de ind
2 , 11
¦ x ) . Por exemplo, ind
2 , 11
¦1 )=0 , pois
2
0
=1
e ind
2 , 11
¦6 )=9 . E
2
9
≡6 ¦mod 11 )
.
A próxima tabela mostra os valores de ind
2 , 11
¦ x ) para todos os valores de x entre 1 e 10.
Compare com os valores da tabela anterior para ter certeza de que entendeu a definição de
índice.
x 1 2 4 8 5 10 9 7 3 6
ind
2 , 11
¦ x )
0 1 2 3 4 5 6 7 8 9
Agora, podemos verificar que esta função ind
a , p
¦x ) satisfaz propriedades semelhantes às
propriedades do logaritmo listadas anteriormente.
Vale que:
1) ind
a , p
¦1 )=0
2) ind
a , p
¦a )=1
3) ind
a , p
¦xy ) ≡ ind
a , p
¦x )+ind
a , p
¦ y ) ¦mod ¦ p -1 ))
4) ind
a , p
¦x
r
) ≡ r ⋅ind
a , p
¦x ) ¦mod ¦ p -1 ))
As duas primeiras afirmações são conseqüências diretas da definição. Em relação à terceira,
temos que
a
ind
a , p
¦ x )
≡x ¦mod p ) e a
ind
a , p
¦ y )
≡y ¦mod p ).
Ao multiplicar as duas congruências obtemos:
a
ind
a , p
¦x )+ind
a , p
¦ y )
≡ xy ≡ a
ind
a , p
¦ xy )
¦mod p ) ,
Mas, como
a
é raiz primitiva módulo
p
, então
a
u
≡a
v
mod p ⇒ u ≡v ¦mod p -1 )
.
Portanto, a congruência anterior mostra que:
145
ind
a , p
¦xy ) ≡ ind
a , p
¦x )+ind
a , p
¦ y ) ¦mod ¦ p -1 )) .
Em relação à quarta afirmação, ind
a , p
¦x
r
) ≡ r ⋅ind
a , p
¦x ) ¦mod ¦ p -1 )) , basta fazer
x =y na terceira afirmação e aplicá-la novamente.
Exemplo:
Na tabela anterior, para x =9 e y =7 temos:
ind
2 , 11
¦9 )=6 e ind
2 , 11
¦7 )=7
ind
2 , 11
¦9⋅7 )=ind
2 , 11
¦63 )=ind
2 , 11
¦8 )=3
Por outro lado, ind
2 , 11
¦9 )+ind
2 , 11
¦7 )=6 +7 =13≡3 ¦mod 10 ) , de acordo com a terceira
afirmação.
As quatro afirmações listadas anteriormente, válidas para a função ind
a , p
¦x ) , mostram que, se
definirmos esta função como
ind
a , p
¦x ): ℤ
n
*
- ℤ
n -1
então a função possui as mesmas propriedades do logaritmo usual.
Devido à complexidade dos temas levantados durante a aula 13, segue uma dica:
leia algumas vezes os pontos abordados até compreendê-los totalmente. São
conhecimentos importantes, em virtude da variedade de aplicações em criptografia
que usam os conceitos de raiz primitiva módulo n , os grupos e grupos cíclicos,
e o logaritmo discreto de base a módulo p .
146
Esta função é chamada logaritmo discreto de base a módulo
p e tem várias aplicações interessantes em criptografia.
Você vai estudá-las na próxima aula.
Atividades
1) Encontre todas as raízes primitivas módulo 18 .
2) Calcule:
a) a ordem de 3 módulo 8 .
b) a ordem de 5 módulo 16 .
c) a ordem de 7 módulo 20 .
3) Elabore uma tabela com todos os valores da função ind
a , p
¦x ) com a =2 e p =13 .
147
Aula 14 – Aplicações à Criptografia
Nesta aula, você vai estudar as aplicações à criptografia dos conceitos vistos nas
aulas anteriores, sobre ordem módulo n , raiz primitiva módulo n e sobre o
problema do logaritmo discreto.
Texto 58 – Teste de Lucas
Na última aula, observamos que existe uma raiz primitiva módulo n se, e somente se, n for
da forma 2 , 4 ,
p
o
e
2p
o
, em que p é um primo ímpar.
Em particular, se p é primo, então existe uma raiz primitiva b módulo p . Como b tem
ordem !¦ p )=p -1 , então os p -1 elementos
b , b
2,
b
3,
., b
p -1
são todos não-congruentes módulo p , o que mostra que

p
*
=¦b , b
2,
b
3,
., b
p -1
¦ .
Isso demonstra, portanto, que ℤ
p
*
é cíclico.
Esse fato pode ser usado como teste de primalidade. Dado um inteiro n , caso possamos testar
facilmente se o grupo ℤ
n
*
dos inteiros inversíveis módulo n é cíclico de ordem n -1 , então
podemos testar a primalidade de n .
A questão é como provar que ℤ
n
*
é cíclico de ordem n -1 . Isso é o mesmo que perguntar se
existe algum inteiro b inversível módulo n , tal que b tenha ordem n -1 .
Dado um inteiro b inversível módulo n , caso b possua ordem n -1 , então
b
n -1
≡1 ¦mod n )
e n -1 é o menor expoente.
Se
b
n -1
≡1 ¦mod n )
e n -1 não é ordem de b , então n -1 é um múltiplo da ordem de
148
b , ou seja, existe k ∈ℤ tal que n -1=k ⋅or d
n
¦b ) .
Seja p um divisor primo de k . Como k divide n -1 , então p também é divisor de
n -1 . Assim, temos que:
n -1
p
=
k
p
or d
n
¦b ) ⇒ b
n -1
p
=¦b
or d
n
¦ b )
)
k
p
≡1 ¦mod p ) .
Concluímos que, se
b
n -1
≡1 ¦mod n )
e a ordem de b não é n -1 , então existe algum
divisor primo de n -1 , tal que
b
n -1
p
≡1 ¦mod p )
.
Deste modo, dado inteiro n , se encontrarmos uma base b tal que
-
b
n -1
≡1 ¦mod n )
- para todo divisor primo p de n -1 não vale
b
n -1
p
≡1 ¦mod p )
,
então b tem ordem n -1 , o que mostra que n é primo.
O teste de Lucas consiste em encontrar uma tal base b .
Teste de Lucas
Seja n um inteiro positivo ímpar e b um inteiro tal que 2≤b ≤n -1 . Se
b
n -1
≡1 ¦mod n )
e se todo fator primo p de n -1 vale
b
n -1
p 1 ¦mod p ) , então
n é primo.
Observe que o teste de Lucas é um teste que prova que n é primo. Os testes de Fermat e
Miller-Rabin, apresentados anteriormente, podem provar que n é composto, mas não que n
é primo.
Há duas dificuldades claras para a aplicação do teste de Lucas:
1ª) Temos que conseguir fatorar n -1 .
149
2ª) É preciso encontrar a base b correta.
Em relação à primeira dificuldade: muitos primos n grandes interessantes são tais que n -1
pode ser fatorado facilmente, o que possibilita a aplicação do teste de Lucas.
Exemplo:
Seja n =71 e b =11 . Temos que
11
70
≡1 ¦mod 71 )
. Como 70 =2⋅5⋅7 , devemos testar
as classes módulo 71 de 11 elevado aos expoentes
70
2
=35 ,
70
5
=14 e
70
7
=10 .
Temos:

11
35
≡70 1 ¦mod 71 ) .

11
14
≡54 1 ¦mod 71 ) .

11
10
≡32 1 ¦mod 71 )
.
Como nenhuma delas é congruente a 1 módulo 71 , resulta que 11 tem ordem 70 e
71 é um inteiro primo.
O exemplo anterior é bastante artificial. É mais fácil provar que 71 é primo tentando dividi-lo pelos
primos menores que
.71≈8,43 . No entanto, o teste de Lucas é muito eficiente para verificar a
primalidade dos chamados números de Mersenne.
Já falamos deles, você se lembra? Os números de Mersenne são números da forma
M
n
=2
n
-1 .
Veja que, para que M
n
seja primo, é necessário, mas não é suficiente, que n seja primo.
Assim, temos que analisar apenas os inteiros da forma M
p
=2
p
-1 para p primo.
O teste de Lucas é muito eficiente quando aplicado a números desta forma, o que permite provar
a primalidade de primos de Mersenne muito grandes. Esta é uma das razões pela qual os
maiores primos conhecidos sejam os de Mersenne.
150
Texto 59 – Esquema de troca de chaves de Diffie-Hellman
O esquema de troca de chaves de Diffie-Hellman é um protocolo criptográfico que permite que
dois participantes possam combinar uma chave secreta comunicando-se através de um canal
inseguro. É baseado no problema do logaritmo discreto.
Foi publicado pela primeira vez em 1976 por Whitfield Diffie and Martin Hellman. No entanto havia
sido descoberto, mas mantido em sigilo, anos antes pelo matemático Malcom Williamson, que
trabalhava para o serviço secreto britânico.
A forma mais simples do esquema usa o grupo multiplicativo ℤ
p
*
dos elementos inversíveis
módulo p , onde p é primo. Já vimos que este grupo é cíclico. Seja g um elemento
primitivo módulo p ; podemos escrever:

p
*
=¦g , g
2,
g
3,
., g
p -1
¦.
Dizemos que g é um gerador para o grupo cíclico ℤ
p
*
. Qualquer raiz primitiva módulo p é
um gerador do grupo.
O esquema de troca de chaves funciona da seguinte maneira: suponha que Alice e Bob estejam
se comunicando por um canal inseguro e desejam combinar uma chave secreta para utilizar em
algum sistema criptográfico simétrico.
1. Alice e Bob combinam usar um certo primo p e uma certa raiz primitiva g módulo
p . Os atacantes podem conhecer p e g .
2. Alice escolhe um inteiro aleatório o e envia
g
o
¦mod p )
a Bob.
3. Bob escolhe um inteiro aleatório ß e envia
g
ß
¦mod p )
a Alice.
4. Alice calcula
¦g
ß
)
o
=g

¦mod p )
.
5. Bob calcula
¦g
o
)
ß
=g

¦mod p )
.
151
Dos dez maiores primos conhecidos atualmente, sete deles são primos de
Mersenne, incluindo os quatro primeiros. Você pode conferir os primos
recordes no endereço http://primes.utm.edu/largest.html#biggest.
Dessa forma, os dois conhecem o valor de
g
o ß
¦mod p )
. E qualquer atacante que interceptar
toda essa comunicação terá acesso somente a
g , g
o
, g
ß
.
Para calcular
g
o ß
¦mod p )
, o atacante teria que conhecer também o valor de o ou de ß , isto
é, calcular o logaritmo discreto de
g
o
¦mod p )
ou de
g
ß
¦mod p )
na base g . Se o primo
p e os inteiros a e b são grandes o suficiente, então este problema é computacionalmente
complexo.
O algoritmo pode ser implementado da mesma forma com qualquer grupo cíclico G e gerador
g .
Repare que o esquema anterior não envolve uma forma de autenticação. O atacante poderia
passar-se por Bob e combinar uma secreta com Alice. Aliás, poderia interceptar e modificar todas
as comunicações, combinar chaves secretas distintas com Alice e Bob e passar a receber a
mensagem de um deles, decifrá-la, modificá-la, criptografá-la novamente e enviá-la a outro.
Se for utilizado algum outro esquema para garantir autenticação, o sistema de troca de chaves de
Diffie-Hellman é considerado bastante seguro. É importante que a ordem do grupo multiplicativo
G utilizado seja um primo ou tenha algum fator primo grande; caso contrário é bem fácil
resolver o problema do logaritmo discreto, tendo como base um gerador de G.
Se for utilizado G =ℤ
p
*
, em que p é primo, então G tem ordem p -1 . Nesse caso, uma
boa escolha são os chamados primos de Sophie German, que são da forma p =2q +1 , onde
q também é primo. Assim, p -1 =2q tem um fator primo grande.
O esquema de Diffie-Hellman é bastante utilizado na prática, sendo inserido em alguns protocolos
criptográficos.
Antes de finalizar esta seção, vamos fazer um exemplo prático, ainda que com números
artificialmente pequenos.
Exemplo
1. Alice e Bob escolhem o primo p =31 e a raiz primitiva módulo 31 dada por g =3 .
152
Verifique que g =3 de fato é raiz primitiva módulo 31 . Esta verificação pode ser feita
usando o programa GP/Pari. O comando znor de r ¦x ) dá a ordem de x módulo n .
Verifique que znor de r ¦Mod ¦3,31 ))=30.
2. Alice escolhe o inteiro a =10 e envia
3
10
≡25 ¦mod 31 )
. Usando GP/Pari, verifique que
Mod ¦3 ^ 10,31 )=Mod ¦25,31 ) .
3. Bob escolhe o inteiro b =17 e envia
3
17
≡22 ¦mod 31 )
. Utilizando GP/pari, verifique
esta congruência.
4. Alice calcula
22
10
mod 31=5 mod 31
.
5. Bob calcula
25
17
mod 31=5 mod 31
.
A chave secreta combinada entre os dois é 5 .
Texto 60 – ElGamal
O algoritmo ElGamal é um algoritmo criptográfico assimétrico baseado no esquema de troca de
chaves de Diffie-Hellman, proposto pelo criptógrafo egípcio Taher Elgamal em 1984.
Este algoritmo vem sendo muito utilizado atualmente. Faz parte de diversos sistemas
criptográficos, incluindo o software livre GNU privacy guard, e de várias implementações do PGP.
Assim como no esquema de troca de chaves de Diffie-Hellman, o algoritmo começa com a
escolha de um grupo cíclico G , de ordem n , e de um gerador g de G. Uma escolha
simples, mas não a mais segura, é escolher um p primo e G =ℤ
p
*
, o grupo das classes
inversíveis módulo p . O gerador g pode ser qualquer raiz primitiva módulo p . O grupo
G tem ordem p -1 .
Confira os passos do algoritmo a seguir.
153
Processo de geração de chaves
1. Alice escolhe um grupo cíclico G , de ordem n , e um gerador g do grupo.
2. Alice escolhe, de forma aleatória, um inteiro x , 0≤x ≤n -1 .
3. Alice calcula
h =g
x
. A chave pública de Alice é ¦G , n , g , h ) , isto é, o grupo G , sua
ordem n , o gerador escolhido g e o elemento h ∈G . A chave secreta de Alice é o inteiro
x .
Processo de cifragem de uma mensagem
4. Bob quer enviar a mensagem M para Alice. Bob codifica a mensagem como um elemento
de G , de uma forma bem conhecida por todos, e consegue a chave pública de Alice.
5. Bob escolhe aleatoriamente um inteiro y , 0≤x ≤n -1 e calcula
c
1
=g
y
e c
2
=M⋅h
y
6. Bob envia o texto cifrado ¦c
1,
c
2
) para Alice.
Processo de decifragem da mensagem
7. Alice usa sua chave secreta x e calcula
c
1
x
c
2le ft
¦i)
-1 . Este é o texto claro original, porque:
c
1
x
c
2le ft
¦i)
-1
=¦M⋅h
y
)⋅¦¦g
y
)
x
)
-1
=
M⋅h
y
g
xy
=
M⋅¦g
x
)
y
g
xy
=
M⋅g
xy
g
xy
=M
Como só Alice conhece a chave secreta x , só ela pode calcular
c
1
x
c
2le ft
¦i)
-1 .
A segurança do algoritmo ElGamal reside na dificuldade do problema do logaritmo discreto para
um grupo cíclico G , que é o de calcular o expoente x , dados gerador g ∈G e um elemento
h =g
x
. Há vários modos de escolher o grupo G . A escolha G =ℤ
p
*
, com p primo, não é
considerada segura.
154
Uma opção interessante é um subgrupo de ℤ
p
*
. Se o primo p é escolhido de forma que
p =2 q 1 , com q primo, é possível optar por um elemento g ∈ℤ
p
*
, que tenha ordem q ,
e usar o subgrupo
G ={g , g
2,
, g
q
}
, com q elementos.
O sistema ElGamal é tipicamente utilizado para combinar uma chave entre duas partes. Esta
chave será utilizada por um sistema simétrico, que é muito mais rápido. Trata-se, então, de um
sistema de criptografia híbrido:
- usa criptografia assimétrica para combinar a chave;
- e utiliza criptografia simétrica para cifrar e decifrar a mensagem.
Texto 61 – Algoritmo de assinatura digital
Há diversos sistemas de assinatura digital de chave pública que estão baseados na dificuldade do
problema do logaritmo discreto. Um sistema que merece atenção especial é o DSA – Digital
Signature Algorithm – que passamos a descrever agora.
O DSA é um padrão de assinatura digital adotado pelo governo americano. Foi proposto pelo
NIST (National Institute of Standards and Technology) em 1991, adotado como padrão em 1993 e
confirmado como padrão, com pequenas modificações, em 1996 e 2000.
O sistema usa um par de chaves, uma pública outra privada. Como todo sistema de assinatura
digital, divide-se em três partes:
- geração das chaves pública e privada;
- assinatura de uma mensagem;
- verificação da assinatura.
Vamos agora descrever o sistema.
Suponha que nossa velha conhecida, a expert em criptografia Alice, queira enviar uma
mensagem M ao seu correspondente usual Bob, sempre disposto a testar novos sistemas
criptográficos.
155
Geração das chaves
Para a geração das chaves, Alice deve fazer os seguintes procedimentos:
1. Escolher um primo p de L bits, ou seja,
2
L-1
p 2
L
, onde L é um múltiplo de
64 entre 512 e 1024 . Quanto maior o valor de L , maior será a segurança do
sistema. Hoje, recomenda-se usar apenas o valor L=1024 .
2. Selecionar um primo q de 160 bits que seja divisor de p -1 . É claro que, para que
isso possa ser feito, o primo p deve ter sido escolhido de tal forma que p -1 tenha um
divisor primo de 160 bits.
3. Escolher o inteiro h , 1h p -1 , tal que
h
p -1
q
mod p > 1
. Seja
g = h
p -1
q
mod p
.
4. Escolher o inteiro x tal que 0x q .
5. Calcular
y =g
x
mod p
.
A chave pública de Alice é ¦ p , q , g , y ) . Sua chave privada é x .
Para se comunicar com outras pessoas, Alice pode usar os mesmos valores ¦ p , q , g ) e utilizar
outros valores de x e de
y =g
x
mod p
.
Assinatura
Para assinar uma mensagem M , Alice deve:
1. Gerar um inteiro aleatório k , 1k q . Esse inteiro será usado apenas uma vez por
mensagem.
2. Calcular
r =¦g
k
mod p )mod q
.
156
3. Calcular
s =¦k
-1
¦H ¦M )+x⋅r ))mod q
, onde M é a mensagem a ser enviada, e
H ¦M ) é o hash de M , obtido pelo uso da função de hash SHA-1.
A assinatura é o par ¦r , s ) .
Alice envia para Bob a mensagem M e a assinatura ¦r , s ) , usando algum sistema
criptográfico. Por exemplo, Alice pode usar o RSA, utilizando a chave pública de Bob.
Bob recebe estes valores, decodifica e tem acesso a M , r e s . Agora, ele deve verificar a
assinatura de Alice.
Verificação
Para verificar a assinatura ¦r , s ) de Alice, Bob precisa:
1. Calcular
w =¦s )
-1
mod q
.
2. Calcular u
1
=¦H ¦M )⋅w )mod q , onde H ¦M ) é o hash da mensagem M usando a
função SHA-1.
3. Calcular u
2
=¦r ⋅w )mod q .
4. Calcular
v =¦¦g
u
1
⋅y
u
2
)mod p )mod q
.
A assinatura será válida se v =r .
Bastante trabalho, não é? Por que funciona?
Para começar, como
g = h
p -1
q
mod p
, então:
g
q
≡ h
q ⋅
p -1
q
≡ h
p -1
≡ 1 mod p
,
157
em que usamos o pequeno teorema de Fermat. Como q é primo e
g
q
≡1 mod p
, então g
tem ordem q módulo p .
Como
s =¦k
-1
¦H ¦M )+x⋅r ))mod q
, então ao multiplicar os dois lados da congruência por
k ⋅s
-1
, temos
¦k ⋅s
-1
)s ≡ ¦k⋅s
-1
)¦k
-1
¦H ¦M )+x⋅r )) mod q ⇒ k ≡ H ¦M )s
-1
+x⋅r ⋅s
-1
mod q
.
Substituindo
w ≡s
-1
mod q
, obtemos
k ≡ H ¦M )⋅w +x⋅r ⋅w mod q .
Como g tem ordem q e k ≡ H ¦M )⋅w +x⋅r ⋅w mod q , então
g
k
≡ g
H ¦M )⋅w +x⋅r ⋅w
mod q
≡ g
H ¦M )⋅w
⋅g
x⋅r ⋅w
mod q
≡ ¦g
H ¦M )⋅w
⋅y
r ⋅w
mod p ) mod q
≡ ¦g
u
1
⋅y
u
2
mod p ) mod q
Como
v =¦¦g
u
1
⋅y
u
2
)mod p )mod q
e
r =¦g
k
mod p )mod q
, então a congruência
anterior nos informa que, se a assinatura for correta, então v =r .
Iniciamos esta aula com o teste de primalidade de Lucas e depois apresentamos
três sistemas criptográficos de chave pública que usam o problema do logaritmo
discreto:
- o sistema de troca de chaves de Diffie-Hellman;
- o sistema de criptografia de mensagens ElGamal;
- e, por último, o sistema de assinatura digital DSA.
Na próxima aula, você vai estudar as curvas elípticas e verá que todos estes
sistemas criptográficos descritos possuem versões que as utilizam.
158
Atividades
1) Usando o teste de Lucas com a base b =3 , prove que n =31 é primo.
2) Alice e Bob querem combinar uma chave secreta usando o esquema de Diffie-Hellman. Eles
escolhem o primo p =23 e o gerador g =5 . Alice escolhe o inteiro a =9 e Bob escolhe o
inteiro b =7 . Cada um mantém sua escolha em segredo. Como ocorre a troca de chaves e
qual é a chave combinada?
159
Aula 15 – Criptografia com o uso de Curvas Elípticas
Chegamos ao último tópico desta disciplina: as curvas elípticas. Este estudo é de
grande importância na Teoria dos Números e vem sendo muito pesquisado
atualmente.
A utilização de curvas elípticas em criptografia foi proposta inicialmente pelos
matemáticos Neal Koblitz e Victor Miller, em 1985. Como veremos, sistemas como
ElGamal, Diffie-Hellman e o Algoritmo de Assinatura Digital podem ser modificados
para o uso de curvas elípticas.
A vantagem desta utilização é que por ela se consegue o mesmo nível de
segurança, com chaves menores, do que o obtido nos sistemas de chaves públicas
tradicionais. A desvantagem é que a implementação é mais complexa.
Nesta aula, vamos definir curvas elípticas, mostrar a existência de um grupo
formado por certos pontos da curva e, em seguida, falar sobre as aplicações em
criptografia.
Texto 62 – Curvas Elípticas
Uma curva elíptica é uma curva plana definida por uma equação do tipo
y
2
=x
3
a x b
e que seja não-singular. Isso significa que seu gráfico não tem auto-interseção e não possui as
chamadas cúspides, que são pontos onde o gráfico da curva não é suave, existindo uma “quina”.
Assim, nem toda curva de equação
y
2
=x
3
a x b
é um curva elíptica. Para alguns valores de
a e b , a curva é singular, isto é, seu gráfico não é suave sem auto-interseção.
Pode-se mostrar que uma curva dada pela equação
y
2
=x
3
a x b
é não-singular se, e
somente se, o valor de
=4a
3
27b
2
160
for diferente de 0 .
O parâmetro  é chamado discriminante da curva.
As figuras a seguir mostram os gráficos de algumas curvas elípticas.
Figuras elaboradas com o uso do software Mathematica
(Fonte: http://mathworld.wolfram.com/EllipticCurve.html. Acesso em: 25 ago. 2005)
Como você pode observar, o gráfico de uma curva elíptica pode ter um ou dois “pedaços”.
Os gráficos anteriores são de curvas definidas para os reais, ou seja, os valores dos parâmetros
a e b são números reais e os valores das variáveis x e y na equação são reais. No
entanto, uma curva elíptica pode estar definida sobre qualquer corpo. Em criptografia, estamos
interessados em curvas elípticas definidas sobre corpos finitos.
Mas o que é um corpo finito?
Texto 63 - Corpos Finitos
Um corpo é um conjunto com duas operações ― normalmente soma e multiplicação ― que
satisfazem às propriedades usuais da soma e da multiplicação de números reais.
A soma deve ser comutativa, associativa, ter elemento neutro (zero) e elemento simétrico (para
todo x no conjunto deve existir um x ).
A multiplicação tem de ser comutativa, associativa, possuir elemento neutro (um) e todo elemento
não-nulo deve possuir uma inversa (para todo x ≠0 deve existir o elemento 1 / x ). Além disso,
161
precisa ser válida a propriedade da distributividade da multiplicação em relação à soma
( x⋅ y z =x⋅y x⋅z ).
O conjunto dos racionais ℚ , dos reais ℝ e dos complexos ℂ são exemplos de corpos.
Você já trabalhou bastante com um corpo finito: para p primo, o conjunto ℤ
p
, as operações
de soma e de produto de classes são um corpo finito com p elementos.
Se F é um corpo finito com q elementos, então q é uma potência de algum primo p , ou
seja,
q =p
m
, para algum primo p e inteiro m . Além disso, todos os corpos com q
elementos são equivalentes de certa maneira. Esta “equivalência” é dada pela noção de isomorfismo.
Por causa dessa equivalência, é comum falar-se no corpo finito de
p
m
elementos, como se
houvesse apenas um. Este corpo é denotado
GF  p
m

ou
F
p
m .
A notação
GF  p
m

vem da expressão em inglês “Galois Field” que, em português, significa
“corpo de Galois”
1
, em homenagem ao matemático francês Évariste Galois, que fez contribuições
relevantes para a teoria dos corpos.
Galois morreu aos 20 anos em um duelo, aparentemente, para defender a honra de uma mulher.
Existe um ramo muito bonito da álgebra chamado Teoria de Galois, que trata dos corpos e
soluções de polinômios.
Agora, vamos voltar ao estudo das curvas elípticas.
1 A estrutura algébrica corpo é chamada em inglês de “field”.
162
Um corpo finito é formado por um número finito de elementos.
Dois corpos finitos com mesmo número de elementos q são
isomorfos. Isso significa que existe uma aplicação bijetiva entre
estes corpos que preserva a soma e a multiplicação.
Texto 64 – Grupo de uma Curva Elíptica
Um aspecto importante sobre as curvas elípticas é a possibilidade de definir uma operação de
soma nos pontos da curva. O conjunto de pontos obtido com esta operação é um grupo.
Nos sistemas criptográficos de Diffie-Hellman e ElGamal, há uma escolha inicial de um grupo
cíclico G . Uma implementação simples desses sistemas usa G =ℤ
p
*
ou um subgrupo cíclico
dele. Os sistemas criptográficos de curva elíptica utilizam como grupo G o grupo dos pontos da
curva.
Antes de ingressar na criptografia, é preciso que você compreenda este grupo de pontos da
curva. Por isso, vamos descrevê-lo para seu melhor entendimento.
Descrição do grupo de pontos
Dados dois pontos P e Q em uma curva elíptica, podemos identificar de maneira única um
ponto R como o terceiro ponto de interseção da reta que passa por P e Q com a curva.
Observe a figura a seguir.
163
Lembre-se que um grupo é um conjunto com uma operação
(tipicamente soma ou multiplicação) que é comutativa, associativa,
possui elementos neutro (zero) e simétrico (para todo x no
conjunto há um x ).
Se a reta que passa por P e Q for tangente à curva em algum dos pontos, esse será
considerado o terceiro ponto de interseção R .
Na próxima figura, o terceiro ponto de interseção é o próprio Q .
Se a reta que passa por P e Q é vertical, então definimos o terceiro ponto de interseção
como o “ponto no infinito”. Essa noção de ponto no infinito é importante para podermos definir o
grupo dos pontos na curva. Esse ponto ocupa o papel do 0 (elemento neutro) do grupo.
Dessa forma, toda reta vertical (paralela ao eixo y ) passa pelo ponto no infinito. As figuras, a
seguir, mostram os dois casos em que o terceiro ponto de interseção é o ponto no infinito.
Podemos, assim, definir uma operação de soma ( + ) nos pontos da curva da seguinte forma:
consideramos o ponto no infinito como o elemento neutro 0 da soma e dizemos que
P Q R =0 , quando P , Q e R são pontos da curva e estão em uma mesma reta.
164
Nas quatro figuras anteriores, temos as seguintes somas:
(Fonte: http://en.wikipedia.org/wiki/Elliptical_curve. Acesso em: 25 ago. 2005)

Desse modo, se P , Q e R estão na mesma reta, então P Q R=0 , ou seja,
R =P Q  .
Caso R
1
e R
2
estejam em uma reta vertical, então R
1
R
2
0=0 , ou seja, R
2
=R
1
. O
resultado é que, dados pontos P e Q , para encontrar o ponto P Q devemos traçar a reta
que passa por P e Q .
O terceiro ponto de interseção com a curva é o ponto R =P Q  . Em seguida, traçamos a
vertical que passa por R . O ponto em que essa vertical corta a curva é o ponto R =P Q .
Veja na figura a seguir:
165
Agora que definimos a soma de dois pontos P e Q , podemos definir k ⋅P , para k inteiro
positivo, como a soma P P P com k fatores.
Assim:
2P=P P
3P=P P P
e assim por diante.
Esse mesmo grupo pode ser definido algebricamente. Não é difícil encontrar uma fórmula que,
dadas as coordenadas dos pontos P e Q , forneça as coordenadas do ponto P Q .
Agora que possuímos um grupo para pontos de uma curva elíptica, vamos voltar à nossa
criptografia.
Texto 65 – Criptografia de Curvas Elípticas
No texto anterior, definimos uma operação de soma para pontos de uma curva elíptica. Em
criptografia usam-se curvas elípticas definidas sobre corpos finitos.
Uma curva elíptica E , definida sobre um corpo finito GF q  , é dada por uma equação não-
singular
y
2
=x
3
a x b
, em que a , b ∈GF q  . Aqui, o interesse está no conjunto dos
pontos x , y  da curva com x , y ∈GF q  . Esse conjunto, com a operação de soma de
pontos que definimos, forma um grupo.
Como você se recorda, os sistemas criptográficos de chave pública de Diffie-Hellman, ElGamal,
algoritmo de assinatura digital (DSA), entre outros, utiliza um grupo cíclico G . A segurança
desses sistemas está na dificuldade do problema do logaritmo discreto. Recordando, este
problema é o seguinte: dados o grupo cíclico G e um gerador g deste grupo, e dado
h =g
x
,
como calcular x .
Seja agora P um ponto de uma curva elíptica E , definida sobre um corpo finito GF q  .
166
Lembre-se que definimos:
2P=P P ,
3P=P P P
etc.
Ou seja, definimos uma operação k ⋅P para qualquer k inteiro.
Como estamos trabalhando em um corpo finito, na seqüência P , 2P , 3P , , kP , em algum
momento, existirão elementos repetidos, pois há apenas um número finito de pontos x , y 
possíveis.
Dessa forma, temos iP =jP , para i ≠ j , o que mostra que i j ⋅P =0 . O menor n tal que
n⋅P =0 é a ordem do ponto P no grupo dos pontos da curva.
Isso resulta que o conjunto
{P , 2P , 3P , , n 1  P , nP }
é um grupo cíclico de ordem n gerado por P.
Em aplicações criptográficas, um grupo como este é utilizado no lugar dos subgrupos cíclicos de

n
*
, que são usados nos sistemas de chave pública tradicionais.
O problema do logaritmo discreto para curvas elípticas é o seguinte: dados pontos P e
Q =k ⋅P em uma curva elíptica sobre um corpo finito, como determinar o valor do inteiro k ?
Acredita-se que esse problema seja mais complexo que o do logaritmo discreto.
Ao utilizar o grupo de uma curva elíptica, podemos formular sistemas de chave pública com
curvas elípticas modificando os sistemas usuais.
O sistema de troca de chaves de Diffie-Hellman, com o uso de curvas elípticas, funciona da
seguinte maneira:
1. Alice e Bob escolhem uma curva elíptica E e um ponto P de E . Esta informação não
167
é secreta.
2. Alice escolhe, aleatoriamente, um inteiro k
A
e envia o ponto k
A
⋅P para Bob. O inteiro
k
A
é a chave secreta de Alice, enquanto que o ponto k
A
⋅P é sua chave pública.
3. Bob escolhe, de forma aleatória, um inteiro k
B
e envia o ponto k
B
⋅P para Alice.
4. Alice calcula o ponto k
A
k
B
P =k
A
⋅k
B
P . Esse ponto é a chave secreta combinada
entre os dois.
5. Bob calcula o ponto k
B
k
A
P =k
A
⋅k
B
P .
Realizar as operações necessárias para os cálculos citados anteriormente ― soma de pontos em
curvas elípticas ― é um processo mais lento do que efetuar a exponenciação módulo um primo,
que é a operação utilizada nos sistemas tradicionais.
No entanto, como o problema do logaritmo discreto para curvas elípticas é mais complexo, o
mesmo nível de segurança pode ser conseguido com uma chave menor.
A mesma adaptação simples, vista anteriormente, do sistema de Diffie-Hellman para usar curvas
elípticas pode ser feita com outros sistemas de chave pública.
Assim, há versões para curvas elípticas dos algoritmos ElGamal, Diffie-Hellman e para o RSA.
Existem também vários algoritmos utilizados para assinatura digital que usam curvas elípticas.
168
Uma chave menor implica em operações mais rápidas, o que na
prática compensa a maior complexidade das operações.
Essencialmente todo sistema de chave pública pode ser adaptado para o uso
de curvas elípticas. Basta substituir a operação de exponenciação módulo
p por soma de pontos em um grupo cíclico de uma curva elíptica.
Por sua complexidade, vários detalhes na implementação destes sistemas não serão discutidos
neste momento. Como exemplo, as escolhas da curva elíptica E e do ponto P devem atender
à exigência de que P tenha como ordem um primo grande.
Em fevereiro de 2005, a agência de segurança americana NSA (National Security Agency)
anunciou a adoção da criptografia de curva elíptica como parte dos padrões de segurança do
governo norte-americano.
A NSA adotou um conjunto de sistemas criptográficos que foi chamado de Suite B . Nesse
modelo consta:
1. Um algoritmo de troca de chaves denominado Menezes-Qu-Vanstone de curva elíptica
(ECMQV). Na sigla, as iniciais EC vêm de Elliptic Curve.
2. O algoritmo de troca de chaves Diffie-Hellman de curva elíptica (ECDH).
3. O algoritmo de assinatura digital de curva elíptica (ECDSA - Elliptic curve digital signature
algorithm).
4. O algoritmo simétrico AES.
5. A função de Hash SHA (secure hashing algorithm).
Na última aula desta disciplina, abordamos um ponto bastante recente e importante
da criptografia de chave pública: o uso de curvas elípticas.
O uso de curvas elípticas permite um grau muito maior de segurança para chaves
de mesmo tamanho que os sistemas de chave pública usuais. Dessa forma,
oferece a mesma segurança que os sistemas usuais, mas com a utilização de
chaves menores, o que favorece implementações mais rápidas destes algoritmos.
A matemática envolvida, como você deve ter notado, é mais complexa que a
matemática do RSA e dos sistemas baseados no problema do logaritmo discreto
(como Diffie-Hellman e ElGamal). Vários tópicos relacionados aos assuntos
abordados nesta aula são focos de ativas pesquisas matemáticas atuais.
169
Enfim, o assunto é complexo. O importante é compreender o que é uma curva
elíptica e como elas são utilizadas nos modernos sistemas criptográficos de chave
pública.
Há ainda outras aplicações das curvas elípticas que interessam à criptografia,
como algoritmos de fatoração de inteiros.
Atividades
1) Defina curva elíptica.
2) Como se define a operação de soma de pontos em uma curva elíptica? Qual é o zero desta
soma?
3) Como o grupo dos pontos de uma curva elíptica é usado em sistemas criptográficos?
4) Quais são as vantagens do uso de sistemas criptográficos de curvas elípticas?
170
Complemente seu estudo
171
Leituras
Na última aula, você estudou as curvas elípticas. Para saber mais sobre este
tema e sua utilização em criptografia, indicamos duas interessantes
referências.
! HANKERSON, Darrel; MENEZES, Alfred J.; VANSTONE, Scott. Guide to
elliptic curve cryptography. Berlim: Springer Verlag, 2004.
! WASHINGTON, Lawrence C. Elliptic curves: number theory and
cryptography. Boca Raton, FL.: Chapman & Hall/CRC, 2003.
Website
Há implementações de muitos algoritmos criptográficos com código aberto
disponível na internet. A biblioteca de programas “Crypto++ ” possui
implementação de diversos algoritmos simétricos e assimétricos, incluindo
algoritmos de curvas elípticas. Para acessar esses programas, o endereço é
http://www.eskimo.com/~weidai/cryptlib.html .
Soluções das atividades
Aula 1
1) D 10 ={±1, ±2, ±5,±10 } ⊂ {±1, ±2,±4, ±5, ±10,±20 }=D 20 
2) 3 e 5, 5 e 7, 11 e 13, 17 e 19, 29 e 31. É interessante que não se sabe se há infinitos primos
gêmeos.
3) Há o caso 3, 5 e 7. É o único caso possível, pois dados 3 inteiros n, n+2 e n+4 é fácil ver que
um deles deve ser múltiplo de 3.
4) 4 = 2+2, 6 = 3+3, 8 = 3+5, 10 = 5+5 etc. Um dos problemas não-resolvidos mais antigos na
Teoria dos Números é a chamada conjectura de Goldbach, que afirma que todo inteiro par
pode ser escrito como soma de dois primos. Esta conjectura foi proposta em 1742, em uma
carta de Goldbach para Euler.
Aula 2
1) a) q = 2e r = 11
b) q = 2 e r = 6
c) q = 1 e r = 75
2)
a) mdc 35,12=1 e mmc 35,12=420.
b) mdc 30,18 =6 e mmc 30,18 =90.
c) mdc 315,250 =5 e mmc 315,250 =15750.
Aula 3
1) a) mdc a , b =7 e mmc a , b =11011
b) mdc a , b =33 e mmc a , b =17325
172
Aula 4
1) a) 229 é primo. Como curiosidade, é o 50º primo.
b) 1223 é primo. Este é o 200º primo.
c) 481 não é primo (é divisível por 13).
2) 200 =46.
Aula 5
1)
1. R
1
é relação de equivalência: é reflexiva, simétrica e transitiva. É a relação de
igualdade.
2. R
2
não é reflexiva, não é simétrica, mas é transitiva.
3. R
3
é reflexiva, não é simétrica e não é transitiva.
4. R
4
não é reflexiva, é simétrica e não é transitiva.
5. R
5
é reflexiva, não é simétrica, mas é transitiva.
2)
a) Verdadeira.
b) Verdadeira.
c) Falsa.
d) Verdadeira.
e) Verdadeira.
173
Aula 6
1) As tabelas são as seguintes:
2) Um inteiro a é divisível por 8 se, e somente se, o número formado por seus três últimos
algarismos for divisível por 8.
3)
a) O resto da divisão de
2
303
por 15 é 8.
b) O resto da divisão de
7
250
por 48 é 1.
c) O resto da divisão de
5
61
por 7 é 5.
Aula 7
1) ℤ
9
*
={

1 ,

2 ,

4 ,

5 ,

7 ,

8 } , ℤ
20
*
={

1 ,

3 ,

7 ,

9 ,

11 ,

13 ,

17 ,

19 }.
2)
a) A equação 3 x ≡8 mod 15 não tem solução, pois mdc 3,15 =5 ∤8 .
b) A equação 2 x ≡20 mod 32 tem duas soluções, porque mdc 2,32 =2∣20. As
soluções são x ≡10 mod 32 e x ≡26 mod 32 .
c) A equação 5 x ≡7 mod 11 possui uma única solução, pois mdc 5,11=1 . A
solução é x ≡9 mod 11 .
174
3)
a) a =35 e b =65 ; mdc 35,65=5 e 2⋅35 1⋅65=5 .
b) a =15 e b =23 ; mdc 15,23=1 e 3⋅15 2⋅23 =1 .
4) A inversa de 45 módulo 91 é 89 .
Aula 8
1)
a) 16
b) 12
c) 4
2)
x
2
y
2
8z=6 ⇒ x
2
y
2
≡6 mod 8.
Verifique que não há inteiros x e y , tais que
x
2
y
2
≡6 mod 8.
Aula 9
1)
4
14
=4
2

7
=16
7
≡1 mod 15 
2)
7
24
= 7
2

12
=49
12
≡1 
12
≡1 mod 15 
3) Temos que calcular
3
90
mod 91 .
Sabemos que
3
4
=81≡10 mod 91 .
Multiplicando essa congruência por
3
2
obtemos
3
6
≡90 ≡1 mod 91 .
Logo
3
90
= 3
6

15
≡1 mod 91 
.
4) Como
24 =2
3
⋅3
, temos que calcular as três potências
7
3
,
7
2×3
e
7
2
2
×3
módulo 25.
Temos:
7
3
=7⋅7
2
=7⋅49 ≡7⋅1 ≡7 mod 25  .
7
2×3
=7
3

2
≡7 
2
≡49≡1 mod 25 .
7
2
2
×3
=7
2×2×2
=7
2×3

2
≡1 
2
≡1 mod 25  .
175
Logo 25 é pseudoprimo forte para a base 7.
Aula 10
1)
a) 90 =24
b) 250 =100
c) 1620 =432
3)
a) o resto é 17.
b) o resto é 11.
Aula 11
1) x ≡67 mod 165  .
2) x ≡85 mod 630  .
3) x ≡41 mod 168 
Aula 12
1) Temos n =143 =11⋅13 . Então n =11⋅13 =11 13 =10⋅12 =120. Como
e =23 , a chave privada d é a inversa de 23 módulo 120 que é 47 (use o algoritmo
de Euclides estendido).
A mensagem original é
P =C
d
=2
23
mod 143 =85 mod 143
.
Aula 13
1) Como 18 =6 . As raízes primitivas módulo 18 os inteiros que têm ordem 6 módulo
18 .
176
Calculando as ordens, obtemos:
• a ordem de 1 módulo 18 é 1.
• a ordem de 5 módulo 18 é 6.
• a ordem de 7 módulo 18 é 3.
• a ordem de 11 módulo 18 é 6.
• a ordem de 13 módulo 18 é 2.
• a ordem de 17 módulo 18 é 2.
Assim, as raízes primitivas módulo 18 são 5 e 11.
2)
a) a ordem de 3 módulo 8 é 2.
b) a ordem de 5 módulo 16 é 4.
c) a ordem de 7 módulo 20 é 4.
3)
x 1 2 3 4 5 6 7 8 9 10 11 12
ind
2 , 13
 x 
0 1 4 2 9 5 11 3 8 10 7 6
Aula 14
1) Basta verificar que
3
30
≡1 mod 31
e que nenhuma das potências
3
30
2
=3
15
,
3
30
5
=3
6
e
3
30
3
=3
10 é congruente a 1 módulo 31. Verifique que
3
15
≡30 mod 31
,
3
6
≡16 mod 31
e
3
10
≡25 mod 31
.
2) A combinação de chaves se dará da seguinte forma: Alice envia
5
9
≡11 mod 23
para Bob.
Este envia
5
7
≡17 mod 23
para Alice. Para calcular a chave secreta, Alice faz
17
9
≡7 mod 23
, enquanto Bob faz
11
7
≡7 mod 23
. A chave combinada é 7.
177
Aula 15
1) Uma curva elíptica é uma curva dada por uma equação
y
2
=x
3
a x b
, em que
4 a
3
27 b
2
≠0
.
2) Dados pontos P e Q . O ponto P Q é obtido da seguinte forma: traçamos a reta que
passa por P e Q . Esta reta corta a curva em um terceiro ponto R (caso a reta seja
tangente à curva, o ponto de tangência é contado duas vezes). Traçamos a reta vertical
passando por R . O outro ponto onde esta vertical corta a curva é o ponto P Q .
3) Em sistemas criptográficos que usam o problema do logaritmo discreto, este é substituído pelo
problema do logaritmo discreto para curvas elípticas: dada uma curva elíptica E , dados pontos
P e Q em E , sendo Q =k ⋅P , encontrar o valor de k .
4) Sistemas criptográficos de curvas elípticas oferecem o mesmo nível de segurança que
sistemas usuais utilizando chaves significativamente menores.
178
Referências
Livros e publicações
COUTINHO, S.C. Números inteiros e criptografia RSA. Rio de Janeiro: IMPA/SBM, 1997.
KOBLITZ, Neal. Algebraic aspects of cryptography. 2.ed. Berlim: Springer Verlag, 1999.
MENEZES, A. J. et al. Handbook of applied cryptography. Boca Raton, FL.: CRC Press, 1997.
SANTOS, José Plínio de O. Introdução à teoria dos números. Rio de Janeiro: IMPA, 1998.
STALLINGS, William. Cryptography and network security: principles and practice. 2.ed. N.
Jersey: Prentice Hall, 1999.
Websites
Elliptic curve. Math World. Disponível em: <http://mathworld.wolfram.com>. Acesso em 25 ago.
2005.
Elliptic curve. Wikipédia, enciclopédia livre. Disponível em: <http://en.wikipedia.org/wiki/Elliptical
_curve>. Acesso em 25 ago. 2005
Paul Erdös. Wikipédia, enciclopédia livre. Disponível
em:< http://pt.wikipedia.org/wiki/Paul_Erd%C3%B6s>. Acesso em 24 ago. 2005.
Universidade de Lisboa. Departamento de Educação. Faculdade de Ciências. Página dos Números
Primos. Disponível em: < http://www.educ.fc.ul.pt/icm/icm98/icm12/Mat_kz.htm#Marin%20Mersenne>.
Acesso em 25 ago. 2005.
179
Autor
180
Luiz Manoel Silva de Figueiredo
Professor adjunto da Universidade Federal Fluminense (UFF), onde
leciona desde 1992. Bacharel em Física pela Universidade Federal
do Rio de Janeiro (UFRJ), o prof. Luiz Manoel Figueiredo é Mestre
em Matemática pelo Instituto de Matemática Pura e Aplicada
(IMPA), Rio de Janeiro, e Doutor em Matemática pela University of
Cambridge (Reino Unido). Sua área de doutorado é em teoria dos
números e atualmente trabalha com Criptografia.

Copyright © 2006 Centro de Estudos de Pessoal Todos os direitos reservados ao Centro de Estudos de Pessoal (CEP) Nenhuma parte deste material poderá ser reproduzida, armazenada ou transmitida de qualquer forma ou por quaisquer meios - eletrônico, mecânico, fotocópia ou gravação, sem autorização do CEP e do autor.

Créditos Capa e projeto gráfico: Diagramação: Redação pedagógica: Revisão: Maria Rachel Barbosa Maria Rachel Barbosa Rafael Fontenele Mônica Nogueira da Costa Figueiredo Vanessa Maria Barbosa Letícia Maria Lima Godinho Vanessa Maria Barbosa

Figueiredo, Luiz Manoel Silva de F475n Números primos e criptografia de chave pública / Luiz Manoel Silva de Figueiredo. – Rio de Janeiro: UFF / CEP - EB, 2006. 180p. – (Curso de Criptografia e Segurança em Redes). ISBN 85-98569-46-1 1. Criptografia. 2. Números primos. CDD – 001.5436

Centro de Estudos de Pessoal (CEP) Praça Almte. Júlio de Noronha S/N Leme - Rio de Janeiro - RJ 22010-020 Tel 21 2295-1140

SUMÁRIO PROGRAMA DA DISCIPLINA ...........................................................................................................................................5 PLANO DE AULAS DA UNIDADE 1 .................................................................................................................................6 PLANO DE AULAS DA UNIDADE 2 .................................................................................................................................7 UNIDADE 1 ......................................................................................................................................................................9 . AULA 1 NÚMEROS PRIMOS ......................................................................................................................................... 0 1 Texto 1 Teoria dos números ...........................................................................................................................................10 Texto 2 Divisores ............................................................................................................................................................12 Texto 3 Números perfeitos ............................................................................................................................................... 5 1 Texto 4 Números primos .................................................................................................................................................. 7 1 Texto 5 A infinitude dos números primos .......................................................................................................................19 Atividades ........................................................................................................................................................................21 AULA 2 ALGORITMO DA DIVISÃO ..............................................................................................................................22 Texto 6 Axioma de Eudoxius ..........................................................................................................................................22 Texto 7 O algoritmo da divisão .......................................................................................................................................23 Texto 8 O máximo divisor comum (mdc) ........................................................................................................................25 Texto 9 O mínimo múltiplo comum (mmc) .......................................................................................................................29 Texto 10 O mdc e mmc de vários inteiros ......................................................................................................................29 Texto 11 Como calcular o máximo divisor comum .........................................................................................................30 Atividades ........................................................................................................................................................................31 AULA 3 ALGORITMO DE EUCLIDES ...........................................................................................................................32 Texto 12 Dois resultados preliminares ...........................................................................................................................32 3 Texto 13 O algoritmo de Euclides ................................................................................................................................... 3 Texto 14 Cálculo do mdc e do mmc através da fatoração .............................................................................................35 Texto 15 Relação entre mdc(a,b) e mmc(a,b) ................................................................................................................37 Texto 16 Convergência do algoritmo de Euclides ...........................................................................................................38 Atividade ......................................................................................................................................................................... 41 AULA 4 TESTES DE PRIMALIDADE ............................................................................................................................42 Texto 17 Primeiro teste de primalidade ..........................................................................................................................42 Texto 18 Teorema dos números primos .........................................................................................................................46 4 Atividades ........................................................................................................................................................................ 8 AULA 5 ARITMÉTICA MODULAR ................................................................................................................................. 9 4 Texto 19 Relações ..........................................................................................................................................................50 5 Texto 20 Congruência módulo n ..................................................................................................................................... 2 Texto 21 Classes de equivalência ...................................................................................................................................54 Texto 22 Classes de congruência ..................................................................................................................................55 Atividades ........................................................................................................................................................................ 8 5 AULA 6 OPERAÇÕES COM CLASSES DE CONGRUÊNCIA ......................................................................................59 Texto 23 Definição de soma e de produto de classes ....................................................................................................59 Texto 24 Tabelas de soma e de multiplicação ...............................................................................................................62 Texto 25 Divisibilidade ....................................................................................................................................................64 Texto 26 Potências .........................................................................................................................................................67 Atividades ........................................................................................................................................................................ 0 7 AULA 7 DIVISÃO MODULAR ........................................................................................................................................71 Texto 27 A inversa de uma classe de congruência módulo n ........................................................................................71 Texto 28 Quando uma classe em ℤn tem inversa? ....................................................................................................72

Texto 29 A congruência linear a x ≡b mod n .......................................................................................................74 Texto 30 Como escrever o mdc de dois inteiros em combinação linear ........................................................................76 Atividades ........................................................................................................................................................................81 AULA 8 TEOREMA DE FERMAT ..................................................................................................................................82 Texto 31 Fermat .............................................................................................................................................................. 2 8 Texto 32 O teorema de Fermat ....................................................................................................................................... 3 8 Texto 33 Aplicação do teorema de Fermat à solução de potências ............................................................................... 87 Texto 34 Equações diofantinas ....................................................................................................................................... 8 8 Texto 35 Uso das congruências para resolver equações diofantinas .............................................................................90 Atividades ........................................................................................................................................................................92

........................................................ 34 1 Texto 53 A segurança do RSA ................................151 Texto 60 ElGamal ............................................................................................................97 Texto 39 Teste de Miller-Rabin ..........................................................................................166 Atividades ............................. 5 9 Texto 38 Números de Carmichael .148 Texto 58 Teste de Lucas ...................................................................................................................................................................................................153 Texto 61 Algoritmo de assinatura digital .............................................................................148 Texto 59 Esquema de troca de chaves de Diffie-Hellman ......................................................................122 Atividades .............................................................................................................................................................................................................................................................................................................................................................................................. AULA 9 TESTE DE PRIMALIDADE DE FERMAT .......................................108 Atividades ............................................................................................................................................................................................................................................117 Texto 46 Aplicações à criptografia: partilha de um segredo .........................................................................................................................................................................................................................................................................................................................................................................................................161 Texto 64 Grupo de uma curva elíptica ........................................................................................................................................................................................................................................................ 28 1 Texto 50 O GP/Pari ......................................................................... 26 1 Texto 48 A criptografia de chave pública ..............................................................................................136 Texto 54 Os desafios RSA ................................................................. 43 1 Atividades ..................................... 14 1 Texto 45 Teorema chinês dos restos ..93 ............................................................................................................................................................................................................................................147 ..................................................................... 03 Texto 42 Teorema de Euler ......................................................................................................................... 31 1 Texto 51 Considerações práticas: escolha dos primos e preenchimento de bits ................................................................................................................................................................................140 Texto 57 Logaritmos discretos ..........................................................................................................................................................137 ...................................................................................................... 72 1 REFERÊNCIAS .......................................................................................................................... 25 1 AULA 12 RSA ............................................................................................................. 71 1 SOLUÇÕES DAS ATIVIDADES ............................................................................................................................................................................................................................................................................................................................................................159 ...................................................................................... 55 1 Atividades ................................................................................................120 Texto 47 Partilha de um segredo com o teorema chinês dos restos ................................................................................................................. 13 1 Texto 44 Exemplo com três equações ................................................................................... 26 1 Texto 49 RSA ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................113 Texto 43 Exemplo com duas equações ...................................................................................132 Texto 52 Assinatura digital ...................................................112 ................................................................................................................................................................................................................................................................... 03 1 1 Texto 41 A função  de Euler .............................................................................99 Atividades ................................................................................................................................................................................................................................................................................................ 02 1 AULA 10 TEOREMA DE EULER ................................................................................................................................................................................................................................................................................................................................................ AULA 14 APLICAÇÕES À CRIPTOGRAFIA .........94 Texto 36 Testes de primalidade ..............103 Texto 40 Euler ............................................................ AULA 13 LOGARITMO DISCRETO ...........................................................................................................................UNIDADE 2 .................................. 38 1 Texto 56 Grupos e subgrupos .................................................................................................................................................................................................................................................. AULA 11 TEOREMA CHINÊS DOS RESTOS . 63 1 Texto 65 Criptografia de curvas elípticas ..................160 Texto 63 Corpos finitos .........................................160 Texto 62 Curvas elípticas ..................... AULA 15 CRIPTOGRAFIA COM O USO DE CURVAS ELÍPTICAS ... 38 1 Texto 55 Raízes primitivas módulo n ............................................................................................................................... 37 1 Atividade .......179 ............................................ 4 9 Texto 37 Teste de Fermat ......... 70 1 COMPLEMENTE SEU ESTUDO ..............................

ElGamal e o algoritmo de assinatura digital. Aritmética modular: congruência módulo. O problema do logaritmo discreto. esquema de troca de chaves de Diffie-Hellman. Teoremas de Fermat. algoritmo da divisão. soma e produto de classes. Carga horária 60 horas Objetivo Apresentar a área da Matemática chamada Teoria dos Números. 5 . teste de Fermat. teste de Rabin-Miller.Programa da disciplina Ementa Aritmética dos inteiros: números primos. Para complementar seu estudo. números de Charmichael. com atividades a serem realizadas. Testes de primalidade: teste das divisões sucessivas. inversa de uma classe módulo n. algoritmo de Euclides. Criptografia de chave pública: princípios. mdc e mmc. abordando os resultados utilizados em criptografia. serão sugeridos livros e websites. o algoritmo RSA. Criptografia com o uso de curvas Elípticas: curvas elípticas. Euler e o teorema chinês dos restos. Avaliação Prova escrita ao final da disciplina e avaliação a distância (atividades online). teste de Lucas. grupo de uma curva elíptica e aplicações. Metodologia O conteúdo programático será apresentado na forma de textos e exemplos. assinatura digital.

Plano de Aulas Unidade 1 – Teoria dos Números Conteúdo Aula 1 – Números Primos Teoria dos Números Divisores Números perfeitos Aula 2 – Algoritmo da Divisão Axioma de Eudoxius Algoritmo da divisão Máximo divisor comum e mínimo múltiplo comum Aula 3 – Algoritmo de Euclides Cálculo do mdc e do mmc através da fatoração Convergência do Algoritmo de Euclides Aula 4 – Testes de Primalidade Primeiro teste de primalidade Teorema dos números primos Aula 5 – Aritmética Modular Relações Congruência módulo n Classes de equivalência Classes de congruência Aula 6 – Operações com classes de congruência Definição de soma e de produto de classes Tabelas de soma e de multiplicação Divisibilidade e potências Aula 7 – Divisão modular Inversa de uma classe de congruência módulo n MDC de dois inteiros como combinação linear Aula 8 – Teorema de Fermat Aplicação do teorema de Fermat Equações diofantinas Onde encontrar Textos 1 a 5 Textos 6 a 11 Textos 12 a 16 Textos 17 e 18 Textos 19 a 22 Textos 23 a 26 Textos 27 a 30 Textos 31 a 35 Carga horária: 25 h 6 .

Unidade 2 – Criptografia de Chave Pública Conteúdo Aula 9 – Teste de Primalidade de Fermat Testes de primalidade Teste de Fermat Números de Carmichael Teste de Miller-Rabin Aula 10 – Teorema de Euler Função  de Euler Aula 11 – Teorema Chinês dos Restos Exemplo com duas e três equações Aplicações à criptografia Partilha de um segredo com o teorema Aula 12 – RSA Criptografia de chave pública GP/Pari Assinatura digital Segurança do RSA Aula 13 – Logaritmo Discreto Raízes primitivas módulo n Grupos e subgrupos Logaritmos discretos Aula 14 – Aplicações à Criptografia Teste de Lucas Esquema de troca de chaves de Diffie-Hellman ElGamal Algoritmo de assinatura digital Aula 15 – Criptografia com o uso de Curvas Elípticas Corpos finitos Grupo de uma curva elíptica Criptografia de curvas elípticas Onde encontrar Textos 36 a 39 Textos 40 a 42 Textos 43 a 47 Textos 48 a 54 Textos 55 a 57 Textos 58 a 61 Textos 62 a 65 Carga horária: 35 h 7 .

.

Unidade 1 Teoria dos Números Caro aluno. Nesta primeira unidade. você vai estudar os conceitos e resultados matemáticos que são a base das aplicações em criptografia de chave pública. seja bem-vindo à disciplina Números primos e criptografia de chave pública. Bom estudo! 9 .

Ao longo desta unidade você conhecerá alguns deles. mas de difícil solução. Esta área inclui o famoso teorema dos números primos e a hipótese de Riemann. Muitas propriedades elementares dos inteiros não valem para os inteiros algébricos. 1. Texto 1 . Este campo de estudo da Matemática possui muitos problemas em aberto — problemas não resolvidos — fáceis de serem compreendidos. 2. O termo “aritmética” também é utilizado para se referir à Teoria dos Números. algoritmo de Euclides e congruência. Números algébricos são raízes de polinômios com coeficiente racionais. Inclui também o estudo de divisibilidade. que são a base para o estudo dos inteiros. fatoração em números primos. Teoria elementar dos números É a parte que estuda os inteiros e suas propriedades sem utilizar técnicas derivadas de outros campos da Matemática. Teoria algébrica dos números Aqui o conceito de número é estendido para o de número algébrico e o conceito de inteiro para o de inteiro algébrico. como veremos a seguir. máximo divisor comum. A grande importância dos números primos está em que todo inteiro pode ser escrito de maneira essencialmente única como produto de primos. 10 . 3.Aula 1 – Números Primos Nesta primeira aula.Teoria dos Números A Teoria dos Números é a área da Matemática que estuda as propriedades dos números inteiros e os problemas que aparecem naturalmente neste estudo. você vai conhecer os números primos. Teoria analítica dos números Este ramo emprega técnicas do cálculo e da análise para o estudo de problemas de inteiros. A Teoria dos Números se divide em seis ramos principais.

Teoria computacional dos números Estuda algoritmos computacionais na Teoria dos Números. 11 . Teoria geométrica dos números Também chamada de geometria dos números. Com quatro anos descobriu algumas propriedades dos números primos. Há dois grupos de algoritmos de grande importância em criptografia: ! testes de primalidade . ! algoritmos de fatoração de inteiros . Teoria combinatória dos números Estuda as propriedades de inteiros empregando técnicas da área da Matemática chamada Combinatória.são algoritmos que determinam se um dado inteiro é ou não primo. usa técnicas geométricas para o estudo de números inteiros. Paul Erdös mostrou desde cedo aptidão para a Matemática. tornando-a um belo e complexo conjunto de conhecimentos e técnicas. 5.4. 6. Sempre queria resolvê-los de forma simples e elegante. O principal fundador desta área é o matemático húngaro Paul Erdös (1913 – 1996). talvez como nenhuma outra área. teoria dos grafos e teoria dos números. como os de análise combinatória.determinam a fatoração em primos de um dado inteiro. a propriedade de incorporar métodos de outros campos de estudo. A Teoria dos Números tem. Fez numerosas e variadas contribuições e tinha fascínio em resolver problemas.

Vamos examinar outras propriedades um pouco mais elaboradas. observando que n =n⋅1 . Basta observar que 0=n⋅0 . 1∣n Isto é. n∣0 Todo inteiro é divisor de 0. Proposição 1: a∣b e b ∣a ⇒ ∣a ∣=∣b ∣ Demonstração Como a∣b e b ∣a . Isto segue da definição. 1 divide qualquer inteiro. 2.Texto 2 . 3. tais que a =k 1⋅b e b =k 2⋅a . para indicar que a divide b e escrevemos a ∤ b quando a não divide b . n∣n Significa que todo inteiro divide a si mesmo. Algumas propriedades imediatas são: 1. 23∣115 . então existem inteiros k 1 e k 2 . Dizemos que a divide b quando existir um inteiro c tal que b =ac . 12 . dizemos também que b é múltiplo de a . Sejam a e b inteiros. Observe que n =1⋅n . Segue da definição.Divisores Agora vamos apresentar nosso primeiro tópico em Teoria dos Números: os divisores. mas 4∤21 . Quando a∣b . Exemplos: 6∣12 . Usamos a notação a∣b .

∣a∣=∣b ∣ . isto é. b e c inteiros. tais que a =k 1⋅c e b =k 2⋅c . Demonstração. 13 . ou seja. então a∣c . Sejam a . Como c ∣a e c ∣b . então k 1=k 2 =1 ou k 1=k 2 = 1 .Substituindo uma expressão na outra. Demonstração. então existem inteiros k 1 e k 2 tais que b =k 1⋅a e c =k 2⋅b Substituindo o valor de b da primeira equação na segunda. concluímos que a =±b . Se c ∣a e c ∣b . b e c inteiros. resulta que c =k 2⋅b =k 2⋅ k 1⋅a = k 2⋅k 1 ⋅a . Proposição 3. então existem inteiros k 1 e k 2 . para quaisquer inteiros m e n . Portanto. logo 3∣45 . Se a∣b e b ∣c . então c ∣ ma  nb  . resulta que a =k 1⋅ k 2⋅a ⇒ a = k 1⋅k 2  a ⇒ k 1⋅k 2 =1 Como k 1 e k 2 são inteiros e k 1⋅k 2=1 . c é múltiplo de a . Como a∣b e b ∣c . a∣c . Proposição 2. De a =k 1⋅b . Exemplo: 3∣15 e 15∣45 . Sejam a .

4. c ∣ ma  nb  . Exemplo: D 12={±1. Se d ∣n e d ≠ n . não? No próximo texto voltaremos a essa questão. tal que n =k ⋅d ⇒ n = k ⋅ d  ⇒  d ∣n. Por exemplo. Sejam a e b inteiros. Assim. 12} e D + 6={1. 3.±2. então existe inteiro k . 6} . então d também é divisor de n .3. Portanto.2.±4. Então a∣b se. 6. logo 7∣21m14n para quaisquer inteiros m e n .±12} Observe que se d é divisor de n . Proposição 4. mais algumas propriedades sobre divisores. Chamaremos D  n  ao conjunto de todos os divisores de n . a seguir. Veja. Exemplo: D + 12={1. Exemplo: 7∣21 e 7∣14 . se d ∣n .±3.Substituindo em ma  nb . 2 e 3. Curioso. os divisores próprios positivos de 6 são os inteiros 1. Observe que 6 é a soma de seus divisores próprios positivos: 6=123 . os divisores de um inteiro vêm sempre em pares de inteiros simétricos. pois. D a ⊂D  b  . então dizemos que d é divisor próprio de n . 14 . Chamamos D +  n  ao conjunto dos divisores positivos de n .±6. e somente se. temos:  ma  nb =m⋅ k 1⋅c  n⋅ k 2⋅c =mk 1cnk 2c= mk 1 nk 2  c .2.

Demonstração

Suponha

que

a∣b .

Para

provar

a

inclusão

D a ⊂D  b  ,

basta

mostrar

que

x ∈ D a ⇒ x ∈ D  b  , isto é, todo elemento de D a  também é elemento de D  b  .
Vamos lá! Se

x ∈ D a  ,

então

x ∣a .

Mas

a∣b

por

hipótese.

Logo,

x ∣a e a∣b ⇒ x ∣b ⇒ x ∈ D  b  .
Vamos supor agora que D a ⊂D  b  . Como a ∈ D  a  (todo inteiro é divisor de si mesmo) e

D a ⊂D  b  , então a ∈ D  b  , isto é, a∣b .
Provamos então que a∣b ⇔ D  a ⊂D  b  , isto é, a∣b é o mesmo que D a ⊂D  b  , mostrando que a relação de divisibilidade entre dois inteiros  a∣b  é equivalente à relação de inclusão entre os conjuntos dos divisores destes inteiros  D  a ⊂D  b  .

Quando falarmos de máximo divisor comum (mdc) e mínimo múltiplo comum (mmc) de dois inteiros, retornaremos a essa analogia entre os inteiros e o conjunto de seus divisores.

Texto 3 - Números Perfeitos

Você viu que o inteiro 6 tem a propriedade de ser a soma de seus divisores próprios positivos:

6=123 .
Como é chamado um inteiro com esta característica? Um inteiro que é a soma de seus divisores próprios positivos é chamado de número perfeito.

Agora, pense em outros inteiros que são números perfeitos. O próximo na lista é o número 28. Veja:

D + 28={1,2, 4, 7, 14,28} e temos que 28=124714 .
Os quatro primeiros números perfeitos são 6, 28,496 e 8128 . Estes quatro inteiros eram os únicos números perfeitos que os antigos gregos conheciam.

15

Euclides descobriu que estes quatro números são gerados pela fórmula

2
para valores de n =2, 3,5 e 7 . Então:

n
1

2
1

n

n =2  n =3  n =5  n =7 

22
1 2 2
1 3
1 3 2 2
1 5
1 5 2 2
1 7
1 7 2 2
1

= = = =

24
1=2⋅3=6 2 2 8
1=4⋅7=28 4 2 32
1=16⋅31=496 6 2 128
1=64⋅127=8128

Observe que nos quatro casos, 2n
1 é um inteiro primo. Euclides mostrou que 2n
1 2 n
1 é um número perfeito quando 2n
1 é primo.

Para saber quem foi Euclides de Alexandria, leia a seção “Saiba mais” ao final desta aula.

Como os inteiros n =2, 3,5 e 7 são exatamente os quatro primeiros números primos, os gregos naturalmente imaginaram que o quinto número perfeito seria obtido com n =11 . No entanto, o número 211
1 não é primo. De fato, 211
1=2047=23×89 . Logo,

211
1 2 11
1 não é número perfeito.
Na verdade, o quinto número perfeito é o número 212 2 13
1=33.550.336 , que é o inteiro

2

n
1

n 2
1 , para n =13 .

No século XVIII, Euler mostrou que a fórmula 2n
1 2 n
1 fornece todos os números perfeitos pares. Como você viu, nem todo inteiro 2n
1 2 n
1 é número perfeito (por exemplo, não é perfeito para n =11 ). Mas todo número perfeito par é da forma 2n
1 2 n
1 . Este inteiro é perfeito exatamente quando 2n
1 é primo.

16

Portanto, há uma associação entre números perfeitos e primos da forma 2n
1 . Estes são chamados primos de Mersenne, em homenagem ao monge Marin Mersenne (1588-1648).

Há uma busca mundial por primos grandes, em parte devido ao uso destes em criptografia. Os maiores primos conhecidos são os primos de Mersenne. O 42° primo de Mersenne é o maior primo conhecido atualmente, descoberto em 14 de fevereiro de 2005. Trata-se do número
25.964.951

2

1 , que é um primo com 7.816.230 algarismos.

Há muito ainda o que investigar nesta área de estudo. Por exemplo, não se sabe se há infinitos primos de Mersenne. Mas vamos deixar este assunto para uma outra hora e voltar a falar de números primos e fatoração única.

O francês Marin Mersenne ficou conhecido por seu trabalho na Teoria dos Números e por se corresponder com outros matemáticos, possibilitando assim a comunicação do conhecimento pela Europa em uma época que os jornais científicos não existiam.

Texto 4 - Números Primos Os números primos desempenham um papel fundamental no estudo dos inteiros e nas técnicas de criptografia. Um inteiro p ≠±1 é um número primo quando seus únicos divisores são ±1 e ± p. Exemplo: p =2,3 ,5 ,7 ,11 ,13,17 ,19 ,23 e 29 são os 10 primeiros números primos positivos. se p é

Observe

que

primo,

então

p

também

é.

Assim,

são

primos

p =
2,
3,
5,
7,
11,
13,
17,
19,
23 e
29 .
Um número N ≠±1 que não é primo é chamado composto. Assim, 12 é um número composto. Observe que ±1 não é primo nem composto.

17

todo inteiro fatora-se como produto de primos. O que todas estas fatorações têm em comum? É fácil ver que todas usam os mesmos primos. essencialmente. Lembre-se que fatorar um inteiro N é escrevê-lo como produto de primos. 3 e 5 são os fatores primos de 60. É neste sentido que dizemos que a fatoração é única: os mesmos primos aparecem o mesmo número de vezes. escrever 60 também como: 60=3×5×2 2 60=5×3×2 2 60=2×3×2×5. o primo 2 aparece duas vezes. Esta é a fatoração de 60 em produto de primos. única. Em todas. Mas o que significa dizer que a fatoração é única? Podemos. o primo 3 aparece uma vez e o primo 5 aparece uma vez. Teorema da Fatoração Única Dado um inteiro positivo n ≥2 . chamado Teorema da Fatoração Única ou Teorema Fundamental da Aritmética. Como você verá a seguir. apenas mudando a ordem.Os números primos sempre estiveram no centro da preocupação dos matemáticos que estudam os inteiros. por exemplo. Dizemos que 2. Vale destacar que a fatoração de inteiros em produtos de primos é. podemos escrevê-lo de modo único na forma: n =p e × ⋯ × p e . apenas a ordem difere duas fatorações de um inteiro. Veja um exemplo. Isto faz com que os primos sejam uma espécie de bloco com os quais são construídos os inteiros. 1 k 1 k 18 . O fato de que todo inteiro pode ser escrito de maneira única com produto de fatores primos é um teorema muito importante. O inteiro 60 pode ser escrito como 60=22×3×5. assim como todas as moléculas são feitas de átomos.

O método utilizado na demonstração é o de redução ao absurdo ou demonstração por contradição. Demonstração Vamos supor o contrário. Exemplo: No caso de 72=23×32. O fato de obter uma sentença falsa mostra que a proposição não pode ser negada. e k são inteiros positivos. enquanto os expoentes e 1. Este tipo de prova é feita assumindo-se como verdade o oposto do que queremos provar e chegando-se a uma contradição. p k são chamados fatores primos de n. Uma primeira questão que se coloca naturalmente é a seguinte: Existe um número finito ou infinito de primos? Euclides respondeu a esta pergunta há 2. respectivamente. na fatoração de n. que haja apenas um número finito de inteiros primos. 19 . Seja agora p # o produto de todos eles: p # = p 1 . o primo 2 tem multiplicidade 3 na fatoração de 72. ⋯ . p k . e o primo 3 tem multiplicidade 2. sendo por isso verdadeira. ⋯ . que constituem os inteiros.⋯. ⋯ . . Texto 5 – A infinitude dos Números Primos Você estudou que os primos são os blocos fundamentais. A resposta é que existe um número infinito de primos. Os primos p 1.300 anos. os átomos. ⋯ . p 2 . isto é. p k. e k são chamados multiplicidades dos primos p 1. Existe um número infinito de números primos.onde 1 p 1  p 2⋯ p k são primos distintos e e 1. Seja p 1 p 2⋯ p k a lista de todos os inteiros primos. Proposição 5. Esta resposta aparece como a Proposição 20 do livro IX dos Elementos de Euclides.

Mas N  p k é maior que todos os primos da lista p 1. 20 . muitas das demonstrações foram feitas por Euclides. Até o início do século XX. Nesta aula você identificou algumas propriedades fundamentais dos números primos e aprendeu que um inteiro é chamado número perfeito quando é a soma de seus divisores próprios positivos. abordando os campos da Geometria e da Teoria dos Números. p 2. o que é uma contradição. A estrutura lógica de seu trabalho influenciou o desenvolvimento de toda a Matemática. A obra de Euclides teve um papel importante.. pelo fato de que esta é a lista de todos os primos. Nenhum dos primos p 1. ao legar à posteridade o conhecimento matemático grego. para todo primo p i . ⋯ . Embora a maior parte dos resultados não tenha sido descoberta por ele. Saiba mais: Euclides de Alexandria Euclides foi um matemático grego que viveu entre 325 e 265 a.Considere N = p # 1. então N não tem nenhum divisor primo.C. Como nenhum p i pode dividir N . você estudará o algoritmo de divisão. tendo lecionado em Alexandria. ⋯ . p i∣p # . p k . o que não pode acontecer. p k pode ser divisor de N. Uma das grandes virtudes dos “Elementos” é apresentar de forma lógica e estruturada boa parte do conhecimento matemático conhecido à época de Euclides. Na próxima aula. então p i ∣  N p # =1. Portanto N deve ser um inteiro primo. postulados (axiomas) e proposições (teoremas) e as provas destes teoremas. Sua obra mais famosa é a coleção de 13 livros chamados Elementos. no Egito. era utilizado como livro-texto em muitas escolas. pois. pois p i 1. Se p i∣N . Euclides apresenta uma coleção de definições. Nela. Essa obra pode ser considerada o livro-texto mais bem sucedido da história da humanidade: foi um dos primeiros livros a serem impressos e é superada apenas pela Bíblia em número de edições – mais de mil já foram feitas.

Encontre os cinco primeiros pares de primos gêmeos. ternos de primos do tipo p . 21 . Verifique que D 10 ⊂D 20 . 3) Existem primos trigêmeos. isto é.Atividades 1) Determine D 10  e D 20  . p 2 e p 4 ? 4) Mostre que todos os números pares entre 4 e 40 podem ser escritos como soma de primos. 2) Primos gêmeos são pares de primos cuja diferença é dois.

que são múltiplos consecutivos de 5. 22 . Texto 6 – Axioma de Eudoxius Inicialmente. Exemplo: a =61 e b =5 . que é. na verdade. você vai conhecer o chamado algoritmo da divisão. Observe que a possibilidade de a ser múltiplo de b está coberta pelo menor ou igual em q ⋅b ≤a. um teorema. existe um inteiro q tal que para b 0. Podemos escrevê-lo da seguinte forma: Dados dois inteiros a e b ≠0. se a não é múltiplo de b . então situa-se entre dois múltiplos consecutivos de b. q ⋅b ≤a  q 1 b q ⋅b ≤a  q 1 b. Se a =42 e b = 13 .Aula 2 – Algoritmo da Divisão Nesta aula. Exemplos: Se a =35 e b =7 . aparece nos Elementos de Euclides. oberve que dados dois inteiros a e b . então q =3 : - 5×7=35. para b 0. O inteiro 61 situa-se entre 60=12×5 e 65=13×5. Este princípio. então q = 3 :  3× 13 42 4× 13 . 3×13424×13. e não propriamente um algoritmo. então q =5 : Se a =42 e b =13 . muitas vezes chamado erradamente de Princípio de Arquimedes.

b 0.  r r 1  é múltiplo de b . onde 0≤ r b. O inteiro q é chamado quociente e r é o resto da divisão de a por b . Demonstração Pelo teorema de Eudoxius. b  q q 1=  r r 1 . r 1  tal que: a = q 1⋅b r 1 e 0 ≤ r 1  b Subtraindo a equação anterior de a =q ⋅b r . existe q . então o resto é 0: a =q ⋅b. Veja agora a demonstração da unicidade. mostra que eles existem e são únicos. Assim foi demonstrada a existência do quociente e do resto. Observe que se b é divisor de a . Subtraindo q ⋅b temos: q ⋅b q ⋅b ≤ a q ⋅b   q 1 b q ⋅b 0≤a q ⋅b b Se definirmos r =a q ⋅b . como b 0 . No caso em questão. então: 0 ≤ r  b e r = a q ⋅b ⇒ a = q ⋅b  r . isto é. Teorema: Dados inteiros a e b . temos: a =q ⋅b r a =q 1⋅b r 1 0= q q 1  b r r 1  Portanto.Texto 7 – O Algoritmo da Divisão O teorema da divisão define precisamente o quociente e o resto de dois inteiros. b ∣ r r 1  . 23 . vamos supor que há outro par  q 1. tal que q ⋅b ≤a  q 1 b . existe um único par de inteiros q e r tais que a =q ⋅b r . Logo. O truque usual para demonstrar a unicidade é supor que há dois e mostrar que são iguais.

temos q 1 q =0 ⇒ q 1 =q . o teorema continua válido se b 0 . Outro ponto chave. No enunciado do teorema. logo r r 1=0 ⇒ r = r 1 . temos que r r 1 é múltiplo de b e  b 1 ≤ r r 1 ≤ b 1 . com 0≤r ∣b ∣ . Exemplos: - a =17 e b =3⇒ q =5 e r =2 17=5×32 15= 3× 43 a =15 e b = 4⇒ q = 3 e r =3 Alguns argumentos presentes na demonstração do teorema são comuns em Matemática. r 1 b e a ≤ r . supomos que existam dois e provamos que são iguais. Assim. Mas o único múltiplo de b neste intervalo é o 0. Ao substituir em b ⋅ q 1 q =0 . No entanto. porém. Por exemplo. com facilidade. Ao compreender os argumentos. que aparece em outras demonstrações. definimos quociente e resto como a =q ⋅b r . A demonstração anterior usa este argumento para t = r r 1 .Mas. Então. r 1  b . é o argumento de que. quando queremos provar a unicidade. caso sinta necessidade. 0 ≤ r . então t =0. 24 . você poderá utilizá-los em outros problemas. Estas demonstrações parecem um pouco difíceis no início. Neste caso. leia com atenção duas ou três vezes para que possa entendê-las. colocamos a restrição b 0 . se b ∣t e b t  b . o maior valor possível de  r r 1  é b 1 (quando r = b 1 e r 1 =0 ) e o menor valor possível de  r r 1  é  b 1 (quando r =0 e r 1 =b 1 ).

os divisores comuns vêm em pares de simétricos ±d. Outra maneira de definir mdc  a . O maior divisor comum será o maior dos divisores comuns positivos. d também é.35=5 mdc  8. D a =divisores de a e D  b =divisores de b. É denotado por mdc  a . D a ∩D  b =divisores comuns de a e b .25=5 mdc 300.Texto 8 . então: mdc  a . Logo. Como mdc  a . 18=mdc  12. Assim. b  é o maior divisor comum. Exemplos: - mdc 15.140=20 mdc  20. 25 . Exemplo: - mdc 12. b  é através dos conjuntos dos divisores D a  e D  b . 18 =6.18=mdc 12. A definição de mdc é: O máximo divisor comum de dois inteiros não-nulos a e b é o maior inteiro que divide a e b .18=mdc  12. É fácil ver por que. b =max D  a ∩D  b  Dois inteiros a e b são ditos relativamente primos ou primos entre si se mdc  a . se d é divisor comum de a e b . 28=4 Observe que o mdc de dois inteiros é sempre positivo. b . b =1.O máximo divisor comum (mdc) O conceito de máximo divisor comum de dois inteiros é simples e o algoritmo para calculá-lo tem grande importância em várias aplicações.

Exemplo:
-

20 e 27 são relativamente primos. Se p é primo, a é inteiro e p ∤a , então p e a são relativamente primos.

Isso acontece porque os únicos divisores positivos de p são p e 1. Como p ∤a , então p e a não têm divisores comuns além de ±1, isto é, mdc  a , p =1. Ou seja, p e a são relativamente primos. Uma propriedade muito importante do mdc  a , b  é que ele sempre pode ser escrito como combinação linear de a e b. Um inteiro n é combinação linear de a e b se existem inteiros k 1 e k 2 tais que n =k 1⋅a k 2⋅b . É exatamente o que acontece com o mdc. Teorema: Sejam a e b inteiros não-nulos e seja d =mdc  a , b . Então, existem inteiros

k 1 e k 2 tais que d =k 1 a k 2 b .
Exemplos: mdc(60,24)=12. O inteiro 12 pode ser escrito como 12=1×60
2×24 . mdc(50,30) = 10. O inteiro 10 pode ser escrito como 10=2×50
3×30 .

-

Observe que até agora não falamos sobre como calcular efetivamente o mdc  a , b  , nem como encontrar os inteiros k 1 e k 2 , tais que mdc  a , b =k 1⋅a k 2⋅b . Falaremos sobre isso em breve.

Para terminar esta parte, você vai conhecer agora uma propriedade muito importante do

mdc  a , b  .

O mdc  a , b  é múltiplo de todos os divisores comuns de a e b .

Exemplos:

D 30={±1,±2,±3,±5,±6,±10,±15,±30}

26

D 24={±1,±2,±3,4,±6,±8,±12,±24} D 30∩D 24={±1,±2,±3,±6 }
Observe que mdc 24,30=6 . E 6 é múltiplo de todos os divisores comuns: os elementos de

D 30 ∩D 24 .
Vejamos a demonstração deste resultado. Teorema: Sejam a e b inteiros não-nulos. Então, d =mdc  a , b  se, e somente se, (i) d ∣a e d ∣b. (ii) Se d ' ∣a e d ' ∣b então d ' ∣d . Em outras palavras, o mdc  a , b  se caracteriza por ser um divisor comum e por ser múltiplo de todos os divisores comuns.

Demonstração Seja d =mdc  a , b  , então d ∣a e d ∣b , pois d é divisor comum, o que prova o item (i). Seja d ' um inteiro tal que d ' ∣a e d ' ∣b . Sabemos que d é combinação linear de a e

b , isto é, existem inteiros k 1 e k 2 tais que d =k 1⋅a k 2⋅b.
Como d ' ∣a e d ' ∣b , então d ' ∣ k 1⋅a  k 2⋅b  , logo d ' ∣d , o que prova o item (ii). Por outro lado, se um inteiro positivo d atende aos itens (i) e (ii), então é:
-

divisor comum pelo item (i); o maior divisor comum, pois, pelo item (ii), se d ' é outro divisor comum, então

d ' ∣d ⇒ d ' ≤d .
Portanto, se um inteiro positivo

d

atende aos itens (i) e (ii) então

d =mdca , b . Veja a

seguir vários resultados referentes ao mdc de dois inteiros. Estes resultados e os exemplos que aparecem em seguida são importantes para que você compreenda como funciona o algoritmo da divisão para encontrar o máximo divisor comum de dois inteiros.
27

Proposição: Para todo inteiro t, mdc  t ⋅a , t ⋅b  = t mdc  a , b  .

Esta proposição, por brevidade, vai ficar sem demonstração. Ela pode ser encontrada em Introdução à Teoria dos Números, de José Plínio de Oliveira Santos, 1998. Exemplo: mdc 150,35=mdc 5⋅30, 5⋅7=5⋅mdc 30,7=5⋅1=5. Uma conseqüência da proposição anterior é que, se a e b são divisíveis por um inteiro c , então

b a a b a b e ,c ⋅  = c mdc  , . são inteiros e mdc  a , b  = mdc  c ⋅ c c c c c c
Ao dividir a e b por d =mdc  a , b  temos:

d =mdc  a , b =mdc  d ⋅

a b a b , d ⋅  = d mdc  , , d d d d

mas d =d ⋅mdc 

a b a b ,  ⇒ mdc  , =1. d d d d

Concluímos que: Proposição. Se d =mdc  a , b  , então os inteiros

a b e são primos entre si. d d

Exemplo: a =35 e Os inteiros

b =75 . Temos que mdc 35,75=5.
75 =15 são primos entre si. 5

35 =7 e 5

Outra proposição muito utilizada é a seguinte: Proposição. Se a∣bc e mdc  a , b =1 , então a∣c .

Demonstração

28

75=75 . mmc  3. por meio de uma fórmula simples. Texto 9 – O mínimo múltiplo comum (mmc) O mínimo múltiplo comum de dois inteiros a e b é o menor inteiro positivo que é múltiplo comum de a e b . b =1 . Claramente. então 7∣t . É representado por mmc a .3=6 mmc 20.25=100 mmc 1. para todo inteiro n . b = b . tais que 1=k 1 a k 2 b . n =n . logo a ∣ k 1  ac k 2  bc =c. isto é. então 1 é combinação linear de a e b . b .Como mdc  a . logo mdc 15. então mdc  a . b =a e mmc a . Ao multiplicar esta equação por c . Veremos na próxima aula que o mmc de dois inteiros está diretamente relacionado ao mdc. existem k 1 e k 2 . 5=15. Exemplos: - mmc 2. Mas a∣bc (por hipótese) e a∣ac .75=15 e mmc 15. Exemplo: 15 divide 75. Texto 10 – O mdc e mmc de vários inteiros Os conceitos de mdc e mmc de dois inteiros podem ser facilmente generalizados para mais de dois inteiros. se a∣b . resulta em c =k 1  ac k 2  bc  . Exemplo. pois mdc 7. Se t é inteiro qualquer e 7∣15⋅t .15=1. da seguinte forma: 29 .

30. ⋯ . at . b  . há uma calculadora de mdc e mmc online.50=mdc  mdc 20.30 . após apertar o botão “go”. Uma maneira eficiente de calcular o mdc é utilizar o algoritmo de Euclides. mostramos que: mdc  a .50=10. Em seguida.30.com/hcf. 30 . mmc 20.30. definimos mdc  a1. - mdc 20. b . Em inglês. b .c  Exemplos: .hscripts.a t  como o maior divisor comum de a 1.php. aparecem os resultados. veja como calculá-los. ⋯ . No endereço http://www.30 . c =mdc  mdc  a . a 2. podemos calcular o mmc de dois inteiros calculando primeiro o mdc destes inteiros.30. ⋯ . e mmc a 1.a t  como o menor múltiplo comum de a 1. aparecem os espaços onde devem ser digitados estes números e. at . a 2. at . ⋯ . c = mmc  mmc  a .50=300.50 =mmc  mmc 20.50=10 mmc 20. a 2.50=300 Assim. a 2. Na calculadora online existe um primeiro espaço onde se coloca o número de inteiros para os quais queremos calcular o mdc e o mmc. Como o mmc está relacionado ao mdc por uma fórmula simples. ⋯ . Estudaremos o algoritmo de Euclides na próxima aula. Exemplos: - mdc 20. mdc é chamado GCD (Greates Commom Divisor) ou HCF (Highest Commom Factor) e mmc é chamado LCD (Least Commom Multiple).50=mmc 60. a 2.50= mdc 10.Para dados inteiros não-nulos a 1. c  e mmc a .maths. b  . Texto 11 – Como calcular o máximo divisor comum Agora que você conheceu as definições do mdc e do mmc de dois ou mais inteiros positivos.

para todo par de inteiros não-nulos. se q e r são o quociente e o resto da divisão de a por b. b =a⋅b. Nesta aula. então vale mdc  a . a e b valem mdc  a .A imagem a seguir trata de um exemplo obtido na calculadora online. 4) Na próxima aula. r  . você estudou o teorema da divisão. b ⋅mmc  a . Estudou também o máximo divisor comum (mdc) e mínimo múltiplo comum (mmc) de dois ou mais inteiros e algumas de suas propriedades. Verifique essa fórmula com os itens da questão 1. que define precisamente quociente e resto. Faremos esses dois avanços na próxima aula. e mostra a unicidade destes. Os próximos passos serão estudar o algoritmo de Euclides para o cálculo do mdc e ver a relação entre o mdc e o mmc de dois inteiros. vamos mostrar também que. Atividades 1) Encontre o quociente e o resto dos seguintes pares de inteiros: a) a = 35 e b = 12 b) a = -30 e b = 18 c) a = 315 e b = 250 2) Calcule o mdc e o mmc dos pares de inteiros da questão anterior. para todo par de inteiros não-nulos a e b. 3) Na próxima aula. vamos mostrar que. Verifique essa fórmula com os itens da questão 1. 31 . b =mdc  q .

Este algoritmo permite determinar o mdc de dois inteiros. de Euclides. Uma conseqüência direta da proposição anterior é que Se a e b são Proposição: inteiros e a=qb r . b =mdc b . um problema mais complexo.1=1. um dos mais antigos algoritmos matemáticos conhecidos. então d ∣b ka . indicações de sua existência muito antes desta data. então d ∣b ka ka ⇒ d ∣b .5t 1=mdc 5. b =mdc a . Demonstração Se a=qb r . Portanto 32 .. b =mdc a .Aula 3 – Algoritmo de Euclides O algoritmo de Euclides é utilizado para determinar o máximo divisor comum (mdc) de dois inteiros. na coleção de livros Elementos. Exemplo: mdc 5. Demonstração Os pares a . Texto 12 – Dois resultados preliminares Para demonstrar o algoritmo são necessários dois resultados preliminares. sem que seja necessário fatorá-los. para todo t inteiro. certamente. sendo este. Há. se d ∣a e d ∣b ka . no entanto. b ka  . b  e a . Veja a seguir. por volta de 300 a. por um lado. para qualquer inteiro k vale que mdc a . b ka  têm os mesmos divisores comuns. então mdc a . b ka  têm os mesmos divisores comuns. em geral. por outro lado. se d ∣a e d ∣b . b  e a . Surge. pois. Proposição: Dados dois inteiros não-nulos a e b .C. mdc a . É. certamente vão ter o mesmo máximo divisor comum. r . isto é. sendo q e r inteiros. b ka  . então r =a qb. Como os pares a .

mdc a , b =mdc b , a=mdc b ,a
qb =mdc b , r .
Essa última proposição é a chave para o algoritmo de Euclides. Perceba que, para calcular o mdc de dois inteiros ab , basta calcular o mdc dos inteiros b e r , em que divisão de

r

é o resto da

a e b . Qual é a vantagem? Simples, os inteiros são menores. Veja um exemplo:

Seja a=1725 e b =315. A divisão de a por b é 1725=5⋅315150. Então,

mdc 1725,315=mdc 315,150.
O segundo mdc é facilmente calculado, pois os números são menores. Aliás, podemos aplicar o mesmo processo no segundo mdc.

315=2⋅15015 ⇒ mdc 315,150 =mdc 150,15.
Como 15∣150 , então mdc 150,15=15. Portanto,

mdc 1725,315=15 .

Texto 13 – O Algoritmo de Euclides Vamos, agora, descrever o algoritmo de um modo mais formal. Sejam a e b dois números inteiros positivos. Podemos assumir que a≥b . Caso contrário, invertemos a ordem dos números. Se a=b , teremos d =mdc a , b =a=b. Vamos considerar ab . Pelo Teorema da Divisão de Euclides, existem números q 1 e r 1 tais que:

a=q 1⋅b r 1, onde 0≤r 1b.
Se r 1=0 , então a=q 1⋅b e b é um dos divisores positivos de a . Nesse caso,

d =mdc a , b =b.

33

Se r 1≠0, temos 0r 1b e a=q 1⋅b r 1 . Nesse caso,

d =mdc a , b =mdc b , r 1 .
Seguimos para um novo passo do algoritmo, agora com os inteiros b e r 1 . Sejam q 2 e

r 2 o quociente e o resto da divisão de b por r 1

, respectivamente.

b =q 2⋅r 1r 2, em que 0≤r 2r 1
Se r 2=0 , temos b =q 2⋅r 1 e, nesse caso,

.

mdc b , r 1 =r 1 =mdc a , b  .
Paramos o nosso algoritmo nesse estágio. Se r 2≠0 , temos 0r 2r 1 e b =q 2⋅r 1r 2 . Nesse caso,

d =mdc a , b =mdc b , r 1 =mdc r 1, r 2 .
Como a seqüência dos restos satisfaz às condições

b r 1r 2 ⋯r k ⋯≥0,
partindo de um b fixado, existirá um primeiro índice k tal que r k =0. Nessa etapa, paramos o algoritmo e temos que:

d =mdc a , b =mdc b , r 1 =⋯=mdc r k
2 , r k
1 =r k
1 .
Exemplo: Vamos aplicar o algoritmo de Euclides para determinar mdc 245,168.

245 168 77 14

= 1×16877 = 2×7714 = 5×147 = 2×70
34

Então,

mdc 245,168=mdc 168,77 =mdc 77,14=mdc 14,7=7, pois 7∣14.
É comum esse processo ser representado pelo esquema a seguir:

1 245 77 168 14

2 77 7

5 14 0

2 7

Texto 14 – Cálculo do mdc e do mmc através da fatoração Uma outra maneira de calcular o mdc e mmc de dois inteiros a e b é utilizar sua fatoração.

Sejam:

a=p 1 ⋅p 2 ⋅ k e b = p 1 ⋅p 2 ⋅ ⋅p ⋅p k

1

2

k

1

2

k

em que escrevemos a e b com todos os primos envolvidos em a e b , usando expoentes nulos, caso seja necessário. Se um primo p i divide a , mas não divide b , podemos colocar p i na fatoração de b , mas com expoente 0, pois p i =1, o que não altera a fatoração. Exemplo: Sejam a=12 e b =21 . Temos que a=22⋅3 e b =3⋅7 . Ao escrever essas fatorações com os mesmos primos, obtemos:
0

a=2 ⋅3 ⋅7 e b =2 ⋅3 ⋅7 .
Ao colocar os inteiros a e b com os mesmo fatores primos p i , temos:

2

1

0

0

1

1

mdc a , b =p 1 ⋅p 2 ⋅ k , onde i =min i , i . ⋅p
Isto é, o expoente de um primo p i na fatoração de mdc a , b  é o mínimo entre os expoentes de p i nas fatorações de a e b .

1

2

k

35

i =i ⇒ p  ∣ p  . d = p 1 ⋅p 2 ⋅ ⋅p k ∣ p 1 ⋅p 2 ⋅ k =a e d = p 1 ⋅p 2 ⋅ ⋅p ⋅p k ∣ p 1 ⋅p 2 ⋅ k =b . Portanto d é divisor comum e todo divisor comum d ' divide d . segue-se que d ' ∣ d. Assim. fatorar é um problema mais complexo que usar o algoritmo de Euclides para obter o mdc. pode-se deduzir a fatoração do mínimo múltiplo comum de dois inteiros a e b . então. Nesse caso. i i i i i i i i i i i i Lembrando que i é o expoente de p i na fatoração de d . i  . b  é o máximo dos expoentes de p i na fatoração de a e b . p  ∣ p  e p  ∣ p  ⇒ i ≤i e i ≤i ⇒ i ≤ min i . 1≤i ≤k. b . Se d ' é outro divisor comum de a e b . em que i =max i . i . o que prova que d =mdc a . Pode parecer mais fácil obter o máximo divisor comum de dois inteiros utilizando a fatoração. b = p  ⋅p  ⋅ ⋅p  . p i ∣ p i e Logo.Como i =min i . 36 . lidamos com inteiros muito grandes. então i ≤i e i ≤i . d ∣a e d ∣b . então. Nas aplicações interessantes. mmc a . e se p i aparece com expoente i na fatoração de k 1 2 k 1 2 k 1 2 k d ' . O grande problema é fatorá-los. 1 2 k 1 2 k O expoente de p i na fatoração de mmc a . para todo i . 1 2 i i p  ∣ p i i i i . Ao utilizar um raciocínio análogo ao mencionado anteriormente. ⋅p ou seja. Se a=p 1 ⋅p 2 ⋅ k e b =p 1 ⋅p 2 ⋅⋅p k ⋅p 1 2 k 1 2 k .

mdc a . b ⋅mmc a . em que são agrupadas as potências de mesma base. b = p 1 ⋅p 2 ⋅ k ⋅ p 1 ⋅p 2 ⋅ k =p 1 ⋅p ⋅p 1 2 k 1 2 k 1  1 ⋅p 2 2 2 ⋅ k ⋅p k  k .Exemplo. Sejam agora a e b inteiros e a=p  ⋅p  ⋅  e b =p  ⋅p  ⋅ k . i  e ⋅p k 1 2 1 2 k    mmc a . b  . ⋅p k ⋅p  1 2 1 2 1 2 k 1 2 k Você viu que: mdc a . permitindo o cálculo de um a partir do outro. 1 2 k Assim. perceba inicialmente que. max x . b  não é prático. se x ≤ y (o caso x ≥ y é análogo). Logo. b  e mmc a . y =x ⇒ max  x . onde i =min i . Seja a=84 e b =18. para quaisquer inteiros x e y . Para o cálculo do mmc a . b . y =x  y. somando os expoentes. mdc 84. dada a dificuldade de fatorá-los. y = y e min x . y min x . Por exemplo. y =x y . onde i =max i . i  . não há um algoritmo de Euclides. b  Para ver a relação entre o mdc a . No entanto o cálculo do mmc a . 37 . se os inteiros a e b forem grandes. b  . É o que você vai estudar no texto a seguir. então max x . Texto 15 – Relação entre mdc a . O que existe é uma relação direta com o mdc a .18=22⋅32⋅7=252. 3 =6 1 1 e mmc 84. y min x . b  e o mmc a . Então a=22⋅3⋅7 e b =2⋅32 . b =p  ⋅p  ⋅  .8=2 . b = p 1 ⋅p 2 ⋅ ⋅p k .

18⋅mmc 84. Ainda que possa ser melhorado de diversas maneiras. b  .18=2⋅3=6 e mmc 84. b =a⋅b. Em caso afirmativo. p1 1  1 ⋅p 2 2  2 ⋅⋅p k k  k =p 1 1 1 ⋅p 2 2 2 ⋅ ⋅p k k k = p 1 ⋅p 2 ⋅ ⋅p k ⋅ p 1 ⋅p 2 ⋅ ⋅p k =a⋅b . inclua k em um conjunto D.18=22⋅32⋅7=252. • Para todo inteiro k entre 1 e o mínimo de a e b .Mas. Texto 16 – Convergência do Algoritmo de Euclides Veremos agora uma abordagem mais computacional do Algoritmo de Euclides. i i =min i . uma vez que são necessárias várias divisões. esse algoritmo não é prático para inteiros grandes. portanto. Então: mdc 84. teste se k ∣a e k∣b .18=6⋅252=1512=84⋅18=a⋅b. mdc a . Este é um algoritmo que sempre funciona. 38 . i =i i . . i max i . No entanto é extremamente lento. Para calcular o mdc de dois inteiros positivos a e b . podem-se listar todos os divisores positivos comuns de a e b e determinar o máximo destes divisores. b ⋅mmc a . 1 2 k 1 2 k ou seja. Exemplo: a=84=22⋅3⋅7 e b =18=2⋅32. Saída: mdc a . para todo i . pois retorna o mdc de dois inteiros a e b . Um algoritmo desse tipo pode ser escrito da seguinte forma: Entrada: inteiros positivos a e b . • Retorne o máximo do conjunto D. Temos mdc 84.

no máximo. r  e retornamos esse valor como resposta. Este algoritmo é definido por recorrência. O Algoritmo de Euclides pode ser escrito do seguinte modo: Entrada: inteiros positivos a e b . Se r ≠0 . b  . Mais quão rápido converge o Algoritmo de Euclides? Por exemplo. Se r =0 . então calculamos mdc b . com a≥b . a fim de obter o resultado. Sejam a e b inteiros positivos. ao iniciar com inteiros a e b de 1000 dígitos. o quociente da divisão de a por b é 1. Para respondermos a essa pergunta. então r ≤a /2. e seja r o resto da divisão de a e b . Demonstração Como 0≤r b .O Algoritmo de Euclides tem duas vantagens: é rápido e fácil de ser implementado computacionalmente. se b ≤a /2 . Saída: mdc a . quantos passos. Se b a /2 . logo: a=b⋅1r ⇒ r =a b. isto é. então o resultado é b e paramos. precisamos da seguinte proposição: Proposição. Então r ≤a /2 . seriam necessários para chegarmos ao final do algoritmo? Essa é uma pergunta muito importante quando consideramos aplicações computacionais práticas que utilizam o Algoritmo de Euclides. o algoritmo cita ele mesmo várias vezes. 39 . • • • Seja r o resto da divisão de a por b .

r 2  ). r 1  ).Mas b a /2 ⇒ b  a /2 ⇒ a b a a / 2=a /2 . r 3 =⋯ Observe que a cada dois passos trocamos os primeiros elementos de um par pelo resto da divisão dos dois elementos do par. No 4º passo ( mdc r 1. b =mdc b . 2 2 40 . Por exemplo. A cada dois passos. que é o resto da divisão de a por b (par no 1º passo). Portanto r a / 2 . satisfazem r k ≤ a 2 k / 21 . no 3º passo ( mdc r . r  ). Com essa proposição se determina o número máximo de passos necessários para que o algoritmo de Euclides termine. no máximo. o primeiro elemento do par é r . Assim. o maior número do par fica reduzido a. temos: log2 a= k k 1 ⇒ log2 a 1= ⇒ k =2log2 a 2. Você pode observar que os restos r k . r =mdc r . para k inteiro par. vale a igualdade na fórmula acima e o algoritmo para quando encontramos resto 1. r 1 =mdc r 1. r 2 =mdc r 2. metade do valor. Fazendo r k =1 na fórmula anterior. que é o resto dos inteiros do 2º passo ( mdc b . Na pior hipótese. r ≤a /2 ⇒ r 2≤r /2≤a /4 ⇒ r 4 ≤r 2 /2≤r /4≤a /8. No algoritmo de Euclides temos mdc a . o primeiro elemento do par é r 1 . obtemos: a 2 k /2 1 =1 ⇒a=2 k /21 Ao aplicar logaritmo de base 2 de ambos os lados.

a) b) a=847 e b =91 . a=2475 e b =231 . Há detalhes que só podem ser percebidos depois que os conceitos ficam mais amadurecidos. Algumas vezes é preciso ler mais de uma vez. k ≤2 log 2 10 1000 2=2000 log2 10 2≈2000⋅3. em que a é o maior dos inteiros que iniciaram o algoritmo. por isso. e a fórmula que relaciona o mdc e o mmc. Você também estudou o algoritmo de Euclides. A partir do mdc. pode ter encontrado alguma dificuldade. Atividade 1) Use o algoritmo de Euclides para calcular o mdc entre os pares de números abaixo. O algoritmo chega ao resultado em. 6. contas com fatorações em primos e. em termos da fatoração em primos dos inteiros envolvidos. Assim. então a≤101000 . a expressão do mdc e do mmc. Nesta aula você teve contato com muitas demonstrações.641 passos.322 2=6641.A conclusão é que o número máximo de passos para terminar o algoritmo de Euclides é 2 log2 a 2. no máximo. Exemplo: Se a é um inteiro de mil dígitos. 41 . calcule o mmc destes números.

Nesta aula. basta avaliar os primos menores ou iguais a n . Não é necessário testar todos os primos menores que n . você vai estudar um processo clássico para obter todos os primos de 1 a n e a descrição de um teste de primalidade simples. Demonstração Se n é composto. então existem n 1 e n 2 . tais que n =n 1⋅n 2 . Proposição. então possui um fator primo menor ou igual a n . Um teste de primalidade é qualquer algoritmo que determina se um inteiro é primo. em que 1 n 1 n e 1 n 2 n. então será primo. 42 . incluindo as aplicações em Criptografia. Se um inteiro n não é primo. Se n não é primo. Determinar a fatoração de um dado inteiro é computacionalmente mais difícil do que determinar se esse inteiro é ou não primo. A idéia é dividir n por todos os primos menores que ele. Caso não seja divisível por nenhum. Não confunda teste de primalidade com um problema relacionado: o de fatoração de inteiros.Aula 4 – Testes de Primalidade Como afirmar se um inteiro é primo? Trata-se de um problema relevante em várias aplicações de Teoria dos Números. então há algum fator primo menor que ele. Texto 17 – Primeiro teste de primalidade Vamos agora descrever um método simples para determinar se um inteiro n é ou não primo.

Devemos eliminar os múltiplos dos primos menores ou iguais a  100=10 . Como testar a divisibilidade de 127 pelos primos 2. então 127 é primo. Assim: n = n 1⋅n 2 ≥ n 1⋅n 1 = n 2 ⇒ n 1 ≤ n . como p ∣n 1 e n 1∣n . Como 1 não é primo. Quando o algoritmo pára. os inteiros remanescentes são primos. separando os múltiplos dos primos em sucessão. em passos. 7 e 11. de fato. Logo. 1 Seja p fator primo de n 1 (caso n 1 seja primo. vamos escrever o crivo de 1 a 100. Por exemplo. convém ter em mãos uma lista de primos. O método consiste em escrever todos os inteiros de 1 a N. Uma forma para obtê-la. O algoritmo prossegue. Leia sobre Eratóstenes na seção “Saiba mais” ao final desta aula. Enquanto o último número a ser avaliado não excede a raiz quadrada de N. O algoritmo atua. como uma peneira. Como ele não é divisível por nenhum destes números. apenas os primos passam pela peneira. Como n 1 ≤ n e p ∣n 1 . Em cada etapa.Suponha que n 1 ≤n 2 (o caso n 2 ≤n 1 é análogo). p =n 1 ). é o conhecido crivo de Eratóstenes. então p ≤n 1≤ n e. p é fator primo de n menor ou igual a n . então p ∣n . seqüencialmente. O crivo de Eratóstenes é um método muito antigo para encontrar todos os primos até um certo inteiro específico. pode ser riscado imediatamente. Para usar este método. A palavra crivo quer dizer peneira. Ao final do processo.  127 é um pouco maior que 11. deixando passar apenas os que não são divisíveis por estes primos. basta Exemplo: Vamos determinar se 127 é primo. marcamos ele como primo e riscamos todos os seus múltiplos próprios. encontramos o primeiro número que não foi riscado. 3. 5. repetimos os passos citados. até um número escolhido. 43 .

44 . que não é primo. Em seguida. escrevemos todos os inteiros de 1 a 100. Encontramos e marcamos como primo o número 2.Inicialmente. riscamos todos os múltiplos próprios de 2. Riscamos o 1. Depois marcamos 3 como primo e riscamos seus múltiplos próprios.

61. 23. você encontra um aplicativo de crivo de Eratóstenes montado de 1 a 400. Então. 73. 47. 19.org/Curriculum/Arithmetic/Eratosthenes. Concluímos que os primos de 1 a 100 são: 2. aparece em um botão o próximo inteiro não-riscado. 67. Para conhecer mais sobre os crivos de Eratóstenes. 41. Ao clicar em um inteiro da tabela. 71. Marcamos 5 como primo e riscamos seus múltiplos próprios. O primeiro inteiro não-riscado é o 7. 89 e 97. 79. 53. visite os dois endereços listados a seguir: http://www.cut-the-knot. 83. que é maior que a raiz quadrada de 100. 43.Em seguida.de/mhb/eratosiv. o algoritmo pára e os inteiros remanescentes podem ser marcados como primos. 11. Ao apertá-lo. 37.shtml Neste endereço há um aplicativo em que você pode escolher o inteiro N. Selecionamos 7 como primo e riscamos seus múltiplos próprios. Como o próximo número não-riscado é 11.htm Neste outro endereço. o primeiro inteiro nãoriscado é o 5.faust. 7. os múltiplos próprios desse inteiro desaparecem. 45 .schule.fr. são riscados os múltiplos próprios deste inteiro e o próximo não-riscado é exibido. 13. 3. 29. 5. 17.bw. http://www. 31. 59.

Exemplos: • • 10=4 (os primos 2. então  x  é o número de inteiros primos menores ou iguais a x . 3. Texto 18 – Teorema dos Números Primos Para responder a algumas questões. 10 =9.O teste apresentado inicialmente – dividir um inteiro N pelo primos menores ou iguais a N – sempre funciona.229 . mas podem comprovar que n provavelmente é primo. na prática. não pode ser utilizado para inteiros com fatores primos muito grandes. É comum ser utilizado para testar a primalidade de inteiros pequenos.592 . como. 10 =1. porém. Se x é real positivo. Se n passa no teste. os primos se tornam mais espaçados? a densidade dos primos diminui? é necessário definir a função  x . mas como eles se distribuem? conforme os inteiros ficam maiores. então apresenta certa probabilidade de ser primo. O teste probabilístico mais simples é o teste de Fermat. existem infinitos primos. Esses testes não permitem afirmar com certeza se um inteiro n é primo. A chance de erro pode ser reduzida a um valor arbitrariamente baixo. que será estudado na Aula 9. por exemplo. Vários testes de primalidade populares são probabilísticos. 100=25 . se aplicarmos o teste várias vezes. há 25 primos menores que 100. 5 e 7 são menores que 10). 46 5 4 . • • • 1000=168 . Confira na lista que fizemos usando o crivo de Eratóstenes.

o erro é da ordem de 1013 . Você também estudou a questão da distribuição dos números primos e o Teorema dos Números Primos. que dá origem a um teste probabilístico.• 10 =78. você aprendeu o que são testes de primalidade e estudou o teste mais simples. pelo menos em termos relativos. relacionados à questão da distribuição dos números primos. que afirma que: lim x ∞   x  x log  x   = 1 onde log x é o logaritmo natural de x (logaritmo na base e ). é o chamado teorema dos números primos. chamado teste de Fermat. 6 Um resultado importante. se x é muito grande. que é um algoritmo antigo para elaborar tabelas de primos. Vamos voltar à questão dos testes de primalidade ao apresentarmos o pequeno teorema de Fermat. Este método nos leva ao crivo de Eratóstenes. x é bastante elevado. Por log x  Nesta aula 4. em 1896. então  x  deve estar próximo de x . Um dos problemas sem solução mais importantes — a chamada hipótese de Riemann — relaciona-se à função  x  e ao teorema dos números primos.498 . 47 . suposto originalmente por Gauss. Esse resultado significa que. log x  Mesmo para valores muito grandes de x . no século XIX. que é tentar dividir N por todos os primos menores ou iguais a N . e provado por Hadamard e Vallé-Poussin. Há vários problemas não resolvidos na Matemática. o erro  x  exemplo. para x =10 16 .

geógrafo e astrônomo grego que viveu de 276 a 194 a. onde atuou como bibliotecário da famosa biblioteca dessa cidade. valor próximo ao conhecido hoje. de 40. Atividades 1) Determine se os seguintes inteiros são primos: a) N = 229 b) N = 1223 c) N = 481 2) Use o crivo de Eratóstenes para determinar todos os primos até N=200. trabalhou e morreu em Alexandria. em duas cidades distantes. 48 . Foi o primeiro a calcular a circunferência da Terra. Há controvérsias sobre a unidade de medida usada por Eratóstenes. ele tinha grande conhecimento em várias áreas. mas em cada uma delas era apenas o segundo melhor. segundo seus contemporâneos. a segunda letra do alfabeto grego.620 Km.080 Km. Eratóstenes era conhecido na época pelo apelido de beta. Eratóstenes fez contribuições importantes para as áreas de Matemática e Ciências. A razão do nome é que.Saiba mais: Eratóstenes Eratóstenes foi um matemático. Eratóstenes mediu também a distância da Terra ao Sol. mas estudou.C. da Terra à Lua e teria compilado um catálogo de 675 estrelas. Determine 200. Nasceu em Cyrene (atual Líbia). usando trigonometria e o conhecimento do ângulo de elevação do Sol ao meio-dia.690 Km e 46. mas acredita-se que o valor obtido por ele esteja entre 39.

Aula 5 – Aritmética Modular Aritmética modular é um sistema em que as operações entre os inteiros são feitas “módulo” um outro inteiro n . Assim: 1810=28 e 28 24=4 . 49 . definida por um número. X (letra 22) por A (letra 1) e Z (letra 23) por B (letra 2). esta substituição corresponde à operação x  x 2. Se ele marca 21 horas neste momento. Isto é uma aritmética modular. Esta “aritmética do relógio” acontecerá em qualquer evento cíclico. duas unidades à frente. então temos: A 1 B 2 ⋮ V 21  X 22 Z 23  C 3 D 4 ⋮  Z 23  A 1  B 2   Veja que V (letra 21) é substituída por Z (letra 23). Para definir exatamente essas noções. voltamos ao início. após as 24 horas. Em números. é usada para cifrar e para decifrar a mensagem. É semelhante ao código de César. um código de César é um método em que uma chave. se trocarmos cada letra pela próxima. O sentido desta frase será melhor compreendido ao longo desta aula. no caso módulo 23. daqui a 5 horas marcará 2 horas da manhã. é importante que você conheça o estudo das relações de equivalência e veja como a aritmética modular se traduz em uma relação de equivalência chamada congruência módulo n . Para entender o sistema. reiniciando a contagem. Se ele marca 18 horas. Leia mais sobre esse método criptográfico na aula 5 do livro Introdução à Criptografia. o relógio volta a marcar 0 hora. após o 23. certo? Isso ocorre porque. com o detalhe de. pense em um relógio. após 10 horas marcará 4 horas da manhã. Como você estudou na primeira disciplina do curso. Usando um alfabeto de 23 letras.

3. tal que  x .5 .4 .2 . nesta aula. 3.Relações Uma relação em um conjunto S é uma maneira de comparar os elementos de S .5} .3 . e ainda vai aprender que congruência módulo n é uma relação de equivalência. 1.4 . 4.2 . y ∈ R .3 .5} é o subconjunto R ={1.3 . 1. A relação “ser da mesma espécie” no conjunto de animais em um zoológico.4 . 2. Podemos definir uma relação em um conjunto S como um subconjunto de S ×S (conjunto dos pares ordenados { x .5 . para uma relação em um conjunto S.4 .5} é o subconjunto R ={1.Assim.3 . 1.5 . Exemplo: São relações: • • • • A relação de igualdade = nos inteiros.1 . 2.  4.3 . Muitas relações interessantes obedecem às propriedades que serão destacadas a seguir.5 . 4. quando x e y se relacionam. temos um subconjunto R ⊆S ×S .4 . Texto 19 .2 . A relação  nos inteiros. 1. . Exemplos: • A relação de igualdade no conjunto {1. 2. • A relação ≤ no conjunto {1. Veja a definição formal de relação no quadro a seguir. 3. A relação “ter a mesma idade” em um grupo de pessoas. 5. 50 .4 .2 . y ∈ S } ). você vai estudar a definição de relação e o que é uma relação de equivalência. 5. Isso lhe dá uma idéia do que seja uma relação. y  .1 .5 } A idéia dessa representação é que. x . 2. 3.3 .2 .4 . 2.

transitiva (se A tem a mesma idade que B e B tem a mesma idade que C. ii. A relação ≤ nos inteiros é reflexiva ( a ≤a ) e transitiva ( a ≤b e b ≤c ⇒ a ≤c ). 51 . c ∈ S. Podemos agora definir a relação de equivalência. simétrica. b . • A relação "ter a mesma idade que" no conjunto dos alunos de uma sala é: . quando a ~b e b ~a ⇒ a = b . anti-simétrica e transitiva. quando a ~a para todo a ∈ S . A relação ≤ no conjunto dos inteiros é reflexiva. simétrica e transitiva (Verifique). se a ≠b . • • A relação  no conjunto dos inteiros é transitiva. então A tem a mesma idade que C). anti-simétrica. mas não é reflexiva nem simétrica. Dizemos que a relação ~ é i. • A relação de inclusão ⊆ no conjunto P  X  dos subconjuntos de um conjunto X é uma relação reflexiva e transitiva. Há uma quarta propriedade que surge em várias relações importantes (inclusive ≤ ) : Uma relação ~ é iv. quando a ~b ⇒ b ~a para todo a . Confira alguns exemplos. . • A relação de igualdade nos inteiros é reflexiva. transitiva. b ∈ S. iii.simétrica (se A tem a mesma idade que B. reflexiva. mas não é simétrica. mas não é simétrica (por exemplo. para todos a .Seja S um conjunto e ~ uma relação em S .reflexiva (aluno A tem a mesma idade que ele mesmo). então B tem a mesma idade que A) . quando a ~b e b ~c ⇒ a ~c . então não vale a ≤b e b ≤a ).

52 . A relação "ter a mesma idade que" no conjunto dos alunos de uma sala é relação de equivalência. São relações de ordem: • A relação ≤ no conjunto dos inteiros. se ela é reflexiva. são reflexivas. anti-simétrica e transitiva é chamada relação de ordem. Muitas relações interessantes. vamos voltar às congruências módulo n . • A relação ⊆ no conjunto dos subconjuntos de um conjunto X . Agora. • A relação "a divide b" no conjunto dos inteiros. Elas também recebem um nome especial. Exemplos. anti-simétricas e transitivas. simétrica e transitiva. • A relação de igualdade nos inteiros é relação de equivalência. se a b é um múltiplo de n . se a =b kn para algum k ∈ℕ . Uma relação reflexiva. Texto 20 – Congruência Módulo n Seja n um inteiro positivo. pois não é simétrica. • A relação ≤ no conjunto dos inteiros não é relação de equivalência. ou seja. ponto de partida desta aula. mas é importante. Dizemos que a ≡b mod n . assim como ≤ .Uma relação em um conjunto S é chamada relação de equivalência.

a ≡a mod n (propriedade reflexiva) 2. Encontrar o resto da divisão de a por n é equivalente a achar um inteiro r . a ≡b mod n e b ≡c mod n ⇒ a ≡c mod n (propriedade transitiva) Como exercício. • 10≡0 mod 5 . veja as demonstrações feitas. 53 . Observe que a ≡0 mod n ⇔ n∣ a 0 ⇔ n∣a . vale que: 1. vamos estabelecer o fato de que a relação de congruência módulo n é uma relação de equivalência. Para todos a . porque 5 divide 3 7= 10 . prove as afirmações 1 e 2 da proposição. 0≤r n . pois 5 divide 10 0=10 .Exemplos: • 14≡6 mod 4 . por exemplo. siga e veja a demonstração da afirmação 3. • 3≡7 mod 5 . b e c inteiros e n inteiro positivo. Proposição. a ≡b mod n ⇒ b ≡a mod n (propriedade simétrica) 3. Sejam a inteiro e n inteiro positivo. os inteiros que são congruentes a 0 módulo n são exatamente os múltiplos de n . Ao final. todos os inteiros que têm resto 1 pela divisão por n são congruentes a 1 módulo n . q e r o quociente e o resto da divisão de a por n . pois 4 divide 14 6=8 . Temos que: a =q ⋅n r ⇒ a r =q ⋅n ⇒ a ≡ r mod n . Esta observação é importante porque veremos diversas fórmulas que permitem encontrar facilmente um inteiro pequeno que seja congruente módulo n a uma dada potência. ou seja. Agora. junto com a resposta dos exercícios. Então. Depois. tal que a ≡r mod n .

Esta proposição mostra que a relação de congruência módulo n é uma relação de equivalência. Dada uma relação de equivalência ~ em um conjunto S . se   y ~x . se a ≡b mod n e b ≡c mod n . n∣a b  e n∣ b c  ⇒ n∣a b  b c = a c  ⇒ a ≡c mod n . pois. por exemplo. Todos os alunos de 15 anos. então x = y . Por outro lado. a classe de equivalência de um elemento x ∈ S é formada pelos elementos que são equivalentes a x por ~ . então z ~ x .Classes de Equivalência Uma relação de congruência em um conjunto S induz naturalmente a uma classificação dos objetos do conjunto. se y ∈ x .  Desta forma. que é dada pelas classes de equivalência. o que é apenas outra forma de dizer que. então x ~ y . a relação de equivalência dada por "ter a mesma idade que" no conjunto dos alunos de uma escola classifica-os em um subconjunto de alunos de mesma idade. logo z ~ x e x ~ y ⇒ z ~ y ⇒ z ∈ y . Após você estudar estas classes. Texto 21 . Como x ∈ y . Por exemplo. voltaremos à relação de congruência módulo n . então x ∈ y .     54 . se z ∈ x . No próximo texto. Esta classificação é expressa pelo conceito de classe de equivalência. então      x ~ y . que é a propriedade de simetria de uma relação de equivalência. o que mostra que x ⊂ y . Quanto à afirmação 3. são equivalentes por esta relação.Demonstração. Denotamos a classe de equivalência de x por x assim:  x = {y ∈ S ∣ y ~x }  Observe que. z ∈ x ⇒ z ∈ y . então. se x ∈ y . e ficam dentro da mesma "classe". você vai aprender que uma relação de congruência em um conjunto cria uma partição desse conjunto.

cuja união é S. pois se z ∈ x ∩ y .Podemos mostrar de forma análoga que y ⊂ x .      Isso permite concluir que. Reciprocamente. Duas classes distintas são disjuntas. ii. quando x ∈ y . Este conjunto é chamado espaço quociente da relação de equivalência ~ e é algumas vezes denotado por S /~ . não é difícil mostrar que Dada uma partição de S. o conjunto das classes de equivalência em um conjunto S é formado por subconjuntos não-vazios disjuntos de S. então x = y . Desse modo. Observe ainda que. disjuntos dois a dois ( S i ∩S j =∅ se i ≠ j ).         Em outras palavras. Uma partição de um conjunto S é uma coleção de subconjuntos não-vazios S i . o conjunto de suas classes de equivalência forma uma partição de S . Texto 22 – Classes de Congruência A relação de congruência módulo n é uma relação de equivalência.  Essas observações podem ser resumidas em duas propriedades muito importantes das classes de equivalência: i. ou são disjuntas. dada uma relação de equivalência em um conjunto S . como x ∈ x . se x ∩ y ≠∅ . O que foi mostrado anteriormente é que. todo elemento de S está em alguma classe de equivalência. provando assim que x = y . duas classes de equivalência ou são iguais. 55 . existe uma relação de equivalência tal que suas classes de equivalência são os conjuntos da partição. tal que S é a união dos S i . então       z ∈x e z ∈ y ⇒ z = x e z = y ⇒ x = y . A união de todas as classes de equivalência é todo o conjunto S.

temos 5=0 .} Continuando. Logo a ≡r mod 5 ⇒ a ∈ .Quais são as classes de equivalência para congruência módulo n ? Vamos a um exemplo: quais são as classes módulo 5? Primeiro.2 . 0 é formado pelos múltiplos de 5:  0={5k ∣ k ∈ℤ} = {. .      As classes 0 .  Assim..11 . 1 é formado pelos múltiplos de 5 somados a 1:  1={5k1∣ k ∈ℤ} = {.. }  4 ={5k4∣ k ∈ℤ} = {..9 . 6.4.. }  3={5k3∣ k ∈ ℤ} = {. . .} Qual é a classe de 1?  x ∈ 1 ⇒ x ≡1 mod 5 ⇒ 5∣ x 1 ⇒ x 1=5k ⇒ x =5k1.. . 5... . Chamamos este conjunto de ℤ5 ...8 . {0 . 1 .14 . para qualquer a inteiro.. r      Assim. 2 ..}     E o 5 ? Como 5∈ 0 . tal que a =5qr . 4. existem inteiros q e r ... 10. . 4 } é o espaço quociente (conjunto das classes de equivalência) da relação de congruência módulo 5.. vamos obter a classe do 0:  x ∈ 0 ⇒ x ≡0 mod 5 ⇒ 5∣ x 0 ⇒ 5∣x  Portanto.13 . 2 .10 . .. 3. . 9. Observe que. 8..0 .. 3 . 1 .12 . onde 0≤ r 5 (divisão de n por 5). 2. obtemos: • • •  2={5k2∣ k ∈ ℤ} = {. 7. 4 são todas as classes módulo 5..3 . 3 ..5 .1 .6 ..7 . 1. 56 . . . para algum k ∈ℤ.

. você estudou as relações de congruência módulo n . O conjunto de todas as classes de congruência módulo   n é o conjunto {0 . Proposição. . 1 .Podemos generalizar esta observação. . simétricas e transitivas são chamadas relações de equivalência.. Veja que. 1 . Por exemplo: para módulo 5. tais que: a =q ⋅n r . existem inteiros q e r ...   Então: ℤn ={0 . Uma relação de equivalência em um conjunto particiona este conjunto em classes de equivalência. . n 1} Cada classe a é um conjunto infinito. em particular. as classes 0 . . n 1} . qualquer inteiro da forma  5k1 é representante da classe 1 . Para isso. podemos escolher qualquer elemento dela como representante. Seja n inteiro positivo. Desta forma.. n 1 são todas distintas. 1 . n 1 . Representamos por ℤn o conjunto de todas as classes de congruência módulo n .. .. . 57 . Veja a seguir. aprendeu as relações em geral. todos os inteiros estão em alguma das classes r   0 . O inteiro a é um representante da classe a . 1 . que as relações reflexivas. conheceu algumas propriedades e viu. Portanto a ≡r mod n ⇒ a ∈ . sendo 0≤r n..   Por outro lado. Demonstração Dado qualquer inteiro a . Nesta aula. . pois dois inteiros entre 0 e n 1 só podem ser congruentes módulo n se forem iguais.   para uma classe..

2. Considere as seguintes relações em S: R 1 ={1.4  . 1. 2.4 .4 .2 .3 .4} R 4 ={1. 2.Outro ponto estudado foi a relação de congruência módulo n . E você verá. 1.1 . 4. 3. ⋯ .2 . 2. 3.3 .1 . 1.2 .3 .3 . 1. 1. 1.2  . simétrica ou transitiva.2 .4} Para cada uma das relações anteriores.1 .1  .3  . 2) Determine se as afirmações a seguir são verdadeiras ou falsas: a) 25≡1 mod 12 b) 5≡ 14 mod 3 c) 12≡ 2 mod 3 d) 57 t ≡5 mod 7.2 . 2.2 . 2.2 . 4.4} R 2 ={1. 4. 2. ao longo da disciplina.3 . 2.3 . que é uma relação de equivalência.1 .2 .3} R 5 ={1. indique se é reflexiva. Atividades 1) Seja S ={1. 1. 3.1 . que essa ferramenta é utilizada quase que universalmente. 3.4 } . O conjunto das classes de congruência módulo n é denotado por ℤn . n 1 }. para todo t ∈ℤ e) x 2 17 y =3 mod 17 ⇒ x 2≡3 mod 17 58 . 3.3 . 2.3 . 2. 1 .2. A congruência módulo n é uma poderosa ferramenta na Teoria dos Números. 3.3} R 3 ={1. Você viu ainda a demonstração de que:   ℤn ={0 .

pois  21≡5 mod 8 .    Em ℤ8 . 6 5=65=11=3 . vamos obter o mesmo resultado? Verificamos  1421=1421=35=3 . 65=11≡3 mod 8 . tem como objetivo estudar os números inteiros. Agora você vai estudar as operações com classes de congruência. a aritmética. Se somarmos   6 5 . Você se lembra que a aula anterior. termo utilizado para se referir à Teoria dos Números. seria obtido o mesmo resultado? Vamos ver um exemplo. temos 235= 4 . 59 . Mais precisamente. iniciou com a aritmética das horas de um relógio? Vamos ver mais sobre esse exemplo. Para uma aritmética módulo 24. temos a soma   235=4 . logo 14=6 e facilmente que sim. A operação de soma em ℤn é definida naturalmente por a b =a b . suas operações e representações. o relógio volta a marcar 0 hora). Por exemplo. em ℤ24 . Isso acontece porque 235 24=4 (após às 24 horas. Neste próximo passo. se fossem utilizados outros representantes. usando os representantes 14 e 21. sobre Aritmética Modular. Texto 23 – Definição de Soma e de Produto de Classes A aritmética do relógio é uma aritmética módulo 24. O problema desta    definição é que a e b são representantes das classes a e b . Logo. se o relógio marca 23 horas.Operações com Classes de Congruência A Matemática é a rainha das ciências e a Aritmética é a rainha da Matemática. Nesse  caso. respectivamente. vai aprender a definição de soma e de produto de classes módulo n . após 5 horas vai marcar 4 horas da manhã.Aula 6 .  Mas 14≡6 mod 8 e 21≡5 mod 8 . Carl Friedrich Gauss Como você estudou na primeira aula.

a ' b ' =a  k 1 n  b k 2 n = a  b  k 1 k 2 n ⇒ a ' b ' ≡a b mod n . a ' b ' =a b 2. vamos provar que tanto a soma como o produto de classes não dependem da escolha dos representantes. a ' ⋅b ' =a⋅b Demonstração  a a ' = ⇒ a ' ≡a mod n ⇒ a ' =a k 1 n . para qualquer inteiro positivo n . Para que a definição a b =a b faça sentido.  b' =b ⇒ b ' ≡b mod n ⇒ b ' = b k 2 n . se a ' = e b ' =b . o que mostra que a ' b ' =a b . Em ℤn . então 1. para algum k 1 ∈ℤ . para algum k 2 ∈ℤ .É claro que este é apenas um exemplo. Uma forma equivalente de ver a proposição anterior é somar e multiplicar duas congruências módulo n . Se a ≡a ' mod n e b ≡b ' mod n . temos   de provar que. a ' ⋅b ' = a k 1 n ⋅ b  k 2 n =a b a k 2 n  b k 1 n  k 1 k 2 n 2 =ab n  bk 1ak 2k 1 k 2 n  .    a Proposição. então • • a b ≡a ' b ' mod n a b ≡a ' b ' mod n 60 . Logo.  Na próxima proposição. Portanto a ' b ' ≡a b mod n ⇒ a ' ⋅b ' =ab . a soma a b não depende dos  representantes escolhidos nas classes a e b .

obtemos: a ≡b mod n ⇒ a k ≡b k mod n Em particular. com toda a segurança. não é mais só um conjunto. Este.Seja k um inteiro positivo. se a ≡1 mod n . agora. Essas operações herdam diversas propriedades da soma e da multiplicação dos inteiros: • Propriedades da soma  a b c =  b c     a   a b =b     a a 0 =   a   a  a =0 • Propriedades da multiplicação  a⋅b ⋅ =⋅ b⋅    c a  c a⋅b =b⋅    a a⋅1=a    • Distributividade a⋅ b c =⋅b ⋅    a  a c Um conjunto com operações de soma e de multiplicação que satisfazem às oito propriedades listadas anteriormente é chamado um anel. então a k ≡1 mod n para todo k inteiro positivo. mas um conjunto com operações de soma e multiplicação. Pelo exposto. Podemos então falar no Anel ℤn . podemos. 61 . definir soma e produto de classes por a b =a b   a⋅b =a⋅b   Assim. podemos agora somar e multiplicar classes em ℤn . Ao multiplicar uma congruência a ≡b mod n por ela mesma k vezes.

Texto 24 – Tabelas de Soma e de Multiplicação Uma maneira de visualizar as operações de soma e de multiplicação de classes em ℤn é através de tabelas. Como exemplo. a última entrada é 1= 4⋅4 . Cada entrada na tabela corresponde à operação dos elementos indicados na primeira linha e na primeira coluna. Na tabela de    multiplicação. listamos todas as classes na primeira linha e na primeira coluna. 62 . vamos fazer as tabelas de soma e de multiplicação de ℤ5 : + 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 0 2 2 3 4 0 1 3 3 4 0 1 2 4 4 0 1 2 3 0 0 1 2 3 4 0 0 0 0 0 1 0 1 2 3 4 2 0 2 4 1 3 3 0 3 1 4 2 4 0 4 3 2 1   4 Veja que a última entrada (à direita e abaixo) da tabela soma é 3= 4  . Nelas.

vamos trabalhar algumas aplicações da congruência. Agora. 63 .Analise cuidadosamente todas as entradas dessas tabelas. Confira cada uma delas para ter certeza de que você entendeu a construção. Tabelas de soma e de multiplicação de ℤ4 : + 0 1 2 3 0 0 1 2 3 1 1 2 3 0 2 2 3 0 1 3 3 0 1 2 0 0 1 2 3 0 0 0 0 1 0 1 2 3 2 0 2 0 2 3 0 3 2 1 Vamos continuar o estudo da estrutura de ℤn na próxima aula. iniciando pelas regras de divisibilidade.

então a =2⋅10 25⋅107=200507 . Por exemplo. 5. Como exercício de congruência. se a =a k⋅a k 1 . que o artifício para deduzir regras de divisibilidade por n é verificar a classe de congruência de 10 e suas potências módulo n . a é divisível por 3 se. Assim. O mesmo vale para 9. a 1⋅a 0 . vamos entendê-las. então 10 ≡1 mod 3 i para qualquer expoente i . Observe inicialmente que. como usamos um sistema de numeração de base 10. a soma de seus algarismos for divisível por 9. a 1⋅a 0 .a 1⋅10a 0 ≡ a k a k 1a 1a 0 mod 3 . se um inteiro a é escrito como a =a k⋅a k 1 ... 3. e somente se.. 3∣a ⇔ a ≡0 mod 3 ⇔ a k a k 1a 1 a 0 ≡0 mod 3 ou seja.. 64 .. Você deve ter percebido.Texto 25 – Divisibilidade As regras de divisibilidade por 2. nesse primeiro exemplo. e somente se. Nesse caso o mesmo raciocínio se aplica. a soma de seus algarismos for divisível por 3. e somente se.. A seguir. então: a =a k⋅10 k a k 1⋅10k 1. então a = a k⋅10 k a k 1⋅10k 1.. se a=257 .. então 10i ≡1 mod 9 para qualquer expoente i . Vale que um inteiro a é divisível por 9 se. 9 e 11 são bem conhecidas. Como 10≡1 mod 9 . O inteiro a é divisível por 3 se.a 1⋅10a 0 . veja os casos de divisibilidade: Divisibilidade por 3 e 9 Como 10≡1 mod 3 .

. logo i 10 ≡0 mod 4 para todo i ≥2 . a 1⋅a 0 . pois o número 20 é. a 1⋅a 0 . Com relação à divisibilidade por 4.a 1⋅10a 0 ≡ a 0 mod 10 .. se a =a k⋅a k 1 .320 é divisível por 4. a 1⋅a 0 . Assim. para todo i 0 . então 10i ≡0 mod 2 . e somente se. e um inteiro a é divisível por 10 se.a 1⋅10a 0 ≡ a 0 mod 2 .. a 0=0 ou a 0=5 .. Divisibilidade por 5 e 10 Como 10≡0 mod 5 . isto é. e somente se.. vale o mesmo raciocínio. a é divisível por 4 se.a 1⋅10a 0 ≡ a 1⋅10a0 mod 4 ... 10≡2 mod 4 . Portanto.. para todo i ≥1 . então a =a k⋅10 k a k 1⋅10k 1.. se a =a k⋅a k 1 . a é divisível por 2 se. Como 10≡0 mod 10 ... isto é. Exemplo: 99. o número a 1cdot a0 (número formado por seus dois últimos algarismos) for divisível por 4. Portanto. quando a 0=0 . a é divisível por 5 se. a 0 for divisível por 10. Divisibilidade por 2 e 4 Como 10≡0 mod 2 . Assim. quando a é par.Vamos a outro caso. então 10i ≡0 mod 5 . e somente se.875. então: a = a k⋅10 k a k 1⋅10k 1.. se a =a k⋅a k 1 . a 0 for divisível por 2. Assim. mas 10²≡0 mod 4 . então a = a k⋅10k a k 1⋅10k 1. e somente se. 65 . Logo.

Ou seja. que é divisível por 11..Divisibilidade por 11 Observe as classes módulo 11 das potências de 10. a1⋅10a 0 ≡ a k⋅ 1k a k 1⋅ 1k 1. e somente se. pois 5 34 82=0 . a ≡0 mod 11 ⇔ a0 a 1a 2 a 3. a =a k⋅10 k a k 1⋅10k 1 . a é divisível por 11 se. temos: 10i ≡ 1 i mod 11 . No próximo texto. vamos mostrar outra aplicação das congruências: o cálculo de potências módulo n .. a 0 a 1a 2 a 3 . 1 a k ≡0 mod 11 . Assim.435 é divisível por 11.a 2 a 1 a0 mod 11 Temos aqui uma soma alternada dos algarismos de a .. Exemplo: a=28. e somente se. Mas  1 = i { 1 se i é par 1 se i é ímpar } ... logo 10 ≡ i { 1 mod 11 se i é par 1 mod 11 se i é ímpar } . ao elevar 10≡ 1 mod 11 à potência i . 1  a k for divisível por 11.. 102 ≡ 12 mod 11 ⇒ 10 2≡1 mod 11 103 ≡ 13 mod 11 ⇒ 10 3≡ 1 mod 11 Em geral. 66 . • • • 10≡ 1 mod 11 ... O inteiro a é divisível por 11 se.

com 0≤ r s . a s ≡1 mod n . então podemos reduzir a k a uma potência menor. tal que a s seja um inteiro pequeno. Vamos usar o fato de que 102 ≡1 mod 99 . Como 33=2⋅161 . então: a k = a s q⋅a r ≡ 11⋅a r ≡ ar mod n . 67 . e fazer a divisão do expoente k pelo inteiro s . 2 =8. Veja a seguir alguns exemplos que vão facilitar a compreensão destas técnicas. A idéia é encontrar algum s . então: 1033 =102⋅161 =10 2 16⋅101 ≡ 1⋅10 mod 99 ≡ 10 mod 99 Portanto. temos: 2343 =24times 853=24 85⋅23 ≡ 185⋅23 mod 15 ≡ 8 mod 15 . vamos determinar se alguma potência de 2 pode facilitar a solução. Exemplos: 1) Calcule o resto da divisão de 1033 por 99 . Se k =q ⋅s  r .Texto 26 – Potências Outra aplicação muito útil da congruência é determinar o resto da divisão de uma potência a k por um inteiro n . 10 é o resto da divisão de 1033 por 99. 2 =16≡1 mod 15 . então a k =a q ⋅s r = a s q⋅a r . 2 =4. Inicialmente. Veja: 1 2 3 4 2 =2. 2) Calcule o resto da divisão de 234 por 15. Sendo 343=4×853 . Se a s é congruente módulo n a um inteiro pequeno. Agora. com 0≤ r s. utilizamos a potência 24 . por exemplo. Se.

temos: 3125 ≡262⋅3 mod 7≡23×202⋅3 mod 7≡23 20⋅2²⋅3 mod 7≡1⋅2 2⋅3 mod 7 ou seja. Vale destacar que a potência exata a ser usada em cada caso depende do problema. Para ilustrar. dados inteiros positivos a e n . 3 =9≡2 mod 7. 3 =27≡ 1 mod 7 Podemos usar tanto 32 como 33 para resolver o problema. 68 . Usando 32≡2 mod 7 e sendo 125=2×621 . o resto da divisão de 2343 por 15 é 8. Vamos tentar as potências de 3: 3 =3. nem sempre uma potência é a única ou a melhor escolha. 3 41 2 41 2 o que confirma que o resto da divisão de 3125 por 7 é 5. Como vimos no último exemplo. temos 125 2×621 1 2 3 • 3 =3 =3  ⋅3 ≡ 2 ⋅3 mod 7 . Como 23=8≡1 mod 7 . Temos que 125=41×32 . logo 3 125 =3  ⋅3 ≡  1 ⋅3 ≡  9 mod 7 ≡ 5 mod 7 . • A outra solução usa 33≡ 1 mod 7 . Esses três exemplos demonstram o uso de congruência para encontrar restos de potências. vamos fazer das duas maneiras. o resto de 3125 por 7 é 5. Vamos voltar a esse assunto nas próximas aulas. Sendo 62=20×32 .Portanto. Portanto. 3125 ≡12 mod 7≡5 mod 7 . a divisão de 62 por 3 resolve o problema. Outra questão é que. vamos tentar uma potência de 2 adequada. 3) Calcule o resto de 3125 por 7 . 2 62 62 Agora. nem sempre há uma potência de a que seja congruente a 1 módulo n .

Você também encontra um aplicativo que constrói dinamicamente tabelas de soma e de multiplicação modulares. Gauss. Legendre e pelo próprio autor.disted.htm há uma discussão interessante sobre aritmética modular e arte. deu uma estrutura lógica aos resultados conhecidos. Euler. Lagrange. 69 .camosun. Este é um livro-texto de Teoria de Números. preencheu as lacunas e ampliou vários resultados. Nesta aula. Nas próximas aulas vamos aplicar as técnicas de congruência a dois problemas: o dos testes de divisibilidade e o de determinação do resto pela divisão de potências grandes de um inteiro por n .No endereço http://britton. então com 24 anos. corrigiu demonstrações falhas.ca/modart/jbmodart. um conjunto com operações de soma e de produto que satisfazem às oito propriedades listadas nesta aula. Saiba mais: Módulo A palavra módulo foi introduzida na Matemática pelo alemão Carl Friedrich Gauss. em 1801. ℤn deixa de ser só um conjunto e passa a ser um anel. Com estas operações. Antes do livro.bc. definimos soma e produto de classes em ℤn . a Teoria dos Números era considerada uma coleção de resultados isolados e de conjecturas. nele o matemático Gauss reúne os resultados obtidos anteriormente por Fermat. isto é. no seu famoso livro Disquisitiones Arithmeticae.

70 . 3) Calcule o resto da divisão de: a) 2303 por 15. 2) Determine um teste de divisibilidade para 8.Atividades 1) Elabore as tabelas de soma e de multiplicação de ℤ6 . b) 7250 por 48 . c) 561 por 7 .

    Em ℤn . utilizando o algoritmo de Euclides. então a =b ⋅c . você vai aprender também como escrever o mdc de dois inteiros como combinação linear deles. o problema de encontrar a inversa de b é equivalente a encontrar um inteiro b ' tal que: b ⋅b ' ≡1 mod n. 71 . a inversa de b é uma classe b ' . Perceba que neste ponto temos duas dificuldades: nem sempre uma classe em ℤn tem inversa. Uma outra forma de entender a divisão é ver a / b como a⋅1 / b =a⋅b 1 . Texto 27 – A inversa de uma classe de congruência módulo n Para iniciar o estudo. Assim. Assim. Nesta parte. vamos apresentar a divisão módulo n . você estudou as definições de operações de soma.Aula 7 – Divisão Modular Na última aula.  ou seja. dividir a por b é equivalente a resolver a equação de congruência anterior. Já a inversa de b é o número que multiplicado por b resulta em 1. tal que b ⋅b ' =1 . Agora. encontrar x de modo que bx ≡a mod n. seria a operação de encontrar uma classe x tal que b ⋅ =a . a divisão de a e b é o produto de a pela inversa de b . isto é. isto é. vamos a uma questão: O que significa dividir a por b ? Se c =a / b . diferença e multiplicação em ℤn . b ⋅b 1 =1. Em ℤn . Podemos assim entender que dividir a por b é encontrar um  x  x tal que b ⋅x =a.

   Logo.assim como nem sempre a equação bx ≡a mod n tem solução. que é a classe 7 . assim.  Mas será essa uma condição suficiente? 72 . 2⋅3 =1 e 4⋅4=1 . mdc  a .  Provamos. Em conseqüência. somos levados à seguinte questão: quais as classes que possuem inversa em ℤn ? Texto 28 – Quando uma classe em ℤn tem inversa?   Seja a ∈ℤn . Por outro  lado.n =1. que. Como d ∣a e d ∣n . Seja agora d =mdc  a . tal que: a a ' k n =1. De acordo com o que foi apresentado anteriormente. pois 3⋅7 =21=1 . Note que. todas as classes não-nulas têm inversa: 1⋅1 =1 . nem sempre é possível dividir duas classes em ℤn. . então mdc  a . então:  a⋅a ' =1 ⇒ a⋅a ' ≡1 mod n ⇒ n ∣ a⋅a ' 1. se você tentar encontrar uma  x  classe x tal que 2⋅ =1 . se uma classe a ∈ℤn tem inversa.n =1 é uma condição necessária para que a classe a possua inversa. Portanto. então: d ∣ aa ' kn  ⇒ d ∣1 ⇒ d =1. existe k ∈ℤ . Se a tem inversa a ' . a classe 3 tem inversa. não vai obter a solução. Exemplos: •      Em ℤ10 . n . a classe 2 não tem inversa em ℤ10 .  •          Em ℤ5 .

O conjunto ℤn * não é fechado para a soma.  Exemplos: • • •     As classes que têm inversa em ℤ12 são {1 . então mdc  a . 5 . então todas as classes não-nulas em ℤp possuem inversa.     ℤ10 * ={1 . Isto acontece porque. 9 }. * Chamamos de ℤn o subconjunto de ℤn formado pelas classes que têm inversa. Uma conseqüência da proposição é que se p é primo. se mdc  a . desta forma. 7 . 7 . no exemplo anterior. 11 }. isto é. a soma de dois elementos que têm inversa *   módulo n pode não ter inversa módulo n . p =1. 9 }. Assim: • • •     ℤ12 * ={1 . e somente se. sendo p primo e 1≤a ≤ p 1 .   ℤ p * ={1 . mdc  a . 3 . em ℤ12 . vale que: 73 . 4 }. 3 .     As classes que têm inversa em ℤ5 são {1 . É o caso de ℤ5 . Por exemplo. as classes 1 e 5 têm    inversa. ak 1 ≡1 mod n ⇒ a⋅k 1 =1    o que mostra que a tem inversa em ℤn . p 1 }=ℤp * { 0 }. 7 . 2 . No entanto. então existem k 1 e k 2 . mas 1 5=6 não possui inversa. 3 .  Provamos.De fato. ⋯ . o seguinte: Proposição: A classe a em ℤn tem inversa se. 7 . 11 }.     As classes que possuem inversa em ℤ10 são {1 .n =1.n =1 . 5 . tais que ak 1 nk 2=1 . Logo ak 1 1=nk 2 é múltiplo de n . ou seja.

Demonstração  Sejam a e b duas classes em ℤn * que têm inversa. E o que acontece quando mdc  a . pois 2⋅3≡6 mod 8 e 2⋅7≡6 mod 8 . Assim. pois mdc 2. Logo a x ≡b mod n ⇒   a  x ≡ b mod n ⇒ 1⋅x ≡ b mod n ⇒ x ≡ b mod n . Veja os exemplos: • 2x≡6 mod 8 tem duas soluções: x ≡3 mod 8 e x ≡7 mod 8 .8=2∤7. pois:         a⋅b ⋅ ⋅  =  a⋅ ⋅ b ⋅  = 1⋅1 = 1 .n =1 . A inversa de a⋅b é classe ⋅ .         Texto 29 – A congruência linear a x ≡b mod n Vamos voltar à seguinte questão: a congruência linear a x ≡b mod n tem solução? Com o que vimos anteriormente. Observe que não há outra solução módulo 8 (teste todos os inteiros entre 0 e 7). a equação a x ≡b mod n pode ter várias soluções ou nenhuma. A congruência 2x≡7 mod 8 não tem solução.    respectivamente. então o inteiro a tem inversa  módulo n . Sejam suas inversas  e  . o que mostra que a x ≡b mod n tem uma solução quando mdc  a . Se mdc  a . podemos indicar uma situação em que a congruência tenha solução: quando mdc  a .n =1 .n 1 ? Neste caso. respectivamente. • 74 . testando os inteiros de 0 a 7.n =1 . o produto de duas classes que possuem inversa sempre tem inversa. Você pode comprovar que isto é verdade.Lema: o conjunto ℤn * é fechado para a multiplicação.

pois mdc 2. A outra solução é • 8 x ≡3 ≡7 mod 8. Observe que. a equação possui exatamente d soluções módulo n . k =0 ⋯ d 1. mas 11∈ 3 . O inteiro  x =11 também é solução. pois 2⋅3=6 . Retornando aos dois exemplos anteriores: • 2x≡6 mod 8 tem duas soluções.A solução completa para o problema sobre o número de soluções da equação de congruência linear ax ≡b mod n é o seguinte Teorema. Além disso. b for múltiplo de d =mdc  a . estes inteiros representam exatamente d classes de congruência módulo n . que são as classes que   3 e 7 em ℤ8 . quando dizemos que há d soluções módulo n .8=2 e 2∤7 . Há infinitos inteiros que são solução de ax ≡b mod n . se d ∣b . Teorema: A equação de congruência ax ≡b mod n tem solução se. cuja demonstração omitiremos. No entanto. mas 15∈ 7 . 1998. de José Plínio de Oliveira Santos. porque mdc 2. então as d soluções módulo n são dadas por: x k =x 0 n k . e somente se. Por exemplo. Confira outro exemplo a seguir. a equação 2x≡6 mod 8 tem soluções x ≡3 mod 8 e x ≡7 mod 8 .8=2 e 2divides6 O valor x ≡3 mod 8 é uma solução óbvia. 2 • 2x≡7 mod 8 não tem solução. Observe  x =15 também é solução. n  . Se x 0 é uma solução qualquer. 75 . d Uma demonstração do teorema pode ser encontrada em Introdução à Teoria dos Números. queremos mostrar que há d classes módulo n distintas que são soluções da equação.

Inicialmente.1 e 2. mas conseguimos encontrá-la com poucas tentativas. Sabemos que existem inteiros x 0 e y 0 . x ≡12 mod 21 e x ≡19 mod 21 . d Portanto. o mesmo utilizado para determinar o máximo divisor comum de dois inteiros. Neste exemplo. Ao multiplicar a equação anterior por este inteiro. logo a equação tem três soluções módulo 21.Determine todas as soluções para a equação 6 x ≡9 mod 21 . encontramos a solução x 0 =5 . observamos que d =mdc 6. encontramos todas as soluções: x k = x 0 n k . A partir desta.21=3 e 3 divide 9. Uma pequena modificação no algoritmo permite que ele não apenas forneça o mdc  a . tais que d = x 0 a  y 0 n . b  . o resultado é: bx 0 y b b b a b 0 n ⇒ d = x 0a  y 0 n ⇒ b = d d d d d       bx 0 a ≡ b mod n. n  em termos de a e n . d Vale destacar que a aplicação dessa técnica depende de saber escrever o mdc de dois inteiros como combinação linear desses inteiros. k =0. a primeira solução não era totalmente óbvia. Texto 30 . Tentando valores de x a partir de 0. ( 6⋅5=30≡9 mod 21 ). mas também escreva d como combinação linear de a e b .Como escrever o MDC de dois inteiros em combinação linear A solução para o problema está no algoritmo de Euclides. então b / d é um inteiro. k =0⋯ d 1 ⇒ x k =57k . 76 . as soluções são x ≡5 mod 21 . Uma técnica que sempre funciona é escrever d =mdc  a . Como d ∣b . É claro que para números maiores vamos precisar de outras técnicas. Será o assunto do próximo texto.

Concluímos que 1=1232×2350 613×4723. Para o cálculo do mdc.2350 e expresse esse mdc em termos de 4723 e 2350 . Exemplo: Calcule mdc 4723. Obtemos o valor de 3 na penúltima equação e substituímos: • 3=23 5×4 ⇒ 1=4 1times3=4 1×23 5×4=6×4 1×23. 1232 é a inversa de 2350 módulo 4723 . Agora. Esta expressão também permite calcular a inversa de 2350 módulo 4723 . ou seja. Veja: • Isolamos o 1 na última equação. obtemos 1232×2350≡1 mod 4723. fazemos as divisões sucessivas: 4723 2350 23 4 = = = = 2×235023 102×234 5×43 1×31 O que mostra que mdc 4723. Reduzindo o módulo 4723 a expressão. O processo é obter o valor do resto na última equação e ir substituindo os valores dos restos. • Obtemos o valor de 4 (2ª equação) e substituímos: 4=2350 102×23 ⇒ 1=6×4 1×23=6×2350 102×23  1×23 =6×2350 613×23. obtendo: 1=4 1×3. • Obtemos o valor de 23 (1ª equação) e substituímos: 23=4723 2times 2350 ⇒ 1=6×2350 613×23=6×2350 613× 4723 2times2350 =1232×2350 613×4723. até chegarmos à primeira.2350 =1. vamos escrever 1 como combinação linear de 4723 e 2350 .Vamos iniciar com um exemplo para ilustrar o processo. usando as outras equações. 77 .

y k 1  e  x k 2 . y k  depende apenas dos valores  x k 1 . ou seja. você pode observar que o valor de um par  x k . temos 78 . O primeiro passo do algoritmo é a linha a =b ⋅q 1 r 1 ⇒ r 1=1⋅a q 1⋅b . no entanto. sem armazenar os quocientes e restos intermediários. obtemos: r k =r k 2 r k 1 q k =  a⋅x k 2 b⋅y k 2  q k  a⋅x k 1 b ⋅y k 1  = a  x k 2 q k⋅x k 1  b  y k 2 q k⋅y k 1  Ao compararmos esta fórmula com r k =a⋅x k  b⋅y k . A idéia é expressar cada resto intermediário em termos de a e b . falta ainda um detalhe: o primeiro passo. Para começarmos a aplicar a fórmula. para todo resto intermediário r k obter os inteiros x k e y k . y k 2  correspondentes aos dois passos anteriores. embora seja trabalhoso. uma pequena mudança no algoritmo de Euclides que permite expressar o mdc  a . Há.O método apresentado é simples e sempre funciona. Assim. armazenar estes inteiros pode ser um problema. temos que: { x k =x k 2 q k⋅x k 1 y k = y k 2 q k⋅y k 1 1 Assim. que são as fórmulas que expressam r k 1 e r k 2 em termos de a e b . Do ponto de vista computacional. Substituindo r k 1=a⋅x k 1 b⋅y k 1 e r k 2=a⋅x k 2 b⋅y k 2 . apresenta o sério inconveniente de que precisamos armazenar todos os quocientes e restos intermediários até o final. Os passos do algoritmo de Euclides são: a = b q 1r 1 b = r 1 q 2 r 2 r 1 = r 2 q 3 r 3 ⋮ r k 2 = r k 1 q k r k O termo geral r k 2=r k 1 q k r k implica em r k =r k 2 r k 1 q k . b  como combinação linear de a e b . tais que r k =a⋅x k  b⋅y k . Em uma conta com muitos passos.

0 . escrevemos duas colunas para os valores de x k e de y k . Vamos usar o algoritmo de Euclides para escrever 1 em termos de 23 e 41 . O algoritmo está representado a seguir. Começamos com as duas linhas “especiais” com os valores de  x 1 .0 e  x 0 . Temos que mdc 23.2350  em termos de 4723 e 2350 . Para que a fórmula (1) seja válida também para k =1 . então x 1 =x 1 q 1⋅x 0 e y 1= y 1 q 1⋅y 0 . A cada passo fazemos x k = x k 2 q k⋅x k 1 e y k = y k 2 q k⋅y k 1 . Desta vez vamos utilizar números menores. temos que definir os valores de  x 0 . ao definir  x 0 . À direta das divisões do algoritmo. Exemplo: Calcule a inversa de 23 módulo 41 . 4723 2350 23 4 = = = = 2⋅235023 102⋅234 5⋅43 1⋅31 xk yk 1 0 0 1 1 2⋅0=1 0 2⋅1= 2 0 102⋅1= 102 1 102⋅ 2=205 1 5  102=511 2 5⋅205= 1027 102 1 511= 613 205 1 1027=1232 Obtivemos o resultado 1= 613⋅47231232⋅2350. a fórmula (1) permanece válida para k =1 .1 e  x 1 . Acompanhe a seguir dois exemplos que vão facilitar a compreensão.x 1 =1 e y 1= q 1 na fórmula r 1=a⋅x 1b ⋅y 1 . não? Na verdade não é.1 . y 1 =1. y 0  e de  x 1 . y 1 =1. Exemplo: Vamos refazer o exercício de expressar 1=mdc 4723. y 0 =0. Parece complicado. ou seja. É fácil ver que. 79 . Para reforçar. Em cada linha está escrito o quociente em negrito para facilitar a visualização. veja mais um exemplo.41=1 . y 1  . y 0 =0.

apresentada durante a aula. d =mdc  a . A aula 7 iniciou-se com a questão da divisão modular. como é possível efetivamente calcular a inversa de a módulo n ? A resposta está em usar a versão estendida do algoritmo de Euclides. a equação tem exatamente d soluções módulo n . mdc  a . Em outras palavras. e  somente se.n =1 . 80 . o que nos levou a duas perguntas: 1. Quando a equação de congruência linear a x ≡b mod n tem solução? A resposta à primeira pergunta é que uma classe a em ℤn tem inversa se. x ≡7 mod 41 é a única solução da equação 23 x ≡1 mod 41 . Como 23 16=7 . Obtemos. No caso da segunda questão. a resposta é que a equação a x ≡b mod n tem solução se. Neste caso.41 23 18 5 3 = = = = = 1⋅2318 1⋅185 3⋅53 1⋅32 1⋅21 xk yk 1 0 0 1 1 1⋅0=1 0 1⋅1= 1 0 1⋅1= 1 1 1⋅ 1=2 1 3 1 =4 1 3⋅2= 7 1 1⋅4= 5 2 1  7=9 4 1 5=9 7 1⋅9= 16 A conclusão é que 1=9⋅41 16⋅23 . n  divide b . Portanto a inversa de 23 módulo 41 é 16 . Quando uma classe a em ℤn tem inversa?  2. e somente se. Outra questão apresentada foi: sendo mdc  a . então.n =1. podemos dizer que 7 é a inversa de 23 módulo 41 . a congruência: 16⋅23≡1 mod 41.

escreva mdc  a .Atividades 1) Determine as classes que têm inversa em ℤ9 e em ℤ20 2) Para cada uma das seguintes equações de congruência. 81 . a) 3 x ≡8 mod 15 b) 2 x ≡20 mod 32 c) 5 x ≡7 mod 11 3) Usando o algoritmo de Euclides estendido. b  em termos de a e b para cada um dos pares de inteiros a seguir. Caso tenha. determine todas as soluções. determine se ela tem solução. a) a =35 e b =65 b) a =15 e b =23 4) Calcule a inversa de 45 módulo 91 .

C. Vamos iniciar o estudo apresentando quem foi Fermat. Clément-Samuel publicou uma edição especial de Aritmética. Era. personagem importante na história da Matemática. para o latim. sendo responsável por avanços notáveis nas áreas de geometria analítica e de probabilidade. do matemático grego Diofante. enquanto lia uma tradução. Texto 31 . não tivesse a preocupação de reunir e divulgar as soluções do pai. detalhando novas soluções para os problemas.Teorema de Fermat Nesta aula. Cinco anos após a morte do matemático. um matemático amador. se o filho mais velho de Fermat. Esse livro apresentava todos o conhecimento dos gregos em Teoria dos Números. Sua notável contribuição à Matemática não foi registrada em livros. resultados que ele descobria. É considerado um dos precursores do cálculo diferencial. que viveu de 200/214 a 284/298 d. Ela consta apenas em trocas de cartas com matemáticos contemporâneos e em anotações soltas. organizado na forma de perguntas e respostas. A edição foi intitulada Aritmética de Diofante contendo observações de P. Durante a leitura da publicação. com as observações de Fermat. de certa forma. As contribuições teriam se perdido. do livro Aritmética. mas que fez enormes contribuições a várias áreas da Matemática. chamado Clément-Samuel. pois Fermat não teve interesse em publicar. você vai estudar o teorema de Fermat e sua aplicação ao cálculo de algumas potências. 82 . Fez contribuições importantes para a Teoria dos Números.Fermat O francês Pierre de Fermat (1601-1665) estudou direito e trabalhou como juiz em Toulouse. Fermat escrevia notas nas margens largas do livro. Uma dessas observações é um teorema famoso conhecido como Último Teorema de Fermat. de Fermat.Aula 8 . cada qual com uma solução detalhada. Continha mais de 100 problemas. O matemático morreu em janeiro de 1665. Fermat trabalhou a Teoria dos Números.

a p ≡ a mod p .046 = 11⋅186 Você deve ter percebido que. vale que p divide 2 p 2 . 83 .No próximo texto. Texto 32 – O Teorema de Fermat Para ter uma idéia do que diz o teorema de Fermat.020 Vamos demonstrar o teorema de Fermat em breve. mas antes precisamos de um resultado auxiliar. “teorema de Fermat”. Então. Esse fato já era conhecido pelos chineses desde a Antiguidade. Acompanhe mais alguns exemplos: p =3 e a =5  3 divide a p a = 5 3 5 = 120 p =5 e a =4  5 divide a p a = 45 4 = 1.048 2 = 2. p =2  N =2 2 2 = 2 = 2⋅1 p =3  N =2 3 2 = 8 2 = 6 = 3⋅2 p =5  N =2 5 2 = 32 2 = 30 = 5⋅6 p =7  N =2 7 2 = 128 2 = 126 = 7⋅18 p =11  N =211 2 = 2. sendo válido para todo primo p e base inteira a . Fique atento para não confundir com o “último teorema de Fermat”. simplesmente. que vamos apresentar ao final da aula 8. Teorema de Fermat: Seja p um número primo e a um inteiro. para estes valores de p primo. Perceba que a p ≡ a mod p é o mesmo que p ∣  a p a  . Veja o valor de N =2 p 2 para alguns primos. vamos iniciar com um caso particular: o inteiro 2 p 2 . O teorema de Fermat mostra que o fato observado anteriormente é sempre verdadeiro. vamos estudar o “pequeno teorema de Fermat” ou.

.. 2. 3.  Vimos que as classes {0 . 2⋅a .  p 1⋅a } ? Veja o exemplo a seguir. 4. onde p ∤a . Assim: • {0. é um sistema completo de representantes módulo n . 3⋅4. em que cada um representa uma das classes   0 .. 6∈ 1 .. 1. 5. .. 13. n 1} são todas as classes de congruência módulo n . 2. 1 . 4 .1 . . em um sistema completo de resíduos. 4 • Observe que.2 . . Seja p =7 e a =4 . p 1} ..24} também é um sistema completo de resíduos módulo 5. Vamos multiplicar os elementos do conjunto {0. . Seja a inteiro. Quais são as classes que aparecem no conjunto {0⋅a . toda classe está representada e cada uma é representada uma única vez. 2⋅4. Qualquer conjunto formado por n elementos.3 . 1 . 5 e 6 . pois     0∈ 0 . 2 . 2∈2 . 5⋅4. n 1 . 1. {0. 2. Portanto o conjunto {0⋅4. Considere o conjunto {0. 1⋅4 . na coluna da direita. 1 . aparecem todas as classes 0 . .. 3 . 1⋅a . também chamado sistema completo de resíduos módulo n .4} é um sistema completo de resíduos módulo 5. 13∈ 3 e 24 ∈  . .. 6⋅4} forma um sistema completo de resíduos módulo 7 .. 6. 84 . 6} por 4 : 0⋅4 ≡ 0 mod 7 1⋅4 ≡ 4 mod 7 2⋅4 ≡ 1 mod 7 3⋅4 ≡ 5 mod 7 4⋅4 ≡ 2 mod 7 5⋅4 ≡ 6 mod 7 6⋅4 ≡ 3 mod 7        Observe que. .

dois inteiros distintos j ⋅a e k ⋅a . Desta forma. . Logo. . . p =1 . Tente com qualquer p primo e a inteiro. Assim nenhum i ⋅a . Demonstração do Teorema de Fermat 85 . . Se j ⋅a ≡ k ⋅a mod p . onde p ∤a . 1⋅a . . o que implica que representam as p 1 classes 1 .. o conjunto {0⋅a . Agora. p 1 .. porque 1≤ j .. Assim.  p 1⋅a } é um sistema completo de resíduos módulo p . em que p não divide a .  p 1⋅a } forma um sistema completo de resíduos módulo p . A demonstração é simples. 2 . demonstra-se a Proposição: Seja p primo e a inteiro. vamos obter um resultado congruente módulo p ao produto 1⋅2⋅. 1≤ j . com 1≤ i ≤ p 1 está em 0 ..⋅ p 1 ..  p 1⋅a } . então j k =0 ⇒ j =k .. .. com 1≤ j . pois as classes são as mesmas. e verifique que o conjunto {0⋅a .  p 1⋅a estão todos em classes de   congruência diferentes. ao multiplicar todos os elementos do conjunto {0⋅a .Viu que interessante? Elabore você mesmo um exemplo. Assim: 1⋅a ⋅2⋅a ⋅3⋅a ⋅  p 1⋅a  ≡ 1⋅2⋅3⋅ p 1 mod p ⋅ ⋅ Veja que nesse ponto estamos prontos para demonstrar o teorema de Fermat.. basta mostrar que os p 1 inteiros 1⋅a . k ≤ p 1 são não-congruentes módulo p ..a =1 . então p ∤i ⋅a . Uma conseqüência é que. p ∤i . como  mdc  a . Lembre-se que 0⋅a =0≡0 mod p . k ≤ p 1 . 1⋅a . 1⋅a . então: p ∣  j ⋅a k ⋅a  ⇒ p ∣  j k  a ⇒ p ∣  j k  . se j k é múltiplo de p . .. Para 1≤ i ≤ p 1 . k ≤ p 1 .. . Mas  p 1 j k  p 1 .. . pois mdc  p . 2⋅a . .

p divide a p 1 1 . Suponha que p não divide a . porque: 86 . Se p ∤a . Uma forma equivalente de enunciar este teorema é: Teorema: Sejam a e p inteiros e p primo. o que conclui a demonstração do teorema de Fermat.Sejam p primo e a inteiro. 2⋅a . . O artifício é usar o conjunto {1⋅a ..⋅ p 1 . Como p ∣ a p 1 1⋅ p 1 ! e mdc  p . Assim. isto é. a p 1≡1 mod p . então a ≡0 mod p e a p ≡0 mod p ..  p 1 ! =1 .  p 1⋅a } . obtemos: a p ≡ a mod p . Se p divide a . porque o primo p não aparece em  p 1 ! =1⋅2⋅3⋅. Vimos anteriormente que 1⋅a ⋅2⋅a ⋅3⋅a ⋅  p 1⋅a  ≡ 1⋅2⋅3⋅ p 1 mod p ⋅ ⋅ Lembre-se que  p 1 ! =1⋅2⋅3⋅ p 1 . logo a p ≡a mod p e nada temos a fazer. então: a p 1≡1 mod p Esta formulação é equivalente à primeira..  p 1 ! =1 . Ao multiplicar os dois lados por a . Ao colocar os  p 1 inteiros que aparecem no ⋅ lado esquerdo da equação anterior como potência. temos: a p 1⋅ p 1 ! ≡  p 1 ! mod p a p 1⋅ p 1 !  p 1 ! ≡ 0 mod p  a p 1 1   p 1 ! ≡ 0 mod p p divide  a p 1 1 p 1 ! É fácil ver que mdc  p . ..

obtemos: 2182 =218 10⋅2 2 ≡ 110⋅4 mod 19 ⇒ 2 182 ≡ 4 mod 19 Portanto o resto da divisão de 2182 por 19 é 4 . então 37 1 =36 ≡ 1 mod 7 . • Encontre o resto da divisão de 3100 por 7 . Se p ∤a . então a p ≡a mod p é sempre verdade. então o resto de 3100 por 7 é 4 . 87 . • Mostre que n =2703 70 é um múltiplo de 13 . Sendo 100=6⋅164 . Sendo 182=18⋅102 . Veja algumas aplicações. temos: 3100 =36 16⋅3 4 ≡ 34 mod 7 Como 34 =81 ≡ 4 mod 7 . Como p =7 é primo e 7∤3 . então a p ≡a mod p ⇔ a p 1 ≡1 mod p . temos que 219 1 =218≡1 mod 19 .• • Se p ∣a . Texto 33 – Aplicação do Teorema de Fermat à solução de potências O teorema de Fermat pode ser aplicado à solução de potências módulo n . Como p =19 é primo e 19∤2 . Exemplos: Determine o resto de 2182 por • 19 .

podemos usar o fato de que 25=32≡6 mod 13 . vamos apresentar as equações diofantinas. Agora vamos ao 370 . Concluindo. Uma equação diofantina é uma equação polinomial para a qual buscamos apenas soluções inteiras. Sendo 70=5⋅1210 . é mais simples considerar que 33=27≡1 mod 13 . então 212 ≡1mod 13 . vamos calcular separadamente as classes de 270 e 370 . Assim. 270 ≡10 mod 13 . Portanto 13 divide 270 370 . 88 . 70 70 70 70 Texto 34 – Equações diofantinas Uma aula que trata de Fermat não pode terminar sem menção ao último teorema de Fermat. e mostrar como as congruências módulo n podem ser usadas para resolver algumas destas equações . de forma geral. 2 3 ≡103 mod 13 ⇒ 2 3 ≡0 mod 13 .Para provar que 13∣n . logo 210 =25 2 ≡ 62 mod 13 ⇒ 210 ≡ 36 mod 13 ⇒ 2 10 ≡ 10 mod 13 . Neste texto. Sendo 70=3⋅231 . temos 370 =33 23⋅31 ≡3 mod 13 . obtemos: 270 =212 5⋅210 ≡210 mod 13 Para reduzir ainda mais esta potência. Em vez de usar o teorema de Fermat. Como p =13 é primo e 13∤2 .

Em junho de 1993. Foi uma das equações diofantinas estudadas por Fermat. Em setembro de 1994. A equação x 2  y 2 =z 2 tem infinitas soluções. o matemático inglês Andrew Wiles anunciou uma demonstração do teorema. Após a divulgação. de Simon Singh. • x z y • x 2 n y 2=1 . O fato é que esse teorema se tornou o famoso último teorema de Fermat e desafiou os maiores matemáticos do mundo pelos 357 anos seguintes. Esta equação está relacionada ao teorema de Pitágoras.Veja alguns exemplos: • ax by =1 . É a chamada equação de Pell. seu antigo aluno. 89 . Um trio de inteiros não-nulos que satisfaz esta equação é chamado de terno pitagórico e são lados de um triângulo retângulo. mas a margem era muito pequena para contê-la. tendo o inteiro z como hipotenusa. Fermat escreveu este teorema em uma das margens da Aritmética de Diofanto e assinalou que tinha uma demonstração maravilhosa para o teorema. Wiles. Uma ótima descrição pode ser encontrada no livro O último teorema de Fermat. Fermat estudou o caso de equações x n  y n =z n para n ≥3 e afirmou que nenhuma equação deste tipo tem solução formada por inteiros não-nulos. vários problemas foram encontrados. Esta é uma equação diofantina linear: todos os termos têm grau 1 . x 2  y 2 =z 2 . conseguiu demonstrar definitivamente o teorema. Editora Record. 1999. com a ajuda do matemático inglês Richard Taylor. repleta de episódios fascinantes. A história do último teorema de Fermat é muito curiosa e rica. O matemático nunca escreveu a ninguém sobre sua prova “maravilhosa”.

Vamos examinar alguns problemas. Uma maneira simples de provar isso é usar congruência módulo 4 . Texto 35 .Há outras questões importantes em Teoria dos Números que podem ser facilmente resolvidas com o uso de congruências.   tais que x 2  y 2=3 . 1. ou seja. Vamos explicar essa questão com um exemplo. x 2  y 2 mod 4 pode ser 0 0=0 .    90 . Existem inteiros x .          Assim. verificamos os valores possíveis para x 2  y 2 módulo 4 . Seus quadrados são: x 2 0 0 1 1 2 0 3 1 x       Observe que 22 =4=0 e 32 =9=1 . congruências podem ser usadas para mostrar que uma certa equação não tem solução. Observe que: x 2  y 2 =4k3 ⇒ x 2 y 2≡3 mod 4 Vamos provar que essa última equação não tem solução.Uso das congruências para resolver equações diofantinas Em alguns casos. ou para fornecer indicações sobre estas soluções. Há quatro classes de congruência módulo 4 . 0 1=1 ou 1 1=2 . não há valores de x e y tais que x 2  y 2 ≡3 mod 4 . Não há classes x e y . Para tal. y e k tais que x 2  y 2 =4k3 ? Uma outra maneira de formular essa questão é a seguinte: algum inteiro da forma n =4k3 pode ser escrito como soma de dois quadrados? A resposta é não.

" é para isso. Hanc marginis exigitas non caperet. uma quarta potência em duas quartas potências. Eu descobri uma prova verdadeiramente maravilhosa margem conter. enunciamos e provamos o teorema de Fermat.Portanto. aut quadrato-quadratum in duos quadrato-quadratos. a equação diofantina x 2  y 2 =4k3 não apresenta soluções. em geral. a solução de potências e as equações diofantinas. et generaliter nullam in infinitum ultra quadratum potestatem in duos eiusdem nominis fas est dividere cuius rei demonstrationem mirabilem sane detexi. Trecho escrito por Fermat na margem do livro Aritmética de Diofanto. Você também estudou algumas aplicações do teorema de Fermat. Esta aula teve como tema central a figura de Pierre de Fermat. Em seguida. Cubum autem in duos cubos. e. Falamos um pouco deste grande matemático. qualquer potência mais alta que a segunda em duas potências iguais. que essa para pequena demais 91 . Pierre de Fermat A tradução é: "É impossível separar um cubo em dois cubos.

92 . mostre que a equação diofantina x 2  y 2 8z=6 não tem soluções.Atividades 1) Calcule o resto da divisão: a) de 2172 por 17 . b) de 3334 por 23 . 2) Usando congruência módulo 8. c) de 51266 por 127 .

Unidade 2 Criptografia de Chave Pública Caro aluno. na unidade 2 você vai estudar as aplicações em criptografia de chave pública dos conceitos e resultados matemáticos vistos na unidade 1. Bom estudo! 93 .

No entanto. ou seja. onde lidamos com inteiros bastante grandes. Vamos iniciar a aula apresentando um teste probabilístico simples. que um inteiro é primo. no sentido de que. Caso nenhum destes primos seja divisor de n . são extremamente eficientes. Os testes probabilísticos são muito utilizados por serem mais rápidos que os testes determinísticos. apenas com certa probabilidade. 94 .Aula 9 – Teste de Primalidade de Fermat Uma questão importante em Teoria dos Números e que tem interessantes aplicações em criptografia é a questão de decidir se um dado inteiro é ou não primo. Testes que permitem tal decisão são chamados testes de primalidade. Em criptografia.Testes de Primalidade O teste de primalidade é um algoritmo que determina se um dado número inteiro é um primo. então n é Este é um teste determinístico. mas podem indicar. se um inteiro passar em várias execuções do teste. é prático apenas para inteiros pequenos ou inteiros que sejam divisíveis por um primo pequeno. este teste simples é de pouca utilidade. Na aula anterior. por exemplo. Texto 36 . É importante notar que este é um problema diferente e mais simples que o de fatorar um inteiro. testes probabilísticos modernos. que são os testes que podem provar que um número é composto. há grande probabilidade de ele ser primo. dá origem a um teste de primalidade bastante útil. existem os probabilísticos. vimos o método simples que consiste em dividir um inteiro n por todos os primos menores ou iguais a primo. estudado na aula passada. O pequeno teorema de Fermat. Além dos testes determinísticos. Além disso. que determina com certeza se o inteiro dado é primo ou não. como o de Rabin-Miller. derivado do teorema de Fermat.  n .

Seja n um inteiro cuja primalidade queremos determinar. 2.n =1 . 4. por exemplo. 3. Testamos se a n 1 1≡0 mod n .Texto 37 – Teste de Fermat O teorema de Fermat dá origem a um teste de primalidade probabilístico muito interessante. Na verdade. há apenas três pseudoprimos para a base 2 menores que mil: os inteiros 341 . o número 341 é pseudoprimo para a base 2 . O número 341 . Portanto 3 é testemunha de que 341 é composto. dizemos que n é pseudoprimo de Fermat para base a . porque 3340 ≡56 mod 341 . se n é primo. Por exemplo. 95 . aplicando-o repetidamente e usando várias bases. Se a n 1 1≡0 mod n . Pelo teorema de Fermat. pois 2340 ≡1 mod 341 . Mas pseudoprimos são raros. Escolhemos uma base a (geralmente um número primo pequeno).n =1 . 561 e 645 . mas 341=11⋅31 é composto. não passa no teste para a base 3 . A existência de pseudoprimos atesta que o teste de Fermat não é determinístico. então n não é primo e dizemos que a base a é testemunha de que n é composto. tal que mdc  a . 341 é o menor pseudoprimo para a base 2 . então n passou no teste para a base a . chamado teste de Fermat. Podemos aumentar ainda mais a eficácia do teste de Fermat. Há apenas 245 pseudoprimos para a base 2 entre 1 e um milhão. 1. tal que mdc  a . então a n 1 1≡0 mod n para todo a . Demonstração. Se um inteiro n é composto. Se não vale a n 1 1≡0 mod n . mas passa no teste de Fermat para a base a . Por exemplo.

ou somamos 2 ao ímpar anterior. Pseudoprimos para a base 2 recebem também o nome de números de Poulet.wikipedia. mas para bases até 200. A tabela a seguir mostra o menor pseudoprimo para as bases entre 2 e 20. pseudoprimos fortes etc. Por exemplo. Muitas vezes é preferível tolerar uma possibilidade muito pequena de usar um pseudoprimo e utilizar testes muito mais rápidos e simples. ( ( Ao adicionar a base 5 . Veja: Entre 1 e 105 . O algoritmo usual para gerar primos grandes é escolher um inteiro ímpar grande e testar se é primo. pode ser encontrada no website da Wikipedia (disponível em http://en. há apenas 23 pseudoprimos para as bases 2 e 3 . pois os algoritmos determinísticos são lentos. A expressão “pseudoprimo” também é utilizada para designar um inteiro composto que passa em um teste probabilístico. Uma tabela semelhante.770 pseudoprimos até 2. escolhemos arbitrariamente outro ímpar. Para que seja eficiente. 96 . A expressão pseudoprimo é utilizada com significados diferentes nas referências. este algoritmo de geração de primos depende de testes de primalidade rápidos. Aqui estamos definindo pseudoprimo como um inteiro composto ímpar que passe nesse teste.O uso de duas bases aumenta a eficácia do teste de Fermat.552 pseudoprimos no mesmo intervalo. deve-se escolher um inteiro que seja produto de dois primos grandes.5×109 . por exemplo. ao acrescentar a base 7 . em que. Há também pseudoprimos de Lucas.5×109 existem 4. um pseudoprimo de Euler é um composto que passa no teste de Euler. A raridade dos pseudoprimos tem aplicações práticas importantes na criptografia RSA. restam apenas 2. sobram apenas 1. e testamos novamente.org/wiki/Pseudoprime). Caso não seja. como vamos estudar. Alguns autores chamam de pseudoprimo qualquer inteiro (primo ou não) que passe no teste de Fermat. Já. Entre 1 e 2.709 pseudoprimos para as bases 2 e 3 .

Usando mais bases. Testar para diversas bases é um procedimento utilizado. restam apenas 1.Números de Carmichael Neste ponto. Portanto números de Carmichael são pseudoprimos de Fermat para todas as bases. 5 e 7. Como vimos anteriomente. Ele recebe esse nome em homenagem ao matemático americano Robert Carmichael (1879-1967). são algumas vezes chamados de pseudoprimos absolutos. pode parecer que a solução para evitar os pseudoprimos seria utilizar muitas bases diferentes. mas não é suficiente para garantir primalidade. 3.5×109 . 97 . de 1899. ao usar apenas as bases 2. teremos ainda menos pseudoprimos. O fato é que há inteiros que enganam o teste de Fermat para todas as bases. Uma caracterização para os números de Carmichael é dada pelo teorema de Korselt. Um “número de Carmichael” é um inteiro positivo composto n que satisfaz a congruência b n −1 1  mod n  para todos os inteiros b co-primos com n .Inteiro a Menor pseudoprimo para a base a Inteiro a Menor pseudoprimo para a base a 11 15=3 · 5 2 341=11 · 13 3 91=7 · 13 4 15=3 · 5 5 124=2 · 31 6 35=5 · 7 7 25=5 8 9=3 2 2 2 12 65=5 · 13 13 21=3 · 7 14 15=3 · 5 15 341=11 · 13 16 51=3 · 17 17 45=3 · 5 18 25=5 2 2 9 28=2 · 7 10 33=3 · 11 2 19 45=3 · 5 20 21=3 · 7 2 Texto 38 .770 pseudoprimos entre 1 e 2. Por isso.

98 . os matemáticos William Alford. se houvesse apenas um número finito deles. Os próximos seis números de Carmichael são: 1105=5 · 13 · 17 1729=7 · 13 · 19 2465=5 · 17 · 29 2821=7 · 13 · 31 6601=7 · 23 · 41 4 ∣ 1104. 40 ∣ 6600 8911=7 · 19 · 67 6 ∣ 8910. 12 ∣ 1728. 18 ∣ 8910. 28 ∣ 2464 6 ∣ 2820. O problema de existirem infinitos números de Carmichael permaneceu em aberto por bastante tempo até que. 10∣560 e 16∣560. O número 561 é o menor número de Carmichael.Teorema (Korselt): Um inteiro positivo composto n é um número de Carmichael se. p 1 divide n 1 . 18 ∣ 1728 4 ∣ 2464. 16 ∣ 1104 6 ∣ 1728. 12 ∣ 2820. todo fator primo p de n satisfaz as duas condições a seguir: 1. Demonstração do teorema de Korselt A prova completa do teorema de Korselt depende de alguns resultados que não serão estudados nesta demonstração. pois 561=3⋅11⋅17 é livre de quadrados. mas não conseguiu encontrar um exemplo de tal número. O número desse tipo com quatro fatores primos é 41041=7 · 11 · 13 · 41 . Todos os números de Carmichael listados anteriormente têm três fatores primos. em 1994. O primeiro exemplo foi descoberto em 1910 por Robert Carmichael.16 ∣ 2464. Korselt observou essas propriedades. E vale que: 2∣560. 66 ∣ 8910 Os números de Carmichael não seriam um problema tão grande para o teste de Fermat. e somente se. p 2 não divide n.22 ∣ 6600.12 ∣ 1104. 30 ∣ 2820 6 ∣ 6600. 2. Você pode encontrá-los em Coutinho (1997). Andrew Granville e Carl Pomerance provaram que há infinitos números de Carmichael. que observou que o número 510 atende às condições do teorema.

segue-se que b n 1 1 é múltiplo de todos os p i . portanto. Como. Rabin.Vamos provar aqui metade do teorema e comprovar que um inteiro que satisfaz as duas condições do teorema é um número de Carmichael.  p 1 ∣ n 1 . Texto 39 – Teste de Miller-Rabin O teste de primalidade de Miller-Rabin é um teste probabilístico criado em 1976 por G. b p 1≡1  mod p . sendo bem mais eficiente que este. para todo primo p divisor de n . Assim. Seja n um inteiro que satisfaz as condições 1 e 2. isto é.  . 99 . em que todos os primos 2 distintos p 1 . então p ∤b . O inteiro n é. Seja n um inteiro positivo ímpar cuja primalidade queremos testar. onde d é ímpar. b n 1 1≡0  mod n  ⇒ b n 1≡1  mod n  . Como provamos que b n 1 ≡1  mod p i  para todo primo p i que divide n . O inteiro n 1 é par. pela condição 1 do teorema ( p i ∤n ). q ⋅ Observe agora que a fatoração de n é da forma n = p 1⋅p 2⋅ p k .O. n 1=2s⋅d . p 2 . Seja s a maior potência de 2 que divide n 1 . um número de Carmichael. temos b n 1≡1  mod p  . Portanto b p 1≡1  mod p  ⇒  b p 1  ≡1  mod p  ⇒ b n 1≡1  mod p  . ou seja. ainda que permaneça uma pequena chance de erro. por hipótese. logo é múltiplo de n = p 1⋅p 2⋅⋅p k . p k têm expoente 1. Pelo teorema de Fermat. O teste é uma pequena modificação do teste de Fermat. Se p é um fator primo de n .L. temos que n 1= p 1 q para algum inteiro positivo q . Seja b inteiro co-primo com n . Miller e modificado por M.

isto é. então afirmamos que n é pseudoprimo forte para a base b . tal que n divide b 2 d k d 1 . ou a primeira é congruente a 1 módulo n (caso k =0 como dito anteriormente). então a última desta potência é congruente a 1 módulo n . então d 1 como k b2 Como n é primo e divide b 2 d 1= b 2  k 1 d 1 b 2  k 1 d 1 .  . Se um inteiro positivo composto n passa no teste de Miller-Rabin para a base b . Se n for um número primo. Talvez alguma potência anterior a essa seja congruente a 1 módulo n . escrevendo as d potências b d . então b 2 podemos fatorar b 2 k 0 ≡1  mod n  ⇒ b d ≡1  mod n . b 2 2d . Se nada disso acontecer. Portanto n divide b 2 d 1 .  . se k 0 . isto é.Seja 1 b  n 1 um inteiro que servirá de base para o teste. s b 2 d = b n 1≡1  mod n . 100 . Caso contrário. pois. 1 b  n 1 . b 2 k 1 d ≡ 1  mod n  .  k d 1 . pelo teorema de Fermat. b 2d . Nossa análise revelou o seguinte: se n é primo. b 2 2 s 1 d . então divide um dos dois fatores à direita na equação k 1 anterior. Exemplos Vamos ver agora algumas aplicações. b2 s 1 d . b2 s 1 d . tal que k 1 n divide b 2 k d 1 . b 2 d . Seja k o menor expoente tal que b 2 k d ≡1  mod n  . Considere as seguintes potências de b : b d . ou alguma delas será congruente a 1 módulo n . então o inteiro n é composto e dizemos que b é testemunha de que n é composto. então para toda base b . Se k =0 . Mas n não pode dividir b 2 d 1 pela escolha de k como o menor inteiro. b 2d .

Temos. então n 1=560=2 4⋅35 . 4.891. 2. 4. 3.911. que calcular as potências módulo 561 a seguir: 235 . .. Mas mesmo esse teste tem os seus algozes.2 23 ×35 . então. Se n =341 . . 8. Calculando essas potências. 15. 8. 10.277. Vamos testá-lo com o teste de Miller-Rabin. então 2 é testemunha de que 561 é composto.. obtemos: 235 ≡263  mod 561 2 2 2 2×35 4×35 8×35 = 2 35 70  ≡2632≡166  2 2 2  mod 561 = 2 = 2 ≡166 ≡67  mod 561  mod 561 140  ≡672≡1 2 Como nem a primeira potência é congruente a 1 módulo 561. 3.321.281. nem alguma delas é congruente a 1 módulo 341. Vamos ver se passa no teste de Miller-Rabin com a base 2? Se n =561 . É fácil verificar que 25 é pseudoprimo forte para a base 7. 22×35 . 101 .047. Os primeiros pseudoprimos fortes para a base 3 são 121.681. 2 2 2×35 . então 2 é testemunha de que 341 é composto. Precisamos calcular duas potências: 285 e 2 2⋅85 . nem alguma delas é congruente a 1 módulo 561.. 1. Há mesmo alguns pseudoprimos fortes bem pequenos.1) Vimos que 341 é pseudoprimo de Fermat para a base 2 . 703. Os primeiros pseudoprimos fortes para a base 2 são 2. . . 8.841. temos que n 1=340=22⋅85 .. O segundo pseudoprimo de Fermat para a base 2 é o número de Carmichael 561.401.934. Calculando as potências obtemos: 285 ≡32  mod 341 2 170 = 2 85  2 ≡32 ≡1  mod 341 2 Como nem a primeira potência é congruente a 1 módulo 341.033.585.

Não há um inteiro composto que passe no teste de Miller-Rabin para todas as bases. Há inteiros. este não é prático. que são compostos.751 . uma vez que testar n /4 bases para inteiros n grandes é totalmente inviável. a saber.com/StrongPseudoprime. se passar no teste. mas passam no teste de Fermat para todas as bases. Nesta aula. o inteiro 3. Não há inteiros compostos que passam no teste de Miller-Rabin para todas as bases.215. Usando as bases 2 . são os chamados pseudoprimos. enquanto que pseudoprimos fortes para uma base b são inteiros compostos que passam no teste de Miller-Rabin para a base b . 2) Mostre que 25 é pseudoprimo para a base 7. 5 . São os chamados números de Carmichael. Adicionando a base 11 . será primo. São dois testes probabilísticos: um número que não passa em um destes testes é certamente composto e.html. a aplicação do teste de Miller-Rabin com o uso de várias bases é extremamente eficiente. pode-se provar que. 3 . 4) Mostre que 25 é pseudoprimo forte para a base 7.5×1010 . se um inteiro n passa nesse teste para n /4 bases. De fato. então existe um único inteiro composto neste intervalo que passa no teste de Miller.wolfram. 102 . 3) Mostre que 91 é pseudoprimo para a base 3. estudamos dois testes de primalidade: os testes de Fermat e o de Miller-Rabin. Porém há inteiros que enganam o teste. Atividades 1) Mostre que 15 é pseudoprimo para a base 4. aliás um número infinito deles. então n é certamente primo. Se adicionamos a base 7 .031. então. muito provavelmente. não há pseudoprimos fortes para as bases 2 . Veja no endereço http://mathworld. Embora esta afirmação forneça um critério determinístico de primalidade.Apesar da existência de pseudoprimos fortes. o teste falha apenas para 13 inteiros entre 1 e 2. Pseudoprimos para uma base b são inteiros compostos que passam no teste de Fermat para a base b . 7 e 11 entre 1 e 1012 . 3 e 5 .

Euler ficou completamente cego durante os últimos 17 anos de sua vida. Sua produção matemática neste período. As obras completas de Euler ocupam 75 volumes. que tem grande importância na criptografia RSA. sem dúvida. em 1707. um dos grandes matemáticos do século XVIII. Este número é. Cerca de metade de sua produção matemática foi feita neste período.Aula 10 – Teorema de Euler Nesta aula.n =1 . Foi. só para copiar à mão as obras do matemático. n =1 } a n Quantos elementos tem ℤn ? Observe que o número de elementos de ℤn é o número de inteiros entre 1 e n 1 que são co-primos com n . mdc  a . por definição. as classes que têm inversa em ℤn são: ℤ* ={ ∣1≤ a ≤n 1 e mdc  a . uma pessoa levaria 50 anos. Foi estimado que. para n ≥1. no entanto. Texto 41 – A função  de Euler Vimos que um inteiro a tem inversa módulo n se. Exemplos: • • 10 =4 12 =4 103 . aumentou graças à sua incrível memória e capacidade de realizar cálculos complexos. trabalhando oito horas por dia. Portanto. você vai estudar a função  (letra grega – pronuncia-se fi) de Euler e conhecer o teorema de Euler. e somente se. Assim. Texto 40 – Euler Leonhard Euler nasceu na Basiléia. * *  n = número de inteiros entre 1 e n 1 co-primos com n . sem auxílio de lápis e papel.  n  . Suíça. e morreu aos 74 anos.

para valores maiores de n . A primeira proposição diz respeito à situação em que n é primo.Se p é primo. ⋯ . Se n = p  . Se o valor de n é pequeno.• • 15=8 20=48 Antes de prosseguir. então  p = p 1. Provamos assim que: Proposição 1 . podemos calcular o valor de  n  simplesmente contando os inteiros entre 1 e n 1 co-primos com n . Exemplos: • • 5=4 17=16 O próximo caso a tratar é o da potência de um primo. então quantos inteiros entre 1 e n 1 são co-primos com n ? Observe que mdc  a . Porém. 3⋅p . Vamos enunciar estas propriedades como proposições. Os múltiplos de p entre 1 e n 1= p  1 são: 1⋅p . p =1 . 2⋅p . A questão é complexa.  p  1 1⋅p 104 . Nesse caso. a pergunta é: quantos inteiros entre 1 e n 1 não são divisíveis por p ? Uma maneira de responder esta pergunta é determinar quantos inteiros entre 1 e n 1= p  1 são múltiplos de p . p  =1 se. precisamos utilizar algumas propriedades dessa função. A função  n  desempenha um papel importante na criptografia RSA. Então. verificando os valores do exemplo anterior. certifique-se de que entendeu a definição de  n  . todo inteiro a entre 1 e p 1 é co-primo com p . como você verá nas próximas aulas. mdc  a . e somente se.

então a⋅b = a  b  . ou seja. Esse é o total de inteiros co-primos com p  . então existem:  p 1    p  1 1  =  múltiplos de p p p    1 total de inteiros inteiros coprimos com p  inteiros que não são múltiplos de p entre 1 e p  1 . então  p  = p  p  1 . Como há p  1 1 múltiplos de p entre 1 e p  1 . Se fizermos =1 na proposição 2 . e n é produto de primos distintos. Com ela e a proposição anterior. b =1 . o último múltiplo de p antes de p  1 . logo:  p  = p  p  1 Provamos então a Proposição 2 . Exemplos: 3 3 2 • • • 27=3 =3 3 =27 9=18. 64 =26 =26 – 25 =64 32=32. e que a lista tem exatamente p  1 1 inteiros. Observe que a proposição 1 é um caso particular da proposição 2. Se a e b são Proposição 3 - inteiros positivos e mdc  a .Se p é primo. 25 =52 =52 51=25 5=20. obtemos:  p 1 = p 1 p 1 1= p p 0 = p 1.Observe que o último número da lista é exatamente p  p . 105 . A próxima proposição diz respeito às situações em que desejamos calcular  n  . somos capazes de calcular  n  para qualquer inteiro n que consigamos fatorar em produto de potências de primos.

op.5=1 . que a fórmula vale para o produto de vários fatores. 2 2 2 2 Podemos concluir esta parte reunindo as propriedades 2 e 3 em uma única fórmula. Preste atenção à fórmula ab = a  b  que. 40=2 ⋅5=2  5=2 2  4=16. se a 1. tais que mdc  ai . por indução. (2 e 5 são co-primos) 4=2. Então a 1 a 2 ⋯a k =a 1  a 2⋯ a k . em geral. Observe que mdc 3. Alguns exemplos bastam para tornar bem claro como as proposições 2 e 3 são suficientes para calcularmos  n  . a j =1 para i ≠ j . 375=3⋅53 =3 53 =2 5 3 52 =2⋅120=240. desde que eles sejam todos primos entre si.A demonstração do teorema pode ser encontrada em José Plínio de Oliveira Santos. ⋯ . cit. a k são inteiros positivos. Exemplos: • • • • 10=2⋅5=2⋅5=1⋅4=4. (4 e 10 não são co-primos) 3 3 3 2 É fácil provar. para qualquer n a partir de sua fatoração em produtos de primos. Exemplos: • • 15 =3⋅5=3⋅5=2⋅4=8. Exemplos: • • 120=8⋅3⋅5=83 5=4⋅2⋅4=32. Se n é inteiro positivo e fatora-se como 1 2  n = p 1 ⋅p 2 ⋯ p kk 106 . Veja que 40≠410. não se verifica quando a e b não são co-primos. ou seja. 300=2 ⋅3⋅5 = 2 35 =2⋅2⋅20=80. a 2.

então. Porém o que acontece quando não conhecemos essa fatoração? Se n for muito grande. acompanhe um último comentário que é de extrema importância para a criptografia RSA. pode ser computacionalmente impraticável checar diretamente quais inteiros entre 1 e n 1 são coprimos com n . que:  n =n ∏ p i primo p i divide n  1 1 pi  Antes de passar ao próximo tópico. em que n é um produto de dois 107 . que é o símbolo Podemos escrever. Este simples fato está na base da segurança do RSA. onde p i são os primos que dividem n . De forma geral. usando uma notação comum para produtos. Vimos anteriormente que é fácil calcular  n  . a maneira mais rápida de calcular  n  é fatorar n . Pode-se ainda tornar esta fórmula um pouco mais compacta. não há como calcular  n  . resulta que:    n =n 1  1 p1  1 1 p2   ⋅ ⋅ 1 1 pk  ∏.então:  n = p 1 1⋅p 2 2 ⋯ p k k 1 2          1   1   1 = p 1 ⋅ p 2 ⋅ ⋅ p k k = p 1 1 p 1 1 ⋅ p 2 2 p 2 2 ⋅ p k k p kk ⋅ = p 1 1 1   1 p1    ⋅p 2 2 1 1 p2  ⋅ p k k 1 ⋅   1 pk  Na última igualdade.  Como n = p 1 1⋅p 2 2 ⋯ p kk . Se não for possível fatorar n . caso conheçamos a fatoração de n . fatoramos cada expressão  p kk p kk   1   por p kk . e  . Veremos que a chave pública do RSA é um par  n . Podemos agora reunir todos os termos p kk da expressão. resultando em p kk 1   1 pk   .

A segurança do RSA baseia-se no fato de que calcular  n  é essencialmente equivalente a fatorar n . Veja a seguir. que é o assunto da próxima parte. Texto 42 – Teorema de Euler Vamos iniciar recordando o teorema de Fermat. Se p é primo e p ∤a . Quem conhece  n  pode facilmente calcular a inversa de e módulo  n  .n =1 . Mas ainda é cedo para explicarmos exatamente como funciona o RSA. então a p 1≡1 mod p . então a  n  ≡1 mod n . O teorema de Euler é uma generalização deste resultado. mas não conhece a fatoração n = p⋅q . Quem conhece n . Quem gerou as chaves sabe a fatoração n = p⋅q e pode calcular facilmente:  n = p⋅q = p  q = p 1  q 1. Sejam n e a inteiros. Pelo teorema. Se mdc  a .primos distintos n = p⋅q e o inteiro e tem inversa módulo  n  . d  . deve-se entender o Teorema de Euler. Exemplos: Sejam a =3 e n =10 . em que d é a inversa de e módulo  n  . deve fatorar n antes de poder calcular  n  . usando o algoritmo de Euclides estendido. 108 • . A chave privada é o par  n . e que fatorar um inteiro grande n é um problema difícil. Antes disso. Teorema.10=1 . Temos que mdc 3. apresentando uma fórmula para o caso de um inteiro n qualquer.

 a   n  representam classes distintas módulo n . qualquer conjunto formado por inteiros que pertencem a classes módulo n distintas e que representam todas as classes que têm inversa módulo n . a  n } é formado por  n  elementos. porque:  a i ≡ a j mod n ⇒   a i ≡  a j mod n ⇒ a i ≡a j mod n ⇒ i = j (lembre que os a i ' s estão em classes distintas módulo n . ⋯. Como mdc 5. Lembre-se que há  n  classes que têm inversa módulo n . Os inteiros  a 1. ⋯ . precisamos primeiro provar o lema que vamos enunciar a seguir.  a 2. ⋯. ou seja. a 2. n =1 ). a 2. Demonstração Inicialmente.  a 2. então 5 12≡1 mod 12 . o que prova que formam um conjunto de representantes das classes inversíveis módulo n . ⋯ .  a  n  } também é um conjunto de representantes de todas as classes que tem inversa módulo n .12=1 . 2 4 2 2 Para demonstrar o teorema. observe que  a 1. De fato. pois o produto de elementos inversível módulo n é inversível módulo n . logo a i ≡a j mod n ⇒ i = j . 109 . 3 ≡1 mod 10 . Portanto. todos inversíveis módulo 1 1 n . De fato. 5 =25≡1 mod 12 ⇒ 5 =5  ≡1 mod 12 . mdc  . ⋯ . então { a 1.3 •  10 ≡1 mod 10 . 3 =81≡1 mod 10 . e se  é inteiro que tem inversa módulo n (isto é. 4 4 Sejam a =5 e n =12 . tem  n  elementos. ou seja.  a   n  são todos inversíveis módulo n . e que estão em classes distintas módulo n . Lema: Se {a 1. 4 5 ≡1 mod 12 . a  n } é um conjunto de representantes de todas as classes que tem inversa módulo n .  a 2. o conjunto {a 1.) Portanto.

⋯ . obtemos: a 1⋅a 2⋅⋅a  n ≡ a  n  a 1⋅a 2⋅⋅a   n  mod n ⋅ Por fim. Daí resulta que a  n  =1 mod n . Como 28 =4⋅7=2⋅6=12 e mdc 9. em outras palavras.a 2 . logo é inversível módulo n e pode ser cancelado dos dois lados da congruência (o que é equivalente a multiplicar os dois lados da congruência pela inversa dele). {a 1. Agora.n =1 . a⋅a  n  } também é um conjunto de representantes das classes que tem inversa módulo n . a⋅a 2. a 2. em que mdc  a . pelo teorema de Euler 9 ≡1 mod 28 . Exemplo: Calcule o resto da divisão de 9122 por 28 . Demonstração do Teorema de Euler Seja a inteiro.  a 2 .a  n  }={ a1 .  a   n  }.⋯ . Ao multiplicar os elementos desses conjuntos obtemos: a 1⋅a 2⋅⋅a  n =a⋅a1⋅a⋅a2⋅⋅a⋅a  n  ou seja. que: {a 1 . ⋯ .Veja que provamos. Escolha um conjunto representantes das classes que possua inversa módulo n . a  n } de Pelo lema anterior. a 1⋅a 2⋅⋅a  n ≡ a⋅a 1⋅a⋅a 2⋅⋅a⋅a  n  mod n Ao fatorar o termo a do lado direito da congruência. 110 12 . observe que o termo a 1⋅a 2⋅ a  n  é um produto de elementos inversíveis módulo n . o conjunto {a⋅a 1. ⋯.28=1 . estamos em posição de provar o teorema de Euler.

Para terminar. sendo exatamente o teorema de Fermat.Sendo 120=12⋅10=2 . se p é primo. o teorema de Euler assegura que: a   p  =a p 1≡1 mod p . Chegamos ao fim desta aula.n =1 . estudamos a função  de Euler. que é o número de inteiros entre 1 e n 1 que são co-primos com n . Nela. para p ∤a . Você também estudou as principais propriedades da função  . 111 . inteiro a possui módulo n se. Como um inversa e somente se. que diz que a  n ≡1 mod n se mdc  a . São elas: •  p = p 1 para todo p primo. obtemos: 9 122 =912⋅102 = 912  ⋅9 2≡92 mod 28 . Vimos o teorema de Euler. mdc  a . 10 Como 92=81≡25 mod 28 .n =1 . generalizando o teorema de Fermat. b =1 . visto na aula passada. vale que  p = p 1 . •  p  = p  p  1= p  1   1 p • Se mdc  a . temos que o resto de 9122 por 28 é 25 . Logo. então  n  é exatamente o número de classes módulo n que têm inversa. definida por  n  . observe que o teorema de Fermat é um caso especial do teorema de Euler. pois. então a⋅b = a  b  .

b) 24208 por 49. ainda nesta disciplina. 112 . Atividades 1) Encontre o valor de  n  para os seguintes valores de n : a) n =90 . b) Multiplique todos os elementos deste conjunto por 7 e mostre que o conjunto resultante também é formado por representantes de todas as classes inversíveis módulo 12 . como veremos na aula sobre o RSA. calcule os restos de: a) 1781 por 24. 5.O teorema de Euler é o que faz o método empregado na criptografia RSA funcionar. 3) Usando o teorema de Euler. 7 11} é um conjunto de representantes das classes que têm inversa módulo 12 . b) n =250 c) n =1620 2) Mostre que: a) {1.

o livro chamado Shu-shu chiu-chang. Jiushao contribuiu também para a solução de sistemas lineares. temos: 113 . encontramos uma solução para o sistema de congruências: {x x substituição na segunda.Aula 11 . obtemos: x ≡2 mod 5 ⇒ 43t≡2 mod 5 ⇒ 3t≡ 2 mod 5 Ao multiplicar pela inversa de 3 módulo 5. Para iniciar o estudo sobre o Teorema Chinês dos Restos e a aplicação deste à criptografia. cálculo de somas de séries aritméticas e técnicas de solução de equações. Substituindo este valor na segunda. em 1247. Jiushao não se dedicava exclusivamente à Matemática. tratado matemático dividido em nove seções. Possuía conhecimentos em várias áreas e ocupou cargos burocráticos em diversas províncias chinesas. o que hoje é chamado Teorema Chinês dos Restos. Texto 43 – Exemplo com duas equações Em nosso exemplo. Foi o responsável pela adoção do símbolo zero na matemática chinesa. que é 2 2⋅3=6≡1 mod 5 . é considerado um dos grandes matemáticos do século XIII. para algum t ∈ℤ . vamos começar com um exemplo. pela primeira vez. assunto desta aula. Nele aparece. então x =43t . que viveu de 1202 a 1261. ≡ 4 mod 3 ≡ 2 mod 5 Uma forma de resolver o sistema é encontrar a solução geral da primeira congruência e fazer a Como x ≡4 mod 3 . O matemático chinês publicou.Teorema Chinês dos Restos O chinês Qin Jiushao.

substituindo este valor de t em x =43t . Assim. Texto 44 – Exemplo com três equações Vamos agora usar a mesma técnica para resolver um sistema de três equações. e o astro B foi visto no mês 2 e é visível a cada cinco meses. O sistema de congruência anterior resolve um problema do tipo: se um astro A foi visível no mês 4 e é visível a cada três meses. traduzimos em forma de sistema e resolvemos a questão com a mesma técnica empregada para o sistema de duas equações. ≡ 2 mod 5 Antigos chineses e gregos estudavam este tipo de problema relacionando-o com a astronomia. obtemos: x =43⋅15k=4315k=715k O cálculo anterior mostra que todo inteiro da forma x =715k é solução para o sistema e. se por um lado o sistema tem infinitas soluções inteiras. para algum k ∈ℤ . de quantos em quantos meses serão visíveis juntos? A resposta.2⋅3t≡2⋅ 2 mod 5 ⇒ 6t≡ 4 mod 5 ⇒ t ≡1 mod 5 . conforme resolução anterior. que calculamos resolvendo o sistema. todos são congruentes a 7 módulo 15 . dada por x ≡7 mod 15 . a cada 15 meses. reciprocamente. Apresentamos o exemplo como problema de astronomia. toda solução é da forma x =715k . por outro. Finalmente. Isso mostra que. Assim. 114 . t =15k . o sistema {x x ≡ 4 mod 3 tem solução única módulo 15 . Dizemos então que a solução é única módulo 15 . é que serão visíveis no mês 7 e. depois.

Escrevendo em forma de congruência. Substituindo esse valor de t no valor de x . 115 . Para todo k ∈ℤ . o primeiro astro é visível nos meses x =111t . . o segundo em x =313k . Substituindo este valor na segunda congruência. . o valor de x =133143k satisfaz às duas primeiras congruências. x =111t=1111213k =133143k . Assim. Outro astro foi visível no mês 3 e sabe-se que é visível a cada 13 meses. Um terceiro astro foi visível no mês 4 e é visível a cada 15 meses. pois 11⋅6=66≡1 mod 13 .Problema: Um certo corpo celeste foi visível no mês 1 e observações anteriores revelam que é visível a cada 11 meses. Ao multiplicar os dois lados da congruência por 6. temos que encontrar uma solução para o sistema: { x ≡ 1 mod 11 x ≡ 3 mod 13 x ≡ 4 mod 15 Vamos empregar a mesma técnica utilizada para o sistema anterior. Quando os três corpos celestes serão visíveis no mesmo mês? Chamando de x o mês: . e o terceiro em x =415l . A primeira congruência nos diz que x =111t para algum t ∈ℤ . obtemos: x ≡3 mod 13 ⇒ 111t≡3 mod 13 ⇒ 11t≡2 mod 13 A inversa de 11 módulo 13 é 6. com duas equações. t =1213k . para k ∈ℤ . temos: 611t ≡6⋅2 mod 13 ⇒ 66t≡12 mod 13 ⇒ t ≡12 mod 13 .

Assim. temos: x ≡4 mod 15 ⇒ 133143k≡4 mod 15 . temos: x ≡6 mod 15 ⇒ 35t≡6 mod 15 ⇒ 5t≡3 mod 15 . Resolva o sistema: { x ≡ 3 mod 5 x ≡ 6 mod 15 Da primeira equação obtemos x =35t . a solução é única módulo o produto entre os módulos. duas a duas. Observe que 2.Substituindo-o na terceira. Substituindo no valor de x. Mas 143≡8 mod 15 e 133≡13 mod 15 . Temos então k =1215w para w ∈ℤ . pode ser empregado com um número qualquer de equações.849 . Exemplo. pois 8⋅2=16≡1 mod 15 .8492145w . Assim. 116 . logo 138k≡4 mod 15 ⇒ 8k≡ 9 mod 15 ⇒ 8k ≡6 mod 15 A inversa de 8 módulo 15 é 2 . Contudo. e daí a cada 2. como mostra o próximo exemplo. obtemos: x =133143k=1331431215w=1. Novamente.145 meses. Substituindo na segunda. Este método de resolver os sistemas lidando com as equações. 2⋅8k≡2⋅6 mod 15 ⇒ 16 k ≡12 mod 15 ⇒ k ≡12 mod 15 .145=11⋅13⋅15 é o produto dos módulos. os astros serão simultaneamente visíveis no mês 1. nem sempre há soluções.

então a congruência sempre tem solução.Mas mdc 5. Texto 45 – Teorema Chinês dos Restos Vamos agora enunciar e demonstrar o teorema para um sistema com duas equações. Como. m 2  divida b 2 b 1 . logo a equação anterior não tem solução. obtemos: x ≡ b 2  mod m 2  ⇒ b 1 k ⋅m 1 ≡b 2  mod m 2  ⇒ m 1⋅k ≡ b 2 b 1  mod m 2  Para que essa congruência tenha solução. A primeira equação pode ser escrita na forma x = b 1 k ⋅m 1 . Substituindo na segunda. utilizando a mesma técnica anterior. mdc  m 1. o que mostra que o sistema também não possui. e essa solução é única módulo m 1⋅m 2 . por hipótese.15=5∤3 . m 2 =1 . é necessário (e suficiente) que mdc  m 1. Teorema Chinês dos Restos Sejam m 1 e m 2 inteiros positivos e primos entre si. Então o sistema { Demonstração x ≡ b 1 mod m 1 x ≡ b 2 mod m 2 tem solução. ⋅ m 1⋅k ≡⋅ b 2 b 1  mod m 2 ⇒ ⋅m 1 ⋅k ≡  b 2 b 1  mod m 2 ⇒ ⇒ k ≡ b 2 b 1  mod m 2 117 . Seja  o inverso de m 1 módulo m 2 .

então: ⋅m 1 ≡1 mod m 2  ⇒ ⋅m 1⋅m 2 =1 ⇒ ⋅m 2 =1 ⋅m 1 para algum ∈ℤ . Provamos então que há solução e.Logo. existe t ∈ℤ . Então: { x ≡ b 1 mod m 1 e x ≡ b 2 mod m 2 { y ≡ b 1 mod m 1 y ≡ b 2 mod m 2 Subtraindo as equações com o mesmo módulo. resulta em x y ≡0 mod m 1 ⇒ m 1∣ x y  118 . no processo. Substituindo este valor. A maneira usual de provar unicidade módulo m 1⋅m 2 é supor que haja outra solução y e mostrar que x ≡ y mod m 1⋅m 2 . Sejam. x e y duas soluções do sistema. tal que k = b 2 b 1 t ⋅m 2 . Vejamos agora a questão da unicidade. em que  e  são inteiros tais que  m 1 m 2=1 e podem ser facilmente calculados usando o algoritmo de Euclides estendido. encontramos uma fórmula que fornece as soluções. temos: x = b 1 m 1  b 2 b 1 t ⋅m 2 x = b 1⋅m 1  b 2 b 1 t ⋅m 1⋅m 2 x =1 ⋅m 1  b 1⋅b 2⋅m 1t ⋅m 1⋅m 2 . portanto. Como  é inversa de m 1 módulo m 2 . Substituindo esse valor de k em x = b 1 m 1⋅k . obtemos: x =⋅b 2⋅m 1⋅b 1⋅m 2 t ⋅m 1⋅m 2 .

a solução de x ≡ f 1  mod m 1⋅m 2  . m 1⋅m 2 =1 . E se tivermos mais de duas equações? Nesse caso. x ≡ b 3  mod m 3  É claro que mdc  m 3 . Por exemplo. a condição é mdc  m 1. pois mdc  m 3. o sistema com três equações é equivalente (tem as mesmas soluções) que o sistema com duas equações: { x ≡ f 1  mod m 1⋅m 2  . m 2 =1 e mdc  m 3. a condição para garantir a existência da solução é que os módulos sejam dois a dois primos entre si. m 3 = mdc  m 2. ou seja. m 2 =1 garante a existência de solução. x ≡ b 1 mod m 1 x ≡ b 2 mod m 2 x ≡ b 3 mod m 3 então. x y ≡0 mod m 1⋅m 2  ⇒ x ≡ y mod  m 1⋅m 2  . m 2 =1 . m 2 =mdc m 1. então é múltiplo de mmc  m 1. haverá também solução de mdc  m 1. e somente se. o teorema para um sistema de duas equações mostra que há solução As duas equações x ≡ b 1  mod m 1  e x ≡ b 2  mod m 2  podem ser substituídas pela equação x ≡ f 1  mod m 1⋅m 2  . m 1 =1 . m 2 1 desde que mdc  m 1. Assim. pois x é solução das duas equações se. m 2 =1 . Como  x y  é múltiplo comum de m 1 e m 2 . Como mdc  m 1.e  x y ≡0 mod m 2 ⇒ m 2∣ x y  . m 2 =m 1⋅m 2 . segundo a a demonstração anterior. m 2  divida b 2 b 1 . Mas mdc  m 1. Observe que a condição mdc  m 1. se forem três equações: { x ≡ f 1 mod m 1⋅m 2 . porém. 119 . m 3 =1 .

um esquema de partilha de um segredo é um método para distribuição deste entre vários participantes de um grupo. que só pode ser reconstruído quando todas as partes forem reunidas. cada um recebe uma parte do segredo. m 2. reduzimos de n equações para n 1 equações. daí para n 2 etc.. Dessa forma. 120 . então o sistema { x ≡ b 1 mod m 1 x ≡ b 2 mod m 2 ⋮ x ≡ b k mod m k tem uma única solução módulo m 1⋅m 2⋅. no que diz respeito ao problema da partilha de um segredo. . sucessivamente até chegarmos a duas equações..⋅m k . Texto 46 – Aplicações à criptografia: partilha de um segredo Há uma aplicação muito interessante do Teorema Chinês dos Restos à criptografia. Usando o teorema já demonstrado para duas equações. Assim. . m k são inteiros positivos dois a dois primos entre si. uma solução para: { x ≡ f 1  mod m 1⋅m 2  x ≡ b 3  mod m 3  o que prova o teorema para três equações.. Em criptografia. O processo descrito anteriormente permite demonstrar o teorema para um sistema com um número qualquer de equações..Ao aplicar novamente o teorema para duas equações. resulta que existe. concluímos o Teorema chinês dos restos: Se m 1. e é única módulo m 1⋅m 2⋅m 3 .. Partes individuais não permitem por si só descobri-lo.

2. se seis deles se reunirem.Contudo. o que seria um número muito grande de combinações possíveis. n  -crítico se: 1. k n . um segredo industrial pode ser partilhado entre dez funcionários de uma indústria. . descuidados com sua parte do segredo etc. Um esquema simples seria usar as quatro partes: “CRIP _ _ _ _ _ _ _ _”. mas sim um número suficiente de pessoas. Um esquema de divisão de um segredo. “_ _ _ _ _ _ GRA _ _ _ “ “_ _ _ _ _ _ _ _ _ FIA”. Há vários esquemas simples que são •  n . há aplicações em que não é necessária a junção de todas as partes para que o segredo seja revelado. k  -críticos. uma vez que o conhecimento de um número menor que quatro partes provê informação valiosa sobre o segredo. Ao reunirem-se k ou mais partes. r n 1 . Uma pessoa que tivesse apenas uma das partes teria que tentar todas as possibilidades nas outras posições de letras. A reunião de um número menor que k de partes não permite descobrir o segredo.. mas não seis deles ao mesmo tempo. é chamado  k .. Sejam n e k inteiros positivos. n  -crítico é o seguinte: Codifique o segredo como um inteiro s . r 2. Gere n 1 inteiros aleatórios r 1. Uma pessoa que tivesse a primeira parte saberia que se trata de uma palavra com 12 letras começando por “CRIP”. em que este é partilhado em um grupo de n pessoas. Note que esse esquema não será bem sucedido. “_ _ _ _ TO _ _ _ _ _ _”. Veja alguns exemplos: Suponha que o segredo seja a palavra criptografia e desejamos partilhá-lo entre quatro pessoas em um esquema 4. . 121 . A idéia aqui pode ser que talvez alguns funcionários possam ser subornados. • Outro esquema  n . Por exemplo. é possível descobrir o segredo. 4 -crítico. de tal forma que. suas partes poderão reconstruir o segredo. e Apenas as quatro partes juntas poderiam recuperar a palavra toda. Não seria difícil adivinhar o resto..

Então. m 2. Vamos usar o Teorema Chinês dos Restos para desenvolver um sistema de partilha de um segredo que seja  n . k  -crítico. Distribui-se entre os participantes os pares  m i . k n .. Sejam m 1. não revelando nenhuma informação sobre o inteiro s . onde s i ≡s  mod m i  . Temos que escolher um conjunto S de n inteiros com uma propriedade muito especial. Seja B o produto dos k 1 maiores elementos do conjunto... m n os n elementos do conjunto S .  . Suponha que o segredo que desejamos dividir seja codificado como um inteiro s . Então. Se t participantes se reúnem para tentar descobrir o segredo. s i  . devem resolver o sistema: x ≡ s 1  mod m 1  x ≡ s 2  mod m 2  ⋮ 122 .. k  -crítico de partilha de um segredo.r n 1  s r 1 r 2 . o produto de menos de k elementos do conjunto é sempre menor ou igual a B . Se as n pessoas revelarem juntas suas partes. vamos usar o Teorema Chinês dos Restos para construir um esquema  n . r n 1 =s No entanto cada parte é totalmente aleatória. então podem somá-la: r 1 r 2. Texto 47 – Partilha de um segredo com o Teorema Chinês dos Restos Sejam n e k inteiros.Distribua esses inteiros para n 1 pessoas e dê à última pessoa o inteiro s r 1 r 2 . Seja A o produto dos k menores elementos de S . r n 1 . No próximo texto. Suponha que o conjunto S seja escolhido de tal forma que: B  s  A. o produto s de quaisquer k ou mais elementos é sempre maior ou igual a A ...

são cinco participantes. O produto dos três maiores elementos é 15⋅16⋅17=4080 . Como s  A . Exemplo. uma vez que A s B e que s 0 ≡ s  mod m 1⋅m 2⋅⋅m t  . Como s B e s 0 m 1⋅m 2⋅⋅m t B . s 0 ≡ s  mod m 1⋅m 2⋅ m t  e A m 1⋅m 2⋅ m t . Queremos desenvolver um sistema de partilha de um segredo que seja 5. ⋅ Se t ≥ k .4 -crítico. que é única módulo m 1⋅m 2⋅ m t . 16. então.x ≡ s t mod m t  Como os módulos m i . então s ≠s 0 . então devemos ter s =s 0 e o segredo estará recuperado. o ⋅ sistema sempre tem solução.15.13. portanto é menor ou igual a B . Assim. mas o segredo será descoberto se quatro deles revelarem suas partes ao mesmo tempo. logo será maior ou ⋅ ⋅ igual a A. 123 . No caso de t  k . ⋅ Se t  k . então m 1⋅m 2⋅ m t é o produto de menos de k elementos no conjunto S. pelo Teorema do Resto Chinês. ⋅ Isto é. então m 1⋅m 2⋅ m t é o produto de k ou mais elementos de S. Como s também é solução  já que s ≡s i  mod m i   e a solução é única módulo m 1⋅m 2⋅⋅m t . Mas será esta solução igual ao segredo inicial s ? Seja s 0 a solução encontrada para o sistema anterior. Seja S ={11. queremos que A B seja grande se comparado com todos os produtos m 1⋅m 2⋅ m t possíveis ( t  k ). podemos apenas garantir que s s 0 é múltiplo de m 1⋅m 2⋅⋅m t . 1≤ i ≤t são primos dois a dois. a segurança do sistema está na existência de muitos múltiplos de m 1⋅m 2⋅⋅m t entre A e B.17} . ou seja. então: s 0 ≡ s  mod m 1⋅m 2⋅⋅m t  .

s ≡7  mod 13 . Você aprendeu também uma aplicação prática deste teorema em criptografia. onde M é o produto dos três módulos envolvidos. Apresentamos alguns exemplos e provamos o teorema para módulos primos entre si. o que dá informação relevante sobre s . Nesta aula. o que permite construir um sistema de partilha de um segredo que seja  n . o produto dos quatro menores elementos é 11⋅13⋅15⋅16=34320 . Temos que M ≤15⋅16⋅17=4080 . Portanto fica revelada a classe de s módulo M.participante 3 recebe o par 5.15 . Suponha que o segredo seja codificado como o número s =32000 .participante 4 recebe o par 0. Os participantes receberão o seguinte: • • • • • s ≡1  mod 11 . s ≡6  mod 17 .participante 2 recebe o par 7. s ≡5  mod 15 .11 . mas não seu valor exato. você estudou o famoso Teorema Chinês dos Restos. então s ≡s 0  mod M  . 124 .participante 1 recebe o par 1.17 . A reunião de apenas três desses sistemas resulta em um que terá solução s 0 que é única módulo M. Como s é solução. s ≡0  mod 16 .Por outro lado.13 .16 .participante 5 recebe o par 6. k  crítico.

Depois. Crie um sistema de partilha de um segredo que seja 6. 4. 125 .Atividades 1. resolva de maneira usual. Resolva o sistema {x x 2.3 -crítico. Resolva o sistema x ≡ 1 mod 7 x ≡ 4 mod 9 x ≡ 5 mod 10 { 2x ≡ 1 mod 3 3x ≡ 4 mod 7 x ≡ 1 mod 8 Sugestão: multiplique a primeira equação pelo inverso de 2 módulo 3 e a segunda pelo inverso de 3 módulo 7. Resolva o sistema ≡ 1 mod 11 ≡ 7 mod 15 { 3.

Texto 48 – A criptografia de chave pública Vamos iniciar com uma revisão do conceito de criptografia de chave pública.Aula 12 – RSA Na disciplina “Criptografia Geral”. A figura a seguir ilustra o esquema usual de criptografia de chave pública. Bem. conhecemos a criptografia de chave pública. cada um gera seu par de chaves. Para mandar a mensagem P para Bob. Bob usa sua chave privada 126 . o que resulta no texto criptografado E B  P  . cada qual gera seu par de chaves  D A . Alice e Bob. Naquele momento. descrevemos os princípios gerais dos sistemas de chave pública e mostramos que eles funcionam com base em funções matemáticas que envolvem conhecimentos na área de Teoria dos Números. Se duas pessoas. Alice a criptografa usando E B . O sistema opera com um par de chaves criptográficas. geralmente denominadas chave privada e chave pública. chegou a hora de descrevermos o funcionamento exato do RSA. As chaves públicas podem ser divulgadas e as chaves privadas devem ser mantidas em sigilo. A chave privada é utilizada para cifrar uma mensagem. chave pública Texto Claro Cifragem Texto Cifrado chave privada Texto Claro Decifragem Neste esquema. mas o conhecimento de uma delas não permite descobrir o valor da outra. Essas chaves são relacionadas matematicamente. enquanto a chave pública será utilizada para decifrá-la. que é enviado. onde D A é a chave privada de Alice e E A é sua chave pública. D B e E B são as chaves privada e pública de Bob. E B  . E A  e  D B . Para decifrar a mensagem. querem se comunicar. Um sistema desse tipo permite ao usuário enviar uma mensagem de forma segura sem conhecer qualquer chave secreta.

como o esquema chamado ElGamal. 127 . A descoberta foi mantida em sigilo até 1997. D B e E B são funções matemáticas inversas uma da outra: D B  E B  P  =P e E B  D B  C  = C tais que o conhecimento de uma delas não permite a dedução da outra. Isto é. entre outras. Shamir e Adleman criaram um algoritmo de chave pública chamado RSA. que vamos estudar em detalhe nesta aula. o GCHQ. Os processos de cifrar e decifrar são. vamos detalhar o funcionamento do RSA. A criptografia de chave pública foi inventada.D B e recupera o texto inicial: D B  E B  P  =P . A questão que surge agora é: como isto é implementado na prática? Que funções matemáticas são utilizadas? Há várias implementações para o esquema de chave pública: uma das primeiras e mais conhecidas é o RSA. Assim. qualquer informação. Mas existem outras implementações. as iniciais de seus nomes. um esquema geral de criptografia de chave pública foi proposto por Diffie e Hellman. toda mensagem ou. Sua segurança está baseada na dificuldade matemática de fatorar um inteiro grande. funções que atuam em inteiros. que trabalhavam no problema de combinação de chaves na criptografia tradicional. que trabalhava para o serviço secreto inglês. Em 1977. os matemáticos Rivest. pelo matemático Clifford Cocks. as técnicas baseadas em curvas elípticas. na verdade. é representada por um número inteiro. no início da década de 70. Na criptografia moderna. O RSA usa exponenciação módulo o produto de dois primos grandes para cifrar e decifrar uma mensagem. No próximo texto. de maneira geral. porém não é computacionalmente viável calcular essa inversa. Descrevemos assim um sistema de chave pública em linhas gerais. Em 1976. Algumas destas serão apresentadas ao longo do curso. são funções que têm inversa.

Esse método requer testes de primalidade rápidos que tenham uma margem de erro muito pequena. .  n =1 . Passo 2 – Calcule n = p⋅q . de modo aleatório. Geração de chaves Os passos envolvidos na geração das chaves são: Passo 1 – Escolha. Caso não seja.a chave privada é o par  d . dois primos grandes distintos p ≠q .  n =1 . Passo 4 – Escolha um inteiro e . tal que 1d  n  e d ⋅e ≡1  mod  n  . utilizando várias bases. • Os passos 4 e 5 podem ser realizados por meio do algoritmo de Euclides estendido. Passo 5 – Calcule o inteiro d . eles são extremamente raros. n  . em que 1e  n  e MDC e . pode-se escolher um inteiro ímpar aleatório. O teste de Fermat. n  . Algumas observações sobre os passos do processo de geração de chaves: • No passo 1 – no procedimento da escolha de dois primos aleatórios distintos. para determinar se é primo. existe inteiro d . Passo 3 – Calcule o valor da função de Euler  n  :  n = p⋅q = p  q = p 1  q 1 . é uma boa opção: é rápido e seguro. Depois. testa-se o inteiro ímpar consecutivo a ele e assim por diante. As chaves são: . isto é. Cada participante deve gerar seu par de chaves. então o inteiro e tem inversa módulo  n  . tal que e⋅d ≡1 mod  n  .a chave pública é o par  e .Texto 49 – RSA O primeiro passo no algoritmo é a geração das chaves. faz-se o teste nesse inteiro. Embora os números de Carmichael enganem o teste. 128 . 1d  n  . Como mdc  e .

Processo de criptografia Suponha que a mensagem a ser cifrada seja o inteiro P . Assim. Com isso. Se mdc  P . desta vez usando a chave privada d . pode ser feito de forma rápida. O processo de cifragem é muito simples. Em sistemas criptográficos. a mensagem original P é recuperada. Bob. Assim. uma exponenciação módulo n . então e d =1k  n  para algum k ∈ℤ . Se um outro participante. por exemplo. tal que C ≡P e  mod n  . que só Alice conhece. Para decifrar a mensagem C . Alice recupera a mensagem original. que faz parte da chave pública  n . as mensagens são transformadas em números e quebradas em blocos de bits de tamanho especificado. deve ser maior que P . então P  n ≡1  mod n . n =1 . e  . P é na verdade um certo inteiro de tamanho máximo conhecido. Logo: d k C d =  P e  = P ed = P 1 k  n  = P ⋅ P  n   . Portanto: C d = P  P  n  ≡ P  mod n  . k Exemplo: 129 . 1≤C ≤n . Aqui entra o teorema de Euler. deve obter a chave pública de Alice  n . deseja enviar mensagem para alguém. A mensagem cifrada é o inteiro C. digamos Alice. e  . Alice calcula C d  mod n  . O inteiro n . Como e⋅d ≡1 mod  n  . Processo de decifragem Decifrar uma mensagem consiste em realizar uma nova exponenciação. O cálculo de P e  mod n  .

verificamos que d =3287 é a inversa de A chave pública é o par 23. Vamos escolher o módulo e gerar as chaves: Passo 1 . No próximo texto. A função de decifragem é a função D C =C 3287  mod 4331 .4331 . Passo 3 . Evidentemente. uma vez que uma escolha de números tão pequenos não oferece qualquer segurança.Escolhemos e =23 como parte da chave pública.Faremos um exemplo completo. A função de cifragem é a função E  P =P 23  mod 4331 . dois primos distintos. mas com números pequenos.Calculamos d ≡e 1  mod 4200 . Passo 4 . Usando o algoritmo estendido de Euclides. A chave privada é o par 3287. Para decifrar esta mensagem.Calculamos  n =60⋅70=4200 . O exemplo é apenas didático. usamos a função D 2388=23883287 mod 4331=20 mod 4331 que recupera a mensagem original. Por exemplo. Passo 5 . o módulo escolhido anteriormente n =4331 é muito pequeno para oferecer qualquer segurança real.Escolhemos p =61 e q =71 . Passo 2 . 4331 . mostraremos como as contas anteriores foram feitas utilizando um pacote de computação algébrica. 130 . mesmo para esse valor pequeno. 23 módulo 4200 . Por outro lado. as contas de exponenciação são grandes para serem feitas à mão. a mensagem P =20 cifrada por: E 20=2023  mod 4331=2388  mod 4331.n =61⋅71=4331 será o módulo utilizado.

testes de primalidade. Há um manual detalhado e um tutorial para os que quiserem utilizar o programa.fr/. A multiplicação é dada pelo símbolo ∗ .Texto 50 – O GP/Pari Há muitos programas matemáticos de uso geral que lidam bem com aritmética modular.u-bordeaux. Um programa de código livre bastante popular entre os matemáticos que trabalham com Teoria dos Números é o programa PARI/GP. 131 .math. passo a passo. a captura de tela das operações realizadas. Observe que o sistema numera os resultados obtidos. Há versões para diversos sistemas operacionais e pode ser obtido (código fonte inclusive) no endereço http://pari. na figura. utilizando o GP/Pari em sistema Linux. alguns gratuitos e outros ainda de código livre. fatoração de inteiros etc. O valor 4331 está agora armazenado na variável n . Segue. O prompt ? é o sinal que o sistema aguarda nova entrada. As contas do exemplo anterior foram feitas usando o Pari/GP. com o Maple e o Mathematica. as operações realizadas: Linha 1 – Definimos n =61⋅71=4331 . Vamos acompanhar. Há vários deles comerciais. Pari/GP possui amplo suporte para aritmética modular.

Embora o GP/Pari não seja um sistema específico para criptografia. fazemos C d . pedimos o valor de 1/ a . o que fizemos foi definir a =23 mod 4200 . A função Mod é utilizada para aritmética modular. Agora que calculamos as chaves. que é a mensagem original P. o que resulta em 20 mod 4331 . vamos criptografar a mensagem. Assim. Esta é a função  n  . que o sistema entende como a inversa de 23 mod 4200. Os primos p e q devem ser grandes.Linha 2 – Armazenamos na variável fi o valor eulerphi  n  . Linha 4 – Definimos a =Mod  e . Linha 9 – Para decifrar a mensagem. Assim. Linha 8 – A mensagem criptografada é C =P e . Linha 3 – Definimos e =23 . Texto 51 – Considerações práticas: escolha dos primos e preenchimento de bits Várias questões práticas devem ser consideradas em uma implementação real do RSA. Obtivemos C =2388 mod 4331 . Linha 5 – Para calcular a inversa de 23 módulo 4200 . Linha 6 – Definimos d =3287 . fi =4200=4331 . O resultado é 3287 mod 4200. 132 . uma vez que é fácil fatorar um inteiro que tenha um fator primo pequeno. A primeira está relacionada com a escolha dos primos. é uma ferramenta bastante útil para todos aqueles interessados em Teoria dos Números. Linha 7 – Definimos P =20 mod 4331 .4200 . fi =Mod 23. A exponenciação em GP/Pari é dada pelo símbolo ^ .

Pois. tornando impraticável a construção de um dicionário de textos cifrados. Ao tentar decifrar uma mensagem criptografada. mas o uso destas expressões torna o número de textos cifrados possíveis. procurando por textos cifrados para os quais ele conhece o texto claro. então a mensagem transmitida é m e . um atacante pode cifrar uma série de palavras escolhidas. bem extenso. Além disso. Outro fator que deve ser considerado é que as mensagens m =0 e m =1 resultam em c =0e =0 e c =1e =1 . Nesse caso. e que evite que mensagens pequenas sejam criptografadas. nesse caso. A solução é algum tipo de pré-tratamento que faça com que a mesma mensagem clara na entrada resulte em diferentes textos cifrados na saída do algoritmo. o inteiro n = p⋅q pode ser facilmente fatorado com o método de fatoração de Fermat. o que fornece a um atacante informação sobre o texto claro. conhecido por ambos os participantes. um sistema de preenchimento de bits. Observe que o uso de preenchimento da mensagem é uma técnica antiga. O recipiente da mensagem pode facilmente reconhecer as expressões e retirá-las. ele pode comparar a mensagem com seu dicionário. Um atacante pode recuperar a mensagem m simplesmente extraindo a raiz e-ésima de m e (como número real). Assim. Uma forma comum é adicionar no início e/ou no final da mensagem expressões escolhidas em uma lista combinada. 133 . e assim ganhar informação sobre a mensagem. utilizada há séculos. correspondendo a um certo texto claro. devido à ausência de qualquer componente aleatória. criando seu próprio dicionário de textos criptografados. uma vez escolhido um par de chaves.Outra consideração é que p e q não devem ser muito próximos. Os problemas expostos anteriormente exigem que se faça alguma forma de pré-tratamento da mensagem. Outro problema é que o sistema descrito é totalmente determinístico. caso a mensagem m e a chave pública e forem tão pequenas que m e  n . uma mesma mensagem clara M resultará sempre na mesma mensagem criptografada C .

Esta. Outro exemplo: uma pessoa deposita R$ 100.rsasecurity.Existem diversos esquemas de preenchimento padronizados que são usados em implementações reais do RSA. Saiba mais informações sobre o PCKS no endereço http://www. informando o depósito. e passa a repetir a mensagem várias vezes. Garantir autenticidade – como a chave pública é conhecida. alterar a mensagem. consiste em um bloco de informação adicionado à mensagem que comprova a identidade do emissor. Todos esses três serviços são garantidos por um esquema de assinatura. Garantir não-repudiação – Bob pode enviar uma mensagem para Alice e depois negar têla enviado. 134 . tais como o PCKS. Há três usos básicos para assinaturas digitais: 1. Mas como implementar um esquema de assinatura digital usando a criptografia de chave pública? Existem vários esquemas de assinatura digital. intercepta a mensagem da agência para a central.asp?id=2124. 3. 2. recriptografar a mensagem com a chave pública de Alice e enviá-la novamente a Bob. Garantir integridade – uma pessoa pode interceptar uma mensagem que foi enviada por Bob para Alice (usando a chave pública de Alice). confirmando quem ele diz ser.00 em uma agência bancária. Uma assinatura digital garante que só Bob poderia ter enviado a mensagem. Texto 52 – Assinatura digital A criptografia de chave pública também é utilizada como um meio de assinatura digital. Veja um exemplo a seguir. tal como uma assinatura em papel.com/rsalabs/node. qualquer pessoa pode usar a chave pública de Alice e enviar uma mensagem para ela fazendo-se passar por Bob.

D B é a chave privada de B. Usualmente.H é a função de hash utilizada. Uma função de hash deve possuir características que tornem improvável que dois textos distintos tenham o mesmo hash e seja impossível inverter a função (a partir do hash obter o texto). criptografando o hash da mensagem com sua chave privada. 135 . e assina. Então. Assim. Alice recebe este par e usa sua chave privada para recuperar a mensagem P =D A E A P  . criptografando a mensagem com a chave pública de Alice. . obtendo E B D B H P  . Se são iguais.P é o texto claro. então a assinatura confere. calcula seu hash H P  . Bob envia uma mensagem para Alice. um atacante poderia usar posteriormente a mesma assinatura.Esquema Bob usa sua chave privada para criptografar algum texto que ele e Alice conhecem. e compara com H P  . O texto combinado deve ser algo que não possa ser reutilizado. caso contrário.E A é a chave pública de A.D B H P   onde: . então foi de fato Bob quem enviou a mensagem. Alice usa a chave pública de Bob para decifrar a mensagem e comparar com o texto combinado. Se forem idênticos. que têm como entrada a mensagem e resultam em um inteiro. Ao obter a mensagem. . uma vez que só ele conhece sua chave privada. utilizam-se as chamadas funções de hash. Ou seja. . Bob envia: E A P  . ela aplica E B na segunda parte do par.

para chaves suficientemente grandes. então poderá calcular facilmente o valor de n  e. fatorar inteiros grandes em tempo polinomial. o que permite métodos especiais de fatoração. o valor de d ≡e 1 mod n . Este feito foi alcançado com um grande número de computadores. um dos desafios RSA (falaremos sobre isto a seguir). usando o algoritmo de Schor. como se faz para deduzir o valor de m . pode. levando-se em conta o conhecimento matemático atual do problema da fatoração de inteiros grandes. o que dá uma idéia da segurança que estes algoritmos oferecem. O inteiro de 663 bits foi fatorado como parte do esforço de quebrar o RSA-200. em um computador clássico. o problema RSA. não se conhece um algoritmo para fatoração de inteiros grandes. Normalmente. o maior inteiro fatorado usando métodos gerais é um inteiro de 663 bits. Nem foi provado que um algoritmo deste tipo possa existir. Este último pode ser definido como o problema de extrair a e-ésima raiz módulo de um inteiro composto n . No entanto não se espera que haja computadores quânticos em funcionamento antes de 2015. usamos 663 bits. descobrindo a chave privada. Até o momento. trabalhando de forma distribuída. Portanto. o RSA é seguro. 136 . isto é. Estima-se que um computador com processador de 2. dados inteiros n . Se um atacante conseguir fatorar n =p⋅q .e e m e mod n . Até meados de 2005. em princípio.2 Ghz levaria algo em torno de 75 anos para fatorar esse inteiro. Peter Schor mostrou que uma nova forma de computadores.Texto 53 – A segurança do RSA A segurança do RSA está baseada na dificuldade de dois problemas matemáticos: a fatoração de inteiros grandes. mas inteiros de um tipo específico. Atualmente. Em 1993. que funcione em tempo polinomial. Em outras palavras. assim. o computador quântico. Quando falamos em métodos gerais. são usadas chaves RSA de 1024 a 2048 bits. a melhor forma de resolver o problema RSA é fatorar o inteiro n . aludimos ao fato de que há inteiros muito maiores já fatorados. escrevendo estes inteiros em base 2.

Texto 54 – Os desafios RSA Os desafios RSA são colocados pela empresa RSA Laboratories. Trata-se de inteiros semiprimos (produto de dois primos distintos) e o desafio é fatorá-los. Os inteiros são numerados de acordo com seu tamanho. No início, eram numerados conforme o número de dígitos decimais. O primeiro desafio foi o RSA-100 (um semiprimo com 100 dígitos decimais), que foi fatorado em poucos dias. O último inteiro a ser fatorado foi o RSA-200 (200 dígitos decimais), fatorado em maio de 2005. O maior inteiro na lista de desafios RSA é um inteiro de 2048 bits (RSA-2048), com 617 dígitos decimais. Atualmente, é oferecido um prêmio de US$ 200 mil para quem conseguir fatorar este número. Isso mostra a confiança existente de que números desta ordem ainda estão muito além dos que podem ser fatorados hoje em dia.

Nesta aula, detalhamos o funcionamento do algoritmo de chave pública RSA, discutimos alguns detalhes de sua implementação e aspectos de sua segurança. Vimos também um software de computação algébrica de uso geral bastante útil para aqueles interessados em Teoria dos Números, o GP/Pari. Exploramos uma das aplicações importantes da criptografia de chave pública, que é a de possibilitar as assinaturas digitais.

Atividade 1) A chave pública de Alice é (143,23). Bob utiliza essa chave para criptografar uma mensagem para Alice. Bob envia a mensagem C =2 . Quebre o código, descubra a chave privada de Alice e revele a mensagem original.

137

Aula 13 – Logaritmo Discreto

Nesta aula, você vai estudar os logaritmos discretos, que têm aplicação importante em criptografia, em especial no esquema de troca de chaves de Diffie-Hellman, no algoritmo de assinatura digitas (digital signature algorithm – DSA) e no sistema criptográfico ElGamal.

Texto 55 – Raízes primitivas Módulo n

Pelo teorema de Euler, que você estudou na aula 10, se a e n são inteiros primos entre si, então:

a  n ≡1  mod n  ,
o que mostra que a equação

a x ≡1  mod n 
sempre tem pelo menos uma solução. De fato, em geral, esta equação tem várias soluções, inclusive, em alguns casos, inteiros positivos menores que  n . Chamaremos de ordem de a módulo n , denotado ord n a  , ao menor inteiro positivo m , tal que a m ≡1  mod n  .

Exemplos: - A ordem de 7 módulo 15 é 4 , pois:
• • • •

7 ≡7  mod 15 . 7 =49≡
1  mod 15 . 73=7⋅49≡
7≡8  mod 15 .
7 = 7
4 2 2

1

 ≡
12 ≡1

2

 mod 15.

138

Dessa forma, percebemos que 74 ≡1  mod 15 e que nenhuma potência de 7 menor que

4 é congruente a 1 módulo 15 . Logo, ord 15 7=4 . Observe que 15 =8.
Como atividade, desenvolva os dois exemplos a seguir. - A ordem de 4 módulo 9 é 3 . Observe que 9=6. - A ordem de 2 módulo 9 é 6 . Dos três exemplos anteriores, apenas no último temos que a ordem de a módulo n é  n . No entanto, nos três casos, ord n a  é um divisor de  n  . Esse fato é conseqüência do teorema a seguir. Teorema: Sejam a e n inteiros positivos primos entre si e seja ord n a  a ordem de a módulo n . Então, a x ≡1  mod n  se, e somente se,

x é múltiplo de ord n a  .

Demonstração Seja m =ord n  a  . Por um lado, se x é múltiplo de m , então x = m⋅k para algum k inteiro. Logo

a x =a m⋅k = a m  ≡1 k =1  mod n .
Por outro lado, se x não é múltiplo de m e a x ≡1  mod n  , então sejam q e r , respectivamente, o quociente e o resto da divisão de x por m :

k

x = m⋅q r , 0r m.
Observe que r ≠0 , pois m ∤ x . Portanto

a x =a m⋅q r ⇒ a x =a r⋅ am 

q

⇒ 1≡a ⋅1

r

q

 mod n  ⇒ a ≡1  mod n  ,

r

em que usamos a x ≡1  mod n  e a m ≡1  mod n  . Porém a r ≡1  mod n  e 0 r m contrariam a escolha de m como o menor inteiro

139

Isso significa que o produto de dois elementos em ℤn é um elemento em ℤn . então não pode ocorrer a x ≡1  mod n  . porque a ordem de 2 módulo 9 é Dessa forma. com a operação de multiplicação de classes. a  n ≡1  mod n  . caracterizando assim uma estrutura chamada anel. * * * * Acontece que ℤn . Texto 56 – Grupos e Subgrupos Quando estudamos aritmética modular. pelo teorema anterior. após os exemplos. Raízes primitivas têm importantes aplicações em criptografia. Você estudará algumas delas ainda nesta aula. o que conclui a demonstração do teorema. Assim. denotado ℤn . o que confirma a observação feita 9=6. se x não é múltiplo de m . Você também estudou que estas operações atendem a certas propriedades. é fechado para a operação de multiplicação.positivo. o produto de duas classes inversíveis é uma classe inversível. tal que a m ≡1  mod n  . Pelo teorema de Euler. então dizemos que a é uma raiz primitiva módulo n .  n  é necessariamente um múltiplo da ordem de a módulo n . Quando  n  é a ordem de a módulo n . O conjunto dos elementos inversíveis módulo n . ou seja. definimos ℤn como o conjunto das classes de congruência módulo n e definimos soma e produto de classes. atende as seguintes propriedades que caracterizam uma estrutura denominada grupo: 140 . Exemplo: O inteiro 2 é uma raiz primitiva módulo 9 .

Dados a j em 〈 a 〉 . então o conjunto * * 〈 a 〉={1. então este herda automaticamente a associatividade e comutatividade de ℤn .  existem q e r . observe que  • * 2 3 m 1 } 〈 a 〉 é fechado para o produto.    a existência do elemento neutro: a⋅1=a . então G é um subgrupo dentro do grupo ℤn . 0≤r m . sua inversa é a m j . * Se G é um subconjunto de ℤn . a z = q ⋅m r = a m  ⋅ r =1 q⋅ r =a r . qualquer potência de a está no conjunto. Estudo de grupos O estudo de grupos é muito interessante. Os grupos podem subdividirem-se em subgrupos.   c a  c comutatividade: a⋅b =b⋅ .  a  a  a   a  •   1 ∈〈 a 〉 . pois dado z inteiro positivo. então. Caso *  G seja fechado para o produto de classes. possua a classe 1 e todo elemento em G * contenha uma inversa em G . com 1≤ j ≤m 1 . Todo elemento a ∈ ℤn gera um subgrupo de ℤn da seguinte forma: se m é a ordem de a módulo n . que ℤn é um grupo.    existência do elemento inverso: para toda classe a existe classe  . tais que z =q ⋅m  r . então a z = r ∈〈 a 〉 . tal que a⋅ =1 . q Logo.  a  a 141 .  De fato.     * Podemos dizer. a . que também está em    •  〈 a 〉 .  .• • • • associatividade:  a⋅b ⋅ =⋅ b⋅  . Para compreender que 〈 a 〉 é subgrupo. a . Como 0≤ r m . a      forma um subgrupo de ℤn . pois a j⋅ m j = m =1 . a .

então. 5 e 7 possuem ordem 2 . acontece algo muito interessante: como as *  n  classes * {1.a 2.  .    1 e as classes 3 .  . 3 . Pode-se mostrar que n tem raiz primitiva se. Para provar isso. ℤ8 ={1 .n =1 . p  e 2⋅p  . o próprio grupo ℤn é cíclico e gerado por 〈 a 〉 . Observe que nem todo inteiro positivo n tem uma raiz primitiva. então a congruência anterior contraria a minimalidade de m .  * * 2 3  n  1 }. e somente se. então os inteiros 1. Quando a for uma raiz   primitiva módulo n. De fato. se m é a ordem de a módulo n .Observe que. pois mdc  a . *  A classe 1 tem ordem 8=4. 5 . a 2 . enquanto que 142 . a . a . ao dividir ambos os lados da congruência por a i  o que é possível. a . com 0≤ i ≤ j ≤m 1 . se a i ≡a j  mod n  . a m 1 são todos não-congruentes módulo n . 4. • •     Não há raiz primitiva módulo 8. note que. porque 0≤ j i m . em que p é um primo ímpar. a 3 . Se i ≠ j . O inteiro 9 é da forma 32 . a   n  1 } são todas não-congruentes módulo n e ℤn tem exatamente      n  elementos. a . 7 } . n for da forma 2. temos a j i ≡1  mod n  . Exemplos: Vimos anteriormente que 2 é raiz primitiva módulo 9 . a     isto é. O subgrupo 〈 a 〉 é chamado subgrupo cíclico de ℤn gerado por a . então ℤn ={1. a .  .

y e z são reais positivos e b ≠ 1.01 . para todo b real positivo. • log 10 0. porque 2  1 2 4 =16 . o que se denota por b é um x =logb y Exemplos: • log2 8=3 . porque 100 =1 . Sejam b e y números reais positivos. tal que y =b x . O logaritmo de y na base número real x . antes de definir logaritmos discretos. ٠ log b  yz =log b  y log b  z  ٠ ٠ ٠ log b  y / z =logb  y  logb  z  log b  y r =r ⋅logb y y =b logb  y  143 . • log 1 16= 4 . vamos fazer uma breve revisão da função logaritmo. pois 10 2 =0. pois 23=8 . log10 1=0 .01= 2 . ٠ log b 1=0 ٠ log b b =1 São válidas também as seguintes propriedades. • São conseqüências diretas da definição que. com b ≠ 1. b ≠ 1. Por isso. em que b.Texto 57 – Logaritmos discretos Os logaritmos discretos na aritmética modular têm propriedades semelhantes ao logaritmos de números reais positivos.

os inteiros a 1 . p  b  é o menor inteiro maior ou igual a zero. tal que: ind a . p  b  a Exemplo: ≡b  mod p . Portanto. por definição.  p ∤b . Vamos agora voltar à aritmética modular. então ℤ p ={a . p 1 Assim. a Para todo inteiro b . o que mostra que 2 é raiz primitiva módulo 11. tal que: b ≡a j  mod p  . a  . p  b  e chamá-lo índice do inteiro b na base a módulo p . p é  p = p 1 . a2. ind a . Seja p um primo e a uma raiz primitiva módulo a congruente a 1 módulo p (lembre-se que sempre há raízes primitivas módulo um primo é a menor potência de p ). Vamos denotar este inteiro j por ind a . se * 1 2. isto é. A ordem de a módulo p .  . a p 1 são todos não-congruentes módulo p .Todas essas propriedades podem ser demonstradas facilmente a partir da definição de logaritmo. As potências de 2 módulo 11 são as seguintes: 2 =1 1 2 =2 2 2 =4 3 2 =8 0 2 =16≡5 5 2 =32≡10 6 2 =64≡9 7 2 =128≡7 4 2 =256≡3 9 2 =512≡6 10 2 =1024≡1 8  mod 11 . Como ℤ p tem * p 1 elementos. Logo existe um único inteiro p j . então b ∈ℤ* . 0≤ j ≤ p 1 . p 1 }. 144 .

p  x  ind a . p  xy  ≡ ind a . A próxima tabela mostra os valores de ind 2 . p  x r  ≡ r ⋅ind a . ind 2 . temos que ind a . p  y   mod  p 1 ind a . p  x  ind a . podemos verificar que esta função ind a . pois 9 0 2 =1 e ind 2 . Em relação à terceira.A tabela anterior indica também os valores de ind 2 . p a =1 ind a .p  x   mod  p 1 2) 3) 4) As duas primeiras afirmações são conseqüências diretas da definição. p  xy   mod p  . a congruência anterior mostra que: v mod p ⇒ u ≡v  mod p 1 . p  y  a ≡x  mod p  e a ≡ y  mod p . p  x  ind a . Ao multiplicar as duas congruências obtemos: ind a . p  y  a ≡ xy ≡ a u ind a . 11  x  . 11 6=9 . x 1 0 2 1 4 2 8 3 5 4 10 5 9 6 7 7 3 8 6 9 ind 2 . Compare com os valores da tabela anterior para ter certeza de que entendeu a definição de índice. 11  x  Agora. p 1=0 ind a . Vale que: 1) ind a . 145 . Por exemplo. Mas. E 2 ≡6  mod 11  . como a é raiz primitiva módulo p . 11 1=0 . 11  x  para todos os valores de x entre 1 e 10. então a ≡a Portanto. p  x  satisfaz propriedades semelhantes às propriedades do logaritmo listadas anteriormente.

p  x  ≡ r ⋅ind a . p  y   mod  p 1 . As quatro afirmações listadas anteriormente. 146 . 11 8=3 Por outro lado. em virtude da variedade de aplicações em criptografia que usam os conceitos de raiz primitiva módulo n . ind 2 . Você vai estudá-las na próxima aula. os grupos e grupos cíclicos. Exemplo: Na tabela anterior. válidas para a função ind a . p  x  : ℤn  ℤ n 1 então a função possui as mesmas propriedades do logaritmo usual. mostram que. p  xy  ≡ ind a . ind a . e o logaritmo discreto de base a módulo p . São conhecimentos importantes. 11 9=6 e ind 2 . Devido à complexidade dos temas levantados durante a aula 13. Em relação à quarta afirmação. 11 63=ind 2 .ind a . 11 7=67=13≡3  mod 10  . p  x  ind a .p  x   mod  p 1 . para x =9 e y =7 temos: ind 2 . p  x  . de acordo com a terceira afirmação. Esta função é chamada logaritmo discreto de base a módulo p e tem várias aplicações interessantes em criptografia. basta fazer r x = y na terceira afirmação e aplicá-la novamente. 11 9⋅7=ind 2 . segue uma dica: leia algumas vezes os pontos abordados até compreendê-los totalmente. se definirmos esta função como * ind a . 11 7=7 ind 2 . 11 9 ind 2 .

p  x  com a =2 e p =13 . 2) Calcule: a) a ordem de 3 módulo 8 . 147 .Atividades 1) Encontre todas as raízes primitivas módulo 18 . b) a ordem de 5 módulo 16 . 3) Elabore uma tabela com todos os valores da função ind a . c) a ordem de 7 módulo 20 .

Dado um inteiro n . em que p é um primo ímpar. raiz primitiva módulo n e sobre o problema do logaritmo discreto. então os p 1 elementos 2. então existe uma raiz primitiva b módulo p . caso possamos testar facilmente se o grupo ℤn dos inteiros inversíveis módulo n é cíclico de ordem n 1 . tal que b tenha ordem inteiro b inversível módulo n .Aula 14 – Aplicações à Criptografia Nesta aula. p  e 2p  . Se b n 1≡1 mod n  e n 1 não é ordem de b . Como b tem ordem  p =p 1 . então n 1 é um múltiplo da ordem de 148 . b b . b são todos não-congruentes módulo p . caso b possua n 1 . * * * A questão é como provar que ℤn é cíclico de ordem n 1 . que ℤ p é cíclico. e somente se. Em particular. ordem Dado um n 1 . então b n 1 ≡1 mod n  e n 1 é o menor expoente. então podemos testar a primalidade de n . o que mostra que ℤ* ={b . você vai estudar as aplicações à criptografia dos conceitos vistos nas aulas anteriores. Texto 58 – Teste de Lucas Na última aula. 3. b p 1 } . b 2. b 3. se p é primo.  . p Isso demonstra. Isso é o mesmo que perguntar se existe algum inteiro b inversível módulo n . p 1 b . sobre ordem módulo n . observamos que existe uma raiz primitiva módulo n se. Esse fato pode ser usado como teste de primalidade. portanto. 4 . n for da forma 2 .

tal que b n 1 p ≡1 mod p  . podem provar que n é composto. então b tem ordem n 1 . Deste modo. Há duas dificuldades claras para a aplicação do teste de Lucas: 1ª) Temos que conseguir fatorar n 1 . se encontrarmos uma base b tal que . então existe algum divisor primo de n 1 . Teste de Lucas Seja n um e b um inteiro positivo ímpar inteiro tal que n 1 p 2≤b ≤n 1 . O teste de Lucas consiste em encontrar uma tal base b . Como k divide n 1 . Concluímos que. existe k ∈ℤ tal que n 1=k⋅ord n b  . então p também é divisor de n 1 .b . o que mostra que n é primo. temos que: n 1 p k ord n  b  p n 1 k = ord n b  ⇒ b p p = b  ≡1 mod p  . Assim.b n 1≡1 mod n  . Se b n 1≡1 mod n  e se todo fator primo p de n 1 vale b n é primo. 149 . mas não que n é primo.para todo divisor primo p de n 1 não vale b n 1 p ≡1 mod p  . então Observe que o teste de Lucas é um teste que prova que n é primo. se b n 1≡1 mod n  e a ordem de b não é n 1 . apresentados anteriormente. ou seja. dado inteiro n . Os testes de Fermat e Miller-Rabin. Seja p um divisor primo de k . 1 mod p  .

Já falamos deles. Temos que 1170 ≡1 mod 71 . o que possibilita a aplicação do teste de Lucas. É mais fácil provar que 71 é primo tentando dividi-lo pelos primos menores que  71≈8. Em relação à primeira dificuldade: muitos primos n grandes interessantes são tais que n 1 pode ser fatorado facilmente. Veja que. o teste de Lucas é muito eficiente para verificar a primalidade dos chamados números de Mersenne. No entanto. mas não é suficiente. Assim. Esta é uma das razões pela qual os maiores primos conhecidos sejam os de Mersenne. 150 . =14 e =10 . para que M n seja primo. o que permite provar a primalidade de primos de Mersenne muito grandes. que n seja primo. é necessário. Como nenhuma delas é congruente a 1 módulo 71 . resulta que 11 tem ordem 70 e 71 é um inteiro primo. O exemplo anterior é bastante artificial. 1 mod 71 .43 . você se lembra? Os números de Mersenne são números da forma M n =2 1 . 1 mod 71 . p n O teste de Lucas é muito eficiente quando aplicado a números desta forma. Exemplo: Seja n =71 e b =11 . 2 5 7 Temos: • • • 1135 ≡70 11 ≡54 11 ≡32 10 14 1 mod 71 . temos que analisar apenas os inteiros da forma M p =2 1 para p primo. devemos testar as classes módulo 71 de 11 elevado aos expoentes 70 70 70 =35 .2ª) É preciso encontrar a base b correta. Como 70=2⋅5⋅7 .

que trabalhava para o serviço secreto britânico. . Alice e Bob combinam usar um certo primo p e uma certa raiz primitiva g módulo * p . Seja g um elemento primitivo módulo p . Foi publicado pela primeira vez em 1976 por Whitfield Diffie and Martin Hellman. Você pode conferir os primos recordes no endereço http://primes. Bob calcula  g   =g   mod p  . incluindo os quatro primeiros. O esquema de troca de chaves funciona da seguinte maneira: suponha que Alice e Bob estejam se comunicando por um canal inseguro e desejam combinar uma chave secreta para utilizar em algum sistema criptográfico simétrico. g 2.edu/largest.Dos dez maiores primos conhecidos atualmente. onde p é primo.utm. sete deles são primos de Mersenne. 3. Os atacantes podem conhecer p e g . No entanto havia sido descoberto. 2. Bob escolhe um inteiro aleatório  e envia g  mod p  a Alice. É baseado no problema do logaritmo discreto. A forma mais simples do esquema usa o grupo multiplicativo ℤ p dos elementos inversíveis módulo p . Qualquer raiz primitiva módulo p é um gerador do grupo. 1. g p 1 }. podemos escrever: * ℤ * ={g . Alice calcula  g   =g   mod p  . Alice escolhe um inteiro aleatório  e envia g  mod p  a Bob. Texto 59 – Esquema de troca de chaves de Diffie-Hellman O esquema de troca de chaves de Diffie-Hellman é um protocolo criptográfico que permite que dois participantes possam combinar uma chave secreta comunicando-se através de um canal inseguro. p Dizemos que g é um gerador para o grupo cíclico ℤ p . mas mantido em sigilo. anos antes pelo matemático Malcom Williamson. 5.html#biggest. g 3. Já vimos que este grupo é cíclico. 4. 151   .

Para calcular g   mod p  . criptografá-la novamente e enviá-la a outro. em que p é primo. Exemplo 1. sendo inserido em alguns protocolos criptográficos. p 1=2q tem um fator primo grande. Repare que o esquema anterior não envolve uma forma de autenticação. Se for utilizado algum outro esquema para garantir autenticação. modificá-la.Dessa forma. tendo como base um gerador de G. Se o primo p e os inteiros a e b são grandes o suficiente. O atacante poderia passar-se por Bob e combinar uma secreta com Alice. Se for utilizado G =ℤ p . onde * q também é primo. o sistema de troca de chaves de Diffie-Hellman é considerado bastante seguro. calcular o logaritmo discreto de g  mod p  ou de g  mod p  na base g . isto é. Alice e Bob escolhem o primo p =31 e a raiz primitiva módulo 31 dada por g =3 . poderia interceptar e modificar todas as comunicações. combinar chaves secretas distintas com Alice e Bob e passar a receber a mensagem de um deles. o atacante teria que conhecer também o valor de  ou de  . Antes de finalizar esta seção.g  . Assim. Nesse caso. vamos fazer um exemplo prático. Aliás. ainda que com números artificialmente pequenos. os dois conhecem o valor de g   mod p  . g  . O esquema de Diffie-Hellman é bastante utilizado na prática. que são da forma p =2q1 . então G tem ordem p 1 . decifrá-la. E qualquer atacante que interceptar toda essa comunicação terá acesso somente a g . caso contrário é bem fácil resolver o problema do logaritmo discreto. 152 . É importante que a ordem do grupo multiplicativo G utilizado seja um primo ou tenha algum fator primo grande. uma boa escolha são os chamados primos de Sophie German. O algoritmo pode ser implementado da mesma forma com qualquer grupo cíclico G e gerador g . então este problema é computacionalmente complexo.

Bob calcula 2517 mod 31=5 mod 31 . Esta verificação pode ser feita usando o programa GP/Pari.31=Mod 25. O grupo * G tem ordem p 1 . Este algoritmo vem sendo muito utilizado atualmente. verifique esta congruência. 3. O gerador g pode ser qualquer raiz primitiva módulo p . o grupo das classes inversíveis módulo p . Confira os passos do algoritmo a seguir.31=30. Alice calcula 2210 mod 31=5 mod 31 . mas não a mais segura. é escolher um p primo e G =ℤ p . Faz parte de diversos sistemas criptográficos. e de um gerador g de G.31 . incluindo o software livre GNU privacy guard. 5. de ordem n . 153 . o algoritmo começa com a escolha de um grupo cíclico G . Alice escolhe o inteiro a=10 e envia 310 ≡25 mod 31 . e de várias implementações do PGP. Assim como no esquema de troca de chaves de Diffie-Hellman. Usando GP/Pari. Verifique que znorder Mod 3. O comando znorder x  dá a ordem de x módulo n . A chave secreta combinada entre os dois é 5 . verifique que Mod 3 ^ 10.Verifique que g =3 de fato é raiz primitiva módulo 31 . Bob escolhe o inteiro b =17 e envia 317 ≡22 mod 31 . 4. proposto pelo criptógrafo egípcio Taher Elgamal em 1984. Utilizando GP/pari. Uma escolha simples. Texto 60 – ElGamal O algoritmo ElGamal é um algoritmo criptográfico assimétrico baseado no esquema de troca de chaves de Diffie-Hellman. 2.

5. Este é o texto claro original. o grupo G . A segurança do algoritmo ElGamal reside na dificuldade do problema do logaritmo discreto para um grupo cíclico G . não é considerada segura. A chave pública de Alice é G . h  . A escolha G =ℤ p . isto é. Alice usa sua chave secreta x e calcula c 2left  ¿  1 c1 x . Processo de cifragem de uma mensagem 4. 0≤x ≤n 1 . 3. de uma forma bem conhecida por todos. n . Alice escolhe. de forma aleatória. com p primo. A chave secreta de Alice é o inteiro x . Bob codifica a mensagem como um elemento de G . só ela pode calcular c1 x c 2left  ¿  1 . e consegue a chave pública de Alice.g . um inteiro x . porque: y c 2left  ¿  1 =M ⋅h y ⋅  g y  x 1  = M⋅ h g xy =  M⋅ g g xy x  y = M ⋅g g xy xy =M Como só Alice conhece a chave secreta x .Processo de geração de chaves 1. Alice calcula h =g x . Processo de decifragem da mensagem c1 x 7. dados gerador g ∈G e um elemento * x h =g . de ordem n . Bob quer enviar a mensagem M para Alice. sua ordem n . e um gerador g do grupo. 0≤x ≤n 1 e calcula c 1=g y e c 2=M⋅h y 6. Bob envia o texto cifrado c 1. c 2  para Alice. Bob escolhe aleatoriamente um inteiro y . 2. 154 . Alice escolhe um grupo cíclico G . o gerador escolhido g e o elemento h ∈G . Há vários modos de escolher o grupo G . que é o de calcular o expoente x .

Como todo sistema de assinatura digital. Trata-se. - Texto 61 – Algoritmo de assinatura digital Há diversos sistemas de assinatura digital de chave pública que estão baseados na dificuldade do problema do logaritmo discreto. adotado como padrão em 1993 e confirmado como padrão. assinatura de uma mensagem. verificação da assinatura. em 1996 e 2000. 155 .Uma opção interessante é um subgrupo de ℤ p . a expert em criptografia Alice. uma pública outra privada. que é muito mais rápido. p e usar o subgrupo G ={g . Suponha que nossa velha conhecida. Esta chave será utilizada por um sistema simétrico. O DSA é um padrão de assinatura digital adotado pelo governo americano. Foi proposto pelo NIST (National Institute of Standards and Technology) em 1991. com q primo. queira enviar uma mensagem M ao seu correspondente usual Bob.  . então. sempre disposto a testar novos sistemas criptográficos. que tenha ordem q . é possível optar por um elemento g ∈ℤ* . e utiliza criptografia simétrica para cifrar e decifrar a mensagem. com q elementos. Se o primo p é escolhido de forma que * p =2 q 1 . O sistema usa um par de chaves.g 2. divide-se em três partes: geração das chaves pública e privada. Vamos agora descrever o sistema. O sistema ElGamal é tipicamente utilizado para combinar uma chave entre duas partes. Um sistema que merece atenção especial é o DSA – Digital Signature Algorithm – que passamos a descrever agora. com pequenas modificações. de um sistema de criptografia híbrido: - usa criptografia assimétrica para combinar a chave.g q } .

Gerar um inteiro aleatório k . 2. Alice deve fazer os seguintes procedimentos: 1. tal que h mod p  1 . Alice deve: 1. o primo p deve ter sido escolhido de tal forma que p 1 tenha um divisor primo de 160 bits.q . g  e utilizar outros valores de x e de y =g x mod p . Escolher um primo p de L bits. recomenda-se usar apenas o valor L=1024 . Selecionar um primo q de 160 bits que seja divisor de p 1 . Esse inteiro será usado apenas uma vez por mensagem. 156 . maior será a segurança do sistema. Quanto maior o valor de L .q . É claro que. 2L 1 p 2L . Seja g = h mod p . y  . onde L é um múltiplo de 64 entre 512 e 1024 . Alice pode usar os mesmos valores  p . Escolher o inteiro 5. Calcular r =g k mod p mod q . ou seja. Hoje. x tal que 0x q . Assinatura Para assinar uma mensagem M . 4. Para se comunicar com outras pessoas. 1h p 1 . Calcular y =g x mod p . Sua chave privada é x .Geração das chaves Para a geração das chaves. g . A chave pública de Alice é  p . 2. 1k q . para que isso possa ser feito. Escolher p 1 q o inteiro h . p 1 q 3.

Calcular v =g 1⋅y mod p mod q . Alice pode usar o RSA. Calcular w =s  1 mod q . u u2 4. Calcular s =k 1 H M x⋅r mod q . A assinatura é o par r . r e s . como g = h mod p . s  de Alice. Agora. 2. Bastante trabalho. obtido pelo uso da função de hash SHA-1. onde M é a mensagem a ser enviada. Bob recebe estes valores. Bob precisa: 1. 3. usando algum sistema criptográfico. não é? Por que funciona? p 1 q Para começar. Calcular u 1=H M ⋅w mod q . utilizando a chave pública de Bob. então: p 1 q g q ≡ h q⋅ ≡ h p 1 ≡ 1 mod p . ele deve verificar a assinatura de Alice. A assinatura será válida se v =r . e H M  é o hash de M . decodifica e tem acesso a M . Alice envia para Bob a mensagem M e a assinatura r . s  .3. onde H M  é o hash da mensagem M usando a função SHA-1. 157 . Por exemplo. Verificação Para verificar a assinatura r . Calcular u 2=r ⋅w mod q . s  .

158 . você vai estudar as curvas elípticas e verá que todos estes sistemas criptográficos descritos possuem versões que as utilizam. por último. então v =r . o sistema de criptografia de mensagens ElGamal. se a assinatura for correta. obtemos k ≡ H M ⋅w x⋅r⋅w mod q . temos k⋅s 1 s ≡ k⋅s 1 k 1 H M x⋅r  mod q ⇒ k ≡ H M s 1x⋅r⋅s 1 mod q . Iniciamos esta aula com o teste de primalidade de Lucas e depois apresentamos três sistemas criptográficos de chave pública que usam o problema do logaritmo discreto: - o sistema de troca de chaves de Diffie-Hellman. o sistema de assinatura digital DSA.em que usamos o pequeno teorema de Fermat. e. Substituindo w ≡s 1 mod q . então g tem ordem q módulo p . então k g ≡  g H M ⋅w⋅y r⋅w mod p  mod q ≡ g 1⋅y u u2 ≡ g H M ⋅w x⋅r⋅w mod q H M ⋅w ⋅g x⋅r⋅w mod q ≡ g  u u2 mod p  mod q Como v =g 1⋅y mod p mod q e k r =g mod p mod q . Como s =k 1 H M x⋅r mod q . Como g tem ordem q e k ≡ H M ⋅w x⋅r⋅w mod q . Na próxima aula. Como q é primo e g q ≡1 mod p . então ao multiplicar os dois lados da congruência por k⋅s 1 . então a congruência anterior nos informa que.

Alice escolhe o inteiro a=9 e Bob escolhe o inteiro b =7 . Cada um mantém sua escolha em segredo.Atividades 1) Usando o teste de Lucas com a base b =3 . prove que n =31 é primo. 2) Alice e Bob querem combinar uma chave secreta usando o esquema de Diffie-Hellman. Eles escolhem o primo p =23 e o gerador g =5 . Como ocorre a troca de chaves e qual é a chave combinada? 159 .

A desvantagem é que a implementação é mais complexa. Isso significa que seu gráfico não tem auto-interseção e não possui as chamadas cúspides. Este estudo é de grande importância na Teoria dos Números e vem sendo muito pesquisado atualmente. falar sobre as aplicações em criptografia. mostrar a existência de um grupo formado por certos pontos da curva e. em 1985.Aula 15 – Criptografia com o uso de Curvas Elípticas Chegamos ao último tópico desta disciplina: as curvas elípticas. Pode-se mostrar que uma curva dada pela equação y 2=x 3 ax b é não-singular se. que são pontos onde o gráfico da curva não é suave. Diffie-Hellman e o Algoritmo de Assinatura Digital podem ser modificados para o uso de curvas elípticas. a curva é singular. vamos definir curvas elípticas. com chaves menores. Assim. e somente se. A vantagem desta utilização é que por ela se consegue o mesmo nível de segurança. Como veremos. isto é. Nesta aula. seu gráfico não é suave sem auto-interseção. do que o obtido nos sistemas de chaves públicas tradicionais. Para alguns valores de a e b . o valor de =4a 27b 3 2 160 . nem toda curva de equação y 2=x 3 ax b é um curva elíptica. sistemas como ElGamal. A utilização de curvas elípticas em criptografia foi proposta inicialmente pelos matemáticos Neal Koblitz e Victor Miller. em seguida. Texto 62 – Curvas Elípticas Uma curva elíptica é uma curva plana definida por uma equação do tipo y 2=x 3 ax b e que seja não-singular. existindo uma “quina”.

A multiplicação tem de ser comutativa.html.wolfram. A soma deve ser comutativa. uma curva elíptica pode estar definida sobre qualquer corpo. As figuras a seguir mostram os gráficos de algumas curvas elípticas. estamos interessados em curvas elípticas definidas sobre corpos finitos. Em criptografia. possuir elemento neutro (um) e todo elemento não-nulo deve possuir uma inversa (para todo x ≠0 deve existir o elemento 1/ x ).Corpos Finitos Um corpo é um conjunto com duas operações ― normalmente soma e multiplicação ― que satisfazem às propriedades usuais da soma e da multiplicação de números reais. ou seja. Acesso em: 25 ago. os valores dos parâmetros a e b são números reais e os valores das variáveis x e y na equação são reais. 2005) Como você pode observar. o gráfico de uma curva elíptica pode ter um ou dois “pedaços”. O parâmetro  é chamado discriminante da curva. Figuras elaboradas com o uso do software Mathematica (Fonte: http://mathworld. Os gráficos anteriores são de curvas definidas para os reais. Além disso. Mas o que é um corpo finito? Texto 63 . ter elemento neutro (zero) e elemento simétrico (para todo x no conjunto deve existir um x ). 161 .com/EllipticCurve.for diferente de 0 . associativa. No entanto. associativa.

Você já trabalhou bastante com um corpo finito: para p primo. todos os corpos com q elementos são equivalentes de certa maneira. para defender a honra de uma mulher. ou seja. Isso significa que existe uma aplicação bijetiva entre estes corpos que preserva a soma e a multiplicação. como se houvesse apenas um. Existe um ramo muito bonito da álgebra chamado Teoria de Galois. dos reais ℝ e dos complexos ℂ são exemplos de corpos. significa “corpo de Galois”1. então q é uma potência de algum primo p . em homenagem ao matemático francês Évariste Galois. para algum primo p e inteiro m . 162 . A notação GF  p m  vem da expressão em inglês “Galois Field” que. que fez contribuições relevantes para a teoria dos corpos. Este corpo é denotado GF  p m  ou F p m . Agora. Galois morreu aos 20 anos em um duelo. Se F é um corpo finito com q elementos. o conjunto ℤ p . as operações de soma e de produto de classes são um corpo finito com p elementos. em português. vamos voltar ao estudo das curvas elípticas. aparentemente. q = p m .precisa ser válida a propriedade da distributividade da multiplicação em relação à soma ( x ⋅ y z =x ⋅y  x ⋅z ). Além disso. Esta “equivalência” é dada pela noção de isomorfismo. Dois corpos finitos com mesmo número de elementos q são isomorfos. Um corpo finito é formado por um número finito de elementos. 1 A estrutura algébrica corpo é chamada em inglês de “field”. Por causa dessa equivalência. que trata dos corpos e soluções de polinômios. é comum falar-se no corpo finito de p m elementos. O conjunto dos racionais ℚ .

163 . Os sistemas criptográficos de curva elíptica utilizam como grupo G o grupo dos pontos da curva. Observe a figura a seguir. Lembre-se que um grupo é um conjunto com uma operação (tipicamente soma ou multiplicação) que é comutativa. Antes de ingressar na criptografia. é preciso que você compreenda este grupo de pontos da curva. Uma implementação simples desses sistemas usa G =ℤ p ou um subgrupo cíclico dele. associativa. Descrição do grupo de pontos Dados dois pontos P e Q ponto em uma curva elíptica. podemos identificar de maneira única um * R como o terceiro ponto de interseção da reta que passa por P e Q com a curva. possui elementos neutro (zero) e conjunto há um x ). Por isso.Texto 64 – Grupo de uma Curva Elíptica Um aspecto importante sobre as curvas elípticas é a possibilidade de definir uma operação de soma nos pontos da curva. vamos descrevê-lo para seu melhor entendimento. há uma escolha inicial de um grupo cíclico G . simétrico (para todo x no Nos sistemas criptográficos de Diffie-Hellman e ElGamal. O conjunto de pontos obtido com esta operação é um grupo.

Se a reta que passa por P e Q for tangente à curva em algum dos pontos. esse será considerado o terceiro ponto de interseção R . Essa noção de ponto no infinito é importante para podermos definir o grupo dos pontos na curva. Esse ponto ocupa o papel do 0 (elemento neutro) do grupo. toda reta vertical (paralela ao eixo y ) passa pelo ponto no infinito. Dessa forma. Se a reta que passa por P e Q é vertical. a seguir. o terceiro ponto de interseção é o próprio Q . quando P . Podemos. Na próxima figura. 164 . assim. As figuras. mostram os dois casos em que o terceiro ponto de interseção é o ponto no infinito. Q e R são pontos da curva e estão em uma mesma reta. definir uma operação de soma ( + ) nos pontos da curva da seguinte forma: consideramos o ponto no infinito como o elemento neutro 0 da soma e dizemos que P Q  R =0 . então definimos o terceiro ponto de interseção como o “ponto no infinito”.

Caso R 1 e R 2 estejam em uma reta vertical.org/wiki/Elliptical_curve. ou seja. traçamos a vertical que passa por R .Nas quatro figuras anteriores. então P Q  R =0 . Acesso em: 25 ago. R 2 = R 1 . Veja na figura a seguir: 165 . então R 1 R 2 0=0 . O ponto em que essa vertical corta a curva é o ponto R =P  Q . resultado é que. Em seguida. para encontrar o ponto P Q devemos traçar a reta O terceiro ponto de interseção com a curva é o ponto R =  P Q  . Q e R estão na mesma reta. se P . O . 2005) Desse modo. dados pontos P e Q que passa por P e Q .wikipedia. R =  P Q  . temos as seguintes somas: (Fonte: http://en. ou seja.

Esse conjunto. este problema é o seguinte: dados o grupo cíclico G e um gerador g deste grupo. Texto 65 – Criptografia de Curvas Elípticas No texto anterior. Agora que possuímos um grupo para pontos de uma curva elíptica. os sistemas criptográficos de chave pública de Diffie-Hellman. y  da curva com x . algoritmo de assinatura digital (DSA). forma um grupo. pontos que definimos. como calcular x . com a operação de soma de 166 . dadas as coordenadas dos pontos P e Q . forneça as coordenadas do ponto P Q . Não é difícil encontrar uma fórmula que. definida sobre um corpo finito GF  q  . é dada por uma equação nãosingular y 2=x 3 a x b . Esse mesmo grupo pode ser definido algebricamente. Recordando. vamos voltar à nossa criptografia. podemos definir k ⋅P . utiliza um grupo cíclico G . em que a . como a soma P P P com k fatores. definimos uma operação de soma para pontos de uma curva elíptica. Como você se recorda. Aqui. ElGamal. definida sobre um corpo finito GF  q  . b ∈ GF q  . para k inteiro 2P=P P 3P=P P P e assim por diante. Seja agora P um ponto de uma curva elíptica E . A segurança desses sistemas está na dificuldade do problema do logaritmo discreto. Em criptografia usam-se curvas elípticas definidas sobre corpos finitos. Assim: . Uma curva elíptica E . e dado h =g x . o interesse está no conjunto dos pontos  x .Agora que definimos a soma de dois pontos P e Q positivo. y ∈GF  q  . entre outros.

2P . definimos uma operação k ⋅P para qualquer k inteiro. com o uso de curvas elípticas. podemos formular sistemas de chave pública com curvas elípticas modificando os sistemas usuais. Como estamos trabalhando em um corpo finito. Ou seja. existirão elementos repetidos. O menor n tal que n⋅P =0 é a ordem do ponto P no grupo dos pontos da curva. Isso resulta que o conjunto {P . Alice e Bob escolhem uma curva elíptica E e um ponto P de E . para i ≠ j . temos iP = jP . nP } é um grupo cíclico de ordem n gerado por P. O sistema de troca de chaves de Diffie-Hellman. 3P=P P P etc. Esta informação não 167 . y  possíveis. 3P . O problema do logaritmo discreto para curvas elípticas é o seguinte: dados pontos P e Q =k ⋅P em uma curva elíptica sobre um corpo finito. pois há apenas um número finito de pontos  x . como determinar o valor do inteiro k ? Acredita-se que esse problema seja mais complexo que o do logaritmo discreto. em algum momento.  n 1 P . 2P . funciona da seguinte maneira: 1. o que mostra que  i j ⋅P =0 . kP .  .Lembre-se que definimos: 2P=P P .  . Em aplicações criptográficas. Dessa forma. que são usados nos sistemas de chave pública tradicionais. na seqüência P . 3P . Ao utilizar o grupo de uma curva elíptica. um grupo como este é utilizado no lugar dos subgrupos cíclicos de * ℤn .

Realizar as operações necessárias para os cálculos citados anteriormente ― soma de pontos em curvas elípticas ― é um processo mais lento do que efetuar a exponenciação módulo um primo.é secreta. Basta substituir a operação de exponenciação módulo p por soma de pontos em um grupo cíclico de uma curva elíptica. o que na prática compensa a maior complexidade das operações. No entanto. aleatoriamente. enquanto que o ponto k A⋅P é sua chave pública. 5. Diffie-Hellman e para o RSA. vista anteriormente. Esse ponto é a chave secreta combinada entre os dois. Alice escolhe. um inteiro k A e envia o ponto k A⋅P para Bob. Essencialmente todo sistema de chave pública pode ser adaptado para o uso de curvas elípticas. como o problema do logaritmo discreto para curvas elípticas é mais complexo. O inteiro k A é a chave secreta de Alice. há versões para curvas elípticas dos algoritmos ElGamal. Alice calcula o ponto k A  k B P = k A⋅k B  P . 4. Assim. um inteiro k B e envia o ponto k B⋅P para Alice. que é a operação utilizada nos sistemas tradicionais. o mesmo nível de segurança pode ser conseguido com uma chave menor. Bob escolhe. A mesma adaptação simples. Bob calcula o ponto k B  k A P = k A⋅k B  P . 168 . Uma chave menor implica em operações mais rápidas. de forma aleatória. 2. Existem também vários algoritmos utilizados para assinatura digital que usam curvas elípticas. 3. do sistema de Diffie-Hellman para usar curvas elípticas pode ser feita com outros sistemas de chave pública.

oferece a mesma segurança que os sistemas usuais. vários detalhes na implementação destes sistemas não serão discutidos neste momento. Como exemplo. como você deve ter notado. O algoritmo de troca de chaves Diffie-Hellman de curva elíptica (ECDH). as iniciais EC vêm de Elliptic Curve. abordamos um ponto bastante recente e importante da criptografia de chave pública: o uso de curvas elípticas. 3. O algoritmo de assinatura digital de curva elíptica (ECDSA . Vários tópicos relacionados aos assuntos abordados nesta aula são focos de ativas pesquisas matemáticas atuais. é mais complexa que a matemática do RSA e dos sistemas baseados no problema do logaritmo discreto (como Diffie-Hellman e ElGamal). O uso de curvas elípticas permite um grau muito maior de segurança para chaves de mesmo tamanho que os sistemas de chave pública usuais.Elliptic curve digital signature algorithm). 2. 5. Um algoritmo de troca de chaves denominado Menezes-Qu-Vanstone de curva elíptica (ECMQV). mas com a utilização de chaves menores. 169 . o que favorece implementações mais rápidas destes algoritmos. O algoritmo simétrico AES. Dessa forma. a agência de segurança americana NSA (National Security Agency) anunciou a adoção da criptografia de curva elíptica como parte dos padrões de segurança do governo norte-americano. as escolhas da curva elíptica E e do ponto P devem atender à exigência de que P tenha como ordem um primo grande. Em fevereiro de 2005. A função de Hash SHA (secure hashing algorithm). Nesse modelo consta: 1. Na última aula desta disciplina. A matemática envolvida. A NSA adotou um conjunto de sistemas criptográficos que foi chamado de Suite B . Na sigla.Por sua complexidade. 4.

Atividades 1) Defina curva elíptica. como algoritmos de fatoração de inteiros. 2) Como se define a operação de soma de pontos em uma curva elíptica? Qual é o zero desta soma? 3) Como o grupo dos pontos de uma curva elíptica é usado em sistemas criptográficos? 4) Quais são as vantagens do uso de sistemas criptográficos de curvas elípticas? 170 . Há ainda outras aplicações das curvas elípticas que interessam à criptografia.Enfim. O importante é compreender o que é uma curva elíptica e como elas são utilizadas nos modernos sistemas criptográficos de chave pública. o assunto é complexo.

com/~weidai/cryptlib. Boca Raton. Para saber mais sobre este tema e sua utilização em criptografia. 2003..: Chapman & Hall/CRC. o endereço é http://www. incluindo algoritmos de curvas elípticas.eskimo. você estudou as curvas elípticas. Berlim: Springer Verlag. Para acessar esses programas. Elliptic curves: number theory and cryptography. Website Há implementações de muitos algoritmos criptográficos com código aberto disponível na internet.html . ! WASHINGTON.Complemente seu estudo Leituras Na última aula. ! HANKERSON. 171 . Alfred J. 2004. FL. Lawrence C. Scott. indicamos duas interessantes referências. Darrel. VANSTONE. A biblioteca de programas “Crypto++” possui implementação de diversos algoritmos simétricos e assimétricos. Guide to elliptic curve cryptography. MENEZES.

18=90.±5. Aula 2 1) a) q = 2e r = 11 b) q = 2 e r = 6 c) q = 1 e r = 75 2) a) mdc 35. 17 e 19. pois dados 3 inteiros n.±10.±2. b) mdc  30. É o único caso possível.250=15750.Soluções das atividades Aula 1 1) D 10={±1. que afirma que todo inteiro par pode ser escrito como soma de dois primos. 6 = 3+3.18=6 e mmc  30. Um dos problemas não-resolvidos mais antigos na Teoria dos Números é a chamada conjectura de Goldbach.250=5 e mmc 315. 5 e 7.±5. Esta conjectura foi proposta em 1742. 10 = 5+5 etc. em uma carta de Goldbach para Euler. É interessante que não se sabe se há infinitos primos gêmeos. 5 e 7. c) mdc 315. 29 e 31.12=420. 4) 4 = 2+2. n+2 e n+4 é fácil ver que um deles deve ser múltiplo de 3. b =11011 mdc  a . 11 e 13. 3) Há o caso 3.±20 }=D 20 2) 3 e 5. b =17325 172 .12=1 e mmc 35.±2. b =33 e mmc a . 8 = 3+5.±10} ⊂ {±1. b =7 e mmc a . Aula 3 1) a) b) mdc  a .±4.

mas é transitiva. R 5 é reflexiva. não é simétrica. 5. c) 481 não é primo (é divisível por 13). Aula 5 1) 1. É a relação de igualdade. 4. 3. é o 50º primo. 2. R 3 é reflexiva. R 4 não é reflexiva. 2) a) Verdadeira. Este é o 200º primo. b) Verdadeira. 173 . d) Verdadeira.Aula 4 1) a) 229 é primo. é simétrica e não é transitiva. b) 1223 é primo. R 1 é relação de equivalência: é reflexiva. não é simétrica. e) Verdadeira. mas é transitiva. simétrica e transitiva. não é simétrica e não é transitiva. 2) 200=46. Como curiosidade. c) Falsa. R 2 não é reflexiva.

32=2∣20. A solução é x ≡9 mod 11 . c) O resto da divisão de 561 por 7 é 5. 7 . 3) a) O resto da divisão de 2303 por 15 é 8. 2 . 8 } . 4 . 11 . 19}. c) A equação 5 x ≡7 mod 11 possui uma única solução. 7 . o número formado por seus três últimos algarismos for divisível por 8.11=1 . 13 .15=5∤8 . 5 . pois mdc 5. e somente se. 17 . 9 . pois mdc 3. 1) 2) a) A equação 3 x ≡8 mod 15 não tem solução. 174 . As soluções são x ≡10 mod 32 e x ≡26 mod 32 . Aula 7 * *               ℤ9 ={ 1 . 3 . ℤ20 ={1 .Aula 6 1) As tabelas são as seguintes: 2) Um inteiro a é divisível por 8 se. porque mdc 2. b) O resto da divisão de 7250 por 48 é 1. b) A equação 2 x ≡20 mod 32 tem duas soluções.

mdc 15. Aula 9 1) 414 = 4 2  =167 ≡1  mod 15 2) 724 = 72  =4912 ≡ 112≡1 mod 15 3) Temos que calcular 390  mod 91.3) a) a =35 e b =65 . tais que x 2  y 2 ≡6 mod 8.65=5 e 2⋅35 1⋅65=5 . Multiplicando essa congruência por 32 obtemos 36≡ 90≡1 mod 91. 4) A inversa de 45 módulo 91 é 89 . 7 7 2×3 = 7 3  ≡ 72≡49≡ 1 = 7 2×3 2 2 mod 25. Temos: 73=7⋅72=7⋅49≡7⋅ 1≡ 7  mod 25 .  mod 25 . b) a =15 e b =23 . Verifique que não há inteiros x e y . 175 22×3 =7 2×2×2  ≡ 12≡1 . Sabemos que 34 =81≡ 10  mod 91 . mdc 35. Logo 390 = 36  ≡1  mod 91  . 4) Como 24=23⋅3 .23=1 e 3⋅152⋅23=1 . temos que calcular as três potências 73 . Aula 8 1) a) 16 b) 12 c) 4 2) x 2  y 2 8z=6 ⇒ x 2  y 2 ≡6 mod 8. 15 12 7 72×3 e 72 2 ×3 módulo 25.

Como e =23 . Aula 11 1) x ≡67  mod 165 . b) o resto é 11. As raízes primitivas módulo 18 os inteiros que têm ordem 6 módulo 18 . 2) x ≡85  mod 630 . 176 . Aula 13 1) Como 18 =6 . a chave privada d é a inversa de 23 módulo 120 que é 47 (use o algoritmo de Euclides estendido). 3) x ≡41 mod 168 Aula 12 1) Temos n =143=11⋅13 . A mensagem original é P =C d =223 mod 143=85 mod 143 . Então  n =11⋅13=11 13=10⋅12=120.Logo 25 é pseudoprimo forte para a base 7. Aula 10 1) a) 90 =24 b) 250=100 c) 1620=432 3) a) o resto é 17.

Para calcular a chave secreta. 3) x 1 0 2 1 3 4 4 2 5 9 6 5 7 11 8 3 9 8 10 10 11 7 12 6 ind 2 .Calculando as ordens. a ordem de 13 módulo 18 é 2. a ordem de 7 módulo 18 é 3. a ordem de 5 módulo 18 é 6. 13  x  Aula 14 30 30 1) Basta verificar que 330 ≡1 mod 31 e que nenhuma das potências 3 2 =3 15 . 15 6 10 3 ≡16 mod 31 e 3 ≡25 mod 31 . a ordem de 11 módulo 18 é 6. Assim. A chave combinada é 7. Alice faz 9 7 17 ≡7 mod 23 . 2) A combinação de chaves se dará da seguinte forma: Alice envia 59≡11 mod 23 para Bob. a ordem de 17 módulo 18 é 2. 177 . c) a ordem de 7 módulo 20 é 4. 2) a) a ordem de 3 módulo 8 é 2. Este envia 5 ≡17 mod 23 7 para Alice. b) a ordem de 5 módulo 16 é 4. 3 5 =3 6 e 30 3 3 =3 10 é congruente a 1 módulo 31. as raízes primitivas módulo 18 são 5 e 11. Verifique que 3 ≡30 mod 31 . enquanto Bob faz 11 ≡7 mod 23 . obtemos: • • • • • • a ordem de 1 módulo 18 é 1.

4) Sistemas criptográficos de curvas elípticas oferecem o mesmo nível de segurança que sistemas usuais utilizando chaves significativamente menores. Esta reta corta a curva em um terceiro ponto R (caso a reta seja tangente à curva. 3 2 2) Dados pontos passa por P e Q . este é substituído pelo problema do logaritmo discreto para curvas elípticas: dada uma curva elíptica E . dados pontos P e Q em E . 178 . o ponto de tangência é contado duas vezes). sendo Q =k ⋅P .Aula 15 1) Uma curva elíptica é uma curva dada por uma equação y 2=x 3 a x b . em que 4 a 27 b ≠0 . 3) Em sistemas criptográficos que usam o problema do logaritmo discreto. O outro ponto onde esta vertical corta a curva é o ponto P Q . encontrar o valor de k . Traçamos a reta vertical passando por R . O ponto P Q é obtido da seguinte forma: traçamos a reta que e P Q .

Números inteiros e criptografia RSA. J. 2. Página dos Números Primos. 1997. Wikipédia. Rio de Janeiro: IMPA. Handbook of applied cryptography. 1999. Rio de Janeiro: IMPA/SBM. Math World. Departamento de Educação.org/wiki/Elliptical _curve>. William.com>. 2005.ed. 1999. Disponível em: <http://mathworld. Introdução à teoria dos números.C. KOBLITZ.wikipedia.ul.ed. Acesso em 25 ago. Cryptography and network security: principles and practice. José Plínio de O. Berlim: Springer Verlag. Websites Elliptic curve.fc. Disponível em: <http://en. Disponível em: <http://www. Acesso em 25 ago.: CRC Press. 2005.wolfram. Disponível em:<http://pt. enciclopédia livre. SANTOS. STALLINGS.Referências Livros e publicações COUTINHO. 2. Wikipédia. Neal. S. et al.pt/icm/icm98/icm12/Mat_kz. FL. 2005. Faculdade de Ciências.wikipedia. Boca Raton.htm#Marin%20Mersenne>. Jersey: Prentice Hall. N. 2005 Paul Erdös. Algebraic aspects of cryptography. 1998. Elliptic curve. 179 . enciclopédia livre. Acesso em 25 ago.educ. A. MENEZES. Universidade de Lisboa. 1997.org/wiki/Paul_Erd%C3%B6s>. Acesso em 24 ago.

o prof. Rio de Janeiro. onde leciona desde 1992. e Doutor em Matemática pela University of Cambridge (Reino Unido). 180 .Autor Luiz Manoel Silva de Figueiredo Professor adjunto da Universidade Federal Fluminense (UFF). Sua área de doutorado é em teoria dos números e atualmente trabalha com Criptografia. Bacharel em Física pela Universidade Federal do Rio de Janeiro (UFRJ). Luiz Manoel Figueiredo é Mestre em Matemática pelo Instituto de Matemática Pura e Aplicada (IMPA).

Sign up to vote on this title
UsefulNot useful