Modos de operação da cifra de bloco

Advertisements

Neste capítulo, vamos discutir os diferentes modos de operação de uma cifra de bloco. Estas são regras de procedimento para uma cifra de bloco genérica. Curiosamente, os diferentes modos resultam em diferentes propriedades que adicionam à segurança da cifra do bloco subjacente.

Uma cifra de bloco processa os blocos de dados de tamanho fixo. Normalmente, o tamanho de uma mensagem é maior do que o tamanho do bloco. Assim, a mensagem longa é dividida em uma série de blocos de mensagens sequenciais, e a cifra opera nestes blocos um de cada vez.

Modo Livro de Códigos Eletrônicos (BCE)

Este modo é uma maneira mais direta de processar uma série de blocos de mensagens sequenciais listadas.

Operação

  • O utilizador pega no primeiro bloco de texto em quadrícula e encripta-o com a chave para produzir o primeiro bloco de texto em quadrícula.

  • Pega então o segundo bloco de texto em quadrado e segue o mesmo processo com a mesma chave e assim sucessivamente.

O modo BCE é determinístico, ou seja, se os blocos de texto simples P1, P2,…, Pm são codificados duas vezes sob a mesma chave, os blocos de texto em cifra de saída serão os mesmos.

Na verdade, para uma dada chave tecnicamente podemos criar um livro de códigos de textos em cifra para todos os blocos de texto em cifra possíveis. A encriptação implicaria, então, apenas a procura do texto em forma de texto e a selecção do texto em forma de cifra correspondente. Assim, a operação é análoga à atribuição de palavras de código num livro de códigos, obtendo-se assim um nome oficial – Modo de operação do livro de códigos electrónico (BCE). É ilustrado da seguinte forma –

Análise do Modo BCE

Na realidade, qualquer dado de aplicação geralmente tem informação parcial que pode ser adivinhada. Por exemplo, o intervalo de salário pode ser adivinhado. Um texto criptográfico do BCE pode permitir que um atacante adivinhe o texto em quadrícula por tentativa-e-erro se a mensagem em quadrícula estiver dentro do previsível.

Por exemplo, se um texto criptográfico do modo BCE for conhecido para encriptar um valor de salário, então um pequeno número de tentativas permitirá que um atacante recupere o valor. Em geral, não queremos usar uma cifra determinística, e portanto o modo ECB não deve ser usado na maioria das aplicações.

Cadeamento de blocos de cifras (CBC) Mode

O modo de operação CBC fornece dependência de mensagens para a geração de texto cifrado e torna o sistema não determinístico.

Operação

O funcionamento do modo CBC é descrito na ilustração a seguir. Os passos são os seguintes –

  • Load the n-bit Initialization Vector (IV) in the top register.

  • XOR o bloco de n-bit plaintext com valor de dados no top register.

  • Encrypt the result of XOR operation with underlying block cipher with key K.

  • Cortar o resultado da operação XOR com a chave K.

  • Para decifrar, os dados IV são XOR com o primeiro bloco de texto cifrado decifrado. O primeiro bloco de texto criptografado também é alimentado para registrar a substituição de IV para decriptação do próximo bloco de texto criptografado.

Análise do modo CBC

No modo CBC, o bloco de texto plaintexto atual é adicionado ao bloco de texto criptografado anterior, e então o resultado é criptografado com a chave. A decifração é assim o processo inverso, que envolve decifrar o texto criptografado atual e depois adicionar o bloco de texto criptografado anterior ao resultado.

A vantagem do CBC sobre o BCE é que a mudança de IV resulta em texto criptografado diferente para mensagem idêntica. No lado da desvantagem, o erro na transmissão é propagado para poucos blocos adicionais durante a decriptação devido ao efeito de encadeamento.

Vale a pena mencionar que o modo CBC forma a base para um mecanismo bem conhecido de autenticação da origem dos dados. Assim, ele tem uma vantagem para aquelas aplicações que requerem tanto criptografia simétrica quanto autenticação de origem de dados.

Modo CFB (CFB)

Neste modo, cada bloco de texto criptografado é ‘alimentado de volta’ para o processo de criptografia a fim de criptografar o próximo bloco de texto plaintexto.

Operação

