Você está na página 1de 50

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA

IFPB - CAMPINA GRANDE


CURSO DE LICENCIATURA EM MATEMÁTICA

MARIA JOSÉ CÂNDIDO DE OLIVEIRA

A IMPORTÂNCIA DOS NÚMEROS PRIMOS PARA SEGURANÇA DA


INTERNET

Campina Grande

2018
MARIA JOSÉ CÂNDIDO DE OLIVEIRA

A IMPORTÂNCIA DOS NÚMEROS PRIMOS PARA SEGURANÇA DA


INTERNET

Trabalho de Conclusão de Curso apresentado


ao Instituto Federal de Educação, Ciência e
Tecnologia da Paraíba - IFPB, como parte das
atividades para obtenção do grau de
Licenciada em Matemática.

Orientador: Prof. Dr. Salomão Pereira de


Almeida

Campina Grande

2018
MARIA JOSÉ CÂNDIDO DE OLIVEIRA

A IMPORTÂNCIA DOS NÚMEROS PRIMOS PARA SEGURANÇA DA


INTERNET

Trabalho de Conclusão de Curso apresentado


ao Instituto Federal de Educação, Ciência e
Tecnologia da Paraíba - IFPB, como parte das
atividades para obtenção do grau de
Licenciada em Matemática.

Aprovado em: ___/___/______

BANCA EXAMINADORA

___________________________________________________________________________

Prof. Dr. Salomão Pereira de Almeida


(Orientador – IFPB)

___________________________________________________________________________

Prof. Dr. Jonathas Jerônimo Barbosa


(Examinador interno)

___________________________________________________________________________

Prof. Msc. Pedro Alfredo Eugênio


(Examinador interno)
À minha família, motivo de todo o meu esforço
e dedicação.
AGRADECIMENTOS

A Deus, por me dar forças para continuar.

Aos meus pais, pelo apoio e incentivo, em especial a minha mãe Maria, que sempre me apoiou
para que continuasse o curso.

Ao meu marido Dailson, pelo carinho, compreensão e seu apoio incondicional.

Ao meu filho João Victor, o maior motivo de todo meu esforço.

Ao meu professor e orientador Dr. Salomão Pereira de Almeida, pela paciência e


disponibilidade de sempre.

Ao professor e coordenador do curso de Matemática, Prof. Me. Cícero da Silva Pereira, por
todos os seus ensinamentos.

Aos professores e colegas de curso, pelo apoio e companheirismo.

Ao IFPB, pelo oferecimento deste curso.


RESUMO

O presente trabalho é constituído de pesquisa bibliográfica e possui o objetivo de disseminar a


importância dos números primos na segurança da internet. Os números primos, considerados
átomos da matemática, pois são blocos constituintes de todos os números, servem de base para
um algoritmo capaz de garantir toda a segurança da internet. Esse método de criptografia de
chaves públicas a ser discutido é conhecido como RSA. Para entender como esse algoritmo
funciona, é necessário o estudo de alguns conceitos de Teoria dos Números, tais como
Aritmética Modular e a Hipótese de Riemann, considerada umas das mais importantes da
matemática. Esta hipótese é uma teoria muito complexa sobre a natureza dos números primos,
e sua demonstração poderia colocar em risco toda a segurança da internet. Isso porque haveria
uma maneira rápida de descobrir os números primos usados para gerar os códigos RSA.

Palavras-chave: Números primos. Segurança da Internet. RSA


ABSTRACT

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.

Keywords: Prime numbers. Internet security. RSA


SUMÁRIO

INTRODUÇÃO .................................................................................................................... 9

1. NÚMEROS PRIMOS: OS ÁTOMOS DA ARITMÉTICA .......................................... 11

1.1 Teorema Fundamental da Aritmética (TFA) ............................................................................12

1.2 A infinidade de Números Primos .............................................................................................13

1.3 Irregularidade dos Números Primos .........................................................................................14

1.4 A Função Zeta de Riemann e os Números Primos ....................................................................15

2. TEORIA DOS NÚMEROS PARA RSA........................................................................ 17

2.1 Divisão Euclidiana ..................................................................................................................17

2.2 Máximo Divisor Comum (MDC) .............................................................................................18

2.3 Congruência ............................................................................................................................25

3.4 O Pequeno Teorema de Fermat ................................................................................................30

2.5 O Teorema de Euler ................................................................................................................32

3. CRIPTOGRAFIA RSA .................................................................................................. 36

3.1 O algoritmo RSA.....................................................................................................................39

3.2 Descrição do algoritmo RSA ...................................................................................................40

3.3 Exemplo prático do sistema RSA.............................................................................................41

3.4 A segurança do RSA ...............................................................................................................45

3.5 Funcionamento do algoritmo RSA ...........................................................................................45

4. CONSIDERAÇÕES FINAIS ......................................................................................... 48

5. SUGESTÕES PARA PESQUISAS FUTURAS ............................................................ 49

6. REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 50


INTRODUÇÃO

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 trabalho, conforme proposto, apresenta a evolução da criptografia e a importância dos


números primos utilizados na segurança da internet através do algoritmo RSA. Apresenta
também o algoritmo de Euclides, a partir do qual se estrutura a aritmética modular.

São apresentados o Pequeno Teorema de Fermat e a função φ (fi) de Euler que


potencializam os cálculos exponenciais e permitem ao algoritmo RSA toda sua funcionalidade.

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.

Este trabalho consiste de uma pesquisa bibliográfica fundamentada em livros, artigos e


estudos teóricos sobre o assunto. Torna-se um trabalho importante porque envolve conceitos de
segurança utilizado na criptografia de dados e sua relação com números primos.
9
No primeiro capítulo foi abordado o Teorema Fundamental da Aritmética, a
demonstração feita por Euclides sobre a infinidade dos números primos e um pouco sobre a
Hipótese de Riemann. No capítulo 2, foram descritos alguns conceitos de Teoria dos Números,
essenciais para o entendimento do algoritmo RSA. E, por fim, o terceiro capítulo descreve o
algoritmo RSA, que permite a codificação e decodificação utilizados principalmente nas
transações comercias utilizadas pela internet.

10
Capítulo 1 – Números Primos: Os Átomos da Matemática Trabalho de Conclusão de Curso

CAPÍTULO 1

1. NÚMEROS PRIMOS: OS ÁTOMOS DA ARITMÉTICA

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.

Os números primos desempenham um papel fundamental na Aritmética análogo ao


papel dos átomos na estrutura da matéria, isto é, os números naturais que não são primos
(chamados de números compostos) podem ser expressos como produto de números primos.

Os gregos da Antiguidade também gostavam de atribuir qualidades sexuais aos


números, mas foram eles que descobriram, no quarto século a.C., a capacidade dos
primos de servir como blocos de construção para todos os números. Eles perceberam
que todo número podia ser gerado pela multiplicação de números primos. Embora os
gregos acreditassem erroneamente que o fogo, ar, água e terra fossem os elementos
constitutivos da matéria, foram precisos ao identificar átomos da aritmética. Por
muitos séculos, os químicos lutaram para identificar os constituintes básicos de sua
disciplina, e a intuição dos gregos culminou finalmente na tabela periódica de Dmitri
Mendeleiev, uma descrição completa dos elementos da química. Apesar do rápido
sucesso dos gregos na identificação dos blocos de construção da aritmética, os
matemáticos ainda têm dificuldades para entender a tabela dos números primos.
(SAUTOY, 2007)

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

1.1 Teorema Fundamental da Aritmética (TFA)

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 𝑏 ∤ 𝑎.

Teorema 1 (Teorema Fundamental da Aritmética): Todo número natural maior do que 1 ou


