Você está na página 1de 11

1

Princpios para o projeto de algortimos de cifras de bloco

Luiz Manoel Figueiredo

Disciplina: Criptografia Geral II


o em Criptografia
Curso de Especializac
a
Universidade Federal Fluminense

Unidade 1. Princpios para o projeto de algortimos de cifras de bloco

Como vimos, um cifrador de bloco usa uma chave K, opera com blocos de
texto claro de tamanho fixado (tipicamente 64 bits), e da sada em textos cifrados
do mesmo tamanho (64 bits). Entretanto, um sistema como este, pode ser
aplicado de varias maneiras. Sao os chamados modos de operacao que veremos
nesta unidade.

1.1

ECB (Electronic Codebook)

o modo de operacao mais simples. Nele, cada bloco de 64 bits do texto


E
claro e cifrado com a mesma chave K. A cifragem de cada bloco e independente
dos outros. Veja a figura a seguir:
P1

P2

Cifragem

C1

Cifragem

P3

C2

Cifragem

C3

Onde P1 , P2 , . . . , Pn sao os blocos de 64 bits de texto claro, C1 , C2 , . . . , Cn


sao os textos cifrados correspondentes e K e a chave.
No processo de decifragem no ECB, bloco cifrado e tratado independentemente dos outros:
P1

P2

Decifragem

C1

Decifragem

P3

C2

Criptografia Geral 2 - Turma 2012

Decifragem

C3

Unidade 1. Princpios para o projeto de algortimos de cifras de bloco

O problema deste metodo e que um mesmo bloco de 64 bits resulta sempre


no mesmo texto cifrado. Se a mensagem tem blocos que se repetem muito, sera
facil encontrar estes blocos no texto cifrado (por sua repeticao) e isto oferecera
ao atacante um certo numero de pares de texto claro conhecido e texto cifrado
correspondente com os quais podera trabalhar.
Se a mensagem comeca sempre com algum texto predeterminado, o atacante
pode quebrar este texto em blocos de 64 bits e a mensagem cifrada mostrara os
textos cifrados correspondentes a estes textos claros.
Em resumo, o metodo nao esconde padroes de dados repetidos, com isto, nao
oferece confidencialidade. Em geral, nao se utiliza este metodo em protocolos
criptograficos, apenas quando um unico bloco de 64 bits deve ser criptografado
e transmitido.
O metodo ECB deve ser utilizado apenas quando a quantidade de informacao
a ser transmitida e pequena.
As tres imagens a seguir mostram de maneira bem clara como um codificacao
usando o modo ECB falha em prover confidencialidade. Vemos a imagem do
pinguim do Linux (chamado de Tux) sendo criptografada por ECB e por uma
forma mais segura. Vemos claramente que padroes na imagem original acabam
gerando padroes na imagem criptografada, o que permite perceber aspectos da
imagem original.

Imagem original

Imagem criptografada
usando ECB

Imagem criptografada
de forma segura

Fonte: https://en.wikipedia.org/wiki/Block cipher modes of operation# Electronic codebook .28ECB.29

Criptografia Geral 2 - Turma 2012

Unidade 1. Princpios para o projeto de algortimos de cifras de bloco

1.2

Modo CBC

O modo CBC (Cipher Block Chaining) faz uma cifragem de blocos em cadeia
em que o mesmo bloco na entrada, se repetido, resultara em blocos diferentes
na sada. Isto e feito da seguinte forma: a cada bloco de 64 bits do texto claro,
e feito um XOR com a sada cifrada do bloco anterior. Veja o esquema a seguir:

IV

P1

P2

Cifragem

C1

Cifragem

Pn
Cn1

C2

Cifragem

Cn

Cifragem em blocos em modo CBC


Para iniciar o processo, usamos um bloco de inicializacao IV (de Initialization
Vector), que deve ser conhecido pelo emissor e pelo destinatario da mensagem.
Para decifrar uma mensagem criptografada no modo CBC, temos que reverter
a acao do XOR.
Seja EK o processo de criptografar um bloco e DK o processo de decifrar.
Entao podemos caracterizar o modo CBC por:
Cn = EK (Cn1 Pn )
Para decifrar Cn , temos:
DK (Cn ) = DK (EK (Cn1 Pn )) = DK EK (Cn1 Pn ) = Cn1 Pn
Assim,
Cn1 DK (Cn ) = Cn1 Cn1 Pn = Pn

