Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro Segurança em Redes - 3 Luiz Fernando Rust e-mail: INMETRO Tel. (021) 2679-9072 rust@nce.ufrj.br lfrust@inmetro.gov.br 11 Criptografia Convencional DES simplificado Codificador Feistel DES, 3-DES IDEA AES 2
DES simplificado (S-DES) Desenvolvido por Edward Scahefer da Universidade de Santa Clara Fins educacionais 5 funções executadas na seguinte ordem: 1. uma permutação inicial IP 2. uma função f k 3. uma função switch SW que troca duas metades 4. A função f k novamente 5. A inversa IP 1 da permutação IP Os passos 2 e 3 usam as chaves K 1 e K 2, geradas través do algoritmo de geração de chaves 3 Expressões Algoritmo de codificação na chave K: onde Algoritmo de de decodificação na chave K: 4
Esquema do S-DES 5 Permutação inicial (e inversa) 1. Permutação Inicial 5. Inversa da Permutação Inicial Observar que 6
Função Fk 2. Onde L,R são os 4bits mais a esquerda e mais a direita da entrada de 8 bits, F é um mapeamento de strings de 4 bits para strings de 4 bits Sk é uma subchave (K1 ou K2, dependendo do caso) Exemplo: assumindo Saida do estágio IP = (10111101) -> L = 1011, R = 1101 F(R,SK) = 1110 7 Função Fk Mapeamento F Operação Expansão E (string de 4 bits para 8 bits) A saída sobre uma entrada é representada por é XOR-ed para obter Abreviado por Que alimentam os S-boxes linha de cima em S0 e linha de baixo em S1 8
Função Fk - uso de S-boxes S- Boxes Primeira linha aplicada em S0 produz 2 bits Segunda linha aplicada em S1 produz 2 bits O primeiro e o quarto bit especificam a linha O segundo e o terceiro bit especificam a coluna Exemplo Os 4 bits gerados sofrem permutação P4 gerando a saída da função Fk 9 Função SW 3. A função Switch SW Troca os 4 bits da esquerda com os da direita, de forma que a segunda aplicação de fk opera sobre um conjunto diferente de 4 bits 10
Algoritmo de geração de chaves Envolve 3 funções que são aplicadas numa sequência de 5 passos para produzir 2 subchaves: 1. Uma permutação P10 que permuta um entrada de 10 bits 2. Uma operação de deslocamento a esquerda (shift) 3. Uma permutação de 8 bits que produz uma saída de 8 bits, gerando a primeira subchave K1 4. Novamente a saída do passo 2 sofre um segundo deslocamento duplo a esquerda 5. Uma permutação de 8 bits que produz uma segunda saída de 8 bits, gerando a segunda subchave k2 11 Esquema da geração de chaves 12
Funções básicas geração de chaves 1. Permutação P10 2. A função de deslocamento Shift Deslocamento circular a esquerda (rotação) de uma posição dos 5 primeiros ou últimos bits 3. Permutação P8 4. Chave K1 é gerada 13 Funções básicas geração de chaves Aplica shift duplo - saída do passo 2 sofre um segundo deslocamento duplo a esquerda Permutação P8 Chave K2 é gerada 14
Exemplo de geração de chave 15 Criptoanálise do S-DES Ataque Ciphertext Ataque de força bruta é possível já que existem apenas 2 10 possibilidade com uma chave de 10 bits Ataque Known plaintext Pode-se descrever o relacionamento entre um único bloco de texto pleno E um bloco de texto cifrado Em termos (não-linear) de equações que desconhece os 10 bits da chave 16
Criptoanálise do S-DES Sendo (p 00,p 01,p 02,p 03 ) = (a,b,c,d) (p 10,p 11,p 12,p 13 ) = (w,x,y,z) as duas saídas de 4 bits do operador de expansão (Fk), e (q,r,s,t) a saída gerada pela aplicação de S0 e S1: A operação de S0 é definida pelas seguintes equações q = abcd + ab + ac + b + d (adição em modulo 2) R = abcd + abd + ab + ac + ad + a + c + 1 Alternando mapeamentos lineares (permutações e adições) com este mapeamentos não lineares resulta em expressões polinomiais complexas, tornando a criptoanálise difícil 17 Relacionamento com o DES DES opera com bloco de entrada de 64 bits O esquema de de codificação pode ser definido como IP -1 f k16 SW f k15 SW... SW f k1 IP Usa chave de 56 bits, dos quais 16 subchaves de 48 bits são calculadas por uma sequência de deslocamentos e permutações Algoritmo de codificação Ao invés de F atuando sobre 4 bits, ela atua sobre 32 bits Depois da expansão/permutação inicial, a saída de 48 bits pode ser diagramada como n 32 n 1 n 2 n 3 n 4 n 5 n 4 n 5 n 6 n 7 n 8 n 5......... n 28 n 29 n 30 n 31 n 32 n 1 18
S-P networks Substituição virtual construída a partir de componentes mais simples (rounds) Substituições (de tamanho razoável) Transposições São projetados de forma a maximizar os efeitos de Difusão e Confusão (introduzidos por Shanon) Difusão: um dígito afeta o valor de muitos dígitos codificados Confusão: complica o máximo a relação entre o texto cifrado e a chave usada 19 Codificador Feistel Evitar duplicação dos dispositivos/programas para cod/decod cada bloco é partido em dois sub-blocos um é aplicada a transformação e o outro é preservado Os sub-blocos são ainda trocados para que o round seguinte afete agora o sub-bloco que ficou inalterado Todos os codificadores simétricos, em uso, são baseados na estrutura de bloco proposta por Feistel da IBM em 1973 20
Algoritmo O bloco é dividido em 2 partes L 0 (esquerda e R 0 (direita As duas metades passam por 16 rodadas de processamento/combinação A entrada (L i-1, R i-1 ) da i-ésima rodada é obtida da saída da (i-1) rodada, tanto como a subchave Uma substituição é feita na metade da esquerda através da aplicação de uma função F na parte da direita 21 Um round pode ser considerado a sua própria operação inversa se realizarmos algumas trocas nos sub-blocos... 22
Propriedades do Feistel A implementação de uma rede Fesitel depende da escolha dos seguintes parâmetros: Tamanho do bloco: quanto maior o bloco, maior a segurança Tamanho da Chave: quanto maior o tamanho da chave, maior a segurança Número de rodadas: múltiplas rodadas oferecem uma segurança crescente Algoritmo de geração de subchave: complexidade maior acarreta maior dificuldade na criptoanálise Rápida codificação/decodificação pro software: a velocidade de execução do algoritmo é uma preocupação 23 Algoritmos do tipo Feistel 24
Características dos Codificadores em blocos Último bloco é completado (padding) Mais complexos Consideravelmente mais lentos DES é cerca de 10x mais lento do que RC4 Codificadores sequenciais não promovem a difusão Obs: é curioso notar que toda a segurança do codificador perfeito one time pad é baseada apenas em confusão Substituição em blocos Conceitualmente, corresponde a uma substituição em um alfabeto enorme em blocos de 64 bit existirão 2 64! possíveis substituições) 25 DES Data Encryption Standard (DES) Esquema de codificação mais amplamente empregado Especialmente em transações financeiras Geração de código PIN Block Cipher O texto pleno (plaintext) é processado em blocos de 64-bits Tamanho da chave: 56 bits Atualmente NÃO é considerado seguro 26
Algoritmo DES O algoritmo DES é dividido em 3 partes 1. Dado um texto pleno x, calcula-se Onde L 0 é parte esquerda e R 0 e á parte direita de x 0 27 Algoritmo DES Calcula-se 16 interações da seguinte função 28
Exemplo de uma interação 29 Algoritmo DES Calcula-se Que é a inversa de P 30
Algoritmo DES 31 DES Função F 1. O primeiro argumento de F, digamos A, é expandido de acordo com a função E(A) é uma permutação de A com os 16 bits repetidos 2 vezes 32
DES Função F 2. O outro argumento de F, digamos J, é de 48 bits. Calcula-se O resultado é escrito na forma de 8 strings de 6 bits 33 DES Função F 3. Existem 8 S-Boxes (S 1,...,S 8 ) que são arrays 4x16 Dado Calcula-se S J (B J ) b 1 b 6 é a representação binária da linha e b 2 b 3 b 4 b 5 da coluna É o elemento de S J em binário Exemplo B = 010011 C = 10 = 1010 34
S-Boxes 35 DES Função F Aplica-se uma permutação P Em (32 bits) 36
Cálculo da chave K Tamanho 64 bits, sendo que 8 bits de paridade Bits nas posições 8,16,...,64 são definidos de forma que o número de 1 s em cada byte seja par Cálculo 1. Descartar os bits de paridade e realizar a seguinte permutação Onde são as duas metades de K (28 bits cada) 37 Cálculo da chave K 2. Para i = 1,...16 Sendo que Se i = 1,2,9,16 é um deslocamento de 1 bit para esquerda Senão é um deslocamento de 2 bits para a esquerda 38
Cálculo da chave K 39 Princípios do projeto do DES Os S-boxes contém trapdoors escondidos para que a NSA decodifique facilmente? Propriedades anunciadas em 1994 Nenhum bit de saída do S-box deveria ser próximo de uma função linear Todas as linhas de todos os S-boxes são permutações de 0,1...15 Se duas entradas diferem em apenas 1 bit, as saídas devem diferir em pelo menos 2 bits Se duas entradas diferem nos dois bits do meio, as saídas devem diferir em pelo menos 2 bits Se duas entradas diferem nos dois primeiros bits e são idênticas nos dois últimos, as saídas não devem ser iguais Não mais do que 8 entre 32 pares de entrada com diferença de 6-bits podem reproduzir essa diferença na saída 40
Efeito avalanche do DES Propriedades desejada: Uma mínima mudança na entrada implica numa grande alteração na saída DES têm um forte comportamento de difusão Exemplo Entradas 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 Chave 0000001 1001011 0100100 1100010 0011100 0011000 0011100 00110010 41 Efeito Avalanche Entendendo o efeito avalanche do DES (S-P network) 42
Propriedades/Características do DES Complementaridade DES foi projetado para implementações eficientes em hardware Algumas operações particularmente ingratas para implementações em software em particular, permutações e manipulações várias ao nível do bit Algumas chaves com problemas de segurança devido ao mecanismo de produção das subchaves Chaves fracas chaves K1..K16 todas iguais operação de codificação é uma involução cifrar duas vezes permite recuperar o texto original Chaves semi-fracas apenas duas sub-chaves diferentes Chaves possivelmente fracas apenas 4 sub-chaves diferentes Observação todos estes conjuntos de chaves estão tabelados basta assegurar que não é escolhida nenhuma destas chaves 43 Robustez do DES Muita controvérsia sobre a segurança do DES Uma chave de 56 bits é grande o suficiente? Em 1977 Diffie e Hellman propuseram uma máquina paralela com 1 milhão de dispositivos (custo estimado de US$ 20 milhões) que reduziria o tempo de 100 anos para 10 horas Em 1993 Mike Weiner propôs o projeto de um chip com tecnoligia pipeline que conseguia atingir uma marca de 50 milhões de chaves por segundo Em 29 de Janeiro de 1997, os laboratórios RSA lançaram um desafio para achar o texto pleno precedido por 3 blocos conhecidos the unknown message is Ataque de força bruta espalhado em 70000 sites plea internet que levou 96 dias para descobrir a chave Cronologia: http://en.wikipedia.org/wiki/data_encryption_standard 44
Modos de operação do DES 4 modos de operação para satisfazer diferentes requisitos DES é usado em bancos, governo e industria privada 45 Modo ECB Electronic codebook Mesma chave é usada na codificação de cada bloco Útil para para pequenas quantidades de dados Exemplo: chaves codificadas 46
Modo CBC C = E [C i k i 1 P ] i D [C ] = D [E Cipher Block Chaining D K [C i ] = (C i 1 Pi ) C i 1 D K [C i ] = C i 1 C i 1 Pi = Pi Inicia com um vetor inicial IV K i K K (C i 1 P )] i 47 Modo CFB Cipher FeedBack Funciona como um stream cipher 48
Modo OFB Output FeedBack Não propaga erros de transmissão mas é mais vulnerável usado para transmissão via satélite 49 Criptoanálise do DES Força bruta Quebra em 2 56 Análise diferencial Primeira vez publicado em 1990 Quebra em 2 47 Necessita 2 47 textos plenos escolhidos Análise linear Publicado em 1993 Quebra também em 2 47 Necessita 2 47 textos plenos conhecidos 50
Múltiplos DES Alternativas para aumentar a robustez do DES Preservar investimentos em software e equipamentos Duplos DES C = E k2 [E K1 [P]] P = D k1 [D K2 [C]] Chaves com 56x2= 112 bits Meet-in-the-middle-attack X = E k1 [P] = D K2 [C] Quebra em 2 56 ( não muito melhor que 2 55 ) 51 Triplo DES Para conter meet-in-the-middle-attack usa-se 3 estágios Com duas chaves C = E k1 [D K2 [E K1 [P]]] Não têm importância criptográfica o uso de D K2 A única vantagem é permitir o a decodificação do DES simples C = E k1 [D K1 [E K1 [P]]] = E K1 [P] Usado nos padrões de gerência de chaves ANSI X9.17 e ISO 8732 Quebra com 2 112 52
Triplo DES Com três chaves C = E k3 [D K2 [E K1 [P]]] Usado em várias aplicações na internet PGP e S/MIME 53