Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf ·...

37
Criptografia e Criptografia e Segurança em Rede Segurança em Rede Capítulo 3 Capítulo 3 De William De William Stallings Stallings Apresentação por Lawrie Brown e Apresentação por Lawrie Brown e Fábio Borges Fábio Borges

Transcript of Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf ·...

Page 1: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Criptografia e Criptografia e

Segurança em RedeSegurança em Rede

Capítulo 3Capítulo 3

De William De William StallingsStallings

Apresentação por Lawrie Brown e Apresentação por Lawrie Brown e

Fábio BorgesFábio Borges

Page 2: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Capítulo 3 Capítulo 3 -- Cifras de Blocos e Cifras de Blocos e

Data Data EncryptionEncryption StandardStandard

Por toda a tarde, Mungo tinha trabalhado no Por toda a tarde, Mungo tinha trabalhado no código de Stern, principalmente com a ajuda código de Stern, principalmente com a ajuda das últimas mensagens que ele tinha copiado das últimas mensagens que ele tinha copiado na queda de na queda de NevinNevin SquareSquare. Stern estava muito . Stern estava muito na queda de na queda de NevinNevin SquareSquare. Stern estava muito . Stern estava muito confiante. Ele precisa estar bem consciente de confiante. Ele precisa estar bem consciente de que a Central de Londres sabia sobre a queda. que a Central de Londres sabia sobre a queda. Era óbvio que eles não se importavam com a Era óbvio que eles não se importavam com a freqüência com que Mungo lia suas mensagens, freqüência com que Mungo lia suas mensagens, de modo que estavam confiantes na de modo que estavam confiantes na impenetrabilidade do código.impenetrabilidade do código.

——Talking to Strange Men, Talking to Strange Men, Ruth RendellRuth Rendell

Page 3: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Cifras Modernas de BlocosCifras Modernas de Blocos

�� agora veremos cifras modernas de blocosagora veremos cifras modernas de blocos

�� um dos tipos de algoritmos criptográficos um dos tipos de algoritmos criptográficos

mais utilizados mais utilizados

fornecer serviços de sigilo / autenticação fornecer serviços de sigilo / autenticação �� fornecer serviços de sigilo / autenticação fornecer serviços de sigilo / autenticação

�� foco no DES (Data foco no DES (Data EncryptionEncryption Standard) Standard)

�� para ilustrar princípios de design de cifras para ilustrar princípios de design de cifras

de blocode bloco

Page 4: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

CifraCifra de de BlocoBloco vsvs FluxoFluxo

�� cifras de bloco processa mensagens em cifras de bloco processa mensagens em

blocos, cada um dos quais é, então, blocos, cada um dos quais é, então,

cifrado/decifradocifrado/decifrado

�� como uma substituição em grandes como uma substituição em grandes �� como uma substituição em grandes como uma substituição em grandes

caracteres caracteres

�� 64 bits ou mais 64 bits ou mais

�� cifras de fluxo processa as mensagens bit cifras de fluxo processa as mensagens bit

a bit ou byte a byte quando cifra/decifraa bit ou byte a byte quando cifra/decifra

��muitas cifras atuais são cifras de blocos muitas cifras atuais são cifras de blocos

��mais vasta gama de aplicaçõesmais vasta gama de aplicações

Page 5: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Princípios de Cifras de Bloco Princípios de Cifras de Bloco

�� a maioria da cifras simétrica de bloco são a maioria da cifras simétrica de bloco são baseados na estrutura da Cifra baseados na estrutura da Cifra FeistelFeistel

�� necessária uma vez que deve ser capaz de necessária uma vez que deve ser capaz de decifrar o criptograma de forma eficiente para decifrar o criptograma de forma eficiente para recuperar mensagensrecuperar mensagensrecuperar mensagensrecuperar mensagens

�� cifras de blocos são como uma grande cifras de blocos são como uma grande substituição substituição

�� precisaria de uma tabela de 2precisaria de uma tabela de 26464 entradas para entradas para um bloco de 64 bits um bloco de 64 bits

�� em vez de criar pequenos blocosem vez de criar pequenos blocos

�� usamos a usamos a ideiaideia de uma cifra de produtode uma cifra de produto

Page 6: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

CifraCifra de de BlocoBloco IdealIdeal