é primo ou se escreve de modo único, exceto pela ordem dos fatores, como um produto de
números primos.
Demonstração: É preciso provar a existência e a unicidade.
Existência: Seja n um número natural tal que n > 1. Se n for primo, ele é a sua própria
decomposição e, portanto, existe. Suponhamos n composto. Tomemos 𝑝1 > 1 o menor divisor
natural de n. Temos que 𝑝1 é primo, pois caso contrário, existiria p natural (1 < p < 𝑝1 ), com
p| 𝑝1 , e portanto p | n, contradizendo a escolha de 𝑝1 . Assim, podemos escrever n = 𝑝1 · 𝑛1 .
Se 𝑛1 for primo, novamente a prova estará completa. Se 𝑛1 é composto, tomemos
𝑝2 como o menor fator de 𝑛1 . Pelo mesmo argumento, temos que 𝑝2 é primo e portanto
n = 𝑝1 ·𝑝2 ·𝑛2 .
Se repetirmos esse procedimento obteremos uma sequência decrescente de números
naturais 𝑛1 , 𝑛2 ,𝑛3 ,...,𝑛𝑟 , r ∈ ℕ, todos maiores que 1. Pelo Princípio da Boa Ordenação (Todo
subconjunto não vazio de ℕ possui um menor elemento), este processo não pode ser repetido
indefinidamente.

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

Neste momento tem-se uma sequência 𝑝1 , 𝑝2 , 𝑝3 , ..., 𝑝𝑘 , com k ∈ ℕ, de números primos


não necessariamente distintos. Se houver l primos distintos, sem perda de generalidade, pode-
se renomeá-los como 𝑝1 , 𝑝2 , 𝑝3 , ..., 𝑝l.
𝛼 𝛼 𝛼
Logo, n terá a forma n = 𝑝1 1 . 𝑝2 2 . ... . 𝑝𝑛 𝑙 , que é a decomposição de n em fatores primos.
Unicidade: A unicidade é mostrada usando indução ao sobre n. Para n = 2, a afirmação é
verdadeira e trivial. Assumindo-se que ela se verifica para todos os naturais maiores do que 1 e
menores do que n, vamos provar que ela também é válida para n.
Se n é primo não há o que provar. Suponhamos n composto e que n possua duas
decomposições:
n = 𝑝1 · 𝑝2 · ... · 𝑝𝑠 = 𝑞1 · 𝑞2 · ... · 𝑞𝑡 com s, t ∈ ℕ.
Onde os 𝑝𝑖 (i = 1,2,...,s) e os 𝑞𝑗 (j = 1,2,...,t) são primos. Temos que provar que s = t e
que cada 𝑝𝑖 é igual a algum 𝑞𝑗 . Podemos escrever:
𝑞1 · 𝑞2 · ... · 𝑞𝑡
𝑝2 · ... · 𝑝𝑠 = .
𝑝1

Como 𝑝2 · ... · 𝑝𝑠 é um número natural, então 𝑝1 | 𝑞1 · 𝑞2 · ... · 𝑞𝑡 , o que implica que 𝑝1


divide algum dos fatores 𝑞1 · 𝑞2 · ... · 𝑞𝑡 . Sem perder a generalidade, podemos supor que 𝑝1 | 𝑞1 .
Assim, pela definição 1, 𝑝1 = 𝑞1 .
Logo:
1 < 𝑝2 · ... · 𝑝𝑠 = 𝑞 2 · ... · 𝑞𝑡 < n.
Pela hipótese de indução as duas decomposições são idênticas, isto é, s = t e, exceto pela
ordem, as decomposições 𝑝2 · ... · 𝑝𝑠 e 𝑞2 · ... · 𝑞𝑡 são iguais. □

1.2 A infinidade de Números Primos

Euclides provou em seu livro Elementos a infinidade de números primos. Utilizaremos


a mesma prova dada por Euclides, que, de acordo com relatos históricos, foi a primeira
demonstração a ser estabelecida utilizando o método de redução ao absurdo.

Teorema 1.1 (Euclides) Existem infinitos números primos.


Demonstração: Suponha que exista apenas um número finito de números primos 𝑝1 ,...,𝑝𝑟 .

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

Considere o número natural


n = 𝑝1 𝑝2 … 𝑝𝑟 + 1.
Pelo teorema 1, o número n possui um fator primo p que, portanto, deve ser um dos
𝑝1 ,...,𝑝𝑟 e, consequentemente, divide o produto 𝑝1 𝑝2 … 𝑝𝑟 . Mas isto implica que p divide 1, o
que é absurdo. □

1.3 Irregularidade dos Números Primos

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)

Entretanto, segundo a revista Nature, dois pesquisadores da Universidade de Stanford,


nos Estados Unidos, realizaram em março de 2016 um estudo que indica que os números primos
podem não ser tão aleatórios assim, que estes podem apresentar um padrão sequencial
complexo. Os autores do estudo, Kannan Soundararajan e Robert Lenke Olive, detectaram um
viés inesperado na distribuição de números primos consecutivos ao analisarem os primeiros
cem milhões desses números.
Os números primos, quando tem mais de dois dígitos, só podem terminar em 1,3,7 ou
9; matemáticos acreditavam que dois números primos seguidos terminariam com o mesmo
digito 25% das vezes.
No entanto, isso não acontece. A dupla descobriu que a chance de um número primo
terminado em 1 ser seguido por outro também terminado em 1 é de apenas 18,5%.
14

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

Números primos consecutivos terminados em 3 e 7 aparecem 30% das vezes e primos


terminados em 9, cerca de 22%.
Mas esse trabalho apresentado por Kannan Soudararajan e Robert Lenke Olive ainda
será analisado pela comunidade científica antes que seja aceito, pois esse estudo assume como
verdadeiro dois conceitos não provados: o K-Tuple (um padrão de repetição dos números
primos) e a Hipótese de Riemann. O que se sabe sobre números primos é muito pouco, há ainda
muitas descobertas a serem feitas sobre esses números tão fascinantes!

1.4 A Função Zeta de Riemann e os Números Primos

O matemático suíço Leonhard Euler (1707-1783) definiu, em 1740, uma função


denominada pela letra grega 𝜁 (zeta). Essa função de Euler associa todo número real maior que
1 um novo número real

1 1 1 1 1 1
𝜁 (𝑆 ) = ∑ 𝑆
= 𝑆+ 𝑆+ 𝑆+ 𝑆+ 𝑆+⋯
𝑛 1 2 3 4 5
𝑛=1

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 𝑥

Riemann mostrou que propriedades dessa função estão intimamente ligadas à


distribuição dos números primos, ou seja, à sequência natural dos números primos no conjunto
dos números inteiros positivos.
Analisando os estudos de Gauss e estudando a função Zeta de Euler, Riemann deparou-
se com algo que parecia acabar com a impossibilidade de prever a localização exata dos
números primos. Ele visualizou uma relação entre os zeros “não triviais” da função zeta e a
localização dos números primos. Tal relação teve como consequência uma conjectura até hoje
não provada, conhecida como a Hipótese de Riemann. Se a sua conjectura estivesse correta, a
estimativa de Gauss sobre a distribuição dos números primos seria cada vez mais precisa à
medida que se avançasse na contagem.
Qualquer número complexo 𝑆 que resolva essa equação é denominado um “zero” da
equação. Riemann observou, primeiramente, que os inteiros negativos pares –2, –4 –6, ... são
zeros da função, conhecidos como zeros triviais. Depois observou que deveriam existir infinitos
zeros complexos e, então, estabeleceu de forma audaciosa a conjectura de que qualquer outro
1 1
zero complexo da função zeta possui parte real igual a , ou seja, têm a forma 𝑆 = + 𝑏𝑖.
2 2

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)

A pesquisa sobre Hipótese de Riemann fornece informações preciosas sobre o padrão


dos números primos. Os avanços nessa investigação poderiam levar a um progresso substancial
nas técnicas de fatoração e, como consequência, levar à quebra da segurança na transmissão de
dados via internet.

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

2. TEORIA DOS NÚMEROS PARA RSA

A Teoria dos Números é a área da Matemática que estuda os números inteiros e a


generalização de suas propriedades. Este campo de estudo possui muitos problemas que ainda
não foram resolvidos e que, apesar de serem fáceis de entender, são muito difíceis de serem
solucionados.

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.

2.1 Divisão Euclidiana

No teorema da Divisão Euclidiana, Euclides utiliza o fato de que é sempre possível


efetuar a divisão de b por a, com resto, mesmo quando o número natural a não divide o número
natural b.

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 𝑟 < 𝑎.

Demonstração: Suponha que 𝑏 > 𝑎 e considere os números 𝑏, 𝑏 − 𝑎, 𝑏 − 2𝑎, … , 𝑏 −


𝑛. 𝑎, … Pela Propriedade da Boa Ordem (Todo subconjunto não vazio de ℕ possui um menor
elemento) o conjunto S formado pelos elementos acima tem um menor elemento 𝑟 = 𝑏 − 𝑞 ⋅ 𝑎.
Vamos provar que 𝑟 tem a propriedade requerida, ou seja, que 𝑟 < 𝑎.

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 𝑆.

Portanto, temos que 𝑏 = 𝑎 ⋅ 𝑞 + 𝑟 com 𝑟 < 𝑎, o que prova a existência de 𝑞 e 𝑟.

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,
𝑞 = 𝑞′. □

Nas condições do teorema acima, os números q e r são chamados, respectivamente, de


quociente e de resto da divisão de b por a. Note que o resto da divisão de b por a é zero se, e
somente se, a divide b.

Exemplo 2.1.1 Achar o quociente e o resto da divisão de 23 por 4.

Considere as diferenças sucessivas:

23 − 4 = 21, 23 − 2 ⋅ 4 = 15, 23 − 3 ⋅ 4 = 11, 23 − 4 ⋅ 4 = 7, 23 − 5 ⋅ 4 = 3 < 4.

Daí, tem-se 𝑞 = 5 e 𝑟 = 3.

2.2 Máximo Divisor Comum (MDC)

Diremos que 𝑑 é um máximo divisor comum (MDC) de 𝑎 e 𝑏 se possuir as seguintes


propriedades:

𝑖) d é um divisor comum de a e de b, e

𝑖𝑖) d é divisível por todo divisor comum de a e b.

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

A condição (𝑖𝑖) pode ser anunciada como se segue:

𝑖𝑖′) Se c é um divisor comum de a e b, então 𝑐 ∣ 𝑑.

Portanto, se d é um mdc de a e b, e c é um divisor comum desses números, então 𝑐 ≤ 𝑑.


Isto nos mostra que o máximo divisor comum de dois números é efetivamente o maior dentre
todos os divisores comuns desses números.

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 (𝑎, 𝑏) = (𝑏, 𝑎).

Em alguns casos particulares, é fácil a verificação da existência do MDC. Por exemplo,


se 𝑎 e 𝑏 são números naturais, tem-se claramente que (0, 𝑎) = 𝑎, (1, 𝑎) = 1 e que (𝑎, 𝑎) = 𝑎.

Mais ainda, tem-se que

𝑎│𝑏 ⟺ (𝑎, 𝑏) = 𝑎.

De fato, se 𝑎│𝑏, temos que 𝑎 é um divisor comum de 𝑎 e 𝑏, e, se 𝑐 é um divisor comum


de 𝑎 e 𝑏, então 𝑐 divide 𝑎, o que mostra que 𝑎 = (𝑎, 𝑏).

Reciprocamente, se (𝑎, 𝑏) = 𝑎, segue que 𝑎│𝑏.

Lema 2.2.1 (Lema de Euclides): Se 𝑎 = 𝑏𝑞 + 𝑟, então (𝑎, 𝑏) = (𝑏, 𝑟).

Demonstração: Se 𝑑 = (𝑎, 𝑏), então 𝑑 | 𝑎 e 𝑑 | 𝑏, o que implica 𝑑 | (𝑎 − 𝑏𝑞) ou 𝑑 | 𝑟, isto é,


𝑑 é um divisor comum de 𝑏 e 𝑟 (𝑑 | 𝑏 𝑒 𝑑 | 𝑟).

Por outro lado, se 𝑐 é um divisor comum qualquer de 𝑏 e 𝑟 (𝑐 | 𝑏 𝑒 𝑐 | 𝑟), então


𝑐 | (𝑏𝑞 + 𝑟) ou 𝑐 | 𝑎, isto é, 𝑐 é um divisor comum de 𝑎 e b, o que implica 𝑐 ≤ 𝑑. Assim sendo,
𝑑 = (𝑏, 𝑟). □

Exemplo 2.2.1 Como 32 = 3 ⋅ 10 + 2, então (32,3) = (3,2) = 1 e (32,10) = (10,2) = 2.

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

2.2.2 Algoritmo de Euclides

O algoritmo de Euclides é um processo para encontrar o máximo divisor comum de dois


ou mais números inteiros quando estes números são consideravelmente grandes. Esse algoritmo
também é usado para verificar se dois inteiros são primos entre si.

Considere os inteiros 𝑎 e 𝑏, com 𝑎 > 𝑏 > 0. Pela divisão euclidiana, tem-se que

𝑎 = 𝑏𝑞1 + 𝑟1 , com 0 ≤ 𝑟1 < 𝑏.

De acordo com o Lema (2.2.1), (𝑎, 𝑏) = (𝑏, 𝑟1 ). Existem duas possibilidades:

a) Se 𝑟1 = 0, então

(𝑎, 𝑏) = (𝑏, 𝑟1 ) = (𝑏, 0) = 𝑏.

b) Se 𝑟1 ≠ 0, então podemos efetuar a divisão de 𝑏 por 𝑟1 , obtendo

𝑏 = 𝑟1 𝑞2 + 𝑟2 , com 0 ≤ 𝑟2 < 𝑟1 .

Novamente, tem-se duas possibilidades:

a′) Se 𝑟2 = 0, segue que

(𝑎, 𝑏) = (𝑏, 𝑟1 ) = (𝑟1 , 𝑟2 ) = (𝑟1 , 0) = 𝑟1 .

b′) Se 𝑟2 ≠ 0, então efetuando a divisão de 𝑟1 por 𝑟2 , tem-se que

𝑟1 = 𝑟2 𝑞3 + 𝑟3 , com 0 ≤ 𝑟3 < 𝑟2 .

Mais uma vez,

(𝑎, 𝑏) = (𝑏, 𝑟1 ) = (𝑟1 , 𝑟2 ) = (𝑟2 , 𝑟3 ),

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,

(𝑎, 𝑏) = (𝑏, 𝑟1 ) = ⋯ = (𝑟𝑛 , 𝑟𝑛+1 ) = (𝑟𝑛 , 0) = 𝑟𝑛 .

Assim, o último resto não nulo 𝑟𝑛 é o mdc de 𝑎 e 𝑏.

Exemplo 2.2.2 Calcular o MDC de 478 e 56.

De acordo com o Algoritmo de Euclides, com 𝑎 = 478 e 𝑏 = 56, temos:

478 = 56 ⋅ 8 + 30 ⟹ ( 478, 56 ) = ( 56, 30 )

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

Tem-se então que ( 478, 56 ) = 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

A seguir, continua-se efetuando a divisão 𝑎 = 𝑟1 𝑞2 + 𝑟2 e coloca-se os números


envolvidos no diagrama:

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

Prosseguindo, enquanto for possível tem-se:

𝑞1 𝑞2 𝑞3 … 𝑞𝑛−1 𝑞𝑛 𝑞𝑛+1

𝑏 𝑎 𝑟1 𝑟2 … 𝑟𝑛−2 𝑟𝑛−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.

Teorema 2.2.3 (Algoritmo de Euclides Estendido) Sejam 𝑎 e 𝑏 inteiros positivos e seja 𝑑 o


máximo divisor comum entre 𝑎 e 𝑏. Existem inteiros 𝛼 e 𝛽 tais que

𝑎𝛼 + 𝑏𝛽 = 𝑑.

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:

𝑟 = 𝑎 − 𝑐𝑞 = 𝑎 − (𝛼𝑎 + 𝛽𝑏)𝑞 = 𝑎(1 − 𝑞𝛼 ) − 𝑏(𝑞𝛽).

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,

𝑎𝛼 + 𝑏𝛽 = 𝑑. □

Exemplo 2.2.3 Sejam 𝑎 = 1234 e 𝑏 = 54. Temos que:

1234 = 54 ⋅ 22 + 46 ⟹ 46 = 1234 − 54 ⋅ (22)

54 = 46 ⋅ 1 + 8 ⟹ 8 = 54 − 46 ⋅ 1

= 54 − [1234 − 54 ⋅ (22)]

= 1234 ⋅ (−1) + 54 ⋅ (23)

46 = 8 ⋅ 5 + 6 ⟹ 6 = 46 − 8 ⋅ 5

= [1234 − 54 ⋅ (23)] − [1234 ⋅ (−1) + 54 ⋅ (23)] ⋅ 5

= 1234 + 54 ⋅ (−23) + [1234 ⋅ (5) + 54 ⋅ (−115)]

= 1234 ⋅ (6) + 54 ⋅ (−137)

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

= [1234 ⋅ (−1) + 54 ⋅ (23)] − [1234 ⋅ (6) + 54 ⋅ (−137)]

= 1234 ⋅ (−1) + 54 ⋅ (23) + 54 ⋅ (137) + 1234 ⋅ (−6)

= 1234 ⋅ (−7) + 54 ⋅ (160)

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

Multiplicando por 𝑐 ambos os lados da igualdade acima, tem-se que

𝛼𝑎𝑐 + 𝛽𝑏𝑐 = 𝑐

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

Substituindo 𝑏𝑐 por 𝑎𝜆 nesta última igualdade:

𝑐 = 𝛼𝑎𝑐 + 𝛽𝑎𝜆 = 𝑎(𝛼𝑐 + 𝛽𝜆).

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 𝑡.

Portanto, 𝑐 = 𝜆𝑎 = (𝑡𝑏)𝑎 = 𝑡(𝑎𝑏) é divisível por 𝑎𝑏.

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 𝑚.

Exemplo 2.3.1 4 ≡ 1(𝑚𝑜𝑑 3), 16 ≡ −4(𝑚𝑜𝑑 5) , − 7 ≡ 5(𝑚𝑜𝑑2), 5 ≢ 4 (𝑚𝑜𝑑 2).

Definição 2.3.2 Se ℎ e 𝑘 são inteiros e ℎ ≡ 𝑘 (𝑚𝑜𝑑 𝑚), dizemos que 𝑘 é um resíduo de ℎ


módulo m.

Definição 2.3.3 Um conjunto de inteiros {𝑎1 , … , 𝑎𝑟 } é um sistema completo de resíduos


modulo m quando:

(a) 𝑎𝑖 ≠ 𝑎𝑗 (𝑚𝑜𝑑 𝑚) para 𝑖 ≠ 𝑗.

(b) para todo inteiro 𝑏, existe 𝑎𝑖 tal que 𝑏 ≡ 𝑎𝑖 (𝑚𝑜𝑑 𝑚).


25

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, 𝑚 ∣ 𝑏 − 𝑎.

Demonstração: Sejam 𝑎 = 𝑚𝑞 + 𝑟, com 𝑟 < 𝑚 e 𝑏 = 𝑚𝑞 ′ + 𝑟′, com 𝑟′ < 𝑚, as divisões


euclidianas de a e b por m, respectivamente. Logo,

𝑚 (𝑞 ′ − 𝑞 ) + (𝑟 ′ − 𝑟 ), 𝑠𝑒 𝑟′ ≥ 𝑟
𝑏−𝑎 = {
𝑚 (𝑞 ′ − 𝑞 ) − (𝑟 − 𝑟 ′ ), 𝑠𝑒 𝑟 ≥ 𝑟′

Onde 𝑟 ′ − 𝑟 < 𝑚, ou 𝑟 − 𝑟 ′ < 𝑚. Portanto, 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚) se, e somente se, 𝑟 = 𝑟′, o que é
equivalente a dizer que 𝑚 ∣ 𝑏 − 𝑎. □

Exemplo 2.3.4 24 ≡ 3 (𝑚𝑜𝑑 7), pois 7 ∣ (24 − 3).

Proposição 2.3.5 Seja 𝑚 ∈ ℕ, com 𝑚 > 1. Para todos a, b, c ∈ ℕ, tem-se que

1) 𝑎 ≡ 𝑎 (mod 𝑚),

2) se 𝑎 ≡ 𝑏 (mod 𝑚), então 𝑏 ≡ 𝑎 (mod 𝑚),

3) se 𝑎 ≡ 𝑏 (mod 𝑚) e 𝑏 ≡ 𝑐 (mod 𝑚), então 𝑎 ≡ 𝑐 (mod 𝑚).

Demonstração:

(1) 𝑎 ∣ 0 ou seja, 𝑎 ∣ (𝑎 − 𝑎), o que implica: 𝑎 ≡ 𝑎 (mod 𝑚). □

(2) Se 𝑎 ≡ 𝑏 (mod 𝑚) então 𝑎 – 𝑏 = 𝑘𝑚, 𝑘 ∈ ℤ. Portanto:

𝑏 − 𝑎 = −(𝑘𝑚) = (−𝑘)𝑚 ⟹ 𝑏 ≡ 𝑎 (mod 𝑚). □

(3) Se 𝑎 ≡ 𝑏 (mod 𝑚) e se 𝑏 ≡ 𝑐 (mod 𝑚), então existem inteiros h e k tais que

𝑎−𝑏 =ℎ∙𝑚 e𝑏−𝑐 =𝑘∙𝑚

Portanto: 𝑎 – 𝑐 = (𝑎 − 𝑏) + (𝑏 − 𝑐) = ℎ𝑚 + 𝑘𝑚 = (ℎ + 𝑘)𝑚 e isto significa


que 𝑎 ≡ 𝑐 (mod 𝑚). □

A congruência é uma relação de equivalência compatível com as operações de adição e


multiplicação nos inteiros, conforme veremos a seguir.

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

Proposição 2.3.6 Sejam a, b, c, d, m ∈ ℕ, com 𝑚 > 1.

(1) Se 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚) e 𝑐 ≡ 𝑑 (𝑚𝑜𝑑 𝑚), então

(𝑎 + 𝑐) ≡ (𝑏 + 𝑑) (𝑚𝑜𝑑 𝑚) e 𝑎𝑐 ≡ 𝑏𝑑 (𝑚𝑜𝑑 𝑚).

(2) Se 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚), então

(𝑎 + 𝑐) ≡ (𝑏 + 𝑐)(𝑚𝑜𝑑 𝑚) e 𝑎𝑐 ≡ 𝑏𝑐(𝑚𝑜𝑑 𝑚).

(3) Se 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚), então 𝑎𝑘 ≡ 𝑏𝑘 (𝑚𝑜𝑑 𝑚) para qualquer 𝑘 ∈ ℕ.

(4) Se (𝑎 + 𝑐) ≡ (𝑏 + 𝑐)(𝑚𝑜𝑑 𝑚), então 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚).

Demonstração:

(1) Se 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚) e 𝑐 ≡ 𝑑 (𝑚𝑜𝑑 𝑚), então temos que 𝑚 ∣ 𝑎 − 𝑏 e 𝑚 ∣ 𝑐 − 𝑑. Logo,


existem inteiros 𝑘1 e 𝑘2 tais que 𝑎 − 𝑏 = 𝑘1 𝑚 e 𝑐 − 𝑑 = 𝑘2 𝑚. Daí, tem-se que 𝑎 = 𝑏 + 𝑘1 e
𝑐 = 𝑑 + 𝑘2 . Somando membro a membro estas duas igualdades, temos que
𝑎 + 𝑐 = 𝑏 + 𝑑 + (𝑘1 + 𝑘2 )𝑚, isto é, (𝑎 + 𝑐) ≡ (𝑏 + 𝑑) (𝑚𝑜𝑑 𝑚). Agora, multiplicando
membro a membro as mesmas igualdades,

𝑎𝑐 = (𝑏 + 𝑘1 𝑚)(𝑑 + 𝑘2 𝑚) = 𝑏𝑑 + 𝑘3 𝑚,

em que 𝑘3 = 𝑏𝑘2 + 𝑑𝑘1 + 𝑘1 𝑘2 𝑚. Portanto, 𝑎𝑐 ≡ 𝑏𝑑 (𝑚𝑜𝑑 𝑚).

(2) Se 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚), então como 𝑐 ≡ 𝑐(𝑚𝑜𝑑 𝑚), segue do item (1) que

