• Nenhum resultado encontrado

INTRODUÇÃO AO ESTUDO DE CRIPTOGRAFIA

N/A
N/A
Protected

Academic year: 2021

Share "INTRODUÇÃO AO ESTUDO DE CRIPTOGRAFIA"

Copied!
6
0
0

Texto

(1)

CONVÊNIOS CNPq/UFU & FAPEMIG/UFU Universidade Federal de Uberlândia Pró-Reitoria de Pesquisa e Pós-Graduação DIRETORIA DE PESQUISA COMISSÃO INSTITUCIONAL DE INICIAÇÃO CIENTÍFICA 2008 – UFU 30 anos

INTRODUÇÃO AO ESTUDO DE CRIPTOGRAFIA

Adriele Giareta Biase 1

Faculdade de Matemática - Universidade Federal de Uberlândia, MG

Av. João Naves de Ávila, 2121, Bloco 1F, Santa Mônica, Uberlândia, MG, CEP 38400-902 adrilegbiase@yahoo.com.br

Edson Agustini 2

agustini@ufu.br

Resumo: O objetivo deste trabalho é uma apresentação clara dos resultados matemáticos envolvendo Criptografia RSA bem como a prova de sua segurança. A base teórica dessa criptografia assenta-se sobre a Teoria dos Números, mais precisamente, na manipulação de máximos divisores comuns, fatorações e congruências, além de métodos probabilísticos para determinação de números primos. A Criptografia RSA é composta por duas fases: ciframento e deciframento, nas quais utilizamos n = pq, com p e q números primos muito grandes. A conclusão sobre a boa segurança da Criptografia RSA baseia-se na dificuldade de se fatorar n para obter p e q, a qual é devida à inexistência de bons algoritmos computacionais que realizem essa fatoração em um tempo razoável. Além da Criptografia RSA, apresentamos aplicações em assinaturas digitais.

Palavras-chave: criptografia, congruência, fatoração, números primos, ciframento.

1. INTRODUÇÃO

Nas últimas décadas a necessidade de se proteger informações, de modo que alguém indesejável não tenha acesso ao seu conteúdo, tem sido imperiosa. Uma das maneiras de se criar essa desejada proteção para mensagens é a criptografia. O uso corrente da criptografia é encontrado, por exemplo, em transações bancárias via Internet ou em compras on-line com cartões de crédito. Dessa forma, a criptografia torna-se um agente de segurança em um sistema de comunicações.

Criptografia é o estudo de métodos para cifrar (ou modificar) uma mensagem a ser enviada de tal forma que apenas o receptor legítimo consiga interpretá-la. A base da criptografia moderna é a Teoria dos Números, uma vez que o estudo das propriedades dos números inteiros; mais precisamente, a manipulação de máximos divisores comuns, fatorações, congruências e métodos para determinar números primos são fundamentais para se entender criptografia.

O método mais conhecido de criptografia é o chamado RSA (Rivest, Shamir, Adleman), ao qual daremos ênfase nesse trabalho. Para implementar esse método, precisamos escolher dois números primos muito grandes p e q e, na fase de ciframento de uma mensagem, usamos n = pq. Já, para o deciframento da mensagem, precisamos conhecer p e q. A segurança do método está justamente na dificuldade de se fatorar n, que é público, para obter p e q, que são privados.

Podemos dizer que há dois objetivos nesse trabalho. O primeiro consiste no estudo dos principais resultados de Teoria dos Números, principalmente congruências, que são necessários ao estudo de criptografia em geral. O segundo é o estudo do algoritmo da Criptografia RSA, a demonstração de sua funcionalidade e segurança e uma aplicação em assinaturas digitais.

1 Acadêmica do curso de Licenciatura em Matemática. 2 Orientador.

(2)

2. MATERIAIS E M´ETODOS

Devido ao car´ater apenas te´orico deste artigo, visando apenas resultados matem´aticos, o m´etodo empregado foi constitu´ıdo pelo estudo das referˆencias bibliogr´aficas citadas, discuss˜ao da Criptografia RSA, resolu¸c˜ao de exerc´ıcios e verifica¸c˜ao da funcionabilidade e seguran¸ca da Criptografia RSA.

3. CRIPTOGRAFIA RSA 3.1 Pr´e-Codifica¸c˜ao