Page 7: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Claude Shannon e Claude Shannon e CifraCifra de de

SubstituiçãoSubstituição--PermutaçãoPermutação

�� Claude Claude ShannonShannon introduziu a idéia de redes de introduziu a idéia de redes de

substituição, permutação (Ssubstituição, permutação (S--P) num artigo 1949P) num artigo 1949

�� forma as bases das cifras de bloco modernasforma as bases das cifras de bloco modernas

�� redes Sredes S--P têm por base as duas operações P têm por base as duas operações �� redes Sredes S--P têm por base as duas operações P têm por base as duas operações

primitivas criptográficas vistas antes: primitivas criptográficas vistas antes:

�� substituição (substituição (SS--boxbox) )

�� permutação (permutação (PP--boxbox) )

�� fornecer confusão e difusão da mensagem e fornecer confusão e difusão da mensagem e

chavechave

Page 8: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Confusão e DifusãoConfusão e Difusão

�� cifra deve obscurecer completamente as cifra deve obscurecer completamente as propriedades estatísticas da mensagem propriedades estatísticas da mensagem

�� um um oneone--timetime padpad faz isso faz isso

��mais praticamente mais praticamente ShannonShannon sugere sugere ��mais praticamente mais praticamente ShannonShannon sugere sugere combinar elementos S & P para obter: combinar elementos S & P para obter:

�� difusãodifusão -- dissipa a estrutura estatística da dissipa a estrutura estatística da mensagem durante maior parte do mensagem durante maior parte do criptogramacriptograma

�� confusãoconfusão -- torna a relação entre criptograma torna a relação entre criptograma e chave tão complexa quanto possívele chave tão complexa quanto possível

Page 9: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Estrutura da Cifra Estrutura da Cifra FeistelFeistel

��Horst Horst FeistelFeistel concebeu a cifra concebeu a cifra feistelfeistel

�� baseada no conceito de cifra de produto baseada no conceito de cifra de produto

invertivelinvertivel

�� bloco de entrada em duas metades bloco de entrada em duas metades �� bloco de entrada em duas metades bloco de entrada em duas metades

�� processo através de várias rodadas processo através de várias rodadas

�� efetuar substituição nos dados da esquerdaefetuar substituição nos dados da esquerda

�� baseada em função de ronda na direita & baseada em função de ronda na direita &

subchavesubchave

�� então tem permutação troca das metades então tem permutação troca das metades

�� implementa Simplementa S--P conceito de P conceito de ShannonShannon

Page 10: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Estrutura da Cifra Estrutura da Cifra FeistelFeistel

Page 11: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Cifra Cifra FeistelFeistel Projeto dos Projeto dos

ElementosElementos�� tamanho do bloco tamanho do bloco

�� tamanho da chave tamanho da chave

�� número de rodadasnúmero de rodadas

�� algoritmo de geração de algoritmo de geração de subchavesubchave�� algoritmo de geração de algoritmo de geração de subchavesubchave

�� função rodadafunção rodada

�� software rápido para cifrar/decifrarsoftware rápido para cifrar/decifrar

�� facilidade de análisefacilidade de análise

Page 12: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

CifraCifra de de FeistelFeistel

Page 13: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Data Encryption Standard (DES)Data Encryption Standard (DES)

�� cifra de bloco mais amplamente utilizado cifra de bloco mais amplamente utilizado no mundo no mundo

�� adotada em 1977 pela NBS (agora NIST) adotada em 1977 pela NBS (agora NIST)

�� como FIPS PUB 46 como FIPS PUB 46 �� como FIPS PUB 46 como FIPS PUB 46

�� criptografa dados de 64 bits usando chave criptografa dados de 64 bits usando chave de 56 bits de 56 bits

�� tem uso generalizado tem uso generalizado

�� houve considerável controvérsia sobre a houve considerável controvérsia sobre a sua segurança sua segurança

Page 14: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

História do DESHistória do DES

�� A IBM desenvolveu a cifra LúciferA IBM desenvolveu a cifra Lúcifer

�� pela equipa liderada por pela equipa liderada por FeistelFeistel no final 60's no final 60's

�� utilizados blocos de dados de 64 bits com utilizados blocos de dados de 64 bits com chave de 128 bits chave de 128 bits chave de 128 bits chave de 128 bits

