Criptografia e Segurança em Rede Capítulo 3 De William Stallings Apresentação por Lawrie Brown e Fábio Borges
Capítulo 3 - Cifras de Blocos e Data Encryption Standard Por toda a tarde, Mungo tinha trabalhado no código de Stern, principalmente com a ajuda das últimas mensagens que ele tinha copiado na queda de Nevin Square. Stern estava muito confiante. Ele precisa estar bem consciente de que a Central de Londres sabia sobre a queda. Era óbvio que eles não se importavam com a freqüência com que Mungo lia suas mensagens, de modo que estavam confiantes na impenetrabilidade do código. Talking to Strange Men, Ruth Rendell
Cifras Modernas de Blocos agora veremos cifras modernas de blocos um dos tipos de algoritmos criptográficos mais utilizados fornecer serviços de sigilo / autenticação foco no DES (Data Encryption Standard) para ilustrar princípios de design de cifras de bloco
Cifra de Bloco vs Fluxo cifras de bloco processa mensagens em blocos, cada um dos quais é, então, cifrado/decifrado como uma substituição em grandes caracteres 64 bits ou mais cifras de fluxo processa as mensagens bit a bit ou byte a byte quando cifra/decifra muitas cifras atuais são cifras de blocos mais vasta gama de aplicações
Princípios de Cifras de Bloco a maioria da cifras simétrica de bloco são baseados na estrutura da Cifra Feistel necessária uma vez que deve ser capaz de decifrar o criptograma de forma eficiente para recuperar mensagens cifras de blocos são como uma grande substituição precisaria de uma tabela de 2 64 entradas para um bloco de 64 bits em vez de criar pequenos blocos usamos a ideia de uma cifra de produto
Cifra de Bloco Ideal
Claude Shannon e Cifra de Substituição-Permutação Claude Shannon introduziu a idéia de redes de substituição, permutação (S-P) num artigo 1949 forma as bases das cifras de bloco modernas redes S-P têm por base as duas operações primitivas criptográficas vistas antes: substituição (S-box) permutação (P-box) fornecer confusão e difusão da mensagem e chave
Confusão e Difusão cifra deve obscurecer completamente as propriedades estatísticas da mensagem um one-time pad faz isso mais praticamente Shannon sugere combinar elementos S & P para obter: difusão - dissipa a estrutura estatística da mensagem durante maior parte do criptograma confusão - torna a relação entre criptograma e chave tão complexa quanto possível
Estrutura da Cifra Feistel Horst Feistel concebeu a cifra feistel baseada no conceito de cifra de produto invertivel bloco de entrada em duas metades processo através de várias rodadas efetuar substituição nos dados da esquerda baseada em função de ronda na direita & subchave então tem permutação troca das metades implementa S-P conceito de Shannon
Estrutura da Cifra Feistel
Cifra Feistel Projeto dos Elementos tamanho do bloco tamanho da chave número de rodadas algoritmo de geração de subchave função rodada software rápido para cifrar/decifrar facilidade de análise
Cifra de Feistel
Data Encryption Standard (DES) cifra de bloco mais amplamente utilizado no mundo adotada em 1977 pela NBS (agora NIST) como FIPS PUB 46 criptografa dados de 64 bits usando chave de 56 bits tem uso generalizado houve considerável controvérsia sobre a sua segurança
História do DES A IBM desenvolveu a cifra Lúcifer pela equipa liderada por Feistel no final 60's utilizados blocos de dados de 64 bits com chave de 128 bits redesenvolvida como uma cifra comercial com contribuição do NSA e de outros em 1973 o NBS, antigo NIST, emitiu pedido de propostas para uma cifra padrão nacional A IBM apresentou uma versão do Lúcifer, que acabou por ser aceita como o DES
Controvérsia no projeto DES embora o DES padrão ser público houve considerável controvérsia na escolha da chave de 56 bits (vs Lúcifer 128-bit) e porque os critérios de concepção foram classificados novos eventos e análise pública mostra, de fato, que o projeto foi adequado utilização de DES floresceu especialmente em aplicações financeiras ainda normalizada para aplicação de legado
Resumo DES
Initial Permutation IP primeiro passo da computação de dados IP reordena os bits de entrada de dados bits pares para a metade LH e bits ímpares para a metade RH bem regular em termos de estrutura (fácil de h/w) exemplo: IP(675a6967 5e5a6b5a) = (ffb2194d 004df6fb)
DES Round Structure usa duas metades de 32 bits L & R assim com qualquer cifra Feistel pode ser descrito como: L i = R i-1 R i = L i-1 F(R i-1, K i ) F leva R 32-bit e 48-bit subchave: R expande para 48 bits usando perm E acrescenta a subchave usando XOR passa por 8 S-boxes de 32 bits para obter resultado finalmente permuta usando 32-bit perm P
DES Round Structure
Caixa de Substituição S ter 8 S-boxes que mapa 6 para 4 bits cada S-box é 4 pequenas caixas bits bits exteriores 1 e 6 (bits linha) seleciona uma linha de 4 interior bits 2-5 (col bits) são substituídas resultado é de 8 lotes de 4 bits ou 32 bits fila seleção depende tanto da msg&chave recurso conhecido como autoclave (autokeying) exemplo: S(18 09 12 3d 11 17 38 39) = 5fd25e03
DES Key Schedule forma subchaves utilizadas em cada rodada permutação inicial dos principais (PC1), que seleciona 56-bits 28-bit em duas metades 16 etapas que consistem em: girando cada metade separadamente ou 1 ou 2 lugares, dependendo da chave de rotação K selecionando 24-bits de cada metade & permutando-os os pelo PC2 para utilização na função de rondada F nota questões de uso prático em h/s vs s/w
DES Decryption descriptografá deve descomprimir dados com projeto Feistel, faça a criptografia denovo usando passos subchaves em ordem inversa (SK16... SK1) IP desmanche PF etapa final de criptografia 1. rodada com SK16 desfaz a rondada 16.... 16. rodada com SK1 desfaz a rondada 1. então final PF desfaz a encriptação inicial IP assim recuperando dados do valor original
Efeito Avalanche desejável propriedade chave de algoritmo de criptografia onde a mudança de um bit na chave resulta na mudança de aprox. metade dos bits de saída fazendo tentativas de home-in impossível de adivinhar a chave DES exibe forte avalanche
Strength of DES Key Size chave de 56-bit tem 2 56 =7,2x10 16 valores força bruta pesquisa parece difícil avanços recentes têm mostrado ser possível em 1997 na Internet em poucos meses em 98 em dedicado h/w (EFF)em poucos dias em 1999 acima combinadas em 22hrs! é capaz de reconhecer a mensagem devemos considerar as alternativas para DES
Strength of DES Analytic Attacks agora tem vários ataques analítico para DES utilizam alguma estrutura profunda da cifra recolhendo informações sobre encriptações pode eventualmente recuperar algum / todos os bits da sub-chave se necessário, em seguida, exaustiva pesquisa para o resto geralmente estes são ataques estatísticos diferencial criptoanálise lineares criptoanálise chave relacionadas ataques
Strength of DES Timing Attacks ataques reais de implementação utilizar o conhecimento das consequências de implementações para obter informações sobre algum / todos bits da sub-chave especificamente usa o fato de cálculos poderem tomar várias vezes, em função do valor das entradas a ele particularmente problemático em smartcards
Criptoanálise Diferencial uma das mais significativos avanços (público) na criptoanálise conhecido pela NSA na década de 70 cf projeto DES publicado na 90,Murphy, Biham & Shamir poderoso método para analisar cifras de blocos utilizado para analisar as cifras de blocos com diferentes graus de sucesso DES razoavelmente resistentes a ela, ver Lúcifer
Criptoanálise Diferencial um ataque estatístico contra as Cifras de Feistel usa estrutura da cifra não utilizada anteriormente concepção de redes S-P tem saída de função f influenciada tanto pela entrada & chave já que, não pode traçar valores de volta através cifra sem saber o valor da chave criptoanálise diferencial compara dois pares de criptogramas relacionados
Criptoanálise Diferencial Compara pares de criptogramas com uma diferença conhecida na entrada busca de uma conhecida diferença de saída quando mesmas sub-chaves são utilizados
Criptoanálise Diferencial ter algum entrada que dá alguma diferença dá diferença na saída com probabilidade p se encontrar alguns casos de maior probabilidade de entrada / saída ocorrendo diferença pares podemos inferir a sub-chave que foi utilizada na rondada então deve iterar por muitas rodadas (com probabilidades decrescente)
Criptoanálise Diferencial
Criptoanálise Diferencial realizar ataques por pares de criptograma com entrada XOR conhecida até obter saída desejada XOR quando encontrados se igualar rodadas intermediárias exigidas XOR tem o par se não, então tem um par errado, é parente taxa S/N para o ataque pode, então, deduzir valores chaves para as rondadas pares certos sugerem mesma chave de bits dar errado pares valores aleatórios para um grande número de voltas, probabilidade é tão baixa que são necessários mais pares que existem com 64-bit entrada Biham e Shamir demonstraram como uma 13-redondas iterada característica pode quebrar as16-redondas do DES
Criptoanálise Linear outro desenvolvimento recente também é um método estatístico deve ser iterada sobre rodadas, com a diminuição das probabilidades desenvolvido por Matsui et al, no início década de 90 baseados em encontrar aproximações lineares pode atacar o DES com 2 43 conhecidas msg, ainda mais fácil, mas na prática inviável
Linear Cryptanalysis encontrar aproximações lineares com prob p!= ½ P[i 1,i 2,...,i a ] C[j 1,j 2,...,j b ] = K[k 1,k 2,...,k c ] onde i a,j b,k c estão em pouco locais P,C,K dá equação linear bits chaves obter uma bits chaves usando max probabilidade alg utilizando um grande número de tentativas de encriptações eficácia dada por : p 1 / 2
DES Design Criteria como relatado por Coppersmith em [COPP94] 7 critérios para a S-boxes prever não-linearidade resistência a criptoanálise diferencial boa confusão 3 critérios de permutação P prever aumentou difusão
Block Cipher Design princípios básicos ainda parecem com Feistel na década de 1970 número de rodades quanto mais, melhor, pesquisa exaustiva melhor ataque função f: fornece "confusão", é não-linear, avalanche ter questões de como S-boxes são selecionados escalonamento da chave complexa subchave criação, chave avalanche
Resumo Vimos: cifras bloco vs fluxo projeto da cifra de Feistel e estrutura DES Detalhes força Diferencial & Linear Criptoanálise princípios de projetos de cifras de bloco