Upload
wagner-borges
View
144
Download
3
Embed Size (px)
Citation preview
11/06/12 Aldeia Numaboa - Modos de operação das cifras de bloco
1/7www.numaboa.com.br/criptografia/bloco/355-modos-de-operacao?tmpl=component&print=1&page=
Criptografia Numaboa
Modos de operação das cifras de bloco
QUI
6OUT2005
18 : 15
(28 votos, média 4.32 de 5)
Categoria: Cifras de blocoÚltima atualização: Domingo, 14 Junho 2009 17:04Escrito por vovó VickiAcessos: 16246
As cifras de bloco operam em blocos de tamanho fixo, geralmente de 64 ou 128 bits. Para cifrar
mensagens cujo comprimento ultrapasse o tamanho do bloco, existem vários modos de operação. A
maioria apenas confere confidencialidade; algumas proporcionam confidencialidade e autenticação.
Este texto é um resumo dos principais modos de operação das cifras de bloco.
ECB - Electronic codebook
O modo de operação mais simples é o electronic codebook - ECB (livro de código eletrônico). A
mensagem clara é fracionada em blocos de tamanho fixo e cada bloco é cifrado isoladamente. No
final, a mensagem cifrada é obtida pela concatenação dos blocos cifrados.
Cifragem modo Electronic Codebook - ECB
Decifração modo Electronic Codebiik - ECB
A desvantagem deste método é que blocos de texto claro iguais produzem também blocos cifrados
iguais, ou seja, o método não esconde o padrão dos dados. Este modo de operação não acrescenta
nada à confidencialidade proporcionada pela cifra. A comparação do resultado da aplicação de uma
cifra de bloco nos dados de uma imagem gráfica, usando diversos modos de operação, mostra de
11/06/12 Aldeia Numaboa - Modos de operação das cifras de bloco
2/7www.numaboa.com.br/criptografia/bloco/355-modos-de-operacao?tmpl=component&print=1&page=
forma clara a contribuição à confidencialidade proporcionada pelos modos de operação.
Imagem original Imagem com ECB Imagem não ECB
A imagem da direita mostra o aspecto da imagem original cifrada com CBC, CTR ou qualquer outro
modo de operação mais seguro. Estes modos fazem com que a imagem cifrada não guarde resquícios
da imagem origianl porque introduzem distúrbios (chamados de ruído) de forma aleatória (ou
randômica). Esta aparência, no entanto, não garante que o método de cifragem aplicado seja seguro.
Mesmo uma cifra de baixíssima segurança pode introduzir ruído.
O modo ECB também pode fazer com que protocolos sem proteção de integridade se tornem ainda
mais vulneráveis a ataques, principalmente a ataques de replay (veja em Criptoanálise/Tipos de
ataque).
CBC - Cipher-block chaining
No modo de operação cipher-block chaining - CBC (corrente de blocos), é feita uma operação XOR
entre cada novo bloco de texto claro com o bloco cifrado obtido na etapa imediatamente anterior.
Desta forma, cada um dos blocos cifrados depende de todos os blocos de texto claro anteriores.
Cifragem modo Cipher-block Chaining - CBC
11/06/12 Aldeia Numaboa - Modos de operação das cifras de bloco
3/7www.numaboa.com.br/criptografia/bloco/355-modos-de-operacao?tmpl=component&print=1&page=
Decifração modo Cipher-block Chaining - CBC
O CBC é um dos modos de operação mais utilizados. Sua maior desvantagem é ser sequencial. Como
não pode ser usado em paralelo (pois sempre depende do resultado anterior), seu uso dificulta o
processamento de blocos em paralelo, o que melhoraria o desempenho do método.
PCBC - Propagating cipher-block chaining
O modo de operação propagating cipher-block chaining - PCBC (corrente de blocos em propagação)
foi projetado para propagar ou esparramar melhor que o CBC pequenas alterações no texto cifrado. É
usado quase que exclusivamente no Kerberos e no WASTE. As rotinas de cifragem e decifração são
as seguintes:
O vetor de inicialização é
CFB - Cipher feedback e OFB - output feedback
O modo Output Feedback (OFB) transforma uma cifra de bloco num gerador de números pseudo-
aleatórios. O texto cifrado realimenta a cifra de bloco e este processo é repetido para produzir um
fluxo de bits pseudo-randômicos. O fluxo de bits é totalmente determinado pelo algoritmo, pela
chave, por um vetor de inicialização e pelo número de bits que realimentam a cifra em cada etapa. O
fluxo de bits pode então servir para fazer uma operação XOR com o texto claro afim de produzir o
texto cifrado, transformando efetivamente a cifra de bloco numa cifra de fluxo.
O modo Cipher Feedback (CFB) difere do OFB apenas porque o texto cifrado (depois da etapa XOR)
realimenta o método ao invés da saída da cifra de bloco (antes da etapa XOR). Uma cifra de bloco
operando no modo CFB não pode ser usada como um gerador de números randômicos.
Com o cipher feedback um bloco de fluxo de chave é calculado cifrando-se o bloco de texto cifrado
anterior.
11/06/12 Aldeia Numaboa - Modos de operação das cifras de bloco
4/7www.numaboa.com.br/criptografia/bloco/355-modos-de-operacao?tmpl=component&print=1&page=
Cifragem modo Cipher Feedback - CFB
Decifração modo Cipher Feedback - CFB
O modo output feedback gera o próximo bloco de fluxo de chave cifrando o bloco de fluxo de chave
anterior:
Cifragem modo Output Feedback - OFC
11/06/12 Aldeia Numaboa - Modos de operação das cifras de bloco
5/7www.numaboa.com.br/criptografia/bloco/355-modos-de-operacao?tmpl=component&print=1&page=
Decifração modo Output Feedback - OFB
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.
Cifras de Feistel
11/06/12 Aldeia Numaboa - Modos de operação das cifras de bloco
6/7www.numaboa.com.br/criptografia/bloco/355-modos-de-operacao?tmpl=component&print=1&page=
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).
CTR - Counter
Assim como o OFB, o modo de operação counter - CTR (contador) transforma a cifra de bloco numa
cifra de fluxo. Ele cria o prócimo bloco de fluxo de chave cifrando os valores sucessivos de um
"contador". O contador pode ser qualquer função simples que produza uma sequência que, com
certeza, só srá repetida depois de um longo intervalo de tempo. Apesar dessa exigência, os
contadores simples são os mais utilizados. O modo CRT possui características muito semelhantes às
do OFB, porém permite um acesso randômico na decifração e é comprovadamente seguro se a cifra
de bloco também for segura.
Cifragem modo Counter - CTR
Decifração modo Counter - CTR
Proteção de Integridade e propagação de erro
Os modos de operação das cifras de bloco mostrados acima não proporcionam qualquer proteção de
11/06/12 Aldeia Numaboa - Modos de operação das cifras de bloco
7/7www.numaboa.com.br/criptografia/bloco/355-modos-de-operacao?tmpl=component&print=1&page=
integridade. Isto significa que um atacante, apesar de não conhecer a chave, pode modificar o fluxo
de dados de acordo com as suas necessidades. Hoje em dia se sabe que, sempre que houver uma
cifragem de dados, é também essencial que se adicione uma proteção de integridade para garantir a
segurança. Em operações seguras, o VI (vetor de inicialização) e o texto cifrado gerado através
destes modos de operação deveriam ser autenticados com um MAC que deve ser checado antes de
se efetuar uma decifração.
Antes desses fatos serem conhecidos, era comum a discussão da "propagação de erros" dos modos
de operação. Observava-se, por exemplo, que um erro em um dos blocos cifrados transmitidos
resultaria num erro em apenas um dos blocos de texto claro recuperado se o modo fosse ECB,
enquanto que, no modo CBC, o erro afetaria dois blocos.
Propagação de erro no modo CBC
Havia os que achavam que esta resiliência era desejável devido aos erros randômicos, como também
havia os que argumentavam que isto aumentava as possibilidades de atacantes modificarem
mensagens em proveito próprio. Entretanto, quanto uma proteção de integridade efetiva é aplicada,
tais erros fazem com que a mensagem seja (com grande probabilidade) descartada.
O vetor de inicialização
Para finalizar, algumas considerações sobre os vetores de inicialização. Com exceção do modo de
operação ECB, todos os outros requerem um vetor de inicialização - VI. Este vetor é uma espécie de
"bloquinho" (dummy block) cuja única função é inicializar o processo para o primeiro bloco. Além disso,
este bloquinho também adiciona um elemento randômico ao processo. O VI não precisa ser secreto,
mas é importante que o mesmo VI não seja reutilizado com a mesma chave. Nos modos CBC e CFB, a
reutilização de VIs deixa vazar algumas informações. Nos modos OFB e CTR, VIs repetidos destroem
totalmente a segurança. Já no modo CFB, o VI precisa ser gerado randomicamente e ser mantido em
segredo até que o primeiro bloco de texto claro esteja pronto para ser cifrado.
Fontes
Connected: An Internet Encyclopedia
Block cipher modes of operation
Crypt FAQ