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.