You are on page 1of 64

Segurana de Redes 1 Prof. Rabelo rafael@rabelo.

org

Agenda
Cifras de Bloco e Cifras de Feistel DES DES Duplo e 3DES AES Modos de Operao das Cifras Simtricas

Agenda
Cifras de Bloco e Cifras de Feistel DES DES Duplo e 3DES AES Modos de Operao das Cifras Simtricas

Cifras de Bloco Modernas


A maioria dos algoritmos de criptografia de bloco simtrico usados atualmente baseia-se em uma estrutura conhecida como cifra de bloco de Feistel. Um dos mais utilizados tipos de algoritmos de criptografia Prov segurana e servios de autenticao

Cifras de Bloco x Fluxo


Cifras de bloco processam mensagem em blocos, cada qual ento criptografado / decriptografado Pode ser tratado como se fosse uma substituio em caracteres bem grandes (64-bits ou mais) Cifras de fluxo processam a mensagem bit a bit, ou byte a byte enquanto criptografam e decriptografam Muitas cifras atuais so cifras de blocos

Cifras de Bloco x Fluxo

Princpios da Cifra de Bloco


Em geral, so baseados na estrutura da Cifra de Feistel Opera sobre um bloco de texto claro de n bits para produzir um bloco de texto cifrado de n bits. Existem 2n diferentes blocos de texto claro possveis e, para a criptografia ser reversvel, cada um produz um nico bloco de texto cifrado.
Mapeamento reversvel Texto Claro Texto cifrado 00 01 10 11 11 10 00 01 Mapeamento irreversvel Texto Claro 00 01 10 11 Texto cifrado 11 10 01 01

Cifra de Bloco Ideal

Princpios da Cifra de Bloco


Seriam necessrios 264 entradas para um bloco de 64-bit Cifra de bloco ideal: aquela que permite o nmero mximo de mapeamentos de criptografia possveis a partir do bloco de texto claro. Problema: se for usada em um tamanho de bloco pequeno, como n = 4, o sistema ser equivalente a uma cifra de substituio clssica. Vimos: vulnerabilidades na anlise estatstica do texto Se n for suficiente grande, ento as caractersticas estatsticas do texto de origem sero mascaradas a tal ponto que esse tipo de criptoanlise ser invivel.

Shannon e Cifras de Subsituio e Transposio


Shannon introduziu a idia de redes de substituio e transposio em 1949. Formam a base de cifras de bloco modernas Conceito de cifra de produto: execuo de duas operaes simples em sequncia, de tal forma que o resultado final seja mais forte.
Substituio Permutao

Prov confuso e difuso da mensagem e da chave

Confuso e Difuso
As cifras precisam esconder por completo as propriedades estatsticas da mensagem original A Cifra one-time pad faz isso Na prtica, Shannon sugeriu a combinao da substituio e transposio para obter: difuso busca tornar o relacionamento estatstico entre o texto claro e cifrado o mais complexo possvel confuso busca tornar o relacionamento entre as estatsticas do texto cifrado e o valor da chave de criptografia o mais complexo possvel

Estrutura da Cifra de Feistel


Baseado no conceito da inversibilidade das cifras de produto Divide-se o bloco de entrada em duas metades
processado por n rodadas que so responsveis por Realizar substituio na metade esquerda dos dados Baseados na funo rodada da metade direita e da subchave Ento realizada a permutao, trocando-se as metades

Implementa o conceito de Shannon, que implementa o conceito de Substituio e Permutao (S-P)

Parmetros de Projeto para a Cifra de Feistel


Tamanho do bloco: Tamanhos maiores significam maior segurana, mas reduzem a velocidade de criptografia/decriptografia para determinado algoritmo. Tamanho da chave: Um tamanho maior de chave significa maior segurana, mas pode diminuir a velocidade de criptografia/decriptografia para determinado algoritmo. A maior segurana alcanada pela maior resistncia a ataques de fora bruta e maior confuso. Nmero de rodadas: A essncia da cifra de Feistel que uma nica rodada oferece segurana inadequada, mas que vrias rodadas oferecem maior segurana. Um tamanho tpico so 16 rodadas.

Parmetros de Projeto para a Cifra de Feistel


Algoritmo de gerao da sub-chave: Maior complexidade no algoritmo dever levar a maior dificuldade de criptoanlise. Funo da rodada: Novamente, maior complexidade geralmente significa maior resistncia criptoanlise. Criptografia/decriptografia rpida em software: Em muitos casos, a criptografia embutida nas aplicaes ou funes utilitrias de tal maneira que impede uma implementao por hardware. Em consequncia, a velocidade torna-se uma preocupao. Facilidade de anlise: Possibilita buscar por vulnerabilidades criptoanalticas para desenvolver um nvel mais alto de garantia quanto sua fora.

