Você está na página 1de 5

Criptografia

Criptografia em grego, é cryptós que quer dizer: oculto, secreto. A criptografia


estuda os métodos de codificação de mensagens para que somente o verdadeiro
destinatário consiga interpreta-la.
Existem vários métodos de criptografia como por exemplo: O Código de Cézar,
RSA, DES, IDEA, AES, etc. Os algoritmos de criptografia podem ser simétricos e
assismétricos.

Criptografia Simétrica

A criptografia baseada em chaves simétricas, está fundamentada em chaves


secretas pré-definidas pelas partes dispostas a manter uma conexão segura. As duas
partes devem garantir o sigilo da chave para manter a segurança dos dados.
Os algoritmos de encriptação de dados geralmente usam operações matemáticas
reversíveis, que combinam os dados de entrada com a chave secreta nas operações. A
qualidade da encriptação está diretamente ligada ao tamanho da chave, quanto maior o
tamanho da chave, maior o numero de chaves possíveis, o que dificulta a quebra da
criptografia por força bruta. Por exemplo, um algoritmo de encriptação por chave
secreta que utiliza uma chave de 2 bits, pode ser facilmente quebrado, pois basta um
intruso testar no máximo 4 diferentes chaves até descobrir a chave correta.
Por realizar operações matemáticas relativamente simples, o tempo computacional
gasto pelos algoritmos de chave simétrica é satisfatoriamente curto para ser
implementado sem adicionar sobrecarga nos sistemas físicos atualmente no mercado.

Criptografia Assimétrica

O fato de ter que definir uma chave secreta exigido pelo algoritmo de chave
simétrica é contornado utilizando-se a criptografia assimétrica.
Na criptografia assimétrica, duas chaves são utilizadas para realizar o processo de
encriptação/desencriptação, o que uma encriptar somente a outra pode desencriptar.
Desta forma, uma parte querendo estabelecer uma conexão segura com outra, deverá
gerar as duas chaves: a chave pública e a chave privada. A chave pública pode ser
livremente distribuída, já que de nada adianta a chave pública sem a privada para
completar a encriptação/desencriptação.
Pelo fato de utilizar operações reversas para desencriptar mensagens, o tempo
computacional gasto pelos algoritmos de criptografia assimétrica é muito alto se
comparado com o simétrico. Portanto, pode ser inviável o uso de uma comunicação
intensa de dados que utiliza estes algoritmos.

Criptografia RSA

O método mais conhecido de criptografia de chave pública é o RSA. O algoritmo


do RSA foi inventado em 1977 por Ron Rivest, Adi Shamir e Leonard Adleman, que
eram pesquisadores do Massachussets Institute of Technology (M.I.T.).
As letras RSA correspondem às iniciais dos inventores do código. Há vários
outros códigos de chave pública, mas o RSA continua sendo o mais usado em
aplicações comerciais hoje em dia[COUTINHO(2009), pg.9].

Como funciona o RSA

A partir de agora focaremos nossa atenção ao funcionamento do método de


criptografia RSA. O algoritmo consiste de algumas operações matemáticas que
caracterizam a idéia de um problema ser “fácil de fazer e difícil de desfazer”, que é o
que se deseja de um bom algoritmo de criptografia[COUTINHO(2009), pg.10].
Na implementação do RSA, precisaremos escolher dois números primos diferentes
um do outro, p e q, e então multiplicá-los, obtendo assim o produto n. Para garantir a
segurança do método o números p e q devem ser mantidos em segredo. Já o produto de
p e q, ou seja, n será distribuido livremente para ser usado no processo de codificação e
decodificação.
No entanto, os dois números p e q, deverão ser muitos grandes para inviabilizar a
quebra da criptografia por terceiros, utilizando-se da fatoração de n.
Uma chave segura de RSA, deve ser criada a partir de números de cerca de 100
algarismos, para que n, que é o produto dos primos, tenha cerca de 200 algarismos. A
segurança do método então consiste nisso, porque para fatorar um número deste
tamanho e achar os seus fatores primos, mesmo usando os computadores mais potentes
do mundo seriam necessários milhões de anos. Além disso precisamos determinar z, tal
que z = (p-1)*(q-1), que será usado no processo de escolha das chaves. Será necessário
também determinar e que junto com n será usado no processo de codificação. O número
e à ser escolhido deve obedecer aos seguintes critérios:
1. e tem que ser menor do que n;
2. e não pode ter fatores comuns com z, ou seja, e e z serão primos entre si.
Será necessário também determinar d que junto com n será usado no processo de
decodificação. O número d à ser escolhido deve obedecer ao seguinte critério:
1. O produto de d por e módulo z = 1; ou seja, d*e – 1 é divisível por z.

