Modos de operação de cifra de bloco
Neste capítulo, discutiremos 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 sendo alcançadas que aumentam a segurança da cifra de bloco subjacente.
Uma cifra de bloco processa os blocos de dados de tamanho fixo. Normalmente, o tamanho de uma mensagem é maior que o tamanho do bloco. Conseqüentemente, a mensagem longa é dividida em uma série de blocos de mensagens sequenciais e a cifra opera nesses blocos um de cada vez.
Modo Livro Eletrônico de Códigos (BCE)
Este modo é a maneira mais direta de processar uma série de blocos de mensagens listados sequencialmente.
Operação
O usuário pega o primeiro bloco de texto simples e o criptografa com a chave para produzir o primeiro bloco de texto cifrado.
Ele então pega o segundo bloco de texto simples e segue o mesmo processo com a mesma chave e assim por diante.
O modo ECB é deterministic, isto é, se os blocos de texto simples P1, P2, ..., Pm forem criptografados duas vezes na mesma chave, os blocos de texto cifrado de saída serão os mesmos.
Na verdade, para uma determinada chave, tecnicamente, podemos criar um livro de códigos de textos criptografados para todos os blocos de texto simples possíveis. A criptografia, então, envolveria apenas a procura do texto simples necessário e a seleção do texto cifrado correspondente. Assim, a operação é análoga à atribuição de palavras de código em um livro de código e, portanto, obtém um nome oficial - Modo de operação do livro de código eletrônico (ECB). É ilustrado da seguinte forma -
Análise do Modo ECB
Na realidade, qualquer dado de aplicativo geralmente contém informações parciais que podem ser adivinhadas. Por exemplo, a faixa de salário pode ser adivinhada. Um texto cifrado de ECB pode permitir que um invasor adivinhe o texto simples por tentativa e erro se a mensagem de texto simples estiver dentro do previsível.
Por exemplo, se um texto cifrado do modo ECB é conhecido por criptografar um valor de salário, um pequeno número de tentativas permitirá que um invasor recupere o valor. Em geral, não desejamos usar uma cifra determinística e, portanto, o modo ECB não deve ser usado na maioria dos aplicativos.
Modo Cipher Block Chaining (CBC)
O modo de operação CBC fornece dependência de mensagem para gerar texto cifrado e torna o sistema não determinístico.
Operação
A operação do modo CBC é ilustrada na ilustração a seguir. As etapas são as seguintes -
Carregue o vetor de inicialização (IV) de n bits no registro superior.
XOR o bloco de texto simples de n bits com valor de dados no registro superior.
Criptografe o resultado da operação XOR com cifra de bloco subjacente com a chave K.
Alimente o bloco de texto cifrado no registro superior e continue a operação até que todos os blocos de texto simples sejam processados.
Para a descriptografia, os dados IV são XORed com o primeiro bloco de texto criptografado descriptografado. O primeiro bloco de texto cifrado também é alimentado para registrar a substituição IV para descriptografar o próximo bloco de texto cifrado.
Análise do modo CBC
No modo CBC, o bloco de texto simples atual é adicionado ao bloco de texto cifrado anterior e, em seguida, o resultado é criptografado com a chave. A descriptografia é, portanto, o processo reverso, que envolve descriptografar o texto cifrado atual e, em seguida, adicionar o bloco de texto cifrado anterior ao resultado.
A vantagem do CBC sobre o ECB é que a alteração do IV resulta em texto cifrado diferente para mensagem idêntica. No lado negativo, o erro na transmissão é propagado para alguns blocos adicionais durante a descriptografia devido ao efeito de encadeamento.
Vale a pena mencionar que o modo CBC forma a base de um conhecido mecanismo de autenticação de origem de dados. Portanto, tem uma vantagem para os aplicativos que requerem criptografia simétrica e autenticação de origem de dados.
Modo de feedback de cifra (CFB)
Nesse modo, cada bloco de texto cifrado é "realimentado" no processo de criptografia para criptografar o próximo bloco de texto simples.
Operação
A operação do modo CFB é descrita na ilustração a seguir. Por exemplo, no sistema atual, um bloco de mensagem tem bits de tamanho onde 1 <s <n. O modo CFB requer um vetor de inicialização (IV) como bloco inicial de entrada aleatória de n bits. O IV não precisa ser secreto. As etapas de operação são -
Carregue o IV no registro superior.
Criptografe o valor dos dados no registro superior com cifra de bloco subjacente com a chave K.
Pegue apenas o número 's' dos bits mais significativos (bits à esquerda) de saída do processo de criptografia e execute um XOR com o bloco de mensagem de texto simples de 's' para gerar o bloco de texto cifrado.
Alimente o bloco de texto cifrado no registrador superior deslocando os dados já presentes para a esquerda e continue a operação até que todos os blocos de texto simples sejam processados.
Essencialmente, o bloco de texto cifrado anterior é criptografado com a chave e, em seguida, o resultado é XORed para o bloco de texto simples atual.
Etapas semelhantes são seguidas para a descriptografia. O IV pré-decidido é carregado inicialmente no início da descriptografia.
Análise do modo CFB
O modo CFB difere significativamente do modo ECB, o texto cifrado correspondente a um determinado bloco de texto simples depende não apenas desse bloco de texto simples e da chave, mas também do bloco de texto cifrado anterior. Em outras palavras, o bloco de texto cifrado depende da mensagem.
O CFB tem uma característica muito estranha. Nesse modo, o usuário descriptografa o texto cifrado usando apenas o processo de criptografia da cifra de bloco. 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 chave para produzir o fluxo de chave que é colocado no registrador inferior. Este fluxo de chave é então XORed com o texto simples como no caso de cifra de fluxo.
Ao converter uma cifra de bloco em uma cifra de fluxo, o modo CFB fornece algumas das propriedades vantajosas de uma cifra de fluxo enquanto retém as propriedades vantajosas de uma cifra de bloco.
Por outro lado, o erro de transmissão é propagado devido à mudança de blocos.
Modo de feedback de saída (OFB)
Envolve a alimentação dos blocos de saída sucessivos da cifra de bloco subjacente de volta para ele. Esses blocos de feedback fornecem uma sequência de bits para alimentar o algoritmo de criptografia que atua como o gerador de fluxo de chave, como no caso do modo CFB.
O fluxo de chaves gerado é XOR-ed com os blocos de texto simples. O modo OFB requer um IV como bloco de entrada aleatória inicial de n bits. O IV não precisa ser secreto.
A operação é descrita na ilustração a seguir -
Modo de contador (CTR)
Pode ser considerado como uma versão baseada em contador do modo CFB sem o feedback. Nesse 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 cifrado é trocado. Este contador compartilhado não é necessariamente um valor secreto, mas o desafio é que ambos os lados devem manter o contador sincronizado.
Operação
Tanto a criptografia quanto a descriptografia no modo CTR são mostradas na ilustração a seguir. As etapas de operação são -
Carregar o valor do contador inicial no registro superior é o mesmo para o remetente e o receptor. Ele desempenha o mesmo papel que o IV no modo CFB (e CBC).
Criptografe o conteúdo do contador com a tecla e coloque o resultado no registro inferior.
Leve o primeiro bloco de texto simples P1 e XOR para o conteúdo do registrador inferior. O resultado disso é C1. Envie C1 para o receptor e atualize o contador. A atualização do contador substitui o feedback do texto cifrado no modo CFB.
Continue dessa maneira até que o último bloco de texto simples seja criptografado.
A descriptografia é o processo reverso. O bloco de texto cifrado é XORed com a saída de conteúdo criptografado de valor de contador. Após a descriptografia, cada bloco de texto cifrado é atualizado, como no caso da criptografia.
Análise do modo de contador
Ele não tem dependência de mensagem e, portanto, um bloco de texto cifrado não depende dos blocos de texto simples anteriores.
Como o modo CFB, o modo CTR não envolve o processo de descriptografia da cifra de bloco. Isso ocorre porque o modo CTR está realmente usando a cifra de 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 em 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 texto simples.
No entanto, o modo CTR tem quase todas as vantagens do modo CFB. Além disso, ele não propaga erro de transmissão.