Agenda
Cifras de Bloco e Cifras de Feistel DES DES Duplo e 3DES AES Modos de Operao das Cifras Simtricas

Data Encryption Standard (DES)


Cifra de Bloco mais utilizada em todo o mundo Adotada em 1977 pela NBS (hoje NIST National Institute of Standards and Technology)
as FIPS PUB 46 (Federal Information Processing Standard 46)

Criptografa 64-bits de dados utilizando uma chave de 56-bits. bastante utilizado Tem sido tema de muita controvrsia com relao sua segurana.

Histria do DES
No final dos anos 60, a IBM criou a cifra de Lucifer
Liderado por Horst Feistel Blocos de dados de 64-bit com uma chave de 128-bit.

Depois foi redesenvolvido como uma cifra comercial com orientao da NSA e outros em 1973 NBS (National Bureau of Standards) emitiu uma solicitao de propostas para um padro de cifra nacional IBM enviou o padro Lucifer revisado, que foi aceito e adotado como o DES

Crticas no Projeto do DES


Antes da adoo como um padro, o DES proposto esteve sujeto a uma imensa crtica, que no diminuiu at hoje O projeto do DES foi bastante criticado nesses pontos:
Escolha do tamanho de chave de 56-bits (contra os 128-bits do algoritmo Lucifer) Os critrios de projeto para a estrutura interna do DES, as caixas-S, eram confidenciais.

Eventos subsequentes, principalmente trabalhos recentes de criptoanlise diferencial mostram que a estrutura interna do DES muito forte Uso do DES floresceu
Especialmente em aplicaes financeiras Ainda padronizada para aplicaes legadas

Viso Geral do DES

Permutao Inicial (IP)


Primeira etapa do processamento dos dados, so definidas por tabelas. Bits pares -> metade esqueda, bit mpares metade direita. Regular na estrutura (fcil implementar em software e hardware)
IP(675a6967 5e5a6b5a) = (ffb2194d 004df6fb) Permutao Inicial (IP) 58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 15 2 4 6 8 1 3 5 7 Permutao Inicial Inversa (IP)-1 40 8 48 16 56 24 64 32 39 38 37 36 35 34 33 7 6 5 4 3 2 1 47 46 45 44 43 42 41 15 14 13 12 11 10 9 55 54 53 52 51 50 49 23 22 21 20 19 18 17 63 62 61 60 59 58 57 31 30 29 28 27 26 25

Estrutura de uma rodada - DES


Usa 32-bits, metades Direita e Esquera Como toda cifra de Feistel, pode ser descrita como:
Li = Ri1 Ri = Li1 F(Ri1, Ki)

F usa os 32-bit da metade direita e 48-bit da sub-chave:


Expandir metade direita para 48-bits usando tabela E Adicione a sub-chave utilizando XOR Passar pelas 8 caixas-S para chegar ao resultado com 32bit Permutar ento, usando a tabela P 32-bit

DES Round Structure

Caixas E e P
32 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 27 31 4 8 12 16 20 24 28 32 5 9 13 17 21 25 29 1 16 1 2 19 7 15 8 13 20 21 24 14 30 6 29 12 18 28 17 31 4 10 9 25 23 26 5

32 27 3 22 11

Permutao de permutao (P)

Permutao de expanso (E)

Caixas de Substituio S
Possuem oito caixas S que mapeiam 6 para 4 bits Na verdade, cada caixa-S so 4 pequenas caixas de 4 bits.
O primeiro e o ltimo bit formam um nmero binrio para selecionar uma das quatro subsituies definidas. Os quatro bits do meio, selecionam uma das dezesseis colunas. O valor decimal na clula selecionada pela linha e coluna ento convertido em sua representao de 4 bits para produzir a sada.

Exemplo de uma Caixa S


Caixa S1
14 0 4 15 4 15 1 12 13 7 14 8 1 4 8 2 2 14 13 4 15 2 6 9 11 13 2 1 8 1 11 7 3 10 15 5 10 6 12 11 6 12 9 3 12 11 7 14 5 9 3 10 9 5 10 0 0 3 5 6 7 8 0 13

Entrada 011001 nessa caixa S Bits mais externos 01 - linha 1 Bits internos 1100 coluna 12 Sada ser 9 em binrios, ou seja, 1001

