Você está na página 1de 16

MA14 - Aritmética

Unidade 24
Resumo

Introdução à Criptografia

Abramo Hefez

PROFMAT - SBM
Aviso

Este material é apenas um resumo de parte do conteúdo da


disciplina e o seu estudo não garante o domı́nio do assunto.

O material completo a ser estudado encontra-se no

Capı́tulo 13 - Seções 13.2 e 13.3

do livro texto da disciplina:

Aritmética, A. Hefez, Coleção PROFMAT.

Colaborou na elaboração desses resumos Maria Lúcia T. Villela.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 2/16


O Advento dos Computadores
A chegada dos telégrafos e finalmente dos computadores
revolucionaram a Teoria da Informação. Como os computadores
utilizam códigos binários, foi preciso transformar todas as
informações nesse código. Assim, nasce o American Standard Code
for Information Interchange, abreviado por ASCII e significando
Código Padrão Americano para o Intercâmbio de Informação.
Essa codificação, desenvolvida a partir de 1960, não é um método
de cifragem, ela é apenas uma tradução à linguagem binária dos
sı́mbolos mais corriqueiros. Ela atribui significados especı́ficos aos
27 = 128 números binários (formados por 0 e 1) de 7 dı́gitos.
Um grande desafio para a computação é a questão da privacidade
na troca de informações e na uniformização dos padrões.
Estabelecido o código ASCII, após intensa busca, em 1973, o
National Bureau of Standards, órgão governamental americano,
escolheu o sistema criptográfico Data Encryption Standard (DES),
desenvolvido pela IBM, para ser o sistema oficial americano.
PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 3/16
Este sistema, utilizado até 1999, funcionava com uma distribuição
de chaves simétricas. Ou seja, um número (a chave) é acertado
entre duas partes para definir os parâmetros da função cifragem
que é a mesma para a decifragem.
Como o segredo das mensagens é garantido através da manutenção
do segredo das chaves, isto criou um enorme problema logı́stico de
distribuição de chaves, uma verdadeira “operação de guerra”.
Hoje em dia são utilizados outros sistemas como o AES ou
Skipjack.
Coube a três norte americanos, Whitfield Driffie, Martin Hellman e
Ralph Merkle, resolver o problema da troca de chaves entre
correspondentes.
É aı́ que começa a entrar no campo da criptografia, timidamente,
mas de modo irreversı́vel, a Teoria dos Números através da noção
de congruências.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 4/16


A ideia da trinca americana
João e Maria querem trocar entre si uma chave secreta por um
meio de comunicação insegura, como, por exemplo, por telefone.
Eles escolhem em comum acordo um par de números naturais
a e m e os tornam públicos.
João escolhe um outro número natural αJ e o mantém secreto.
Com ele, calcula o único número βJ < m tal que
aαJ ≡ βJ mod m e o envia para Maria.
Maria escolhe um número natural αM , mantendo-o secreto,
e com ele calcula o único número βM < m tal que
aαM ≡ βM mod m e o envia para João.
αJ
Em seguida, João calcula βM , obtendo
αJ
βM ≡ (aαM )αJ ≡ aαM αJ ≡ α mod m, com α < m.
Por sua vez, Maria calcula βJαM , obtendo
βJαM ≡ (aαJ )αM ≡ aαJ αM ≡ α mod m, com α < m.
PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 5/16
Pronto! Está trocada a chave secreta α entre João e Maria.
Portanto,
são públicas as informações a, m, βJ e βM e
são secretas as informações:

αJ , que somente João conhece,

αM , que somente Maria conhece, e

α, que apenas João e Maria conhecem.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 6/16