�� redesenvolvidaredesenvolvida como uma cifra comercial como uma cifra comercial com contribuição do NSA e de outroscom contribuição do NSA e de outros

�� em 1973 o NBS, antigo NIST, emitiu em 1973 o NBS, antigo NIST, emitiu pedido de propostas para uma cifra pedido de propostas para uma cifra padrão nacional padrão nacional A IBM apresentou uma versão do Lúcifer, A IBM apresentou uma versão do Lúcifer, que acabou por ser aceita como o DESque acabou por ser aceita como o DES

Page 15: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Controvérsia no projeto DESControvérsia no projeto DES

�� embora o DES padrão ser públicoembora o DES padrão ser público

�� houve considerável controvérsia houve considerável controvérsia

�� na escolha da chave de 56 bits (na escolha da chave de 56 bits (vsvs Lúcifer Lúcifer 128128--bit) bit) 128128--bit) bit)

�� e porque os critérios de concepção foram e porque os critérios de concepção foram classificados classificados

�� novos eventos e análise pública mostra, novos eventos e análise pública mostra, de fato, que o projeto foi adequado de fato, que o projeto foi adequado

�� utilização de DES floresceu utilização de DES floresceu

�� especialmente em aplicações financeiras especialmente em aplicações financeiras

�� ainda normalizada para aplicação de legadoainda normalizada para aplicação de legado

Page 16: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

ResumoResumo DESDES

Page 17: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Initial Permutation IPInitial Permutation IP

�� primeiro passo da computação de dadosprimeiro passo da computação de dados

�� IP reordena os bits de entrada de dados IP reordena os bits de entrada de dados

�� bits pares para a metade LH e bits bits pares para a metade LH e bits

ímpares para a metade RH ímpares para a metade RH ímpares para a metade RH ímpares para a metade RH

�� bem regular em termos de estrutura (fácil bem regular em termos de estrutura (fácil

de h/w) de h/w)

exemplo:exemplo:

IP(675a6967 5e5a6b5a) = (ffb2194d IP(675a6967 5e5a6b5a) = (ffb2194d

004df6fb)004df6fb)

Page 18: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

DES Round StructureDES Round Structure

�� usa duas usa duas metades de metades de 32 bits L & R 32 bits L & R

�� assim com qualquer cifra assim com qualquer cifra FeistelFeistel pode pode ser ser descrito comodescrito como: : LLii = R= Rii--11LLii = R= Rii--11

RRii = L= Lii--11 ⊕⊕ F(RF(Rii--11, K, Kii) )

�� F F leva leva R R 3232--bit e 48bit e 48--bit bit subchavesubchave: :

�� R R expande para 48 bits usando expande para 48 bits usando permperm E E

�� acrescenta acrescenta a a subchavesubchave usando XOR usando XOR

�� passa passa por por 8 8 SS--boxesboxes de 32 bits para obter de 32 bits para obter resultado resultado

�� finalmente permuta finalmente permuta usando 32usando 32--bit bit permperm PP

Page 19: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

DES Round StructureDES Round Structure

Page 20: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Caixa de Substituição SCaixa de Substituição S

�� ter 8 ter 8 SS--boxesboxes que que mapa mapa 6 6 para 4 para 4 bits bits

�� cada cada SS--boxbox é 4 pequenas caixas bitsé 4 pequenas caixas bits

�� bits bits exteriores 1 exteriores 1 e 6 e 6 (bits linha) seleciona (bits linha) seleciona uma uma linha de 4 linha de 4 linha de 4 linha de 4

�� interior interior bits 2bits 2--5 (5 (colcol bits) são bits) são substituídassubstituídas

�� resultado resultado é de 8 lotes de 4 bits ou 32 bits é de 8 lotes de 4 bits ou 32 bits

�� fila fila seleção depende tanto seleção depende tanto da da msg&chavemsg&chave

�� recurso recurso conhecido como conhecido como autoclave autoclave ((autokeyingautokeying) )

�� exemplo:exemplo:�� S(18 S(18 09 12 3d 11 17 38 39) = 5fd25e0309 12 3d 11 17 38 39) = 5fd25e03

Page 21: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

DES Key ScheduleDES Key Schedule

�� forma forma subchavessubchaves utilizadas utilizadas em cada em cada

rodada rodada

�� permutação permutação inicial dos principais (PC1), que inicial dos principais (PC1), que

