Pular para o conteúdo

Criptografia chave simétrica de bloco e de fluxo

Este artigo descreve o que são os algoritmos de chave simétrica, no que são baseados e suas aplicações. Descreve os algoritmos simétricos de bloco e de fluxo. Pode ser considerado uma continuação do artigo "Introdução a criptografia".
Elgio Schlemer elgio
Hits: 182.991 Categoria: Linux Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 4: Algoritmo de fluxo RC4

O algoritmo RC4 pode ser considerado um gerador de bits infinitos. Trata-se de uma máquina que gera bits pseudo-aleatórios, mas imprevisíveis, sem que eles se enquadrem em uma dízima periódica.

Exemplos de uma dízima seria se os bits gerados fossem 0100010, 01000101, ..., pois se estes bits fossem usados com XOR, haveria repetição de chave. Ao contrário, o RC4 gera uma sequência infinita de bits para os quais não se encontra um padrão de repetição.

Desta forma pode-se usar com segurança o XOR, pois se aplica uma operação XOR de cada bit da mensagem com um bit da chave. Implementa-se, na verdade, o conceito de chave infinita desejável ao XOR (nota: na verdade existem sim dizimas periódicas no RC4, mas ela é tão grande que pode-se considerar como chave infinita).

Mas um problema sério ocorre ao se pensar em como empregar este algoritmo na prática. Se me são gerados bits "aleatórios" para cifrar e eu usar estes bits, como o meu destinatário conseguirá decifrar a mensagem? Ele teria que, magicamente, gerar os mesmos bits "aleatórios" que eu e usá-los de forma sincronizada.

Se eu usei como chave inicial os bits 01001001011001100..., o meu destinatário deve chegar a estes mesmos bits. Não adianta enviar os bits que eu usei para ele pois seria inseguro e porque o número de bits que usei para cifrar uma mensagem M é da mesma quantidade do que da própria mensagem M. Explicando, se a mensagem a ser enviada possui 30 mil bits, a chave "aleatória" que usarei no RC4 tem também 30 mil bits!

Só que estes bits do RC4 não são tão aleatórios assim. Na verdade eles são matematicamente gerados por uma função matemática recursiva. Esta função precisa ser inicializada com uma semente, ou seja, um valor inicial.

Acontece que se duas máquinas RC4 forem inicializadas com a mesma semente, elas irão produzir os mesmos bits "aleatórios". Para que o destinatário possa decifrar minha mensagem, portanto, basta que ele inicialize o seu RC4 com o mesmo número que eu usei para inicializar o meu. Este número, de 64 ou 128 bits, passa a ser a chave k que compartilho com o meu destino, em um esquema demonstrado na Figura 3.
Linux: Criptografia chave simétrica de bloco e de fluxo
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O algoritmo RC4 é atualmente muito empregado, como por exemplo em comunicações SSL (HTTPS, dentre outras). Sua rapidez e a vantagem de ser de fluxo são desejáveis na comunicação.

Qualquer algoritmo de bloco pode ser convertido para um de fluxo em um esquema de realimentação de saída, o que se chama de modo CFB ou modo OFB.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução
   2. Algoritmos simétricos de bloco
   3. Algoritmos simétricos de fluxo
   4. Algoritmo de fluxo RC4
   5. Conclusão e referências
   6. Anexo A: problema do XOR

Armazenamento de senhas no Linux

Estrutura do Iptables

Introdução a criptografia

Estrutura do IPTables 2: a tabela nat

Cuidado com números em Ponto Flutuante

Definição de hacker

Ajustes finos no Bind (servidor DNS)

Nikto - Tutorial básico e avançado

Fazendo sua conexão remota por SSH mais segura

wlmproxy - um proxy superior

#1 Comentário enviado por elgio em 09/03/2009 - 15:08h
***** ERRATA: No desenho da Figura 1 onde lê-se Bytes na verdade são bits. 288 Bits, 320 Bits
#2 Comentário enviado por gustavs em 29/04/2009 - 22:06h
Muito bom! Não conhecia praticamente nada de criptografia, agora me interessei.
Recomenda alguma leitura nesse assunto ?
#3 Comentário enviado por adrianoturbo em 02/05/2009 - 14:24h
Interessante a utilização do XOR.
#5 Comentário enviado por thiagods.ti em 17/06/2009 - 16:12h
Teus artigos geralmente são bons, hoje foi só ver que você lançou um artigo novo que a primeira coisa que eu faço quando tenho tempo é ler.

Parabéns =)
#6 Comentário enviado por Credmann em 21/06/2009 - 17:35h
Este artigo é quase a resposta da minha dúvida:
Qual criptografia tem melhor desempenho numa sessão interativa SSH?
#7 Comentário enviado por leomarcsys em 05/01/2012 - 18:30h
Há uma imprecisão quanto a informação sobre os tamanhos de bloco do AES.
O algoritmo de Rijndael, vencedor do concurso do nist para a definição do AES, prevê tamanhos variados de blocos e de chaves, no entanto o fips-197 que especifica o AES define apenas o tamanho de bloco como 128 bits.
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

Contribuir com comentário

Entre na sua conta para comentar.