1 criptografia simétrica e criptografia de chaves públicas: vantagens

Transcrição

1 criptografia simétrica e criptografia de chaves públicas: vantagens
1
CRIPTOGRAFIA SIMÉTRICA E CRIPTOGRAFIA DE CHAVES PÚBLICAS:
VANTAGENS E DESVANTAGENS
SYMMETRIC AND ASYMMETRIC CRYPTOGRAPHY:
ADVANTAGES AND DISADVANTAGES
George Amaro
RESUMO
Criptografia é um processo pelo qual um texto puro (normal) é
convertido em uma mensagem codificada (texto cifrado),
através da aplicação de um algoritmo que tanto o remetente
quanto o destinatário conhecem, de forma a ser possível
retornar a mensagem à sua forma original. Existem vários
algoritmos para converter textos puros em textos cifrados
(encriptação) e vice-versa (desencriptação), sendo que os mais
comuns utilizam uma “chave” para isso. A chave é apenas um
parâmetro para o algoritmo, para permitir que os processos de
conversão ocorram. De acordo com Schneier (1996), existem
várias técnicas criptográficas baseadas em chaves, divididas
em duas categorias: criptografia simétrica (ou de chaves
privadas) e criptografia assimétrica (ou de chaves públicas). Na
criptografia simétrica, a mesma chave é utilizada, tanto para
criptografar, quanto para descriptografar uma mensagem. Já
com a criptografia assimétrica, as chaves são diferentes,
embora matematicamente relacionadas. Características
essenciais, bem como algumas vantagens e desvantagens de
cada método são apresentadas e comentadas, de forma a
deixar claros alguns conceitos fundamentais e sua aplicação
em conjunto.
PALAVRAS-CHAVE: criptografia simétrica, criptografia
assimétrica, criptografia de chaves públicas.
ABSTRACT
Cryptography is an algorithmic process of converting a plain
text (or clear text) message to a cipher text (or cipher) message
based on an algorithm that both the sender and receiver know,
so that the cipher text message can be returned to its original,
plain text form. There are a lot of cryptographic algorithms to
convert a plain text in a cipher text (enciphering) and vice-versa
(deciphering), and the most common ones uses a key. A key is
simply a parameter to the algorithm that allows the encryption
and decryption process to occur. There are many modern keybased cryptographic techniques (Schneier, 1996), divided into
two classes: symmetric and asymmetric (also called
public/private) key cryptography. In symmetric key
cryptography, the same key is used for both encryption and
encryption. In asymmetric key cryptography, one key is used for
encryption and another, mathematically related key, is used for
decryption. Essential characteristics, as well as some
advantages and disadvantages of each method are presented
and commented in such a way to clear some fundamental
concepts e its joint application.
Keywords: symmetric cryptography, asymmetric cryptograph,
public key cryptography.
B.Sc. em Administração com
Habilitação em Sistemas de
Informação
Especialista em Dinâmica de
Sistemas
Membro do Grupo de Operação
e Segurança de Redes da
Embrapa
Professor das Faculdades
Cathedral
1
INTRODUÇÃO
O conceito de se criar mensagens seguras através de mecanismos que
permitam esconder ou disfarçar o seu real conteúdo tem uma longa história.
De fato, Heródoto1 relata o uso de esteganografia ainda na Grécia Antiga.
Entretanto, é creditada a Júlio César a criação do primeiro sistema criptográfico para
o envio de mensagens militares (Timofiecsyk, 2002).
A figura 1 ilustra genericamente o processo de criptografia pelo qual um
texto puro é convertido em uma mensagem codificada (texto cifrado), através da
aplicação de um algoritmo e de uma chave, que tanto o remetente quanto o
destinatário conhecem, de forma a ser possível retornar a mensagem à sua forma
original.
Figura 1 -
O processo genérico de criptografia
FONTE: adaptada de Nekoogar (2001)
A criptografia tem, fundamentalmente, quatro objetivos básicos:
a) confidencialidade da mensagem: só o destinatário autorizado deve ser
capaz de extrair o conteúdo da mensagem da sua forma encriptada.
Além disso, a obtenção de informações sobre o conteúdo da mensagem
(como uma distribuição estatística de certos caracteres) não deve ser
possível, uma vez que, se o for, se torna mais fácil à análise criptográfica;
b) integridade da mensagem: o destinatário deverá ser capaz de determinar
se a mensagem foi alterada durante a transmissão;
1
O historiador grego Heródoto (484 a.C. -426 a.C.) é considerado o pai da História. Viajou por vários países e sua obra principal é a
“História”, dividida em nove livros (Costa & Figueiredo, 2006).
2
c) autenticação do remetente: o destinatário deverá ser capaz de identificar
o remetente e verificar que foi mesmo ele quem enviou a mensagem;
d) não-repúdio do remetente: não deverá ser possível ao remetente negar o
envio da mensagem.
De forma genérica, uma função de encriptação E, é uma função que recebe
como parâmetros uma chave K e e uma mensagem M, cujo resultado é um texto
cifrado, definido pela fórmula C = E (K e , M ) .
Para que a mensagem M possa ser restabelecida ao seu significado original,
usa-se uma função D, de tal forma que M = D( K d , E (K e , M )) , onde D é a função de
desencriptação.
Na criptografia de chave simétrica, também conhecida como criptografia
clássica, temos que K e = K d , sendo normalmente apenas referenciado como chave
K.
Nos algoritmos de chaves públicas, ou chaves assimétricas, K e ≠ K d , e a
relação entre as chaves é tal que M = D (K d , E ( K e , M )) = E (K d , D( K e , M )) , ou seja,
existe uma relação inversa entre elas.
Através da história, um problema tem sido de importância crucial para a
limitação do uso dos sistemas de criptografia: o gerenciamento de chaves. Nos
sistemas criptográficos, o termo “chave” refere-se a um valor numérico utilizado por
um algoritmo para alterar uma informação de forma a torná-la visível somente
àqueles indivíduos que possuírem a chave correspondente para recuperar essa
informação, agregando segurança ao processo de troca de informações, dessa
maneira.
Conseqüentemente, o termo “gerenciamento de chaves” refere-se à
administração de chaves de criptografia, de forma a permitir o seu uso apenas para
as pessoas que devam ter acesso às chaves, quando e onde forem necessárias.
Historicamente os sistemas de criptografia têm utilizado o que é conhecido
como “criptografia de chave simétrica”. A criptografia simétrica usa a mesma chave
para encriptação e desencriptação. Com a criptografia simétrica, podem-se enviar
mensagens de forma segura, sem o perigo da interceptação, uma vez que um
eventual interceptador não seria capaz de ler a mensagem sem a chave adequada.
Entretanto, surge o problema de enviar a chave de forma segura ao destinatário,
3
para que a mensagem criptografada possa ser lida. Para se ter uma idéia da
complexidade crescente desse problema, para n usuários é necessário distribuir
(n(n − 1)) / 2
chaves privadas através de um sistema seguro.
Um avanço considerável na criptografia ocorreu com a invenção da
criptografia de chaves públicas, ou criptografia assimétrica. A principal característica
desse tipo de mecanismo é que não é necessário utilizar a mesma chave para os
processos de encriptação de desencriptação.
Na criptografia assimétrica, as chaves são pares de uma combinação de
“chave privada” e “chaves públicas”. A parte pública da chave pode ser distribuída de
uma forma realmente pública, sem comprometer a parte privada, que deve ser
mantida em segredo pelo seu proprietário. Uma encriptação feita com uma chave
pública pode somente ser desfeita através da chave privada correspondente.
Embora a criptografia de chaves públicas tenha permitido uma solução
adequada ao problema do gerenciamento de chaves, especialmente para redes de
grande escala – uma vez que com a criptografia simétrica o número de chaves
cresce rapidamente à medida que se acrescentam usuários à rede – alguns
problemas não dependem da tecnologia e dos princípios matemáticos utilizados,
mas, essencialmente, dos procedimentos adotados para que se possa gerenciar
adequadamente a distribuição de chaves.
1 CRIPTOGRAFIA DE CHAVE SIMÉTRICA
A criptografia de chave simétrica utiliza a mesma chave para encriptação e
desencriptação. Dessa forma, é óbvio que a chave deve ser conhecida tanto pelo
remetente quanto pelo destinatário da mensagem. Exatamente nesse fato, reside a
maior dificuldade do método: a distribuição segura das chaves.
Se uma pessoa quer se comunicar com outra com segurança, ela deve
passar primeiramente a chave utilizada para cifrar a mensagem. Este processo é
chamado de “distribuição de chaves”, e como a chave é o principal elemento de
segurança para o algoritmo, ela deve ser transmitida por um meio seguro.
Com relação ao processo de distribuição de chaves simétricas, existe ainda
um outro problema: a distribuição de chaves para muitos indivíduos, uma vez que o
número de chaves cresce rapidamente.
4
Segundo Trinta e Macêdo:
Uma das tentativas de solucionar o problema da distribuição das chaves
secretas foi a criação de um centro de distribuição de chaves (Key
Distribution Center - KDC), que seria responsável pela comunicação entre
pessoas aos pares. Para isto, o KDC deve ter consigo todas as chaves
secretas dos usuários que utilizam seus serviços. Por exemplo, imagine a
situação descrita pela figura 4, onde A quer mandar uma mensagem secreta
para B. Para isto, ele manda a mensagem para o KDC usando sua chave
secreta. O KDC recebe esta mensagem, decifrando com a chave secreta de
A, depois o KDC a cifra novamente usando agora a chave secreta de B, e a
envia para o mesmo. O maior problema em torno do KDC, é que este
constitui um componente centralizado, além de ser gerenciado por pessoas
que podem, casualmente, serem corrompidas. (TRINTA; MACÊDO, 1998).
A figura 2, extraída de Trinta e Macêdo (1998), ilustra o processo de
criptografia de chave secreta, mostrando que a mesma chave é utilizada para a
cifragem e posterior decifragem da mensagem.
De acordo com Nekoogar (2001), este método é mais rápido e fácil de ser
implementado do que a criptografia assimétrica, uma vez que a mesma chave é
utilizada.
Segundo Schneier (1996), as chaves dos algoritmos simétricos são menores
do que as chaves dos assimétricos, se tomada como base de comparação a
resistência a ataques de força bruta.
Figura 2 -
Criptografia de chave simétrica
FONTE: Schneier (1996)
Os algoritmos de chave simétrica podem ser classificados de acordo com o
número de bits criptografados de uma vez. Os algoritmos de stream podem ser
utilizados com tamanhos variáveis de bits, enquanto os algoritmos de bloco
trabalham com números fixos de bits, sendo que, aos dados cujo tamanho seja
5
inferior ao tamanho definido, bits sem significado são adicionados, apenas para
completar o bloco.
Assim, as principais vantagens da criptografia simétrica são:
a) velocidade, pois os algoritmos são muito rápidos, permitindo cifrar uma
grande quantidade de dados em pouco tempo;
b) as chaves são relativamente pequenas e relativamente simples,
permitindo gerar cifradores extremamente robustos;
c) atinge aos objetivos de confidencialidade e de privacidade, mantendo os
dados seguros.
Enquanto desvantagens, podem-se citar:
a) a chave secreta deve ser compartilhada, o que pode complicar a gerência
de chaves;
b) não permite autenticação do remetente, uma vez que qualquer pessoa
poderá enviar uma mensagem criptografada com qualquer chave que
esteja em seu domínio;
c) não permite o não-repúdio do remetente, o que é decorrência direta do
item anterior.
Os principais algoritmos desta classe são:
a) DES (Data Encryption Standard): É o algoritmo simétrico mais difundido
no mundo. Criado pela IBM em 1977, com um tamanho de chave de 56
bits, relativamente pequeno para os padrões atuais, foi quebrado por
“força bruta” em 1997;
b) TripleDES: Uma variação do DES que utiliza 3 ciframentos em seqüência,
empregando chaves com tamanho de 112 ou 168 bits, sendo
recomendado no lugar do DES desde 1993;
c) IDEA (International Data Encryption Algorithm): Criado em 1991, segue
as mesmas idéias do DES, mas tem execução mais rápida que o mesmo.
d) AES (Advanced Encryption Standard): É o padrão atual para ciframento
recomendado
pelo
NIST
(National
Institute
of
Standards
and
Technology). Trabalha com chaves de 128, 192 e 256 bits, que adotou o
cifrador Rijndael após a avaliação de vários outros;
e) RC6: A última versão de uma série de cifradores (RC2, RC3, RC4, RC5)
desenvolvidos por Rivest. Concorreu à adoção pelo padrão AES.
6
2 CRIPTOGRAFIA DE CHAVES PÚBLICAS
A criptografia de chaves públicas, também conhecida por criptografia
assimétrica, é baseada no uso de pares de chaves para cifrar/decifrar mensagens.
As duas chaves são relacionadas através de um processo matemático, usando
funções unidirecionais para a codificação da informação. Uma chave, chamada
chaves públicas que, como o nome já diz, qualquer um pode conhecer e ter acesso,
é usada para cifrar, enquanto a outra, chamada chave privada (secreta), é usada
para decifrar.
Uma mensagem cifrada com uma chave pública somente poderá ser
decifrada com o uso da chave privada com a qual está relacionada.
A figura 3 ilustra como funciona o processo, com a utilização das duas
chaves.
Figura 3 -
Processo de criptografia assimétrica
FONTE: Trinta e Macêdo (1998).
No Quadro 1 tem-se um resumo da utilização das chaves públicas e
privadas, por diferentes atores envolvidos na troca de mensagens seguras.
Quadro 1 -
Resumo do uso de chaves públicas e privadas na criptografia assimétrica
Função da Chave
Criptografar os dados para um destinatário
Assinar a mensagem
Descriptografar os dados para ler a mensagem
Verificar a assinatura da mensagem
FONTE: o autor.
Qual Chave?
Chave Pública
Chave Privada
Chave Privada
Chave Pública
De Quem?
Do Destinatário
Do Remetente
Do Destinatário
Do Remetente
Os sistemas criptográficos de chave assimétrica baseiam-se na dificuldade
que existe em se calcular a operação inversa de determinadas operações
7
matemáticas. Atualmente existem três categorias de problemas matemáticos a partir
dos quais são construídos os algoritmos de chaves públicas:
a) fatoração inteira (IFP). Dado um número n resultado da multiplicação de
dois números primos p e q, a dificuldade consiste em encontrar p e q
tendo-se somente n, sendo, todos, números inteiros positivos. Para
números pequenos, um ataque de força bruta pode facilmente encontrar
a solução, mas para valores maiores de n (da ordem de 1024 bits) isto já
é não mais válido. Um dos esquemas criptográficos baseados neste
problema é o RSA (Rivest, Shamir e Adleman);
b) logaritmo discreto (DLP). Dada a equação y = g x mod p , onde g é um
número inteiro positivo e p um número primo, ambos conhecidos, a
dificuldade é dado o valor de y calcular o valor de x. Da mesma forma
que o IFP, para valores grandes de p; x; y e g, da ordem de centenas de
bits, este cálculo torna-se muito difícil. Os esquemas criptográficos
ElGamal e Diffie-Hellman são baseados neste problema;
c) logaritmo discreto sobre curvas elípticas (ECDLP). Dada a equação
Q = l.P mod n , onde P é um ponto sobre a curva elíptica E, n a ordem do
ponto P, e l um inteiro no intervalo 0 ≤ l ≤ n − 1 , a dificuldade está em se
encontrar l sabendo-se P e Q. Basicamente os mesmos algoritmos
desenvolvidos para DLP, podem ser aplicados sobre curvas elípticas.
James Ellis, Malcolm Williamson, and Clifford Cocks foram os primeiros a
investigar a criptografia de chaves pública/privada, nos anos 70 (ELLIS, 1987). A
questão tornou-se pública em 1976 através de Diffie e Hellman (1976), sendo que o
primeiro algoritmo não simétrico implementado foi o RSA.
A decorrência imediata de se ter um par de chaves, sendo uma pública é,
obviamente, a despreocupação com a questão relativa à troca chaves secretas entre
as partes envolvidas, um dos problemas dos algoritmos simétricos.
A distribuição de chaves públicas é feita através de uma infra-estrutura de
chaves públicas (PKI), que é responsável por associar as chaves públicas aos seus
respectivos proprietários, através da validação por referência de uma entidade de
confiança, onde há a confirmação da identidade. Dessa forma, embora a chave
continue sendo apenas uma entidade matemática, a infra-estrutura permite o
8
formalismo e os mecanismos de controle que garantem que uma política de
distribuição de chaves públicas seja implementada.
Pode-se dizer que as principais vantagens da criptografia assimétrica são:
a) a chave secreta não é compartilhada, uma vez que basta a chave pública
– de conhecimento geral – para a troca segura de mensagens;
b) provê autenticação, já que é possível validar assinatura com a chave
privada através da chave pública, partindo-se do princípio que a chave
privada não foi distribuída (uma vez que isso não é necessário) para
ninguém;
c) permite o não-repúdio, pois é possível verificar as chaves;
d) é escalável, possibilitando que exista uma hierarquia de controle e
distribuição de chaves, que pode ser facilmente ampliada.
Em contrapartida, existem pelo menos duas grandes desvantagens:
a) é lenta, pois os algoritmos, pela sua natureza matemática, são
computacionalmente intensivos;
b) requer uma autoridade de certificação, para que se possa garantir a
identidade e ter-se chaves públicas confiáveis.
A criptografia assimétrica não substitui a criptografia simétrica. O que
importa é reconhecer e identificar as limitações de cada método, de forma a usá-los
de uma maneira complementar para prover a segurança necessária às partes
envolvidas.
3 UNINDO A CRIPTOGRAFIA SIMÉTRICA À ASSIMÉTRICA
Uma vez que os algoritmos simétricos são mais rápidos e, dessa forma,
mais propícios à cifragem de grandes volumes de informação e os esquemas
assimétricos de criptografia são mais apropriados para distribuir chaves e garantir
autenticação e não-repúdio, pode-se, através de uma combinação das duas
técnicas, distribuir grandes volumes de informações criptografados com chaves
simétricas e, estas por sua vez, distribuídas com criptografia de chaves públicas.
As figuras 4 e 5 ilustram o processo de criptografar e descriptografar uma
mensagem usando uma combinação dos dois métodos, de forma a obter o máximo
em relação aos objetivos da criptografia.
9
Figura 4 -
Envio seguro de mensagens combinando a criptografia simétrica com a
assimétrica
FONTE: Curry (1997).
Essa forma de combinar os dois métodos de criptografia tem se tornado um
padrão, adotado em vários produtos comerciais, pois consegue, elegantemente,
resolver os problemas pertinentes às questões técnicas de cada método.
Figura 5 -
Recebimento seguro de mensagens combinando a criptografia Simétrica com a
assimétrica
FONTE: Curry (1997).
10
Isso, entretanto, não dispensa a necessidade de uma estrutura para controle
e distribuição de chaves públicas que garanta a identidade da chave, o que tem sido
resolvido através da implementação de protocolos, políticas e práticas de segurança
autenticação cada vez mais usadas e difundidas.
CONCLUSÃO
Ao serem analisadas as principais vantagens e desvantagens dos métodos
de criptografia simétrica (ou de chaves privadas) e criptografia assimétrica (ou de
chaves públicas), pode-se identificar claramente um caráter de complementaridade
entre os dois.
Enquanto a criptografia simétrica é ideal para grandes volumes de
informações, pelo desempenho dos algoritmos empregados, a criptografia
assimétrica se baseia também em um esquema de distribuição de chaves públicas
que permite garantir a autenticação das mensagens.
Assim, a criptografia assimétrica garante um meio seguro para a distribuição
das chaves simétricas, que podem, inclusive, ser diferentes a cada mensagem,
complementando as características que faltavam ao uso da criptografia de acordo
com seus objetivos básicos.
REFERÊNCIAS
CURRY, I. An Introduction to Cryptography. Addison, TX: Entrust Technologies, 1997.
DIFFIE, W.; HELLMAN, M.E. New Directions in Cryptography. IEEE Transactions on
Information Theory, n. 22, vol. 6, p. 644-654, 1976.
ELLIS, J.H. The Story of Non-Secret Encryption. Cheltenham, UK: Communications
Electronics Security Group, 1987. Disponível em: < http://jya.com/ellisdoc.htm>. Acessado
em: 25 set. 2006.
NEKOOGAR, F. Digital Cryptography: Rijndael encryption and AES applications.
TechOnline, 11 out. 2001. Disponível em:
<http://www.techonline.com/community/ed_resource/feature_article/14754>. Acessado em:
24 set. 2006.
SCHNEIER, B. Applied Cryptography. 2. ed. New York: John Wiley & Sons, 1996
TIMOFIECSYK, S. A. Criptografia. Bate Byte, n. 126, 2002. Disponível em:
<http://www.pr.gov.br/batebyte/edicoes/2002/bb126/criptografia.htm>. Acessado em: 25 set.
2006.
TRINTA, F.A.M.; MACÊDO, R.C. Um Estudo sobre Criptografia e Assinatura Digital.
Pernambuco: DI/UFPE, 1998. Disponível em:
<http://www.di.ufpe.br/~flash/ais98/cripto/criptografia.htm>. Acessado em: 25 set. 2006.