seleciona 56seleciona 56--bits 28bits 28--bit em duas metades bit em duas metades seleciona 56seleciona 56--bits 28bits 28--bit em duas metades bit em duas metades

�� 16 16 etapas que consistem em: etapas que consistem em:

•• girando girando cada metade cada metade separadamente separadamente ou 1 ou 1 ou ou 2 2

lugares, lugares, dependendo da chave dependendo da chave de de rotação rotação K K

•• selecionando selecionando 2424--bits de cada metade & bits de cada metade &

permutandopermutando--os os pelo pelo PC2 PC2 para utilização na função para utilização na função

de rondada F de rondada F

•• nota nota questões questões de uso de uso prático em prático em h/s h/s vsvs s/ws/w

Page 22: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

DES DecryptionDES Decryption

�� descriptografádescriptografá deve descomprimir dados deve descomprimir dados

�� com projeto com projeto FeistelFeistel, faça a criptografia , faça a criptografia denovodenovo

�� usando passos usando passos subchavessubchaves em ordem inversa em ordem inversa

(SK16 ... SK1) (SK16 ... SK1) (SK16 ... SK1) (SK16 ... SK1)

�� IP IP desmanche PF etapa final de desmanche PF etapa final de criptografiacriptografia

�� 11. . rodada com SK16 desfaz a rondada rodada com SK16 desfaz a rondada 16. 16.

�� .... ....

�� 1616. . rodada rodada com SK1 com SK1 desfaz a rondada desfaz a rondada 1. 1.

�� então então final PF final PF desfaz a desfaz a encriptaçãoencriptação inicial IP inicial IP

�� assim assim recuperando recuperando dados do dados do valor valor originaloriginal

Page 23: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Efeito AvalancheEfeito Avalanche

�� desejável propriedade chave de desejável propriedade chave de algoritmo algoritmo

de criptografia de criptografia

�� onde a onde a mudança de mudança de um bit na um bit na chave chave

resulta na mudança de aprox. metade resulta na mudança de aprox. metade resulta na mudança de aprox. metade resulta na mudança de aprox. metade

dos bits de saída dos bits de saída

�� fazendo fazendo tentativas de tentativas de “home“home--in” in”

impossível impossível de de adivinhar adivinhar a chavea chave

��DES DES exibe forte exibe forte avalancheavalanche

Page 24: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Strength of DES Strength of DES –– Key SizeKey Size

�� chave chave de 56de 56--bit tem bit tem 225656 =7,2x10=7,2x1016 16 valores valores

�� força força bruta pesquisa parece difícil bruta pesquisa parece difícil

�� avanços avanços recentes têm mostrado ser recentes têm mostrado ser

possível possível possível possível

�� em em 1997 na Internet em poucos meses 1997 na Internet em poucos meses

�� em 98 em 98 em dedicado em dedicado h/w (EFF)em h/w (EFF)em poucos dias poucos dias

�� em 1999 em 1999 acima combinadas em 22hrs! acima combinadas em 22hrs!

�� é é capaz de reconhecer capaz de reconhecer a mensagema mensagem

�� devemos considerar devemos considerar as alternativas para as alternativas para

DESDES

Page 25: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Strength of DES Strength of DES –– Analytic Analytic

AttacksAttacks

�� agora tem vários ataques analítico agora tem vários ataques analítico para DES para DES

�� utilizam alguma estrutura utilizam alguma estrutura profunda profunda da da cifra cifra �� recolhendo recolhendo informações sobre informações sobre encriptaçõesencriptações

�� pode pode eventualmente recuperar algum / eventualmente recuperar algum / todos os bits todos os bits da subda sub--chave chave da subda sub--chave chave

�� se se necessário, em seguida, exaustiva pesquisa para necessário, em seguida, exaustiva pesquisa para o resto o resto

�� geralmente geralmente estes são ataques estes são ataques estatísticosestatísticos

�� diferencial diferencial criptoanálisecriptoanálise

�� lineares lineares criptoanálisecriptoanálise

�� chave chave relacionadas relacionadas ataquesataques

Page 26: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Strength of DES Strength of DES –– Timing Timing

AttacksAttacks

�� ataques reais de ataques reais de implementação implementação

�� utilizar utilizar o conhecimento das o conhecimento das