O funcionamento do modo CFB é descrito na ilustração a seguir. Por exemplo, no sistema atual, um bloco de mensagem tem um tamanho ‘s’ de bits onde 1 < s < n. O modo CFB requer um vetor de inicialização (IV) como o bloco inicial aleatório de entrada de n bits. O IV não precisa ser secreto. Os passos de operação são –

  • Carregar o IV no registro superior.

  • Encryptar o valor dos dados no registro superior com a cifra do bloco subjacente com a chave K.

  • Tirar apenas o número ‘s’ dos bits mais significativos (bits esquerdos) de saída do processo de encriptação e XOR-los com o bloco de mensagem de texto em forma de bit ‘s’ para gerar o bloco de texto em forma de cifra.

  • Agregar bloco de texto criptografado para o registro superior deslocando os dados já presentes para a esquerda e continuar a operação até que todos os blocos de texto em quadratura sejam processados.

  • Essencialmente, o bloco de texto criptografado anterior é criptografado com a chave, e então o resultado é XOR para o bloco de texto em quadratura atual.

  • Passos simples são seguidos para a decriptação. O modo pré-decidido IV é inicialmente carregado no início da decifração.

Análise do modo CFB

Modo CFB difere significativamente do modo BCE, o texto cifrado correspondente a um determinado bloco de texto simples depende não só desse bloco de texto simples e da chave, mas também do bloco de texto simples anterior. Em outras palavras, o bloco de texto cifrado depende da mensagem.

CFB tem uma característica muito estranha. Neste modo, o usuário descriptografa o texto criptografado usando apenas o processo de criptografia do bloco de cifra. O algoritmo de descriptografia da cifra de bloco subjacente nunca é usado.

Aparentemente, o modo CFB está convertendo uma cifra de bloco em um tipo de cifra de fluxo. O algoritmo de criptografia é usado como um gerador de fluxo de chaves para produzir um fluxo de chaves que é colocado no registro inferior. Este fluxo de chaves é então XORed com o texto em quadrado como no caso da cifra de fluxo.

Convertendo uma cifra de bloco em uma cifra de fluxo, o modo CFB fornece algumas das propriedades vantajosas de uma cifra de fluxo enquanto mantém as propriedades vantajosas de uma cifra de bloco.

No lado oposto, o erro de transmissão é propagado devido à mudança de blocos.

Modo OFB (Output Feedback)

Envolve a alimentação dos sucessivos blocos de saída da cifra do bloco subjacente de volta para ela. Estes blocos de feedback fornecem seqüência de bits para alimentar o algoritmo de criptografia que atua como gerador do fluxo de chaves como no caso do modo CFB.

O fluxo de chaves gerado é XOR-ed com os blocos de texto plano. O modo OFB requer um IV como o bloco de entrada inicial aleatório de n bits. O IV não precisa ser secreto.

A operação é descrita na ilustração seguinte –

Modo CTR (CTR)

Pode ser considerado como uma versão baseada em contador do modo CFB sem o feedback. Neste modo, tanto o emissor quanto o receptor precisam acessar um contador confiável, que calcula um novo valor compartilhado cada vez que um bloco de texto criptografado é trocado. Este contador compartilhado não é necessariamente um valor secreto, mas o desafio é que ambos os lados devem manter o contador sincronizado.

Operação

A criptografia e a decriptação no modo CTR estão representadas na ilustração a seguir. Os passos em operação são –

  • Carregar o valor inicial do contador no registro superior é o mesmo tanto para o remetente quanto para o receptor. Ele desempenha o mesmo papel que o IV no modo CFB (e CBC).

  • Encryptar o conteúdo do contador com a chave e colocar o resultado no registro inferior.

  • Passar o primeiro bloco de texto plaintexto P1 e XOR isto para o conteúdo do registro inferior. O resultado disto é C1. Envie C1 para o receptor e atualize o contador. A atualização do contador substitui o feedback do texto cifrado no modo CFB.

  • Continuar desta maneira até que o último bloco de texto plaintexto tenha sido encriptado.

  • A decriptação é o processo inverso. O bloco de texto criptografado é XORed com a saída do conteúdo criptografado do valor do contador. Após a decriptação de cada contador de blocos criptografados é atualizado como em caso de criptografia.

Análise do modo de contador

Não tem dependência de mensagens e, portanto, um bloco de texto criptografado não depende dos blocos de texto criptografado anteriores.

Modo CFB, o modo CTR não envolve o processo de decriptação da cifra do bloco. Isto porque o modo CTR está realmente usando a cifra do bloco para gerar um fluxo de chaves, que é criptografado usando a função XOR. Em outras palavras, o modo CTR também converte uma cifra de bloco para uma cifra de fluxo.

A séria desvantagem do modo CTR é que ele requer um contador síncrono no emissor e no receptor. A perda de sincronização leva à recuperação incorreta do plaintext.

No entanto, o modo CTR tem quase todas as vantagens do modo CFB. Além disso, ele não propaga erros de transmissão.

Advertisements

Deixe uma resposta

O seu endereço de email não será publicado.