Gerao de Chave
Forma cada sub-chave utilizada em cada rodada
Permutao inicial da chave que seleciona 56-bits em duas metades de 28-bits 16 etapas que consistem em:
Rotacionar cada metade em 1 ou 2 bits dependendo da tabela de rotao K Os valores deslocados servem como entrada para a rodada seguinte. Eles tambm servem como entrada para a Escolha Permutada Dois, que produz uma sada de 48 bits, que serve como entrada para a funo F(Ri-1,K)

Decriptografia DES
Usa o mesmo algoritmo de criptografia Usa as sub-chaves em ordem inversa (SK16 SK1)
Permutao Inicial desfaz o que a Permutao Final tinha feito 1a. Rodada com a chave SK16 desfaz a 16a. rodada . 16a. Rodada com a chave SK1 desfaz a 1a. rodada Ento, a Permutao Final desfaz a Permutao Inicial Recuperando os dados iniciais

Exemplo do DES

Efeito Avalanche no DES

Efeito Avalanche
Uma mudana no texto claro ou na chave deve realizar grandes mudanas no texto cifrado A mudana em um bit deve modificar aproximadamente a metade dos bits de sada Fazendo tentativas de advinhao de chaves quase impossveis DES mostra um grande efeito avalanche

Fora do DES Tamanho da Chave


56-bit chaves significam 256 = 7.2 x 1016 possibilidades Fora bruta parece difcil Avanos recentes mostraram que possvel
em 1997 alguns meses em 1998 alguns dias em 1999 22 horas!

Ainda necessrio reconhecer o texto em claro Consideraremos alternativas ao DES

Fora do DES Ataque Analtico


Existem alguns ataques analticos no DES Utilizam alguma estrutura especfica da cifra
Buscando informaes sobre as encriptaes Eventualmente pode recuperar alguns ou todos os bits das sub-chaves Se necessrio, realiza uma busca exaustiva no restante

Geralmente so ataques estatsticos chamados


Criptoanlise diferencial Criptoanlise linear Ataques relacionados a chaves

Fora do DES Ataques de Temporizao


Ataque utilizando a implementao da cifra Explora o fato de um algoritmo de criptografia / decriptografia normalmente exigir quantidades ligeiramentes diferentes de tempo com diferentes entradas. Isso permite ter uma idia de como a chave O DES se mostrou forte quanto a esse tipo de ataque

Agenda
Cifras de Bloco e Cifras de Feistel DES DES Duplo e 3DES AES Modos de Operao das Cifras Simtricas

DES e Criptografia Mltipla


Dado a vulnerabilidade em potencial do DES a um ataque por fora bruta, tem havido um grande interesse na busca por uma alternativa Possvel alternativa: projetar um algoritmo novo. A cifra AES entra nesse caso. Outra opo, que preservaria o investimento inicial seria utilizar criptografia mltipla com DES e chaves mltiplas. O DES Triplo (3DES) tem sido bastante aceito.

Duplo DES?
Pode-se usar 2 criptografias DES simultneas em cada bloco, matematicamente mostrados abaixo.
C = EK2(EK1(P))

Questo da reduo a um nico estgio. Existiria uma forma de fazer com que?
C = EK2(EK1(P)) = EK3(P)

Ao que tudo indica no h. Isso foi comprovado em 1992.

Duplo DES?
Ataque meet-in-the-middle
Leve em considerao as equaes abaixo
Se -> C = EK2(EK1(P)) Ento -> X = EK1(P) = DK2(C)

Dado um par conhecido (P, C) Criptografe P para todos os 256 valores possveis de K1 Armazene esses resultados em uma tabela e organize-a de acordo com todos os valores de X Em seguida, decriptografe C usando todos os 256 valores da chave K2. medida que cada texto for gerado, compare com o valor da tabela anterior em busca de alguma correspondncia.

Duplo DES
Se houver uma correspondncia, ento compare as duas chaves resultantes com um novo par de texto claro / texto cifrado conhecido. Se as duas chaves produzirem o texto cifrado correto, aceite-as como sendo as chaves corretas. Logo: ataque de texto claro / texto cifrado conhecidos. Possvel quebrar o Duplo DES. Possvel mostrar que leva O(256) passos

Triplo-DES com Duas Chaves


Usa-se ento 3 estgios;
Seria necessrio ento utilizar 3 chaves diferentes

Foi mostrado que poderia-se utilizar 2 chaves utilizando a funo na sequncia criptografar decriptografar e criptografar novamente. Matematicamente:
C = EK1(DK2(EK1(P)))

Padres de gerenciamento de chaves:


ANSI X9.17 & ISO8732

No existem ataques praticveis atualmente


Alguns ataques impraticveis foram propostos, podem se tornar base de ataques futuros

Triplo DES com Trs Chaves