Para usarmos o m´etodo RSA, devemos converter uma mensagem em uma seq¨uˆencia de n´umeros. Chamaremos essa etapa de pr´e-codifica¸c˜ao.

Para efeito de exemplifica¸c˜ao, tomemos a seguinte tabela de convers˜ao na pr´e-codifica¸c˜ao:

a b c d e f g h i j k l m n o p q r s

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

t u v w x y z 0 1 2 3 4 5 6 7 8 9

29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

O espa¸co entre palavras ser´a substitu´ıdo pelo no. 36. Faremos a convers˜ao sem considerar acentos e letras mai´usculas. Por exemplo, a frase “Famat 2007” ´e convertida no n´umero

15102210293639373744

A vantagem de se utilizar 2 d´ıgitos para representar uma letra reside no fato de que tal procedimento evita a ocorrˆencia de ambig¨uidades. Por exemplo, se a fosse convertido em 1 e

b em 2, ter´ıamos que ab seria 12, mas l tamb´em seria 12. Logo, n˜ao poder´ıamos concluir se 12

seria ab ou l.

Precisamos determinar 2 primos distintos, que denotaremos por p e q, que s˜ao denomi-nados parˆametros RSA. Seja

n = pq,

que ´e chamado de m´odulo RSA.

A ´ultima etapa da pr´e-codifica¸c˜ao consiste em separar o n´umero acima em blocos cujos valores sejam menores que n.

A mensagem cuja convers˜ao foi feita acima pode ser separada nos seguintes blocos: 15 − 10 − 22 − 10 − 29 − 36 − 39 − 37 − 37 − 44.

A maneira de escolher os blocos n˜ao ´e ´unica e n˜ao precisa ser homogˆenea (todos os blocos com o mesmo n´umero de d´ıgitos), mas devemos tomar alguns cuidados como, por exemplo, n˜ao come¸car um bloco com zero, pois isto traria problemas na hora de montar a seq¨uˆencia recebida (o zero no in´ıcio do bloco pode n˜ao aparecer!).

3.2 Codifica¸c˜ao e Decodifica¸c˜ao

Passemos ao processo de codifica¸c˜ao. Da subse¸c˜ao acima, temos n = pq com p e q primos. Tomemos

Φ (n) = (p − 1) (q − 1) .

Seja e < Φ (n) inteiro positivo invers´ıvel m´odulo Φ(n), ou seja, mdc (e, Φ(n)) = 1.

(3)

Esse n´umero e ´e chamado de expoente de enciframento.

O par (n, e) ´e denominado chave p´ublica de codifica¸c˜ao do sistema RSA.

Agora, codifiquemos cada bloco obtido na pr´e-codifica¸c˜ao (subse¸c˜ao anterior). Ap´os a codifica¸c˜ao, os blocos n˜ao poder˜ao ser reunidos de modo que n˜ao possamos distingu´ı-los, pois isto tornaria imposs´ıvel a decodifica¸c˜ao da mensagem.

A codifica¸c˜ao de um bloco b ser´a denotada por C(b). Temos que C(b) ´e o resto da divis˜ao de be por n, isto ´e,

C(b) ≡ be(mod n) .

Por exemplo, se p = 29 e q = 67, ent˜ao n = 1943. Logo, Φ(n) = 1848. Tomemos

e = 701 (observe que mdc (701, 1848) = 1). Assim, o ´ultimo bloco, 44, da mensagem anterior ´e

codificado como o resto da divis˜ao de 44701 por 1943. Convertendo 701 em bin´ario e utilizando

o m´etodo dos quadrados repetidos, temos

1317 ≡ 44701(mod 1943) .

Codificando toda a mensagem, obtemos a seguinte seq¨uˆencia de blocos: 595 − 155 − 1849 − 155 − 841 − 384 − 1344 − 1168 − 1168 − 1317.

Para decodificar uma mensagem codificada, precisamos de n e do inverso de e m´odulo Φ(n), que chamaremos de d, ou seja

ed ≡ 1 (mod Φ (n)) .

O par (n, d) ´e denominado chave privada de decodifica¸c˜ao do sistema RSA.

Seja a = C (b) um bloco da mensagem codificada, ent˜ao D(a) ser´a o resultado da deco-difica¸c˜ao. Temos que D(a) ´e o resto da divis˜ao de ad por n, isto ´e,

