Professional Documents
Culture Documents
Unica. Tendo demonstrado que um inteiro positivo n 2 admite uma unica maneira de ser escrito
como produto de primos, veremos alguns algoritmos que nos permitem fatorar um inteiro a dado.
Em particular, estudaremos o algoritmo de Fermat, que procura fatores de a proximos `a
a.
Finalizaremos o captulo vendo uma propriedade fundamental dos primos: se um primo p divide
o produto ab, ent ao p divide a ou b. Tal propriedade ser a importante nos captulos posteriores.
No Captulo 3 nos voltaremos para os n umeros primos, estudando algumas tentativas que tive-
mos na hist oria de encontrar f ormulas que gerassem primos. Estudaremos rapidamente f ormulas
polinomiais e formulas fatoriais, mas vamos nos deter por mais tempo nas f ormulas exponenciais,
estudando os n umeros de Fermat e, principalmente, os n umeros de Mersenne. Em relac ao a estes
ultimos, estudaremos sua relac ao com os n umeros perfeitos, rela cao esta estudada desde a Grecia
com Euclides; veremos que todo n umero perfeito par e da forma 2
n1
(2
n
1), onde o n umero
2
n
1 e um primo de Mersenne. Finalmente, remontaremos a demonstrac ao feita por Euclides da
existencia de innitos primos.
No captulo 4 revisaremos rapidamente os conceitos b asicos de relac oes de equivalencia e estu-
daremos a relac ao de congruencia m odulo n nos inteiros, cujo conjunto quociente e denotado por
Z
n
. Veremos algumas aplicac oes do conceito de congruencia, como demonstrar criterios de divisi-
xi
Captulo 0 Introducao
bilidade, determinar o resto de divis ao de potencias e determina cao da existencia de solucoes para
equac oes diofantinas n ao-lineares. Estudaremos, ent ao, quais as condic oes para que um elemento
a Z
n
possua inverso multiplicativo, e introduziremos o conjunto U(n), conjunto das classes
invertveis em Z
n
. Finalizaremos o captulo introduzindo de maneira sucinta o conceito de razes
primitivas de U(n), conceito que, mais a frente, ter a um captulo especco para ser explorado.
No captulo 5 demonstraremos o Pequeno Teorema de Fermat e o usaremos na elaborac ao de
testes ecazes para detectar n umeros compostos, mas que nao funcionam bem para determinar
se um n umero e primo. Estudaremos rapidamente os n umeros pseudoprimos e os n umeros de
Carmichael, para os quais forneceremos uma caracterizac ao.
No captulo 6, estudaremos equac oes e sistemas de equac oes modulares, demonstrando o Al-
goritmo Chines do Resto. Tambem veremos duas aplicacoes deste teorema, uma para o c alculo de
potencias m odulo n, e outra num metodo de partilha de senha de um cofre.
No captulo 7 estudaremos de maneira mais detalhada os grupos, com o exemplo do grupo das
simetrias de um triangulo ret angulo e os grupos aritmeticos. Demonstraremos alguns resultados
gerais para grupos e subgrupos.
No captulo 8 retomaremos o estudo sobre os n umeros de Mersenne e de Fermat. Veremos
estrategias para procurar fatores destes n umeros, e encerramemos o captulo com um teste devido
` a E. Lucas, e aperfeicoado por D. H. Lehmer, para vericar a primalidade de n umeros de Mersenne.
No captulo 9 demonstraremos o teorema da raiz primitiva, veremos uma meneira de calcular
a ordem de um elemento em U(n), e demonstraremos um teste de primalidade que e inspirado no
principal teorema deste captulo, o Teste de Lucas.
Finalmente, no captulo 10, descreveremos o sistema de criptograa RSA, provaremos que
funciona e analisaremos questoes sobre sua seguranca. Finalizamos o texto com alguns comentarios
sobre o algortmo AKS e alguns aspectos de sua rela cao com o sistema RSA.
Durante o desenvolvimento do texto, admitiremos conhecidos:
Princpio da Boa Ordenac ao dos Naturais: todo subconjunto nao-vazio de N possui um
menor elemento.
1o e 2o Princpio de Induc ao Finita: lembramos que estes sao equivalentes ao princpio da
boa ordena cao dos naturais.
Princpio Fundamental da Contagem: se um acontecimento e formado por k est agios su-
cessivos e independentes, com n
1
, n
2
, n
3
, ..., n
k
possibilidades para cada, entao o total de
maneiras distintas de ocorrer este acontecimento e n
1
n
2
n
3
... n
k
.
Tambem convencionamos as seguintes notac oes e denicoes:
N o conjunto dos naturais; Z o conjunto dos inteiros; Z
+
o conjunto dos inteiros positivos;
Z
+
o conjunto dos inteiros nao-negativos; R o conjunto dos n umeros reais; C o conjunto dos
n umeros complexos.
xii
Introducao Secao 0.0
Sendo x R, denotamos por [[x ]] a parte inteira de x, ou seja, [[x ]] e o maior inteiro que e
menor ou igual a x.
Uma particao de um conjunto X e qualquer subconjunto do conjunto das partes de X de
modo que: i) nenhum dos elementos da partic ao e o conjunto vazio; ii) a intersecc ao de
quaisquer dois elementos da partic ao e o conjunto vazio e iii) a uni ao de todos os elementos
da partic ao de X e igual ao conjunto X.
xiii
Captulo
1
Algoritmo da Divisao de Euclides e
Divisibilidade
E inegavel a importancia da Matem atica em nossos dias, principalmente com os avancos na in-
formatica. Atualmente, a troca de informac oes atraves de computadores e usada em praticamente
todos os setores: telecomunicacoes, comercio, ind ustria, etc. Mas em alguns casos, as informac oes
que estao sendo enviadas e recebidas nao podem ser acessveis a qualquer um que interceptar os
dados, por exemplo, na troca de informacoes referentes ` a transacoes bancarias.
E nesse ponto
que a criptograa tem sua importancia. Do grego kryptos, escondido, e graphein, escrita, a
criptograa tem por objetivo codicar uma mensagem que deve ser entendida apenas pelo seu
destinatario.
E possvel encontrarmos registros a respeito da codicacao de mensagens desde a
antiguidade, principalmente mensagens que eram trocadas durante guerras.
Hoje, como a troca de informacoes se d a via computadores, e natural que as maneiras de se
criptografar uma mensagem se fundamentem em n umeros. Estudaremos a Matem atica necessaria
para compreender como funciona o metodo criptogr aco chamado RSA, que tem por par ametros
iniciais dois n umeros primos p e q, mas vamos iniciar nossa discuss ao com algo anterior a n umeros
primos: a divis ao e algoritmo euclidianos.
1.1 Divis ao Euclidiana
TEOREMA 1.1.1. Sejam a e b inteiros positivos. Existem inteiros q e r tais que
a = b q + r e 0 r < b (1.1)
Alem disso os valores de q e r satisfazendo as relacoes acima sao unicos.
DEMONSTRA C
+
. Se a = 1, temos dois casos a considerar.
1
Captulo 1 Algoritmo da Divisao de Euclides e Divisibilidade
1. Se b = 1, basta tomar q = 1 e r = 0.
2. Se b > 1, basta tomar q = 0 e r = 1.
Em ambos os casos as relac oes (1.1) estao satisfeitas.
Suponha agora, como hipotese de inducao, que para a = k, k 1, existam inteiros q e r
satisfazendo
k = b q + r e 0 r < b
Ent ao k + 1 = b q + (r + 1). Como r < b, temos r + 1 < b + 1 r + 1 b, e novamente temos
dois casos a considerar:
1. Se r + 1 < b, basta tomar q
t
= q e r
t
= r + 1 e assim
a = k + 1 = b q
t
+ r
t
, com 0 r
t
< b
2. Se r + 1 = b, temos
k + 1 = b q + b = b (q + 1) = b q
t
+ r
t
onde q
t
= q + 1 e r
t
= 0, e desse modo as relac oes (1.1) estao satisfeitas novamente. Sendo
assim, pelo princpio de induc ao nita, para cada a Z, a 1, existem q e r satisfazendo (1.1).
Resta-nos agora demonstrar a unicidade de q e r.
Suponha que existam q
1
, q
2
, r
1
e r
2
satisfazendo
a = b q
1
+ r
1
e 0 r
1
< b
a = b q
2
+ r
2
e 0 r
2
< b
Se subtrairmos as igualdades acima, membro a membro, obteremos
(q
2
q
1
) b = r
1
r
2
[q
2
q
1
[ b = [r
1
r
2
[
Das desigualdades acima temos que 0 r
1
< b e b < r
2
0, e somando essas desigualdades
obtemos
b < r
1
r
2
< b 0 [r
1
r
2
[ < b
e isso nos leva a 0 [q
2
q
1
[ b < b, e como b ,= 0, podemos escrever 0 [q
2
q
1
[ < 1, o que so e
possvel se q
1
= q
2
. Esta ultima igualdade nos leva imediatamente a concluir tambem que r
1
= r
2
.
Portanto, q e r satisfazendo (1.1) sao unicos.
Os n umeros q e r, cuja existencia foi garantida pelo teorema anterior, s ao chamados de quociente
e resto da divisao euclidiana de a por b, respectivamente.
DEFINI C
AO 1.1.2. Um n umero inteiro b divide outro n umero inteiro a se existe um terceiro inteiro
2
O Algoritmo de Euclides Secao 1.2
c tal que
a = b c.
O inteiro b e dito divisor ou fator de a, e a e m ultiplo de b. Denotamos o fato de que b divide a
atraves do smbolo b[a.
Em outras palavras, um inteiro a e divisvel por outro inteiro b se o resto da divisao euclidiana
de a por b for zero. Da denicao acima j a podemos tirar algumas conclus oes:
1. O unico n umero que divide 1 e o pr oprio 1 ou 1, pois se b ,= 1, n ao podemos encontrar um
inteiro c tal que b c = 1;
2. O 1 e divisor de qualquer inteiro b, pois b = b 1;
3. Todo inteiro b e divisor de 0, pois 0 = 0 b;
4. 0 nao e divisor de nenhum outro inteiro, a n ao ser do pr oprio zero, pois b ,= b 0 = 0
1.2 O Algoritmo de Euclides
Iniciemos com a seguinte denicao:
DEFINI C
AO. Sejam d
1
= mdc(a, b) e d
2
= mdc(b, s).
1. Se d
1
= mdc(a, b), entao d
1
[a e d
1
[b, ou seja, existem m e n inteiros tais que a = md
1
e
b = nd
1
. Temos ent ao
md
1
= nd
1
g + s (mng)d
1
= s
e isto signica que d
1
[s. Se d
1
[b e d
1
[s, temos que d
1
d
2
, pois d
2
= mdc(b, s).
2. Agora, se d
2
= mdc(b, s), entao d
2
[b e d
2
[s, ou seja, existem inteiros p e q tais que b = pd
2
e
s = qd
2
. Obtemos assim,
a = pd
2
g + qd
2
= d
2
(pg + q)
ou seja, d
2
[a. Desse modo, d
2
[a e d
2
[b, e portanto d
2
d
1
, j a que d
1
= mdc(a, b).
Sendo assim, se d
1
d
2
e d
2
d
1
, conclumos que d
1
= d
2
.
LEMA 1.2.3. Sejam a e b inteiros positivos com a b, e denamos uma sequencia de inteiros
nao-negativos da seguinte forma:
1. r
1
= a;
2. r
2
= b;
3. Para cada ndice k, k 2, se r
k
,= 0, entao r
k+1
e o resto da divisao euclidiana de r
k1
por
r
k
. Se r
k
= 0, entao a sequencia termina em r
k
.
Entao a sequencia r
k
e nita e termina em um zero, ou seja, existe um ndice n tal que
r
1
r
2
> r
3
> > r
n
> 0 e r
n+1
= 0.
DEMONSTRA C
AO. Cada r
k
, k 3, e o resto da divisao de r
k2
por r
k1
. Pelo Lema 1.2.2, temos
mdc(r
k
, r
k1
) = mdc(r
k1
, r
k2
).
4
Algoritmo Euclidiano Estendido Secao 1.3
Portanto
r
n
= mdc(0, r
n
) (r
n+1
= 0)
= mdc(r
n
, r
n1
) (pelo Lema 1.2.3)
= mdc(r
n1
, r
n2
)
= mdc(r
3
, r
2
)
= mdc(r
2
, r
1
)
= mdc(a, b)
Assim, para encontrarmos o m aximo divisor comum de dois inteiros a e b, iniciamos dividindo
a por b
(1)
. Essa primeira divisao nos dar a um resto r
1
. Agora dividimos b por r
1
, o que nos
dar a um resto r
2
. Em seguida, dividimos r
1
por r
2
, o que nos dara um resto r
3
. Continuamos
efetuando essas divisoes ate encontrarmos um resto nulo. O ultimo resto nao-nulo (que tabmem e
o quociente da divis ao de resto nulo) e o maximo divisor comum de a e b.
Note que se a e um m ultiplo de b, quando dividirmos a por b j a encontraremos resto zero.
Logo, o mdc de a e b e o pr oprio b, que e o quociente da ultima (e unica) divis ao do processo.
O Algoritmo Euclidiano nos permite calcular o mdc de dois inteiros a e b, mas isso nao e tudo,
ele nos diz mais.
1.3 Algoritmo Euclidiano Estendido
O mdc(a, b) pode ser caracterizado de outra maneira, que nos ser a util na critograa RSA.
TEOREMA 1.3.1. O maximo divisor comum de dois inteiros a e b, a ,= 0 ou b ,= 0, e a menor
combinacao linear positiva de a e b com coecientes inteiros. Em outras palavras, mdc(a, b) e o
menor inteiro positivo da forma ma + nb com m e n inteiros.
DEMONSTRA C
ARIO 1.3.2. Sejam a e b inteiros positivos e seja d o maximo divisor comum entre a e b.
Existem inteiros e tais que
a + b = d
Observamos que tais e n ao sao unicos, pois se e s ao inteiros que satisfazem o corol ario
anterior, entao os inteiros + kb e ka tambem satisfazem, sendo k um inteiro qualquer.
( + kb) a + ( ka) b = a + kab + b kab = a + b = d
Vale tambem comentar que a recproca deste corolario nao e verdadeira, exceto em um caso
particular. Sendo a e b dois inteiros, se existirem outros dois inteiros e tais que a + b = c,
n ao podemos armar que c e o m aximo divisor comum entre a e b, a n ao ser que tenhamos c = 1,
pois neste caso temos a menor combina cao linear positiva possvel.
6
Algoritmo Euclidiano Estendido Secao 1.3
O algoritmo de Euclides pode ser reformulado para que calculemos simultaneamente d, e :
o algoritmo euclidiano estendido. Esta extens ao do algoritmo de Euclides se baseia em escrever
os restos de cada divisao do algoritmo como combinacao linear do divisor e dividendo. Vamos
mostrar como funciona com um exemplo: queremos encontrar o m aximo divisor comum de 91 e
35, e escreve-lo como combinac ao linear. Efetuando as divis oes, encontramos
91 35
21 2
91 = 35 2 + 21
35 21
14 1
35 = 21 1 + 14
21 14
7 1
21 = 14 1 + 7
14 7
0 2
14 = 7 2 + 0
O ultimo resto nao nulo e 7, logo mdc(91, 35) = 7. Agora, para escrevermos 7 como combinac ao
linear de 91 e 35, isolamos os restos das primeiras e substinuindo nas subsequentes.
91 = 35 2 + 21 21 = 91 2 35 (1.3)
35 = 21 1 + 14 14 = 35 21 (1.4)
21 = 14 2 + 7 7 = 21 2 14 (1.5)
Primeiro usamos (1.3) em (1.4)
14 = 35 21 = 35 (91 2 35) = 3 35 91 (1.6)
Agora usamos (1.4) e (1.6) na equa cao (1.5), obtendo
7 = 21 2 14 = (91 2 35) 2 (3 35 91) = 8 35 + 3 91
Assim,
7 = mdc(35, 91) = 8 35 + 3 91.
Pode parecer que para encontrarmos uma combinac ao linear de a e b que seja igual a mdc(a, b),
precisamos primeiramente efetuar todas as divi oes, para depois utilizarmos os resto e quocientes
obtidos. Isso ate pode ser feito, mas dependendo da quantidade de divisoes pode ser muito
trabalho, ou impratic avel do ponto de vista computacional. Mas h a uma outra maneira de im-
plementarmos o algoritmo euclidiano estendido, inventada por D.E. Knuth. A implementacao se
baseia em guardar cada um dos restos obtidos na sequencia das divis oes em termos de a e b sem
esperar chegar ao ultimo resto. Dessa forma, precisamos armazenar apenas os dados referentes `as
duas divisoes imediatamente anteriores.
Se zermos as divis oes sucessivas ate encontrarmos um resto nulo, teremos a seguinte sequencia
7
Captulo 1 Algoritmo da Divisao de Euclides e Divisibilidade
de divis oes.
a = bq
1
+ r
1
e 0 r
1
< b
b = r
1
q
2
+ r
2
e 0 r
2
< r
1
r
1
= r
2
q
3
+ r
3
e 0 r
3
< r
2
r
2
= r
3
q
4
+ r
4
e 0 r
4
< r
3
.
.
.
.
.
.
r
n3
= r
n2
q
n1
+ r
n1
e 0 r
n1
< r
n2
r
n2
= r
n1
q
n
e r
n
= 0
Neste momento as desigualdades nao nos interessam. Reescrevemos as divis oes da seguinte
maneira.
a = bq
1
+ r
1
e r
1
= ax
1
+ by
1
b = r
1
q
2
+ r
2
e r
2
= ax
2
+ by
2
r
1
= r
2
q
3
+ r
3
e r
3
= ax
3
+ by
3
r
2
= r
3
q
4
+ r
4
e r
4
= ax
4
+ by
4
(1.7)
.
.
.
.
.
.
r
n3
= r
n2
q
n1
+ r
n1
e r
n1
= ax
n1
+ by
n1
r
n2
= r
n1
q
n
e r
n
= 0
onde os n umeros x
1
, ..., x
n1
e y
1
, ..., y
n1
s ao inteiros a determinar. Podemos resumir as infor-
mac oes de (1.7) em uma tabela.
restos quocientes x y
a * x
1
y
1
b * x
0
y
0
r
1
q
1
x
1
y
1
r
2
q
2
x
2
y
2
r
3
q
3
x
3
y
3
.
.
.
.
.
.
.
.
.
.
.
.
r
n2
q
n2
x
n2
y
n2
r
n1
q
n1
x
n1
y
n1
Note que acrescentamos duas linhas que nao correspondem a nenhuma divis ao; de fato, a e
b n ao sao restos. Chamaremos essas duas primeiras linhas de 1 e 0. Logo veremos porque s ao
8
Algoritmo Euclidiano Estendido Secao 1.3
necess arias. Note que r
n1
= ax
n1
+ by
n1
. Mas r
n1
= mdc(a, b), portanto x
n1
e y
n1
s ao os
inteiros e que procuramos para escrever mdc(a, b) = a + b. Portanto, precisamos apenas
saber como preencher as colunas x e y.
Suponha que j a tenhamos preenchido a tabela ate certo ponto, por exemplo, ate a
(j 1)-esima linha. Precisamos descobrir quais s ao os inteiros r
j
, q
j
, x
j
e y
j
. Para determinarmos
r
j
e q
j
, basta dividirmos r
j2
por r
j1
. Desse modo, teremos r
j2
= r
j1
q
j
+ r
j
e 0 r
j
< r
j1
.
Est ao determinados, entao, r
j
e q
j
.
Para encontrarmos x
j
e y
j
, primeiro observe que
r
j
= r
j2
r
j1
q
j
(1.8)
Mas as linhas j 1 e j 2 da tabela nos dizem que
r
j2
= ax
j2
+ by
j2
e r
j1
= ax
j1
+ by
j1
Substituindo esses valores em (1.8), obtemos
r
j
= (ax
j2
+ by
j2
) (ax
j1
+ by
j1
)q
j
= a(x
j2
q
j
x
j1
) + b(y
j2
q
j
y
j1
)
Veja que para calcularmos x
j
e y
j
, usamos apenas valores contidos nas duas linhas imediata-
mente anteriores ` a linha j, alem do queociente q
j
. Portanto, sabemos preencher qualquer linha
da tabela se conhecermos as duas linhas anteriores. E mais, nosso processo de preenchimento e
recursivo, logo, s o precisamos saber como inicia-lo.
E nesse ponto que as duas primeiras linhas
nos ajudam.
Interpretando estas linhas como as demais, devemos ter:
a = ax
1
+ by
1
e b = ax
0
+ by
0
e isto sugere escolhermos
x
1
= 1 , y
1
= 0 , x
0
= 0 e y
0
= 1
e com esses valores podemos iniciar o processo recursivo de preenchimento da tabela. Ao nal do
processo, teremos encontrado d = mdc(a, b).
d = r
n1
= a + b
onde = x
n1
e = y
n1
.
Para encerrar este primeiro captulo, vamos ver como o estudo sobre o mdc desenvolvido ate
9
Captulo 1 Algoritmo da Divisao de Euclides e Divisibilidade
aqui nos auxilia na resoluc ao de equa coes diofantinas lineares. Uma equac ao diofantina linear `a n
inc ognitas e uma sentenca do tipo
a
1
x
1
+ a
2
x
2
+ + a
n
x
n
= b (1.9)
onde a
1
, ..., a
n
, b s ao n umeros inteiros. Em se tratando de equacoes diofantinas, lineares ou n ao,
sempre estamos procurando solucoes inteiras, ou seja, as inc ognitas x
1
, ..., x
n
s o assumem valores
no conjunto Z. Vamos tratar apenas de equacoes diofantinas lineares ` a 2 inc ognitas, pois qualquer
equac ao com mais incognitas pode ser reduzida a este caso. A ttulo de exemplo, considere a
equac ao diofantina linear ` a 3 inc ognitas
x + 10y + 25z = 99.
Fazemos 10y +25z = 5k (escolhemos 5 porque 5 = mdc(10, 25)). Da, a equac ao original se reduz
` a x + 5k = 99. Portanto, ao inves de resolvermos uma equac ao ` a 3 incognitas, resolveremos 2
equac oes a 2 inc ognitas. Para mais detalhes ver [10].
Primeiramente, vamos ver qual uma condi cao necessaria e suciente para que a equac ao
ax + by = c admita soluc ao inteira.
PROPOSI C
AO. () Seja (x
0
, y
0
) uma solu cao inteira da equa cao ax + by = c, ou seja
ax
0
+ by
0
= c.
Seja d = mdc(a, b). Como d[a e d[b, temos que d divide qualquer conbina cao linear de a e b. Em
particular, d divide ax
0
+ by
0
, ou seja, d[c.
() Sendo d = mdc(a, c), temos que d e a menor combina cao linear positiva de a e b.
d = ax
0
+ by
0
(1.10)
Temos por hip otese que d[c, isto e, existe um inteiro c
t
tal que c = dc
t
. Multiplicando a equac ao
(1.10) por c
t
temos
c = dc
t
= a(x
0
c
t
) + b(y
o
c
t
)
portanto (x
0
c
t
, y
0
c
t
) e uma solucao da equac ao ax + by = c.
Agora que sabemos como vericar se uma equacao diofantina linear admite solu cao, vejamos
como encontrar tal soluc ao. Considere a equac ao diofantina linear ax + by = c. Suponha que tal
equac ao admita soluc ao, isto e, d = mdc(a, b)[c. Neste caso temos c = dc
t
, para algum inteiro c
t
.
10
Algoritmo Euclidiano Estendido Secao 1.3
Seja a
t
=
a
d
e b
t
=
b
d
. Note que a
t
e b
t
s ao inteiros pois d[a e d[b. Considere, agora, a equac ao
reduzida a
t
x + b
t
y = c
t
.
Armamos qualquer soluc ao da equac ao original e tambem soluc ao da equacao reduzida, e
vice-versa. De fato, se (x
0
, y
0
) e uma solucao da equac ao reduzida, temos
c
t
= a
t
x
0
+ b
t
y
0
c
t
d = a
t
dx
0
+ b
t
dy
0
c = ax
0
+ by
0
Portanto, para achar as solu coes da equac ao original, basta encontrarmos as soluc oes da
equac ao reduzida. Sendo d = mdc(a, b), temos que existen inteiros r e s tais que d = ar + bs.
Dividindo toda a equac ao por d, obtemos
1 =
a
d
r +
b
d
s.
Mas
a
d
= a
t
e
b
d
= b
t
, ou seja, a
t
e b
t
s ao primos entre s, portanto existem inteiros e , que
podem ser determinados usando-se o algoritmo euclidiano estendido, tais que
a
t
+ b
t
= 1
Agora, basta multiplicarmos esta equac ao por c
t
, e chegaremos `a
a
t
c
t
+ b
t
c
t
= c
t
ou seja, (c
t
, c
t
) e uma solucao da equa cao reduzida, e portanto, e uma solucao da equa cao
original
ax + by = c.
Como os inteiros e n ao sao unicos, segue que a soluc ao da equa cao diofantina linear tambem
n ao e unica. De fato, se (x
0
, y
0
) e uma soluc ao particular de ax + by = c, entao (x
0
+ bt, y
0
at)
tambem e uma solu cao, t Z, pois
a(x
0
+ bt) + b(y
0
at) = ax
0
+ abt + by
0
abt = ax
0
+ by
0
= c
Com isso, tambem conclumos que quando ax + by = c admite soluc oes, estas sao em quantidade
innita, pois cada t inteiro gera uma solucao diferente.
Vamos encerrar com um exemplo. Vamos resolver 4x + 6y = 10.
Como mdc(4, 6) = 2 divide 10, a equac ao admite solu cao. Primeiramente, encontremos a
equac ao reduzida, dividindo a original por 2.
2x + 3y = 5
11
Captulo 1 Algoritmo da Divisao de Euclides e Divisibilidade
Agora, encontramos uma solucao particular desta equac ao. Utilizando o algoritmo euclidiano
estendido, obtemos
2 (1) + 3 (1) = 1
Multiplicando esta ultima por 5, a equac ao ca
2 (5) + 3 (5) = 5
logo, (5, 5) e uma soluc ao particular da equa cao reduzida e tambem da equa cao original. Da,
as soluc oes de 4x + 6y = 10 sao dadas por
_
x = 5 + 6t
y = 5 4t
(t Z)
Terminamos este primeiro captulo com mais algumas propriedades relacionadas ` a divisibilidade
e ao mdc.
PROPOSI C
AO. Seja d = mdc(a, b). Ent ao d[a e d[b, ou seja, a = rd e b = sd, para certos inteiro
r e s. Multiplicando as ultimas igualdades por n, obtemos na = r(nd) e nb = s(nd), ou seja nd[na
e nd[nb. Assim temos que nd e um divisor comum de na e nb. Resta mostrar que nd e o maior
deles.
Seja x Z
+
tal que x[na e x[nb. Como d = mdc(a, b) existem inteiros e de modo que
d = a + b, o que implica na + nb = nd. Como x[na e x[nb, x divide qualquer combina cao
linear de na e nb. Em particular, x[(na + nb) = nd, portanto x nd. Assim temos que
nd = mdc(na, nb) mdc(na, nb) = n mdc(a, b)
PROPOSI C
AO. Seja D
a
o conjunto dos divisores de a, D
b
o conjunto dos divisores de b e D
c
o conjunto dos divisores de c. Sejam d
1
= mdc(a, mdc(b, c)), d
2
= mdc(mdc(a, b), c) e d
3
=
mdc(a, b, c). De outra maneira:
d
1
= max(D
a
(D
b
D
c
))
d
2
= max((D
a
D
b
) D
c
)
d
3
= max(D
a
D
b
D
c
)
12
Algoritmo Euclidiano Estendido Secao 1.3
Como a operacao de intersec ao de conjuntos e associativa, temos
D
a
(D
b
D
c
) = (D
a
D
b
) D
c
= D
a
D
b
D
c
e portanto d
1
= d
2
= d
3
.
PROPOSI C
AO 1.3.6. Sejam b
1
e b
2
inteiros primos entre s, isto e, mdc(b
1
, b
2
) = 1. Entao d e
um divisor de b
1
b
2
se, e somente se, d = d
1
d
2
, onde d
1
= mdc(d, b
1
) e d
2
= mdc(d, b
2
).
DEMONSTRA C
AO. () Se d
1
= mdc(d, b
1
), ent ao d
1
[b
1
b
1
= m d
1
para algum m Z. De
modo analogo, se d
2
= mdc(d, b
2
), ent ao d
2
[b
2
b
2
= n d
2
para algum n Z. Multiplicando as
equac oes, obtemos
b
1
b
2
= m d
1
n d
2
= (mn) (d
1
d
2
) = mn d d[b
1
b
2
() Para demonstrarmos que se d[b
1
b
2
, ent ao d = mdc(d, b
1
) mdc(d, b
2
), faremos uso das
duas proposic oes anteriores. Sendo d
1
= mdc(d, b
1
), d
2
= mdc(d, b
2
), d um divisor de b
1
b
2
e
mdc(b
1
, b
2
) = 1, temos
d
1
d
2
= d
1
mdc(d, b
2
)
Prop.1.3.4
= mdc(d d
1
, b
2
d
1
)
= mdc(d d
1
, b
2
mdc(d, b
1
))
Prop.1.3.4
= mdc(d d
1
, mdc(db
2
, b
1
b
2
))
d[b
1
b
2
= mdc(d d
1
, mdc(db
2
, dm)) para algum m Z.
Prop.1.3.4
= mdc(d d
1
, d mdc(b
2
, m))
Prop.1.3.4
= d mdc(d
1
, mdc(b
2
, m))
= d mdc(mdc(d, b
1
), mdc(b
2
, m))
Prop.1.3.5
= d mdc(d, b
1
, b
2
, m)
Prop.1.3.5
= d mdc(d, m, mdc(b
1
, b
2
))
= d mdc(d, m, 1) = d 1
= d
como queramos mostrar.
13
Captulo 1 Algoritmo da Divisao de Euclides e Divisibilidade
14
Captulo
2
Fatora cao
Unica
Por que os n umeros primos se chamam n umeros primos? Com certeza n ao e por que seus
pais s ao irm aos. Na verdade, os gregos dividiam os n umeros em primeiros (ou indecomponveis)
e secundarios (ou compostos). Os n umeros compostos s ao assim chamados por serem formados
a partir dos primeiros. Os romanos traduziram literalmente a palavra grega para primeiro, que
em latim e primus. Da a origem dos nossos n umeros primos. Neste captulo vamos ver como os
n umeros primos funcionam como partcula elementar na construcao de qualquer inteiro.
2.1 Teorema Fundamental da Aritmetica
DEFINI C
AO 2.1.5. Sejam a, b e p inteiros, com p primo. Se p[ab, entao p[a ou p[b (nada impede
que p divida tanto a quanto b).
DEMONSTRA C
AO. Temos que p[a ou p ,[a. Se p[a, a proposic ao est a demonstrada. Agora, se p ,[a,
pela Proposic ao 2.1.4 a e p s ao primos entre s. Como p[ab, ent ao, pela Proposic ao 2.1.3, temos
que p[b.
A Proposi cao anterior pode ser estendida para um produto de n inteiros.
PROPOSI C
AO. Faremos uma induc ao sobre n. Para n = 2 j a esta feito na Proposic ao 2.1.5.
Hip otese de inducao: Se p e primo e p divide um produto de k fatores inteiros, ent ao p divide
ao menos um dos fatores.
Considere agora um produto de k + 1 inteiros e suponha que p[a
1
... a
k
a
k+1
. O n umero
s = a
1
... a
k
e um inteiro, e temos que p[s a
k+1
. Pela Proposic ao 2.1.5, p[s ou p[a
k+1
. Logo p[a
j
para algum j 1, 2, ..., k ou p[a
k+1
. Portanto p[a
j
para algum j 1, 2, ..., k, k + 1.
Pelo primeiro princpio de induc ao nita, a proposi cao esta demonstrada.
Agora vamos demonstrar a unicidade da fatorac ao do Teorema Fundamental da Aritmetica.
Unicidade Suponha que exista um inteiro n, n 2, que possa ser escrito como produto de
fatores primos de duas maneiras distintas, isto e
n = p
1
p
2
... p
r
= q
1
q
2
... q
s
(2.1)
sendo p
1
, p
2
, ..., p
r
, q
1
, q
2
, ..., q
s
primos positivos e p
1
p
2
... p
r
e q
1
q
2
... q
s
.
Cancelando os fatores primos que aparecem em ambos os lados da igualdade 2.1, como as duas
fatorac oes sao supostamentes distintas, chegaremos a uma igualdade
p
i
1
p
i
2
... p
i
u
= q
j
1
q
j
2
... q
j
v
(2.2)
com u 1 e v 1, em que cada um dos primos do lado esquerdo e diferente de cada um dos
primos do lado direito, ou seja, os membros ` a esquerda e ` a direita n ao tem mais fatores primos
17
Captulo 2 Fatoracao
Unica
em comum. Agora observe que
p
i
1
(p
i
2
p
i
3
... p
i
u
) = q
j
1
q
j
2
... q
j
v
o que signica que p
i
1
divide q
j
1
q
j
2
... q
j
v
. Pela Proposi cao 2.1.6, p
i
1
divide algum dos fatores
q
j
1
, q
j
2
, ..., q
j
v
, o que e impossvel, pois esses fatores sao primos e diferentes de p
i
1
.
Portanto nao podemos ter duas fatoracoes distintas para um mesmo inteiro n, logo esta provada
a unicidade da fatorac ao em n umeros primos.
Agora que sabemos que todo inteiro pode ser escrito como um produto de inteiros, veremos
algumas maneiras de encontrarmos fatores de um inteiro n dado.
2.2 Algoritmos de Fatoracao
A maneira mais imediata para determinarmos um fator do inteiro n e vericar se algum inteiro k,
2 k n1, divide n. Se algum destes k dividir n, encontramos um fator de n; e mais, o menor
fator que encontrarmos dessa maneira deve ser primo: seja f um inteiro tal que 2 f n 1.
Suponha que f seja o menor fator de n e que f
t
> 1 seja um fator de f. Pela denic ao de
divisibilidade
n = f a e f = f
t
b
para certos inteiros a e b. Assim temos
n = f
t
(ab).
Ent ao f
t
tambem e fator de n. Como supusemos que f era o menor fator de n, temos que f f
t
.
Mas f
t
e fator de f, logo f
t
f, e portanto f = f
t
. Concluimos que o unico fator de f, maior
que 1, e o proprio f, ou seja, f e primo.
Com um pouco mais de atenc ao veremos que n ao precisamos procurar fatores ate n 1. De
fato, n ao precisamos procurar fatores maiores que
n.
PROPOSI C
n.
DEMONSTRA C
AO: p
1
n. De fato, se tivermos p
1
>
n, ent ao
n = p
1
p
2
... p
s
p
1
p
1
... p
s
p
1
p
1
>
n = n
o que e uma contradic ao.
Na verdade, com raciocnio similar, podemos concluir que se n 2 e um inteiro composto, n
n ao pode ter dois fatores primos maiores que
6
15 = 3 5 5 >
15
30 = 2 3 5 nenhum fator primo maior que
30
180 = 2
2
3
2
5 nenhum fator primo maior que
180
A impressao que temos e que quando n cresce, ca mais difcil ele possuir um fator primo
>
mp p
2
> mp p > m
Esse lema nos permite construir inteiros tao grande quanto se queira de forma que tal inteiro
possua um fator primo maior que sua raiz quadrada, pois dado m Z
+
, sempre conseguimos
um primo p > m (j a que existem innitos primos, como veremos no pr oximo captulo), logo para
qualquer inteiro N, existe n > N de modo que n possua um fator primo p >
n. Em outras
palavras, o conjunto
X = x Z
+
[x possui um fator primo p >
x
19
Captulo 2 Fatoracao
Unica
e innito.
Uma pergunta que imediatamente pode ser feita e: o conjunto
A = x Z
+
[ todos os fatores primos de x s ao menores que
x
e nito ou innito?
Se procurarmos exemplos, notaremos que se escolhermos aleatoriamente inteiros grandes, e
muito mais f acil escolhermos um inteiro que pertenca ao conjunto A do que ao conjunto X,
mas isso n ao nos garante que A seja innito (lembre-se de alguns fatos intrigantes com respeito a
cardinalidade, como Q vs. (R Q), n umeros algebricos vs. n umeros transcendentes). Antes de
provarmos que A e mesmo innito, vejamos uma maneira equivalente de enunciar o lema acima.
LEMA 2.2.3. Seja n = m p, m 2 e p primo. Entao p e um fator primo de n menor ou igual que
AO: O conjunto A = x Z
+
[ todos os fatores primos de x s ao menores que
x e
innito.
Demonstracao. Suponhamos, como hip otese de absurdo, que A seja nito. Ent ao podemos escre-
ver A = x
1
, x
2
, x
3
, ..., x
n
com x
1
< x
2
< x
3
< ... < x
n
. Como A Z e A e nito, A possui um
maior elemento, que no caso e x
n
.
Note que os elementos de A s ao todos compostos, pois se x e primo temos x >
x. Em
particular, x
n
e composto.
x
n
= p
1
p
2
... p
s
onde p
1
, p
2
, ..., p
s
s ao primos e 1 < p
1
p
2
... p
s
.
Para dizermos que um inteiro x pertence a A, temos que vericar para cada fator primo p de
x que p
x
p
(no caso,
x
p
e o inteiro m que aparece no lema). Entretanto, basta fazermos tal
vericac ao somente para o maior inteiro fator primo de x: se x = p
1
... p
k
, 1 < p
1
... p
k
e
p
j
e um fator de x menor do que p
k
, temos
1 < p
1
1 < p
2
.
.
.
1 < p
j1
1 < p
j+1
.
.
.
1 < p
k1
p
j
< p
k
20
Algoritmos de Fatoracao Secao 2.2
Multiplicando essas desigualdades membro a membro, conclumos que p
j
<
x
p
j
, ou seja, o lema se
verica para qualquer fator p
j
< p
k
, sendo p
k
o maior fator primo de x.
Outra observa cao: x
n
possui todos os primos menores que p
s
como fatores. De fato: se p e um
primo menor do que p
s
que nao e fator de x
n
, construmos o inteiro x = x
n
p. Tal x e maior que
x
n
, e o maior fator primo de x e p
s
. Sendo assim, x A, pois
p
s
<
x
n
p
s
<
x
n
p
s
p =
x
p
s
e isso contradiz o fato de x
n
ser o maior elemento de A. Portanto x
n
tem como fatores todos os
primos p p
s
.
Finalmente, construmos agora o inteiro y = x
n
p
s
Notoriamente temos y > x
n
. Se y A, teremos uma contradic ao e concluiremos que A n ao
pode ser nito.
Ora, o maior fator primo de y e p
s
, sendo assim
p
s
<
x
n
p
s
<
x
n
p
s
p
s
=
y
p
s
y A
o que novamente contradiz o fato de x
n
ser o maximo de A, e portanto, A e innito.
Note que A, X e 1 constituem uma partic ao dos inteiros positivos.
O algoritmo justicado pela Proposic ao 2.2.1 e eciente quando o inteiro n que vamos fatorar e
divisvel por um primo pequeno (o tamanho deste primo depende do computador que usaremos).
Vamos ver agora um outro algoritmo que e eciente quando n possui um fator primo pr oximo
` a
n. Tal algoritmo foi inventado por Fermat, e leva seu nome.
Vamos supor n mpar (se n for par, 2 e um de seus fatores).
Queremos encontrar inteiros x e y tais que
n = x
2
y
2
= (x + y)(x y)
Dessa forma x + y e x y s ao fatores de n.
Algoritmo 2.2.4 (Algoritmo de Fermat).
Entrada Um inteiro positivo mpar n.
Sada Um fator de n ou uma mensagem dizendo que n e primo.
Etapa 1 Faca x = [[
n]]; se n = x
2
, x e fator de n.
Etapa 2 Caso contrario, incremente x de uma unidade e calcule y =
x
2
n.
Etapa 3 Repita a Etapa 2 ate encontrar um valor inteiro para y ou ate que x seja igual a
n + 1
2
.
No primeiro caso n tem fatores x + y e x y, e no segundo caso n e primo.
21
Captulo 2 Fatoracao
Unica
Antes de demonstrarmos porque o algoritmo funciona, vejamos um exemplo.
Seja n = 731021. Neste caso,
n + 1
2
= 365511 e
n 854, 997. Sendo assim, iniciamos com
x = 854 x
2
= 729316 < 731021 = n.
Agora incrementamos x de um em um, ate que
x
2
n seja inteiro ou ate que x = 365511.
Para nossa sorte, quanto fazemos o primeiro incremento em x encontramos
x = 855 y =
855
2
731021 =
731025 731021 = 2
e temos y inteiro. Portanto, dois fatores de 731021 sao x +y = 857 e x y = 853. Por acaso, 853
e 857 sao primos.
731021 = 853 857
Diferente do primeiro algoritmo, que se resumia a vericar se n umeros eram fatores de n
simplesmente atraves da divis ao, nao e claro porque o Algoritmo de Fermat funciona nem porque
ele p ara. Vamos ver o teorema que nos dar a tais respostas.
TEOREMA 2.2.5. Seja n um inteiro mpar, n > 2. Existe um inteiro x
n tal que
y =
x
2
n e um inteiro e x + y e x y sao fatores de n. Alem disso, n e composto se, e
somente se, x <
n + 1
2
.
DEMONSTRA C
AO. Suponha que n possa ser fatorado na forma n = ab, com a b. Queremos
encontrar x e y tais que n = x
2
y
2
, ou seja,
n = ab = (x + y)(x y)
Como x y x + y, basta tomarmos
x =
a + b
2
e y =
b a
2
De fato
_
a + b
2
_
2
_
b a
2
_
2
= ab = n
Por hip otese, n e mpar, logo a e b s ao mpares, e portanto x e y tomados como acima sao
inteiros.
Se n for primo, s o podemos ter a = 1 e b = n, e assim est a demonstrado a existencia do inteiro
x. Vamos supor, ent ao, que n seja composto. Precisamos apenas garantir que x <
n + 1
2
.
Nestas condi coes, temos dois casos a considerar. Primeiro, se n for um quadrado perfeito.
22
Algoritmos de Fatoracao Secao 2.2
Neste caso, escolhemos x =
(n + 1)
2
4
> n > 0
n + 1
2
>
n = x
Agora, se n e composto e n ao e um quadrado perfeito, ou seja, n = ab com 1 < a < b < n,
escolhemos x =
a + b
2
. Por hipotese, temos b > 1 e a > 1 a 1 > 0, portanto
1 < b a 1 < b(a 1)
a 1 < ab b
a 1 + (b + 1) < ab b + (b + 1)
a + b < ab + 1 = n + 1
a + b
2
<
n + 1
2
x <
n + 1
2
e assim est a demonstrado o teorema.
J a demonstramos uma propriedade fundamental dos n umeros primos: a Proposic ao 2.1.5.
Propriedade Fundamental dos Primos: Seja p um n umero primo e a e b inteiros positivos.
Se p divide o produto ab, ent ao p divide a ou p divide b.
Vamos encerrar este captulo fazendo uso dessa propriedade para mostrar um resultado inte-
ressante.
PROPOSI C
p =
a
b
.
Podemos supor, ainda, que a fracao
a
b
est a reduzida, ou seja, mdc(a, b) = 1 (se n ao estiver basta
cancelarmos o maximo divisor comum entre o numerador e o denominador). Se
p =
a
b
, temos
que p =
a
2
b
2
, ou ainda
b
2
p = a
2
(2.3)
23
Captulo 2 Fatoracao
Unica
Isto signica que p divide a
2
. Mas se p[a
2
, ent ao p[a, ou seja, existe um inteiro c tal que a = p c.
Substituindo na equac ao (2.3), obtemos
b
2
p = a
2
= p
2
c
2
b
2
= p c
2
Disto conclumos que p divide b
2
, e portanto p divide b. Mas ent ao p[a e p[b, com p 2 primo,
e isto e impossvel, pois mdc(a, b) = 1. Portanto
p e irracional.
24
Captulo
3
N umeros Primos
Estamos estudando a teoria necess aria para compreender o metodo de criptograa RSA. Tal
metodo faz uso de n umeros primos grandes. Desse modo, e interessante conseguirmos gerar tais
primos. Mas o interesse em encontrar n umeros primos nao nasceu devido ` a criptograa. Os
n umeros primos s ao conhecidos desde a antiguidade, e desde entao eles encantam os matem aticos.
Estes sempre os estudaram buscando descobrir suas propriedades, e uma das coisas que sempre se
buscou foi uma formula que gerasse n umeros primos.
3.1 F ormulas Polinomiais
Sem d uvida, as fun coes polinomiais sao as funcoes mais simples para se entender e manipular, prin-
cipalmente se o interessado no estudo n ao est a familiarizado com uma Matem atica mais robusta.
As primeiras func oes estudadas no ensino medio, por exemplo, s ao as func oes am e quadr atica,
isto e, func oes de 1
e 2
graus, respectivamente.
A simplicidade das funcoes polinomiais pode ser explicada pelo seguinte fato: uma func ao
polinomial nada mais e do que um amontoado de multiplicacoes e adicoes.
Se estamos interessados em uma f ormula que gere n umeros primos, e claro que iniciaramos
nossa busca nas func oes polinomiais, isto e, queremos um polinomio
p(x) = a
n
x
n
+ a
n1
x
n1
+ + a
1
x + a
0
onde cada coeciente a
i
e um inteiro, e que satisfaz
p(m) e primo para todo inteiro positivo m
Achar um polinomio que satisfa ca tais condic oes parace ser pedante, mas alguns casos partic-
ulares podem, inicialmente, incentivar tal busca. Por exemplo, o polin omio p(x) = x
2
+ x + 41
quando avaliado nos inteiros de 1 a 39, so atinge valores primos. Entretanto, n ao e possvel en-
contrarmos um polinomio p(x) de modo que a imagem seja um n umero primo para todo inteiro
x.
25
Captulo 3 N umeros Primos
TEOREMA 3.1.1. Dado um polinomio f(x) com coecientes inteiros, existe uma innidade de
inteiros m tais que f(m) e composto.
DEMONSTRA C
i=0
a
i
x
i
com f(m) = p primo positivo, m inteiro positivo. Vamos supor, sem perda de generalidade, que
a
n
> 0. Seja h um inteiro positivo. Temos
f(m + hp) =
n
i=0
a
i
(m + hp)
i
=
n
i=0
_
a
i
j=0
_
i
j
_
m
ij
(hp)
j
_
=
n
i=0
_
a
i
m
i
+ a
i
j=1
_
i
j
_
m
ij
h
j
p
j
_
=
n
i=0
a
i
m
i
+
n
i=0
_
a
i
p
i
j=1
_
i
j
_
m
ij
h
j
p
j1
_
= f(m) + p
n
i=0
_
a
i
i
j=1
_
i
j
_
m
ij
h
j
p
j1
_
= p
_
1 +
n
i=0
_
a
i
i
j=1
_
i
j
_
m
ij
h
j
p
j1
__
Para que f(m + hp) seja composto, precisamos garantir que
1 +
n
i=0
_
a
i
i
j=1
_
i
j
_
m
ij
h
j
p
j1
_
,= 1
Para tanto, e suciente termos
n
i=0
_
a
i
i
j=1
_
i
j
_
m
ij
h
j
p
j1
_
> 0
Mas o que temos no lado esquerdo da desigualdade acima e um polin omio g(h) em h, visto que
a
0
, a
1
, ..., a
n
, m, p s ao valores xados. Alem disso, o grau deste polinomio e n e seu coeciente lder
e a
n
p
n1
> 0. Sendo assim, temos que
lim
h
g(h) = +
26
Formulas Exponenciais: Mersenne e Fermat Secao 3.2
ou seja, para h sucientemente grande temos g(h) positivo, exatamente como precisavamos.
Num primeiro momento, a demonstracao anterior pode parecer um pouco confusa. Vamos ver
o caso particular em que o polin omio f(x) tem grau 2 para que que mais claro o que foi feito no
caso geral.
Se f(x) tem grau 2, ele se escreve como f(x) = ax
2
+ bx + c. Seja m um inteiro positivo tal
que f(m) = p e um n umero primo (positivo). Calculemos agora f(m + hp), onde h e um inteiro
positivo qualquer.
f(m + hp) = a(m + hp)
2
+ b(m + hp) + c
= am
2
+ 2amhp + ah
2
p
2
+ bm + bhp + c
= (am
2
+ bm + c) + p (2amh + aph
2
+ bh)
= p + p (2amh + aph
2
+ bh)
= p (1 + 2amh + aph
2
+ bh).
Para que f(m + hp) seja composto, precisamos que
1 + 2amh + aph
2
+ bh > 1 2amh + aph
2
+ bh > 0
h>0
2am + aph + b > 0
h >
b 2am
ap
Portanto, se f(x) = ax
2
+ bx + c e um polinomio de coecientes inteiros, a > 0, e f(m) = p e
primo, entao f(m + hp) e composto sempre que h >
b 2am
ap
. Em particular, existem innitos
valores inteiros para x de modo que f(x) e composto.
Neste caso do polinomio de grau 2, conseguimos determinar uma cota inferior para o inteiro h
a partir da qual conseguimos garantir a existencia de innitos inteiros compostos que sao atingidos
pelo polin omio f. No caso geral, nao encontramos esta cota inferior, apenas usamos sua existencia,
que e garantida pelo limite no innito do polin omio em h.
Enm, nossa busca por um polin omio cujos valores positivos s ao sempre primos e in util, pelo
menos quando nos referimos a polinomios de um variavel. Sabe-se que existe um polin omio de grau
25, `a 26 variaveis, de modo que todos os seus valores positivos s ao primos
(c.f. [09], pg. 11-12). Surpreendente, n ao?
3.2 F ormulas Exponenciais: Mersenne e Fermat
Duas sao as formulas exponenciais de grande import ancia hist orica
27
Captulo 3 N umeros Primos
M(n) = 2
n
1 F(n) = 2
2
n
+ 1
onde n e um inteiro n ao negativo.
Os n umeros da forma M(n) s ao chamados n umeros de Mersenne, e os da fomra F(n), n umeros
de Fermat.
Os n umeros de Mersenne estao relacionados com os chamados n umeros perfeitos.
DEFINI C
AO 3.2.2. Se b
1
e b
2
sao inteiros positivos primos entre s, entao
S(b
1
b
2
) = S(b
1
)S(b
2
)
onde S(n) denota a soma dos divisores positivos de n.
DEMONSTRA C
AO. Se b
1
= p
1
1
p
2
2
p
3
3
p
r
r
e b
2
= q
1
1
q
2
2
q
3
3
q
s
s
, com p
i
s
e q
j
s
primos, como
mdc(b
1
, b
2
) = 1, temos que cada p
i
e distinto de cada q
j
.
A quantidade de divisores positivos de b
1
e (
1
+ 1)(
2
+ 1) (
r
+ 1) e a quantidade de
divisores positivos de b
2
e (
1
+1)(
2
+1) (
s
+1). Tal fato e facilmente demonstrado usando-
se o Princpio Fundamental da Contagem.
Temos que b
1
b
2
= p
1
1
p
2
2
p
r
r
q
1
1
q
2
2
q
s
s
, logo a quantidade de divisores de b
1
b
2
e igual a
(
1
+1)(
2
+1) (
r
+1)(
1
+1)(
2
+1) (
s
+1), ou seja, se b
1
e b
2
possuem x e y divisores
positivos, respectivamente, e mdc(b
1
, b
2
) = 1, entao b
1
b
2
possui xy divisores positivos. Digamos
1
D(n) denota o conjunto do divisores positivos de n e S(n) denota a soma dos divisores positivos de n
28
Formulas Exponenciais: Mersenne e Fermat Secao 3.2
que b
1
tenha n divisores e b
2
possua m divisores. Sendo assim
S(b
1
)S(b
2
) = (r
1
+ r
2
+ + r
n
)(s
1
+ s
2
+ + s
m
)
=
_
r
i
__
s
j
_
=
n
i=1
m
j=1
r
i
s
j
Note que a soma acima possui n m parcelas, e alem disso as parcelas sao duas a duas distintas.
De fato, qualquer uma das parcelas e da forma r
i
s
j
, onde r
i
e um divisor de b
1
e s
j
e um
divisor de b
2
. Seja a = r
i
1
s
j
1
e b = r
i
2
s
j
2
duas parcelas da soma acima. Nao podemos ter r
i
1
= r
i
2
e s
j
1
= s
j
2
simultaneamente, por motivos combinat orios. Suponha que r
i
1
= r
i
2
. Entao a e b
s ao diferentes pois s
j
1
,= s
j
2
, o que faz com que a e b tenham decomposi coes primas diferentes, e
portanto n ao podem ser iguais. Algo an alogo acontece se tivermos s
j
1
= s
j
2
. Agora, e se r
i
1
,= r
i
2
e s
j
1
,= s
j
2
? Neste caso, como qualquer r
i
n ao possui fatores comuns com qualquer s
j
, tambem e
impossvel termos a = b, pois nesse caso teramos dois inteiros iguais com fatoracao prima distinta,
absurdo. Portanto, as parcelas s ao de fato duas a duas distintas.
Se provarmos que qualquer parcela desta soma e um divisor de b
1
b
2
, concluiremos que essa
soma e igual e S(b
1
b
2
)
Seja r
p
s
q
uma parcela qualquer. Temos que r
p
[b
1
b
1
= xr
p
, para algum x Z, e
s
q
[b
2
b
2
= ys
q
, para algum y Z, logo b
1
b
2
= xr
p
us
q
= (xy)(r
p
s
q
), ou seja, r
p
s
q
[b
1
b
2
. Como
cada parcela e um divisor de b
1
b
2
, e nesta soma temos n m parcelas, essa e a soma dos n m
divisores de b
1
b
2
. Portanto
S(b
1
)S(b
2
) = S(b
1
b
2
)
Agora vamos mostrar esta caracterizac ao dos n umeros perfeitos.
PROPOSI C
AO 3.2.3. Seja n um inteiro par. O inteiro n e um n umero perfeito se, e somente se,
n se escreve como 2
s
(2
s+1
1), com s N e 2
s+1
1 primo.
DEMONSTRA C
AO 3.3.1. O inteiro p
#
+ 1 nao possui nenhum fator primo menor ou igual a p.
DEMONSTRA C
AO. Se supusermos que ha apenas uma quantidade nita de primos, teremos um que
e o maior de todos, digamos p. Consideramos agora o inteiro p
#
+ 1.
E claro que p
#
+ 1 e maior
34
Formulas Fatoriais Secao 3.3
que p, e portanto maior que todos os primos. Se p
#
+1 for primo, j a chegamos a um absurdo, pois
temos um primo que e maior que p, que seria o maior primo existente. Se p
#
+ 1 for composto,
j a vimos que este mesmo inteiro possui um fator primo maior do que p, e novamente temos uma
contradic ao. Portanto nao pode existir uma quantidade nita de n umeros primos.
35
Captulo 3 N umeros Primos
36
Captulo
4
Aritmetica Modular
Dado um conjunto X, uma relacaono conjunto X pode ser entendida como uma maneira de
comparar dois elementos do conjunto X. Por exemplo, se considerarmos o conjunto dos membros
de uma famlia onde temos pais, maes, lhos, lhas, tios, sobrinhos, etc., podemos denir algumas
relac oes. Uma relac ao poderia ser a seguinte: Dados dois elementos x e y, dizemos que x esta
relacionado com y, indicado por x y, se x for lho(a) de y.
E claro que n ao estamos interessados
nesse tipo de relac ao, mas sim em rela c oes denidas sobre conjunto numericos. Neste captulo
veremos uma importante relac ao denida no conjunto dos inteiros.
4.1 Relacoes de Equivalencia
Formalmente, uma rela cao de um conjunto A para um conjunto B e um subconjunto do produto
cartesiano A B. Se a A, b B, R A B e (a, b) R dizemos que a est a relacionado
a b segundo a relac ao R, e indicamos isso com aRb. Quando denimos uma relac ao R de um
conjunto X para o pr oprio conjunto X, dizemos simplesmente que a relac ao R est a denida sobre
o conjunto X. Este tipo de relac ao pode apresentar certas propriedades.
Seja X um conjunto n ao vazio e uma relac ao denida sobre X. Se para qualquer elemento
x X tivermos que x x, a relacao e uma relac ao reexiva. Uma relac ao e dita simetrica se
sempre que x y tambem tivermos y x. Finalmente, uma relacao e dita transitiva se x y
e y z implicar em x z.
Temos exemplos de relacoes que satisfazem algumas ou todas as propriedades acima. A Relac ao
<, por exemplo, denida sobre R, e transitiva, mas n ao e simetrica nem reexiva. A relac ao de
igualdade = e reexiva, simetrica e transitiva. Vale lembrar que nenhuma das tres propriedades
pode ser deduzida das outras: trabalhando com conjuntos nitos conseguimos facilmente denir
relac oes que atendam nenhuma, apenas uma ou apenas duas das propriedades reexiva, simetrica
e transitiva.
As relac oes que s ao reexivas, simetricas e transitivas, como a relacao de igualdade, s ao
chamadas de Relacoes de Equivalencia. Mas o que uma relacao de equivalencia faz com o con-
37
Captulo 4 Aritmetica Modular
junto X sobre o qual est a denida? Ela classica os elementos de X, que possuem propriedades
semelhantes, em subconjuntos de X. Esses subconjuntos de X, determinados por uma relacao de
equivalencia, s ao chamados Classes de Equivalencia.
DEFINI C
AO. (1) Como todo elemento de x pertence a sua propria classe, devido a propriedade
simetrica, temos que
_
xX
x = X
.
(2) Sejam x e y duas classes distintas de X, ou seja, existe um elemento que pertence a uma
delas e que n ao pertence `a outra. Suponha que exista um elemento z X tal que z x y.
38
Inteiros M odulo n Secao 4.2
Isto signica que z x e z y. Pela proposic ao anterior, temos z = x z = y, o que nos leva a
x = y, o que contradiz a hip otese de x e y serem classes distintas.
Portanto x y = .
Os dois itens da proposicao anterior nos dizem que as classes de equivalencia de um conjunto
X por uma relac ao formam uma partic ao de X.
O conjunto das classes de equivalencia de em X e chamado conjunto quociente de X por .
Os elementos do conjunto quociente sao subconjuntos de X - as classes de equivalencia. Ou
seja, o conjunto quociente nao e subconjunto de X, mas subconjunto do conjunto das partes de X.
Lembre-se que o conjunto das partes de X e o conjunto cujos elementos s ao todos os subconjuntos
de X.
4.2 Inteiros M odulo n
Usamos congruencias diariamente: na contagem das horas, dos minutos, dos segundos, na con-
tagem dos dias, semanas, meses, na medi cao de angulos, etc.
Vamos denir uma rela cao em Z muito util na Teoria dos N umeros: a relacao de congruencia
m odulo n.
DEFINI C
AO 4.4.1. Seja a Z
n
. A classe Z
n
e o inverso de a se a equacao a = 1 e
vericada em Z
n
.
Segundo essa denic ao, a classe nula nao possui inverso, pois
0 = 0 = 0 ,= 1, Z
n
O que ocorre de diferente em Z
n
e que outros elementos diferentes de 0 podem nao possuir
inverso tambem.
Suponha que a Z
n
possua inverso . Isso signica que a = 1, e essa equac ao equivale a
dizer que a 1 e divisvel por n, ou seja, existe um inteiro k tal que a 1 = kn, ou ainda
a kn = 1.
Esta ultima equacao nos leva a concluir que mdc(a, n) = 1. Portanto, se a possui inverso em Z
n
ent ao mdc(a, n) = 1. Sera que a reciproca e verdadeira?
Seja a um inteiro e suponha que mdc(a, n) = 1. Sabemos que existem inteiros e tais que
a + n = 1
e tais e s ao calculados usando-se o algoritmo euclidiano estendido. Mas
a + n = 1 a 1 = n() a = 1
Portanto a classe calculada pelo algoritmo euclidiano estendido e o inverso de a em Z
n
.
Concluimos que se mdc(a, n) = 1, entao a classe a possui inverso em Z
n
. Isso demonstra o
seguinte teorema.
TEOREMA 4.4.2 (Teorema da Inversao). A classe a possui inverso em Z
n
se, e somente se, a e
n sao primos entre s.
47
Captulo 4 Aritmetica Modular
Observemos que a demonstracao feita tambem nos diz como calcular o inverso quando ele
existe: basta usarmos o algoritmo euclidiano estendido.
Por exemplo, qual o inverso de 5 em Z
27
? Vamos aplicar o algoritmo euclidiano estendido.
restos quocientes x y
27 - 1 0
5 - 0 1
2 5 1 -5
1 2 -2 11
Temos ent ao que mdc(5, 27) = 1, logo 5 possui inverso em Z
27
. E mais
5 11 27 2 = 1 5 11 = 1
ou seja, 11 e o inverso de 5 em Z
27
.
Vamos nos ater mais aos elementos inversveis de Z
n
. O conjunto do elementos de Z
n
que
possuem inverso ser a denotato por U(n).
U(n) = a Z
n
: mdc(a, n) = 1 (4.8)
E simples determinar quais s ao os elementos de U(p) quando p e primo. Nessa situac ao,
mdc(a, p) = 1 signica que p n ao divide a. Se p divide a, ent ao a = 0. Sendo assim, quando p e
primo, todas as classes diferentes de 0 possuem inverso.
U(p) = Z
p
0
Mas isso s o vale quando p e primo. Em Z
4
= 0, 1, 2, 3 os unicos primos com 4 sao 1 e 3,
portanto
U(4) = 1, 3
Em Z
8
= 0, 1, 2, 3, 4, 5, 6, 7 temos U(8) = 1, 3, 5, 7.
Uma caracterstica importante de U(n) e que o produto de dois elementos de U(n) ainda e um
elemento de U(n).
(1)
Se a e b s ao elementos de U(n), eles possuem inversos e , respectivamente. Vejamos que a b
tambem possui inverso, e portanto est a em U(n). Lembremos que a operacao de Z
n
e associativa
e comutativa, da
(a b) ( ) = (a ) (b ) = 1 1 = 1
Portanto e o inverso de a b.
1
Essa e uma caracterstica necessaria para U(n) ser grupo. Mais adiante veremos que U(n) munido da
operacao e um grupo; mais ainda, e um grupo abeliano.
48
Divisao Modular Secao 4.4
O conjunto U(n) ser a alvo de nossas aten coes nos proximos captulos. Duas coisas que faremos:
Determinar o n umero de elementos de U(n) em fun cao de n;
Descobrir quando U(n) tem uma raiz primitiva.
Vamos denir o que e raiz primitiva e ver exemplos.
DEFINI C
AO 4.4.3. Uma classe a de U(n) e uma raiz primitiva se todo elemento de U(n) e igual
a uma potencia de a.
Por exemplo, 3 e uma raiz primitiva de U(7)
3
1
= 3
3
2
= 2
3
3
= 6
3
4
= 4
3
5
= 5
3
6
= 1
_
_
U(7)
Ainda em U(7), vemos que 2 n ao e uma raiz primitiva. De fato, como 2
3
1 (mod 7), se r e
um inteiro temos que r = 3k + s, com s = 0, 1, 2. Da,
2
r
_
2
3k
(2
3
)
k
1
2
3k+1
(2
3
)
k
2 2
2
3k+2
(2
3
)
k
4 4
(mod 7)
Portanto, como qualquer potencia de 2 e congruente a 1, 2 ou 4, m odulo 7, 2 n ao e uma raiz
primitiva de U(7)
Agora que denimos o que sao elementos inversveis em Z
n
, podemos falar de divisoes em
Z
n
.
Se queremos dividir a por b, e necess ario saber se b est a em U(n). Se b / U(n), a divis ao e
impossvel. Se b U(n), calculamos o inverso de b, digamos . Da, a b = a .
O teorema da invers ao nos ajuda a resolver congruencias lineares. Uma congruencia linear e
uma equacao como a seguinte:
ax b (mod n)
com a, b Z.
Para encontrarmos quais valores de x s ao solucoes da congruencia, precisamos dividir ambos
os membros por a, para que possamos isolar x. Se a for inversvel m odulo n, isto e, a U(n),
ent ao a congruencia tem uma unica solucao em Z
n
: se e o inverso de a em Z
n
, temos
a x = b a x = b x = b
49
Captulo 4 Aritmetica Modular
Por exemplo, considere a congruencia 3x 12 (mod 7). Note que estamos trabalhando em
Z
7
. Como 3 e primo com 7, ele possui inverso modulo 7, a saber
3 5 = 15 = 1
ou seja, 5 e o inverso de 3 em Z
7
. Portanto temos
3x 12 (mod 7) x 5 12 60 4 (mod 7)
Agora, se na congruencia ax b (mod n) tivermos mdc(a, n) ,= 1, pode ou n ao existir soluc ao
em Z
n
. Vejamos dois exemplos.
A equacao 2x 1 (mod 8) n ao tem solu cao. De fato, se existisse uma solu cao inteira x
0
, isso
signicaria que 2x
0
1 e divisvel por 8, ou seja, existiria um inteiro k tal que
2x
0
1 = 8k
mas na equa cao acima temos um inteiro mpar no lado esquerdo e um inteiro par no lado direito,
o que e impossvel. Portanto realmente 2x 1 (mod 8) nao tem soluc ao. Nesse caso tnhamos
mdc(2, 8) ,= 1.
Considere agora, ainda em Z
8
, a equac ao 6x 2 (mod 8). Nesse caso, mesmo com
mdc(6, 8) ,= 1, a equac ao apresenta soluc ao, mas n ao unica. De fato
6 3 18 2 (mod 8) 3 e solu c ao.
6 7 42 2 (mod 8) 7 e solu c ao.
e portanto a equac ao tem duas soluc oes distintas em Z
8
. Portanto, quando na equac ao
ax b (mod n) tivermos mdc(a, n) ,= 1, precisamos analisar com calma a equac ao, pois tudo
pode acontecer.
O que zemos ate agora foi estudar as ferramentas b asicas que nos permitirao entender e
demonstrar teoremas que fundamentam o funcionamento da criptograa RSA. Comecaremos no
proximo captulo com o Pequeno Teorema de Fermat.
50
Captulo
5
Fermat e Primalidade
O pequeno teorema de Fermat arma que se p e um n umero primo e a e um inteiro qualquer,
ent ao p divide a
p
a. Casos particulares j a eram conhecidos antes de Fermat obter este resultado
geral. Os chineses sabiam que se p e primo, ent ao p divide 2
p
2. Usaremos o teorema de Fermat
na busca por testes de primalidade.
5.1 Pequeno Teorema de Fermat
TEOREMA 5.1.1 (Pequeno Teorema de Fermat). Seja p um n umero primo e a um n umero inteiro
qualquer. Entao
a
p
a (mod p) (5.1)
A demonstrac ao deste teorema se da por indu cao sobre a, mas antes precisamos demonstrar
um lema auxiliar.
LEMA 5.1.2. Seja p um n umero primo e a e b inteiros quaisquer. Entao
(a + b)
p
a
p
+ b
p
(mod p)
DEMONSTRA C
AO. Usando o binomio de Newton para expandir o lado esquerdo da equac ao acima,
obtemos.
(a + b)
p
= a
p
+ b
p
+
p1
i=1
_
p
i
_
a
pi
b
i
Para que o lema esteja provado, basta mostrarmos que
p1
i=1
_
p
i
_
a
pi
b
i
0 (mod p)
Observe o n umero binomial
_
p
i
_
=
p(p 1)(p 2) (p i + 1)
i!
51
Captulo 5 Fermat e Primalidade
Sabemos que este n umero e inteiro, ou seja, o demoninador i! e totalmente cancelado por termos
do numerador. Como 1 i p 1 e p e primo, o fator p que aparece no numerador n ao e
cancelado por nenhum fator do denominador. Logo
_
p
i
_
e m ultiplo de p quando 1 i p 1, e
portanto
p1
i=1
_
p
i
_
a
pi
b
i
0 (mod p)
nalizando a demonstrac ao do lema.
Agora vamos demonstrar o Pequeno Teorema de Fermat, que chamaremos daqui em diante
apenas de Teorema de Fermat.
DEMONSTRA C
AO. Vamos demonstrar usando o segundo princpio de induc ao nita sobre o grau
m do polin omio h.
Se m = 1, ent ao h = aX + b para certo inteiros a e b. Da,
h = aX + b = aX + b + a a = a(X ) + a + b = a(X ) + h()
Neste caso, tomamos q = a.
Agora, suponhamos que o resultado vale para qualquer polin omio com coecientes inteiros de
grau m1. Queremos mostrar que o resultado vale tambem para um polinomio h de grau m.
Seja
h = a
m
X
m
+ a
m1
X
m1
+ + a
1
X + a
0
Dena
g = h a
m
X
m1
(X )
55
Captulo 5 Fermat e Primalidade
ou seja
g = a
0
+ a
1
X + + a
m1
X
m1
+ a
m
X
m
a
m
X
m
+ a
m
X
m1
= (a
m1
+ a
m
)X
m1
+ a
m2
X
m2
+ + a
1
X + a
0
Sendo assim, g tem grau m1. Pela hip otese de induc ao, existe um polin omio j com coecientes
inteiros e grau m2 tal que
g = j (X ) + g()
Mas g() = h(), logo g = j (X ) + h(). Da denic ao de g temos
h = g + a
m
X
m1
(X )
Portanto
h = j (X ) + h() + a
m
X
m1
(X )
= (j + a
m
X
m1
)(X ) + h()
Como j tem grau m2, segue que (j a
m
X
m1
) tem grau m1, provando assim o lema.
Agora estamos em condi coes de demonstrar o teorema seguinte.
TEOREMA 5.2.2. Seja f um polinomio de grau k com coecientes inteiros e coeciente lder 1.
Se p e um n umero primo, entao f tem no maximo k razes distintas em Z
p
.
Obs: se f = a
0
+a
1
X+ +a
n
X
n
Z[X], identicamos f com f = a
0
+a
1
X+ +a
n
X
n
Z
p
[X].
DEMONSTRA C
k
i=0
a
i
b
ki
.
Observamos que a notac ao usada para o produto de um elemento de A por um elemento
de A[X] e a mesma empregada para o produto de dois elementos de A[X]. Isso nao acarreta
ambiguidade, uma vez que sua distin cao e notada facilmente pelo contexto, alem do mais essa
pratica e utilizada na grande maioria dos textos que abordam esse assunto.
As propriedades que as operac oes + e (produto de polinomios) possuem dependem direta-
mente das propriedades das operac oes + e do anel A.
Denotamos por:
1 = 1
A[X]
= (1
A
, 0, 0, ...) e X = (0, 1
A
, 0, 0, ...)
Obsevamos que 1
A[X]
e a unidade de A[X] e
X
2
= X X = (0, 0, 1
A
, 0, 0, 0, ...)
X
3
= X
2
X = (0, 0, 0, 1
A
, 0, 0, ...)
e em geral
X
n
= X
n1
X = (a
0
, a
1
, a
2
, ..., a
j
, ...)
sendo que a
i
= 0 i ,= n e a
n
= 1
A
. Desta forma, todo polinomio p A[X] pode ser escrito na
forma
p = (a
0
, a
1
, ..., a
n
, 0, 0, 0, ...) = a
0
+ a
1
X + + a
n
X
n
A cada polinomio p = (a
0
, a
1
, a
2
, , a
n
, 0, 0, ...) A[X] podemos associar a funcao polinomial
p : A A, denida por p(x) = a
0
+ a
1
x + a
2
x
2
+ + a
n
x
n
.
Mas o que tudo isso tem haver com a demonstracao anterior?
Na equac ao (5.3), temos uma igualdade de polin omios. No caso, estamos trabalhando com
Z[X]. Os polinomios envolvidos s ao f, X e q. Logo na sequencia, avaliamos a func ao
polinomial f(x) no ponto . O que se passa no lado direito dessa equac ao? A rigor, deveriamos
primeiramente multiplicar os polinomios X e q para depois avaliarmos a func ao polinomial
resultante em , mas o que fazemos e avaliar as funcoes polinomiais x e q(x) cada uma
separadamente e depois multiplicar os resultados. Quem garante que o resultado e o mesmo? A
comutatividade do anel sobre o qual denimos nossos polin omios e nossas func oes polin omiais. Se
o anel n ao for comutativo, isso pode n ao ser verdade.
58
Contando Razes Secao 5.2
Vejamos o que acontece, por exemplo, quando denimos o conjunto dos polinomios sobre o anel
M(2, R) das matrizes quadradas 2 2 de n umeros reais. Sabemos que esse anel n ao e comutativo.
Sejam p = A + BX + CX
2
e q = D + EX + FX
2
elementos de M(2, R)[X]. Para sabermos
qual e a fun cao polinomial (p q)(x), devemos multiplicar os polin omios p e q segundo as operacoes
que denimos em M(2, R)[X]. Sendo assim temos
p = (A, B, C, 0, 0, 0, ...)
q = (D, E, F, 0, 0, 0, ...)
logo
p q = (AD, AE + BD, AF + BE + CD, BF + CE, CF, 0, 0, ...).
Da, (p q)(x) = AD + (AE + BD)x + (AF + BE + CD)x
2
+ (BF + CE)x
3
+ CFx
4
Sejam, por exemplo, as matrizes A, B, C, D, E e F dadas por:
A =
7 9
1 5
B =
5 4
0 9
C =
1 0
0 9
D =
1 0
1 1
E =
7 5
0 8
F =
4 2
2 3
1 2
3 4
1 2
3 4
7 9
1 5
5 4
0 9
1 2
3 4
1 0
0 9
1 2
3 4
2
=
5 3
55 59
1 2
3 4
1 0
1 1
7 5
0 8
1 2
3 4
4 2
2 3
1 2
3 4
2
=
9 10
6 13
Portanto temos p
1 2
3 4
1 2
3 4
63 89
849 1317
, enquanto que
(p q)
1 2
3 4
7 9
1 5
1 0
1 1
7 9
1 5
7 5
0 8
5 4
0 9
1 0
1 1
1 2
3 4
+
+
7 9
1 5
4 2
2 3
5 4
0 9
7 5
0 8
1 0
0 9
1 0
1 1
1 2
3 4
2
+
+
5 4
0 9
4 2
2 3
1 0
0 9
7 5
0 8
1 2
3 4
3
+
+
1 0
0 9
4 2
2 3
1 2
3 4
4
=
75 37
525 561
59
Captulo 5 Fermat e Primalidade
Portanto, em M(2, R)[X] nem sempre e verdade que p() q() = (p q)(). Felizmente, no
caso do teorema que demonstramos, como Z e comutativo, e verdade que p() q() = (p q)()
para quaisquer polin omios p, q e qualquer inteiro .
5.3 Pseudoprimos
O teorema de Fermat nos deu uma importante relac ao entre n umeros inteiros e primos.
E natural
a busca por testes de primalidade usando este resultado. O que veremos nesta sec ao sao testes
que foram descobertos usando-se o teorema de Fermat, direta ou indiretamente. Como veremos,
nenhum deles e o que se estava procurando, pois n ao revelam se o e n umero primo, apenas detectam
se ele e composto. Mas isso, de certa forma, j a e um avanco.
O teorema de Fermat diz que se p e primo e a e um inteiro, ent ao
a
p
a (mod p)
Considere um inteiro n mpar. Queremos saber se n e composto ou primo. Se encontrarmos
em inteiro b tal que
b
n
, b (mod n)
o que podemos concluir? Se n fosse primo, teramos b
n
b (mod n), portanto n e obrigatoria-
mente composto.
Conseguimos um teste que nos diz que um n umero n e composto sem encontrarmos nenhum
fator de n. Mas onde procurar o inteiro b? Segundo o teorema de Fermat, b pode ser qual-
quer inteiro. Mas podemos restringir nossa busca a inteiros satisfazendo 1 < b < n 1, pois
0
n
0 (mod n), 1
n
1 (mod n) e (n 1)
n
n 1 (mod n). As duas primeiras congruencias
s ao obvias. Para justicar a terceira congruencia, observe que n 1 1 (mod n). Como n e
mpar, temos
(n 1)
n
(1)
n
1 n 1 (mod n)
Alem disso, nao precisamos procurar inteiros b n, pois qualquer inteiro maior do que n e c ongruo
a algum outro inteiro no itervalo 0 b n 1.
Portanto, se queremos encontrar um inteiro b de modo que
b
n
, b (mod n)
basta testarmos inteiros no intervalo 1 < b < n 1.
Como vamos testar inteiros entre 1 e n 1, qualquer inteiro nesse intervalo n ao e divisvel por
n, portanto podemos usar a segunda versao do teorema de Fermat.
TESTE 5.3.1. Se n > 0 e 1 < b < n 1 sao n umeros inteiros e b
n1
, 1 (mod n) entao n e um
60
Pseudoprimos Secao 5.4
n umero composto. O n umero b e conhecido como uma testemunha do fato de n ser composto.
Conseguimos um teste para dizer se n e composto. Mas gostaramos de algo para armar se n
e primo. Alguem poderia dizer: se um n umero n mpar satisfaz b
n1
1 (mod n) para algum b,
1 < b < n 1, entao n e primo.
Infelizmente, tal teste e falso. O teorema de Fermat vale para qualquer inteiro b, logo a validade
da equac ao do teorema para um b particular nao garante a primalidade de n. Mesmo assim, Leibniz
usava isso como teste de primalidade, tomando b = 2 para facilitar os calculos. Por exemplo
2
340
2
937+7
(2
9
)
3
7 2
7
171
36
171 2
7
256
18
64 (256
2
)
9
64 64
9
64
(64
2
)
5
4
5
1024 1 (mod 341)
e pelo teste que Leibniz usava, 341 seria primo, mas
341 = 11 31.
Deste raciocnio tiramos a seguinte denic ao.
DEFINI C
E dicil acreditarmos na existencia de tais n umeros antes de ver um. Sendo assim, vejamos
um exemplo.
Armamos que 561 e um n umero de Carmichael. Precisamos mostrar que b
561
b (mod 561)
para b = 2, 3, 4, , 559, um total de 558 bases. N ao parece ser um bom caminho.
Primeiramente, observe que 561 e composto (qualquer n umero primo p satisfaz b
p
p (mod p),
mas p n ao e um n umero de Carmichael).
561 = 3 11 17
Agora, considere b um inteiro entre 2 e 559. Se mostrarmos que b
561
b e divisvel por 3, por 11 e
por 17, como estes s ao primos distintos, segue da segunda parte da proposi cao 2.1.3 que o produto
destes primos divide b
561
b. Mas este produto e 561, e dizer que 561 divide b
561
b e equivalente
a
b
561
b (mod 561).
62
N umeros de Carmichael Secao 5.4
Comecemos pelo fator 3
(1) Se 3 divide b, seque imediatamente que 3 divide b
561
b. Agora, se 3 nao divide b, segue
do teorema de Fermat que b
31
1 (mod 3). Da
b
561
b
2280+1
(b
2
)
280
b b (mod 3)
onde a ultima congruencia segue do teorema de Fermat. Portanto b
561
b e divisvel por 3.
(2) Se 11 divide b, seque imediatamente que 11 divide b
561
b. Agora, se 11 n ao divide b, segue
do teorema de Fermat que b
111
1 (mod 11). Da
b
561
b
1056+1
(b
10
)
56
b b (mod 11)
onde a ultima congruencia segue do teorema de Fermat. Portanto b
561
b e divisvel por 11.
(3) Se 17 divide b, seque imediatamente que 17 divide b
561
b. Agora, se 17 n ao divide b, segue
do teorema de Fermat que b
171
1 (mod 17). Da
b
561
b
1635+1
(b
16
)
35
b b (mod 17)
onde a ultima congruencia segue do teorema de Fermat. Portanto b
561
b e divisvel por 17.
Se b
561
b e divisvel por 3, 11 e 17, e estes s ao primos entre s, temos que b
561
b e divisvel
por 3 11 17 = 561, ou seja
b
561
b (mod 561).
Como b e qualquer inteiro entre 2 e 559, segue que 561 e um n umero de Carmichael.
Tivemos um pouco de sorte. Como usamos o teorema de Fermat, tivemos que dividir 561
por p 1, para p = 3, 11, 17. Felizmente, todas estas divis oes tiveram resto igual a 1, o que nos
permitiu concluir o raciocnio facilmente. Alem disso, os fatores primos de 561 apareceram apenas
uma vez em sua decomposic ao, o que nos permitiu utilizar a proposic ao 2.1.3.
Mas sera que sempre teremos tanta sorte ao tentarmos provar que um n umero e de Carmichael?
Na verdade, as propriedades destacadas no paragrafo anterior n ao s ao exclusivas ou acidentais para
561. Elas constituem uma caracteriza cao do n umeros de Carmichael.
TEOREMA 5.4.3 (Teorema de Korselt). Um inteiro positivo composto mpar n e um n umero de
Carmichael se, e somente se, cada fator primo p de n satisfaz as duas condicoes seguintes:
(1) p
2
nao divide n;
(2) p 1 divide n 1.
Para mostrarmos que se um n umero satisfaz (1) e (2) ent ao ele e um n umero de Carmichael,
usaremos apenas conceitos que ja foram discutidos. Da mesma forma, para mostrar que um
n umero de Carmichael satisfaz (1), tambem usaremos apenas ideias ja apresentadas ate aqui.
63
Captulo 5 Fermat e Primalidade
Entretanto, para mostrar que qualquer n umero de Carmichael satisfaz (2), precisamos do auxlio
da teoria dos grupos, que estudaremos num captulo posterior. Por hora, apenas enunciaremos
denicoes e resultados necess arios, sem demonstra-los aqui. As justicativas destes resultados
virao em momento oportuno.
Teorema da Raiz Primitiva: Se p e primo, entao (U(p), ) e um grupo cclico, ou seja, e
gerado por um unico elemento.
Dado um grupo (G, ), a ordem de a G e o menor inteiro positivo k tal que a
k
= e, onde
e e o elemento neutro do grupo G. Se a
k
,= e para qualquer inteiro k, dizemos que a tem
ordem innita.
A ordem de um grupo cclico nito (G, ) gerado por a e igual a ordem do seu gerador a.
Lema Chave: Sejam G um grupo e a G. Um inteiro positivo t satisfaz a
t
= e se, e somente,
se, t e divisvel pela ordem de a.
Vamos ` a demonstrac ao do teorema.
DEMONSTRA C
E facil vericar que se um inteiro n e um pseudoprimo forte para uma base b, entao n e um
pseudoprimo para a base b: sejam k e q inteiros, q mpar, tais que n 1 = 2
k
q. Se n e um
pseudoprimo forte para uma base b temos que
b
q
1 (mod n) ou b
2
j
q
1 (mod n) para algum j , 0 < j n 1
No primeiro caso, b
n1
b
2
k
q
(b
q
)
2
k
(1)
2
k
1 (mod n). No segundo caso,
b
n1
b
2
j
q
b
2
j+(nj)
q
b
2
j
2
nj
q
(b
2
j
q
)
2
nj
(1)
2
nj
1 (mod n). Em ambos os casos
temos que n e um pseudoprimo para a base b.
67
Captulo 5 Fermat e Primalidade
68
Captulo
6
Sistemas de Congruencias
Neste captulo veremos como resolver um sistema de congruencias, utilizando o Teorema Chines
do Resto, e encerraremos com uma aplicac ao deste resultado com um metodo de criptograa para
partilhar senhas.
6.1 Equacoes Lineares
Uma equacao de congruencia linear a uma incognita e uma sentenca do tipo
ax b (mod n)
Para resolver esta equa cao, devemos analisar duas possibilidades:
a U(n)
a / U(n)
Quando a U(n), sendo = a
1
em Z
n
, temos
ax b (mod n) x b (mod n)
Se n e primo e a , 0 (mod n), a equa cao ax b (mod n) sempre tem uma unica soluc ao em
Z
n
. Estudemos, ent ao, o caso em que a n ao e inversvel em Z
n
. Neste caso estamos considerando
n composto.
ax b (mod n) (6.1)
Dizer que a n ao e inversvel em Z
n
equivale dizer que mdc(a, n) ,= 1. Se a equac ao (6.1) possui
soluc ao, signica que b ax e divisvel por n para algum inteiro x, ou seja, existem inteiros x e y
tais que
ax b = ny ax ny = b (6.2)
69
Captulo 6 Sistemas de Congruencias
ou seja, a equacao diofantina linear em x e y
ax ny = b
possui soluc ao. Mas isto so e possvel se mdc(a, n) dividir b. Suponhamos que d = mdc(a, n)
divida b.
Sendo d um divisor de a, temos que a = d a
t
para algum inteiro a
t
. Analogamente, b = d b
t
e n = d n
t
, para certos inteiros b
t
e n
t
. Substituindo isso em (6.2)
ax ny = b d a
t
x d n
t
y = d b
t
a
t
x n
t
y = b
t
Esta ultima equac ao e equivalente ` a seguinte congruencia:
a
t
x b
t
(mod n
t
)
Chegamos, portanto, a uma nova equac ao congruencia modulo n
t
, um divisor de n. Note que
mdc(a
t
, n
t
) = 1, pois
a + n = d a
t
d + n
t
d = d a
t
+ n
t
= 1
o que nos leva a concluir que esta nova congruencia sempre tem solu cao. Parece que simplicamos
o problema, mas e preciso ter mais cautela. Vejamos um exemplo.
Considere a congruencia 6x 4 (mod 8). Como mdc(6, 8) = 2 ,= 1, 6 n ao possui inverso em
Z
8
; entretanto, podemos substituir a congruencia original por outra equivalente.
6x 4 (mod 8) 6x 4 = 8y 3x 2 = 4y 3x 2 (mod 4)
Em Z
4
, 3 e seu pr oprio inverso, portanto
3x 2 (mod 4) x 3 2 6 2 (mod 4) (6.3)
N ao ha nada de errado com o que zemos ate aqui. Como vimos anteriormente, a nova
congruencia admite soluc ao. Entretanto est avamos interessados em solucoes de uma equac ao
m odulo 8, e acabamos com uma soluc ao de uma equa cao m odulo 4. O que fazer, entao? Basta
transformar (6.3) em uma expressao entre inteiros, ou seja, sem congruencias, e analisar como
estas soluc oes se comportam m odulo 8.
x 2 (mod 4) x = 2 + 4k
onde k e um inteiro qualquer. Temos dois casos a considerar:
70
Equa c oes Lineares Secao 6.1
i) k par. Neste caso, temos k = 2m, para algum inteiro m. Da,
x = 2 + 8m x 2 (mod 8)
Portanto x = 2 e uma soluc ao para 6x 4 (mod 8).
ii) k mpar. Neste caso, escrevemos k = 2m + 1, e chegamos `a x = 6 + 8m. Portanto
x 6 (mod 8) e outra soluc ao de 6x 4 (mod 8).
Portanto a congruencia 6x 4 (mod 8) possui duas solucoes em Z
8
. Note que a equacao e
linear, mas possui duas soluc oes. Como vimos no captulo anterior, uma equac ao de grau k possui
no m aximo k soluc oes distintas se a congruencia e m odulo um primo; tambem destacamos que
isto pode n ao acontecer quando a congruencia e m odulo um composto, como neste exemplo.
Vejamos como resolver um sistema de congruencias. Para isso, resolveremos um problema cuja
soluc ao passa pela resolu cao de um sistema de congruencia.
Tres satelites passarao sobre uma certa cidade esta noite. O primeiro satelite
passara `a 1h, o segundo `as 4h, e o terceiro `as 8h. Os perodos respectivos sao de
13, 15 e 19 horas. Determine quantas horas decorrerao, a partir da meia-noite,
ate que os tres satelites passem juntos sobre a cidade.
Seja x o n umero de horas, contadas a partir da meia noite, quando os tres satelites passarao
juntos sobre a cidade. O primeiro satelite passa a cada 13 horas a partir da 1h da madrugada.
Portanto, precisamos ter x = 13t + 1, para algum t positivo. Essa equac ao equivale `a:
x 1 (mod 13)
Correspondentes aos outros dois satelites, temos as seguintes equa coes.
x 4 (mod 15)
x 8 (mod 19)
Os tres satelites passarao juntos sobre a cidade para valores de x que satisfacam as tres equacoes
simultaneamente. Portanto, precisamos resolver o seguinte sistema.
_
_
x 1 (mod 13)
x 4 (mod 15)
x 8 (mod 19)
As tres equac oes possuem modulos diferentes, logo nao podemos soma-las ou subtra-las entre
s. Transformaremos, como anteriormente, estas equac oes de congruencias em rela coes entre in-
71
Captulo 6 Sistemas de Congruencias
teiros. x 1 (mod 13) equivale `a x = 1+13t. Mas x e um inteiro, e portanto podemos subtitu-lo
na segunda equac ao.
x 4 (mod 15) 1 + 13t 4 (mod 15) 13t 3 (mod 15)
Como 13 e inversvel m odulo 15, com inverso igual `a 7, temos
13t 3 (mod 15) t 21 (mod 15) t 6 (mod 15)
Portanto t = 6 + 15u, u Z. Da
x = 1 + 13t = 1 + 13 (6 + 15u) = 79 + 195u.
Note que qualquer inteiro da forma 79 + 195u satisfaz `as duas primeiras equa coes do sistema.
Substituindo x = 79 + 195u na ultima equacao do sistema chegamos `a
79 + 195u 8 (mod 19) 5u 5 (mod 19)
Sendo 5 inversvel m odulo 19, temos u 1 (mod 19), ou seja,
u = 1 + 19v
para algum inteiro v. Da,
x = 79 + 195u = 79 + 195(1 + 19v) = 274 + 3705v
Assim, qualquer valor de x da forma 274 + 3705v satisfaz as 3 equacoes.
E claro que o menor
inteiro positivo de x que satisfaz o sistema e 274, ou seja, os 3 satelites passar ao juntos sobre a
cidade 274 horas depois da meia-noite. E mais, esse fenomeno se repete a cada 3705 horas.
O que zemos foi dividir o sistema original em outros sistemas de duas equa coes. Resolvendo
as duas primeiras equa coes obtivemos x = 79 + 195u, que corresponde a uma nova equacao
x 79 (mod 195). Passamos, ent ao, a resolver o sistema
_
x 79 (mod 195)
x 8 (mod 19)
De modo geral, um sistema de v arias equacoes e resolvido utilizando-se varios sistemas de duas
equac oes. Por este motivo, e suciente entendermos o algoritmo para resolver sistemas de duas
equac oes.
72
Equa c oes Lineares Secao 6.1
Considere o sistema
_
x a (mod m)
x b (mod n)
A primeira equac ao nos permite escrever
x = a + my , y Z
Substituindo na segunda equa cao temos
my b a (mod n)
J a vimos que esta equac ao s o tem solu cao se mdc(m, n) dividir b a. Assumindo que
mdc(m, n) = 1, temos que m tem inverso em Z
n
. Seja o inverso de m em Z
n
. Chegamos
a seguinte solu cao
y (b a) (mod n)
ou seja, y = (b a) + nk, para algum inteiro k. Da,
x = a + my = a + m((b a) + nk) = a + m(b a) + mnk
Como m = 1 em Z
n
, existe inteiro tal que 1 m = n. Da,
x = a am + mb + mnk = a(1 m) + mb + mnk
= an + mb + mnk
Qual a vantagem de escrever a soluc ao desta maneira? Os inteiros e s ao f aceis de se
obter. Temos 1 = m+n. Como estamos supondo mdc(m, n) = 1, basta aplicarmos o algoritmo
euclidiano estendido.
Portanto, se mdc(m, n) = 1, o sistema tem como soluc ao inteiros da forma an+bm+kmn,
onde k e um inteiro qualquer.
Mas quantas s ao as soluc oes deste sistema?
E claro que s ao innitas, pois para cada inteiro k
temos uma solucao distinta x
k
. Digamos que x e y sejam dois inteiros que sao soluc oes do sistema
_
x a (mod m)
x b (mod n)
(6.4)
Se x e y s ao solu coes, temos que x a (mod m) e y a (mod m). Como essas duas
congruencias tem mesmo m odulo, podemos subtrair uma da outra, de modo que obtemos
x y 0 (mod m)
73
Captulo 6 Sistemas de Congruencias
ou seja, m divide x y. Repetindo esse raciocnio, mas usando a segunda equa cao do sis-
tema, conclumos que n divide x y. Se tivermos mdc(m, n) = 1, segue da segunda parte da
Proposi cao 2.1.3, do captulo 2, que mn divide x y, ou seja, se x e y s ao solucoes de (6.4), ent ao
x y (mod mn). O sistema (6.4) admite innitas soluc oes inteiras, mas uma unica soluc ao em
Z
mn
. Este resultado e conhecido como
TEOREMA 6.1.1 (Teorema Chines do Resto). Sejam m e n inteiros positivos, primos entre s. O
sistema
_
x a (mod m)
x b (mod n)
sempre tem uma unica solucao em Z
mn
.
6.2 Congruencia M odulo N umeros N ao Primos Entre S
Vimos que o sistema de congruencias
_
x a (mod m)
x b (mod n)
sempre admite uma unica solucao em Z
mn
se mdc(m, n) = 1. Mas o que acontece se n ao tivermos
a hipotese mdc(m, n) = 1? Vejamos alguns exemplos.
Considere o sistema
x 3 (mod 12)
x 19 (mod 8)
Vamos proceder da mesma maneira como anteriormente. A equac ao x 3 (mod 12) nos leva ` a
x = 3 + 12t. Substituindo na segunda equacao, temos
x 19 (mod 8) 3 + 12t 19 (mod 8)
12t 16 (mod 8)
Esta ultima equa cao nos permite escrever
12t = 16 + 8u.
Dividindo a equa cao por 4, chegamos ` a
3t = 4 + 2u
74
Potencias Secao 6.3
que equivale `a
3t 4 (mod 2).
Como 3 1 (mod 2) e 4 0 (mod 2), temos
t 0 (mod 2)
ou seja, t = 2k para algum inteiro k. Voltando `a express ao que nos d a o valor de x, obtemos
x = 3 + 12t x = 3 + 24k x 3 (mod 24)
Chegamos ` a uma unica solu cao, mas m odulo 24, e n ao modulo 8 12 = 96. Neste exemplo, o
sistema tinha solucao. Vejamos o que acontece quando tentamos resolver o sistema
x 4 (mod 9)
x 3 (mod 6)
Da primeira equa cao temos x = 4 + 9t. Substituindo na segunda equacao, chegamos ` a
4 + 9t 3 (mod 6)
9t 1 5 (mod 6)
Sabemos que a congruencia ax b (mod m) possui soluc ao se, e somente se, mdc(a, n) dividir
b. Como mdc(9, 6) = 3 e 3 ,[5, ent ao 9t 5 (mod 6) n ao possui soluc ao, e portanto o sistema
x 4 (mod 9)
x 3 (mod 6)
tambem n ao.
6.3 Potencias
O Teorema Chines do Resto pode ser enunciado para mais de duas equac oes.
TEOREMA 6.3.1. Sejam n
1
, n
2
, ..., n
k
inteiros positivos dois a dois primos entre s. Entao o
sistema
x a
1
(mod n
1
)
x a
2
(mod n
2
)
.
.
.
x a
k
(mod n
k
)
tem uma unica solucao em Z
n
1
n
k
.
75
Captulo 6 Sistemas de Congruencias
DEMONSTRA C
AO. A demonstra c ao e feita usando-se inducao nita sobre k. Ja vimos que o teorema
vale para k = 2. Suponhamos que o teorema valha para o inteiro k 1, ou seja, o sistema
x a
1
(mod n
1
)
x a
2
(mod n
2
)
.
.
.
x a
k1
(mod n
k1
)
admite uma unica solu cao b
k1
em Z
n
1
n
k1
. Resolver o sistema de k congruencias e equivalente
a resolver o sistema
x b
k
(mod n
1
n
k1
)
x a
k
(mod n
k
)
Como n
i
e n
j
s ao primos entre s, sempre que i ,= j, temos que os dois inteiros n
1
...n
k1
e n
k
tambem sao primos entre s. Logo, o sistema acima admite uma unica soluc ao em Z
n
1
n
k1
n
k
,
como queramos demonstrar.
Esta vers ao do Teorema Chines do Resto simplica o calculo de potencias m odulo n em alguns
casos. Suponhamos que n = p
1
p
2
p
k
, onde p
1
< < p
k
s ao primos. Dessa forma, temos que
cada fator primo p
i
aparece na decomposicao de n com multiplicidade 1.
Para encontrarmos a forma reduzida de a
m
m odulo n, iniciamos com o teorema de Fermat para
calcular a forma reduzida de a
m
m odulo p
i
, para cada um dos fatores primos de n. Digamos que
a
m
r
1
(mod p
1
) e 0 r
1
< p
1
a
m
r
2
(mod p
2
) e 0 r
2
< p
2
.
.
.
a
m
r
k
(mod p
k
) e 0 r
k
< p
k
Finalmente, para encontrarmos a forma reduzida de a
m
m odulo n, basta resolvermos o sistema
_
_
x r
1
(mod p
1
)
x r
2
(mod p
2
)
.
.
.
x r
k
(mod p
k
)
Como todos os modulos s ao primos, temos que o m aximo divisor comum entre dois quaisquer
76
Potencias Secao 6.3
deles e 1, portanto o sistema sempre tem solu cao. E mais, o teorema nos garante que existe uma
unica solucao r m odulo p
1
p
2
p
k
= n. Portanto
a
m
r (mod n)
e chegamos assim a forma reduzida de a
m
m odulo n. Vejamos um exemplo.
Qual a forma reduzida de 2
6754
m odulo 1155? Primeiramente observamos que 1155 = 35711,
fatores primos com multiplicidade 1. Calculemos a forma reduzida de 2
6754
a cada um destes
primos, usando o teorema de Fermat.
M odulo 3: 2
2
1 (mod 3)
6754 = 2 3377 2
6754
(2
2
)
3377
1
3377
1 (mod 3)
M odulo 5: 2
4
1 (mod 5)
6754 = 4 1688 + 2 2
6754
(2
4
)
1688
2
2
1
1688
4 4 (mod 5)
M odulo 7: 2
6
1 (mod 7)
6754 = 6 1125 + 4 2
6754
(2
6
)
1125
2
4
1
1125
16 2 (mod 7)
M odulo 11: 2
10
1 (mod 11)
6754 = 10 675 + 4 2
6754
(2
10
)
675
2
4
1
675
16 5 (mod 11)
Agora, basta resolvermos o sistema
_
_
x 1 (mod 3)
x 4 (mod 5)
x 2 (mod 7)
x 5 (mod 11)
Para tanto, usaremos o Algoritmo Chines do Resto. A primeira equac ao nos d a x = 1 + 3t.
Substituindo na segunda equa cao, temos
1 + 3t 4 (mod 5) 3t 3 (mod 5) t 1 (mod 5)
donde conclumos que t = 1 + 5u, e portanto
x = 1 + 3(1 + 5u) = 4 + 15u.
77
Captulo 6 Sistemas de Congruencias
Substituindo esta informac ao na terceira equac ao do sistema, temos
4 + 15u 2 (mod 7) 15u 2 (mod 7) u 5 (mod 7)
e portanto u = 5 + 7v, ou seja
x = 4 + 15(5 + 7v) = 79 + 105v.
Finalmente, usando a quarta equacao, chegamos `a
79 + 105v 5 (mod 11) 105v 74 (mod 11) 6v 3 (mod 11) v 6 (mod 11)
e ent ao v = 6 + 11w, e conclumos que
x = 79 + 105(6 + 11w) = 709 + 1155w
o que equivale ` a
x 709 (mod 1155)
ou seja
2
6754
709 (mod 1155)
6.4 Partilha de Senhas
Vamos encerrar o captulo vendo uma aplicacao do Teorema Chines do Resto num metodo que
permite compartilhar uma senha de um cofre entre v arias pessoas. Digamos que o cofre de um
banco e aberto por uma senha, e um certo n umero de funcion arios tem acesso ao cofre. A ideia
consiste em partilhar a senha entre os funcion arios, de modo que n ao seja possvel abrir o cofre
sem a presen ca de um n umero mnimo de funcion arios.
Para abrir o cofre, e necess ario uma senha, que e um n umero s. Digamos que o banco tenha
n funcion arios que tenham acesso ao cofre, e que k > 1 e o n umero mnimo de funcion arios que
devem estar presentes para que seja possvel a abertura do cofre. A cada funcionario ser a dada
sua parte da senha, que e um elemento de um conjunto S de n pares de inteiros positivos, de
modo que:
(1) qualquer subconjunto de S com k elementos permite determinar s facilmente;
(2) e muito difcil determinar s conhecendo menos do que k elementos de S.
Primeiramente, escolhemos um conjunto / de n inteiros positivos, dois a dois primos entre si.
Escolhidos tais inteiros, tomamos N igual ao produto dos k menores n umeros de / e M igual ao
78
Partilha de Senhas Secao 6.4
produto dos k 1 maiores n umeros de /. Dizemos que este conjunto tem limiar k se
N > M
Note que o modo como construmos N e M nos garante que o produto de k ou mais elementos
de / e sempre maior do que N e o produto de menos que k elementos e sempre menor do que
M. Depois que construmos o conjunto / e os n umeros N e M, escolhemos a senha s, de modo
que N > s > M. O conjunto S ser a composto pelos pares da forma (m, s
m
), onde m / e s
m
e
a forma reduzida de s m odulo m. Como s > M, segue que s > m para todo m /, e portanto
tambem temos que s
m
< s.
Suponha que mais de k funcion arios estejam no banco. Isto signica que sao conhecidos t
dentre os pares de S, com t k. Denotemos tais pares por (m
1
, s
1
), ..., (m
t
, s
t
). Resolvendo o
sistema de congruencias
x s
1
(mod m
1
)
x s
2
(mod m
2
)
.
.
.
x s
t
(mod m
t
)
encontraremos uma soluc ao x
0
. Pelo Teorema Chines do Resto, temos
x
0
s (mod m
1
...m
t
).
Mas ser a que podemos armar que x
0
= s?
E neste momento que usamos o fato do conjunto /
ter limiar k. Como t k, segue que
m
1
...m
t
N > s.
Pelo Teorema Chines do Resto, o sistema tem uma unica solucao menor que m
1
...m
t
. Mas s
tambem e soluc ao do sistema e s < m
1
...m
t
, portanto s = x
0
.
Nada nos impede de resolver o sistema no caso em que t < k. Entretanto, como o produto
de menos do que k m odulos de / e sempre menor do que s, a solu cao que encontraremos ser a
congruente a s, mas pode nao ser igual a s.
Facamos um exemplo numerico simples, apenas para xarmos as ideias. Digamos que ha 5
funcion arios e que pelo menos 3 devem estar presentes para que o cofre possa ser aberto. Portanto,
o conjunto / deve ter 5 elementos, e seu limiar deve ser 3. Uma escolha simples para /, usando
primos pequenos e
/ = 11, 13, 17, 19, 23
79
Captulo 6 Sistemas de Congruencias
Neste caso, o produto dos k = 3 menores n umeros de / e N = 11 13 17 = 2431, enquanto que
o produto dos k 1 = 2 maiores n umeros de / e M = 19 23 = 437. Como N > M, o conjunto
/ realmente tem limiar 3. O valor da senha s pode ser escolhido como sendo qualquer inteiro no
intervalo que vai de 437 a 2431. Escolhamos, por exemplo, s = 953. Para determinarmos os pares
do conjunto S que serao distribudos aos funcion arios, temos que calcular 953 m odulo m, para
cada m /.
953 7 (mod 11)
953 4 (mod 13)
953 1 (mod 17)
953 3 (mod 19)
953 10 (mod 23)
Dessa forma, temos
S = (11, 7); (13, 4); (17, 1); (19, 3); (23, 10)
Finalmente, o que acontece se os funcion arios que tem senhas (11, 7), (17, 1) e (23, 10) est ao
no banco? Para recuperar a senha s devemos resolver o sistema
x 7 (mod 11)
x 1 (mod 17)
x 10 (mod 23)
Usando o algoritmo que discutimos nas primeiras sec oes deste captulo, obtemos como soluc ao geral
x = 953 + 4301k, onde k e um inteiro positivo. Portanto, x 953 (mod 4301), e recuperamos o
valor da senha s, a saber, s = 953.
80
Captulo
7
Um Pouco de Estruturas Algebricas
7.1 Grupos
Seja G um conjunto n ao vazio e uma operac ao fechada em G. A estrutura (G, ) e um grupo se
a operac ao satisfaz as seguintes propriedades:
(1) Associatividade: dados a, b G, temos
a (b c) = (a b) c
(2) Elementro Neutro: existe um elemento e G tal que
a e = e a = a
(3) Elemento Inverso: dado um elemento qualquer a G, existe um elemento a
t
G tal que
a a
t
= a
t
a = e
Observe que n ao exigimos que a opera cao do grupo seja comutativa: ab = ba, a, b G. Isto se
d a devido a existencia de grupos interessantes que n ao satisfazem tal propriedades. Um exemplo
e o grupos das matrizes quadradas de ordem n inversveis com a operac ao de produto usual de
matrizes.
H a tambem associac oes conjunto-operac aoque n ao satisfazem alguma das operac oes acima, e
portanto, n ao s ao grupos. Por exemplo, o conjunto dos vetores no espaco com a operac ao produto
vetorial n ao satisfaz a propriedade associativa.
O n umero de elementos de um grupo e chamado de ordem desse grupo. Os primeiros grupos
que temos contato sao de ordem innita
Z, Q, R e C com operac ao +.
81
Captulo 7 Um Pouco de Estruturas Algebricas
Q0, R0 e C0 com operac ao .
M
nm
, o conjunto das matrizes de ordem n m com entradas reais (resp. complexas) com
operacao +, soma usual de matrizes.
O conjunto das matrizes reais (resp. complexas) inversveis com operac ao produto usual
de matrizes.
O conjunto de matrizes reais (resp. complexas) com determinante igual a 1 com operac ao
produto usual de matrizes.
O unico grupo de ordem nita que vimos ate o momento foi Z
n
com a soma. Este grupo tem
ordem n. Vamos ver outro grupo, de ordem tambem nita.
7.2 Simetrias
Os grupos podem ser utilizados no estudo das simetrias. A noc ao de simetria e relativamente
difcil de descrever com precis ao. Para exemplicar, uma simetria de uma gura geometrica pode
ser entendida como uma transforma cao que, quando aplicada `a gura, n ao altera seu aspecto.
Vamos descrever as simetrias de um triangulo equil atero. As primeiras transforma coes que
podemos imaginar s ao as rotac oes. Numerando os vertices do triangulo, temos as seguintes ro-
ta coes:
82
Simetrias Secao 7.2
Alem das rotac oes, temos as reexoes em torno das mediatrizes. S ao tres mediatrizes, que
demonimaremos por m
a
, m
b
e m
c
.
Dessa forma, as tres reexoes sao as seguintes:
83
Captulo 7 Um Pouco de Estruturas Algebricas
J a temos o conjunto, agora falta a operac ao. Neste caso, a operac ao e a composic ao de
transformac oes. A composicao de func oes e sempre associativa, logo j a temos que a primeira
propriedade da operac ao de um grupo e satisfeita. O elemento neutro e a rota cao de 0
. E quanto
aos inversos? O inverso da rotac ao de 120
, temos
_
1 2 3
2 3 1
_
Esta transformac ao leva cada vertice no adjacente na direc ao anti-hor aria.
Todas estas simetrias podem ser vistas como permuta coes dos vertices. Outro exemplo, a
reex ao em torno da mediatriz m
b
e descrita por
_
1 2 3
2 1 3
_
Vamos ver o que acontece quando operamos com essas transformac oes. Se e a rota cao de
120
, temos que
2
=
e a rota cao de 240
, e
3
= e e o elemento neutro. Se e uma das reex oes, ja sabemos que
2
= e.
Vejamos que transformac ao est a associada `a transformac ao . Primeiramente, observemos que
n ao pode ser uma rotacao, ou seja,
,= e
,=
,=
2
84
Simetrias Secao 7.2
pois caso contrario, chegaramos a absurdos:
= e () = e
2
= =
= ()
2
=
2
= e
=
2
()
2
=
2
2
=
Portanto tem que ser uma reex ao. Entretanto n ao pode ser a pr opria , pois
= () = = e
Logo, e uma reexao diferente de . Vamos denotar por
i
a reex ao em torno da mediatriz
m
i
, i = a, b, c. Pelo que discutimos ate o momento, temos que
b
=
a
ou
b
=
c
. A rotac ao
leva o vertice que est a na posicao 1 para a posic ao 2, e
b
move o vertice da posic ao 2 para a
posic ao 1, ou seja
b
(1) = 1
e portanto
b
e a reex ao que n ao afeta o vertice que est a na posic ao 1, logo
b
=
c
Usando a notac ao para descrever as transformacoes, temos
b
=
_
1 2 3
2 1 3
__
1 2 3
2 3 1
_
=
_
1 2 3
1 3 2
_
=
c
Usando propriedades basicas dos grupos, podemos descobrir outras relac oes entre elementos
de D
3
a partir de
b
=
c
. Se G e um grupo com opera cao e x, y G, ent ao o inverso de x y
e y
t
x
t
, onde x
t
e y
t
s ao os inversos de x e y, respectivamente, pois
(x y) (y
t
x
t
) = x (y y
t
) x = x e x
t
= x x
t
= e
Usando esta propriedade, temos
(
b
)
t
=
2
b
.
J a vimos que
b
=
c
. Como o inverso de
c
e a pr opria
c
, temos
2
b
=
c
, e portanto
b
=
c
=
2
b
,=
b
ou seja, o grupo D
3
n ao e comutativo.
Seguindo desta maneira, podemos encontrar a tabela de opera cao deste grupo.
85
Captulo 7 Um Pouco de Estruturas Algebricas
e
2
a
b
c
e e
2
a
b
c
2
e
c
a
b
2
e
b
c
a
a
a
b
c
e
2
b
b
c
a
2
e
c
c
a
b
2
e
A leitura desta tabela deve ser feita da seguinte forma: o resultado da operacao x y est a na
intersec cao da linha que se inicia com x com a coluna que se inicia com y.
7.3 Grupos Aritmeticos
Voltemos ao foco do nosso estudo. Nosso foco e compreender propriedades aritmeticas dos inteiros
que tem haver com primos e fatoracao, e foi para isso que introduzimos a noc ao de grupo. Mas
qual o grupo que ser a objeto de nosso estudo?
Primeiramente tomemos um inteiro positivo n. J a denotamos por U(n) o conjunto dos inteiros
inversveis de Z
n
.
U(n) = a Z : mdc(a, n) = 1
Armamos que este conjunto e um grupo para a operac ao de multiplicac ao de classes de Z
n
.
Primeiro precisamos vericar que a operac ao est a fechada em U(n). Se a e b s ao elementos
de Z
n
, j a sabemos que a b est a em Z
n
, mas n ao podemos transpor isso para U(n) sem analise
cuidadosa. Precisamos vericar que o produto de dois elementos inversveis de Z
n
ainda e um
elemento inversvel de Z
n
.
Seja a e b elementos de U(n). Pela deni cao de U(n), a e b possuem inversos, digamos a
t
e
b
t
. Ent ao ab e inversvel e seu inverso e a
t
b
t
. Para vericarmos, basta multiplicarmos estes dois
elementos.
ab a
t
b
t
= aba
t
b
t
= aa
t
bb
t
= aa
t
bb
t
= 1
Assim, temos um conjunto, U(n), onde est a denida uma operac ao, o produto de classes. Pre-
cisamos vericar que tal opera cao satisfaz as propriedades da denic ao de grupo. A associatividade
em U(n) segue da associatividade em Z e da denic ao de produto de classes. Se a, b U(n), temos
a b = a b = b a = b a
O elemento neutro e 1, que e inversvel em Z
n
, e portanto esta em U(n). Finalmente, a
existencia de inverso para cada elemento de U(n) vem da pr opria denic ao de U(n). Portanto
U(n) e um grupo para o produto de classes.
86
Grupos Aritmeticos Secao 7.3
Vamos agora tentar determinar a ordem de U(n). Comecemos denindo uma func ao que,
a cada inteiro positivo n, associa outro inteiro positivo, a ordem de U(n). Esta e a fun cao de
Euler ou func ao totiente. Assim a ordem de U(n) e denotada por (n).
Vejamos como calcular , inicialmente em alguns casos especiais. Seja p um inteiro primo.
Dessa forma, todos os inteiros positivos menores que p s ao primos relativos com p, logo
U(p) = Z
p
0
tem p 1 elementos, e portanto (p) = p 1.
Tambem e f acil calcular (p
k
) para p primo. Precisamos contar os inteiros positivos menores
que p
k
que nao s ao divisveis por p.
E mais facil contar aqueles que s ao dvisiveis por p. Se a,
0 a < p
k
, e divisvel por p, ent ao
a = p b, com 0 b < p
k1
portanto ha p
k1
inteiros positivos menores que p
k
que s ao divisveis por p. Logo, h a p
k
p
k1
que n ao s ao divisveis por p, ou seja
(p
k
) = p
k
p
k1
= p
k1
(p 1).
Para obtermos uma f ormula geral, iniciaremos interpretando o Teorema Chines do Resto em
forma de tabela. Sejam m e n inteiros tais que mdc(m, n)=1. Construmos uma tabela com m n
casas. No alto da tabela, ao longo da horizontal, escrevemos os elementos de Z
m
, e a esquerda, ao
longo da vertical, os elementos de Z
n
. A casa da tabela que ca no encontro da coluna indexada
por a Z
m
com a linha indexada por b Z
n
ser a ocupada pelo inteiro x tal que:
(1) 0 x mn 1
(2) x a (mod m) e x b (mod n)
Neste caso, dizemos que x tem coordenadas (a, b) na tabela.
O Teorema Chines do Resto nos garante que todas as casas ser ao preenchidas. Alem disso,
duas casas distintas (a, b) e (c, d) n ao podem ser preenchidas com um mesmo inteiro. De fato, se
(a, b) e (c, d) s ao coordenadas de casas distintas, ent ao devemos ter a ,= c ou b ,= d. Suponha que
ambas as casas fossem preenchidas por um mesmo inteiro x
0
. Desse modo teramos
x
0
a (mod m)
x
0
b (mod n)
e
x
0
c (mod m)
x
0
d (mod n)
Da, segue que
a c 0 (mod m) e b d 0 (mod n).
87
Captulo 7 Um Pouco de Estruturas Algebricas
Mas por hip otese, a, c < m e b, d < n, e portanto [a c[ < m e [b d[ < n, o que nos permite
concluir que a c 0 (mod m) e b d 0 (mod n) se, e somente se, a = c e b = d, o que
contradiz a hip otese das casas serem distintas. Logo, duas casas de coordenadas distintas nunca
s ao preenchidas com um mesmo n umero.
Entendida esta interpretac ao do Teorema Chines do Resto, vamos demonstrar a seguinte ar-
mac ao: digamos que x Z
mn
tem coordenadas (a, b) na tabela discutida anteriormente. Ent ao
AFIRMA C
AO. Queremos calcular (mn). Por denic ao, isto e o n umero de elementos de
88
Subgrupos Secao 7.4
U(mn). Pela armac ao anterior queremos contar o n umero de casas da tabela cujas coordenadas
est ao em U(m) e U(n), respectivamente. Temos (m) colunas cujos ndices estao em U(m), e
para cada uma dessas, temos (n) linhas cujo ndice est a em U(n). Portanto temos (m) (n)
casas com as coordenadas em U(m) e U(n) respectivamente. Portanto
(mn) = (m)(n)
Feito isso, temos tudo o que e necessario para obter uma formula geral para (n). Dado um
inteiro n, primeiro fatore n.
n = p
e
1
1
p
e
k
k
onde p
1
< < p
k
s ao primos distintos. Pelo teorema anterior, temos
(n) = (p
e
1
1
) (p
e
k
k
).
Usando o c alculo de para potencias de primos, obtemos
(n) = p
e
1
1
1
p
e
k
1
k
(p
1
1) (p
k
1).
Facamos um exemplo numerico simples. Se n = 504 = 2
3
3
2
7, ent ao
(504) = 2
2
3 (2 1)(3 1)(7 1) = 144.
Apesar de teoricamente simples, essa f ormula e limitada, pois para aplica-la e necessario fatorar
n, que e um problema muito difcil.
7.4 Subgrupos
Seja G um grupo, e uma operac ao em G. Um subconjunto nao vazio H de G e um subgrupo de
G se:
(1) a, b H tem-se a b H
(2) O elemento neutro de G est a em H
(3) Para todo a H, seu inverso a
t
tambem est a em H
Para denotar que H e um subgrupo escrevemos H < G.
Note que um grupo e um subgrupo compartilham da mesma operac ao. Por exemplo, Q0
e um grupo para o produto, e esta contido em Q, mas n ao e subgrupo de Q, visto que este e um
grupo para a soma, e n ao para o produto.
89
Captulo 7 Um Pouco de Estruturas Algebricas
Nos grupos nitos e possvel estabelecermos rela coes entre a ordem do grupo e as ordem de
seus subgrupos. Vamos estudar uma dessas relac oes: o teorema de Lagrange. Para a prova deste
teorema, vamos usar relac oes de equivalencia.
Seja G um grupo e H um subgrupo de G. Vamos denir uma relac ao de equivalencia em G
usando H.
Sejam x e y elementos de G. Diremos que x e y s ao congruentes modulo H, x y (mod H),
se
x y
t
H
onde y
t
e o inverso de y em G. Veriquemos que esta relac ao e de fato uma relac ao de equivalencia.
Sejam x, y, z G.
(1) Reexividade: x x
t
= e. Como e H (pois e subgrupo) temos que x x (mod H).
(2) Simetria: se x y (mod H) temos que x y
t
H. Mas como H e subgrupo, todos os seus
elementos possuem inverso em H. Mas o inverso de xy
t
e y x
t
H, logo y x (mod H).
(3) Transitividade: digamos que x y (mod H) e y z (mod H). Isto signica que xy
t
H
e y z
t
H. Como e uma operac ao em H, temos que (x y
t
) (y z
t
) H, ou seja,
x z
t
H, e isto signica que x z (mod H).
Visto que a rela cao de congruencia m odulo H e uma relac ao de equivalencia, vamos determinar a
classe de equivalencia de um elemento x G. Por denic ao,
x = y G : y x (mod H)
Mas y x (mod H) e equivalente ` a dizer que y x
t
H, isto e, existe um elemento h H tal
que y x
t
= h y = h x. Sendo assim, podemos escrever a classe de equivalencia de x como
h x : h H
Note que a classe do elemento neutro e o pr oprio H. Usaremos a notac ao Hx para a classe de
equivalencia de um elemento x. A rela cao de congruencia modulo H e uma generalizac ao da
relac ao de congruencia m odulo n nos n umeros inteiros. No caso particular destes, temos que
G = Z, a opera cao e a adic ao e o subgrupo H e Zn = n k : k Z. Agora temos condi coes de
demonstrar o
TEOREMA 7.4.1 (Teorema de Lagrange). Em um grupo nito, a ordem de qualquer subgrupo
divide a ordem do grupo.
DEMONSTRA C
E claro que Hx n ao pode ter mais elementos do que H, visto que para obter Hx, multiplicamos
cada elemento h H por um elemento xo x G. Alem disso, Hx n ao pode ter menos elementos
do que H, pois para isso acontecer seria necessario dois elementos distintos h
1
, h
2
H de modo
que h
1
x = h
2
x, mas esta equa cao nos levaria a concluir que h
1
= h
2
, multiplicando ` a esquerda
por x
t
.
Sabemos que G e a reuniao de todas as classes de equivalencia. Visto que duas classes ou sao
iguais ou s ao disjuntas, o n umero de elementos de G e igual a soma do n umero de elementos de
cada classe (classes disjuntas).
Mas mostramos que qualquer classe tem o mesmo n umero de elementos, e esse n umero e a
ordem de H.
Sendo assim, o n umero de elementos de G e igual a ordem de H vezes o n umero de classes, ou
seja, a ordem de H e um divisor da ordem de G.
Seja G um grupo, e S um subconjunto nao vazio de G. Denotaremos por S
1
= s
1
[s S.
Vamos denir um conjunto usando S, e na sequencia mostraremos que este conjunto e um subgrupo
de G. Faremos uso da notac ao multiplicativa.
S
.
= a
1
a
2
a
n
[n N, a
i
S ou a
i
S
1
AO 7.4.4. Um grupo G e cclico quando ele pode ser gerado por um unico elemento, isto
e, quando G = g para algum g G.
Uma consequencia de um grupo ser cclico e a seguinte:
PROPOSI C
+
, entao a ordem do subgrupo gerado por g tambem e k.
[g[ = k [g[ = k, k Z
+
DEMONSTRA C
AO. Suponha que [g[ = k, ou seja, k e o menor inteiro positivo tal que g
k
= e.
Vamos mostrar que g tem k elementos. Da denic ao de subgrupo gerado, temos que
g = ..., (g
1
)
2
, g
1
, e, g, g
2
, ....
Seja A = e, g, g
2
, ..., g
k1
. Armamos que g = A. A inclusao A g e trivial. Basta
mostrarmos que g A. De fato, seja s um inteiro. Dividindo s por k, e obtemos inteiros q e r,
com 0 r k 1, e
s = kq + r
e da
g
s
= g
kq+r
= (g
k
)
q
g
r
= g
r
pois 0 r k 1 e g
k
= e, e portanto g
s
A. Logo, g A. Alem disso, dois elementos
de A s ao distintos, pois se existirem inteiros a e b com a < b < k e g
a
= g
b
, multiplicando essa
igualdade por g
a
, obteriamos
g
ba
= e
mas isso contradiz a minimalidade de k. Dessa forma, A tem k elementos e A = g. Portanto a
ordem de g e k.
Para encerrar o captulo, vamos mostrar o teorema de Euler, generalizac ao do teorema de
Fermat e consequencia do teorema de Lagrange.
TEOREMA 7.4.7 (Teorema de Euler). Sejam n > 0 e a n umeros inteiro. Se mdc(a, n) = 1 entao
a
(n)
1 (mod n)
93
Captulo 7 Um Pouco de Estruturas Algebricas
DEMONSTRA C
_
M(p) <
2
p
_
M(p) < 2
p/2
e portanto
1 + 2rp < 2
p/2
r <
2
p/2
1
2p
Quando p = 11, obtemos r < 2, 011.... Portanto devemos testar apenas r = 1 e r = 2. Muito
eciente. Fazendo r = 1 temos q = 1 + 22 1 = 23, que e fator de 2047.
2047 = 23 89
8.2 N umeros de Fermat
Vamos considerar os n umeros da forma 2
n
+ 1. Vamos supor que p = 2
n
+ 1 seja primo. Temos
que
2
n
= 1 em U(p)
e portanto
2
2n
= 1 em U(p)
Disto temos que a ordem de 2 em U(p) divide 2n. Note que da primeira equa cao, 2
n
= 1, a
ordem de 2 nao pode ser n, e nem um divisor de n. Como ela deve dividir 2n, temos que a ordem
de 2 deve ser um m ultiplo de 2. Digamos que a ordem de 2 seja 2r, com r um inteiro positivo
divisor de n. Assim
2
2r
= 1 em U(p)
Da,
0 = 2
2r
1 = (2
r
+ 1)(2
r
1)
97
Captulo 8 De Volta `a Mersenne e Fermat
em Z
p
. Como estamos supondo p primo, podemos concluir que
2
r
1 (mod p) ou 2
r
1 (mod p)
ou seja, p divide 2
r
+ 1 ou 2
r
1. Mas n r e p = 2
n
+ 1, portanto devemos ter r = n, e assim a
ordem de 2 em U(p) e 2n.
Como p 1 = 2
n
, pelo teorema de Fermat
2
p1
= 2
2
n
= 1 em U(p)
e portanto, a ordem de 2 (que e 2n) divide 2
n
. Em particular, conclumos que a ordem de 2 em
U(p) e uma potencia de 2, ou seja, 2
n
+ 1 s o pode ser primo quando n e uma potencia de 2.
Isto justica o fato de estarmos interessados nos n umeros da forma 2
2
k
+ 1, os n umeros de
Fermat, F(k).
Digamos que q e um fator primo de F(k). Ent ao
2
2
k
= 1 em U(q) 2
2
k+1
= 1 em U(q)
O lema chave nos permite concluir que a ordem de 2 divide 2
k+1
. Da equac ao
2
2
k
= 1 em U(q)
conclumos que a ordem de 2 n ao pode ser uma potencia menor que 2
k+1
. Portanto a ordem de 2
em U(q) e exatamente 2
k+1
. Como q e primo, temos que
2
q1
= 1 em U(q)
e conclumos que a ordem de 2 em U(q), 2
k+1
, divide q 1, ou seja, q 1 = r 2
k+1
para algum
r inteiro. O raciocnio que desenvolvemos e parecido com o que Fermat fez para os n umeros de
Mersenne, mas ironicamente foi Euler quem desenvolveu esse metodo, apenas adaptanto para os
n umeros de Fermat o que o frances havia feito para os n umeros de Mersenne.
Metodo de Euler: Se q e um fator primo de F(k), entao existe um inteiro positivo r tal que
q = 1 + r 2
k+1
8.3 O metodo de Lucas-Lehmer
O proximo teste que estudaremos foi inventado por E. Lucas em 1878, e aperfeicoado por D. H.
Lehmer, em 1932.
98
O metodo de Lucas-Lehmer Secao 8.3
O teste usa uma sequencia de inteiros denida recursivamente por:
S
0
= 4 e S
k+1
= S
2
k
2
Primeiramente, vamos vericar que qualquer elemento da sequencia se escreve como potencia
de n umeros irracionais.
Considere w = 2 +
3 e v = 2
3)(2
3) = 2
2
3
2
= 4 3 = 1, temos
S
2
n
= w
2
n+1
+ 2 + v
2
n+1
w
2
n+1
+ v
2
n+1
= S
2
n
2
Mas S
2
n
2 = S
n+1
por denic ao. Portanto, pelo princpio de induc ao nita
w
2
n
+ v
2
n
= S
n
n N
Antes de demonstrar o teste, vamos introduzir novos grupos que serao uteis para a demons-
tracao.
Considere o conjunto Z
_
3
denido por
Z
_
3
_
= a + b
3 : a, b Z
A soma e a multiplica cao em Z
_
3
3, logo Z Z
_
3
ainda e um elemento de Z
_
3
.
(a + b
3) + (c + d
3) = (a + c) + (b + d)
3
(a + b
3)(c + d
3
Note que Z
_
3
3 e (a + b
3) = (a) + (b)
3
99
Captulo 8 De Volta `a Mersenne e Fermat
Considere agora o seguinte conjunto: sendo q um inteiro primo, denimos
I(q) =
_
q : Z
_
3
__
Temos que
(1) 0 = q 0 I(q)
(2) q + q = q( + ) I(q), , Z
_
3
, e como Z
_
3
e grupo, entao Z
_
3
, e portanto
(q) = q() I(q).
portanto I(q) e um subgrupo do grupo aditivo Z
_
3
.
Do que vimos no captulo anterior, temos que a relacao de congruencia modulo I(q) e uma
relac ao de equivalencia em Z
_
3
. Recordando: dados , Z
_
3
3
Dividindo a
1
e a
2
por q obtemos
a
1
= q b
1
+ r
1
, 0 r
1
< q
a
2
= q b
2
+ r
2
, 0 r
2
< q
Sabemos que r
1
e r
2
s ao determinados de maneira unica. Dena = r
1
+ r
2
3. Da,
= (a
1
+ a
2
3) (r
1
+ r
2
3)
= (qb
1
+ r
1
) + (qb
2
+ r
2
)
3 r
1
r
2
3
= q(b
1
+ b
2
3)
Portanto (mod I(q)). O n umero ser a chamado de forma reduzida de m odulo I(q). Da
unicidade do resto da divis ao euclidiana, segue que cada elemento de Z
_
3
, note que 0 r
1
, r
2
< q,
ou seja, r
1
pode assumir q valores, assim como r
2
. Portanto h a exatamente q
2
formas reduzidas
distintas modulo I(q) em Z
_
3
.
Alem disso, cada classe de equivalencia de Z
_
3
_
I(q) das classes de
equivalencia m odulo I(q) tem q
2
elementos.
100
O metodo de Lucas-Lehmer Secao 8.3
Denotaremos a classe de Z
_
3
_
I(q) por
=
Primeiramente, veriquemos que tal operac ao esta bem denida: sejam e
t
representantes
da classe , e e
t
representantes da classe
. Note que
t
t
=
t
+
t
t
t
= (
t
) +
t
(
t
) I(q)
pois
t
(mod I(q)) e
t
(mod I(q)), e portanto
=
t
.
A opera cao , denida anteriormente, e associativa, comutativa e tem
_
I(q) nao e um grupo para esta operac ao. Por exemplo,
0 nao possui inverso em
Z
_
3
_
I(q).
Assim como zemos em Z
n
, vamos considerar o conjunto V (q) formado pelos elementos in-
versveis de Z
_
3
_
I(q). Este novo conjunto e um grupo, pois o produto de dois elementos
inversveis ainda e um elemento inversvel: sejam , V (q) com inversos
1
e
1
. O inverso
de e
1
1
, pois
()(
1
1
) = (
1
)
1
= 1
1
=
1
= 1.
Temos que
V (q) Z
_
3
_ _
I(q)
0
portanto a ordem de V (q) e necessariamente menor que q
2
.
Alem disso, como w v = (2 +
3)(2
1 (8.3)
em Z
_
3
_
I(q). Elevando ambos os membros de (8.3) ao quadrado
w
2
p
=
1.
Segue disto, e do lema chave, que a ordem de w tem que dividir 2
p
; mas a equac ao (8.3) tambem
nos diz que esta ordem n ao pode ser uma potencia de 2 menor que 2
p
. Portanto, a ordem de w
em V (q) e 2
p
. Mas pelo teorema de Lagrange, a ordem de w divide a ordem de V (q). Como V (q)
tem ordem menor ou igual a q
2
1, conclumos que 2
p
q
2
1. Entretanto, q e o menor divisor
primo de M(p), de modo que q
2
M(p). Assim
2
p
q
2
1 < q
2
M(p) = 2
p
1 2
p
< 2
p
1
que e a contradic ao desejada. Com isso, se M(p) divide S
p2
ent ao M(p) e primo.
102
Captulo
9
Razes Primitivas
No captulo anterior vimos metodos que nos permitem investigar se n umeros de Mersenne e
Fermat sao primos ou compostos. Mas, e se tomarmos um inteiro n qualquer? No captulo 5,
vimos testes que detectavam inteiros n compostos. Agora, veremos um teste que identica a
primalidade de um inteiro n sem tentar encontrar fatores de n. Este teste e inspirado no teorema
da raiz primitiva, assunto ja citado no captulo 4. Neste captulo iremos nalmente provar este
resultado.
9.1 O teste de Lucas
Seja n Z
+
um inteiro mpar. A pergunta que queremos responder e: n e primo? Suponha que
encontremos um inteiro b tal que a ordem de b em U(n) seja exatamente n 1, isto e,
b
n1
= 1 e b
r
,= 1 sempre que r < n 1
Lembrando que denotamos a ordem de U(n) por (n), pelo teorema de Lagrange a ordem de b,
que e n 1, divide (n), e portanto n 1 (n). Mas (n) n 1, pela propria denic ao da
funcao . Conclumos desse modo que (n) = n 1, e isso s o e possvel se n for primo.
Portanto, a chave est a em encontrar b U(n) com ordem n 1. O seguinte teste nos d a uma
maneira de mostrar que a ordem de um elemento de U(n) e n 1.
TESTE 9.1.1 (Teste de Lucas). Seja n um inteiro positivo mpar e b um inteiro, 2 b n 1. Se
b
n1
1 (mod n) e b
n1
p
, 1 (mod n)
para cada fator primo p de n 1, entao n e primo.
DEMONSTRA C
AO. Seja k a ordem de b em U(n). Precisamos mostrar que k = n1. Por hipotese,
b
n1
= 1.
103
Captulo 9 Razes Primitivas
Pelo lema chave, k divide n 1, ou seja, existe um inteiro t tal que
n 1 = k t.
Portanto, basta mostrarmos que t = 1. Suponha, por absurdo que t > 1. Entao t e divisvel por
algum primo q (t = qs para algum inteiro s).
Temos tambem que q divide n 1, portanto
n 1
q
e
t
q
s ao inteiros. E mais, visto que
n 1
q
= k
t
q
conclumos que k divide
n 1
q
. Como k e a ordem de b, pelo lema chave
b
n1
q
1 (mod n)
o que contradiz as hip oteses. Portanto t = 1, logo k = n 1. Dessa forma, temos um inteiro
b U(n) com ordem n 1, o que implica a primalidade de n.
Apesar de uma demonstrac ao simples, o teste de Lucas apresenta uma pequena diculdade
quanto a aplicac ao. Vamos explicitar tal diculdade com um exemplo simples. Apliquemos o teste
para n = 41
n = 41 n 1 = 40 = 2
3
5 fatores primos 2 e 5.
Precisamos encontrar um inteiro 2 b 40 tal que
b
40
1 (mod 41)
b
20
, 1 (mod 41)
b
8
, 1 (mod 41)
Se escolhemos base b = 2, temos
2
40
(2
6
)
6
2
4
23
6
2
4
18 2
4
1 (mod 41)
mas
2
20
1 (mod 41).
Tentemos, ent ao, base b = 3.
3
40
(3
20
)
2
(1)
2
1 (mod 41)
104
O teste de Lucas Secao 9.1
3
20
1 , 1 (mod 41)
Mas
3
8
1 (mod 41)
Note ainda que
2
8
10 , 1 (mod 41)
ou seja, bases diferentes satisfazem equac oes relativas a fatores diferentes de n 1. Mas o teste
exige que uma unica base satisfaca todas as equa coes. Entretanto, o teste de Lucas pode ser
melhorado, de modo que podemos escolher uma base distinta para cada fator primo de n 1.
TESTE 9.1.2 (Teste de Primalidade). Seja n > 0 um inteiro tal que
n 1 = p
e
1
1
p
e
2
2
p
e
r
r
onde p
1
< < p
r
sao primos. Se para cada i = 1, ..., r existir um inteiro positivo b
i
,
2 b
i
n 1, que satisfaca
b
n1
i
(mod n)
b
n1
p
i
i
, 1 (mod n)
entao n e primo.
DEMONSTRA C
u
)
n
b
vnr
= b
vnr
pois r
t
u = r e a ordem de a. Pelo lema chave, a ordem de b, que e s, divide vnr
t
. Mas s = s
t
v, ou
seja, s
t
divide nr
t
. Como s
t
e r
t
s ao primos entre s, conclumos que s
t
divide n. Com raciocnio
analogo, invertendo os papeis de a e b e de r e s, conclumos que r
t
tambem divide n. Da,
r
t
[n
s
t
[n
mdc(r
t
, s
t
) = 1
_
_
r
t
s
t
[n m[n
Mas se m[n e n[m, so nos resta concluir que m = n, e c de fato e o elemento que procuravamos.
TEOREMA 9.2.2 (Teorema da Raiz Primitiva). Se p e primo, entao U(p) e cclico.
DEMONSTRA C
s ao soluc oes de x
k
1
= 1. Mas H possui k
1
elementos, e portanto em H est ao todas as soluc oes de
x
k
1
= 1. Como k
1
< p 1, existe um elemento b U(p) que nao esta em H e n ao e solucao de
x
k
1
= 1, isto e,
b
k
1
, 1.
Desta ultima express ao e do lema chave, conclumos que se r e a ordem de b, entao r n ao divide
k
1
. Se r = p 1, ent ao b e um gerador de U(p).
Se r < p 1, usando o lema anterior construmos um elemento a
2
que tem ordem
k
2
= mmc(k
1
, r). Como r ,[k
1
, temos k
2
> k
1
.
Repetindo o que zemos com a
1
para o inteiro a
2
, e assim sucessivamente, construiremos uma
sequencia estritamente crescente
k
1
< k
2
< k
3
<
de inteiros que s ao ordens de elementos de U(p), ou seja, k
i
p 1 i. Isso nos garante que
encontraremos um elemento a
j
com [a
j
[ = p 1, e portanto este inteiro a
j
ser a um gerador de
U(p), ou seja, U(p) e cclico.
A demonstrac ao do teorema da raiz primitiva n ao apenas nos garante a existencia de um
gerador de U(p) quando p e primo, mas ela nos diz como construir tal gerador.
Para exemplicar vamos determinar uma raiz primitiva (gerador) de U(73). Procederemos
como na demostracao do teorema. Porem, antes de iniciarmos, precisamos de um metodo (algo-
ritmo) para calcular a ordem de um elemento de U(p).
Seja p primo e a U(p). Seja k a ordem de a. Pelo teorema de Lagrange, k divide a ordem
de U(p). Neste caso, k[p 1. Para aplicar um metodo usado por Gauss, precisamos fatorar p 1.
Digamos que
p 1 = q
e
1
1
q
e
m
m
onde q
1
< < q
m
s ao primos e e
1
, ..., e
m
s ao inteiros positivos. Se k divide p 1, ent ao existem
inteiros nao negativos r
1
, ..., r
m
tais que
k = q
r
1
1
q
r
m
m
e 0 r
1
e
1
, ..., 0 r
m
e
m
. O que faremos e determinar quem sao os inteiros r
1
, ..., r
m
. Assim
determinamos k. Para encontrar o inteiro r
i
, faremos uso de uma sequencia que depende do primo
q
i
. Considere a sequencia
a
p1
, a
(p1)/q
i
, a
(p1)/q
2
i
, ..., a
(p1)/q
e
i
i
108
Teorema da Raiz Primitiva Secao 9.2
m odulo p. Pelo teorema de Fermat, o primeiro termo dessa sequencia e sempre 1. Seja w
i
o
maior inteiro n ao negativo tal que
a
(p1)/q
w
i
i
1 (mod p) (9.1)
Temos duas possibilidades: ou w
i
= e
i
ou w
i
< e
i
. No segundo caso, temos que
a
(p1)/q
w
i
+1
i
, 1 (mod p). (9.2)
Do lema chave e da equac ao (9.1) que caracteriza w
i
, temos que k divide
p 1
q
w
i
i
. Alem disso, de
(9.2) conclumos que k n ao divide
p 1
q
w
i
+1
i
. Escrevendo de outra forma, o inteiro k = q
r
1
1
q
r
i
i
q
r
m
m
divide
q
e
1
1
q
e
i
w
i
i
q
e
m
m
=
p 1
q
w
i
i
mas nao divide
q
e
1
1
q
e
i
w
i
1
i
q
e
m
m
=
p 1
q
w
i
+1
i
o que nos leva `a r
i
= e
i
w
i
. Para esclarecer o que foi feito, passemos ao exemplo. Queremos
determinar uma raiz primitiva de U(73). Portanto temos
p = 73 (p) = p 1 = 72 = 2
3
3
2
Na demonstra cao do teorema da raiz primitiva, a primeira coisa que zemos foi escolher um
elemento a
1
U(p). Para facilitar as contas inicialmente, vamos escolher a
1
= 2. Vamos agora
calcular a ordem de 2 usando o que discutimos anteriormente.
[2[ = 2
r
1
3
r
2
, 0 r
1
3 e 0 r
2
2
Determinando r
1
: 2
(p1)/2
x
, x = 1, 2, 3.
x = 1 2
72
2
= 2
36
= (2
7
)
5
2 = 37 2 = 1
x = 2 2
72
2
2
= 2
18
= 1
x = 3 2
72
2
3
= 2
9
= 1
Portanto, para o primeiro fator primo de a
1
= 2, encontramos w
1
= 3, o que nos leva ` a
r
1
= e
1
w
1
= 0
Determinando r
2
: 2
(p1)/3
x
, x = 1, 2.
x = 1 2
72
3
= 64
109
Captulo 9 Razes Primitivas
x = 2 2
72
9
= 2
8
= 37
Portanto, para o segundo fator primo de a
1
= 2, encontramos w
2
= 0, o que nos leva ` a
r
2
= e
2
w
2
= 2 0 = 2. Portanto
[2[ = 2
0
2
2
= 9 ,= 72 = p 1.
Como [2[ , = 72, precisamos escolher outro inteiro b de modo que b / 2.
2 = 1, 2, 4, 8, 16, 32, 64, 55, 37
Escolhamos b = 3, e calculemos sua ordem.
[3[ = 2
r
1
3
r
2
Determinando r
1
: 3
72/2
y
, y = 1, 2, 3.
y = 1 3
72
2
= 3
36
= (3
4
)
9
= 8
9
= (2
3
)
9
= (2
9
)
3
= 1
3
= 1
y = 2 3
72
2
2
= 3
18
= 72
y = 3 3
72
2
3
= 3
9
= 46
Portanto, para o primeiro fator primo de b = 3, encontramos w
1
= 1, o que nos leva ` a
r
1
= e
1
w
1
= 3 1 = 2
Determinando r
2
: 3
72/3
y
, y = 1, 2.
y = 1 3
72
3
= 3
2
4 = (3
4
)
6
= 8
6
= 1
y = 2 3
72
9
= 3
8
= 64
Portanto, para o segundo fator primo de b = 3, encontramos w
2
= 1, o que nos leva ` a
r
2
= e
2
w
2
= 2 1 = 1. Portanto
[3[ = 2
2
3
1
= 12 ,= 72 = p 1.
Como [b[ ,= 72, vamos usar a
1
= 2 e b = 3 para gerar a
2
. Para isso, usaremos o lema, e
obteremos [a
2
[ = mmc(12, 9) = 36. a
2
= a
1
u
b
v
, onde u v = mdc([a
1
[, [b[) = mdc(12, 9) = 3 e
mdc(u, v) = 1. Fazendo uso da notac ao que usamos na demonstra cao do lema, temos
[2[ = r = 3
2
r
t
= 3
2
u = 1
[3[ = s = 3 2
2
s
t
= 2
2
v = 3
110
Teorema da Raiz Primitiva Secao 9.2
Da, a
2
= 2
1
3
3
= 54. J a sabemos que [54[ = 36.
54 = 1, 54, 69, 3, 16, 61, 9, 48, 37, 27, 71, 38, 8, 67, 41, 24, 55, 50,
72, 19, 4, 70, 57, 12, 64, 25, 36, 46, 2, 35, 65, 6, 32, 49, 18, 23
Agora, escolhemos um novo b / 54. O menor b possvel e b = 5. Precisamos calcular a ordem
de 5. Se encontrarmos [5[ = 72, teremos encontrado um gerador de U(73), caso contr ario teremos
de usar a
2
= 54 e b = 5 para gerar a
3
.
[5[ = 2
r
1
3
r
2
Determinando r
1
: 5
72/2
z
, z = 1, 2, 3.
z = 1 5
72
2
= 5
36
= (5
4
)
9
= 41
9
= 41
6
41
3
= 8 9 = 72
z = 2 5
72
2
2
= 5
18
= (5
9
)
2
= 10
2
= 27
z = 3 5
72
2
3
= 5
9
= 10
Portanto, para o primeiro fator primo de b = 5, encontramos w
1
= 0, o que nos leva `a r
1
= e
1
= 3
Determinando r
2
: 5
72/3
z
, z = 1, 2.
z = 1 5
72
3
= 5
24
= (5
6
)
4
= 3
4
= 8
z = 2 5
72
9
= 5
8
= 2
Portanto, para o segundo fator primo de b = 5, encontramos w
2
= 0, o que nos leva ` a r
2
= e
2
= 2.
Portanto
[5[ = 2
3
3
2
= 72
portanto 5 e gerador de U(73)
111
Captulo 9 Razes Primitivas
112
Captulo
10
Criptograa RSA
Este metodo de criptograa, o mais conhecido dos metodos de chave p ublica, foi inventado
em 1978 por R. L. Riverst, A. Shamir e L. Adleman. As letras RSA correspondem ` as iniciais dos
inventores do c odigo. Finalmente podemos descrever o funcionamento do RSA e entender porque
e seguro.
10.1 Pre-codicacao
A primeira coisa que devemos fazer para usar o RSA e transformar a mensagem em uma sequencia
de n umeros. Vamos fazer um exemplo onde a mensagem contem apenas letras. Esta primeira
etapa ser a chamada de pre-codicacao. Usaremos a seguinte tabela para convertermos letras em
n umeros:
A B C D E F G H I J K L M
10 11 12 13 14 15 16 17 18 19 20 21 22
N O P Q R S T U V W X Y Z
23 24 25 26 27 28 29 30 31 32 33 34 35
Usaremos o n umero 99 para substituir o espaco entre palavras. Por exemplo, a frase Matematica
e divertida gera o n umero
m = 22102914221029181210991499131831142729181310.
que e a mensagem a ser codicada.
O pr oximo passo e escolher os par ametros do sistema RSA. Esses par ametros s ao dois primos
p e q. Seja n = pq. A ultima etapa da fase de pre-codica cao e quebrar o n umero m em blocos.
Esses blocos devem ser n umeros menores que n. No nosso exemplo, vamos escolher p = 11 e
q = 13, logo temos n = 143. Uma possvel maneira de quebrar o n umero m e
22102914221029181210991499131831142729181310
113
Captulo 10 Criptograa RSA
Essa quebra pode ser feita de v arias maneiras, mas alguns cuidados devem ser tomados. Por
exemplo, deve-se evitar que o bloco comece por 0, pois isso traria problemas na decodicac ao.
10.2 Codicando e Decodicando
Passemos, entao, a codicacao dos blocos propriamente dita. Para codicar um bloco b do n umero
m precisamos de dois inteiros: o inteiro n, que j a escolhemos como sendo n = pq = 11 13 = 143,
e outro inteiro e que seja inversvel modulo (n). No caso temos (n) = (p 1)(q 1) = 120.
Vamos escolher e = 7. O par (n, e) = (143, 7) e a chave de codicacao ou chave p ublica. Cada
bloco ser a codicado separadamente, e n ao podemos juntar os blocos codicados am de formar
um longo n umero, os blocos codicados devem ser mantidos separados.
Se a chave de codicac ao e (n, e), como devemos proceder para codicar um bloco b? Note
que b e um inteiro positivo menor do que n. Denotando o bloco codicado por C(b), usaremos a
seguinte receita para calcul a-lo:
C(b) = resto da divisao de b
e
por n.
Em termos de aritmetica modular, temos que C(b) e a forma reduzida de b
e
m odulo n. Vamos
codicar os blocos da nossa mensagem.
C(2) 2
7
128 (mod 143)
C(3) 3
7
42 (mod 143)
C(8) 8
7
57 (mod 143)
C(9) 9
7
48 (mod 143)
C(10) 10
7
10 (mod 143)
C(11) 11
7
132 (mod 143)
C(12) 12
7
12 (mod 143)
C(22) 22
7
22 (mod 143)
C(31) 31
7
125 (mod 143)
C(42) 42
7
81 (mod 143)
C(49) 49
7
36 (mod 143)
C(72) 72
7
19 (mod 143)
C(81) 81
7
16 (mod 143)
C(83) 83
7
8 (mod 143)
C(91) 91
7
130 (mod 143)
C(102) 102
7
119 (mod 143)
114
O RSA funciona? Secao 10.3
Temos assim os blocos da mensagem codicados:
m : 22102914221029181210991499131831142729181310
C(m) : 22 119 130 81 128 119 130 57 12 10 48 130 36 130 125 8 132 81 19 130 16 42 10
Passemos a decodicac ao de um bloco codicado. Para decodicar precisamos conhecer dois
n umeros: n e o inverso de e m odulo (n), que denotaremos por d. O par (n, d) sera chamado de
chave de decodicacao ou chave privada. Sendo a um bloco da mensagem codicada, denotaremos
por D(a) o resultado do processo de decodica cao.
D(a) = resto da divisao de a
d
por n.
(r1)/d|
vale para qualquer inteiro positivo d que divide (r 1)/, onde e a ordem de n em U(r); e
(iv) a igualdade
( x +
b)
n
= x
n
+
b
e vericada em Z
n
[x]/(x
r
1) para cada b S.
Entao n e uma potencia de primo.
No enunciado, (x
r
1) denota o ideal gerado por x
r
1. Um ideal e uma estrutura algebrica
analoga aos subgrupos normais em relac ao a aneis. Z
n
[x]/(x
r
1) denota o conjunto quociente do
anel Z
n
[x] pelo ideal (x
r
1).
Algoritmo 10.5.2 (Algortmo AKS).
Entrada: um inteiro positivo mpar.
Sada: primo ou composto.
Etapa 1: verique se n e um quadrado, cubo ou outra potencia de um n umero inteiro. Se for
imprima composto e pare.
Etapa 2: Calcule
N = 2n(n 1)(n
2
1)(n
3
1) (n
4log
2
n|
2
1)
e determine o menor primo r que n ao divide N.
Etapa 3: Verique se n e divisvel por algum primo q < r. Se for, e se
q = n, imprima primo e pare.
q < n, imprima composto e pare.
Etapa 4: Verique se
( x +
b)
n
= x
n
+
b em Z
n
[x]/(x
r
1),
para cada b S1, 2, ..., r. Se a congruencia n ao for vericada para algum b S, imprima
composto e pare.
Etapa 5: Se a congruencia for vericada para todo b S, imprima primo e pare.
119
Captulo 10 Criptograa RSA
Para detalhes e demonstrac oes sobre o AKS, consulte [04]. Para encerrar, vamos deixar claro
qualquer confusao que possa surgir sobre a rela cao entre AKS e RSA.
O AKS e um algoritmo que verica se um inteiro n dado e primo ou composto. Portanto, o AKS
auxilia a implementa cao do RSA, pois este necessita de dois primos grandes como parametros.
Alguem poderia pensar: se o AKS detecta primos grandes com facilidade (algoritmo determinstico
de tempo polinomial), ent ao podemos usa-lo para quebrar um sistema RSA. Isso nao e verdade,
pois o AKS nao encontra fatores de n, apenas diz se e primo ou composto. Se temos um sistema
RSA de par ametros p e q, temos n = pq. Se inserirmos n no algoritmo AKS, ele detectar a que n
e composto, pois n = pq, mas nenhuma informac ao teremos a respeito de quem sao os primos p e
q. Portanto deve car claro a diferenca entre dois problemas:
1. Determinar se um inteiro e primo ou composto
2. Sendo n composto, encontrar seus fatores primos.
Para o primeiro problema, vimos varios testes e algoritmos que sao ecientes. O melhor deles e
o AKS. Ja o segundo parece ser um dos problemas mais difceis na matem atica. Como j a dissemos,
n ao s ao conhecidos algoritmos ecientes (r apidos) para fatorar n se este inteiro for grande. Por
enquanto isso e bom, pois nos garante seguranca para continuarmos fazendo transacoes bancarias
pela internet.
120
Bibliograa
[01] ALFORD, W.R., GRANVILLE, A. and POMERANCE, C. There are innitely many
Carmichael numbers, Ann. of Math. (2), 139 (1994), no. 3, pg. 703-722.
[02] BRESSOUD, D. M. (1989) Factorization and primality testing, Undergraduate Texts in Math-
ematics, Springer-Verlag, New York.
[03] COUTINHO, S. C., N umeros inteiros e criptograa RSA, Colec ao Matematica e Aplicac oes,
2a Ed., Rio de Janeiro, IMPA, 2011.
[04] COUTINHO, S. C., Primalidade em Tempo Polinomial: Uma introducao ao Algortmo AKS,
Colec ao Inicia cao Cientca, Rio de Janeiro, IMPA, 2004.
[05] EVES, H. Introducao `a Historia da Matematica. Traduc ao de Higino H. Domingues. Campi-
nas, Sao Paulo: Unicamp, 2004.
[06] GARCIA, A., LEQUAIN, Y. Elementos de
Algebra. Projeto Euclides. 5a Ed., Rio de Janeiro,
2008.
[07] MAGRINI, L. A. Sobre N umeros Perfeitos, Revista do Professor de Matem atica, no. 78, 2012,
pg. 16-18.
[08] NERY, C. Revisitando a Aritmetica, Revista do Professor de Matem atica, no. 80, 2013, pg.
31-33.
[09] RIBENBOIM, P. Existem funcoes que geram os n umeros primos?, Matem atica Universitaria,
no. 15, 1993, pg. 1-12.
[10] SAMPAIO, J. C. V., CAETANO, P. A. S. Introducao `a teoria dos n umeros: um breve curso.
S ao Paulo: EDUFSCAR, 2008.
121