Apesar de no existirem ataques praticveis com o Triplo DES de duas chaves, existem alguns indcios Pode-se utilizar o Triplo DES com Trs Chaves, para evitar esses outros, matematicamente:
C = EK3(DK2(EK1(P)))

Vem sendo adotado por algumas aplicaes da internet. Ex: PGP, S/MIME

Agenda
Cifras de Bloco e Cifras de Feistel DES DES Duplo e 3DES AES Modos de Operao das Cifras Simtricas

Algoritmo AES
AES Advanced Encryption Standard Padro relativamente novo (nov/2001) do NIST para chaves simtricas, substituindo o DES, pois a chave criptogrfica do DES e 3DES estavam sendo consideradas muito pequenas Processa dados em blocos de 128 bits As chaves criptogrficas possuem tamanho varivel, e podem possuir comprimento de 128, 192, ou 256 bits

Algoritmo AES
Blocos de Cifragem 128 bits Tamanho da chave 128 bits 198 bits 256 bits Nmero de iteraes 10 12 14

Algoritmo AES chave de 128 bits

Compresso e Criptografia de Dados

Algoritmo AES
A principal diferena do AES no est no algoritmo em si, porm no processo de gerao das chaves para o processo No DES e 3DES, a gerao das sub-chaves utiliza um processo muito curto, no AES este processo computacionalmente bem mais complexo

Agenda
Cifras de Bloco e Cifras de Feistel DES DES Duplo e 3DES AES Modos de Operao das Cifras Simtricas

Modos de Operao
Os algoritmos de criptografia simtrica foram descritos para implementar uma forma segura Porm, visando melhorar a condio de uso da criptografia simtrica, surgiram modos de operao que aplicam outras operaes aos algoritmos de criptografia padronizados, melhorando o nvel de segurana da informao

Modos de Operao
Os modos de operao existentes:
ECB Eletronic CodeBook CBC Cipher Block Chaining CFB Cipher Feedback OFB Output Feedback CTR - Counter

Modos de Operao ECB


O modo ECB (electronic code book) o modo onde o algoritmo de criptografia utilizado puramente, como ele foi definido
O texto em claro dividido nos blocos que sero criptografados, e nenhuma operao prvia ser realizada com estes blocos antes do algoritmo de criptografia ser processado Ideal para pequena quantidade de dados. Para textos longos, pode no ser seguro pois: Um mesmo bloco de texto claro de tamanho b gerar um mesmo texto cifrado de tamanho b. O prximo slide apresenta um diagrama do ECB

Modos de Operao ECB

Modos de Operao ECB

Modos de Operao CBC


No modo CBC (cipher block chaining), o texto em claro dividido em blocos, porm antes do algoritmo de criptografia processar o bloco, o bloco sofre uma adio com os bits do bloco anterior
Esta operao aumenta a complexidade do algoritmo de criptografia, pois alm de aplicar o algoritmo, ele tambm utiliza operaes intermedirias nos blocos Apropriado para criptografar mensagens de tamanho maiores que b bits. Necessita do uso de um Vetor de Inicializao IV que precisa ser conhecido pela origem / destino O prximo slide apresenta um diagrama do CBC

Modos de Operao CBC

54

Modos de Operao CBC

Modos de Operao CFB


No modo CFB (cipher feedback), ao contrrio do CBC, no o bloco anterior completo que altera o bloco posterior, mas sim uma sequncia de r bits, que pode ser de tamanho 2, 4 ou 8
Permite fazer com que uma cifra de bloco funcione como uma cifra de fluxo Este Modo de Operao surgiu para processar blocos de texto menores que o tamanho de bloco padro do algoritmo de criptografia O prximo slide apresenta um diagrama do CFB

Modos de Operao CFB

Modos de Operao CFB

Modos de Operao OFB


No modo OFB (output feedback), ao contrrio dos modos anteriores, o pr-processamento ao algoritmo de criptografia no feito bloco a bloco, mas sim bit a bit
O OFB evita que erros ocorridos na transmisso de blocos anteriores se propaguem para os prximos blocos, o que no evitados nos modos CFB e CBC Ele mais vulnervel a um ataque por modificao de fluxo de mensagem que o CFB O prximo slide apresenta um diagrama do OFB

Modos de Operao OFB

Modos de Operao OFB

Modos de Operao CNT


No modo CNT (counter), usa-se um contador para gerao de valores de tamanho igual quele do bloco de texto claro.
O nico requisito indicado que o valor do contador deve ser diferente para cada bloco de texto claro criptografado. Normalmente, o contador inicializado com um valor e incrementado em 1 (mdulo 2b) O prximo slide mostra como o modo de operao Counter.

Modos de Operao CNT

Modos de Operao CNT

You might also like