Escolar Documentos
Profissional Documentos
Cultura Documentos
Campina Grande
2018
MARIA JOSÉ CÂNDIDO DE OLIVEIRA
Campina Grande
2018
MARIA JOSÉ CÂNDIDO DE OLIVEIRA
BANCA EXAMINADORA
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
Aos meus pais, pelo apoio e incentivo, em especial a minha mãe Maria, que sempre me apoiou
para que continuasse o curso.
Ao professor e coordenador do curso de Matemática, Prof. Me. Cícero da Silva Pereira, por
todos os seus ensinamentos.
The present work is made up of bibliographic research and aims to disseminate the importance
of the primary codes in internet security. The primary numbers, the mathematical patterns, are
the building blocks of all numbers, are based on an algorithm, are able to guarantee all the
security of the internet. This method of encrypting public keys is discussed as RSA. To perform
the algorithm of operation, it is necessary to study some concepts of Number Theory, such as
Modular Arithmetic and the Riemann Hypothesis, one of the most important in mathematics.
This is a very complex theory about the nature of the primary codes, and is a presentation of all
the security of the internet. That's because there is a quick way to find out the cousins used to
generate RSA codes.
INTRODUÇÃO .................................................................................................................... 9
Os números primos são conhecidos há muito tempo. Há 300 a.C, Euclides já havia
provado que existia uma quantidade infinita desses números. Considerados os átomos da
Matemática, pois são “blocos” constituintes de todos os outros, os primos ainda são
considerados um grande mistério. Não se sabe como esses números se distribuem nem muito
menos uma fórmula para encontrá-los. Muitos problemas ainda sem solução estão associados a
esses números, e um deles é a famosa Hipótese de Riemann. Essa hipótese, se provada, poderá
revelar segredos sobre a distribuição dos números primos.
Recentemente, dois pesquisadores americanos provaram que estes números não são tão
aleatórios, o que já é considerado um grande avanço em direção à descoberta de um padrão
desses números. Mas ainda há muito o que se descobrir. E por serem tão imprevisíveis, estes
números servem de base para o algoritmo RSA, que é um algoritmo de criptografia de dados
que utiliza duas chaves: uma pública, para cifrar a mensagem e outra chave privada, que serve
para decifrá-la.
A segurança das informações que circulam pela internet está apoiada no método
criptográfico RSA. Esse algoritmo se baseia na escolha de dois números primos grandes, o que
o torna seguro pela dificuldade de se fatorar um número rapidamente. Grande parte das
transações bancárias e das compras com cartão de crédito utilizam o algoritmo RSA.
O objetivo desse trabalho é mostrar como os números primos são importantes para
segurança da internet. Para isso, será apresentado definições e resultados importantes
relacionados a esses números.
10
Capítulo 1 – Números Primos: Os Átomos da Matemática Trabalho de Conclusão de Curso
CAPÍTULO 1
Um número natural maior do que 1 e que só pode ser divisível por 1 e por si próprio é
chamado de número primo. Este é um dos conceitos mais importantes na Matemática e a estes
números estão associados muitos problemas que ainda continuam sem solução. Os registros
mais antigos de um estudo sobre números primos devem-se aos gregos. O livro Elementos, de
Euclides, contém importantes teoremas sobre esses números, como a demonstração da sua
infinidade e o Teorema Fundamental da Aritmética.
Esta capacidade dos números primos de servir como blocos de construção para todos os
números é conhecida como Teorema Fundamental da Aritmética e será abordado mais adiante.
Será abordado também neste capítulo resultados básicos sobre números primos que servirão de
base para os capítulos posteriores.
11
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 1 – Números Primos: Os Átomos da Matemática Trabalho de Conclusão de Curso
Definição 1. Número primo é todo número natural maior do que 1 e divisível apenas por 1 e
por ele mesmo.
Definição 1.1. Número composto é todo número natural maior do que 1, que possui divisores
naturais diferentes de 1 e dele mesmo, podendo ser escrito como o produto de pelo menos dois
naturais, ambos diferentes de 1.
Definição 1.2. Diremos que 𝑏 divide 𝑎, em símbolos 𝑏 | 𝑎, se existir um inteiro c tal que
𝑎 = 𝑏 ∙ 𝑐. Neste caso, diremos também que a é divisível por b, que b é um divisor de a, ou
ainda, que a é um múltiplo de b.
Assim, 𝑏 | 𝑎 ⇔ 𝑎 = 𝑏𝑐 para algum 𝑐 𝜖 ℤ. O caso “b não divide a” será indicado por 𝑏 ∤ 𝑎.
12
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 1 – Números Primos: Os Átomos da Matemática Trabalho de Conclusão de Curso
13
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 1 – Números Primos: Os Átomos da Matemática Trabalho de Conclusão de Curso
Acreditava-se até 2016 que os números primos não apresentavam uma sequência
regular, isto é, não seria possível determinar qual seria o próximo número primo de uma lista
aparentemente aleatória. Esta questão sobre irregularidades de números primos atormentou as
mentes matemáticas de todas as épocas.
Os matemáticos não suportam admitir a possibilidade de que talvez não exista uma
explicação para o modo como a natureza escolheu os primos. Se a matemática não
tivesse uma estrutura, uma simplicidade bela, não valeria a pena estudá-la. Escutar
ruído branco nunca foi um passatempo muito apreciado. Nas palavras do matemático
francês Henri Poincaré, “o cientista não estuda a natureza por sua utilidade; ele o faz
porque se deleita com ela, e esse deleite vem de sua beleza. Se a natureza não fosse
bela, não valeria a pena conhecê-la, e se não valesse a pena conhecê-la, não haveria
por que viver esta vida”. (SAUTOY, 2007)
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 1 – Números Primos: Os Átomos da Matemática Trabalho de Conclusão de Curso
Anos mais tarde, Georg Friedrich Bernhard Riemann (1826 - 1866) teve a ideia de
estender o domínio da função 𝜁 (zeta) para todos os números complexos cuja parte real Re(s)
fosse superior a 1. Assim, definiu uma nova função:
∞
1
𝜁 (𝑆 ) = ∑
𝑛𝑆
𝑛=1
para Re(s)> 1. Essa função ficou conhecida como Função Zeta de Riemann.
Em 1859, Riemann publicou seu único artigo em Teoria dos Números, onde usava a
função zeta para investigar o padrão dos primos. Seu objetivo era demonstrar a Conjectura de
Gauss, hoje conhecida como Teorema do Número Primo, que afirmava que a quantidade de
números de primos entre 1 e x, quando x é muito grande, é aproximadamente x dividido pelo
logaritmo natural de x, isto é,
15
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 1 – Números Primos: Os Átomos da Matemática Trabalho de Conclusão de Curso
𝑥
.
ln 𝑥
Portanto, todos os zeros da função zeta que não são números reais, conhecidos como
zeros não-triviais, estarão na reta vertical x = ½. Essa reta é geralmente chamada de reta crítica.
A conjetura feita por Riemann afirma que “ todos os zeros não-triviais da função zeta
se encontram sobre a reta 𝑅𝑒(𝑠) = 1/2”. Esta afirmação é a famosa Hipótese de Riemann e
sua prova é considerada uma das mais importante da Matemática.
Uma prova da hipótese de Riemann teria um aspecto ainda mais significativo:
forneceria aos matemáticos um procedimento muito rápido e seguro para localizar um
número primo com, digamos, 100 algarismos, ou muitos mais. Naturalmente, você
poderia muito bem perguntar, “E daí?”, pois aparentemente esse resultado não
causaria um grande impacto na vida de muitas pessoas, além da dos matemáticos.
(SAUTOY, 2007)
16
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
CAPÍTULO 2
Neste capítulo, será abordado alguns conceitos importantes de Teoria dos Números que
servirão de base para o entendimento do algoritmo RSA. Serão tratados os conceitos de
congruências, que foi introduzido por Gauss no seu livro Disquisitiones Arithmeticae, o
Teorema de Euler, o Pequeno Teorema de Fermat e o Algoritmo Estendido de Euclides.
Teorema 2.1.1 (Divisão Euclidiana) Sejam a e b dois números naturais com 0 < 𝑎 < 𝑏.
Existem dois únicos naturais q e r tais que
𝑏 = 𝑎. 𝑞 + 𝑟, com 𝑟 < 𝑎.
17
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Se 𝑎 ∣ 𝑏, então 𝑟 = 0 e nada mais temos a provar. Se, por outro lado, 𝑎 ∤ 𝑏, então
𝑟 ≠ 𝑎, e, portanto, basta mostrar que não pode ocorrer 𝑟 > 𝑎. De fato, se isto ocorresse, existiria
um número natural 𝑐 < 𝑟 tal que 𝑟 = 𝑐 + 𝑎. Consequentemente, sendo 𝑟 = 𝑐 + 𝑎 = 𝑏 − 𝑞 ⋅ 𝑎,
teríamos 𝑐 = 𝑏 − (𝑞 + 1) ⋅ 𝑎 ∈ 𝑆, com 𝑐 < 𝑟, contradição com o fato de 𝑟 ser o menor
elemento de 𝑆.
Agora, prova-se a unicidade. Note que, dados dois elementos distintos de 𝑆, a diferença
entre o maior e o menor desses elementos, sendo um múltiplo de a, é pelo menos a. Logo, se
𝑟 = 𝑏 − 𝑎 ⋅ 𝑞 e 𝑟 ′ = 𝑏 − 𝑎. 𝑞′, com 𝑟 < 𝑟 ′ < 𝑎, teríamos 𝑟 ′ − 𝑟 ≥ 𝑎, o que acarretaria
𝑟 ′ ≥ 𝑟 + 𝑎 ≥ 𝑎, absurdo! Portanto, 𝑟 = 𝑟′. Daí, segue-se que 𝑏 − 𝑎 ⋅ 𝑞 = 𝑏 − 𝑎 ⋅ 𝑞′ e, portanto,
𝑞 = 𝑞′. □
Daí, tem-se 𝑞 = 5 e 𝑟 = 3.
𝑖) d é um divisor comum de a e de b, e
18
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Em particular, isto nos mostra que, se d e d′ são dois mdc de um mesmo par de números,
então 𝑑 ≤ 𝑑′ e 𝑑′ ≤ 𝑑, e consequentemente, 𝑑 = 𝑑′. Ou seja, o mdc de dois números, quando
existe é único.
O MDC de a e b, quando existe, será denotado por (𝑎, 𝑏). Como o MDC de a e b não
depende da ordem em que a e b são tomados, temos que (𝑎, 𝑏) = (𝑏, 𝑎).
𝑎│𝑏 ⟺ (𝑎, 𝑏) = 𝑎.
19
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Considere os inteiros 𝑎 e 𝑏, com 𝑎 > 𝑏 > 0. Pela divisão euclidiana, tem-se que
a) Se 𝑟1 = 0, então
𝑏 = 𝑟1 𝑞2 + 𝑟2 , com 0 ≤ 𝑟2 < 𝑟1 .
𝑟1 = 𝑟2 𝑞3 + 𝑟3 , com 0 ≤ 𝑟3 < 𝑟2 .
e assim sucessivamente.
Deve, portanto, existir um índice 𝑛 tal que 𝑟𝑛 ≠ 0 e 𝑟𝑛+1 = 0, pois caso contrário,
obteríamos uma sequência infinita 𝑏, 𝑟1 , 𝑟2 , … , com 𝑏 > 𝑟1 > 𝑟2 > ⋯ > 0, o que não é
possível.
20
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Por isso,
56 = 30 ⋅ 1 + 26 ⟹ ( 56, 30 ) = ( 30, 26 )
30 = 26 ⋅ 1 + 4 ⟹ ( 30, 26 ) = ( 26, 4 )
26 = 4 ⋅ 6 + 2 ⟹ ( 26, 4 ) = ( 4, 2 )
4 = 2 ⋅ 2 + 0 ⟹ ( 4, 2 ) = ( 2, 0 ) = 2
O algoritmo euclidiano pode ser sintetizado e realizado na prática como será mostrado
a seguir. Inicialmente, efetua-se a divisão 𝑏 = 𝑎𝑞1 + 𝑟1 e coloca-se os números envolvidos no
seguinte diagrama:
𝑞1
𝑏 𝑎
𝑟1
21
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
𝑞1 𝑞2
𝑏 𝑎 𝑟1
𝑟1 𝑟2
𝑞1 𝑞2 𝑞3 … 𝑞𝑛−1 𝑞𝑛 𝑞𝑛+1
𝑟1 𝑟2 𝑟3 𝑟4 … 𝑟𝑛
O exemplo (2.2.2), quando calculado pelo método acima, tem-se o MDC de 478 e 56
representado da seguinte maneira:
8 1 1 6 2
478 56 30 26 4 2
30 26 4 2
Quando utiliza o Algoritmo de Euclides para expressar (𝑎, 𝑏) na forma 𝛼𝑎 + 𝛽𝑏, com
𝛼 e 𝛽 ∈ ℤ, refere-se a ele como Algoritmo de Euclides Estendido.
𝑎𝛼 + 𝑏𝛽 = 𝑑.
Demonstração: Considere o conjunto com todas as combinações lineares 𝑎𝛼0 + 𝑏𝛽0 com
𝛼0 , 𝛽0 ∈ ℤ. Este conjunto contém números negativos, positivos e também o zero.
22
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Vamos escolher uma combinação linear tal que 𝑐 = 𝑎𝛼 + 𝑏𝛽 seja o menor inteiro
positivo pertencente a este conjunto. Primeiro, vamos provar que 𝑐 ∣ 𝑎 e 𝑐 ∣ 𝑏. Suponha que
𝑐 ∤ 𝑎. Então, pela Divisão Euclidiana, existem 𝑞 e 𝑟, tal que 𝑎 = 𝑐𝑞 + 𝑟, isto é, 𝑟 = 𝑎 − 𝑐𝑞,
com 0 < 𝑟 < 𝑐. Assim, teremos que:
Isto mostra que 𝑟 também é uma combinação linear entre 𝑎 e 𝑏. Mas isto é uma
contradição, pois como 0 < 𝑟 < 𝑐 e tomamos 𝑐 como o menor elemento positivo do conjunto.
Logo, 𝑐 ∣ 𝑎. De maneira análoga, provamos que 𝑐 ∣ 𝑏. Como 𝑑 é o máximo divisor comum
entre 𝑎 e 𝑏, então 𝑐 ∣ 𝑑 e existem 𝑘1 , 𝑘2 ∈ ℤ, tais que 𝑎 = 𝑑𝑘1 e 𝑏 = 𝑑𝑘2 .
Segue-se que,
𝑐 = 𝑎𝛼 + 𝑏𝛽 = 𝑑𝑘1 𝛼 + 𝑑𝑘2 𝛽 = 𝑑(𝑘1 𝛼 + 𝑘2 𝛽)
o que implica que 𝑑 ∣ 𝑐. Mas isso, nos dá que 𝑑 ≤ 𝑐. Como 𝑐, 𝑑 > 0 e 𝑑 < 𝑐 não é possível,
pois tomamos 𝑐 como o menor elemento positivo, conclui-se que 𝑐 = 𝑑. Logo,
𝑎𝛼 + 𝑏𝛽 = 𝑑. □
54 = 46 ⋅ 1 + 8 ⟹ 8 = 54 − 46 ⋅ 1
= 54 − [1234 − 54 ⋅ (22)]
46 = 8 ⋅ 5 + 6 ⟹ 6 = 46 − 8 ⋅ 5
23
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
8 = 6⋅1+2 ⟹ 2= 8−6⋅1
e portanto, 𝛼 = −7 e 𝛽 = 160.
Proposição 2.2.4 Sejam 𝑎 e 𝑏 números inteiros. Então (𝑎, 𝑏) = 1 se, e somente se, existem
números inteiros 𝛼 e 𝛽 tais que
𝛼𝑎 + 𝛽𝑏 = 1
Demonstração: Suponha que (𝑎, 𝑏) = 1. Logo, pelo Teorema 2.2.3, existem números 𝛼 e 𝛽 tais
que 𝛼𝑎 + 𝛽𝑏 = 1.
Reciprocamente, suponha que existam 𝛼 e 𝛽 tais que 𝛼𝑎 + 𝛽𝑏 = 1. Agora, se 𝑑 = (𝑎, 𝑏), temos
que 𝑑 ∣ (𝛼𝑎 + 𝛽𝑏), o que mostra que 𝑑 ∣ 1 e, portanto, 𝑑 = 1.
Proposição 2.2.5 Sejam 𝑎, 𝑏 inteiros positivos, tais que (𝑎, 𝑏) = 1. Para todo 𝑐 ∈ ℤ, verifica-
se que:
i) Se 𝑎 ∣ 𝑏𝑐, então 𝑎 ∣ 𝑐;
ii) Se 𝑎 ∣ 𝑐 e 𝑏 ∣ 𝑐, então 𝑎𝑏 ∣ 𝑐.
Demonstração:
i) Se 𝑎 ∣ 𝑏𝑐, então existe 𝜆 ∈ ℤ tal que 𝑏𝑐 = 𝑎𝜆. Se (𝑎, 𝑏) = 1, então pela Proposição 2.2.4,
tem-se que existem 𝛼 e 𝛽 ∈ ℤ, tal que
𝛼𝑎 + 𝛽𝑏 = 1
𝛼𝑎𝑐 + 𝛽𝑏𝑐 = 𝑐
24
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Portanto, 𝑎 ∣ 𝑐.
ii) Se 𝑎 ∣ 𝑐, podemos escrever 𝑐 = 𝜆𝑎, 𝜆 ∈ ℤ. Mas 𝑏 também divide 𝑐. Como (𝑎, 𝑏) = 1, segue
da afirmação (i) que 𝑏 tem que dividir 𝜆. Assim, temos 𝜆 = 𝑡𝑏, para algum inteiro 𝑡.
2.3 Congruência
Definição 2.3.1 Seja m um número natural diferente de zero. Diremos que dois números
naturais a e b são congruentes módulo m se m│ (b – a). Quando os inteiros a e b são congruentes
módulo m, escreve-se
𝑎 ≡ 𝑏 (mod 𝑚)
Dizer que a é congruente a b módulo m significa que a e b deixam o mesmo resto quando
divididos por m. Isso só ocorre se 𝑎 e 𝑏 são ou os dois positivos ou os dois negativos.
Quando a relação 𝑎 ≡ 𝑏 (mod 𝑚) for falsa, diremos que a e b são incongruentes módulo
m. Neste caso, 𝑎 ≢ 𝑏 mod 𝑚.
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Proposição 2.3.4 Suponha que a, b ∈ ℕ são tais que 𝑏 ≥ 𝑎. Tem-se que 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚) se, e
somente se, 𝑚 ∣ 𝑏 − 𝑎.
𝑚 (𝑞 ′ − 𝑞 ) + (𝑟 ′ − 𝑟 ), 𝑠𝑒 𝑟′ ≥ 𝑟
𝑏−𝑎 = {
𝑚 (𝑞 ′ − 𝑞 ) − (𝑟 − 𝑟 ′ ), 𝑠𝑒 𝑟 ≥ 𝑟′
Onde 𝑟 ′ − 𝑟 < 𝑚, ou 𝑟 − 𝑟 ′ < 𝑚. Portanto, 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚) se, e somente se, 𝑟 = 𝑟′, o que é
equivalente a dizer que 𝑚 ∣ 𝑏 − 𝑎. □
1) 𝑎 ≡ 𝑎 (mod 𝑚),
Demonstração:
26
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Demonstração:
𝑎𝑐 = (𝑏 + 𝑘1 𝑚)(𝑑 + 𝑘2 𝑚) = 𝑏𝑑 + 𝑘3 𝑚,
(2) Se 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚), então como 𝑐 ≡ 𝑐(𝑚𝑜𝑑 𝑚), segue do item (1) que
(3) Vamos provar por indução que 𝑎𝑘 ≡ 𝑏𝑘 (𝑚𝑜𝑑 𝑚) para todo inteiro 𝑘 ≥ 1. Como por
hipótese, 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚), então o resultado é válido para 𝑘 = 1. Suponhamos por hipótese de
indução que 𝑎𝑘 ≡ 𝑏𝑘 (𝑚𝑜𝑑 𝑚) para 𝑘 ≥ 1.
Como 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚), então multiplicando membro a membro estas duas congruências, segue
do item (1) que 𝑎𝑘+1 ≡ 𝑏𝑘+1 (𝑚𝑜𝑑 𝑚). Portanto, 𝑎𝑘 ≡ 𝑏𝑘 (𝑚𝑜𝑑 𝑚) para todo 𝑘 ≥ 1.
27
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
(4) Por hipótese, (𝑎 + 𝑐) ≡ (𝑏 + 𝑐)(𝑚𝑜𝑑 𝑚). Como −𝑐 ≡ −𝑐(𝑚𝑜𝑑 𝑚), então, do item (1),
somando estas congruências, obtemos que 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚). □
Solução: O problema é equivalente a determinar um inteiro 𝑟 tal que 4100 ≡ 𝑟(𝑚𝑜𝑑 5), em que
0 ≤ 𝑟 ≤ 4. É conveniente encontrar uma congruência base ou inicial de modo que, a partir dela,
possamos usar as propriedades necessárias da congruência chegando ao resultado desejado. Um
bom ponto de partida é 4 ≡ −1 (𝑚𝑜𝑑 5). Elevando ambos os membros desta congruência a
100, segue do item (3) da Proposição 2.1.3 que
Demonstração: Se 𝑎𝑐 ≡ 𝑏𝑐 ( 𝑚𝑜𝑑 𝑚 ),
Sendo 𝑑 = (𝑐, 𝑚), então 𝑚 = 𝑑𝑟 e 𝑐 = 𝑑𝑠, em que 𝑟 e 𝑠 são primos entre si, pois
(𝑟, 𝑠) = (𝑚⁄𝑑 , 𝑐 ⁄𝑑 ) = 1. Substituindo os valores de 𝑚 e 𝑐 em (2.1), obtemos
de modo que 𝑟 ∣ (𝑎 − 𝑏) pois (𝑟, 𝑠) = 1. Logo, 𝑎 ≡ 𝑏(𝑚𝑜𝑑 𝑟), ou melhor, 𝑎 ≡ 𝑏(𝑚𝑜𝑑 𝑚⁄𝑑 ).
Reciprocamente, sejam 𝑐 = 𝑑𝜆1 e 𝑚 = 𝑑𝜆2 . Como 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚⁄𝑑 ), isto é, 𝑎 ≡
𝑏 (𝑚𝑜𝑑 𝜆2 ), então 𝑎 − 𝑏 = 𝑘𝜆2 , com 𝑘 ∈ ℤ.
Portanto,
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
𝑎𝑥 ≡ 𝑏 (𝑚𝑜𝑑 𝑚)
Exemplo 2.3.9 Calcular a inversa de 23 módulo 41, ou seja, 23𝑥 ≡ 1 (𝑚𝑜𝑑 41):
Temos que (23, 41) = 1. Vamos usar o algoritmo estendido de Euclides para escrever
1 em termos de 23 e 41.
41 = 1 ⋅ 23 + 18 ⟹ 18 = 41 − 1 ⋅ 23
23 = 1 ⋅ 18 + 5 ⟹ 5 = 2 ⋅ 23 − 1 ⋅ 41
18 = 3 ⋅ 5 + 3 ⟹ 3 = 4 ⋅ 41 − 7 ⋅ 23
29
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
5 = 1 ⋅ 3 + 2 ⟹ 2 = 9 ⋅ 23 − 5 ⋅ 41
3 = 1 ⋅ 2 + 1 ⟹ 1 = 9 ⋅ 41 − 16 ⋅ 23
𝑎𝑝−1 ≡ 1 (𝑚𝑜𝑑 𝑝 ).
De fato, se
1, 2, 3, … , 𝑝 − 1. (2.3)
30
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
𝑎 ≡ 𝑏1 ( 𝑚𝑜𝑑 𝑝 ),
2𝑎 ≡ 𝑏2 ( 𝑚𝑜𝑑 𝑝 ),
isto é,
𝑎𝑝−1 ≡ 1 ( 𝑚𝑜𝑑 𝑝 ). □
Exemplo 2.4.1 Use o Teorema de Fermat e calcule o resto da divisão de 2194 por 17.
Usando novamente a proposição 2.1.3 (1) em (2.5), temos que 2192 ⋅ 22 ≡ 1 ⋅ 22 ( 𝑚𝑜𝑑 17),
ou seja, 2194 ≡ 4 ( 𝑚𝑜𝑑 17).
31
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Definição 2.5.1 (Função 𝝓 de Euler) Para cada inteiro 𝑛 ≥ 1, indiquemos por 𝜙(𝑛) o número
de inteiros positivos menores ou iguais a n que são relativamente primos com n. a função 𝜙
assim definida é chamada função fi de Euler.
Definição 2.5.2 Chama-se função aritmética toda função 𝑓 definida no conjunto ℕ dos naturais
e com valores no conjunto ℤ dos inteiros, i.e., toda função 𝑓 de ℕ em ℤ (𝑓 ∶ ℕ ⟶ ℤ ) .
Definição 2.5.3 Uma função aritmética 𝑓 se diz multiplicativa se 𝑓(𝑟 ∙ 𝑠) = 𝑓(𝑟) ∙ 𝑓(𝑠), para
todo par de inteiros positivos 𝑟 e 𝑠, tais que o (𝑟, 𝑠) = 1.
𝜙(𝑚𝑛) = 𝜙(𝑚)𝜙(𝑛).
1 2 … 𝑟 … 𝑚
2𝑚 + 1 2𝑚 + 2 … 2𝑚 + 𝑟 … 3𝑚
⋮ ⋮ ⋮ ⋮
32
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Pelo Lema 2.2.1, sabe-se que (𝑞𝑚 + 𝑟, 𝑚) = (𝑟, 𝑚). Os inteiros da 𝑟-ésima coluna
são primos com 𝑚, se e somente se, 𝑟 é primo com 𝑚. Além disto, como na primeira linha o
número de inteiros que são primos com 𝑚 é igual a 𝜙(𝑚), segue que há somente 𝜙(𝑚) colunas
formadas com inteiros que são todos os primos com 𝑚.
Por outro lado, em cada uma destas 𝜙(𝑚) colunas existe precisamente 𝜙(𝑛) inteiros
que são primos com 𝑛, porque na progressão aritmética:
𝑟, 𝑚 + 𝑟, 2𝑚 + 𝑟, . . . , (𝑛 – 1). 𝑚 + 𝑟
onde (𝑚, 𝑟) = 1, o número de termos que são primos com 𝑛 é igual a 𝜙(𝑛). Assim sendo, o
número total de inteiros que são primos com 𝑚 e 𝑛, isto é, que são primos a 𝑚𝑛, é igual a
𝜙(𝑚) ∙ 𝜙(𝑛), e isto significa que 𝜙(𝑚 ⋅ 𝑛) = 𝜙(𝑚) ⋅ 𝜙(𝑛). □
Demonstração:
(⟹) Se 𝑛 > 1 é primo, então cada um dos inteiros positivos menores que 𝑛 é primo com 𝑛 e,
portanto, 𝜙(𝑛) = 𝑛 – 1.
Demonstração: Suponha que (𝑎, 𝑏𝑐 ) = 1 e seja 𝑑 = (𝑎, 𝑏). Logo, 𝑑 ∣ 𝑎 e 𝑑 ∣ 𝑏𝑐. Por
conseguinte, (𝑎, 𝑏𝑐) ≥ 𝑑, ou seja, 𝑑 ≤ 1, o que nos mostra que 𝑑 = 1. Da mesma forma, temos
(𝑎, 𝑐 ) = 1. Para a reciproca, tem-se (𝑎, 𝑏) = 1 e (𝑎, 𝑐 ) = 1. Seja 𝑑 = (𝑎, 𝑏𝑐) e suponha que
𝑑 > 1. Assim, existe um primo 𝑝 tal que 𝑝 ∣ 𝑑. Sendo 𝑝 primo e 𝑝 ∣ 𝑏𝑐, tem-se que 𝑝 ∣ 𝑏 ou
𝑝 ∣ 𝑐. Se 𝑝 ∣ 𝑏, então como 𝑝 ∣ 𝑎, segue que (𝑎, 𝑏) ≥ 𝑝, isto é, 𝑝 ≤ 1, o que é impossível. Da
mesma forma, se 𝑝 ∣ 𝑐 chegamos a contradição 𝑝 ≤ 1. Isso encerra a prova. □
33
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Lema 2.5.5 Seja 𝑎 um inteiro tal que (𝑎, 𝑚) = 1. Se 𝑎1 , 𝑎2 , … , 𝑎𝜙(𝑚) são inteiros positivos
menores do que 𝑚 e relativamente primos com 𝑚, então
Demonstração: primeiro, mostraremos que 𝑎𝑎1 , 𝑎𝑎2 , 𝑎𝑎3 , … , 𝑎𝑎𝜙(𝑚) são dois a dois
incongruentes módulo 𝑚. De fato, se 𝑎𝑎𝑖 ≡ 𝑎𝑎𝑗 (𝑚𝑜𝑑 𝑚) para 𝑖 ≠ 𝑗, então como (𝑎, 𝑚) = 1,
podemos cancelar o fator 𝑎 desta congruência e, assim, 𝑎𝑖 ≡ 𝑎𝑗 (𝑚𝑜𝑑 𝑚), ou seja, 𝑚 ∣ 𝑎𝑖 − 𝑎𝑗 ,
o que é uma impossibilidade, pois 1 ≤ 𝑎𝑖 , 𝑎𝑗 ≤ 𝑚 − 1 e 𝑎𝑖 ≠ 𝑎𝑗 . Além disso, como
(𝑎, 𝑚) = 1 e (𝑎𝑖 , 𝑚) = 1 para todo 𝑖 = 1, … , 𝜙(𝑚), então pelo Lema 2.5.1, temos que
(𝑎𝑎𝑖 , 𝑚) = 1.
Como
(𝑏, 𝑚) = (𝑎𝑎𝑖 , 𝑚) = 1,
Logo,
Demonstração: O caso 𝑚 = 1 é imediato, pois 𝜙(1) = 1. Por isso, vamos considerar 𝑚 > 1.
Sejam 𝑎1 , 𝑎2 , 𝑎3 , … , 𝑎𝜙(𝑚) os inteiros positivos menores do que 𝑚 que são relativamente primos
com 𝑚. Desde que (𝑎𝑖 , 𝑚) = 1 para cada 𝑖 = 1, … . , 𝜙(𝑚), segue do Lema 2.5.2 que
𝑎𝑎1 , 𝑎𝑎2 , 𝑎𝑎3 , … , 𝑎𝑎𝜙(𝑚) são congruentes módulo 𝑚 a 𝑎1 , 𝑎2 , 𝑎3 , … , 𝑎𝜙(𝑚) , em alguma ordem.
34
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 2 – Teoria dos Números para RSA Trabalho de Conclusão de Curso
Desse modo,
𝑎 ⋅ 𝑎1 ≡ 𝑏1 ( 𝑚𝑜𝑑 𝑚)
𝑎 ⋅ 𝑎2 ≡ 𝑏2 (𝑚𝑜𝑑 𝑚)
ou seja,
Como (𝑎𝑖 , 𝑚) = 1 para todo 𝑖 = 1, … , 𝜙(𝑚), segue em decorrência do Lema 2.5.1 que
(𝑎1 𝑎2 … 𝑎𝜙(𝑚) , 𝑚) = 1. Por isso, podemos cancelar o fator 𝑎1 𝑎2 … 𝑎𝜙(𝑚) da última
congruência e, assim 𝑎𝜙(𝑚) ≡ 1 (𝑚𝑜𝑑 𝑚). □
Como (2, 21) = 1, podemos usar o Teorema 2.5.3, considerando 𝑎 = 2 e 𝑚 = 21. Primeiro,
calcula-se 𝜙 (21) = 𝜙(7 ⋅ 3) = 𝜙(7) ∙ 𝜙(3) = (7 − 1) ⋅ (3 − 1) = 6 ⋅ 2 = 12.
35
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
CAPÍTULO 3
3. CRIPTOGRAFIA RSA
Esse algoritmo foi responsável por enganar muitos inimigos do Império Romano; no
entanto, após ter sido descoberta a chave, como todas, perdeu sua funcionalidade.
Durante a Segunda Guerra Mundial, a Máquina Enigma (Figura 1) era utilizada para
criptografar todas as comunicações militares alemães.
36
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
Figura 1
Essa máquina foi patenteada pelo engenheiro Arthur Scherbius, em 1918. Era muito
parecida com uma máquina de escrever convencional: tinha um teclado com 26 letras, um
painel de 26 luzes, cada uma também marcada com uma letra e três discos para configurar.
Desde então, sucessivas gerações desenvolveram métodos criptográficos cada vez mais
sofisticados, a exemplo da criptografia de chave privada, conhecida também como criptografia
simétrica. Esse tipo de criptografia usa a mesma chave tanto para encriptar como para decriptar
dados. Imagine que se queira fazer uma compra pela internet. Antes que pudesse enviar dados
bancários com segurança, tinha-se que receber cartas confidenciais da empresa que organiza
cada página virtual em que se queira fazer compras, dizendo como codificar os detalhes. Devido
ao enorme tráfego de dados da internet, haveria o risco dessas cartas serem interceptadas. Surge,
então, o problema de enviar a chave de forma segura ao destinatário.
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
Na criptografia de chave pública uma mensagem cifrada só pode ser decifrada por sua
chave privada correspondente. Sautoy (2007, p. 187) define:
O sistema de criptografia de chave pública é como uma porta com duas chaves
diferentes: a chave A tranca a porta, mas uma chave diferente, B, a destranca. Então,
não é mais necessário manter qualquer confidencialidade em relação à chave A.
Distribuir cópias dela não compromete a segurança.
(SAUTOY, 2007)
Entre esses sistemas de criptografia, o mais conhecido é o sistema RSA, que é o tema
central desse trabalho e que será discutido a seguir.
38
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
O RSA é um sistema de chave pública que foi desenvolvido em 1977 por Ronald L.
Rivest, Adi Shamir e Leonard M. Adleman (Figura 2), que na época trabalhavam no
Massachussets Institute of Technology (M.I.T.), uma das melhores universidades americanas.
As letras RSA correspondem às iniciais dos inventores do código.
Figura 2
Esse sistema é muito usado nas comunicações eletrônicas como compras pela internet,
uso de cartões de crédito e tipo de comunicações em que é necessário usar assinatura eletrônica,
como por exemplo nos cheques eletrônicos. O RSA se baseia no produto de dois números
primos grandes com mais de 100 algarismos e a sua segurança está baseada na dificuldade
matemática de fatorar um inteiro grande.
Quando a ideia foi lançada, nos anos 1970, ninguém podia imaginar as dimensões que
o e-business ganharia. Porém, sem a força dos números primos, esse tipo de comércio
jamais poderia existir hoje em dia. Sempre que fazemos compras pela internet, nossos
computadores utilizam um sistema de segurança que depende da existência de
números primos com 100 algarismos. Esse sistema é chamado RSA, em homenagem
a seus três inventores. Até agora, já foram utilizados mais de um milhão de primos
para proteger o mundo do comércio eletrônico.
(SAUTOY, 2007)
39
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
Primeiro, tome 𝑛 como sendo o produto de dois números primos grandes 𝑝 e 𝑞. Note
que quanto maior forem esses números primos escolhidos, maior a dificuldade em fatorá-los.
Em seguida, calcula-se a função de Euler 𝜙(𝑛). Como foi visto nos Teoremas 2.5.2 e 2.5.3 do
capítulo anterior, 𝜙(𝑛) = 𝜙 (𝑝 ⋅ 𝑞 ) = 𝜙(𝑝) ⋅ 𝜙(𝑞 ) = (𝑝 − 1) ⋅ (𝑞 − 1). Escolhe-se um inteiro
𝑒, tal que 1 < 𝑒 < 𝜙(𝑛) e que seja primo com 𝜙(𝑛), ou seja, (𝑒, 𝜙 (𝑛)) = 1. E por último,
calcula-se 𝑑 tal que 1 < 𝑑 < 𝜙(𝑛), e que também 𝑒 e 𝑑 sejam inversos multiplicativos módulo
𝜙(𝑛), ou seja, 𝑒 ⋅ 𝑑 ≡ 1 𝑚𝑜𝑑 𝜙 (𝑛). O par (𝑛, 𝑒) será a chave de codificação e o par (𝑛, 𝑑), a
chave de decodificação do sistema RSA.
A maneira de se escolher os blocos não é única, porém não é permitido que um bloco
comece por 0, pois isto traria problemas na decodificação, uma vez que não seria possível
distinguir, por exemplo, o bloco 034 do bloco 34.
Para criptografar uma mensagem, eleva-se cada bloco 𝑏 à “ 𝑒-ésima ” potência módulo
𝑛. Então, o resultado criptografado 𝐶(𝑏) é o resto da divisão de 𝑏𝑒 por 𝑛, ou seja,
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
Onde:
Onde:
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
41
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
Iremos trabalhar com números primos pequenos para que os cálculos sejam verificados
facilmente. Portanto, tomaremos 𝑝 = 13 e 𝑞 = 17 e, neste caso, 𝑛 = 𝑝 ⋅ 𝑞 = 13 ⋅ 17 = 221.
Para iniciar o processo, devemos “quebrar” a mensagem em blocos, de modo que cada
um desses blocos sejam menores que 𝑛 = 221, assim:
𝑏1 𝑏2 𝑏3 𝑏4 𝑏5 𝑏6 𝑏7 𝑏8
Cada um desses blocos será criptografado pela fórmula 𝐶 (𝑏) = 𝑏𝑒 ≡ 𝑎 (𝑚𝑜𝑑 𝑛). Para
esse exemplo foi escolhido 𝑒 = 5, pois satisfaz as condições 1 < 5 < 𝜙(𝑛), onde 𝜙(𝑛) = 192.
Neste caso, o par (221,5) será a chave de codificação. Agora, basta codificar cada bloco usando
𝐶 (𝑏) = 𝑏𝑒 ≡ 𝑎 (𝑚𝑜𝑑 𝑛).
(222 )2 ≡ (42)2 ≡ 217 (𝑚𝑜𝑑 221) ⟹ 224 ≡ 217 (𝑚𝑜𝑑 221) (3.3)
224 ⋅ (22) ≡ 217 ⋅ (22) = 4774 ≡ 133 (𝑚𝑜𝑑 221) ⟹ 225 ≡ 133 (𝑚𝑜𝑑 221)
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
Para decodificar a mensagem usaremos a chave privada 𝑑. Para a escolha dessa chave,
devemos ter:
5 ⋅ 𝑑 ≡ 1 𝑚𝑜𝑑 192.
43
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
Calculando 𝑑, temos:
192 = 38 ⋅ 5 + 2 ⟹ 2 = 192 − 38 ⋅ 5
5 = 2 ⋅ 2 + 1 ⟹ 1 = 5 − 2 ⋅ 2 ⟹ 1 = 5 − 2 ⋅ (192 − 38 ⋅ 5)
1 = 5 − 2 ⋅ 192 + 76 ⋅ 5 ⟹ 1 = 77 ⋅ 5 − 2 ⋅ 192
Obtemos então que 5 ⋅ 77 ≡ 1 𝑚𝑜𝑑 192, logo, 𝑑 = 77, ou seja, 5 e 77 são inversos
multiplicativos módulo 192. Neste caso, o par (𝑛, 𝑑) será a chave de decodificação. Para cada
bloco da mensagem criptografada, faremos 𝐷(𝑎) = 𝑎𝑑 ≡ 𝑏(𝑚𝑜𝑑 𝑛):
44
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
Como 𝑑 é a chave privada, para calcular o seu valor, basta determinar o inverso
multiplicativo de 𝑒 módulo 𝜑(𝑛), ou seja, 𝑒 ⋅ 𝑑 ≡ 1 𝑚𝑜𝑑 𝜑(𝑛). Mas para calcular 𝜑(𝑛) é
necessário conhecer a fatoração de 𝑛.
Porém, não existe nenhum algoritmo capaz de fazer tal fatoração. Segundo Coutinho
(2009), o tempo necessário para fatorar um número de cem algarismos pelo método usual é
imenso, e excede, em muito, a idade estimada do universo.
𝐷(𝐶 (𝑏)) = 𝑏
Considere:
𝑖𝑖) 𝐷(𝑎) = 𝑎𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑛) a decodificação do bloco codificado 𝑎, onde 0 < 𝐷(𝑎) < 𝑛.
45
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
𝑒𝑑 = 1 + 𝑘 (𝑝 − 1) ∙ (𝑞 − 1) (4.5.3)
Logo,
𝑘
𝑏𝑒𝑑 ≡ 𝑏1+𝑘𝜙(𝑛) ≡ 𝑏. (𝑏𝜙(𝑛) ) (𝑚𝑜𝑑 𝑛)
O objetivo será mostrar que 𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑝) e 𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑞). Primeiro, vamos
provar que 𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑝). Para isso, iremos considerar dois casos:
Caso 1: (𝑝, 𝑏) ≠ 1
Como o MDC entre o número primo 𝑝 e o bloco 𝑏 é diferente de 1, então o número 𝑏 é
um múltiplo de 𝑝, ou seja,
𝑏 = 𝜆𝑝, 𝜆 ∈ ℤ
Daí,
𝑏 ≡ 0 (𝑚𝑜𝑑 𝑝) e 𝑏𝑒𝑑 ≡ 0 (𝑚𝑜𝑑 𝑝)
Pela Proposição 2.3.6, conclui-se que
𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑝)
Caso 2: (𝑝, 𝑏) = 1
Neste caso, os números 𝑝 e 𝑏 são primos entre si. Então, podemos usar o Teorema 2.4.1
(Teorema de Fermat). Para isso, vamos usar a expressão (4.5.4):
46
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Capítulo 3 – A Criptografia RSA Trabalho de Conclusão de Curso
47
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Considerações Finais Trabalho de Conclusão de Curso
4. CONSIDERAÇÕES FINAIS
48
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Sugestões para Pesquisas futuras Trabalho de Conclusão de Curso
49
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet
Referências Bibliográficas Trabalho de Conclusão de Curso
6. REFERÊNCIAS BIBLIOGRÁFICAS
GAUSS, Carl Friedrich. Tr. Arthur A. Clarke: Disquisitiones Arithmeticae, Yale University
Press, 1965.
50
OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet