Criptografia RSA e Teoria dos Números
Criptografia RSA e Teoria dos Números
Data de Depósito:
Assinatura: ______________________
Criptografia RSA
Cryptography RSA
Agradeço primeiramente à Deus e à minha mãe, que me deu muito apoio em todos
os momentos. Ao meu marido, Pedro, que teve extrema paciência e sempre me apoiou.
Ao IMPA que teve a iniciativa de proporcionar o PROFMAT, à USP, ao meu orientador
Marcelo Rempel Ebert e à CAPES que proporcionou a aplicação nas aulas do Programa
de Iniciação Científica da Obmep, assim como a todos os professores que me ajudaram a
aprofundar meus conhecimentos e a realizar este sonho.
“Precisamos nos comunicar
Da rotina escapar
Ao amor nos entregar.
Algumas coisas gritamos ao mundo,
Outras guardadas estão bem lá no fundo
Da alma, ou do coração.
Mas pra sempre assim não ficarão.
Muitas vezes não queremos falar,
Porque nem todos precisam escutar,
Por isso minha mensagem vou criptografar
Para que só alguns possam receptar”
(Daniele Helena Bonfim)
RESUMO
BORGES, DANIELE H. B.. Criptografia RSA. 2017. 91 f. Dissertação (Mestrado em
Ciências – Programa de Mestrado Profissional em Matemática) – Instituto de Ciências
Matemáticas e de Computação (ICMC/USP), São Carlos – SP.
Neste trabalho é apresentado um pouco da história da criptografia, assim como sua impor-
tância nos dias atuais, a base da teoria dos números e de congruência modular necessárias
para compreender a criptografia RSA, que é o foco deste trabalho. A criptografia RSA
é a mais usada atualmente por causa da dificuldade em ser decodificada. Foi elaborada
e apresentada uma aula aos alunos do ensino fundamental e médio participantes do Pro-
grama de Iniciação Científica Júnior da OBMEP, sendo mostrado o porquê ela funciona,
os métodos de codificação e decodificação.
In this work some of the history of cryptography is presented, as well as its nowadays
applications. The RSA encryption is the most widely used because of the difficulty to
being decoded. In order to understand the RSA encryption, which is the focus of this work,
we recall some basis of number theory and modular congruence. Also, it was prepared
and presented a lecture to the students of middle and high school participants in the
Program of Junior Scientific Initiation of OBMEP, being shown why it works, methods
of encoding and decoding.
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 ARITMÉTICA BÁSICA . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1 Divisão nos Inteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 O algoritmo de Euclides . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 Equações diofantinas lineares . . . . . . . . . . . . . . . . . . . . . . . 32
2.4 Os números primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5 Congruência e Propriedades . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6 Congruências Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.7 Teorema Chinês do Resto . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.8 Métodos Para Achar Números Primos . . . . . . . . . . . . . . . . . 43
2.9 Como Encontrar Números Primos Grandes . . . . . . . . . . . . . . . 43
2.10 Teste de Primalidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3 CRIPTOGRAFIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.1 Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.1.1 Heródoto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.2 Bastão de Licurgo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.3 Método de César . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.4 Anagrama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1.5 Blaise de Vigenère . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1.6 A cifra de Beale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1.7 Braille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.1.8 Disco de Alberti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1.9 Máquina Enigma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.1.10 Máquina Colossus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.11 Código Morse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.12 Sistema Binário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2.1 Como Funciona? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.2.2 Por que funciona? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.2.3 Segurança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4 APLICAÇÕES DA CRIPTOGRAFIA RSA NO PROGRAMA DE INI-
CIAÇÃO CIENTÍFICA OBMEP . . . . . . . . . . . . . . . . . . . . 73
4.1 Planejamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2 A aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.3 MAXIMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
CAPÍTULO
1
INTRODUÇÃO
Neste trabalho será apresentado a Criptografia, que estuda o ato de cifrar men-
sagens, derivada do grego cryptos que significa “secreto, oculto”, usada para codificar
mensagens de forma que somente o destinatário e o remetente compreendam. Segundo
Coutinho (2008, p. 1) é o estudo dos: “métodos para codificar uma mensagem de modo
que só seu destinatário consiga interpretá-la”.
Durante a história é possível perceber o quanto a Criptografia evoluiu para que
as mensagens ficassem mais seguras de serem transmitidas, já que, com seu surgimento
também veio a Criptoanálise que estuda os métodos de quebrar ou decifrar mensagens
cifradas.
Para compreender melhor o processo veja o exemplo: Ana quer enviar uma men-
sagem à Felipe, contudo ela quer que somente ele leia e compreenda a mensagem, para
isso ela irá escrever a mensagem e cifrá-la ou codificá-la antes de enviar, de modo que,
quando Felipe receber ele terá que decifrar a mesma. O ato de Ana é para que caso uma
terceira pessoa intercepte a mensagem, esta não possa ler ou compreender.
Segundo Diffie e Hellman (2007, p. 30): “A criptografia é o estudo de sistemas
“matemáticos” envolvendo dois tipos de problemas de segurança: privacidade e autentica-
ção”.
Atualmente está presente na linguagem de computadores, quando é enviado um
e-mail, nas senhas de bancos e redes sociais, dentre outros, mas ela não é um conteúdo
presente no Ensino Médio atual. No Conteúdo Básico Comum (CBC) de Minas Gerais
(CARNEIRO; SPIRA; SABATUCCI, 2016) ela não aparece, nem nos Parâmetros Curri-
culares Nacionais (PCNs) de Matemática (BRASIL, 1997).
Contudo, segundo os PCNs, é preciso que haja contextualização nos conteúdos
ensinados, pois todo conhecimento envolve uma relação entre sujeito e objeto, ou seja,
22 Capítulo 1. Introdução
CAPÍTULO
2
ARITMÉTICA BÁSICA
(1) (“d divide”) Se d | a e d | b então d | (ax + by) para qualquer combinação linear de a
e b com coeficientes x, y ∈ Z.
S = {x = a − by; y ∈ Z} ∩ (N ∪ {0}).
Como o conjunto dos Naturais não permite cota superior (Propriedade Arquime-
diana), existe n ∈ Z tal que n(−b) > −a, logo a − nb > 0, mostrando que S não é vazio.
O conjunto S é limitado inferiormente por 0, logo, pelo princípio da Boa Ordenação,
tem-se que S possui um menor elemento r.
Suponhamos então que r = a − bq. Sabendo que r ≥ 0 é preciso mostrar que r <| b |.
Presuma por absurdo que r ≥| b |, isso implica que existe s ∈ N ∪ {0} tal que
r =| b | +s, com 0 ≤ s < r. Mas isso contradiz o fato de r ser um menor elemento de S, pois
s = a − (q ± 1)b ∈ S, com s < r.
Para provarmos a unicidade, suponha que a = bq + r = bq′ + r′ , onde q, q′ , r, r′ ∈ Z,
0 ≤ r < |b| e 0 ≤ r′ < |b|. Assim tem-se que −|b| < −r ≤ r′ − r ≤ r′ < |b|. Logo, |r′ − r| < |b|.
Por outro lado, b(q − q′ ) = r′ − r, o que implica que |b||q − q′ | = |r′ − r| < |b|, o que só é
possível se q = q′ e consequentemente, r = r′ .
1. d é um divisor comum de a e b, e
Observação 1. Sejam a e b números inteiros não nulos, e suponha que exista d = (a, b).
Seja c um divisor comum de a e b, então |c| divide d e, portanto c ≤ |c| ≤ d. Isso nos
mostra que o máximo divisor comum de dois números, não ambos nulos, quando existe,
é efetivamente o maior entre todos os divisores comuns desses números. Desta maneira,
conclui-se a existência do mdc conforme definição acima.
2.2. O algoritmo de Euclides 27
Exemplo 1. Temos que (28, 36) = 4, pois D28 = {±1, ±2, ±4, ±7, ±14, ±28} e D36 =
{±1, ±2, ±3, ±4, ±6, ±9, ±12, ±18, ±36}.
Como o mdc de a e b não depende da ordem em que a e b são tomados, temos que
a | b ⇔ (a, b) = |a|.
Assim para efeito do cálculo do mdc de dois números, podemos supô-los não negativos.
O algoritmo de Euclides ou algoritmo das divisões sucessivas é uma forma eficiente
de encontrar o mdc entre dois números. Tal algoritmo se baseia na divisão euclidiana.
No que segue, vamos aplicar o Lema 2 para calcular o (a, b). Vamos supor que
1 < b < a. Se b|a então (a, b) = b. Se b ∤ a, pela divisão euclidiana, pode-se escrever:
a = bq1 + r1 com 0 < r1 < b, e pelo Lema 2 tem-se duas possibilidades:
5. rn−1 = rn qn+1 .
(1) d é o mdc de a e b; e
i) d|a e d|b,
2.2. O algoritmo de Euclides 29
Demonstração. (Teorema 2)
(1) Suponha que c divida a e b, logo c divide todos os números naturais da forma
xa + yb. Portanto, c divide todos os elementos de I(a, b), e, consequentemente, c|d.
Para mostrar que d divide todos os elementos de I(a, b): seja z ∈ I(a, b) e suponha,
por absurdo, que d ∤ z. Logo pela divisão Euclidiana,
o que é um absurdo, pois d =min I(a, b) ∩ N e r < d. Em particular, d|a e d|b. Assim,
fica provado que d é o mdc de a e b.
(2) Dado que todo elemento I(a, b) é divisível por d, tem-se que I(a, b) ⊂ dZ. Por outro
lado, para todo ld ∈ dZ, tem-se que:
Proposição 2. Dois números inteiros a e b são primos entre si se, e somente se, existem
números inteiros m e n tais que ma + nb = 1.
30 Capítulo 2. Aritmética Básica
Demonstração. Suponha que a e b são primos entre si, i.e., (a, b) = 1. Logo, pelo Teorema
2, temos que existem números inteiros m e n tais que ma + nb = 1, donde segue a primeira
parte da proposição.
Reciprocamente, suponha que existam números inteiros m e n tais que ma + nb = 1.
Se d = (a, b), temos que d | ((ma + nb), o que mostra que d | 1, e, portanto, d = 1.
ma + nb = 1.
c = mac + nbc.
e portanto a | c.
1. m é um múltiplo comum de a e b, e
É possível calcular o mmc entre dois números em termos do mdc pela proposição
abaixo:
i) a|m e b|m;
Proposição 5. Dados números inteiros n1 , n2 , · · · , nm todos não nulos, existe o seu mdc
e
(n1 , n2 , · · · , nm ) = (n1 , · · · nm−2 , (nm−1 , nm )).
Demonstração. Provaremos por indução sobre m ≥ 2. É fácil ver que para m = 2, o resul-
tado é válido. Partiremos do princípio que o resultado vale para m.
Para provar que o resultado é válido para m + 1, basta mostrar que se d é o mdc
de n1 , · · · ,(nm , nm+1 ), então d é o mdc de n1 , · · · ,nm , nm+1 .
Seja d o mdc de n1 , · · · ,(nm , nm+1 ). Logo d | n1 , d | n2 , · · · , d | nm−1 , e d | (nm , nm+1 ).
Portanto, d | n1 , d | n2 , · · · , d | nm−1 , d | nm d | nm+1 .
32 Capítulo 2. Aritmética Básica
Por outro lado, seja c divisor comum de n1 ,n2 ,· · · , nm , nm+1 , logo c é um divisor
comum de n1 ,n2 , · · · , nm−1 e (nm , nm+1 ), e, portanto, c | d.
Demonstração. Sejam m = [n1 , n2 , · · · , nk−2 , [nk−1 , nk ]]. Logo, n1 , n2 , · · · , nk−2 e [nk−1 , nk ]] di-
videm m. Como nk−1 | [nk−1 , nk ] e nk | [nk−1 , nk ], segue que m é um múltiplo comum de n1 ,
n2 , · · · , nk .
Por outro lado, suponha que c seja múltiplo comum de n1 , n2 , · · · , nk . Logo, n1 | c,
n2 | c, · · · , nk−2 | c e [nk−1 , nk ] | c, daí segue que c é múltiplo de m = [n1 , n2 , · · · , nk−2 , [nk−1 , nk ]].
aX + bY = c, (2.2)
em que d = (a, b). Assim é claro que a equação aX + bY = c admite solução se, e somente
se, c ∈ I(a, b), o que é equivalente a c ∈ dZ, que por sua vez, é equivalente a d|c.
2.3. Equações diofantinas lineares 33
Suponda que (a, b) = 1. Pelo resultado anterior, temos que (2.2) admite solução.
No que segue, vamos caracterizar o conjunto de todas as soluções.
x = x0 + tb, y = y0 − ta; t ∈ Z.
Consequentemente, a(x − x0 ) = b(y0 − y). Como (a, b) = 1, segue-se que b|(x − x0 ). Logo,
x − x0 = tb, t ∈ Z.
Substituindo a expressão de x − x0 em (2.3), segue-se que
y0 − y = ta,
ma + nb = 1.
cma + cnb = c.
Definição 4. Um número natural maior que 1 que só possui como divisores positivos 1
e ele próprio é chamado de número primo.
Proposição 10. Dados dois números primos p e q e um número inteiro a qualquer. Temos
que:
I) Se p | q, então p = q.
n = p1 · · · pm
Demonstração. Se n é um número primo não há o que demonstrar, pois basta que se faça
m = 1 ⇒ p1 = n. Se n é composto, seja p1 > 1 o menor dos divisores positivos de n. Pode-se
provar que p1 é primo. De fato, caso contrário existiria um p, com 1 < p < p1 tal que
p | p1 , donde p | n, o que iria contradizer a escolha de p1 como menor divisor. Assim n
pode ser escrito como n = p1 n1 .
Se n1 for primo a prova está finalizada, mas se n1 for composto, seja p2 > 1 o menor
dos divisores positivos de n1 . Pode-se provar que p2 é primo, logo n = p1 p2 n2 . Repete-se
o processo até que encontra-se um nr primo.
Como n1 , n2 , n3 , · · · , nr é uma sequência decrescente, onde todos os termos perten-
cem aos naturais, será finita.
Os primos da sequência p1 ,p2 , p3 , p4 , · · · , pm não são necessariamente distintos,
assim a forma de n será:
n = pα1 1 pα2 2 pα3 3 pα4 4 · · · pαmm .
n = p1 p2 p3 p4 · · · pm = q1 q2 q3 q4 · · · qn .
É preciso provar que m = n e que cada pi é igual a algum dos q j . Como p1 divide
q1 q2 q3 q4 · · · qn , e como ambos são primos, logo p1 divide um dos fatores q j , donde a menos
da ordem podemos supor p1 = q1 . Da mesma forma p2 divide um dos fatores q j , como
ambos são primos, implica que p2 = q2 , repetindo o processo por indução tem-se que
m = n, logo as fatorações p1 p2 p3 p4 · · · pm e q1 q2 q3 q4 · · · qn são idênticas.
Além de Euclides, outros matemáticos provaram este teorema como, por exemplo,
Kummer, Hermite, Goldbach, Euler, Thue, Perott, Auric, Métrod, dentre outros (RIBEN-
BOIM, 2012).
36 Capítulo 2. Aritmética Básica
( p) p!
Lema 3. Seja p um número primo. Os números i = (p−i)!i! , onde 0 < i < p, são todos
divisíveis por p.
é um inteiro, segue que i!|p(p − 1) · · · (p − i + 1). Por outro lado, como (i!, p) = 1, então
( )
i!|(p − 1) · · · (p − i + 1), donde por definição p | pi .
Teorema 6. (Pequeno Teorema de Fermat) Seja p um número primo, tem-se que p divide
o número a p − a, para todo número inteiro a.
Pelo Lema 3 e pela hipótese de indução, o segundo membro da equação é divisível por p.
Para concluir a prova no caso a < 0, basta observar que (−a) p − (−a) = −a p + a =
−[a p − a].
Demonstração. De acordo com o Teorema 6, temos que p|a p − a ⇔ p|a(a p−1 − 1). Como
(a, p) = 1 então p divide a p−1 − 1.
Demonstração. Para provar que existem infinitos números primos da forma 6k + 5 supo-
nha, por absurdo, que existe um número finito de primos nesta forma.
Sejam estes números: 5, p1 , p2 , p3 , · · · , pn , todos distintos, e considere o número
P = 6p1 p2 p3 · · · pn + 5, P não é divisível por nenhum dos primos 5, p1 , p2 , p3 , · · · , pn .
Podemos afirmar que P possui um fator primo da forma 6k + 5 distinto dos ante-
riores. De fato, caso contrário, se todos fossem da forma 6k + 1, como o produto de dois
números desta forma é sempre igual a outro da forma 6k′ + 1, donde uma contradição.
A demonstração usual deste teorema usa variáveis complexas. Muitos casos parti-
culares admitem demonstrações elementares mais ou menos simples. É possível encontrar
a demonstração em [Link] nicolau/papers/mersenne/[Link].
a ≡ b mod m.
Proposição 13. Suponha que a, b, m ∈ Z, com m > 1. Tem-se que a ≡ b mod m se, e
somente se, m | b − a.
38 Capítulo 2. Aritmética Básica
Demonstração. (1) Se a ≡ b mod m, então m|b−a. Como n|m, segue-se que n|b−a. Logo,
a ≡ b mod n.
a p ≡ a mod p.
aX ≡ b mod m
ax ≡ ax0 ≡ b mod m.
Além disso, esses números são dois a dois incongruentes módulo m. De fato, se,
para i, j < d,
m m
x0 + i ≡ x0 + j mod m,
d d
então
m m
i ≡j mod m.
d d
Pelo item 7 da Proposição 14 e como
m
= d,
( md , m)
e
a a m
x ≡ x0 mod .
d d d
2.7. Teorema Chinês do Resto 41
X ≡ ci mod mi , i = 1, · · · , r. (2.4)
Teorema 9. Se (mi , m j ) = 1, para todo par mi , m j com i ̸= j, então o sistema (2.4) possui
uma única solução módulo M = m1 m2 · · · mr . As soluções são
x = M1 y1 c1 + · · · + Mr yr cr + tM,
x = M1 y1 c1 + · · · + Mr yr cr ≡ Mi yi ci ≡ ci mod mi .
x ≡ x′ mod mi , ∀i, i = 1, · · · , r.
[m1 , · · · , mr ] = m1 · · · mr = M
admite solução se, e somente se c2 ≡ c1 mod (m1 , m2 ). Além disso, dada uma solução a do
sistema, um número a′ é também uma solução se, e somente se, a′ ≡ a mod [m1 , m2 ].
42 Capítulo 2. Aritmética Básica
Demonstração. O sistema (2.5) admite uma solução se, e somente se, existem a, y, z ∈
Z tais que a − c1 = ym1 e a − c2 = zm2 . Assim, a existência de soluções do sistema é
equivalente à soluções da equação diofantina ym1 −zm2 = c2 −c1 . Por sua vez, essa equação
diofantina possui solução se, e somente se, (m1 , m2 ) divide c2 − c1 , o que equivale a c2 ≡
c1 mod (m1 , m2 ).
Suponhamos que a seja uma solução do sistema (2.5). Se a′ é uma outra solução
do sistema, então a′ ≡ c1 ≡ a mod m1 e a′ ≡ c2 ≡ a mod m2 , o que, em vista da Proposição
15 ítem (2), implica que a′ ≡ a mod [m1 , m2 ].
Por outro lado, se um número a′ é tal que a′ ≡ a mod [m1 , m2 ], então a′ ≡ a ≡
c1 mod m1 e a′ ≡ a ≡ c2 mod m2 . Portanto, a′ é solução do sistema (2.5).
X ≡ ci mod mi , i = 1, · · · , r
Demonstração. Esta prova será feita por indução sobre r. O caso r = 2 é dado pela Pro-
posição 17.
Suponhamos que a propriedade seja válida para r − 1. Pela hipótese de indução,
temos que o sistema X ≡ ci mod mi , i = 1, · · · , r − 1, admite uma única solução c módulo
[m1 , · · · , mr−1 ]. Temos que mostrar agora que o sistema
X ≡ cr mod mr
possui uma solução única módulo [m1 , · · · , mr ]. Para estabelecer isso, em vista do caso
r = 2, só falta mostrar que
Como temos que c ≡ ci mod mi para i = 1, · · · , r − 1, seque-se, por mais forte razão,
que c ≡ ci mod (mr , mi ). Por outro lado, por hipótese, sabemos que cr ≡ ci mod (mr , mi ),
para todo i, logo cr ≡ c mod (mr , mi ), para todo i = 1, · · · , r − 1, e pelo item 2 da Proposição
15 segue que
cr ≡ c mod [(mr , m1 ), (mr , m2 ), · · · , (mr , mr−1 )].
O resultado agora segue da Proposição 7, que garante que
Teorema 11. Se n não é primo, então n possui, necessariamente, um fator primo menor
√
do que ou igual a n.
Demonstração. Sendo n composto então n = n1 × n2 onde 1 < n1 < n, 1 < n2 < n. Sem
√
perda de generalidade suponha n1 ≤ n2 . Logo n1 tem que ser ≤ n pois, caso contrário,
√ √
teríamos n = n1 × n2 > n × n = n o que é absurdo. Logo, como pelo Teorema 4, n1
√
possui algum fator primo p, este deve ser ≤ n. Como p, sendo um fator primo de n1 é
também um fator de n, logo a demonstração está completa.
√
Como consequência, se n não possui um fator primo ≤ n, então n é primo.
43142746595714191 + 5283234035979900 × n
para todo n = 0, 1, · · · , 25, que foi descoberta em 12 de abril de 2010 por Benoãt Perichon
em um projeto do PrimeGrid disponível no site [Link] (RACKS-
PACE, 2016).
De acordo com OEIS (2016) e Ballinger e Rodenkirch (2016) existem outros pro-
jetos para procurar primos grandes, provando algumas conjecturas, como a de Sierpinski,
a de Riesel , ou os números de Brier (que são simultaneamente de Sierpinski e de Riesel).
Dada esta necessidade de encontrar primos grandes, de acordo com Martinez et
al. (2013, p. 332):
Para encontrar primos que possuam esse tamanho, a aplicação de algoritmos de-
46 Capítulo 2. Aritmética Básica
terminísticos 1 como o Crivo de Eratóstenes é inviável, pois o tempo gasto é muito grande.
A solução para esse problema é utilizar algoritmos randomizados 2 que forneçam números
primos grandes.
A base desses algoritmos randomizados são testes de primalidade fundamentados
no Pequeno Teorema de Fermat/Euler: Teorema 6 e Corolário 2.
números da ordem 109 , por exemplo, existem 50.847.534 primos de 1 até [Link],
mas apenas 5587 pseudoprimos para a base 2 (0, 01%), caso sejam utilizadas as bases 2 e 3,
esse número cai para 1271 (0, 0025%), se houver o teste de outras bases, essa porcentagem
cai ainda mais.
A pequena probabilidade de um número ser pseudoprimo, quando testa-se várias
bases, é o que fundamenta o teste de primalidade mais utilizado por programas de com-
putação algébrica, o Teste de Miller-Rabin. Rabin provou que quando se testa uma base
1
aleatória a, a probabilidade de que o teste acuse um pseudoprimo é menor que , ou
4
seja, se aplica o teste para k bases distintas, a probabilidade de que o teste acuse um
( )k
1
pseudoprimo é menor do que , por exemplo, se o teste for aplicado para 10 bases
4
( )10
1
distintas, a probabilidade de encontrar um pseudoprimo é igual a ≃ 0, 0000954%.
4
Esse teste está fundamentado na Hipótese de Riemman Generalizada, que afirma
ser suficiente testar um número pequeno de bases para se garantir a primalidade de um
número.
49
CAPÍTULO
3
CRIPTOGRAFIA
A natureza humana tem uma necessidade à privacidade, mesmo que seja para
guardar simples segredos. É possível observar na história que a linguagem de códigos
sempre foi muito usada como recurso militar, político, em questões comerciais, em guerras
e até mesmo motivos sentimentais (SINGH, 2005).
Os indícios são que a criptografia começou a ser usada no antigo Egito quando o
faraó Amenemhet II governava, por volta de 1900 a.C. pelo arquiteto Khnumhotep II. Em
documentos que indicavam a localização de tesouros, o escriba de Khnumhotep II, para
dificultar que ladrões os encontrassem, substituiu alguns trechos e palavras de documentos
importantes por símbolos estranhos.
O filósofo Heródoto demonstrou que a criptografia já era usada há muito tempo
nas guerras, um dos métodos era raspar a cabeça do mensageiro, escrever a mensagem e
esperar que o cabelo crescesse novamente, mas dada a facilidade de ser descoberta houve
a necessidade de ferramentas que guardassem melhor a mensagem ou de métodos mais
difíceis de serem descobertos (LARCHER, 1950).
Nos séculos XVIII e XIX surgiram as Câmeras Escuras, onde a arte de quebrar
códigos era usada para decifrar mensagens diplomáticas, empregando muitos matemáti-
cos famosos, a de Viena era conhecida como a mais eficiente, quebrando cerca de 100
mensagens internacionais por dia.
Com isso os métodos foram aprimorando: escrita na madeira com cera por cima,
embaralhamento das letras, Bastão de Licurgo, método de substituição (como o usado por
Júlio César, imperador de Roma), disco de Alberti, máquina Enigma (Segunda Guerra
51
3.1 Tipos
A criptografia é usada quando o remetente pretende escrever mensagens ou textos
com o objetivo de que somente a pessoa interessada na mensagem possa lê-la. Um esquema
de seu funcionamento segundo Stallings (2008, p. 172):
O texto claro é aquele que tem informação legível, o texto codificado ou texto
ilegível, é aquele que foi gerado pela codificação de um texto claro. O ato de codificar ou
cifrar é tranformar um texto claro em um texto ilegível, e, o ato de decodificar ou decifrar
é transformar um texto codificado em um texto claro - uma mensagem pode ser quebrada,
ou seja, decodificada, se aplicada as técnicas corretas.
A criptografia pode ser dividida em simétrica (convencional) e assimétrica (de
chave Pública), na primeira a mesma chave que criptografa a mensagem é a que des-
criptografa, desta forma se uma pessoa tem a chave para criptografar uma mensagem
automaticamente ela consegue descriptografar. Na segunda há uma chave para criptogra-
far a mensagem: chave pública, e uma para descriptografar: chave privada, logo mesmo que
uma pessoa tenha a chave para a criptografia da mensagem ela não consegue decodificar
uma sem a outra chave: privada.
Quando há as duas chaves: pública e privada, a primeira pode ser divulgada e
deve ser feita de tal forma que mesmo que uma pessoa tenha ela não conseguirá descobrir
a privada. A chave privada deve permanecer em segredo, afinal é ela que decodifica a
mensagem.
Quando há somente uma chave, no caso da criptografia simétrica, esta deve per-
manecer secreta e quem a tem pode codificar ou decodificar qualquer mensagem.
O nível de segurança de uma criptografia é medido de acordo com o número de
bits, desta forma, quanto mais bits forem usados, mais difícil será quebrar a criptografia
usada.
3.1. Tipos 53
Bit é a sigla para Binary Digit, que significa dígito binário, assim 1 bit só pode
assumir dois valores: 0 ou 1, essa quantidade de valores é medida de acordo com: 2n , onde
o n é o número de bits. Dez bits tem assim 210 possíveis valores.
3.1.1 Heródoto
Heródoto viveu de 484 a.C. a 425 a.C. e adotou alguns métodos para comunicação
chamados esteganografia (derivado das palavras gregas steganos, que significa coberto,
e graphein, que significa escrever) arte de ocultar o que está escrito, os que mais se
destacaram foram: raspar o cabelo do mensageiro, escrever a mensagem, deixar o cabelo
crescer e enviá-lo para o destino; e escrever mensagens em tabletes e cobri-los com cera
(LARCHER, 1950).
Existem outros métodos de esteganografia, alguns usam processos físico-químico,
como a tinta invisível, basta escrever com suco de limão sobre uma folha de papel branca,
para que a mensagem apareça basta colocar a folha em contato com uma fonte de calor.
Contudo esse método não é difícil de ser quebrado, isso é possível aplicando uma
análise probabilística de cada letra. No Brasil, por exemplo, a letra mais usada é a e a
menos usada é x, logicamente nem todos os textos tem a letra a em maior frequência,
como a frase: O impossível é inexistente, nela a letra a não aparece (COUTINHO, 2008).
Mesmo assim quebrar frases criptografadas com este método são mais simples,
mas às vezes pode dar muito trabalho. Observe a Figura 6 que mostra a distribuição de
frequência das letras no alfabeto Brasileiro de acordo com Almeida (2015):
3.1.4 Anagrama
É possível criptografar uma mensagem retirando os espaços entre as palavras e
embaralhando as letras (anagrama), ou trocar letras por números, é possível criar vários
métodos, quanto mais complexo o método for mais difícil será quebrá-lo (COUTINHO,
2008).
Também conhecida como cifra de transposição, é eficaz, pois caso a frase seja muito
grande torna-se quase impossível reorganizar sem que se tenha a regra, uma frase com n
letras têm n! modos de arranjo (lembrando que este caso é com n letras distintas, pois
quando há repetição o cálculo é outro), este tipo de criptografia é interessante para se
trabalhar contagem com os alunos.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
Tabela 3 – Tabela para Cifra de Blaise de Vigenère
Mensagem C i f r a d e B l a i s e
Palavra chave m a g i c a m a g i c a m
Mensagem o i l z c d o b r i k s q
Nas figuras 7, 8 e 9 é possível observar suas mensagens cifradas que ainda não
foram decifradas.
É possível encontrar vários documentos sobre este caso no site: [Link], em
Declassification and Transparency (NSA, 2016).
3.1.7 Braille
A linguagem Braille também é uma maneira de codificação, foi desenvolvido como
um método de escrita para que as pessoas com deficiência visual possam ler através do
sentido do tato. O criador foi Louis Braille, um francês que com três anos de idade perdeu
a visão após um ferimento no olho que infeccionou.
Esta linguagem consiste em um arranjo 3 × 2 de pontos, dispostos como uma pedra
de dominó:
De acordo com a localização do ponto ou pontos em auto relevo é possível deco-
dificar a mensagem, na figura 10, por exemplo, é representado a letra A, onde apenas
o primeiro ponto da primeira coluna é em relevo. Observe a Figura 10 (Disponível na
Apostila 10 - Atividades de contagem a partir da criptografia - do Programa de Iniciação
3.1. Tipos 57
Figura 7 – Cifra 1
Figura 8 – Cifra 2
58 Capítulo 3. Criptografia
Figura 9 – Cifra 3
Fixada uma letra maiúscula como índice, o disco deve ser ajustado e a frase cifrada,
podendo ser trocada a qualquer momento no texto se escrevendo uma nova letra maiúscula
cifrante, indicando ao destinatário que o disco deve ser movido novamente, os números
servem de nulos, ou seja, não tem significado prático na mensagem, são apenas para
confundir ou dificultar a quebra do código, eles também podem servir para uma nova
chave (indicando ao destinatário com antecendência qual deles significaria a nova chave),
este método acelerava o trabalho de criptografar ou descriptografar mensagens e reduzia
erros (SINGH, 2005).
No site [Link]
alberti é possível encontrar um aplicativo que cifra mensagens pelo método do Disco de
Alberti (TKOTZ, 2016).
fraram a Máquina enigma na Segunda Gerra Mundial. Foi adaptado de um livro Alan
Turing: The Enigma escrito por Andrew Hodges, sendo criado um site com notas do
autor: [Link] .
Contudo a vida de Alan Turing já havia sido parcialmente retratada no filme
Breaking the Code de 1996, dirigido por Herbert Wise, e no filme Codebreaker de Clare
Beavan e Nic Stacey, lançado em 2011.
O Data Encryption Standard (DES) foi criado pela International Business Machi-
nes (IBM) em 1977, permitia 72 quadrilhões de combinações (56 bits) e foi o algoritmo
simétrico mais difuso no mundo até que foi padronisado a AES.
A Advanced Encryption Standard (AES) veio a partir de 2001, aplicada nas cone-
xões de Wi-Fi, tem o tamanho de 128 bits, mas suas chaves variam de 128, 192 ou 256
bits, ficou popular por ser rápido, fácil de ser executado e ocupar pouca memória.
Ao se observar a história é possível ver que essa cifra surgiu com Francis Bacon,
filósofo do século XVI, contudo ao invéz de 0 e 1 ele utilizava as letras a e b, em um grupo
de 5 caracteres (5 bits) que foi publicada no livro VI, capítulo I do The Advancement of
Learning (ROSS, 1996).
3.2 RSA
O sistema mais usado e mais conhecido atualmente é o de criptografia RSA, que
segundo Coutinho (2011, p. 3):
3. Deve-se escolher um número e, que faz parte da chave Pública, de forma que o
máximo divisor comum (mdc) entre ele e φ(N) seja 1: (e, φ(N) ) = 1 e 1 < e < φ(N) .
5. De acordo com uma tabela pré formulada e de domínio público é feita a transforma-
ção de todos os caracteres da mensagem em números (nesta tabela todos os números
devem ter a mesma quantidade de dígitos), obtendo-se a mensagem numérica em
um único bloco que será dividida em blocos b, de forma que: 1 ≤ b < N. Isso garante
que ao utilizar congruência obtenha-se um único resultado na decodificação.
8. Cada bloco D(C(b)) deve ser colocado em sequência e de acordo com a mesma tabela
usada no ítem 5 os números devem ser convertidos em caracteres.
Exemplo 3. Neste exemplo será usado números primos menores, que facilitem o cálculo
com o uso de uma calculadora comum. Dado os primos p e q da forma 6n + 5, sendo
p = 11 e q = 17, pode-se obter N = 11 × 17 = 187 e φN = (11 − 1) × (17 − 1) = 160.
Dada a tabela abaixo:
A B C D E F G H I J
21 22 23 24 25 26 27 28 29 31
K L M N O P Q R S T
32 33 34 35 36 37 38 39 41 42
U V W X Y Z
43 44 45 46 47 48
0 1 2 3 4 5 6 7 8 9
49 51 52 53 54 55 56 57 58 59
O valor de e deve ser escolhido de modo que (e, φN ) = 1, deste modo será escolhido
o número 3 e d deverá seguir a congruência ed ≡ 1(modφN ), assim:
3d ≡ 1(mod160).
Como o valor de d não pode ser negativo e as soluções desta equação são: d =
−53 + 160t e k = −1 − 3t:
53
−53 + 160t > 0 ⇔ t > .
160
Substituindo t = 1 tem-se o menor valor possível para d que é 107. Deste modo
já tem-se a chave para Ciptografar (e, N) = (3, 187) e para Descriptografar (d, N) =
(107, 187).
A mensagem é “CHAVE”, primeiro é preciso transformar as letras em números
de acordo com a tabela, assim tem-se C= 23, H= 28, A= 21, V= 44 e E= 25. Ficando:
23 − 28 − 21 − 44 − 25.
3.2. RSA 65
A mensagem deve ser separada em blocos b de modo que cada bloco tenha números
menores que 187. Como os primos escolhidos são pequenos, os blocos também devem ser,
assim:
2328214425 = 2 − 32 − 82 − 14 − 42 − 5
Para codificar a mensagem usaremos a chave (3, 187) e a congruência be ≡ C(b) mod N:
8 − 43 − 92 − 126 − 36 − 125.
Como 107 é um número primo e usá-lo como expoente faz com que não seja possível
usar uma calculadora comum será usado algumas propriedades de congruência citadas na
Proposição 14.
Para decodificar o primeiro bloco: 8 deve-se usar:
e
1385 = 1382 × 1382 × 138 = 19044 × 19044 × 138,
então:
815 ≡ 1385 ≡ 1382 × 1382 × 138 mod 187
66 Capítulo 3. Criptografia
pois
19044 ≡ 157 mod 187.
Portanto
3401562 ≡ 32 mod 187
Ainda,
⇔ (815 )7 ≡ 327 ≡ 323 × 323 × 32 mod 187
Contudo com este método é gasto muito tempo e deve-se fazer muitos cálculos,
um modo mais fácil é usar o Teorema Chinês do Resto.
Assim como sabe-se que N = 187 = 11 × 17, pelo Teorema 2 tem-se que:
Desta forma:
810 ≡ 1 mod 11
e
816 ≡ 1 mod 17.
Assim:
(810 )10 ≡ 110 mod 11
8100 × 87 ≡ 1 × 87 ≡ 2 mod 11
8107 ≡ 2 mod 11
e
(816 )6 ≡ 16 mod 17
896 × 85 ≡ 1 × 85 mod 17
8101 ≡ 9 mod 17
3.2. RSA 67
8101 × 85 ≡ 9 × 85 ≡ 9 × 9 ≡ 13 mod 17
8106 × 8 ≡ 13 × 8 ≡ 2 mod 17
8107 ≡ 2 mod 17
Substituindo 8107 por x tem-se um sistema de congruências:
x ≡ 2 mod 11
x ≡ 2 mod 17.
Pelo Teorema Chinês do Resto:
M = 11 × 17 = 187
187
M1 = = 17
11
187
M2 = = 11.
17
Assim:
17y1 ≡ 1 mod 11
⇔ y1 = 2
e:
11y2 ≡ 1 mod 17
⇔ y2 = 14
X = 17 × 2 × 2 + 11 × 14 × 2 + t187
X = 376 + t187.
O menor valor de X no conjunto dos naturais para a equação é com t = −2, desta
forma X = 2.
Obtem-se assim o primeiro bloco decodificado. Para obter o segundo bloco decodi-
ficado o processo é o mesmo.
Repetindo o processo em todos os blocos será obtido a mensagem decodificada: 2 -
32 - 82 - 14 - 42 - 5. Como é conhecido a Tabela 7, basta reagrupar a mensagem e trocar
os números pelas letras voltando à mensagem “CHAVE”.
Exemplo 4. Para resolver este exemplo foi usado o software MAXIMA, que é livre e
gratuito, pois os cálculos necessários não são feitos por uma calculadora normal e à mão
levaria muito tempo.
Dado os primos p e q da forma 6n + 5, sendo p = 857 e q = 2207, pode-se obter
N = 857 × 2207 = 1891399 e φN = (857 − 1) × (2207 − 1) = 1888336.
68 Capítulo 3. Criptografia
ed ≡ 1(modφ(N) )
Substituindo, temos:
3 × d ≡ 1(mod1888336),
1888336 = 3 × 629445 + 1
⇔ 1888336 − 3 × 629445 = 1.
e a chave Privada
(d, N) ⇒ (1258891, 1891399).
3543342539494124493451355434493443352449
será dividida em blocos de três dígitos ficando: 354 - 334 - 253 - 949 - 412 - 449 - 345 -
135 - 543 - 449 - 344 - 335 - 244 - 9.
3.2. RSA 69
Bloco 354:
3543 ≡ 859687 mod(1891399.)
em que N = pq, φ(N) = (p − 1)(q − 1). Como b < N, D(C(b)) < N, para provar que a
criptografia RSA funciona é suficiente verificar que D(C(b)) ≡ b mod N se verifica. Pela
Proposição 14, quinto item e usando as equações (3.1) e (3.2), temos que:
ed = kφ(N) + 1.
Usando (3.4):
bkφ(N) +1 ≡ D(C(b)) mod N. (3.5)
Se p | b implica que
b ≡ 0 mod p,
então:
bed ≡ 0 mod p.
3.2. RSA 71
provando que
D(C(b)) ≡ b mod p.
o que implica
e
(b(q−1) )(p−1) ≡ 1(p−1) mod q. (3.9)
bφ(N) ≡ 1 mod pq
e logo
(bφ(N) )k b ≡ b mod N.
b ≡ D(C(b)) mod N.
3.2.3 Segurança
Para quebrar o código é preciso ter a chave de decodificação (d, N), acontece que
a chave pública (e, N) já fornece parte do que é preciso, a saber, o número N. Assim é
preciso apenas encontrar d e ter a mensagem em mãos.
O número N é igual ao produto de dois números primos p e q que foram escolhidos,
assim é preciso encontrar a fatoração de N para que p e q sejam achados e assim encontrar
φ( N) = (p − 1)(q − 1), para que resolva-se a congruência ed ≡ 1 mod φ( N), encontrando
d.
72 Capítulo 3. Criptografia
Parece simples, mas não é, na realidade é inviável já que não existe computadores
rápidos o suficientes, nem algoritmos tão bons que nos permitam fatorar um número
inteiro muito grande que não tenha fatores pequenos.
É preciso, neste caso, dar significado à palavra grande: o quão grande deve ser
N? O RSA Laboratory pertence à uma empresa que detém os direitos do sistema de
codificação RSA, já lançou desafios para a fatoração de possíveis chaves, uma delas com
193 algarismos foi finalizada no ano de 2005 por F. Bahr, M. Boehm, J. Franke e T.
Kleinjung no Escritório Federal de Segurança de Informação da Alemanha. Eles usaram
80 computadores de 2.2 GHz cada um, levando 5 meses para a tarefa.
Há chaves maiores, podendo chegar à 2467 algarismos.
De acordo com Garrett (2017) o novo Sunway TaihuLight é um supercomputador
da China, o mais poderoso do mundo com mais de dez milhões de núcleos de processa-
mento, sendo assim ele pode fazer 93 quatrilhões de cálculos por segundo, e tudo isso
fabricado na China.
Existe uma listagem destes supercomputadores onde China e Estados Unidos lide-
ram, com 167 e 165 computadores cada, respectivamente, no Brasil há 4 deles e o mais
poderoso está no 265 lugar.
73
CAPÍTULO
4
APLICAÇÕES DA CRIPTOGRAFIA RSA NO
PROGRAMA DE INICIAÇÃO CIENTÍFICA
OBMEP
A aula foi ministrada aos alunos do 10◦ Programa de Iniciação Científica Júnior
(PIC), Polo Passos - MG, da Olimpíada Brasileira de Matemática das Escolas Públicas
(OBMEP).
Nesta turma em particular todos os estudantes já haviam feito o curso pelo menos
uma vez anteriormente, assim a explicação da matéria podia ser mais aprofundada, pois
muitos conteúdos eles já haviam tido uma introdução.
A programação do Grupo 4 deste ano traz Criptografia e Teoria dos Números nos
três primeiros encontros, como mostra na figura 12.
Como a turma é misturada, todos os alunos participaram da explanação dos con-
teúdos programados para os dois grupos, o planejamento do grupo 3 também aborda
conhecimentos de Teoria dos Números, como é possível ver na figura 13.
A aula foi ministrada no encontro 6, depois de ter sido abordado todos os conteúdos
básicos para se compreender Criptografia RSA.
4.1 Planejamento
Primeiramente foi apresentado um resumo da história da criptografia com a cifra
de César, que é mais simples, para isso foi usada as apostilas 7: Criptografia de Severino
Collier Coutinho, a apostila 10: Atividades de contagem a partir da Criptografia de Pedro
Luiz Malagutti, disponíveis no site [Link]
Depois foi falado um pouco sobre os tópicos:
74 Capítulo 4. Aplicações da Criptografia RSA no Programa de Iniciação Científica OBMEP
2. O código morse;
4. e, um breve resumo dos outros tipos de criptografia ao longo da história que estão
presentes neste trabalho
Foi apresentado a criptografia RSA e um pouco de sua história, assim como onde
ela é usada (foi mostrado sites de bancos e de compras), o porque ela funciona, como ela
funciona e porque ela é segura, sendo feita as demostrações necessárias.
Foi discutido também as formas de se encontrar os números primos, onde foi apre-
sentado o site [Link] e os Problemas do Prémio Millennium
(Hipótese de Riemann).
4.2 A aplicação
O Exemplo 1 da Seção 2.2 foi feito passo-a-passo com os alunos. A turma então
foi dividida em duas equipes e para cada uma foi dada uma mensagem simples para que
eles decodifiquem. Com as respostas em mãos foi dada a elas uma segunda mensagem que
não pode ser resolvida apenas com calculadora (Exemplo 2), mas sim com algum software
como, por exemplo, o MAXIMA.
Nesta parte da aula os alunos discutiram a importância dos recursos eletrônicos
e foi apresentado o programa MAXIMA. Alguns deles cursam Técnico em Informática
integrado ao Ensino Médio no Institudo Federal do Sul de Minas (IFSul), então foi uma
conversa muito rica.
4.3 MAXIMA
O programa MAXIMA pode ser baixado gratuitamente, a versão usada foi a 5.30.0.
Existe um tutorial em [Link] É possível usá-lo como auxiliar na
criptografia RSA, além de outros campos como funções e matriz. Para mostrar como ele
é usado será mostrado a resolução do Exemplo 2.
Depois de escolhido os números primos, é possível encontrar o produto com o
comando: p ∗ q, conforme a figura 14, onde p e q são os números primos escolhidos, depois
é só dar enter ou a combinação de teclas [Shift][Enter].
É possível encontrar φN de forma parecida como na figura 15.
76 Capítulo 4. Aplicações da Criptografia RSA no Programa de Iniciação Científica OBMEP
Figura 14 – Encontrando N
Figura 15 – Encontrando φN
Para encontrar e temos que (e, φN ), por isso é possível usar o comando factor(a)
como na figura 16, onde a é o número a ser fatorado, para garantir que o mdc entre eles
seja 1 basta escolher um número primo que não pertença à fatoração de φN e seja menor
possível. Como os números primos usados são da forma 6k + 5 isso implica que φN nunca
será divisível por 3.
Figura 16 – Fatoração de φN
Figura 17 – Encontrando d
Para potência é usado ,̂ por exemplo: 105 ficaria “10∧ 5”. O comando mod(m, n) dá
o resto da divisão de m por n, o que é preciso nas congruências usadas.
Assim ao se utilizar as formulas be ≡ C(b)mod N e [C(b)]d ≡ D(C(b)) mod N, basta
colocar o comando mod (be , N) e terá o resultado C(b) como nas figuras 18 e 19, o comando
mod ([C(b)]d , N) obtendo D(C(b)) como nas figuras 20 e 21.
4.4 Resultados
Primeiramente foi feita a separação dos dois grupos para o desafio final, ficando
cada grupo com 10 alunos. Durante a explanação da história da criptografia, foram feitas
muitas observações interessantes por parte dos alunos, como: as maneiras de se interceptar
a mensagem, as dificuldades que podiam ser encontradas na decifração, como deixar um
código simples mais difícil de ser quebrado, dentre outros, funcionando como uma mesa
redonda.
Alguns alunos mostraram que já tinham um código próprio para comunicação
com amigos, assim foram desafiados a construirem um código único e simples baseado no
de César e depois trocar uma mensagem criptografada com este código, foi dado quinze
minutos para que eles tentassem quebrar o código, sem nenhum exito, então eles pediram
mais tempo e com trinta minutos decorridos um grupo já havia quebrado o código.
Quatro dos alunos que fazem o curso também fazem técnico em informática, assim
a discussão sobre códigos binários e programas computacionais foi muito aprofundada, um
dos alunos mostrou um programa simples que ele havia criado para cálculo de números
primos.
Alguns tópicos que foram introduzidos pelos alunos:
1. O assassino em série Zodiaco que escreveu cartas codificadas, onde algumas não
foram decifradas até hoje.
2. Cicada 3301, um desafio que surgiu em um site com vários enigmas e códigos a
serem decifrados.
80 Capítulo 4. Aplicações da Criptografia RSA no Programa de Iniciação Científica OBMEP
3. 11B x 1371, um vídeo onde aparecem mensagens para serem decodificadas, incluindo
algumas em código morse.
4. criptografia quântica.
O fato desta aplicação ter sido em um programa de iniciação científica próprio para
alunos que gostam de matemática não significa que ela não possa ser aplicada na sala de
aula, afinal não é preciso explanar cada teorema com os alunos, porque a criptografia RSA
usa restos de divisões (congruência) e potênciação.
81
REFERÊNCIAS
KAHN, D. The codebreakers: The story of Secret Writing. New York: Scribner,
1996. Citado na página 51.
NSA, N. S. A. Has The Beale Treasure Code Been Solved. 2015. Dis-
ponível em: <[Link]
assets/files/[Link]>. Citado na página 55.
OEIS. Brier numbers: numbers that are both Riesel and Sierpinski, or odd
n such that for all k >= 1 the numbers n × 2k + 1 and n × 2k − 1 are compo-
site. [Link] [s.n.], 2016. Disponível em: <[Link]
Citado na página 45.
SINGH, S. O livro dos códigos. Rio de Janeiro: Record, 2005. Citado 3 vezes nas
páginas 50, 51 e 60.
APÊNDICE
A
PROPRIEDADE ARQUIMEDIANA
Proposição 18. (A Propriedade Arquimediana). Dados números reais 0 < a < b, existe
um número natural n tal que b < na.
APÊNDICE
B
OS PROBLEMAS DO PRÊMIO MILLENNIUM
1. P versus NP;
2. A conjectura de Hodge;
4. A hipótese de Riemann;
1 1 1
ζ (1) = 1 + + + + ... (B.1)
2 3 4
e
1 1 1
ζ (2) = 1 + 2
+ 2 + 2 + ..., (B.2)
2 3 4
que são importantes para a hipótese de Riemann.
No livro é demonstrado que a primeira série é divergente, levantando o problema:
qual é a soma da segunda?
O problema foi proposto depois por Jacob Bernoulli, sendo intitulado na época
como problema de Basileia, que alguns anos após este questionamento iniciou a estudar
séries como:
1 1 1
ζ (n) = 1 + n
+ n + n + ... (B.3)
2 3 4
para cada n ∈ N \ 1. 1
Euler provou que ζ (2) = π6 e calculou ζ (n) para cada número natural par n, para
2
B.2 P versus NP
É um problema ligado à Ciências da Computação, entrelaçando campos desde a
engenharia até a criptografia.
De acordo com Malagutti (2017):
B.3 Curiosidades
Estes problemas já apareceram em alguns seriados famosos, como NUMB3RS,
produzido pela rede americana CBS, seriado estrelado em 2005 onde um matemático ajuda
agentes do FBI a solucionar crimes. Foi produzido somente seis temporadas, representando
a matemática e como ela pode ser aplicada.
Em sua primeira temporada, no episódio 5, a filha de um matemático que supos-
tamente havia resolvido a hipótese de Riemann é sequestrada, abordando assim os temas:
criptografia, a Hipótese de Riemann e as consequências de sua solução, assim como os pro-
blemas do Millennium. Para amantes de números é um seriado interessante, explorando
vários campos da matenática.
Também apareceu em Elementary, também produzido pela rede americana CBS,
iniciada em 2012 ela representa uma nova versão de Sherlock Holmes, criado por Arthur
Conan Doyle, contudo desta vez as histórias se passam nos Estados Unidos. Possui até o
momento cinco temporadas.
A criptografia aparece no episódio 2 (Solve for X) da segunda temporada, onde
o episódio começa com a morte de um matemático, abordando o problema P versus NP,
criptografia, suas implicações para a comunidade científica.
Sherlock é outro seriado baseado no detetive criado por Sir Arthur Conan Doyle,
sendo uma co-produção da British Broadcasting Corporation (BBC), a segunda tempo-
rada tem em seu primeiro episódio uma mensagem aparentemente indecifrável, contudo
Holmes a decifra em oito segundos.
No seriado Bones, exibido pela FOX nos Estados Unidos, a criptografia é abordada
na sétima temporada, episódio 6, onde é preciso decifrar vários códigos deixados por um
B.3. Curiosidades 91
assassino em série.
Já no seriado Hawaii Five-0 o tema é abordado na primeira temporada, episódio
19, onde falam sobre a facilidade em quebrar uma criptografia de 64 bits e novamente
na terceira temporada, episódio 7, onde eles lidam com hackers e precisam de uma senha
para quebrar uma criptografia de 1024 bits (que levaria meses para ser quebrada e era
preciso urgentemente), além de outros.
No seriado Prison Break, segunda temporada, episódio 15, um dos protagonistas
precisa enviar uma mensagem, então ele codifica-a para que só seu destinatário compre-
enda, além disso é abordado o código morse.
O livro Zodíaco escrito por Robert Graysmith, aborda sobre um serial killer que
aterrorizou a cidade de São Francisco em 1968, deixou várias cartas codificadas, algumas
não foram decodificadas até hoje, a revista Mundo Estranho traz uma reportagem sobre
isso: [Link]
Um filme também foi feito: Zodíaco, lançado em 2007 com direção de David Fincher.
Os clássicos livros sobre o investigador Sherlock Holmes e seu parceiro Watson,
escrito por Arthur Conan Doyle, também trazem o tema, no livro O vale do Terror os
investigadores são chamados à uma casa de campo através de uma mensagem codificada. O
investigador Holmes adora quebra-cabeças, outra mensagem assim aparece em O regresso
de Sherlock Holmes.
A revista Super Interessante fez uma reportagem em 31/10/2016 intitulada O
segredo da criptografia, é possível acessá-la em [Link]
segredo-da-criptografia/, que traz algumas curiosidades sobre o tema. Em abril de 2016 foi
udado 9500 computadores e quatro meses para quebrar um código, mostrando o quanto
um bom código é importante para que seja possível guardar um segredo ou algo impor-
tante através da criptografia.