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 do livro texto da disciplina: Capítulo 13 - Seções 13.2 e 13.3 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 2 7 = 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. Em seguida, João calcula β α J M, obtendo β α J M (aα M ) α J a α Mα J α mod m, com α < m. Por sua vez, Maria calcula β α M J, obtendo β α M J (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: 52 2 2704 265 mod 271, 52 4 265 2 36 mod 271, 52 7 = 52 4 52 2 52 36 265 52 150 mod 271. Logo, β J = 150. Maria faz a seguinte conta para determinar β M e enviá-lo a João: 52 5 = 52 4 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? Para determinar a chave α, João tem que reduzir β α J M = 2467 módulo 271. Logo, 246 2 = 60 516 83 mod 271, 246 4 = 246 2 246 2 83 83 114 mod 271, 246 7 = 246 4 246 2 246 114 83 246 33 mod 271. João encontra então α = 33. Agora é a vez de Maria calcular o resíduo de β α M J = 150 5 módulo 271. Mas, 150 2 = 22500 7 mod 271, 150 5 = 150 2 150 2 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 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 x 1, x 2,... x r 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 x i seja menor do m. A restrição de x i não iniciar com zero é para poder recuperar uma sequência a partir do número que ela representa e de cada x i ser menor do que m é para garantir que ele não se altera quando reduzido mod m. Em seguida, Maria calcula C(x 1 ), C(x 2 ),..., C(x r ) 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(x 1 )) = x 1, D(C(x 2 )) = x 2,..., D(C(x r )) = x r 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