08. Teoria Dos Numeros (1)
08. Teoria Dos Numeros (1)
08. Teoria Dos Numeros (1)
O diabo disse a Daniel Webster: “Dê-me uma tarefa que eu não possa executar; e eu lhe darei qual
quer coisa no m undo que você pedir”’.
Daniel Webster: “Muito justo. Prove que\ para n maior que 2, a equação a" + b" = c" não possui
solução trivial no conjunto dos inteiros
Eles concordaram com um período de três dias para o trabalho, e o diabo desapareceu.
A o final dos três dias, o diabo se apresentou, desfigurado, mordendo seus lábios. Daniel Webster lhe
disse: “Bem, como você se saiu na minha tarefa? Conseguiu provar o teorema?”
“Não... não, eu não consegui provar”.
“Então eu posso ter o que quiser? Dinheiro? A presidência?”
“O quê? Oh, é claro... Mas, escute, se pudéssemos simplesmente provar os dois lemas a seguir...”
The mathematical Magpie, Clifton Fadiman
P O N T O S P R IN C IP A IS
♦ Um núm ero primo é um inteiro que só pode ser dividido sem resto por valores positivos e negativos de si mesmo
e por 1. Os núm eros primos desem penham um papel fundamental na Teoria dos Números e na criptografia.
♦ Dois teorem as que desem penham papéis im portantes na criptografia de chave pública são o teorem a de Fermat e
o teorem a de Euler.
♦ Um requisito im portante em diversos algoritmos criptográficos é a capacidade de escolher um núm ero primo
grande. Uma área de pesquisa contínua é o desenvolvimento de algoritmos eficientes para determ inar se um in
teiro grande, escolhido aleatoriam ente, é um núm ero primo.
♦ Logaritmos discretos são fundam entais para diversos algoritmos de chave pública. Logaritmos discretos são
semelhantes aos logaritmos comuns, mas operam sobre a aritmética modular.
165
166 CRIPTOGRAFIA E SEGURANÇA DE REDES
Diversos conceitos da Teoria dos Números são essenciais no projeto dos algoritmos criptográficos de chave pública.
Este capítulo oferece uma visão geral dos conceitos mencionados em outros capítulos. O leitor familiarizado com
esses tópicos pode seguram ente ignorar este capítulo.
Assim como o Capítulo 4, este capítulo inclui diversos exemplos, cada um dos quais destacados em uma caixa
sombreada.
a = p f p f ■■■p '!' ( 8. 1)
onde /?, < P 2 < ' ” < /;i sã ° núm eros primos e onde cada ai é um inteiro positivo. Isso é conhecido como teorem a fun
dam ental da aritmética; uma prova poderá ser encontrada em qualquer texto sobre Teoria dos Números.
91 = 7 X 13
3600 = 2 4 X 32 X 52
11011 = 7 X l l 2 x 13
É útil, para o texto a seguir, expressar isso de outra maneira. Se P é o conjunto de todos os núm eros primos, então
qualquer inteiro positivo a pode ser escrito exclusivamente da seguinte forma:
O lado direito é o produto sobre todos os números primos possíveis /;; para qualquer valor em particular de a, a maio
ria dos expoentes ap será 0 .
O valor de qualquer inteiro positivo dado pode ser especificado simplesmente listando-se todos os expoentes
diferentes de zero na formulação a seguir.
A m ultiplicação de dois núm eros é equivalente à adição dos expoentes correspondentes. D ados
a = Y l P°P' b = IT
Pbp >defina k = ab. Sabemos que o inteiro k pode ser expresso como o produto de potências
pe? peP
de primos: k = Y Í P p- Segue-se que k = a + b para todo p g P.
pe?
1. Nesta seção, a m enos que observado de outra forma, lidam os apenas com inteiros não negativos. O uso de inteiros negativos não intro
duziria diferenças essenciais.
2. Lcm bre-sc. conform e explicado no Capítulo 4, de que o inteiro a c considerado um divisor do inteiro b se não houver resto na divisão. De
m odo equivalente, dizem os que o divide b.
.
r* c r c r C '. c r o> c r r* o
o o c r c r Tf « r. r - r - co Gv Gv Ov
o o C" o o O ' & o o o O ' s> o
c r r - r - c r r - Gv Gv
o — c r VO vO r* r -
cc cc 8 co oS co co co co co co §8
o c r c r r* c r o r - c r r - Gv
o r i c r Tf Tf i r • r r - co cc CC
r - P i r - r - r* r* r ' r - r* r*
_ r - o c r o r - r - c r Gv c r r - CV
r i r^ c r « r, O" Gv Gv
3 3 3 \ õ õ sO vO vO vO 3 3 3 vO O vO
CT c r o c r o> o c r r*
—• r i c r Tf i r *T é vO r - r - co O '
• r «A */T £ » r » r * r * r « r » r i r
c r r* gv c r O ' r* c r Gv c r r - Gv c r
S CN r i n c r c r « r « r « r r* CO o g
Tf T f Tf Tf Tf Tf T f T f Tf Tf '4 T f T f Tf
1 ' ~ ' T—- r ~~* ’ ‘ u'"* * ' * r ""1 * '
, , ,
c r o r* c r Gv
o £ ! Gv
£ c r 3 c r c r c r 3 3 P ; 3 c r
' 1
“
*—• c r r - c r o r - Gv Gv Gv c r Gv r -
O *—• — r i r i c r c r Tf • r r - r* cc co Gv Gv
r i r i r i r i <N CM o . r i r i r i r i r j r i r i r i
1 — •— •—• •—• •—•
1 — ■
c r r* c r O f— c r c r r* c r
o s r i r i « r, o co co Gv
. T—
c r o c r o Gv c r Gv r - c r r -
s r i c r c r c r • r o vO vO cc o o o
o o o o o o o 3 o o O O o o o o
' ■ ' *—< *— *—« *—• •—• •— j ' *
r - o o r* r— r* c r r - c r r -
o •— c r Tf Tf ir. vO r - r - cc Gv Gv
o o o S i o Gv o o Gv o Gv o O
o c r r - C ' o c r r - C ' c r r* c r r -
o r i r i n c r * r i r t r r -
cc Sõ co 8 co co co co oo oo 3 cc g §8 §8
o r - c r Gv c r r - Gv c r r* r»
o s r j c r c r Tf « r « r VO O r - co Gv
r - r - r - r - r - r - r - r - r - r - r -
r* c r r - gv c r r - c r Gv c r r - c r
o o c r Tf Tf • r i r vC r - r - CO Gv
vO VO O vO vO o 3 vO vO o vO vO o vO vo vO
Primos m eno res q u e 2000
CT Ov c r r - r - c r Gv r - c r o
o O r i r i Tf Tf * r vO vO r - r* X Gv Gv
in ir, «T »O u~, i r i r « r « r * r « r T
o o c r o c r Gv r - c r Gv Gv
o o c r c r c r • r r*
Tf Tf Tf 3 Tf Tf Tf 3 3 Tf 3 3 3 Tf 3 3 3
r - c r r - r - Gv c r Gv r - c r Gv c r Gv r -
o r —• T-^ *—* c r c r Tf « r • r vO r - r - cc cc o
c r c r c r c r c r c r 3 c r c r c r c r c r c r c r c r c r
c r r - o c r o r - c r Gv r - c r c r
— r i r i r i c r c r Tf « r • r vO vO r - r - co cc Gv
r i r i n CM r i r '. CM r i r i r i r i r i r i r i r i r i
c r r - O c r r* r* Gv Gv c r r - c r Gv c r r-' Gv
o o o O 1—* r i c r c r c r Tf i r i r VC >o r* co C ' C ' C ' C '
Tabela 8.1
c r r - Gv c r Gv r* c r r - c r G** c r Gv c r GV
CM c r r , r r i r i c r c r Tf Tf Tf « r « r o o r - r - cc 00 Gv
168 c r ip t o g r a f ia e s e g u r a n ç a d e r e d e s
Isso significa, em termos dos fatores primos de tf e b, dizer que a divide fr? Q ualquer inteiro na forma p" pode
ser dividido apenas por um inteiro que seja de potência m enor ou igual ao mesmo núm ero prim o,p ’ com j < n. Assim,
podemos dizer o seguinte:
É fácil determ inar o máximo divisor comum3 de dois inteiros positivos se expressarmos cada inteiro como o pro
duto dos primos.
300 = 2 2 X 3 ' X 52
18 = 2 ‘ X 32
m d c (1 8 ,300) = 21 x 31 X 5o = 6
Não é fácil determ inar os fatores primos de um núm ero grande, de modo que o relacionam ento anterior não leva
diretam ente a um m étodo prático de calcular o máximo divisor comum.
Dois teorem as que desem penham papéis im portantes na criptografia de chave pública são o teorem a de Ferm ât e o
teorem a de Euler.
T eorem a de F e rm â t45
O teorem a de Fermât afirma o seguinte: Se p é primo e a é um inteiro positivo não divisível por p, então
ap 1 = l( m o d p ) 82
( . )
Prova: Considere o conjunto de inteiros positivos m enores que p: { 1 ,2 ,... ,p - 1} e multiplique cada elem ento por
a, módulo p, para obter o conjunto X = [a mod p, 2a mod p , . . . (p - 1)a mod p). Nenhum dos elem entos de X é igual
a zero porque p não divide a. Além do mais, dois inteiros em X não são iguais. Para verificar isso, considere que ja =
ka( mod p) onde l < ; < & < p - l . Como a é relativam ente primo* de p, podemos eliminar a dos dois lados da
equação [ver Equação (4.3)] resultando em: j = k( mod p). Essa última igualdade é impossível, porque j e k são ambos
3. Lcm bre-se, conform e o C apítulo 4 ,d c que o máximo divisor com um dos inteiros a c />, expresso com o m dc(«,/)),c um inteiro c que divide
a e b sem resto e que qualquer divisor de a e b é um divisor de c.
4. Este ás vezes é conhecido com o pequeno teorem a de Ferm at.
5. Lembre-se, conform e o C apítulo 4. de que dois núm eros são relativam ente prim os se não tiverem fatores prim os em com um , ou seja, seu
único divisor com um c 1. Isso equivale a dizer que dois núm eros são rclativam cntc primos se seu máximo divisor comum for 1.
CAPÍTULO 8 • INTRODUÇÃO À TEORIA DOS NÚMEROS 169
inteiros positivos menores que /;. Portanto, sabem os que os (p - 1) elem entos de X são todos inteiros positivos, sem
que dois elem entos sejam iguais. Podemos concluir que X consiste no conjunto de inteiros ( 1 , 2 , . . . , / ? - 1) em algu
ma ordem . Multiplicar os núm eros nos dois conjuntos e apanhar o resultado mod p gera
Podemos cancelar o term o (p - I)! porque ele é relativam ente primo de p [ver Equação (4.3)]. Isso gera a E qua
ção (8.2).
Uma forma alternativa do teorem a de Fermat também é útil: Se p é primo e « é um inteiro positivo, então
ar = a (m o á p ) (8.3)
Observe que a primeira forma do teorem a [Equação (8.2)] requer que « seja relativam ente prim o de /?, mas esta últi
ma forma não.
p = 5, « = 3 ap = 35 = 243 s 3 (m od 5) = «(m od p )
p = 5, « = 10 ar = IO'' = 100000 = 1 0 (m o d 5 ) = 0 (m o d 5 ) = « (m o d /?)
1 ,2 ,3 ,4 ,6 ,8 ,9 ,1 1 ,1 2 ,1 3 ,1 6 ,1 7 ,1 8 ,
19,22,23,24,26,27,29,31,32,33,34.
A Tabela 8.2 lista os 30 primeiros valores de <£(«)• O valor <£(1) não tem significado, mas é definido para que
tenha o valor 1.
D everá ficar claro que, para um núm ero primo /?,
= P ~ 1
Agora, suponha que tenham os dois núm eros primos p e q , com p ± q. Então, podemos m ostrar que, para n = p q ,
n 0 (n ) n 0 (» )
1 1 21 12
2 1 22 10
3 2 23 22
4 2 24 8
5 4 25 20
6 2 26 12
7 6 27 18
8 4 28 12
9 6 29 28
10 4 30 8
Para verificar que <£(//) = <t>(p) x <p(q), considere que o conjunto de inteiros positivos m enores que n c o conjunto
{1, (pq - 1)). Os inteiros nesse conjunto que não são relativam ente primos de n são o conjunto {/;, 2 / ; , ( q - 1)/;)
e o conjunto {q, 2 q , . . . , ( p - l)r/). Por conseguinte,
T eorem a de Euler
O teorem a de Euler afirma que, para cada a e n que sejam relativam ente primos:
Prova: A Equação (8.4) é verdadeira se n for primo, pois nesse caso </>(«) = (n - 1) e o teorem a de Ferm at prevalece.
Porém, ela também prevalece para qualquer inteiro n. Lembre-se de que <!>(<n) é o núm ero de inteiros positivos
menores que n que são relativam ente primos de n. Considere o conjunto desses inteiros, rotulados da seguinte forma:
O u seja, cada elem ento de R é um inteiro positivo exclusivo, m enor que n com mdc(xifn) = 1. Agora, multiplique
cada elem ento por a, módulo n :
S = {( ax i m od n ), (ax2 m od At),. . . , m od n ) }
í. Como a é relativam ente primo de n e .v, é relativam ente primo de a í , axt também deverá ser relativam ente
primo de n. Assim, todos os membros de S são inteiros menores que n e relativam ente primos de n.
2. Existem duplicatas em S. Consulte a Equação (4.3). Sc ax, mod n = axj mod /z, então jc, = Xj.
CAPÍTULO 8 • INTRODUÇÃO ATEORIA DOS NÚMEROS 171
Portanto,
Mn) Mn)
Q (ax, m od n) i/=t1
/=!
Mn) Mn)
ni = i « i IT,
1=1
(m od n)
'Mn) Mn)
a Mn) X it n - , (m od n)
i '= i i—1
a Mn) 1 (m od n)
Essa é a mesma linha de raciocínio aplicada à prova do teorem a de Fermat. Como acontece com o teorem a de Fermat,
uma forma alternativa do teorem a também é útil:
Novamente, de modo sem elhante ao caso do teorem a de Fermat, a primeira forma do teorem a de Euler [Equação
(8.4)| requer que a seja relativam ente primo de //, mas essa forma não.
Para muitos algoritmos criptográficos, é necessário selecionar um ou mais números primos muito grandes aleatoria
mente. Assim, encaramos a tarefa de determ inar se certo núm ero grande é primo. Não existe um meio simples e efi
ciente de realizar essa tarefa.
Nesta seção, apresentamos um algoritmo atraente e bastante utilizado. Você pode ficar surpreso ao descobrir que
esse algoritmo gera um núm ero que não é necessariamente primo. Porém, o algoritmo pode gerar um núm ero que
quase certam ente é primo. Isso será explicado nesta seção. Também fazemos referência a um algoritmo determinístico
para encontrar primos. A seção termina com uma explicação a respeito da distribuição dos primos.
Algoritmo de Miller-Rabin6
O algoritmo devido a Millcr e Rabin [MILL75, RAI3I80] norm alm ente é usado para testar se um núm ero grande é
primo. A ntes de explicar o algoritmo, precisamos de alguma base. Primeiro, qualquer inteiro positivo ímpar n > 3
pode ser expresso da seguinte forma:
Prova: O teorema de Fermat [Equação (8.2)) afirma que an 1 = l(m od //) se n for primo. Temos que p - 1 = 2kq.
A ssim ,sabem os que ar ~l mod p = o2 q mod p = 1. Assim, se examinarmos a seqüência de números
6 .Também conhecido na literatura como algoritm o de R abin-M illcr.ou teste de Rabin-M iller, ou teste de Miller-Rabin.
172 CRIPTOGRAFIA E SEGURANÇA DE REDES
TEST (n )
1. E ncontre in teiro s k , q, com k > 0, q ím par, de modo q u e (n - 1 = 2 kq) ;
2. S elecio n e um i n t e i r o aleató rio a, 1 < a < n - 1;
3 . S e aq m o d n = 1 e n t ã o r e t u r n (" i n c o n c l u s i v o " ) ;
4. para j = 0 a té k - 1 faça
5. se a ' (,’ m o d n = n —1 então retu rn ( " in con clu sivo" ) ;
6. r e t u r n ( "c o m p o sto ");
Vamos aplicar o teste ao núm ero primo n = 29. Temos (n - 1) = 28 = 22(7) = 2kq. Primeiro, vamos testar
a = 10. Calculamos 107 mod 29 = 17, que não é 1 nem 28, de m odo que continuamos o teste. O próximo cál
culo descobre que (107)2 mod 29 = 28, e o teste retorna i n c o n c l u s i v o , ou seja, 29 pode ser primo. Vamos
testar novam ente com a = 2. Temos os seguintes cálculos: 27 mod 29 = 12; 2 14 mod 29 = 28; e o leste nova
mente retorna i n c o n c l u s i v o . Se realizarmos o teste para todos os inteiros a no intervalo de 1 a 28, obtere
mos o mesmo resultado inconclusivo, que é compatível com n sendo um núm ero primo.
Agora, vamos testar com o núm ero composto n = 13 x 17 = 221. Então, (n - 1) = 220 = 22(55) = 2kq.
Vamos testar a = 5. Então, temos 555 mod 221 = 112, que não é 1 nem 220; (555)2 mod 221 = 168. Como
usamos todos os valores de j (ou seja,;' = 0 e j = 1) na linha 4 do algoritmo TESTE, o teste retorna com
p o s t o , indicando que 221 é definitivamente um núm ero composto. Mas suponha que tivéssemos sele
cionado a = 21. Então, teríamos 2155 mod 221 = 200; (2155)2 mod 221 = 220; e o teste retornaria i n c o n
c l u s i v o , indicando que 221 pode ser primo. De fato, dos 218 inteiros de 2 até 219, quatro desses retornarão
um resultado inconclusivo, a saber, 21,47,174 e 200.
Os dois inteiros ímpares consecutivos 1.000.000.000.061 e 1.000.000.000.063 são ambos primos. Por outro
lado, 1001! + 2,1001! + 3 ,..., 1001! + 1000,1001! + 1001 é uma seqüência de 1000 inteiros compostos
consecutivos.
Os 10 inteiros em Z l0, que são os inteiros de 0 a 9, podem ser reconstruídos a partir de seus dois resíduos
módulo 2 e 5 (os fatores relativam ente primos de 10). Digamos que os resíduos conhecidos de um dígito
decimal x sejam r2 — 0 e r5 = 3, ou seja, .v mod 2 = 0 e x mod 5 = 3. Portanto, x é um inteiro par em Z ]0
cujo resto, na divisão por 5, é 3. A única solução é x = 8.
O TCR pode ser declarado de várias maneiras. A presentam os aqui uma formulação que é mais útil do ponto de
vista deste texto. Uma formulação alternativa é explorada no Problema 8.17. Considere
M = n « ,
i=l
onde o m i são pares de números relativam ente primos, ou seja, mdc(/?/,, mj) = 1 para 1 ^ i , j < /c, e / ^ j. Podemos
representar qualquer inteiro A em Z M por uma tupla de k cujos elem entos estão em Z lW., usando a seguinte corres
pondência:
onde A e Z w,a, € Z x1r e at = A mod para 1 < / < k. O TCR faz duas asserções.
1. O m apeam ento da Equação (8.7) é uma correspondência biunívoca (chamada de bijeção) entre Z M e o pro
duto cartesiano Z iW/ X Z,v/, X ... x Z ^ k. O u seja, para cada inteiro A tal que 0 < A < À7, existe uma tupla
de k elem entos exclusiva (a ,ya2, ..., ak) com 0 ^ a-f < m , que o representa, e para cada tupla de k elementos (fl,,
n2y...yOk) existe um inteiro exclusivo A em Z A/.
7. O TC R tem esse nom e porque acredita-se que tenha sido descoberto pelo m atem ático chinês Sun-Tsu, por volta do ano 100 DC.
174 CRIPTOGRAFIA E SEGURANÇA DE REDES
2. As operações realizadas sobre os elem entos de Z M podem ser equivalentem ente realizadas sobre as tuplas de
k correspondentes, realizando-se a operação independentem ente, cm cada posição de coordenada no sistema
apropriado.
Vamos dem onstrar a primeira asserção. A transform ação de A para (aifa2, a k) obviam ente é exclusiva; ou seja,
cada é calculado exclusivamente como a, = A mod m O cálculo de A a partir de (ci\,a2y —♦ok) pode ser feito da
seguinte forma. Considere Mj = Mlmi para 1 < / < / : . Observe que = w , X m 2 X ... x niiA x m i+l x ... x tnk, de
modo que = 0(mod mj) para todo j =£ /. Então, considere
Pela definição de M h ele é relativamente primo de m i e, portanto, possui inverso multiplicativo exclusivo mod m r
Assim, a Equação (8 .8 ) é bem definida e produz um valor exclusivo cv Podemos agora calcular:
(8.9)
Para m ostrar que o valor de A produzido pela Equação (8.9) está correto, temos de m ostrar que at = A mod m h
para 1 < / < / : . Observe que cf = Mj = 0(mod m,) se j ^ / e que c, = 1(mod m,). Segue-se que a,- = A mod m r
A segunda asserção do TCR, referente a operações aritméticas, vem das regras da aritm ética modular. Ou seja,
a segunda asserção pode ser declarada da seguinte forma: Se
Para representar 973 mod 1813 como um par de núm eros mod 37 e 49, defina 8
ni\ = 37
m 2 = 49
M = 1813
A = 973
Também temos M ] = 49 e M2 = 37. Usando o algoritmo euclidiano estendido, calculamos M j" 1 = 34 mod m,
e M 2 1 = 4 mod m 2. (Observe que só precisamos calcular cada M, e cada M ,- 1 uma vez.) A panhando resíduos
módulo 37 e 49, nossa representação de 973 é (11,42), pois 973 mod 37 = 11 e 973 mod 49 = 42.
Agora, suponha que queiram os som ar 678 a 973. O que fazemos com (11, 42)? Primeiro, calculamos
(678) <-» (678 mod 37,678 mod 49) = (12,41). Depois, somamos as tuplas para cada elem ento e reduzimos
(11 + 12 mod 37,42 + 41 mod 49) = (23,34). Para verificar se isso tem o efeito correto, calculamos
(2 3 ,3 4 ) <— » m od M
= [(23) (49) (34) + (34) (37) (4)] m od 1813
= 43350 m od 1813
= 1651
8. Este exemplo foi fornecido pelo professor Ken Calvert, da G eorgia Tech.
CAPÍTULO 8 • INTRODUÇÃO À TEORIA DOS NÚMEROS 175
e verificamos se é igual a (973 + 678) mod 1813 = 1651. Lembre-se de que, na derivação acima, M \ 1 é o
inverso multiplicativo de M x módulo /w,, e M 2 1 é o inverso multiplicativo de M 2 módulo m 2.
Suponha que queiramos multiplicar 1651 (mod 1813) por 73. Multiplicamos (23,34) por 73 e reduzimos
para obter (23 x 73 mod 37,34 X 73 mod 49) = (14,32). Pode ser facilmente verificado que
Logaritmos discretos são fundam entais para diversos algoritmos de chave pública, incluindo a troca de chave Diffie-
Hellm an e o algoritmo de assinatura digital (DSA). Esta seção oferece uma rápida visão geral dos logaritmos discre
tos. Para o leitor interessado, mais detalhes desse assunto podem ser encontrados em [ORE67] e [LEVE90].
„<«"> = i( m o d /j)
onde <£(/t), a função tociente de Euler, é o núm ero de inteiros positivos m enores que n e relativam ente primos de n.
Agora, considere a expressão mais geral:
am = l(m o d n ) ( 8. 10)
Se a e n são relativamente primos, então existe pelo menos um inteiro m que satisfaz a Equação (8.10), a saber, m = <£(//).
O expoente menos positivo m para o qual a Equação (8.10) c verdadeira, pode ser expresso de várias maneiras:
• a ordem de o (mod n)
• o expoente ao qual a pertence a (mod n)
• a extensão do período gerado por a
71 ■ 7 (m o d 19)
72 = 4 9 = 2 x 19 + 11 * ll( m o d 19)
73 = 343 = 18 x 19 + 1 s l(m o d 19)
74 = 2401 = 126 X 19 + 7 = 7(m od 19)
7 5 = 16807 = 884 X 19 + 11 s ll( m o d 19)
N ão há sentido em continuar, pois a seqüência é repetitiva. Isso pode ser provado observando-se que
7 3 = l(m o d 19) e, portanto, 73+y = 7 3 7y s 7;(m od 19), e por isso duas potências quaisquer de 7 cujos ex
poentes diferem em 3 (ou um m últiplo de 3) são congruentes entre si (m od 19). Em outras palavras, a se
quência é periódica, e a extensão do período é o m enor expoente positivo m tal que 7m = l(m o d 19).
A Tabela 8.3 mostra todas as potências de tf, módulo 19, para todo positivo a < 19. A extensão da seqüência para
cada valor de base ê indicada pelo sombreado. Observe o seguinte:
1. Todas as seqüências terminam em 1. Isso é coerente com o raciocínio dos parágrafos anteriores.
2. A extensão de uma seqüência divide <£(19) = 18, ou seja, um núm ero inteiro de seqüências ocorre em cada
linha da tabela.
176 C R IP T O G R A F IA e seg u ra n ça de redes
3. Algumas das seqüências têm extensão 18. Nesse caso, diz-se que o inteiro de base a gera (por potências) o con
junto de inteiros diferentes de zero módulo 19. Cada um desses inteiros é chamado de raiz primitiva do módulo 19.
Geralm ente, podemos dizer que o expoente mais alto possível ao qual um núm ero pode pertencer (mod n) é
</>(//)• Se um núm ero for dessa ordem , ele é considerado uma raiz primitiva de n. A importância dessa noção é que, se
a for uma raiz primitiva de n , então suas potências
a, o 2, . . . ,
são distintas (mod n) e são todas relativam ente primas de n. Em particular, para um núm ero primo p, sc a é uma raiz
primitiva de p, então
a, a 2, ..., a p~1
são distintos (mod p). Para o núm ero primo 19, suas raízes primitivas são 2,3, 10,13,14 e 15.
Nem todos os inteiros possuem raízes primitivas. De fato, os únicos inteiros com raízes primitivas são aqueles no
form ato 2 ,4 ,p “ e 2p " onde p é qualquer primo ímpar e a é um inteiro positivo. A prova não é simples, mas pode ser
encontrada em muitos livros sobre a Teoria dos Números, incluindo [ORE76].
log.v(l) 0
log,(-v) 1
lO g-rí^) lOfeOO + log.v(z) (8 .11)
l0 g .t(/) r X logt (y) (8.12)
Considere uma raiz primitiva a para algum núm ero primo p (o argum ento pode ser desenvolvido para não-pri
mos tam bém). Então, sabem os que as potências de a partir de 1 até (p - I) produzem cada inteiro de 1 até (p - 1)
exatam ente uma vez. Também sabemos que qualquer inteiro b satisfaz
pela definição da aritmética modular. Segue-se que, para qualquer inteiro b e uma raiz primitiva a de núm ero p rim o/;,
podemos encontrar um expoente exclusivo / tal que
d l o g ^ l ) = 0, pois a° m od p = l m od p = 1 (8.13)
dlo ga,p(a) = l,p o is a ] m od p = a (8.14)
Aqui está um exemplo usando um m ódulo não-primo, n = 9. Aqui, </>(w) = 6, e a = 2 é uma raiz primitiva.
Calculamos as diversas potências de a e encontram os
2o = 1 2 4 = 7 (m od 9)
21= 2 2 5 = 5 (m o d 9)
22 = 4 2 6 = l(m o d 9)
23 = 8
Isso nos dá a seguinte tabela de núm eros com determ inados logaritmos discretos (mod 9) para a raiz a = 2:
Logaritmo 0 1 2 3 4 5
N úm ero 1 2 4 8 7 5
Para facilitar a obtenção dos logaritmos discretos de determ inado número, rearrum am os a tabela:
Núm ero 1 2 4 5 7 8
Logaritmo 0 1 2 5 4 3
Agora, considere
x = rtdlo&-Av) m od p y = í7d,08tí m od p
x y = tfd,0& Ãv>*) m od p
Usando as regras da multiplicação modular,
x y m od p = [{x m od p ) (y m od /?)] m od p
= m0(j p
Mas agora considere o teorem a de Euler, que afirma que, para cada a e n que são relativam ente primos:
= i( m o d /i)
9. M uitos textos se referem ao logaritm o discreto com o o índice. G eralm ente, não existe uma notação convencionada para esse conceito,
m uito m onos um nom e convencionado.
178 CRIPTOGRAFIA E SEGURANÇA DE REDES
Qualquer inteiro positivo z pode ser expresso na forma z = q + k ^ n ), com 0 ^ q < <t>(n). Portanto, pelo teorema de Euler,
cr = tf'7(mod n) se z — (j m od (j>{n)
Aplicando isso à igualdade anterior, temos
dlog(,.p ( /) = [r X d l o g , ( m o d </>(/?))
a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
18 1 13 2 16 14 6 3 8 17 12 15 5 7 11 4 10 9
a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
log.u y(fl) 18 7 1 14 4 8 6 3 2 11 12 15 17 13 5 10 16 9
a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
lo g io .iy (« ) 18 17 5 16 2 4 12 15 10 1 6 3 13 11 7 14 8 9
a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
togaw í«) 18 11 17 4 14 10 12 15 16 7 6 3 1 5 13 8 2 9
a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
log 14.1<;(«) 18 13 7 8 10 2 6 3 14 5 12 15 11 1 17 16 4 9
a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
lo g is .iy (fl) 18 5 11 10 8 16 12 15 4 13 6 3 7 17 1 2 14 9
CAPÍTULO 8 • INTRODUÇÃO À TEORIA DOS NÚMEROS 179
BURN97 Burn, R. A pathway to number theory. Cambridge: Cambridge University Press, 1997.
KUMA98 Kumanduri. R. e Romero, C. Number theory with computer applications. Upper Saddle River: Prentice Hall,
1998.
LEVE90 Leveque, W. Elementary theory o f numbers. New York: Dover, 1990.
ORE67 Ore, O. Invitation to number theory. Washington: The Mathematical Association of America, 1967.
ROSE05 Rosen, K. Elementary number theory and its applications. Reading: Addison-Wesley, 2000.
P erguntas de revisão
8.1 O que é um núm ero primo? um núm ero é primo. Como esse algoritmo pode
8.2 Q ual é o significado da expressão a divide b? ser usado para testar se o núm ero é primo?
8.3 O que é a função tociente de Euler? 8.5 O que é uma raiz primitiva de um núm ero?
8.4 O teste de Miller-Rabin pode determ inar se um 8.6 Qual é a diferença entre um índice e um logaritmo
núm ero não é primo, mas não pode determ inar se discreto?
P roblem as
8.1 A finalidade deste problema é determ inar quantos a. Considere P = Pr[mdc(a, b) = lj. M ostre que
núm eros primos existem. Suponha que haja um Pr[mdc(a, b) = d] = Pld1. Dica: Considere a quan
total de n números primos, e os listemos em ordem:
tidade igualdade mdc
P\ = 2 < p 2 = 3 < ps = 5 < • • • < pn.
a. Defina X = 1 + p xp 2 Qu seja, X é igual a um b. A soma do resultado da parte (a) sobre to
mais o produto de todos os primos. Podemos dos os valores possíveis dc d ê 1. Qu seja:
encontrar o núm ero primo p /n que divide X'l
2)Pr[gcd(ci, b) = d] = l.Use essa igualdade para
h. O que você pode dizer sobre m l </£1
c. Deduza que o núm ero total de primos não pode determ inar o valor de P. Dica: Use a igualdade
ser finito.
cl. M ostre que /;,í+1 < 1 + pij)2 .
8.2 A finalidade deste problema é dem onstrar que a 8.3 Por que mdc(/?, n + 1) = 1 para dois inteiros con
probabilidade de que dois núm eros aleatórios secutivos n e n + 1?
sejam relativam ente primos é de cerca de 0,6. 8.4 Usando o teorema de Fermat, encontre 3201 mod 11.
180 CRIPTOGRAFIA E SEGURANÇA DE REDES
8.5 Use o Teorema de Fermat para encontrar um número fazer isso com números não primos até um valor
a entre 0 e 72 com a congruente a 9794 módulo 73. muito grande. Isso confundiu os matemáticos chi
8.6 Use o Teorema de Fermat para encontrar um nú neses, que pensaram que, se a condição fosse ver
mero .v entre 0 e 28 com a*85 congruente a 6 módulo dadeira, então n seria primo,
29. (Você não precisara usar qualquer pesquisa por cl. Infelizmente, os antigos chineses nunca experimen
força bruta.) taram n = 341, que não é primo (341 = 11 X 31) e
8.7 Use o Teorem a de E uler para en co n trar um ainda 341 divide 2M< - 2 sem resto. Demonstre que
núm ero a entre 0 e 9 tal que a seja congruente a 2341 = 2(mod 341) (invalidando a condição somente
71000 módulo 10. (Observe que isso é o mesmo que se). Dica: não é necessário calcular 2341;em vez disso,
o último dígito da expansão decimal de 7llM,(>). use as congruências.
8.8 Use o Teorema de E uler para encontrar um nú 8.15 Mostre que, se n é um inteiro composto ímpar, então
mero .v entre 0 e 28 com x8:>congruente a 6 módulo 0 teste de Miller-Rabin retornará i n c o n c l u s i v o
35. (Você não precisará usar qualquer pesquisa por para a = 1 e a = (n - 1).
força bruta.) 8.16 Se n é composto e passa no teste de Miller-Rabin
8.9 Observe, na Tabela 8.2, que </>(/*) é par para n > 2. Isso para a base r/, então n é cham ado de pseudoprimo
é verdade para todo n > 2. Forneça um argumento forte na base a. Mostre que 2047 é um pseudoprimo
conciso para explicar por que Isso acontece. na base 2.
8.10 Prove o seguinte: Se p é primo, então = 8.17 Uma formulação comum do teorem a chinês do
pi _ p i-i Djca: qUC núm eros têm um fator em resto (TCR) é a seguinte: Considere que m ,,..., m k
comum com p'? sejam inteiros relativam ente primos par a par, para
1 < iyj < kyC i r j. Defina A7 como sendo o produ
8.11 Podemos m ostrar (consulte qualquer livro sobre a
to de todos os m/s. Considere que a,, ..., ak sejam
Teoria de Números) que, se mdc(m, //) = 1, então
inteiros. Então, o conjunto de congruências:
cp(rnn) = (f)(m)</>(/?). U sando essa propriedade e a
propriedade desenvolvida no problema anterior, e ,v = <?i(mod m x)
a propriedade de que 4>(p) = p - 1 para p primo, é x = r/2(mod m 2)
simples determ inar o valor de <f>(n) para qualquer
n. Determ ine o seguinte: .v = **(mod m k)
a. </>(41) b. </>(27)
c. 0(231) cl. *(440) tem uma solução exclusiva módulo M. Mostre que
8.12 Também pode ser m ostrado que, para qualquer o teorem a declarado dessa forma é verdadeiro.
inteiro positivo a, é(a ) é dado por: 8.18 O exemplo usado por Sun-Tsu para ilustrar o TCR foi
<H<i) =n[prv.
=
í i
~>)] x = 2(mod 3); .v = 3(mod 5); .v = 2(mod 7)