11
1 1 Princ ´ ıpios para o projeto de al- gor ´ ıtimos de cifras de bloco Luiz Manoel Figueiredo Disciplina: Criptografia Geral II Curso de Especializac ¸ ˜ ao em Criptografia Universidade Federal Fluminense

Principios para o projeto de algoritmos de cifra de bloco

Embed Size (px)

DESCRIPTION

Unidade 1

Citation preview

  • 1

    11

    Princpios paraoprojetodeal-gortimosdecifrasdebloco

    Luiz Manoel Figueiredo

    Disciplina: Criptografia Geral II

    Curso de Especializacao em Criptografia

    Universidade Federal Fluminense

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

    Como vimos, um cifrador de bloco usa uma chave K, opera com blocos detexto claro de tamanho fixado (tipicamente 64 bits), e da sada em textos cifradosdo mesmo tamanho (64 bits). Entretanto, um sistema como este, pode seraplicado de varias maneiras. Sao os chamados modos de operacao que veremosnesta unidade.

    1.1 ECB (Electronic Codebook)

    E o modo de operacao mais simples. Nele, cada bloco de 64 bits do textoclaro e cifrado com a mesma chave K. A cifragem de cada bloco e independentedos outros. Veja a figura a seguir:

    CifragemK

    P1

    C1

    CifragemK

    P2

    C2

    CifragemK

    P3

    C3

    Onde P1, P2, . . . , Pn sao os blocos de 64 bits de texto claro, C1, C2, . . . , Cnsao os textos cifrados correspondentes e K e a chave.

    No processo de decifragem no ECB, bloco cifrado e tratado independente-mente dos outros:

    DecifragemK

    P1

    C1

    DecifragemK

    P2

    C2

    DecifragemK

    P3

    C3

    Criptografia Geral 2 - Turma 2012

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

    O problema deste metodo e que um mesmo bloco de 64 bits resulta sempreno mesmo texto cifrado. Se a mensagem tem blocos que se repetem muito, serafacil encontrar estes blocos no texto cifrado (por sua repeticao) e isto ofereceraao atacante um certo numero de pares de texto claro conhecido e texto cifradocorrespondente com os quais podera trabalhar.

    Se a mensagem comeca sempre com algum texto predeterminado, o atacantepode quebrar este texto em blocos de 64 bits e a mensagem cifrada mostrara ostextos cifrados correspondentes a estes textos claros.

    Em resumo, o metodo nao esconde padroes de dados repetidos, com isto, naooferece confidencialidade. Em geral, nao se utiliza este metodo em protocoloscriptograficos, apenas quando um unico bloco de 64 bits deve ser criptografadoe transmitido.

    O metodo ECB deve ser utilizado apenas quando a quantidade de informacaoa ser transmitida e pequena.

    As tres imagens a seguir mostram de maneira bem clara como um codificacaousando o modo ECB falha em prover confidencialidade. Vemos a imagem dopinguim do Linux (chamado de Tux) sendo criptografada por ECB e por umaforma mais segura. Vemos claramente que padroes na imagem original acabamgerando padroes na imagem criptografada, o que permite perceber aspectos daimagem original.

    Imagem originalImagem criptografadausando ECB

    Imagem criptografadade 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 4

    1.2 Modo CBC

    O modo CBC (Cipher Block Chaining) faz uma cifragem de blocos em cadeiaem que o mesmo bloco na entrada, se repetido, resultara em blocos diferentesna 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:

    CifragemK

    P1

    C1

    IV

    CifragemK

    P2

    C2

    CifragemK

    Pn

    Cn

    Cn1

    Cifragem em blocos em modo CBC

    Para iniciar o processo, usamos um bloco de inicializacao IV (de InitializationVector), que deve ser conhecido pelo emissor e pelo destinatario da mensagem.

    Para decifrar uma mensagem criptografada no modo CBC, temos que revertera 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 5

    (lembrando que A AB = B).

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

    DecifragemK

    C1

    P1

    IV

    DecifragemK

    C2

    P2

    DecifragemK

    Cn

    Pn

    Cn1

    Decifragem em blocos em modo CBC

    No CBC cada bloco cifrado depende do texto claro correspondente, da chavee do texto cifrado anterior, que, por sua vez, depende do anterior a ele etc., deforma que cada texto cifrado depende da chave e de todos os blocos de textoclaro anteriores a ele. Assim, padroes repetidos no texto claro sao completamenteocultados no processo criptografico.

    O modo CBC e um metodo apropriado para a criptografia de mensagens decomprimento maior que 64 bits e prove confidencialidade. Alem disso, o modoCBC 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 outputfeedback (OFB).

    Um cifrador de fluxo tem a vantagem de nao precisar completar a mensagemcom bits nulos para fechar um numero inteiro de blocos de 64 bits. Possuitambem 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 6

    exemplo, se um fluxo de caracteres (cada caractere sao 8 bits) esta sendo enviado,cada caractere pode ser criptografado separadamente. Nao ha necessidade deesperar formar um bloco de 64 bits para criptografar e transmitir.

    Uma propriedade desejavel para cifras de fluxo e que o texto cifrado tenhao mesmo tamanho que o texto claro. Por exemplo, se o texto claro for umcaractere (8 bits), entao o texto cifrado sera de 8 bits. Se temos que completaros 8 bits com zeros para completar um bloco de 64 bits antes de criptografar, os64 bits do texto cifrado teriam que ser transmitidos, o que e um desperdcio debanda do canal de transmissao.

    O processo de cifragem segue o esquema geral descrito a seguir. Nele estamossupondo que a unidade de transmissao e de j bits (tipicamente j = 8). Comono CBC, as unidades de texto sao ligadas em cadeia, de forma que um textocifrado e funcao de todas as unidades transmitidas ate entao.

    64 j bits j bits

    64

    64

    j

    j

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    IV

    CifragemK

    P1

    C1

    S1

    64 j bits C1

    64

    64

    j

    j

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    Cifragem K

    P2

    C2

    S2

    64 j bits Cn1

    64

    64

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    CifragemK

    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 7

    entrada e sada de 64 bits. Inicialmente, a entrada e o vetor de inicializacao IV .E feito um XOR dos j bits a esquerda do bloco P1 (de j bits), o que resulta notexto cifrado C1. Este C1 alimenta a cifragem da proxima unidade.

    E usado como entrada de cada etapa um registro (um bloco) de 64 bits, que,como dissemos, e inicializado com IV . Na segunda etapa, desloca-se todos osbits do registro j bits para esquerda e coloca-se C1 nos j bits mais a direita doregistro. Este registro alimenta a segunda etapa, e assim por diante.

    O processo de decifragem e praticamente identico ao de cifragem. Note quea funcao de cifragem e usada e nao a de decifragem. Veja o esquema:

    64 j bits j bits

    64

    64

    j

    j

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    IV

    CifragemK

    P1

    C1

    S1

    64 j bits C1

    64

    64

    j

    j

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    Cifragem K

    P2

    C2

    S2

    64 j bits Cn1

    64

    64

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    CifragemK

    Pn

    Cn

    Decifragem no modo CFB

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

    Criptografia Geral 2 - Turma 2012

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

    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 aut-enticacao.

    1.4 Modo Output Feedback (OFB)

    Este modo e muito semelhante ao CFB que acabamos de estudar. A unicadiferenca esta no que alimenta a etapa seguinte: que sao os j bits a esquerdada sada do algoritmo de bloco, e nao o texto cifrado.

    64 j bits j bits

    64

    64

    j

    j

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    IV

    CifragemK

    P1

    C1

    S1

    64 j bits S1

    64

    64

    j

    j

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    Cifragem K

    P2

    C2

    S2

    64 j bits Sn1

    64

    64

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    CifragemK

    Pn

    Cn

    Sn

    Cifragem no modo OFB

    Criptografia Geral 2 - Turma 2012

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

    A vantagem deste esquema e que se acontece um erro de transmissao emC1, por exemplo, ocorrera um erro na decifragem de P1. Mas este erro nao sepropaga para outras etapas, isto e, as outras unidades de texto claro poderao serrecuperadas normalmente.

    64 j bits j bits

    64

    64

    j

    j

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    IV

    CifragemK

    P1

    C1

    S1

    64 j bits S1

    64

    64

    j

    j

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    Cifragem K

    P2

    C2

    S2

    64 j bits Sn1

    64

    64

    j

    j

    Seleciona j

    bits

    Descarta

    64 j bits

    CifragemK

    Pn

    Cn

    Sn

    Decifragem no modo OFB

    1.5 Quadro comparativo

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

    1baseado em Stallings - Cryptography and Network security

    Criptografia Geral 2 - Turma 2012

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

    Modo Descricao Aplicacao tpica

    Eletronic code-book (ECB)

    Cada bloco de 64 bits e cifradode modo independente dos de-mais

    Transmissao segura de umachave

    Cipher blockchaining (CBC)

    A entrada de uma etapa do algo-ritmo e o XOR do bloco de textocifrado da etapa anterior

    Transmissoes orientadas abloco em geral; autenticacao.

    Cipher Feedback(CFB)

    A entrada e processada j bits decada vez. A entrada de cadaetapa usa o texto cifrado daetapa anterior.

    Transmissoes orientadas afluxo; autenticacao

    Output Feedback(OFB)

    Semelhante ao CFB, mas a sadado algoritmo de cifragem e quealimenta a etapa seguinte.

    Transmissoes orientadas afluxo em canal com rudo (porexemplo, canal de satelite).

    1.6 Resumo

    Nesta aula estudamos 4 modos de operacao de um algoritmo de cifra debloco, que e, de fato, como eles sao usados. Vimos que dois destes metodospermitem que um algoritmo de bloco seja usado como cifrador de fluxo. Osalgoritmos de fluxo sao mais adequadas a aplicacoes orientadas a fluxo, como asde comunicacao em tempo real.

    Criptografia Geral 2 - Turma 2012

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

    1.7 Atividades

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

    2. Uma operadora de TV a cabo decide usar um sistema de criptografiasimetrico, funcionando com um dos modos de operacao descritos nestaaula. Qual deles e o mais adequado e por que?

    3. Explique exatamente como um erro se propaga no modo CFB, mas nao sepropaga no modo OFB.

    Criptografia Geral 2 - Turma 2012

    Princpios para o projeto de algortimos de cifras de blocoECB (Electronic Codebook)Modo CBCModo Cipher Feedback (CFB)Modo Output Feedback (OFB)Quadro comparativoResumoAtividades