D(a) ≡ ad(mod n) .

Esperamos que, decodificando os blocos da mensagem codificada, possamos encontrar a mensagem original, ou seja, D (C(b)) = b. Para decodificarmos, n˜ao ´e necess´ario conhecermos

p e q, basta conhecer n e d.

No exemplo que estamos acompanhando, temos que n = 1943 e e = 701. Usando o Algoritmo Euclidiano Estendido, temos d = 29.

Assim, para decodificar o bloco 1317 recebido, devemos calcular o resto da divis˜ao de 131729 por 1943 (utilizando, por exemplo, o M´etodo dos Quadrados Repetidos), ou seja, 44:

44 ≡ 131729(mod 1943) .

Logo, a seq¨uˆencia decodificada ser´a

15 − 10 − 22 − 10 − 29 − 36 − 39 − 37 − 37 − 44, que corresponde, via tabela de convers˜ao, `a frase “Famat 2007”.

E quando encontramos d negativo?

Pode ocorrer que no c´alculo de d, pelo Algoritmo Euclidiano Estendido, encontremos um valor negativo. No entanto, ´e sempre poss´ıvel tomar um valor positivo de d utilizando o

Teorema da Solu¸c˜ao Geral de uma Equa¸c˜ao Diofantina, dado abaixo.

Chamamos de equa¸c˜ao diofantina a uma equa¸c˜oes polinomial (com qualquer n´umero de inc´ognitas), com coeficientes inteiros. Em uma equa¸c˜ao diofantina, interessa apenas solu¸c˜oes inteiras.

(4)

Teorema. (Solu¸c˜ao geral de equa¸c˜ao diofantina linear com duas inc´ognitas) Sejam a e b inteiros positivos e d = mdc(a, b). Se d - c, ent˜ao a equa¸c˜ao diofantina

ax + by = c

n˜ao possui nenhuma solu¸c˜ao inteira. Se d | c ela possui infinitas solu¸c˜oes e se x = x0 e y = y0

´e uma solu¸c˜ao particular, ent˜ao todas as solu¸c˜oes s˜ao dadas por:

x = x0+ µ b dk y = y0−³a d ´ k com k ∈ Z.

Vejamos um exemplo de d negativo na criptografia RSA com p = 31 e q = 47. Na codifica¸c˜ao:

Φ (n) = (p − 1) (q − 1) = (30) (46) = 1380

n = pq = (31) (47) = 1457

Se tomarmos e = 1001 (pois temos mdc(1001, 1380) = 1) e o primeiro bloco da mensagem anterior, cujo o n´umero associado ´e 15, ent˜ao a decodifica¸c˜ao desta mensagem ser´a o resto da divis˜ao de 151001 por 1457. Convertendo 1001 em um bin´ario e utilizando o M´etodo dos

Quadrados Repetidos, temos

C (b) ≡ 151001(mod 1457)

1100 ≡ 151001(mod 1457)

Na decodifica¸c˜ao:

O par (n, d) ´e a chave privada da decodifica¸c˜ao do sistema RSA. Seja a = C (a) a mensagem codificada, ent˜ao D(a) ser´a o resultado da decodifica¸c˜ao. Mas temos que D (a) ´e o resto da divis˜ao de ad por n, ou seja,

D (a) ≡ ad(mod n) .

Calculando o valor de d a partir do Algoritmo Euclidiano Estendido encontramos

d = −619.

Mas n˜ao nos interessa trabalhar com valores de d negativos. Para encontrar um d posi-tivo, temos um algoritmo derivado do Teorema da Solu¸c˜ao Geral de uma Equa¸c˜ao Diofantina. Algoritmo para reverter valores de d negativos:

Etapa 1) Calcule o valor de d pelo Algoritmo Euclidiano Estendido.

Etapa 2) Se d < 0, ent˜ao tome t inteiro tal que d + Φ(n)t > 0 e fa¸ca d = d + Φ(n)t. Etapa 3) Fa¸ca d = d.

(5)

Logo, para o nosso exemplo:

d = −619 + 1380t > 0 para t = 1 d = 1380 − 619

d = 761 d = d = 761

Deste modo, ap´os encontrar o novo valor de d (positivo), ent˜ao continua-se a decodi-fica¸c˜ao usando o M´etodo dos Quadrados Repetidos. Como D (C (b)) = b e para decodificar n˜ao ´e necess´ario conhecer os valores de p e q, ent˜ao basta conhecer n e d. Assim, se n = 1457 e

e = 1001, basta resolver a equa¸c˜ao

D (a) ≡ 1100761(mod 1457) no qual devemos obter

15 ≡ 1100761(mod 1457) ,

que era o resultado esperado. 4. ASSINATURAS DIGITAIS

Uma das aplica¸c˜oes da criptografia s˜ao as assinaturas digitais, que possuem um impor-tante papel nas transa¸c˜oes banc´arias, obtendo assim uma maior seguran¸ca, tanto para o cliente, quanto para o banco.

Suponhamos que uma empresa realiza transa¸c˜oes banc´arias por computador. ´E ´obvio que tanto a empresa quanto o banco queiram que a mensagem seja codificada. Mas, como o RSA ´e um sistema de criptografia de chave p´ublica, qualquer pessoa poderia enviar uma mensagem para fazer transa¸c˜oes banc´arias utilizando esse sistema. Por isso, ´e necess´ario que a mensagem esteja assinada eletronicamente.

Vejamos como mandar uma assinatura pelo RSA. Chamemos de Ce e De as fun¸c˜oes de codifica¸c˜ao e decodifica¸c˜ao da empresa e Cb e Db as mesmas fun¸c˜oes, s´o que do banco.

Sendo a um bloco de mensagem que a empresa vai enviar ao banco, a codifica¸c˜ao desse bloco seria Cb(a). Para que a mensagem v´a assinada, ela deve ser Cb(De(a)). Usamos primeiro a fun¸c˜ao decodifica¸c˜ao da empresa ao bloco a e, depois, codificamos o bloco, usando a fun¸c˜ao codifica¸c˜ao do banco.

O banco, ao receber a mensagem Cb(De(a)), aplica a sua fun¸c˜ao de decodifica¸c˜ao, ob-tendo De(a), e, na seq¨uˆencia, aplica a fun¸c˜ao codifica¸c˜ao da empresa, que ´e p´ublica, para obter o bloco original a.

Somente a empresa conhece a fun¸c˜ao De. Portanto, se a mensagem fizer sentido, tem que ter tido origem na empresa, uma vez que a probabilidade de uma pessoa, sem conhecer

De, mandar uma mensagem que fa¸ca sentido, ap´os ser decodificada pelo banco, ´e praticamente nula. Assim, o banco pode estar seguro de que a mensagem ´e verdadeira.

5. DISCUSS ˜AO E CONCLUS ˜OES

Os modernos sistemas de criptografia consistem da principal aplica¸c˜ao de Teoria dos N´umeros, mais especificamente, congruˆencias e n´umeros primos. O estudo de n´umeros primos ´e quase t˜ao antigo quanto a pr´opria matem´atica e teve origem com os antigos gregos. N˜ao obstante, seu estudo ainda ´e extremamente ativo nos dias atuais, principalmente com o uso de recursos computacionais, e muita pesquisa tem sido desenvolvida por brilhantes matem´aticos. O fato da seguran¸ca de todo sistema de troca de informa¸c˜oes sigilosas estar baseado na dificuldade em se fatorar um n´umero composto ´e, no m´ınimo, curioso, uma vez que o conceito de fatora¸c˜ao

(6)

em n´umeros primos ´e algo do conhecimento geral de qualquer estudante de ensino fundamental. Mais curioso ainda ´e o fato de, mesmo com todo recurso tecnol´ogico e computacional dispon´ıvel, n˜ao existir um algoritmo de fatora¸c˜ao de n´umeros compostos grandes que seja pelo menos “semi-eficiente”.

A hist´oria do ciframento e deciframento da mensagens ´e, assim como o estudo de n´umeros primos, bastante antiga e, sempre houve momentos em que os criadores de crifras estavam `a frente dos “quebradores” de cifras e vice-versa. Mesmo em ´epocas recentes, como na Segunda Guerra Mundial, temos exemplos de cifras que foram quebradas, [7] . No entanto, a partir da d´ecada de 1970, com o surgimento da Criptografia RSA e dos diversos sistemas criptogr´aficos dele derivados ou nele inspirados, os cifradores est˜ao `a frente dos quebradores de cifras.

6. AGRADECIMENTOS

Os autores agradecem `a FAPEMIG - Funda¸c˜ao de Amparo `a Pesquisa do Estado de Minas Gerais - pela concess˜ao da bolsa de inicia¸c˜ao cient´ıfica de mar¸co de 2007 a fevereiro de 2008, bem como `a Pr´o-Reitoria de Pesquisa e P´os-Gradua¸c˜ao da Universidade Federal de Uberlˆandia pelo gerenciamento da mesma.

