7
11/06/12 Aldeia Numaboa - Modos de operação das cifras de bloco 1/7 www.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 6 OUT 2005 18:15 (28 votos, média 4.32 de 5) Categoria: Cifras de bloco Última atualização: Domingo, 14 Junho 2009 17:04 Escrito por vovó Vicki Acessos: 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

Modos de operação das cifras de bloco

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