YouTube Facebook Twitter
Apostilas Artigos Tutoriais Aulas Vídeos Blog Ferramentas de Rede Fórum Downloads Colabore Fale Conosco
» artigos
Cifras em Bloco e Cifras de Fluxo

Prof. Especialista José Mauricio Santos Pinheiro - 15/06/2010

 

Introdução

A forma mais utilizada para prover a segurança em pontos vulneráveis de uma rede de computadores é a utilização da criptografia. A RFC 4949 (Request For Coments nº 4949) define o termo criptografia como a ciência matemática que lida com a transformação de dados para mudar seu significado em algo ininteligível para o inimigo, isto é, esconder seu conteúdo semântico prevenindo sua alteração ou o seu uso sem autorização.

A palavra tem origem grega (kriptos = escondido, oculto e grifo = grafia) e define a arte ou ciência de escrever em cifras ou em códigos utilizando um conjunto de técnicas que torna a mensagem incompreensível e chamada comumente de "texto cifrado", através de um processo chamado cifragem, permitindo que apenas o destinatário desejado consiga decodificar e ler a mensagem com clareza. As mensagens legíveis são chamadas de texto plano ou texto limpo e as ilegíveis, são chamadas de texto cifrado.

Criptografia Simétrica e Assimétrica

A criptografia fornece técnicas para codificar e decodificar dados, tais que os mesmos possam ser armazenados, transmitidos e recuperados sem sua alteração ou exposição. Essas técnicas utilizam conceitos matemáticos para a construção de seus algoritmos e podem ser usadas como um meio efetivo de proteção de informações suscetíveis a ataques, estejam elas armazenadas em algum dispositivo de armazenamento de dados ou sendo transmitidas pela rede de comunicação. Seu principal objetivo é prover uma comunicação segura, garantindo serviços básicos de autenticação, privacidade e integridade dos dados.

A criptografia moderna pode ser classificada como Simétrica ou Assimétrica. Na criptografia assimétrica existem duas chaves, uma conhecida por chave pública e a outra por chave privada. Já a criptografia simétrica define uma única chave para cifrar e decifrar uma mensagem. Os algoritmos Simétricos, por sua vez, podem ser subdivididos em algoritmos em bloco e algoritmos de fluxo. Um algoritmo é tanto mais poderoso (e eficiente) quanto melhor for a utilização que faz da chave e quanto mais resistente for à criptoanálise (processo que tenta descobrir o conteúdo cifrado pelo algoritmo, sem necessitar de qualquer tipo de chave).

Encontramos soluções que utilizam ambas as técnicas simultaneamente, onde a criptografia assimétrica é usada para o estabelecimento da comunicação segura inicial e para a troca de uma chave simétrica, que será utilizada na restante comunicação. A vantagem desta solução reside na diminuição da carga computacional, uma vez que a criptografia assimétrica requer um maior esforço computacional relativamente à criptografia de chave simétrica, ganhando-se assim em termos de desempenho.

Criptografia Simétrica

A criptografia simétrica é utilizada para prover a segurança das informações. Nesta técnica uma mesma chave é compartilhada entre o emissor e o receptor, sendo utilizada para criptografar e decriptografar a mensagem (Figura 1). Com este modelo pode-se garantir a confidencialidade da mensagem porque somente o emissor e o receptor têm conhecimento da chave secreta.

Em cifradores simétricos, o algoritmo de criptografia e decriptografia são os mesmos, mudando apenas a forma como são utilizadas as chaves e texto cifrado não contém qualquer parte da chave e não sofre alteração quanto ao seu tamanho.

 

Figura 1 - Criptografia Simétrica

 

A principal vantagem do modelo de criptografia simétrica é a eficiência e velocidade dos algoritmos que são mais rápidos do que os algoritmos assimétricos. Esses algoritmos podem ser divididos em dois tipos principais: as chamadas cifras em bloco e as cifras de fluxo. A diferença entre eles é que as cifras de fluxo processam cada bit da mensagem individualmente (processamento bit a bit), enquanto que as cifras em bloco processam blocos de informação de uma só vez, concatenando-os no final do processo. Neste caso, são usados blocos de 64 bits ou 128 bits tipicamente.

 

Cifras em Bloco

Na cifra em bloco, um bloco de determinado tamanho deve ser cifrado de cada vez e o conjunto de operações matemáticas envolvendo a chave é repetido a cada bloco, como mostra a Figura 2. Não é possível cifrar menos do que o tamanho de um bloco. Os algoritmos que operam com blocos efetuam operações de substituição e transposição simultaneamente.

 

Figura 2 – Cifra em Bloco

