Criptografia RSA
Curitiba
2018
Alessandro André de Sousa
Criptografia RSA
Curitiba
2018
Alessandro André de Sousa
Criptografia RSA/ Alessandro André de Sousa. – Curitiba, 2018-
30 p. : il. (algumas color.) ; 30 cm.
Criptografia RSA
Professor
Convidado 1
Professor
Convidado 2
Curitiba
2018
Este trabalho é dedicado às crianças adultas que,
quando pequenas, sonharam em se tornar cientistas.
Agradecimentos
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum
ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero,
nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis
egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna
fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est,
iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum.
Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Curabitur
auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue eu, accumsan
eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum.
A cobra vai fumar
(FEB, 1944)
Resumo
Segundo a ??, 3.1-3.2), o resumo deve ressaltar o objetivo, o método, os resultados e
as conclusões do documento. A ordem e a extensão destes itens dependem do tipo
de resumo (informativo ou indicativo) e do tratamento que cada item recebe no
documento original. O resumo deve ser precedido da referência do documento, com
exceção do resumo inserido no próprio documento. (. . . ) As palavras-chave devem
figurar logo abaixo do resumo, antecedidas da expressão Palavras-chave:, separadas
entre si por ponto e finalizadas também por ponto.
Λ Lambda
∈ Pertence
Sumário
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 HISTÓRIA DA CRIPTOGRAFIA . . . . . . . . . . . . . . . . . . . . . 16
2.1 CIFRA DE VIGENÈRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 A MÁQUINA ENIGMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 DESVENDANDO A ENIGMA . . . . . . . . . . . . . . . . . . . . . . . . 22
3 HISTÓRIA CRIPTOGRAFIA RSA . . . . . . . . . . . . . . . . . . . . 23
4 DIVISORES E MÚLTIPLOS . . . . . . . . . . . . . . . . . . . . . . . 24
5 ALGORITMO DE DIVISÃO EUCLIDIANO . . . . . . . . . . . . . . . 24
6 MÁXIMO DIVISOR COMUM EUCLIDIANO (MDC) . . . . . . . . . 25
6.1 ALGORÍTIMO MDC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7 ALGORITMO ESTENDIDO DIVISÃO EUCLIDIANA . . . . . . . . . 27
8 NÚMEROS PRIMOS E COMPOSTOS . . . . . . . . . . . . . . . . . 28
9 ARITMÉTICA MODULAR . . . . . . . . . . . . . . . . . . . . . . . . 28
9.1 CONGRUÊNCIA MODULAR . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.1.1 Propriedades da Congruência Modular . . . . . . . . . . . . . . . . . . . . . 30
9.1.2 Adição e Multiplicação na Congruência Modular . . . . . . . . . . . . . . . . 30
15
1 INTRODUÇÃO
Desde a antiguidade a humanidade tem necessidade de esconder informações rele-
vantes, seja ela de cunho político, social, econômico e entre outras. Os primeiros relatos de
uso de criptografia vêm lá do período entre 100-44 a. C. A indícios de que o general romano
Júlio Cesar tenha usado um código secreto, que tinha o papel de esconder a verdadeira
mensagem da seguinte forma: trocando uma letra do alfabeto por outra. Dessa forma o
general conseguiu se comunicar com o seu exército que estava em guerra espalhado pela
Europa.
Com a evolução das ciências, principalmente a matemática, esses códigos foram
sendo “quebrados” (quebrar um código consiste em conseguir ler sem ser o destinatário),
esse código de Júlio Cesar é facilmente decifrado, pois está sujeito a uma contagem de
frequência, com que cada letra aparece, em determinado idioma.
Por necessidade de comunicação com confidencialidade, começa-se a estudar novos
métodos de criptografias com o passar dos anos, surgindo um duelo entre os criptógrafos e
os criptoanalistas (pessoas que estudar como decifrar o código e ler a mensagem).
Vários métodos de criptografia foram inventados durante os séculos, porem as cifras
polialfabéticas foram as mais utilizadas, ela se parece em muito com a de Júlio Cesar,
todavia ela não faz apenas uma troca de letras e sim varias. Esse método foi a base da
criptografia utilizada pelos alemães durante a segunda guerra mundial, em uma máquina
eletromecânica que foi batizada de Enigma. Na década de 1940 os inimigos da Alemanha
na guerra, juntaram esforços para quebrar o código usados por eles, e assim obter vantagem
na guerra, então que surge um matemático britânico chamado Alan Turing que consegue
finalmente decifrar os códigos.
Já se falou que a Primeira Guerra Mundial foi a guerra dos químicos, devido ao
emprego, pela primeira vez, do gás mostarda e do cloro, que a Segunda Guerra Mundial
foi a guerra dos físicos devido à bomba atômica. De modo semelhante se fala que uma
Terceira Guerra Mundial seria a guerra dos matemáticos, pois os matemáticos terão o
controle sobre a próxima grande arma de guerra, a informação. Os matemáticos têm sido
responsáveis pelo desenvolvimento dos códigos usados atualmente para a proteção das
informações militares. E não nos surpreende que os matemáticos também estejam na linha
de frente da batalha para tentar decifrar esses códigos.(SINGH, 2007, p.13)
Na atualidade a matemática vem tendo papel fundamental no sistema de criptografa,
e os criptógrafos vem se mantendo a frente da disputa com os criptoanalista. Com a
descoberta de como decifrar o código usado pelos nazistas, os matemáticos foram em
buscas de novos métodos, até que na década de 1970 surge a criptografia mais utilizada
em todo o mundo na atualidade a RSA.
A criptografia RSA é utilizada nos meios que exigem forte segurança, por exemplo,
um banco que faz transações de milhões de reais por dia, em trocas de informações
16
confidencias entre autoridades, no sistema militar. Ela baseia-se em uma área da matemática
que chamamos de teoria dos números e tem sua fundamentação em uma área muito
especifica deste ramo, que é o estudo dos números primos.
Os números primos são aqueles positivos e que só podem ser divididos por 1 e
por ele mesmo, apesar de muito esforço de vários matemáticos em encontrar uma forma
de verificar se um numero é primo de maneira rápida e eficaz, isso ainda não é possível,
essa verificação ainda é feita executando a divisão do suposto primo por todos os outros
números menores que ele até 1, se contatarmos que ele só é difícil por 1 e ele mesmo, então
ele é primo. Porem esse é o grande problema, quando pegamos um número suficientemente
grande demoramos muito tempo para descobrir se ele realmente é um número primos. Por
exemplo, recentemente foi descoberto um número primo que tem aproximadamente 22
milhões de dígitos, que pode ser obtido resolvendo a potência 274207281−1 , para isso foi
usado um computador de última geração que ficou ligado durante 31 dias ininterruptos
executando os cálculos citado acima, esse número ganhou o nome de M74207281, e se fosse
para ser impresso em folha de papel, gastaria mais de 5000.
2 HISTÓRIA DA CRIPTOGRAFIA
A estenografia é a “mãe” da criptografia, na antiguidade essa técnica era utilizada
para enviar mensagem sem que os inimigos pudessem descobri-la, essa consiste em esconder
a mensagem propriamente dita, porém, se fosse encontrada esta poderia ser lida. Diferente
da criptografia, que não se preocupa em esconde-la, e sim, escrevê-la de algum modo que
mesmo que o inimigo a intercepte, não poderá ler. A relatos no livro “as histórias” que
Histaeu levou uma mensagem para os persas, para isso ele raspou o cabelo e escreveu a
mensagem em seu couro cabelo e depois deixou crescer novamente, assim pode entrar no
reino persa sem problemas e transmitir mensagens.
Porem esse método de estenografia tinha muitos problemas práticos, eles demoravam
muito, observe o caso supracitado, há uma diferença de tempo grande para cortar e esperar
crescer novamente o cabelo, assim talvez quando a mensagem chegar ao destinatário ela
não tenha mais validade, além disso se a mensagem for descoberta ela pode ser lida por
qualquer pessoa.
Por esses problemas práticos surge então a criptografia, que ao invés de esconder a
mensagem ela torna inelegível para as pessoas que não são os destinatários. Com a criação
da criptografia surge também outra ciência chamada de criptoanálise, que busca descobrir
o que está escrito nas mensagens criptografadas.
Uma das primeiras criptografias vista na história, vem do imperador romano Júlio
César, que viveu entre os anos 100-44 a.C., há relatos que ele tenha usado uma técnica de
criptografia que hoje chamamos “Cifra de substituição monoalfabética”, para se comunicar
com o exército romano em batalha pela Europa.
17
O código de cifras consiste em trocar uma trocar uma letra do alfabeto por outra,
por exemplo, A troca por H, B troca por C e assim por diante. Era comum apenas deslocar
o alfabeto, para direita ou para a esquerda em algumas unidades (tabela 1), no exemplo,
o alfabeto foi deslocado para a esquerda em 13 unidades, desta maneira A passa a receber
o valor N, B o valor O, C o valor P e assim suscetivelmente até completar o alfabeto. Este
exemplo hoje em dia recebe o nome de criptografia ROT13.
O grande avanço neste método acontece porque ele é imune a contagem de frequên-
cia das letras em seus determinados idiomas, outro ponto interessante é o número de
combinações possíveis, impedindo a viabilidade de testar todas as chaves possíveis por parte
dos criptoanalistas. Com o passar dos anos esse método se difundiu como um dos melhores
métodos utilizado para enviar e receber informações importante que não poderiam ser
lidas por terceiros, com isso ele passou a ser usado em nas guerras para levar informações.
Durante a década de 1920 os alemães criaram uma máquina eletromecânica, auto-
matizada, que utilizava como base a Cifra de Vigenèr, que ficou conhecida como ENIGMA,
logo ela passou a ser a máquina mais usada pelos comerciantes, tendo seu auge na história
durante a segunda guerra mundial, pois era com uma versão da ENIGMA que os exércitos
nazistas trocavam informações.
cifra utilizada pelos alemães na troca de informação durante a segunda guerra mundial.
Cada máquina possui em torno de 3 ou 4 rotores (Figura 5), esses rotores, responsá-
veis por cifrar a mensagem. Os rotores eram discos que possuíam 26 terminais elétricos de
entrada e saída. OS terminais de entrada eram numerados de 1 a 26, que representavam
as letras de A até Z, de forma que 1 ←→ A,2 ←→ B,. . . ,26 ←→ Z, a parte interna dos
rotores possuíam um permutador de texto que embaralhava o que era digitado e envia
para os 26 terminais de saída, isso acontecia também nos ostros rotores. Os refractor eram
responsáveis por mandar a informação de volta para os rotores e repetir este processo, isso
garantia que uma letra não seria cifrada nela mesmo. (Figura 6)
21
Figura 5 – Rotores
Nullam cursus pulvinar lectus. Donec et mi. Nam vulputate metus eu enim. Vestibulum
pellentesque felis eu massa.
4 DIVISORES E MÚLTIPLOS
Dizemos que um inteiro b divide a se existe um inteiro c, tal que podemos escrever
a = b · c. Então dizemos também que b é um divisor de a, ou podemos dizer que a é
múltiplo de b.
Propriedades dos múltiplos: sejam a,b,c e d números inteiros:
1. d divide 0.
demonstração: Essa propriedade é trivial, pois 0 = 0 · d. De modo que zero é múltiplo
de todos os números.
a = b · q + r, onde 0 ≤ r < b
25
Fonte: O autor
Teorema 1 (Divisão Euclidiana). Sejam dois inteiros positivo a, b. Existem inteiros únicos
q e r tais que:
a = q · b + r, onde 0 ≤ r < b;
a = b · q + r, 0 ≤ r < b; (1)
a = b · q 1 + r1 , 0 ≤ r < b; (2)
ou seja,
q − q 1 = 0 → q = q 1 ; r = r1 (6)
2. n|b.
a = d1 · u ; b = d1 · v (2)
s = d1 · (u − v · g) (3)
Com o teorema mdc podemos demostrar o teorema do resto que prova que o
algoritmo mdc funciona.
a = b · q1 + r1 ; 0 ≤ r1 < b (1)
b = r1 · q2 + r2 ; 0 ≤ r2 < r1 (2)
r1 = r2 · q3 + r3 ; 0 ≤ r3 < r2 (3)
.. ..
. .
Do algoritmo podemos concluir que rn−1 divide rn−2 , logo o máximo divisor comum
entre eles é o próprio rn−1 . Então aplicando o TEOREMA MÁXIMO DIVISOR COMUM
EUCLIDES (Teorema 2) sucessivamente temos que mdc(a, b) = rn−1 . # [referencia]
Nulla malesuada porttitor diam. Donec felis erat, congue non, volutpat at, tincidunt
tristique, libero. Vivamus viverra fermentum felis. Donec nonummy pellentesque ante.
Phasellus adipiscing semper elit. Proin fermentum massa ac quam. Sed diam turpis,
molestie vitae, placerat a, molestie nec, leo. Maecenas lacinia. Nam ipsum ligula, eleifend
at, accumsan nec, suscipit a, ipsum. Morbi blandit ligula feugiat magna. Nunc eleifend
consequat lorem. Sed lacinia nulla vitae enim. Pellentesque tincidunt purus vel magna.
Integer non enim. Praesent euismod nunc eu purus. Donec bibendum quam in tellus.
Nullam cursus pulvinar lectus. Donec et mi. Nam vulputate metus eu enim. Vestibulum
pellentesque felis eu massa.
Quisque ullamcorper placerat ipsum. Cras nibh. Morbi vel justo vitae lacus tincidunt
ultrices. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In hac habitasse platea
dictumst. Integer tempus convallis augue. Etiam facilisis. Nunc elementum fermentum wisi.
Aenean placerat. Ut imperdiet, enim sed gravida sollicitudin, felis odio placerat quam, ac
pulvinar elit purus eget enim. Nunc vitae tortor. Proin tempus nibh sit amet nisl. Vivamus
quis tortor vitae risus porta vehicula.
9 ARITMÉTICA MODULAR
A aritmética modular e a área da matemática que trata de fenômenos periódicos,
ou seja, que se repetem constantemente em um determinado intervalo. Intuitivamente
pode parecer que esses eventos não acontecem constantemente no nosso dia a dia, porem
estamos muito enganados quanto a isso, eles estão constantemente em nossa vida, um
exemplo é nosso calendário, ele é baseado em repetições, são 365 dias em um ano, depois
disse inicia-se novamente a contagem, os dias da semana também funcionam da mesma
maneira.
A soma modular, nós estamos efetuando constantemente durante os dias, sem nem
perceber, quando somamos as horas, por exemplo, se saímos de São Paulo as 21:00 horas
e vamos para Paris na França, sabendo que a viagem dura em torno de 12:00 horas, que
horas chegaremos ao destino? É de senso comum as pessoas responderam as 9:00 horas de
manhã, e isso é um cálculo soma modular, pois e não fosse, teríamos que responder as
33:horas, porem esse horário não existe em um dia.
29
Nossa mente está tão acostumada fazer esses cálculos com as horas que nem sabemos
como ele acontece, na verdade é bem simples, o dia tem 24 horas, ao somar a hora de
saída com o tempo que leva, obtemos 33:00 horas, mas como supracitado o dia só tem 24
horas, e agora? Dividimos por 24 horas e pegamos o resto da divisão, que vai ser a hora
correspondente que a pessoa vai chegar ao destino.
Quando fazemos esse teste com números pequenos parece trivial saber que horas
que a pessoa vai chegar, chagamos até a duvidar que nosso cérebro faz toda essa conta
intuitivamente. Agora vamos supor que um navegador resolve fazer uma volta ao mundo
e levara 518 horas para concluir, sabendo que ela saiu de seu destino as 15:00 horas de
tarde. A que horas ela vai terminar a volta ao mundo? Agora não parece intuitivo saber, e
nosso cérebro já não consegue saber automaticamente qual o horário, e precisamos então
executar as contas:
15 + 518 = 533
533 ÷ 24 = 22 com resto 5
a=b·q+r
533 = 24 · 22 + 5
agora podemos afirmar que o navegador vai terminar a volta ao mundo as 5 horas da
mana, 22 dias após a sua saída.
A aritmética modular estuda os fenômenos que acontecem nessas situações de
periodicidade quando multiplicamos, dividimos e fazemos outras operações matemática.
Um outro exemplo, importante para o estudo da criptografia é dos restos da divisão
euclidiana que também comportam de maneira periódica, montando uma sequência, de 1
a 9 e sempre dividindo por 3. Obtemos:
a = b · q + r ;0 ≤ r < b
então podemos concluir por que o resto sera no máximo dois no exemplo acima, pois o
resto segundo a divisão euclidiana deve ser sempre menor que b que nesse caso vale 3,
30
então podemos dizer que o período ou modulo, como é usado normalmente na matemática
dos restos vai ser sempre igual a b, e nesse caso então, temos período igual a 3, pois os
números se repetem de 3 em 3 vezes.
a ≡ b (mod n)
Exemplo:
5 ≡ 8 (mod 3)
a 6≡ b (mod 3)
Por exemplo:
4 6≡ 9 (mod 3)
nesse caso temos que 4 não é congruente a 9 modulo 3, pois os dois deixam restos diferentes
para a divisão por 3. ]