consequênciasconsequências de implementações para de implementações para

obter informações sobre algum / todos obter informações sobre algum / todos bits bits obter informações sobre algum / todos obter informações sobre algum / todos bits bits

da subda sub--chave chave

�� especificamente usa o fato especificamente usa o fato de cálculos de cálculos

poderem poderem tomar tomar várias vezes, várias vezes, em função em função

do valor das do valor das entradas a entradas a ele ele

�� particularmente particularmente problemático em problemático em

smartcardssmartcards

Page 27: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

CriptoanáliseCriptoanálise DiferencialDiferencial

�� uma uma das mais das mais significativos avanços significativos avanços (público) (público) na na criptoanálisecriptoanálise

�� conhecido conhecido pela NSA pela NSA na década de 70 na década de 70 cfcfprojeto projeto DES DES projeto projeto DES DES

�� publicado publicado na 90,Murphy, na 90,Murphy, BihamBiham & & ShamirShamir

�� poderoso poderoso método para analisar cifras de método para analisar cifras de blocosblocos

�� utilizado utilizado para analisar para analisar as as cifras de blocos cifras de blocos com com diferentes graus de sucesso diferentes graus de sucesso

��DES DES razoavelmente resistentes a ela, ver razoavelmente resistentes a ela, ver LúciferLúcifer

Page 28: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

CriptoanáliseCriptoanálise DiferencialDiferencial�� um um ataque estatístico contra as ataque estatístico contra as Cifras Cifras de de

FeistelFeistel

�� usa usa estrutura estrutura da cifra não da cifra não utilizada utilizada

anteriormente anteriormente

concepção concepção de redes de redes SS--P P tem saída de tem saída de �� concepção concepção de redes de redes SS--P P tem saída de tem saída de

funçãofunção f f influenciada tanto pela entrada & influenciada tanto pela entrada &

chavechave

�� já que, já que, não pode traçar valores de volta não pode traçar valores de volta

através cifra sem saber o valor da chave através cifra sem saber o valor da chave

�� criptoanálisecriptoanálise diferencial diferencial compara dois compara dois

pares de pares de criptogramas relacionadoscriptogramas relacionados

Page 29: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

CriptoanáliseCriptoanálise Diferencial Diferencial

Compara Compara pares pares de criptogramasde criptogramas

�� com uma diferença conhecida na entrada com uma diferença conhecida na entrada

�� busca busca de uma conhecida diferença de de uma conhecida diferença de

saída saída

quando quando mesmas submesmas sub--chaves são chaves são �� quando quando mesmas submesmas sub--chaves são chaves são

utilizadosutilizados

Page 30: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

CriptoanáliseCriptoanálise DiferencialDiferencial

�� ter algum ter algum entrada que entrada que dá alguma dá alguma

diferença diferença dá dá diferença diferença na saída com na saída com

probabilidade p probabilidade p

�� se se encontrar alguns casos de maior encontrar alguns casos de maior �� se se encontrar alguns casos de maior encontrar alguns casos de maior

probabilidade de entrada / saída probabilidade de entrada / saída

ocorrendo diferença ocorrendo diferença parespares

�� podemos podemos inferir inferir a suba sub--chave que chave que foi foi

utilizada na utilizada na rondadarondada

�� então então deve iterar deve iterar por muitas rodadas (por muitas rodadas (com com

probabilidades decrescenteprobabilidades decrescente))

Page 31: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

CriptoanáliseCriptoanálise DiferencialDiferencial

Page 32: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

CriptoanáliseCriptoanálise DiferencialDiferencial

�� realizar ataques realizar ataques por pares de criptograma com entrada por pares de criptograma com entrada XOR XOR conhecida até conhecida até obter saída desejada obter saída desejada XOR XOR

�� quando quando encontrados encontrados �� se se igualar rodadas intermediárias exigidas XOR tem igualar rodadas intermediárias exigidas XOR tem o o par par

�� se se não, então tem um par errado, é parente não, então tem um par errado, é parente taxa S/N taxa S/N para o para o se se não, então tem um par errado, é parente não, então tem um par errado, é parente taxa S/N taxa S/N para o para o ataque ataque

�� podepode, então, deduzir valores chaves para as , então, deduzir valores chaves para as rondadas rondadas �� pares certos sugerem pares certos sugerem mesma mesma chave de bits chave de bits