(𝑎 + 𝑐) ≡ (𝑏 + 𝑐)(𝑚𝑜𝑑 𝑚) e 𝑎𝑐 ≡ 𝑏𝑐(𝑚𝑜𝑑 𝑚).

(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 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚). □

Exemplo 2.3.6 Determinar o resto da divisão de 4100 por 5.

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

4100 ≡ (−1)100 (𝑚𝑜𝑑 5) ⟹ 4100 ≡ 1(𝑚𝑜𝑑 5)

Assim, o resto da divisão de 4100 por 5 é igual a 1.

Teorema 2.3.7 Sejam a, b e c inteiros quaisquer. Temos que

𝑎𝑐 ≡ 𝑏𝑐 ( 𝑚𝑜𝑑 𝑚 ) ⟺ 𝑎 ≡ 𝑏 ( 𝑚𝑜𝑑 𝑚⁄𝑑 ),

em que 𝑑 = (𝑐, 𝑚).

Demonstração: Se 𝑎𝑐 ≡ 𝑏𝑐 ( 𝑚𝑜𝑑 𝑚 ),

então 𝑎𝑐 − 𝑏𝑐 = 𝑐 (𝑎 − 𝑏) = 𝑘𝑚, com 𝑘 ∈ ℤ. (2.1)

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,

𝑐 (𝑎 − 𝑏) = (𝑑𝜆1 ) ⋅ (𝑑𝜆2 ) = 𝑚𝑘𝜆1 ,

ou seja, 𝑎𝑐 ≡ 𝑏𝑐 ( 𝑚𝑜𝑑 𝑚). □


28

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

Como consequência do Teorema 2.3.1, temos a lei do cancelamento para congruências,


a qual será bastante útil.

Corolário 2.3.8 (Lei do Cancelamento) Suponhamos 𝑎𝑐 ≡ 𝑏𝑐 ( 𝑚𝑜𝑑 𝑚 ), com ( 𝑐, 𝑚 ) = 1.


Então, 𝑎 ≡ 𝑏 ( 𝑚𝑜𝑑 𝑚 ).

Demonstração: Se 𝑎𝑐 ≡ 𝑏𝑐 ( 𝑚𝑜𝑑 𝑚 ), com 𝑑 = (𝑐, 𝑚) = 1, então pelo teorema anterior,


𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚⁄𝑑 ), isto é, 𝑎 ≡ 𝑏 (𝑚𝑜𝑑 𝑚). □

Exemplo 2.3.8 Como 5 ∙ 7 ≡ 3 ⋅ 7 ( 𝑚𝑜𝑑 2 ) e ( 7,2 ) = 1, segue do corolário 2.3.1 que


5 ≡ 3(𝑚𝑜𝑑 2).

Definição 2.3.9 Dados 𝑎 e 𝑏 inteiros, com 𝑎 ≠ 0, uma congruência da forma

𝑎𝑥 ≡ 𝑏 (𝑚𝑜𝑑 𝑚)

é chamada congruência linear, em que x é uma incógnita.

Por exemplo, 𝑥0 = 6 é uma solução da congruência linear 6𝑥 ≡ 15 (𝑚𝑜𝑑 21), pois


6 ⋅ 6 = 36 ≡ 15 (𝑚𝑜𝑑 21). Por outro lado, 8𝑥 ≡ 25 (𝑚𝑜𝑑 6) não tem solução inteira, pois se
𝑥0 ∈ ℤ e 8𝑥0 ≡ 25 (𝑚𝑜𝑑 6), então 8𝑥0 − 25 = 6𝑘, com 𝑘 ∈ ℤ, de maneira que 6 divide 25,
o que não é possível.

Um caso particular da congruência linear é a congruência 𝑎𝑥 ≡ 1 (𝑚𝑜𝑑 𝑚), com


(𝑎, 𝑚) = 1. Se 𝑥0 é uma solução dessa congruência, então dizemos que 𝑎 é invertível módulo
𝑚, e que 𝑥0 é um inverso de 𝑎 módulo 𝑚. Logo, a equação 𝑎𝑥 ≡ 1 (𝑚𝑜𝑑 𝑚) admite uma única
solução e esta será chamada de inverso multiplicativo módulo 𝒎.

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

A conclusão é que 1 = 9 ⋅ 41 − 16 ⋅ 23. Obtemos, então, a congruência −16 ∙ 23 ≡


1 (𝑚𝑜𝑑 41). Portanto, a inversa de 23 módulo 41 é −16.

2.4 O Pequeno Teorema de Fermat

Teorema 2.4.1 Sejam 𝑎, 𝑝 ∈ ℕ, onde 𝑝 é um número primo e (𝑎, 𝑝) = 1 . Tem-se que

𝑎𝑝−1 ≡ 1 (𝑚𝑜𝑑 𝑝 ).

Demonstração: Considere os primeiros 𝑝 − 1 múltiplos de 𝑎, ou seja,

𝑎, 2𝑎, 3𝑎, … , (𝑝 − 1)𝑎. (2.2)

Observe que esses números são dois a dois incongruentes módulo 𝑝.

De fato, se

𝑎𝑘1 ≡ 𝑎𝑘2 ( 𝑚𝑜𝑑 𝑝 ),

com 1 ≤ 𝑘1 < 𝑘2 ≤ 𝑝 − 1, então como (𝑎, 𝑝) = 1, segue do corolário 2.3.1 que


𝑘1 ≡ 𝑘2 (𝑚𝑜𝑑 𝑝), isto é, 𝑝 ∣ 𝑘2 − 𝑘1 , o que é impossível.

Além disso, se 1 ≤ 𝑟 ≤ 𝑝 − 1 e 𝑝 ∣ 𝑟𝑎, então 𝑝 ∣ 𝑎 ou 𝑝 ∣ 𝑟, o que também é impossível.


Portanto, 𝑟𝑎 ≢ 0 ( 𝑚𝑜𝑑 𝑝) para todo 𝑟 = 1, … , 𝑝 − 1.

De acordo com o Algoritmo da Divisão, cada inteiro é congruente módulo 𝑝 a um, e


somente um, número da sequência

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

Portanto, cada inteiro de (2.2) é equivalente a um número de (2.3) numa determina


ordem, digamos

𝑎 ≡ 𝑏1 ( 𝑚𝑜𝑑 𝑝 ),

2𝑎 ≡ 𝑏2 ( 𝑚𝑜𝑑 𝑝 ),

( 𝑝 − 1)𝑎 ≡ 𝑏𝑝−1 ( 𝑚𝑜𝑑 𝑝 ),

em que 𝑏𝑖 ∈ { 1, 2, … , 𝑝 − 1 } para 𝑖 = 1, 2, … , 𝑝 − 1. Multiplicando membro a membro estas


congruências, temos que

𝑎 ⋅ 2𝑎 ⋅⋅⋅ (𝑝 − 1)𝑎 ≡ 1 ⋅ 2 ⋅⋅⋅ (𝑝 − 1)( 𝑚𝑜𝑑 𝑝 ),

isto é,

𝑎𝑝−1 ( 𝑝 − 1 )! ≡ (𝑝 − 1)( 𝑚𝑜𝑑 𝑝 ).

Como (( 𝑝 − 1)!, 𝑝) = 1, podemos cancelar ( 𝑝 − 1 )! desta última congruência, de modo que

𝑎𝑝−1 ≡ 1 ( 𝑚𝑜𝑑 𝑝 ). □

Exemplo 2.4.1 Use o Teorema de Fermat e calcule o resto da divisão de 2194 por 17.

Solução: Considerando 𝑝 = 17 e 𝑎 = 2, tem-se que (2,17) = 1 e pelo Teorema 2.2.1,

217−1 ≡ 1 ( 𝑚𝑜𝑑 17 ), ou seja,

216 ≡ 1( 𝑚𝑜𝑑 17 ). (2.4)

Pelo item (3) da proposição 2.1.3 temos que:

(216 )12 = 2192 ≡ 1 ( 𝑚𝑜𝑑 17 ) (2.5)

