Criptografia e Segurança em Rede Capítulo 3 William Stallings
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 Um dos tipos de algoritmos criptográficos mais utilizados Fornece serviços de sigilo / autenticação Foco no DES (Data Encryption Standard) Serve como exemplo de projeto de cifras de bloco
Cifras de Bloco vs Cifras de Fluxo Cifras de bloco processam mensagens em blocos, cada um dos quais é cifrado/decifrado como uma substituição de caracteres com 64 bits ou mais Cifras de fluxo processam as mensagens bit a bit ou byte a byte Muitas cifras atuais são cifras de blocos Maioria das aplicações
Princípios de Cifras de Bloco A maioria da cifras simétricas de bloco são baseadas na estrutura da cifra de Feistel Cifras de bloco funcionam como uma grande substituição Seria necessária uma tabela de 2 64 entradas para um bloco de 64 bits
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 Base 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) Fornece confusão e difusão da mensagem e da chave
Confusão e Difusão Cifra deve obscurecer completamente as propriedades estatísticas da mensagem (one-time pad faz isso) 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 de Feistel Horst Feistel concebeu a cifra feistel baseada no conceito de cifra de produto invertível Bloco de entrada em duas metades processo através de várias rodadas substituição nos dados da esquerda por dados processados da direita (função & subchave) seguida de permutação das metades Implementa conceito S-P de Shannon
Estrutura da Cifra de Feistel
Cifra de Feistel Elementos de Projeto Tamanho do bloco Tamanho da chave Número de rodadas Algoritmo de geração de subchave Função Velocidade de cifrar/decifrar
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 equipe liderada por Feistel no final 60's utilizando 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 seja um padrão 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 projeto eram sigilosos Novos eventos e análise pública mostraram que, de fato, o projeto fora adequado e utilização do DES aumentou: especialmente em aplicações financeiras e normalizada para aplicação legadas
Visão Geral do DES
Permutação Inicial - IP Primeira etapa de computação IP reordena os bits de entrada Estrutura regular, fácil implementação em hardware
Estrutura das Rodadas do DES Usa duas partes de 32-bits (L e R) Tal como para qualquer cifra de Feistel: L i = R i 1 R i = L i 1 F(R i 1, K i ) F recebe a metade de 32-bit R e uma subchave de 48- bits: Expande R para 48-bits usando a permutação E Adiciona a subchave usando XOR Passa o resultado em 8 S-boxes para obter um resultado de 32-bits Finalmente aplica a permutação P
Estrutura de Rodadas do DES
Blocos de Substituição S Mapeiam 6 para 4 bits Cada S-box consiste em 4 blocos pequenos de 4 bits Bits mais externos 1 & 6 (bits de linha) selecionam uma linha entre 4 Bits internos 2-5 (bits coluna) são substituídos Resultado são 8 blocos de4 bits, ou 32 bits A seleção de linha depende tanto da entrada quanto da chave Conhecido como as autoclaving (autokeying)
Escalonamento de Chaves no DES Gera as subchaves utilizadas em cada rodada Permutação inicial da chave (PC1) que divide 56-bits em duas metades de 28-bits 16 estágios consistindo de: Rotaciona cada metade separadamente 1 ou 2 posicões dependendo da key rotation schedule K Seleciona24-bits de cada metade, permutando por PC2 para uso na função F Observe aspectos práticos de implementação tanto em hardware quanto em software
Decifrando o DES Repetir os passos utilizados na criptografia utilizando as subchaves em ordem inversa (SK16 SK1) IP desfaz o passo final FP da criptografia Primeira rodada com SK16 desfaz a 16a rodada da criptografia. 16a rodada com SK1 desfaz a primeira rodada da criptografica O passo FP final desfaz a fase IP inicial Recuperando portanto o valor orginal
Efeito Avalanche Propriedade importante em um algoritmo de criptografia Uma mudança em um bit do dado de entrada ou de um bit na chave provoca a mudança de cerca de metade dos bits da saída Faz com que tentativas de quebra por adivinhação da chave sejam praticamente impossíveis DES apresenta um efeito avalanche proununciado
Robustez do DES Tamanho da chave Chaves de 56-bits tem 256 = 7.2 x 10 16 valores Tentativas de encontrar a chave por força bruta parecem difíceis, mas... Avanços recentes mostram que isso é possível: Em 1997, usando hardware disponível na Internet, em poucos meses Em 1998 com hardware dedicado, em poucos dias Em 1999, combinando os métodos acima em 22hrs! Ainda é necessário que se consiga idenficar o tesxto não cifrado correto Importante considerar alternativas para o DES
Robustez do DES Ataques Analíticos Existem diversos ataques analíticos para o DES Eles utilizam aspectos da estrutura do algoritmo Obtendo informações de cifragens realizadas Podendo eventualmente recuperar parte ou totalmente as subchaves Fazendo esforço de força bruta para recuperar o restante Geralmente os ataques tem fundamentação estatística Entre eles podem ser citados: Criptoanálise diferencial Criptoanálise linear Ataques por chaves relacionadas
Robustez do DES Ataques Baseados na Resposta Temporal Exploram a implementação do algoritmo Usam conhecimento da implementação para descobrir total ou parcialmente as subchaves Especificamente usam o fato de que os cáculos levam quantidades de tempo diferentes dependendo dos valores de entrada Problemático com smartcards
Criptoanálise Diferencial Um dos avanços recentes mais importantes na criptoanálise Conhecida desde os anos 70 pela NSA (National Security Agency) Murphy, Biham & Shamir publicaram nos anos 90 Método poderoso para análise de cifras de bloco Usado para analisar a maioria das cifras de bloco atuais com níveis variados de sucesso O DES é razoavelmente resistente a esse método
Criptoanálise Diferencial Representa um ataque com base estatística a cifras de Feistel O projeto de redes S-P tem a saída da função F influenciada pela entrada e pela chave Portanto não é possível rastrear o valor anterior sem o conhecimento da chave A criptoanálise diferencial compara dois pares de cifragem relacionados
Criptoanálise Diferencial Compara Pares de Cifragens Com uma diferença conhecida nas entradas Buscando uma diferença conhecida na saídas quando as mesmas subchaves são utilizadas
Criptoanálise Linear Outro desenvolvimento recente Também um método estatístico Deve ser aplicado iterativamente Desenvolvido por Matsui et al no início dos anos 90 Baseado na busca por aproximações lineares Pode quebrar o DES a partir de 243 known textos não cifrados. Mais fácil, porém ainda impraticável
Critérios de Projeto para o DES Tal como mencionado por Coppersmith em [COPP94] Critérios para os S-boxes proveem: Não linearidade Resitência à criptoanálise Boa confusão Critérios para a permutação P proveem Aumento na difusão
Projeto de Cifras de Bloco Princípios básicos ainda parecidos com os de Feistel s nos anos 70 Número de rodadas Mais é melhor Função F: Provê confusão, não linear, forte efeito avalanche Tem relação em como as S-boxes são selecionadas Escalonamento de chaves Geração de suchaves complexa, efeito avalanche nas chaves
Resumo Tópicos abordados: Cifras de bloco e cifras de fluxo Cifra de Feistel, projeto e estrutura DES detalhes pontos fortes Criptoanálise diferencial e linear Princípios de projeto de cifras de bloc