Portanto:
• para implementar o RSA, escolhe-se dois números primos distintos
gigantes, p e q, e calcula-se o produto destes, obtendo n.
• Usaremos o par n e e para codificar a mensagem.
• Para decodificar usaremos o par n e d.
• n e d serão a chave privada, precisam ser guardados com segurança.
• n e e serão a chave pública, que pode ser distribuída livremente.
• Para quebrar a criptografia do RSA basta fatorar n, o que levaria muito
tempo se n for grande.

Codificando e Decodificando uma mensagem


Primeiramente precisamos pré-codificar o texto a ser criptografado, para isso usaremos
os valores da tabela ASCII. Vamos codificar a mensagem:
• CRIPTOGRAFIA
• C = 67; R = 82; I = 73; P = 80; T = 84; O = 79; G = 71; R = 82; A = 65; F = 70;
I = 73; A = 82;
A mensagem a ser cifrada, então será: m = 67-82-73-80-84-79-71-82-65-70-73-82.
• Vamos definir então a chave pública e privada:
• p = 23; q = 31; n = 23*31 = 713;
• z = 22*30 = 660; e = 7, pois e é menor que n e não tem fatores comuns com z.
• d = 283, pois 283*7 mod 660 = 1;
O bloco a ser cifrado é submetido à seguinte formula:
• C = me (mod n)
O bloco a ser decifrado é submetido à seguinte formula:
• D = md (mod n)
Codificando
Neste caso:
• 677 mod 713 = 470;
• 827 mod 713 = 607;
• 737 mod 713 = 261;
• 807 mod 713 = 536;
• 847 mod 713 = 517;
• 797 mod 713 = 198;
• 717 mod 713 = 289;
• 827 mod 713 = 607;
• 657 mod 713 = 544;
• 707 mod 713 = 622;
• 737 mod 713 = 261;
• 827 mod 713 = 544;

A mensagem codificada é 470-607-261-536-517-198-289-607-544-622-261-544.

Decodificando
No nosso caso:
• 470283 mod 713 = 67;
• 607283 mod 713 = 82;
• 261283 mod 713 = 73;
• 536283 mod 713 = 80;
• 517283 mod 713 = 84;
• 198283 mod 713 = 79;
• 289283 mod 713 = 71;
• 607283 mod 713 = 82;
• 544283 mod 713 = 65;
• 622283 mod 713 = 70;
• 261283 mod 713 = 73;
• 544283 mod 713 = 82;
Aplicando o processo de decodificação obtemos de volta a mensagem original 67-82-
73-80-84-79-71-82-65-70-73-82, que corresponde à CRIPTOGRAFIA na tabela ASCII.
Portanto isso prova que D(C(m)e)d mod n = m.

BIBLIOGRAFIA
• Redes de Computadores e a Internet, JAMES F. KUROSE & KEITH W. ROSS,
2006 3ª edição.
• COUTINHO, S. C. Apostila de Criptografia RSA. OBMEP, 2009.
• http://pt.wikipedia.org/wiki/RSA
• pessoal.utfpr.edu.br/ronie/arquivos/posterRSA.pdf
• www.dcc.ufla.br/infocomp/artigos/v2.1/art02.pdf