Exemplo
Suponhamos que João e Maria tenham escolhido de comum
acordo a = 52 e m = 271.
Por outro lado, João escolhe a sua chave secreta αJ = 7, enquanto
Maria escolhe αM = 5.
Vejamos qual é a chave secreta α que ambos compartilharão.
João faz o seguinte cálculo para determinar βJ e enviá-lo a Maria:
522 ≡ 2704 ≡ 265 mod 271,
524 ≡ 2652 ≡ 36 mod 271,
527 = 524 × 522 × 52 ≡ 36 × 265 × 52 ≡ 150 mod 271.
Logo, βJ = 150.
Maria faz a seguinte conta para determinar βM e enviá-lo a João:
525 = 524 × 52 ≡ 36 × 52 ≡ 246 mod 271.
Logo, βM = 246.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 7/16


Exemplo - Continuação

Qual a chave secreta α, sabendo que βM = 246 e βJ = 150?


αJ
Para determinar a chave α, João tem que reduzir βM = 2467
módulo 271. Logo,
2462 = 60 516 ≡ 83 mod 271,
2464 = 2462 × 2462 ≡ 83 × 83 ≡ 114 mod 271,
2467 = 2464 × 2462 × 246 ≡ 114 × 83 × 246 ≡ 33 mod 271.
João encontra então α = 33.
Agora é a vez de Maria calcular o resı́duo de βJαM = 1505 módulo
271. Mas,
1502 = 22500 ≡ 7 mod 271,
1505 = 1502 × 1502 × 150 = 7 × 7 × 150 ≡ 33 mod 271,
encontrando também, como era de se esperar, α = 33.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 8/16


O sucesso deste método reside no fato de ser difı́cil descobrir
qualquer dos três números αJ , αM ou α, conhecendo apenas os
dados públicos a, m, βJ e βM .
Este sistema denominado DHM, em homenagem aos seus
inventores, foi o primeiro passo na direção da solução do problema
da distribuição de chaves.
O sistema, porém, tem um grande defeito, pois serve apenas para
a troca de chaves secretas entre dois indivı́duos de cada vez e isso
em um mundo globalizado é totalmente insatisfatório.
Ocorreu então a Driffie a ideia de considerar sistemas com chaves
assimétricas, ou seja, cada usuário teria duas chaves, uma pública
para cifragem e outra privada para decifrar as mensagens
recebidas.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 9/16


A cifragem deve ser um processo fácil de fazer usando a chave
pública, enquanto que a decifragem deveria ser quase impossı́vel de
se fazer sem a chave secreta.
Assim, se João quer enviar uma mensagem para Maria, ele usaria a
chave pública de Maria para cifrar a mensagem que ninguém em
princı́pio, exceto Maria, conseguiria decifrar, pois é a única a
possuir a chave secreta para tal.
Driffie não conseguiu implementar a sua ideia na prática, mas a
publicou para que outros pudessem resolver o problema.
Foram Ronald Rivest, Adi Shamir e Leonard Adleman, do
Laboratório de Ciência da Informação do Massachusetts Institute
of Technology (MIT), que deram em 1978 o passo decisivo para a
implementação do primeiro sistema criptográfico com chaves
assimétricas, idealizado por Driffie.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 10/16


A Grande Revolução: O Sistema RSA
O princı́pio baseia-se na relativa facilidade em encontrar números
primos grandes e ao mesmo tempo na enorme dificuldade prática
em fatorar o produto de dois tais números, além do uso de
propriedades relativamente elementares da Teoria dos Números,
como a variante do Teorema de Euler dada na Proposição 10.9
Vamos aos detalhes matemáticos dessa descoberta. Recordando,
estamos à procura de um sistema criptográfico com duas chaves,
uma pública e outra privada para que qualquer pessoa possa cifrar
uma mensagem previamente codificada em ASCII e somente o seu
legı́timo destinatário possa decifrá-la.
Suponhamos, então, que João queira criar um sistema
criptográfico em que qualquer pessoa possa lhe enviar uma
mensagem cifrada segundo uma chave pública e que ele e somente
ele possa decifrá-la com a sua chave secreta.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 11/16