Criptografia Geral 2 - Turma 2012

Unidade 1. Princpios para o projeto de algortimos de cifras de bloco

(lembrando que A A B = B).


O processo de decifragem no modo CBC pode ser representado por:
C1

Decifragem

IV

Cn

C2

Decifragem

P1

P2

Decifragem

Cn1

Pn

Decifragem em blocos em modo CBC


No CBC cada bloco cifrado depende do texto claro correspondente, da chave
e do texto cifrado anterior, que, por sua vez, depende do anterior a ele etc., de
forma que cada texto cifrado depende da chave e de todos os blocos de texto
claro anteriores a ele. Assim, padroes repetidos no texto claro sao completamente
ocultados no processo criptografico.
O modo CBC e um metodo apropriado para a criptografia de mensagens de
comprimento maior que 64 bits e prove confidencialidade. Alem disso, o modo
CBC pode ser usado para autenticacao.

1.3

Modo Cipher Feedback (CFB)

Estes metodos transformam um cifrador de bloco em um cifrador de fluxo.


Para isso, existem dois metodos principais: o cipher feedback (CFB) e o output
feedback (OFB).
Um cifrador de fluxo tem a vantagem de nao precisar completar a mensagem
com bits nulos para fechar um numero inteiro de blocos de 64 bits. Possui
tambem a vantagem de ser mais adequado para operar em tempo real. Por

Criptografia Geral 2 - Turma 2012

Unidade 1. Princpios para o projeto de algortimos de cifras de bloco

exemplo, se um fluxo de caracteres (cada caractere sao 8 bits) esta sendo enviado,
cada caractere pode ser criptografado separadamente. Nao ha necessidade de
esperar formar um bloco de 64 bits para criptografar e transmitir.
Uma propriedade desejavel para cifras de fluxo e que o texto cifrado tenha
o mesmo tamanho que o texto claro. Por exemplo, se o texto claro for um
caractere (8 bits), entao o texto cifrado sera de 8 bits. Se temos que completar
os 8 bits com zeros para completar um bloco de 64 bits antes de criptografar, os
64 bits do texto cifrado teriam que ser transmitidos, o que e um desperdcio de
banda do canal de transmissao.
O processo de cifragem segue o esquema geral descrito a seguir. Nele estamos
supondo que a unidade de transmissao e de j bits (tipicamente j = 8). Como
no CBC, as unidades de texto sao ligadas em cadeia, de forma que um texto
cifrado e funcao de todas as unidades transmitidas ate entao.

IV

64 j bits

j bits

64 j bits

64

64

Cifragem

Descarta
64 j bits

S1

C1

Cifragem

64

64

Descarta
64 j bits

Seleciona j
bits

S2

64

Cifragem

64

Seleciona j
bits

Seleciona j
bits

Descarta
64 j bits

j
j

Cn1

64 j bits

C1

C2

P1

P2

Pn

Cn

Cifragem no modo CFB


A operacao do algoritmo criptografico de cifra de bloco ocorre sempre com

Criptografia Geral 2 - Turma 2012

Unidade 1. Princpios para o projeto de algortimos de cifras de bloco

entrada e sada de 64 bits. Inicialmente, a entrada e o vetor de inicializacao IV .


feito um XOR dos j bits `a esquerda do bloco P1 (de j bits), o que resulta no
E
texto cifrado C1 . Este C1 alimenta a cifragem da proxima unidade.
usado como entrada de cada etapa um registro (um bloco) de 64 bits, que,
E
como dissemos, e inicializado com IV . Na segunda etapa, desloca-se todos os
bits do registro j bits para esquerda e coloca-se C1 nos j bits mais `a direita do
registro. Este registro alimenta a segunda etapa, e assim por diante.
O processo de decifragem e praticamente identico ao de cifragem. Note que
a funcao de cifragem e usada e nao a de decifragem. Veja o esquema:

IV

64 j bits

j bits

64 j bits

64

64

Cifragem

Descarta
64 j bits

S1

C1

Cifragem

64

64

Descarta
64 j bits

Seleciona j
bits

S2

64

Cifragem

64

Seleciona j
bits

Seleciona j
bits

Descarta
64 j bits

j
j

Cn1

64 j bits

C1

C2

P1

P2

Pn

Cn

Decifragem no modo CFB


