Criptografia – Cifra de Feistel

Cifra de Feistel

A maioria dos algoritmos de criptografia simétrica de bloco possuem uma estrutura descrita por Horst Feistel, da IBM, em 1973.

As entradas do algoritmo são blocos de texto plano de comprimento 2x bits e um chave K.

O bloco de texto plano é dividido em duas metades, L0 e R0.

Essas duas metades passam por n rodadas de processamento e então se combinam para produzir o bloco de texto cifrado.

Cada rodada r recebe como entrada Lr-1 e Rr-1, derivadas da rodada anterior, assim como uma subchave Kr, derivada da chave geral K.

Essas subchaves são diferentes de K entre si pois são geradas a partir de K com um algoritmo de geração de chaves.

As iterações possuem todas a mesma estrutura.

Uma substituição é realizada na metade esquerda dos dados, por meio da aplicação de uma função F na metade direita dos dados com a chave e então obtendo-se o XOR da saída desta função e da metade esquerda dos dados.

Adicionalmente, uma permutação é realizada invertendo-se as duas metades dos dados.

A função F é chamada de round function.

Permuta Básica da Cifra de Feistel

Permuta Básica da Cifra de Feistel

Rede de Feistel

Criptografia - Rede de Feistel

L0+R0 = Bloco de 64 bits de dados de entrada, divididos em duas metades de 32 bits. Essa estrutura, essa idéia básica da rede de Feistel será usada por diversos algoritmos de criptografia.

Como a Cifra de Feistel será aplicada depende da escolha de alguns parâmetros, como:

  • Tamanho do bloco; Geralmente 64 bits.
  • Tamanho da chave; Chaves maiores significam maior segurança, porém menor velocidade de execução do algoritmo.
  • Número de rodadas; Tamanho típico: 16
  • Algoritmo de geração de subchaves; Quanto mais complexo, melhor.
  • Função F: Quanto mais complexa, melhor.

Decriptando cifras de Feistel

O processo de  descriptografia de uma cifra de Feistel é igual à criptografia.

Usa-se, nesse caso, o texto cifrado como entrada do algoritmo, e as subchaves Kn em ordem reversa.

Aplicações da Cifra de Feistel

As cifras de Feistel são usadas nos seguintes algoritmos de criptografia:

  • DES
  • Blowfish
  • RC5
  • Twofish
  • 3DES

Entre muitos outros. Veremos nas próximas aulas de segurança e criptografia a descrição desses e de muitos outros algoritmos de criptografia.

Enquanto isso, assista a um vídeo sobre Cifra de Feistel no canal do YouTube da Bóson Treinamentos:

Sobre Fábio dos Reis (1324 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*