Usando novamente a proposição 2.1.3 (1) em (2.5), temos que 2192 ⋅ 22 ≡ 1 ⋅ 22 ( 𝑚𝑜𝑑 17),
ou seja, 2194 ≡ 4 ( 𝑚𝑜𝑑 17).

Portanto, o resto da divisão de 2194 por 17 é igual a 4.

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

2.5 O Teorema de Euler

Antes de apresentar o Teorema de Euler, que é uma generalização do Teorema de


Fermat, será definida a função 𝜙 de Euler.

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.

Exemplo 2.5.1 𝜙 (8) = 4, 𝜙(4) = 2, 𝜙(7) = 6

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.

Teorema 2.5.2 (A função 𝝓 é multiplicativa) Se 𝑚 e 𝑛 são números naturais tais que


(𝑚, 𝑛) = 1, então

𝜙(𝑚𝑛) = 𝜙(𝑚)𝜙(𝑛).

Demonstração: Considere a tabela formada pelos inteiros de 1 a 𝑚𝑛:

1 2 … 𝑟 … 𝑚

𝑚+1 𝑚+2 … 𝑚+𝑟 … 2𝑚

2𝑚 + 1 2𝑚 + 2 … 2𝑚 + 𝑟 … 3𝑚

⋮ ⋮ ⋮ ⋮

(𝑛 − 1)𝑚 + 1 (𝑛 − 1)𝑚 + 2 … (𝑛 − 1)𝑚 + 𝑟 … 𝑛𝑚

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 𝜙(𝑚 ⋅ 𝑛) = 𝜙(𝑚) ⋅ 𝜙(𝑛). □

Teorema 2.5.3 Seja 𝑛 um número primo, então 𝜙(𝑛) = 𝑛 − 1.

Demonstração:

(⟹) Se 𝑛 > 1 é primo, então cada um dos inteiros positivos menores que 𝑛 é primo com 𝑛 e,
portanto, 𝜙(𝑛) = 𝑛 – 1.

(⟸) Reciprocamente, se 𝜙(𝑛) = 𝑛 − 1, com 𝑛 > 1, então 𝑛 é primo, pois, se 𝑛 fosse


composto, teria pelo menos um divisor 𝑑 tal que 1 < 𝑑 < 𝑛, de modo que pelo menos dois
dos inteiros 1, 2, 3, . . . , 𝑛 não seriam primos com 𝑛, 𝑑 e 𝑛, isto é, 𝜙 (𝑛) ≤ 𝑛 − 2. Logo, 𝑛 é
primo.

Exemplos 2.5.3 𝜙(7) = 6. 𝜙(13) = 12, 𝜙(5) = 4

Lema 2.5.4 Dados os inteiros 𝑎, 𝑏 e 𝑐, tem-se que (𝑎, 𝑏𝑐 ) = 1 ⟺ (𝑎, 𝑏) = 1 e (𝑎, 𝑐 ) = 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

𝑎𝑎1 , 𝑎𝑎2 , 𝑎𝑎3 , … , 𝑎𝑎𝜙(𝑚)

são congruentes módulo 𝑚 a 𝑎1 , 𝑎2 , 𝑎3 , … , 𝑎𝜙(𝑚) , em alguma ordem.

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.

Desde que {0, 1, … , 𝑚 − 1} é um sistema completo de resíduos módulo 𝑚, então para


cada 𝑎𝑎𝑖 , existe um único inteiro 𝑏, com 0 ≤ 𝑏 < 𝑚, tal que 𝑎𝑎𝑖 ≡ 𝑏 (𝑚𝑜𝑑 𝑚).

Como

(𝑏, 𝑚) = (𝑎𝑎𝑖 , 𝑚) = 1,

então 𝑏 deve necessariamente ser um dos inteiros 𝑎1 , 𝑎2 , 𝑎3 , … , 𝑎𝜙(𝑚) .

Logo,

𝑎𝑎𝑖 ≡ 𝑎𝑗 (𝑚𝑜𝑑 𝑚) para algum 𝑗 = 1, … , 𝜙(𝑚). □

Teorema 2.5.6 (Teorema de Euler) Sejam 𝑚, 𝑎 ∈ ℕ com 𝑚 > 1 e (𝑎, 𝑚) = 1. Então

𝑎𝜙(𝑚) ≡ 1 (𝑚𝑜𝑑 𝑚).

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 (𝑚𝑜𝑑 𝑚)

𝑎 ⋅ 𝑎𝜙(𝑚) ≡ 𝑏𝜙(𝑚) ( 𝑚𝑜𝑑 𝑚),

em que 𝑏1 , 𝑏2 , … , 𝑏𝜙(𝑚) são os inteiros 𝑎1 , 𝑎2 , 𝑎3 , … , 𝑎𝜙(𝑚), não necessariamente nesta ordem.


Multiplicando estas congruências, tem-se

(𝑎𝑎1 )(𝑎𝑎2 ), … , (𝑎𝑎𝜙(𝑚) ) ≡ 𝑏1 𝑏2 … 𝑏𝜙(𝑚) ( 𝑚𝑜𝑑 𝑚 ),

ou seja,

𝑎𝜙(𝑚) (𝑎1 𝑎2 … 𝑎𝜙(𝑚) ) ≡ 𝑎1 𝑎2 … 𝑎𝜙(𝑚) (𝑚𝑜𝑑 𝑚).

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 (𝑚𝑜𝑑 𝑚). □

Exemplo 2.5.7 Determinar o resto da divisão de 285 por 21.

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.

Logo, usando o Teorema de Euler, temos que

212 ≡ 1 (𝑚𝑜𝑑 21).

Note que 85 = 12 ⋅ 7 + 1, então elevando os membros dessa congruência a 7, obtemos que


(212 )7 ≡ 17 (𝑚𝑜𝑑 21), ou seja, 284 ≡ 1 (𝑚𝑜𝑑 21). Logo, 285 ≡ 2 (𝑚𝑜𝑑 21) e, portanto, o
resto da divisão é 𝑟 = 2.

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

Criptografia (do grego cryptós - “secreto, escondido, oculto”; e gráphein - “escrita”). É


a área da Criptologia (ciência da encriptação) que se ocupa da escrita em códigos e das técnicas
de transformação dessa escrita. Nesse sentido, a criptografia destina-se a estudar os modos
como uma mensagem pode ser desfigurada de sua forma original a fim de obter outra aparência,
alheia aos curiosos a quem não se destina, de modo que apenas possa ser conhecida por aqueles
que possuem o código necessário à sua decodificação.

A criptografia existe desde a Antiguidade e era utilizada principalmente nos assuntos de


natureza militar ou nos assuntos políticos para transmitir informações secretas. Havia várias
formas de se comunicar secretamente e uma das técnicas mais clássicas era a cifra de César,
usada pelo ditador romano Júlio César. Essa cifra consistia em substituir as letras do alfabeto
avançando três casas. Então, se o autor da codificação quisesse enviar mensagens secretas,
deveria trocar cada letra por outra situada a três posições à frente no alfabeto. Considere, por
exemplo, a mensagem: EU AMO MATEMÁTICA. Utilizando a cifra de César para criptografar
a mensagem, teríamos a seguinte mensagem: HX DPR PWHPDWLFD.

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

Fonte: Disponível em: <http://www.militarypower.com.br/frame4-conf22.htm>. Acesso em:


02/04/2018

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.

Os britânicos formaram um centro de pesquisa para decifrar as mensagens da Enigma.


O encarregado da pesquisa foi o matemático Alan Turing, considerado o pai da computação e
da informática moderna. Segundo alguns historiadores, o trabalho feito para decifrar as
mensagens do exército alemão encurtou o fim da guerra em pelo menos dois anos.

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.

Um avanço considerável na criptografia ocorreu com a invenção da criptografia de


chave pública, ou criptografia assimétrica. Esse tipo de criptografia foi proposto inicialmente
37

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

em 1976, por dois matemáticos da Universidade de Stanford, na Califórnia, Whit Diffie e


Martin Hellman. Sabe-se que:

A criptografia de chave pública foi proposta inicialmente em 1976, em um artigo