facil entender este esquema de decifragem pelo seguinte: seja S1 a unidade
E
de j bits resultante da primeira etapa (veja esquema). Isto e, S1 sao os j bits
mais `a esquerda de EK (IV ). Estas unidades S1 sao as mesmas no processo de
cifragem e de decifragem.

Criptografia Geral 2 - Turma 2012

Unidade 1. Princpios para o projeto de algortimos de cifras de bloco

Na cifragem fazemos:
C1 = P1 S1
Na decifragem fazemos:
C1 S1 (E(IV )) = P1 S1 S1 = P1
O mesmo acontece para as etapas posteriores.
O modo CFB pode ser usado tanto para confidencialidade quanto para autenticacao.

1.4

Modo Output Feedback (OFB)

Este modo e muito semelhante ao CFB que acabamos de estudar. A unica


diferenca esta no que alimenta a etapa seguinte: que sao os j bits `a esquerda
da sada do algoritmo de bloco, e nao o texto cifrado.
IV

64 j bits

j bits

64 j bits

64

64

Cifragem

Descarta
64 j bits

S1

C1

Cifragem

64

64

Descarta
64 j bits

Seleciona j
bits

S2

64

Cifragem

64

Seleciona j
bits

Seleciona j
bits

Sn

j
j

Sn1

64 j bits

S1

C2

P1

P2

Pn

Cifragem no modo OFB


Criptografia Geral 2 - Turma 2012

Descarta
64 j bits

Cn

Unidade 1. Princpios para o projeto de algortimos de cifras de bloco

A vantagem deste esquema e que se acontece um erro de transmissao em


C1 , por exemplo, ocorrera um erro na decifragem de P1 . Mas este erro nao se
propaga para outras etapas, isto e, as outras unidades de texto claro poderao ser
recuperadas normalmente.

IV

64 j bits

j bits

64 j bits

64

64

Cifragem

Descarta
64 j bits

S1

C1

Cifragem

64

64

Descarta
64 j bits

Seleciona j
bits

S2

64

Cifragem

64

Seleciona j
bits

Seleciona j
bits

Sn

j
j

Sn1

64 j bits

S1

C2

Descarta
64 j bits

P1

P2

Pn

Cn

Decifragem no modo OFB

1.5

Quadro comparativo

O quadro a seguir compara as principais caractersticas dos modos estudados:1 .


1

baseado em Stallings - Cryptography and Network security

Criptografia Geral 2 - Turma 2012

Unidade 1. Princpios para o projeto de algortimos de cifras de bloco

Modo

Descricao

10

Aplicacao tpica

Eletronic code- Cada bloco de 64 bits e cifrado Transmissao segura de uma


book (ECB)
de modo independente dos de- chave
mais
Cipher
block A entrada de uma etapa do algo- Transmissoes orientadas a
chaining (CBC)
ritmo e o XOR do bloco de texto bloco em geral; autenticacao.
cifrado da etapa anterior
Cipher Feedback A entrada e processada j bits de Transmissoes orientadas a
(CFB)
cada vez. A entrada de cada fluxo; autenticacao
etapa usa o texto cifrado da
etapa anterior.
Output Feedback Semelhante ao CFB, mas a sada Transmissoes orientadas a
(OFB)
do algoritmo de cifragem e que fluxo em canal com rudo (por
alimenta a etapa seguinte.
exemplo, canal de satelite).

1.6

Resumo

Nesta aula estudamos 4 modos de operacao de um algoritmo de cifra de


bloco, que e, de fato, como eles sao usados. Vimos que dois destes metodos
permitem que um algoritmo de bloco seja usado como cifrador de fluxo. Os
algoritmos de fluxo sao mais adequadas a aplicacoes orientadas a fluxo, como as
de comunicacao em tempo real.

Criptografia Geral 2 - Turma 2012

Unidade 1. Princpios para o projeto de algortimos de cifras de bloco

1.7

11

Atividades

1. Descreva os modos de operacao estudados de um algoritmo simetrico de


bloco.
2. Uma operadora de TV a cabo decide usar um sistema de criptografia
simetrico, funcionando com um dos modos de operacao descritos nesta
aula. Qual deles e o mais adequado e por que?
3. Explique exatamente como um erro se propaga no modo CFB, mas nao se
propaga no modo OFB.

Criptografia Geral 2 - Turma 2012