7. REFERˆENCIAS

Coutinho, S. C., 1997, “N´umeros Inteiros e Criptografia RSA”. Rio de Janeiro, RJ: IMPA -SBM. S´erie de Computa¸c˜ao e Matem´atica.

Domingues, H. H., 1982, “ ´Algebra Moderna”. S˜ao Paulo, SP: Atual Editora.

Domingues, H. H., 1991, “Fundamentos de Aritm´etica”. S˜ao Paulo, SP: Atual Editora. Mollin, R. A., 2001, “An Introduction to Cryptography”. New York: Chapman & Hall.

Rivest, M.; Shamir, A. & Adleman, L., 1978, “A method for obtaining digital signatures and public-key cryptosystems”. Comm. ACM, 21, pp. 120-126.

Santos, J. P. O., 1998, “Introdu¸c˜ao `a Teoria dos N´umeros”. Rio de Janeiro, RJ: Publica¸c˜ao do Inst. de Mat. Pura e Aplicada (IMPA). Cole¸c˜ao Matem´atica Universit´aria.

INTRODUCTION TO THE STUDY OF CRYPTOGRAPHY

Adriele Giareta Biase

Faculdade de Matem´atica - Universidade Federal de Uberlˆandia, MG

Av. Jo˜ao Naves de ´Avila, 2121, Bloco 1F, Santa Mˆonica, Uberlˆandia, MG, CEP 38400-902 adrilegbiase@yahoo.com.br

Edson Agustini

Faculdade de Matem´atica - Universidade Federal de Uberlˆandia, MG

Av. Jo˜ao Naves de ´Avila, 2121, Bloco 1F, Santa Mˆonica, Uberlˆandia, MG, CEP 38400-902 agustini@ufu.br

Abstract: The aim of this work is a presentation of mathematical results about RSA Cryp-tosystem. Its theoretic basis is found in Number Theory, precisely, in manipulation of greatest common divisors, factoring, congruences, and methods for find prime numbers. The RSA Cryp-tosystem is composed by two parts: enciphering and deciphering, where we use n = pq, with p and q very large prime numbers. The conclusion about the good security of RSA Cryptosys-tem is based on the hardness of the factorization of n for obtain p and q, wich is due to the non-existence of good computational algorithms that make this factorization in reasonable time. Besides RSA Cryptosystem, we present applications in digital signatures.

Referências

Documentos relacionados

Lembre-se: você pode usar tudo o que foi visto em aula, em listas anteriores, ou mesmo qualquer questão do trabalho para responder outras questões (mesmo que você não tenha feito

Prof RG Crespo Criptografia e Segurança das Comunicações Teoria números : 37/40. Números

O crânio apresentou dois pares de alvéolos relativos aos incisivos, internos ligeiramente maiores que os externos; um par de alvéolos para os caninos; um par de

As principais variáveis que regem o desempenho da flotação são a recuperação e concentração mineral, essas variáveis possuem forte acoplamento entre si e, somado às

A base matemática da criptografia moderna é a Teoria dos Números, uma vez que o estudo das propriedades dos números inteiros; mais precisamente, a manipulação de máximos

• Na aula de hoje: terceira ´ area da semˆ antica: objetivo de desenvolver t´ ecnicas para expressar a semˆ antica de linguagens utilizadas para programa¸c˜ ao

No caso do sistema de criptografia RSA a chave p´ ublica apoia-se na facilidade de se efetuar a multiplica¸c˜ ao de n´ umeros primos e na dificuldade pr´ atica de se inverter

Criptografia - Fundamentos  Pré-requisitos da Criptografia  Teoria de Números  Matemática Discreta  Teoria da Informação  Teoria de Probabilidade 