Criptografia Numaboa
Modos de operação das cifras de bloco
Qui 6 Out 2005 18:15 |
- Detalhes
- Categoria: Cifras de bloco
- Atualização: Terça, 20 Novembro 2012 18:08
- Autor: vovó Vicki
- Acessos: 30178
Cifras de Feistel
O diagrama a seguir mostra a estrutura genérica de uma cifra de Feistel, um esquema usado na grande maioria das cifras de bloco modernas. A entrada é quebrada em dois blocos de mesmo tamanho, geralmente chamados de esquerdo (L - left) e direito (R - right), que são repetidamente ciclados através do algoritmo. Em cada ciclo, uma função hash (f) é aplicada no bloco direito e na chave, e o resultado do hash é usado para fazer um XOR com o bloco esquerdo. Depois disto, os blocos são trocados. O resultado do XOR torna-se o novo bloco direito e o bloco direito inalterado torna-se o bloco esquerdo. O processo é então repetido algumas vezes.
A função hash é apenas um embaralhador de bits. A operação correta do algoritmo se baseia apenas na propriedade determinística da função hash, ou seja, se processar exatamente as mesmas entradas o resultado será sempre o mesmo.
Na decifração, o texto cifrado é dividido nos blocos esquerdo e direito. A chave e o bloco bloco direito são submetidos à função hash para se obter o mesmo resultado hash usado no último ciclo da cifragem (observe que o bloco direito permanece inalterado no último ciclo da cifragem). Depois disto é feito um XOR entre o hash e o bloco esquerdo para reverter o último ciclo da cifragem e o processo é repetido até que todos os ciclos tenham sido revertidos.
A segurança de uma cifra de Feistel depende essencialmente do tamanho da chave e da irreversibilidade da função hash. A forma ideal é quando o resultado da função hash se parece com bits randômicos, a partir dos quais não seja possível obter qualquer informação a respeito da(s) entrada(s).