No caso da cifra da figura anterior, o tamanho do bloco é 64 bits. Como o arquivo não é múltiplo de 64 bits, um enchimento, chamado de padding, foi inserido no bloco 5. Cabeçalhos inseridos no arquivo cifrado devem informar qual foi o algoritmo usado, qual o tamanho de bloco e qual o tamanho real do arquivo para que no momento da decriptação o padding seja descartado.

As cifras em bloco são melhores para criptografar dados estáticos, onde já se sabe antecipadamente o tamanho e se podem dividir em blocos de M bits. Um possível problema com cifras em bloco é o fato da existência de blocos repetitivos que acabam por criar um padrão. Para evitar o reconhecimento de padrões repetitivos usam-se os feedback modes:

  • Electronic Code Book (EBC) - Neste modo, a mensagem é dividida em blocos de tamanho adequado, cada bloco é cifrado em separado e os blocos cifrados são concatenados na mesma ordem (Figura 3). O grande inconveniente desta técnica é que blocos da mensagem original idênticos vão produzir blocos cifrados idênticos, o que pode não ser desejável.

 

Figura 3 - Modo EBC

  • Cipher Block Chaining (CBC) - Neste modo é feita uma operação OU EXCLUSIVO (XOR) do bloco de texto plano com o texto cifrado antecedente, e então ocorre a codificação (Figura 4). É utilizado um vetor de inicialização para iniciar o processo, já que não existe texto cifrado para o bloco inicial.

Figura 4 - Modo CBC

  • Cipher Feedback Block (CFB) - Neste modo, cada bloco de texto cifrado antecedente é codificado, e o resultado é combinado com o bloco de texto plano através do operador XOR para produzir o bloco cifrado atual (Figura 5). Também se utiliza um vetor de inicialização para iniciar o processo.

Figura 5 - Modo CFB

  • Output Feedback Block (OFB) - Este modo é muito similar ao CFB, exceto pelo fato de que a quantidade de XOR com cada bloco de texto plano é gerada independentemente do bloco de texto plano ou do bloco de texto cifrado (Figura 6).

 

Figura 6 - Modo OFB

Cifras de Fluxo

Cifras em bloco operam em blocos de dados. Cifras de fluxo, também conhecidas como cifras em cadeia, operam em unidades menores, geralmente bits, o que as torna bem mais rápidas.

Cifras de fluxo geram uma seqüência de bits que será usada como chave, conhecida como keystream, a partir de uma chave inicial. A encriptação ocorre pela combinação do texto plano com a keystream através de operações XOR (Figura 7).

Na cifra de fluxo, não é necessário ter um bloco para cifrar. Cifra-se o que se tem e, se desejar, no momento que se quiser. Por exemplo, os algoritmos de substituição usados no passado permitiam cifrar letra a letra e não precisavam ser agrupadas para completar um bloco. De fato, todos os algoritmos históricos são considerados como cifras de fluxo.

 

Figura 7 - Cifra de Fluxo

 

Bibliografia

SCHLEMER, Elgio e GRAVATAÍ, Ulbra. Conceitos de Criptografia de Protocolos SSL.
Disponível em: https://pt.slideshare.net/tchelinux/elgio-conceitos-decriptografiaeoprotocolossl
Acesso em: 14 de junho de 2010

KONHEIM, Alan G. Computer Security and Cryptography. Canadá: John Wiley & Sons, Inc., 2007.

MOLLIN, Richard A. An Introduction to Cryptography, 2 ed. EUA: Chapman & Hall/CRC, 2007.

REZENDE, Pedro Antonio Dourado de. Criptografia e Segurança na Informática. Brasilia: CopyMarket.com, 2000.

SILVA, Pedro Tavares; CARVALHO, Hugo; TORRES, Catarina Botelho. Segurança dos Sistemas de Informação - Gestão Estratégica da Segurança Empresarial. Portugal: Centro Atlântico, 2003.

STALLINGS, William. Criptografia e segurança de redes: Princípios e práticas, 4 ed. São Paulo: Prentice Hall, 2008.

 


José Maurício Santos Pinheiro
Professor Universitário, Projetista e Gestor de Redes, 
membro da BICSI, Aureside e IEC.

Autor dos livros:
 
· Guia Completo de Cabeamento de Redes ·
· Cabeamento Óptico ·
· Infraestrutura Elétrica para Redes de Computadores
·
· Biometria nos Sistemas Computacionais - Você é a Senha ·

E-mail: jm.pinheiro@projetoderedes.com.br

Powered by Disqus
© www.projetoderedes.com.br - Termos e Condições de Uso