�� dar dar errado pares valores aleatórios errado pares valores aleatórios

�� para para um grande número de voltas, probabilidade é tão um grande número de voltas, probabilidade é tão baixa que são necessários mais pares que existem com baixa que são necessários mais pares que existem com 6464--bit bit entradaentrada

�� BihamBiham e e ShamirShamir demonstraram como uma 13demonstraram como uma 13--redondas redondas iterada característica pode quebrar iterada característica pode quebrar as16as16--redondas do redondas do DESDES

Page 33: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

CriptoanáliseCriptoanálise LinearLinear

�� outro desenvolvimento recente outro desenvolvimento recente

�� também é um também é um método estatístico método estatístico

�� deve deve ser iterada sobre rodadas, com a ser iterada sobre rodadas, com a diminuição diminuição das probabilidades das probabilidades diminuição diminuição das probabilidades das probabilidades

�� desenvolvido desenvolvido por por MatsuiMatsui etet alal, no início , no início década de 90 década de 90

�� baseados baseados em em encontrar aproximações encontrar aproximações lineares lineares

�� pode pode atacar atacar o o DES DES com com 224343 conhecidas conhecidas msgmsg, , ainda mais fácil, mas na prática ainda mais fácil, mas na prática inviávelinviável

Page 34: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Linear CryptanalysisLinear Cryptanalysis

�� encontrar aproximações lineares comencontrar aproximações lineares com

�� probprob p != ½p != ½

P[iP[i11,i,i22,...,,...,iiaa] ] ⊕⊕ C[jC[j11,j,j22,...,,...,jjbb] = ] =

K[kK[k11,k,k22,...,,...,kkcc]]

estão em pouco estão em pouco locaislocaisondeonde iiaa,j,jbb,k,kcc estão em pouco estão em pouco locaislocais

P,C,KP,C,K

�� dá equação linear bits dá equação linear bits chaves chaves

�� obter obter uma uma bits chaves bits chaves usando usando maxmax probabilidade probabilidade algalg

�� utilizando utilizando um grande número de um grande número de tentativas de tentativas de

encriptaçõesencriptações

�� eficácia eficácia dada por dada por : : |p|p––11//22||

Page 35: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

DES Design CriteriaDES Design Criteria

�� como relatado por como relatado por Coppersmith Coppersmith em em

[COPP94] [COPP94]

�� 7 7 critérios para a critérios para a SS--boxesboxes preverprever

nãonão--linearidade linearidade �� nãonão--linearidade linearidade

�� resistência a resistência a criptoanálisecriptoanálise diferencialdiferencial

�� boa boa confusão confusão

�� 3 3 critérios de permutação P prever critérios de permutação P prever

�� aumentou difusãoaumentou difusão

Page 36: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

Block Cipher DesignBlock Cipher Design

�� princípios básicos ainda princípios básicos ainda parecem com parecem com FeistelFeistel na década de 1970 na década de 1970

�� número número de de rodadesrodades

�� quanto quanto mais, melhor, pesquisa exaustiva mais, melhor, pesquisa exaustiva �� quanto quanto mais, melhor, pesquisa exaustiva mais, melhor, pesquisa exaustiva melhor ataque melhor ataque

�� função função f: f:

�� fornece fornece "confusão", é não"confusão", é não--linear, linear, avalancheavalanche

�� ter ter questões de como questões de como SS--boxesboxes são são selecionados selecionados

�� escalonamento da chaveescalonamento da chave

�� complexa complexa subchavesubchave criação, chave criação, chave avalancheavalanche

Page 37: Criptografia e Segurança em Rede Capítulo 3 - lncc.brlncc.br/~borges/ist/SIN/cap03.pdf · Capítulo 3 Capítulo 3 --Cifras de Blocos e Cifras de Blocos e ... difusão --dissipa

ResumoResumo

�� Vimos: Vimos:

�� cifras bloco cifras bloco vsvs fluxofluxo

�� projeto da cifra de projeto da cifra de FeistelFeistel e e estrutura estrutura

DESDES�� DESDES

•• Detalhes Detalhes

•• força força

�� Diferencial Diferencial & Linear & Linear CriptoanáliseCriptoanálise

�� princípios de projetos de cifras de blocoprincípios de projetos de cifras de bloco