1 / 44

Segurança em Redes Aula 4

Segurança em Redes Aula 4. Luiz Fernando Rust INMETRO Tel. (021) 2679-9072 e-mail: rust@nce.ufrj.br lfrust@inmetro.gov.br. Criptografia Convencional. CriptoAnálise Linear Diferencial Timming Analysis Power Analysis Differential Fault analysis IDEA AES.

gabi
Download Presentation

Segurança em Redes Aula 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Segurança em Redes Aula 4 Luiz Fernando Rust INMETRO Tel. (021) 2679-9072 e-mail: rust@nce.ufrj.br lfrust@inmetro.gov.br

  2. Criptografia Convencional • CriptoAnálise • Linear • Diferencial • Timming Analysis • Power Analysis • Differential Fault analysis • IDEA • AES

  3. Criptoanálise Linear • Ataque de texto-limpo conhecido • H. Heys, A tutorial on Linear and Differential Cryptamalysis • Idéia básica • Aproxima S-boxes por funções lineares (ou afins) • Exclusive-or “soma” de bits de entrada u e bits de saída  • Para u e  aleatórios • probabilidade da expressão ser satisfeita é ½ • Dado uma Probabilidade Linear pL (expressão linear ser satisfeita), define-se desvio (bias) como • pL - 1/2 • Quanto maior o desvio ( І pL - ½ І ), melhor a aplicabilidade da criptoanálise linear com menos textos conhecidos • Achar expressões que tenham alta ou baixa probabilidade de serem satisfeitas (alto desvio)

  4. Codificador • S- Boxes

  5. Mapeando um S-box • Exemplo: • X2Å X3 Å y1 Å y3 Å y4 = 0 ou X2Å X3 = y1 Å y3 Å y4 • Aplicando os 16 possíveis valores de X e examinando os valores de Y, verifica-se sucesso em 12 dos16 casos • o desvio de probabilidade é 12/16 –1/2

  6. Generalizando mapeamento no S-box • Entrada (horizontal) • Saída (vertical) • Valor representa o desvio (número de acertos – 8) * 16

  7. Aproximação linear para o codificador inteiro • Apenas para os 3 primeiros rounds

  8. Piling-UP • Desvio

  9. Extração dos bits da chave • Aplicando Piling-UP • Com probabilidade 15/32 e desvio = 1/32 • Processo envolve decodificação parcial do último round • Testar todos os valores de subchaves possíveis • Exemplo • 10000 amostras (texto claro/texto cifrado) • Fazer ou-exclusivo do texto cifrado com a subchave em teste • Resultado é aplicado na função reversa do S-box • Valor é comparado com a função linear aplicada no texto claro • Se igual incrementa o contador da subchave • Valor correto da chave é aquele que tiver maior desvio • Desvio = І contador – 5000 І / 10000

  10. Chave do exemplo anterior

  11. Criptoanálise Diferencial • Desenvolvida em 1990 por Eli Biham e Adi Shamir • Ataque de texto limpo escolhido • Compara o comportamento do texto cifrado para blocos com diferenças pré-determinadas • Analisa as diferenças no processamento das Sboxes do último round de forma a determinar a chave utilizada nesse round • Os bits restantes da chave (8) podem ser obtidos por força bruta

  12. Round no DES (função F) • Propriedades importantes

  13. Princípios • No projeto das S-boxes existiu a preocupação de garantir que é produzida uma saída aleatória face a uma entrada aleatória • Porém, a diferença dos resultados de uma S-box para pares de entradas com uma diferença determinada não é mais aleatória • Exemplo para S-1 • Frequência da diferença dos resultados nos pares de entrada com diferença 01 (64 possíveis pares) • comportamento está longe de ser aleatório • muitas das possibilidades de resultado estão excluidas (0,1,2,4,8) • maior probabilidade de ocorrer certos resultados

  14. Tabela de distribuição de S1 - Probabilidade de saída

  15. Exemplo • Pode-se determinar também as entradas e as saídas • Exemplo: Diferença de entrada = 34

  16. Como achar K? • Dado S1E = 1 e S1E* = 35 • Pela tabela verificamos que existem 8 formas de mapear 34 com D • Pela construção da tabela determinamos que K X tem de ser • 06, 10, 16, 1C, 22, 24, 28, 32.

  17. Como achar K? • Repetindo o mesmo raciocínio para S1E = 21 e S1E* = 15 • Pela tabela verificamos que existem 6 formas de mapear 34 com 3 • Pela construção da tabela determinamos que K X tem de ser • 01, 02, 15, 21, 35, 36 • Chave (K) • Determinada pela intersecção dos conjuntos de possibilidades • 17 ou 23

  18. Ataque n-rounds • A cripto-análise diferencial baseia-se no conhecimento das diferenças na entrada/saída das S-boxes... • As diferenças nas entradas da S-box do último round são diretamente calculadas dos criptogramas disponíveis • Já as diferenças na saída terão de ser calculadas com base em estimativas • Motivo pelo qual a viabilidade da criptoanálise diferencial é fortemente influenciada pelo número de rounds • ...para 3 rounds é possível conduzir uma análise determinística • Para mais do que isso é necessário uma abordagem probabilística que aumenta muito o número de pares texto limpo/criptograma a analisar e complica substancialmente o ataque

  19. Ataque n-rounds • Gerar características diferenciais até o penúltimo round • Fazer decodificação parcial do último round • Testar todos os valores de subchaves possíveis • Exemplo • Tabela de distribuição do codificador do tutorial de H. Heys, (A tutorial on Linear and Differential Cryptamalysis(

  20. Características Diferenciais • Usando

  21. Extração dos bits da chave • Conactenando S-boxes • Com probabilidade • Processo envolve decodificação parcial do último round • Testar todos os valores de subchaves possíveis • Exemplo • 5000 amostras (texto claro/texto cifrado) • Fazer ou-exclusivo do par de textos cifrados com a subchave em teste • Resultado é aplicado na função reversa do S-box • Valor é comparado com as diferenças obtidas para cada par de textos claros correspondente • Se igual incrementa o contador da subchave • Valor correto da chave é aquele que tiver maior valor no contador • prob = contador / 5000

  22. Chave do exemplo anterior

  23. Resumo de resultados da Criptoanálise diferencial

  24. Outras Técnicas de Criptoanálise • Muitas técnicas de cripto-análise não atacam diretamente o algoritmo criptográfico mas procuram retirar informação do “ambiente” onde este é executado • Power analysis • Timming analysis • Differential fault analysis • Estas técnicas não são, de forma alguma, específicas do DES • Algumas são até particularmente adequadas para atacar cifras assimétricas

  25. Timming Analysis • Analisa tempos de execução das operações criptográficas de forma a retirar informação sobre os parâmetros do algoritmo • Particularmente efetiva para algoritmos assimétricos, onde as operações são fortemente dependentes dos dados (e.g. Exponenciação modular) • Cuidados especiais nas implementações dificultam ataques (e.g. dummy code; randomized delays; etc.)

  26. PowerAnalysis • Retira informação dos parâmetros dos algoritmos por análise do consumo de energia • Execuções condicionais • Escalonamento das chaves • Permutações Divergência do relógio no ciclo 6 indica execução condicional...

  27. Differential Fault analysis • Comparam a execução do algoritmo com uma onde são induzidos erros na sua execução • Induz-se um erro num dos bits do último round • Por analise diferencial, determina-se chave do round • Restantes bits por força bruta... • Vocacionada para atacar dispositivos “tamper proof” (e.g. Smartcards)

  28. International Data Encryption Algorithm (IDEA) • Criado em 1991 por James Massey e Xuejia Lai • Possui patente da suíça ASCOM Systec • Estruturado seguindo as mesmas linhas gerais do DES • também é um cifrador de bloco iterativo, com um bloco de tamanho igual a 64 bits e um tamanho de chave de 128 bits • Possui apenas 8 iterações (DES possui 16) • Cada iteração IDEA funciona como se fosse uma dupla iteração DES • Na maioria dos microprocessadores, uma implementação por software do IDEA é mais rápida do que uma implementação por software do DES • Considerado um dos mais seguros codificadores atuais • Usado no PGP

  29. IDEA • Texto pleno organizado em blocos de 64 bits • Confusão e difusão são gerados por grupos algébricos • XOR • Adição mod (216) • Multiplicação mod (216 + 1) – também visto com S-boxes • Todas as operações incidem em blocos de 16 bits • Blocos de dados são divididos em 4 blocos de 16 bits • Utiliza 8 rodadas e cada rodada tem 14 passos

  30. IDEA - Rodadas Exceto para a última rodada, swap Y2 e Y3 Depois da última rodada (oitava):

  31. IDEA: Interações

  32. IDEA – Geração de chaves • Usa um total de 52 subchaves • 6 em cada uma das 8 rodadas e 4 na operação de saída • Chave original K é dividida em 8 subchaves de 16 bits • 6 primeiras são usadas no primeiro round • As duas restantes ficam para o segundo round • Desloca chave 25 bits para esquerda e divide novamente em 8 subchaves • Usa as quatro primeiras para completar as chaves do segundo round • As quatro restantes ficam para o terceiro round • Desloca chave 25 bits para esquerda e divide novamente em 8 subchaves • Assim sucessivamente....

  33. IDEA considerações • Velocidade • Implementações atuais rodam duas vezes mais rápidas que o DES • Criptoanálise • Ataque de força bruta necessita 2128 • Parece ser imune a ataques diferenciais (pouco estudo ainda) • Algumas classe de chaves podem facilitar ataques do tipo texto pleno escolhido, mas nunca serão usadas

  34. Advanced Encryption Standard • Programa iniciado em 1997 pelo NIST para substituir o DES • AES: novo padrão durante os próximos 30 anos (e vida útil de outros 50 ou 60 anos) • Obs: AES deverá proteger informações até o século XXII! • Requisitos do sucessor do DES • ter chaves de 128, 192 e 256 bits • operar com blocos de 128 bits • ser “eficiente” • ser “flexível” • estar livre de royalties • Quinze candidatos foram selecionados em jun/98 • Cinco candidatos em 1999: Serpent, Mars, RC6, Twofish e Rijndael

  35. Advanced Encryption Standard • AES foi adotado o pelo National Institute of Standards and Technology (NIST) como US FIPS PUB 197 em Novembro de 2001 depois de um processo de padronização de 5 anos • Concorrentes • Rijndael (86 votos) - anunciado vencedor em Outubro de 2000 • Rijndael can be pronounced "Rhine dahl", a long “i" and a silent “e“ • Desenvolvido por Joan Daemen e Vincent Rijmen (Rijmen-Daemen - Bélgica) • Serpent (59 votos) • Mars (13 votos) • RC6 (23 votos) • Twofish (31votos) • Pela primeira vez um codificador público é usado plo NSA para informação Top Secret • "The design and strength of all key lengths of the AES algorithm (i.e., 128, 192 and 256) are sufficient to protect classified information up to the SECRET level. TOP SECRET information will require use of either the 192 or 256 key lengths. The implementation of AES in products intended to protect national security systems and/or information must be reviewed and certified by NSA prior to their acquisition and use."

  36. Rijndael • Características • operações realizadas no nível de byte • tamanhos de chaves: 128, 192, 256 bits • tamanhos de blocos: 128, 192, 256 bits • número de rodadas: 9, 11, 13 (além de uma rodada • extra no final) • Opera em arrays de 4×4 de bytes – • Denominado estado • Versões com blocos maiores operam com colunas adicionais • Cada rodada composta de quatro passos • substituição de bytes • deslocamento de linhas • mistura de colunas, • soma da subchave de rodada

  37. 0 0 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db a e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79 b e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 c ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e e e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df f 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16 0 1 2 3 4 5 6 7 8 9 a b c d e f Substituição de bytes

  38. Deslocamento de linhas

  39. Mistura de colunas

  40. Soma da subchave de rodada

  41. AES completo

  42. CriptoAnálise do AES • Pela primeira vez a Matemática envolvida é completamente aberta • Ataques conhecidos • Quebras com codificadores que implementam um menor número de rodadas • 7/10 - 128, 8/12 – 192, 9/14 – 256 • Preocupações com a margem pequena entre o número de rodadas passíveis de quebra e o padronizado • Quebra criptográfica é qualquer coisa melhor que uma busca exaustiva • Como uma busca exaustiva envolve pelo menos 2128... • Ataque téorico proposto em 2002 – XSL attack • Erros nas estimativas • Cache timing attack • Ataque não contra o AES mas contra implementações mal-feitas do AES • Servidor usando OpenSSL sem restrição de tempo • Recomendação do autor -> não usar S-box

  43. Outros Algoritmos Simétricos • Blowfish (32-448 bits) • Não patenteado • Fácil implementar • Alta velocidade de execução • Roda em emenos de 5K de memória • S-boxes dependem dos dados • Skipjack (80 bits) • Utilizado no Clipper e Fortezza • Desenvolvido pela NSA • Em domínio público desde jun/98 • CAST-128 e CAST-256 • 128 e 256 bits, patenteado pela Nortel (não há royalties) • As funções variam de rodada para rodada

  44. Outros Algoritmos Simétricos • RC5 e RC28 • Projetados por Ron Rivest (o R da empresa RSA Data Security Inc.) • Também é o autor do RC4 e RC6, este último foi concorrente ao AES • RC5 • Rápido, Simples • Adaptável para processadores com diferentes tamanhos de palavra • Número variável de rodadas • Chave de tamanho variável • Baixa necessidade de memória • Alta segurança • Rotações dependentes dos dados • RC28 • Utilizado no protocolo S/MIME • Voltado para criptografia de e-mail corporativo • Também possui chave de tamanho variável

More Related