Titulo: Programa de Criptografia Rijndael-AES para Cifragem de Arquivos

 

Nome dos autores: Getúlio Antero de Deus Júnior e Patrícia Cursino Suares.

Unidade Acadêmica onde o trabalho foi desenvolvido: Escola de Engenharia Elétrica e de Computação.

E-mail (do autor principal): getulio@eee.ufg.br.

Palavras-Chave (no máximo 4): criptografia; algoritmo Rijndael-AES; cifragem de arquivos.

Introdução

A segurança é um dos principais assuntos relacionados com a transmissão dos dados, sejam estes dados transmitidos de forma eletrônica ou não. Assim, o gerenciamento de sistemas de segurança pode ser melhorado examinando periodicamente por problemas ou pontos inseguros. Vários aspectos do sistema podem ser verificados, tais como:

 

·        Senhas curtas e fáceis de adivinhar.

·        Programas não autorizados em diretórios de sistemas.

·        Proteções inadequadas para diretórios.

·        Entradas perigosas em caminhos de pesquisa.

·        Mudanças em programas do sistema detectados com o uso de códigos de correção de erros.


As várias medidas que um sistema operacional pode tomar para autenticação podem não oferecer segurança suficiente para dados secretos, visto que uma maior quantidade de dados secretos está sendo transmitida por meio de canais onde a mensagem pode ser interceptada ou até mesmo não disponibilizada para todas as pessoas em servidores de Internet. Deste modo, são necessários mecanismos de proteção dos dados obtidos da rede.

 

A codificação dos dados possibilita tal proteção dos dados. A criptografia é um conjunto de técnicas para codificar textos originais em códigos cifrados, com o objetivo de inibir a leitura imediata por usuários não autorizados. Existe uma quantidade razoável de programas e algoritmos para os cálculos para se codificar e decodificar mensagens.

 

Não resta dúvida que a troca de arquivos codificados (cifrados) possibilitados pela Internet é crescente. Deste modo, foi implementado um programa de computador que utiliza o algoritmo de criptografia Rijndael-AES (do inglês: RijndaelAdvanced Encryption Standard). O programa implementado é capaz de garantir a privacidade, integridade e autenticidade do emissor na disponibilização de arquivos na Internet para um público dedicado (exclusivo). Vale ressaltar que o conceito de segurança é muito mais amplo do que o abordado nesse artigo. Segurança significa privacidade, integridade e autenticidade do emissor. Privacidade é garantia de que a mensagem não será atendida por um intruso que, de alguma forma, consiga lê-la no meio de transmissão. Integridade é a garantia de que a mensagem não foi modificada por um eventual intruso ativo durante a transmissão. Autenticidade do emissor é a garantia de que o emissor da mensagem é realmente que diz ser. Assim, a criptografia computacional protege o sistema quanto à ameaça de perda de confiabilidade, integridade dos dados ou não-repudiação. É utilizada para garantir: sigilo, integridade, autenticação do usuário, autenticação do remetente, autenticação do destinatário e autenticação de atualidade [1].

Material e Método (Metodologia):

 

Técnicas Clássicas de Criptografia

 

Basicamente, os sistemas de criptografia podem ser classificados de acordo com dois critérios: tipo de tratamento de mensagem e tipo de chave. Segundo o tratamento de mensagem, os sistemas se classificam em cifrado em blocos de 64 a 128 bits (DES, IDEA, RSA) e cifrado em fluxo bit a bit (A5, RC4, SEAL). Segundo o tipo de chaves, os sistemas se dividem em cifrado com chave secreta e cifrado com chave pública [2]. Assim, os algoritmos criptográficos utilizam, em geral, uma série de combinações de substituições e transposições, e sua eficiência é tão maior quando mais difícil for decifrá-lo sem o conhecimento da chave. Um outro fator que dificulta a quebra do código é o tamanho da chave. Para uma chave longa, como as chaves de 128 bits, torna-se muito difícil a busca por força bruta pela chave correta, mesmo para computadores mais rápidos disponíveis hoje no mercado.

 