seminal escrito por dois matemáticos da Universidade de Stanford, na Califórnia,
Whit Diffie e Martin Hellman. A dupla desencadeou o surgimento de uma
contracultura do mundo criptográfico, que passaria a desafiar o monopólio das
agências governamentais sobre a criptografia.
(SAUTOY, 2007)

A criptografia assimétrica baseia-se no uso de pares de chaves para cifrar/decifrar


mensagens. A chave pública, como o nome já diz, pode ser de conhecimento de todos e serve
para cifrar a mensagem. A outra chave, conhecida como chave privada, serve para decifrar a
mensagem e deve ser mantida em segredo. A figura a seguir ilustra o esquema usual de
criptografia de chave pública.

Chave pública Chave privada

Texto Texto Texto


Cifragem Decifragem
claro cifrado claro

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

3.1 O algoritmo RSA

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

Fonte: Disponível em:< http://www.ugr.es/~esantos/asimetrica.html >. Acesso em: 02/04/2018

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

3.2 Descrição do algoritmo RSA

O primeiro passo nesse algoritmo é a geração de chaves. O par de chaves (𝑛, 𝑒) é a


chave pública do sistema RSA e como já vimos, serve para cifrar o texto. O outro par de chaves,
(𝑛, 𝑑) é a chave privada e é usada para decifrar o texto. Os números 𝑛, 𝑒, 𝑑 são escolhidos por
usuários do sistema RSA e devem satisfazer certas condições que serão descritas a seguir.

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.

Para iniciar a codificação é preciso pré-codificar a mensagem. Suponha que na


mensagem original não há números, apenas palavras. Neste caso, deve-se inventar uma maneira
de converter a mensagem em uma sequência de números, usando para isso uma tabela de
conversão. Depois do texto convertido em números, é preciso “quebrar” em blocos de tal modo
que esses blocos sejam números menores que 𝑛 = 𝑝 ⋅ 𝑞.

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.

Importante: os blocos já decodificados não poderão ser reunidos de modo a formar um


único número, pois isso tornaria a decodificação impossível.

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,

𝐶 (𝑏) = 𝑏𝑒 ≡ 𝑎 (𝑚𝑜𝑑 𝑛).


40

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:

𝐶 (𝑏) = 𝑎 é o bloco codificado e 0 < 𝐶(𝑏) < 𝑛.

Agora, a mensagem deve ser decodificada em blocos 𝑎. Denotaremos cada bloco


decodificado por 𝐷(𝑎), de modo que 𝐷(𝑎) é o resto da divisão de 𝑎𝑑 por 𝑛, ou seja,

𝐷(𝑎) = 𝑎𝑑 ≡ 𝑏(𝑚𝑜𝑑 𝑛).

Onde:

𝐷(𝑎) = 𝑏 é o bloco original e 0 < 𝐷(𝑎) < 𝑛.

3.3 Exemplo prático do sistema RSA

Para entendermos melhor o algoritmo RSA, iremos criptografar a palavra


MATEMATICA. Antes de iniciar o processo de codificação, precisamos converter a
mensagem em uma sequência de números. Para pré-codificar a mensagem, usaremos a seguinte
tabela:

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

Tabela 3.1: Tabela de conversão.

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

Convertendo a mensagem, obtemos: 𝑀 = 22, 𝐴 = 10, 𝑇 = 29, 𝐸 = 14, 𝑀 = 22, 𝐴 =


10, 𝑇 = 29, 𝐼 = 18, 𝐶 = 12, 𝐴 = 10. Assim, a mensagem original é dada pelo número:
22102914221029181210.

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

22 102 91 42 210 29 181 210

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
𝐶 (𝑏) = 𝑏𝑒 ≡ 𝑎 (𝑚𝑜𝑑 𝑛).

𝐶(22) = 225 (𝑚𝑜𝑑 221) ⟹ 222 = 484 ≡ 42 (𝑚𝑜𝑑 221) (3.2)

Aplicando a proposição 2.3.6 em (3.2), tem-se que:

(222 )2 ≡ (42)2 ≡ 217 (𝑚𝑜𝑑 221) ⟹ 224 ≡ 217 (𝑚𝑜𝑑 221) (3.3)

Novamente, aplicando a proposição 2.3.6 em (3.3), tem-se:

224 ⋅ (22) ≡ 217 ⋅ (22) = 4774 ≡ 133 (𝑚𝑜𝑑 221) ⟹ 225 ≡ 133 (𝑚𝑜𝑑 221)

Logo, 𝐶(22) = 133. Fazendo todos os 𝐶(𝑏) de modo análogo a 𝐶(22):

𝐶 (102) = 1025 ≡ 1022 ⋅ 1023 ≡ 17 ⋅ 187 ≡ 85 (𝑚𝑜𝑑 221)

⟹ 𝐶 (102) = 1025 ≡ 85 (𝑚𝑜𝑑 221)

𝐶 (91) = 915 ≡ 913 ⋅ 912 ≡ 182 ∙ 104 ≡ 143 (𝑚𝑜𝑑 221)


42

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

⟹ 𝐶(91) = 915 ≡ 143 (𝑚𝑜𝑑 221)

𝐶(42) = 425 ≡ 423 ⋅ 422 ≡ 53 ∙ 217 ≡ 9 (𝑚𝑜𝑑 221)

⟹ 𝐶(42) = 425 ≡ 9 (𝑚𝑜𝑑 221)

𝐶(210) = 2105 ≡ 2102 ⋅ 2103 ≡ 121 ∙ 216 ≡ 58 (𝑚𝑜𝑑 221)

⟹ 𝐶(210) = 2105 ≡ 58 (𝑚𝑜𝑑 221)

𝐶 (29) = 295 ≡ 292 ⋅ 293 ≡ 178 ⋅ 79 ≡ 139 (𝑚𝑜𝑑 221)

⟹ 𝐶(29) = 295 ≡ 139 (𝑚𝑜𝑑 221)

𝐶(181) = 1815 ≡ 1812 ⋅ 1813 ≡ 53 ⋅ 90 ≡ 129 (𝑚𝑜𝑑 221)

⟹ 𝐶(181) = 1815 ≡ 129 (𝑚𝑜𝑑 221)

𝐶(210) = 2105 ≡ 2102 ⋅ 2103 ≡ 121 ⋅ 216 ≡ 58 (𝑚𝑜𝑑 221)

⟹ 𝐶(210) = 2105 ≡ 58 (𝑚𝑜𝑑 221)

Dessa forma, obtemos a mensagem criptografada 133.85.143.9.58.139.129.58

Mensagem original 22.102.91.42.210.29.181.210

Mensagem criptografada 133.85.143.9.58.139.129.58

Para decodificar a mensagem usaremos a chave privada 𝑑. Para a escolha dessa chave,
devemos ter:

𝑖) 1 < 𝑑 < 𝜙 (𝑛) ⟹ 1 < 𝑑 < 192;

𝑖𝑖) e que também 𝑒 e 𝑑 sejam inversos multiplicativos módulo 𝜙(𝑛), ou seja,

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:

5 ⋅ 𝑑 ≡ 1 𝑚𝑜𝑑 192 ⟹ 5 ⋅ 𝑑 − 1 = 192 ⋅ 𝑘

Vamos usar o algoritmo estendido de Euclides para escrever 1 em termos de 5 e 192:

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 𝐷(𝑎) = 𝑎𝑑 ≡ 𝑏(𝑚𝑜𝑑 𝑛):

𝐷(133) = 13377 𝑚𝑜𝑑 221 ⟹ 𝐷(133) ≡ 22 𝑚𝑜𝑑 221

𝐷(85) ≡ 8577 𝑚𝑜𝑑 221 ⟹ 𝐷(85) ≡ 102 𝑚𝑜𝑑 221

𝐷(143) ≡ 14377 𝑚𝑜𝑑 221 ⟹ 𝐷(143) ≡ 91 𝑚𝑜𝑑 221

𝐷(9) ≡ 977 𝑚𝑜𝑑 221 ⟹ 𝐷(9) ≡ 42 𝑚𝑜𝑑 221

𝐷(58) ≡ 5877 𝑚𝑜𝑑 221 ⟹ 𝐷(58) ≡ 210 𝑚𝑜𝑑 221