João escolhe dois números primos distintos p e q muito grandes e
efetua o seu produto m = pq.
Note que é fácil calcular o número m, mas é extremamente difı́cil e
computacionalmente muito demorado desfazer esta operação, ou
seja, fatorar m.
Em seguida, João escolhe um par de números α e β tais que

αβ ≡ 1 mod ϕ(m).

Note que obrigatoriamente (α, ϕ(m)) = (β, ϕ(m)) = 1.


Ele pode escolher inicialmente α tal que (α, ϕ(m)) = 1 e em
seguida resolver a congruência αX ≡ 1 mod ϕ(m).
João então torna públicos os números m e β, que são a chave
pública.
A chave secreta de João são os primos p e q, os números
ϕ(m) = (p − 1)(q − 1) e α.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 12/16


Dado um número x < m, que pode ser a representação decimal
de um sı́mbolo ASCII, ou de uma sequência de sı́mbolos ASCII,
vistos como um número na base 2, a codificação feita por Maria ou
por qualquer outra pessoa que conheça a chave pública de João
(m, β), pode cifrar x como segue:
Maria acha o único C (x) < m tal que

x β ≡ C (x) mod m.

Maria então envia C (x) para João.


João ao receber C (x) usa a sua chave privada α para achar o
número D(C (x)) < m tal que

C (x)α ≡ D(C (x)) mod m.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 13/16


Note que somente João consegue determinar D(C (x)), pois só ele
detém a chave α. Mas, D(C (x)) = x, pois existe k ∈ N tal que
αβ = 1 + kϕ(m) e, pela Proposição 10.9,
temos que

D(C (x)) ≡ C (x)α ≡ (x β )α = x αβ = x kϕ(m)+1 ≡ x mod m,

e ambos D(C (x)) e x são menores do que m.


Como funciona? O leitor atento poderia objetar com razão que se
Maria apenas cifrasse cada número correspondente a um sı́mbolo
na codificação ASCII, a quebra do sistema seria imediata, pois
qualquer pessoa poderia calcular os C (x) ao variar x na tabela do
código ASCII e com a correspondência (em geral não biunı́voca)
x 7→ C (x) poderia com uma análise de frequência na mensagem
cifrada descobrir os x a partir de suas imagens C (x).

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 14/16


Esta fragilidade é resolvida do seguinte modo: Maria primeiro
traduz a mensagem para o código ASCII escrevendo a mensagem
traduzida de modo corrido, utilizando a sequência 0100000 para
representar o espaço entre palavras.
Obtém-se assim uma longa sequência de 0 e 1.
Corta-se então esta longa sequência em uma sucessão x1 , x2 , . . . xr
de sequências de comprimentos arbitrários e variáveis, nenhuma
iniciando com 0 e de modo que o número na base 2 representado
por cada xi seja menor do m.
A restrição de xi não iniciar com zero é para poder recuperar uma
sequência a partir do número que ela representa e de cada xi ser
menor do que m é para garantir que ele não se altera quando
reduzido mod m.
Em seguida, Maria calcula C (x1 ), C (x2 ), . . ., C (xr ) e os envia para
João.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 15/16


Por sua vez, João calcula D(C (x1 )) = x1 , D(C (x2 )) = x2 , . . .,
D(C (xr )) = xr e os enfileira de modo corrido.
Em seguida separa o texto em sequências de 7 dı́gitos e os
reconverte de ASCII para caracteres comuns e eis que aparece a
mensagem que Maria queria enviar para João.

É genial de tão simples! Mas não se engane, para pôr isto em


funcionamento há muitas contas a serem feitas e isso só é possı́vel
com o uso de um computador. É também necessário ter acesso a
números primos muito grandes e escolher com certo critério as
chaves do sistema.

PROFMAT - SBM Aritmética - Unidade 24 - Resumo - Introdução à Criptografia slide 16/16

Você também pode gostar