Os algoritmos de criptografia podem ser classificados em simétricos e assimétricos. Os algoritmos simétricos, ou convencionais, utilizam uma chave para cifrar e decifrar as mensagens. A prinicipal atração dos algoritmos simétricos é o seu desempenho, pois são mais rápidos do que os algoritmos assimétricos. Entretanto, o algotimo simétrico deixa de ser interessante para um grande número de usuários e aplicações comerciais.

 

Os algoritmos de chave pública e privada, também conhecidos de algoritmos de chave assimétrica, utilizam duas chaves: uma pública que pode ser divulgada, e outra secreta, conhecida somente por pessoas autorizadas [3]. Em um sistema de chave assimétrica, cada usuário tem duas chaves: uma chave pública e uma chave privada. As mensagens criptografadas com uma das chaves do par só podem ser descriptografadas com a outra chave correspondente. Portanto, qualquer mensagem criptorgrafada com a chave privada apenas pode ser descriptografada com a chave pública e vice-versa. Como o nome sugere, normalmente a chave pública é mantida universalmente disponível. A outra chave, a chave privada, é mantida em segredo.

 

Para cifrar a mensagem utiliza-se a chave pública do destinário e a privada do remetente. Para decifrá-la utiliza-se a chave privada do destinatário e a pública do remetente. Dessa forma, a privacidade é garantida, visto que apenas o destinatário consegue decifrar a mensagem (conhecimento de sua chave privada).

 

O Padrão Rijndael-AES

 

O padrão Rijndael-AES é descrito em [4]. Esse padrão especifica o algoritmo Rijndael, um algoritmo de bloco simétrico que pode processar tamanhos de blocos de textos de 128 bits, usando chaves simétricas com comprimentos de 128, 192 e 256 bits (tamanho da chave variável). O algoritmo pode ser usado com três diferentes comprimentos de chaves referenciados como “AES-128”, “AES-192”, e “AES-256”. As especificações do padrão incluem as seguintes seções:

 

·        Definições dos termos, acrônimos, e os parâmetros dos algoritmos, símbolos, e funções.

·        Notação e convenções usadas na especificação do algoritmo, incluindo a ordem e o número de bits e palavras.

·        Propriedades matemáticas que são úteis no entendimento do algoritmo.

·        Especificação do algoritmo, cobrindo a expansão da chave, rotinas de codificação e decodificação.

·        Implementação em questão, como o suporte do comprimento da chave, restrições da chave e tamanhos adicionais do bloco, chave ou  número de iterações.

 

O padrão conclui com muitos apêndices que incluem exemplos para expansão e codificação da chave, exemplos de mensagens para codificação e decodificação, e uma lista de referências.

 

Resultados e Discussão:

 

O programa que implementa o algoritmo Rijndael foi elaborado na linguagem Borland Builder C/C++. A figura 1 apresenta o programa codificador/decodificador implementado. Note que qualquer arquivo, independente do formato, pode ser codificado/decodificado pelo programa. Uma senha com 16 caracteres deve ser fornecida para a codificação/decodificação do arquivo. Vários testes foram executados e mostraram a eficiência do programa.

 

 

Figura 1: Codificador Rijndael, implementado na linguagem Borland Builder C/C++.

 

Conclusões:

A troca de informações codificadas torna-se uma real necessidade à medida que as comunicações particulares estão sendo monitoradas por canais eletrônicos. Muitos algoritmos de criptografia foram propostos, embora muitos ainda estão sendo desenvolvidos. Neste trabalho, foi implementado o algoritmo Rijndael-AES. Vários testes foram realizados, mostrando a eficiência do método. Outros algoritmos apropriados para a codificação/decodificação de arquivos ainda serão implementados pelo programa.

 

Fonte de financiamento: Não há.

 

Referências Bibliográficas:

[1]

 G. Araújo, Transações Seguras via Web, http://www.rnp.br/newsgen/9803/https.html.

[2] J. R. A., Curso de Seguridad Informática y Criptografía, Material Docente de Libre Distribución, http://ribanet.com/aprende/seguridad/libro/.

[3] A. B. Silva, Criptografia, Revista FIPEP, Vol. 1, nº. 1, 11/2001, pp. 28-30.

[4] Federal Information Processing Standards: Specification for the Advanced Encryption Standard (AES), Publication 197, November 26, 2001.