𝐷(139) ≡ 13977 𝑚𝑜𝑑 221 ⟹ 𝐷(139) ≡ 29 𝑚𝑜𝑑 221

𝐷(129) ≡ 12977 𝑚𝑜𝑑 221 ⟹ 𝐷(129) ≡ 181 𝑚𝑜𝑑 221

𝐷(58) ≡ 5877 𝑚𝑜𝑑 221 ⟹ 𝐷(58) ≡ 210 𝑚𝑜𝑑 221

Obtemos a mensagem original 22.102.91.42.210.29.181.210. Reorganizando a


mensagem em blocos de dois algarismos, pois de acordo com a tabela 3.1 cada letra do alfabeto
corresponde a um número de dois algarismos, temos: 22.10.29.14.22.10.29.18.12.10, que
corresponde a palavra MATEMATICA.

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

3.4 A segurança do RSA

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.

Portanto, para chaves suficientemente grandes, o RSA é seguro. Quando se fala em


números grandes, são chaves com cerca de 200 algarismos.

3.5 Funcionamento do algoritmo RSA

O algoritmo RSA só será válido se, decodificando um bloco codificado, obtivermos de


volta o bloco correspondente à mensagem original. Para mostrar que os sistemas de codificação
e decodificação apresentados anteriormente funcionam e são seguros, devemos mostrar que

𝐷(𝐶 (𝑏)) = 𝑏

Na verdade, precisamos provar apenas que

𝐷(𝐶 (𝑏)) ≡ 𝑏 (𝑚𝑜𝑑 𝑛)

Isto é suficiente, pois tanto 𝐷(𝐶𝑏)) quanto 𝑏 estão no intervalo de 1 a 𝑛 − 1 e, portanto,


só podem ser congruentes módulo 𝑛 se forem iguais.

Considere:

𝑖) 𝐶 (𝑏) = 𝑏𝑒 ≡ 𝑎 (𝑚𝑜𝑑 𝑛) a codificação do bloco original 𝑏, onde 0 < 𝐶(𝑏) < 𝑛;

𝑖𝑖) 𝐷(𝑎) = 𝑎𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑛) 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

Desse modo, tem-se que

𝐷(𝐶 (𝑏)) ≡ 𝐷(𝑏𝑒 ) ≡ (𝑏𝑒 )𝑑 ≡ 𝑏𝑒𝑑 (𝑚𝑜𝑑 𝑛) (4.5.1)

Mas, como já se sabe, 𝑑 é o inverso de 𝑒 módulo 𝜙 (𝑛). Daí,

𝑒𝑑 ≡ 1 (𝑚𝑜𝑑 𝜙 (𝑛)) ⟹ 𝑒𝑑 = 1 + 𝑘 ∙ 𝜙(𝑛), 𝑘 ∈ℤ (4.5.2)

Como 𝜙 (𝑛) = 𝜙(𝑝𝑞 ) = 𝜙(𝑝) ∙ 𝜙(𝑞 ) = (𝑝 − 1) ∙ (𝑞 − 1), então substituindo 𝜙(𝑛) em


(4.5.2), tem-se que:

𝑒𝑑 = 1 + 𝑘 (𝑝 − 1) ∙ (𝑞 − 1) (4.5.3)

Logo,

𝑏𝑒𝑑 = 𝑏1+𝑘(𝑝−1)∙(𝑞−1) = 𝑏 ∙ (𝑏𝑝−1 )𝑘(𝑞−1) (4.5.4)

Percebe-se que substituindo (4.5.2) em (4.5.1), tem-se

𝑘
𝑏𝑒𝑑 ≡ 𝑏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

𝑏𝑒𝑑 = 𝑏 ⋅ 𝑏𝑘(𝑝−1)(𝑞−1) = 𝑏 ⋅ (𝑏𝑝−1 )𝑘(𝑝−1)


Como (𝑝, 𝑏) = 1, pelo Teorema de Fermat tem-se,
𝑏𝑝−1 ≡ 1 (𝑚𝑜𝑑 𝑝)
Daí,
𝑏𝑒𝑑 ≡ 𝑏 ⋅ 1𝑘(𝑞−1) (𝑚𝑜𝑑 𝑝) ⟹ 𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑝)
Portanto, provamos que nos dois casos 𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑝). O caso 𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑞) é
análogo.
Como 𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑝) e 𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑞), então por definição tem-se que
𝑝 ∣ 𝑏 − 𝑏𝑒𝑑 e 𝑞 ∣ 𝑏 − 𝑏𝑒𝑑
Note que (𝑝, 𝑞 ) = 1, e portanto, podemos usar a Proposição 2.2.5 (𝑖𝑖), ou seja,
𝑝 ∙ 𝑞 ∣ 𝑏 − 𝑏𝑒𝑑
Mas, 𝑛 = 𝑝 ∙ 𝑞. Logo,
𝑛 ∣ 𝑏 − 𝑏𝑒𝑑
ou seja,
𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑛)
Como 𝐷(𝐶 (𝑏)) ≡ 𝑏𝑒𝑑 (𝑚𝑜𝑑 𝑛) e 𝑏𝑒𝑑 ≡ 𝑏 (𝑚𝑜𝑑 𝑛), conclui-se que
𝐷(𝐶 (𝑏)) ≡ 𝑏 (𝑚𝑜𝑑 𝑛) □

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

Conforme já foi exposto, os números primos tem um papel fundamental na segurança


da internet. A Hipótese de Riemann busca entender como esses números se comportam, e, por
isso, a sua demonstração poderia fornecer novas concepções. Segundo Sautoy (2007, p. 199)
“Se a hipótese de Riemann for verdadeira, haverá uma maneira rápida de descobrir os primos
usados para gerar os códigos RSA, dos quais a segurança do comércio eletrônico depende em
nossos dias. ”

Tendo em vista a questão de segurança e privacidade, na criptografia RSA, encontra-se


uma inteligência capaz de garantir essas questões, de tal forma que é possível fazer um estudo
e compreender o método a partir de conceitos matemáticos, inseridos na Teoria dos Números.
Assim, é de extrema importância o estudo da criptografia, e aprofundamento da matemática
que é base do funcionamento desse método.

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

5. SUGESTÕES PARA PESQUISAS FUTURAS

Fica a proposta de pesquisa sobre outras modalidades de criptografia como a baseada


em curvas elípticas, que é uma aproximação para a criptografia de chave pública com base na
estrutura algébrica de curvas elípticas sobre corpos finitos. Esse tipo de criptografia é a utilizada
pelo WhatsApp, um aplicativo de mensagens mundialmente conhecido. Esse método de
criptografia com curvas elípticas é mais adequado para dispositivos computacionais de poder
limitado, como telefone, isso porque, os códigos baseados em curvas elípticas não precisam de
chaves numéricas tão grandes.
Também como sugestão para pesquisas futuras a criptografia quântica, que é a
criptografia que utiliza os princípios da Mecânica Quântica para garantir uma comunicação
segura. Esse tipo de criptografia só é utilizada para produzir e distribuir chaves, não para
transmitir mensagens.

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

COUTINHO, S.C. Números inteiros e criptografia RSA. IMPA/SBM, 2009.

DU SAUTOY, Marcus. A música dos números primos: a história de um problema não


resolvido na matemática / tradução, Diego Alfaro. — Rio de Janeiro: Jorge Zahar Ed., 2007.

GAUSS, Carl Friedrich. Tr. Arthur A. Clarke: Disquisitiones Arithmeticae, Yale University
Press, 1965.

LAMB, Evelyn. Peculiar pattern found in “random” prime numbers. Disponível em


<http://www.nature.com/news/peculiar-pattern-found-in-random-prime-numbers-1.19550>
Acesso em: novembro, 2017.

SOUNDARARAJAN, Kannan; OLIVER, Robert J. Lemke. Unexpected Biases in the


Distribution of Consecutive Primes. Disponível em < https://arxiv.org/abs/1603.03720>
Acesso em: Agosto, 2017.

50

OLIVEIRA, Maria José Cândido. A Importância dos Números Primo para Segurança da Internet

Você também pode gostar