Software de Telecomunicações. Cifras simétricas por blocos

Documentos relacionados
Criptografia e Segurança das Comunicações

Criptografia e Segurança de Redes Capítulo 5. Quarta Edição por William Stallings

SEGURANÇA CRIPTOGRAFIA E SEGURANÇA DE DADOS. As funções de cifra são consideradas totalmente seguras se:

OSRC001 Segurança em Redes de Computadores Módulo 07: Criptografia Simétrica: AES/SAES

OTES07 Segurança da Informação Módulo 05a: Criptografia Simétrica: DES/SDES

Segurança da Informação Aula 5 Criptografia. Objetivos e Tipos. Cifras de Bloco e Fluxo

OTES07 Segurança da Informação Módulo 05b: Criptografia Simétrica: AES/SAES

Tópicos Especiais em Segurança da Informação. Aula 2 Criptografia AES

TÓPICOS ESPECIAIS EM SEGURANÇA DA INFORMAÇÃO

Segurança em Redes - 3

Segurança da Informação Aula 6 Principais Algoritmos Simétricos. Criptografia Assimétrica.

Criptografia e Segurança em Rede Capítulo 3. William Stallings

Segurança de Sistemas de Informação

Raquel de Araújo Fábio Borges Gerson Nunes. O algoritmo AES: Apresentação e Descrição da Estrutura p.1/23

Resumo Segurança em Redes de Computadores

Segurança em Redes de Computadores

Engloba os criptossistemas clássicos. Outros nomes: (Criptografia...)

4 ÍNDICE Exemplo de redundância e distância de unicidade... 41

Sistemas criptográficos simétricos

ANÁLISE DO ALGORITMO VENCEDOR DO AES: O RIJNDAEL

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 ú

Segurança Informática em Redes e Sistemas

Introdução à Segurança e Primitivas Criptográficas

Tão logo os homens adotaram a escrita, começaram a se preocupar em enviar informações em segredo.

Criptografia. Módulo I Terminologia. M. B. Barbosa 2006/2007. Departamento de Informática Universidade do Minho

WEP, WPA e EAP. Rodrigo R. Paim

Cifra Sequenciais. Criptografia Engenharia Biomédica José Carlos Bacelar Almeida Cifra One-Time-Pad

Segurança Informática em Redes e Sistemas

Capítulo 8. Segurança de redes

Mecanismos Criptográficos Esquemas

Criptografia. Aula 4: Autenticação de mensagens e canais seguros. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019

Criptografia Simétrica e Assimétrica, Hash, e Assinatura Digital

PLANO DE DISCIPLINA DISCIPLINA: Segurança da Informação

PTC Aula 19. (Kurose, p ) (Peterson, p ) 09/06/ O que é segurança de rede? 5.2 Princípios de criptografia

UM HARDWARE IP PARA CRIPTOGRAFIA NO PADRÃO AES-RIJNDAEL

M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações

Técnicas de criptografia. Funções Hash Criptografia com chave secreta Criptografia com chave pública Assinatura digital Protocolos

Criptografia em redes de computadores. Gabriel Stefen e Thiago Stefen

Cifragem de Imagens usando Cifras de Bloco e

AULA 5: Criptografia e Esteganografia

Conceito. HASH são caminhos de mão única (funções matemáticas) que são utilizados para se criar códigos.

O padrão de criptografia simétrica AES

Autenticação por par de. chaves assimétricas. Bruno Follmann

CRIPTOGRAFIA E SEGURANÇA DE REDES

Criptografia Assimétrica e Funções de Síntese

Prof. Sandro Wambier

Segurança de aplicação - S/MIME

Protocolo para cifra de uso único via função NOT controlada

MAB 715 Segurança em Redes

Conceitos básicos de criptografia

Configuração do gateway ao gateway VPN no Roteadores RV016, RV042, RV042G e RV082 VPN

Engenharia de Segurança

Criptografia no MSX Fulswrjudild qr PVZ

Transcrição:

Software de Telecomunicações Cifras simétricas por blocos Prof RG Crespo Software de Telecomunicações Cifras por bloco : 1/40 Cifras modernas (1) Para dificultar a quebra do código, a chave deve ser o mais extensa possível. Tal critério esbarra com a dificuldades Memorização Transmissão por via segura A moderna criptografia de chaves simétricas baseia-se na simplificação das chaves e no aumento da complexidade da cifra. Existem 2 abordagens: Bloco: cifrado um bloco (série de elementos) de cada vez DES- Data Encryption Standard, baseada na rede de Feistel. EAS- Advanced Encryption Standard, baseada na rede permutação substituição. Sequenciais: cifrado elemento a elemento (ex: RC4, A5) Prof RG Crespo Software de Telecomunicações Cifras por bloco : 2/40

Cifras modernas (2) Vantagens das cifras de bloco Maior dificuldade no ataque Normas estabelecidas (NIST, ) Perda/alteração de bits afecta apenas o bloco (ou contrário das cifras sequenciais, que podem afectar a mensagem restante) Vantagens das cifras sequenciais Maior rapidez nas operações cifrar/decifrar Maior facilidade na análise matemática Usadas em cifras de sistemas de comunicações (ex: bluetooth, GSM e 802.11) Prof RG Crespo Software de Telecomunicações Cifras por bloco : 3/40 Cifras de bloco (1) Definição: Numa cifra de bloco, o texto a cifrar (tipicamente sequências de bits) é partido em blocos, todos do mesmo tamanho. Cada bloco é cifrado de forma independente. Se o texto não for de comprimento múltiplo do bloco, os bits que faltam no último bloco são preenchidos de forma pré-determinada ( padding ). Conceptualmente, cifra por bloco é uma substituição num alfabeto gigantesco (Ex: num bloco de 64 bits há 2 64 substituições possiveis) Prof RG Crespo Software de Telecomunicações Cifras por bloco : 4/40

Cifras de bloco (2) Operações de grupo: as cifras modernas de bloco usam combinações de várias operações de grupos de bits 1. Caixa P: implementa uma permutação da entrada. (1) Permutação 0 0 5 5 A entrada 012345 é transposta para 420135 Prof RG Crespo Software de Telecomunicações Cifras por bloco : 5/40 Cifras de bloco (3) (2) Permutação compressão (3) Permutação expansão 0 0 0 0 5 3 5 7 2. Rotações controladas: rotação circular de bits, número de vezes determinados por valor u u >> Prof RG Crespo Software de Telecomunicações Cifras por bloco : 6/40

Cifras de bloco (4) 3. Caixa S: implementa uma substituição não-linear de n bits de entrada por m bits de saída. 4. Circuitos de Feistel: entrada de 2n bits dividida em dois sub-blocos E (esquerdo) e D (direito), que são permutados com um dos sub-blocos alterados. E D F k E' D' = 0 1 1 F(.k) E D E' + D' D E = 0 1 1 F(.k) D' E' Prof RG Crespo Software de Telecomunicações Cifras por bloco : 7/40 Cifras de bloco (5) Problema: decifrar blocos demora tempo e é sujeita a falhas na transmissão dos criptogramas. Solução: prefixar mensagem com número de sequência e pósfixar com checksum CRC 1. Decifrar número de sequência primeiro 2. Se for inválido, abandonar. Se for válido, continuar a cifrar criptograma. 3. Verificar CRC antes de entregar o texto decifrado. Mensagem Número de sequência CRC Prof RG Crespo Software de Telecomunicações Cifras por bloco : 8/40

Exemplo de aplicação: DES (1) Curiosidade, não faz parte da avaliação Algoritmo de blocos, adoptado pelo NIST em 1977 com base no algoritmo Lucifer (desenvolvido pela IBM). Primeiro sistema criptográfico simétrico de grande utilização. Alterações impostas pela NSA 1 (ex: redução da chave inicial de 128 para 56 bits [ver tabela de espaço de cifra] e alterações nas S-boxes) geraram controvérsia sobre existência de mecanismos escondidos de decifra ( trapdoor ). Trabalhos posteriores demonstraram que alterações melhoraram segurança. Em particular, técnicas de criptoanálise diferencial revelam grande imunidade do DES (o NSA sugeriu que essas técnicas eram suas conhecidas antes de terem sido publicadas). 1-National Security Agency: Fort Meade, MD é o maior empregador de matemáticos nos EUA Prof RG Crespo Software de Telecomunicações Cifras por bloco : 9/40 Exemplo de aplicação: DES (2) Curiosidade, não faz parte da avaliação Caixa S: Tabelas de substituição, com 6 bits de entrada substituídos por 4 bits de saída: dependem do local onde são aplicadas Ex: S-box 1 entrada x 1 x 6, dividida em duas partes: A= x 1x 6 e B= x 2 x 4 saída y 1..y 4 B 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 A 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 Prof RG Crespo Software de Telecomunicações Cifras por bloco : 10/40

Exemplo de aplicação: DES (3) Curiosidade, não faz parte da avaliação a) Cifra: 16 rondas ( rounds ) por circuitos Feistel. Chave de 56 bits, a que se adicionam 8 bits de paridade. Em cada ronda a chave é deslocada. Texto plano Permutação inicial L 0 R 0 + f 1 L 1 =R 0 R 1 =L 0 f(r 0, 1 ) Permutação final Texto cifrado Prof RG Crespo Software de Telecomunicações Cifras por bloco : 11/40 Exemplo de aplicação: DES (4) Curiosidade, não faz parte da avaliação Função f 32 bits (56 bits)+paridade Shift 48 bits (48 bits) + 6 S-box 1 4 6 S-box 8 4 Permutação 32 bits Prof RG Crespo Software de Telecomunicações Cifras por bloco : 12/40

Exemplo de aplicação: DES (5) Curiosidade, não faz parte da avaliação Decifra: mesmo algoritmo que cifra, excepto ordem das chaves k 16 k 1 Resultado na iteração j a) L j = R j-1 b) R j = L j-1 f(r j-1,k j ) Trocando sentido a) R j-1 = L j b) L j-1 f(r j-1,k j ) = R j L j-1 f(r j-1,k j ) f(r j-1,k j ) = R j f(r j-1,k j ) L j-1 = R j f(r j-1,k j ) L j-1 = R j f(l j,k j ) Prof RG Crespo Software de Telecomunicações Cifras por bloco : 13/40 Exemplo de aplicação: DES (6) Curiosidade, não faz parte da avaliação Há 4 chaves, denominadas fracas, que levam à geração de sub-chaves iguais 0000000 0000000 0000000 FFFFFFF FFFFFFF 0000000 FFFFFFF FFFFFFF Nota1: DES disponibilizado em Linux por #include <unistd.h> char *crypt(const char *key, const char *salt); Nota2: DES implementado em circuitos integrados Prof RG Crespo Software de Telecomunicações Cifras por bloco : 14/40

Exemplo de aplicação: DES (7) Curiosidade, não faz parte da avaliação b) Ataques: Resistente a criptoanálise diferenciada (identificar chave observando resultados nos criptogramas de pequenas diferenças inseridas no texto plano)-técnica desconhecida nos anos 70. Graças ao espaço de cifra de 56 bits, em Jan 1999 o DES foi quebrado em 22h 15min, por computação distribuída com 100_000 PCs (245 biliões de chaves/seg) Ataque por dicionário: apesar de cada texto plano poder gerar 2 64 criptogramas, o DES apenas gera 2 56 alternativas. O ataque reside em cifrar um texto com as 2 56 chaves possíveis, submeter o texto plano ao cifrador e comparar o resultado para quebrar a chave. Até agora, DES passível de ataque apenas por força bruta! Prof RG Crespo Software de Telecomunicações Cifras por bloco : 15/40 Exemplo de aplicação: DES (8) Curiosidade, não faz parte da avaliação IBM melhorou segurança, através de cifra tripla e mantendo chaves de 56 bits. k 1 k 2 k 1 k 1 k 2 k 1 P E D E C D E D P Com duas chaves, 3DES constroi espaço de chaves de 2 112 Nota1: 3DES usado ainda hoje nos sistemas bancários. Nota2: Em 1999, 3DES codificado a 120 Bps. Prof RG Crespo Software de Telecomunicações Cifras por bloco : 16/40

Exemplo de aplicação: EAS (1) NIST abriu concurso em 97 para algoritmo de substituição do 3DES, designado por AES- Advanced Encryption Standard. Foram usados como critérios de selecção 1. Segurança: resistência à criptoanálise 2. Eficiência computacional e requisitos de memória 3. Implementação: simplicidade no algoritmo, apropriado para implementação em SW e HW. Submetidas 15 propostas, 5 finalistas 1. Rijndael (Rijmen e Daemen da U Leuven/Bélgica) - vencedor 2. Serpent (de investigadores de U,D e Israel) 3. Twofish (de Counterpane Labs). 4. RC6 (RSA) 5. MARS (IBM) Prof RG Crespo Software de Telecomunicações Cifras por bloco : 17/40 Exemplo de aplicação: EAS (2) Desempate Rijndael/Serpent conseguido por ser algoritmo de implementação mais eficiente. Rijndael é um algoritmo de blocos de 128 bits Chave de 128 bits, mas o algoritmo base pode ser alterado para múltiplo de 32 bits (exemplos: 192 e 256 bits). Formado por 10 rondas com permutações e XOR de sub-chaves. Facilmente implementado em processadores de 8 bits, para smart cards. Exemplos conhecidos de utilização da cifra AES: SSH Sensor Zigbee Prof RG Crespo Software de Telecomunicações Cifras por bloco : 18/40

Exemplo de aplicação: EAS (3) a) Cifra: Cifra calculada por rondas Rondas da primeira à penúltima composta por quatro etapas (1 permutação e 3 substituições). 1) Substituição (caixa S) 2) Deslocamento linhas: permutação simples 3) Mistura: aritmética sobre GF(2 8 ) 4) Adição de chave 1 10 Texto pleno Adição chave Substituição bits Deslocamento Mistura Adição chave Substituição bits Deslocamento Adição chave Texto cifrado Chave w[0,3] Chave expandida w[4,7] w[40,43] Prof RG Crespo Software de Telecomunicações Cifras por bloco : 19/40 Exemplo de aplicação: EAS (4) Texto colocado no estado corrente (State) - matrix 4 linhas por Nb colunas (Nb=tamanho bloco/32). Para o AES, Nb=4 e o texto é espalhado ao longo da colunas. Estado 8 bits 0 1 2 15 128 bits S 0,0 =0 S 0,1 = 4 S 1,0 =1 S 1,1 = 5 S 2,0 =2 S 2,1 = 6 S 3,0 =3 S 3,1 = 7 S 0,2 =8 S 0,3 =12 S 1,2 =9 S 1,3 =13 S 2,2 =10 S 2,3 =14 S 3,2 =11 S 3,3 =15 Prof RG Crespo Software de Telecomunicações Cifras por bloco : 20/40

Exemplo de aplicação: EAS (5) Chave expandida na matrix Roundey de 4 linhas por Nk colunas (Nk=tamanho chave/32). Nota: No AES, bloco e chave de 128 bits. Logo, Nb=Nk=4 Numero de rondas dada pela seguida tabela: Nb=4 Nb=6 Nb=8 Nk=4 10 12 14 Nk=6 12 12 14 Nk=8 14 14 14 AES Prof RG Crespo Software de Telecomunicações Cifras por bloco : 21/40 Exemplo de aplicação: EAS (6) 1) Substituição de bits Cada Byte do estado substituído pelo Byte indexado pela linha (4-bits esquerdos) e coluna (4-bits direitos). Ex: Byte 4A substituído pelo valor S-box(4,A)=D6 Nota: Informação extra disponível em Design of Rinjdael, Joan Daemen and Vincent Rijmen, Springer-Verlag Prof RG Crespo Software de Telecomunicações Cifras por bloco : 22/40

Exemplo de aplicação: EAS (7) 2) Deslocamento de linhas: deslocamento circular esquerdo em cada linha i de i posições Prof RG Crespo Software de Telecomunicações Cifras por bloco : 23/40 Exemplo de aplicação: EAS (8) 3) Mistura Cada coluna processada separadamente. Cada Byte substituído por valor dependente de todos os 4 Bytes da coluna, prefazendo multiplicação em GF(2 8 ). Prof RG Crespo Software de Telecomunicações Cifras por bloco : 24/40

Exemplo de aplicação: EAS (9) 4) Adição de chave XOR em cada coluna a uma sequência de 4 Bytes da chave. Em cada ronda a sequência avança 4 posições. Prof RG Crespo Software de Telecomunicações Cifras por bloco : 25/40 Exemplo de aplicação: EAS (10) 5) Expansão da chave O tamanho da chave a ser usada nas rondas é igual ao produto do comprimento do bloco pelo número de rondas mais um. No AES, a chave de 128 bits é expandida para uma tabela de 44 palavras de 32 bits. 1. Copiadas as 4 palavras iniciais da chave para a chave estendida 2. Ciclo de 4 palavras de cada vez, com w[i] dependente de w[i-1] e w[i-4]. Se w[i] não for múltiplo de 4, aplicar XOR Se w[i] for múltiplo de 4, para w[i-1] rodar + S-box + XOR de w[i-4]. Prof RG Crespo Software de Telecomunicações Cifras por bloco : 26/40

Exemplo de aplicação: EAS (11) Prof RG Crespo Software de Telecomunicações Cifras por bloco : 27/40 Exemplo de aplicação: EAS (12) b) Decifra: Aplicar etapas na sequência inversa Inverter operação em cada etapa Sequência da chave expandida é igualmente invertida (de w[40,43] até w[0,3] c) Ataques Uma máquina que verifica 10 18 chaves/seg, demora 10 13 anos a varrer o espaço de chaves de 128 bits: a idade estimada do universo é de 1.3x10 10 anos. São conhecidos ataques a AES até 7 rondas, o que levanta preocupações pela pequena margem de conforto. Prof RG Crespo Software de Telecomunicações Cifras por bloco : 28/40

Modos criptográficos (1) [Definição] O modo criptográfico combina de formas distintas a chave e os textos (plano ou criptograma) para evitar o problema de, numa cifra de blocos, o mesmo texto plano com a mesma chave produzem a mesma cifra. Os objectivos dos modos criptográficos são a confidencialidade e a integridade das mensagens. São conhecidos vários modos criptográficos: 1. ECB - Electronic Codebook 2. CBC - Cipher Block Chaining 3. CFB - Cipher Feedback 4. OFB - Output Feedback 5. CTR - Counter Prof RG Crespo Software de Telecomunicações Cifras por bloco : 29/40 Modos criptográficos (2) ECB-Electronic codebook: os blocos são cifrados em paralelo. Vantagem: simples de operar, crifra e decifra podem ser paralelizadas. Inconveniente: fragmentos de texto plano pode repetir-se (ex: cabeçalhos de Email), que resultam em fragmentos iguais no criptograma. Desaconselhado em protocolos criptográficos. Ci = E Pi = D k k ( Pi ) ( C ) i Emissor P 1 C 1 P 2 C 2 Receptor Prof RG Crespo Software de Telecomunicações Cifras por bloco : 30/40 P 1 P 2

Modos criptográficos (3) Ataque por repetição de bloco 1. Intruso intercepta mensagens cifradas de transferências entre os bancos A e B. 2. Intruso transfere várias vezes quantias fixas de amigos com contas em A (dando antecipadamente o $), para a sua conta no banco B. Assim consegue isolar a ordem cifrada de depósito para a sua conta no banco B. 3. Num dia movimentado, adiciona uma ordem cifrada de depósito para a sua conta no banco B em todas as transferências. Ao fim do dia levanta o seu saldo e desaparece. Contra-ataques: alterar frequentemente as chaves, ou usar modos criptográficos de encadeamento ( chaining ). Prof RG Crespo Software de Telecomunicações Cifras por bloco : 31/40 Modos criptográficos (4) CBC - Cipher Block Chaining: resultados da cifra anterior são somados ao texto plano a submeter à cifra seguinte. Ci = E Pi = D k k ( Pi ( C Ci 1), ) C i i 1 PT1 C 0 = IV Emissor IV CT1 Receptor IV PT1 PT2 CT2 PT2 Prof RG Crespo Software de Telecomunicações Cifras por bloco : 32/40

Modos criptográficos (5) IV-vector de inicialização é aleatório, pode ser público (não há problemas, uma vez que os IV dos blocos seguintes também são públicos). O CBC representa uma extensão das cifras sequenciais. Vantagem: a decifra pode ser paralelizada. Inconvenientes: O modo CBC manifesta problema do erro na transmissão de um bit poder afectar todo o restante texto. A cifra é sequencial, a impossibilidade de paralelização da cifra não permite melhorar o desempenho. Nota: modo recomendado em Bruce Schneier; Applied Cryptography- Protocols, Algorithms and Source Code in C; John Wiley, 1996 Prof RG Crespo Software de Telecomunicações Cifras por bloco : 33/40 Modos criptográficos (6) CFB - Cipher Feedback: criptograma é cifrado para soma, módulo 2, do criptograma seguinte. Ci = E Pi = E k k ( C ( C i 1 i 1 ) Pi, ) C i O 0 = IV Emissor IV Receptor IV P 1 C 1 P 2 C 2 P 1 P 2 Prof RG Crespo Software de Telecomunicações Cifras por bloco : 34/40

Modos criptográficos (7) Vantagens e inconvenientes do CBC também manifestadas no CFB Vantagem: a decifra pode ser paralelizada. Inconvenientes: O modo CFB manifesta problema do erro na transmissão de um bit poder afectar todo o restante texto. A cifra é sequencial, a impossibilidade de paralelização da cifra não permite melhorar o desempenho. O CFB revela vantagem extra de permitir pipeline (cada ronda depende da cifra da ronda anterior), útil para aplicações que exigem latência reduzida (ex: video). Prof RG Crespo Software de Telecomunicações Cifras por bloco : 35/40 Modos criptográficos (8) OFB - Output Feedback: cifra é aplicada apenas ao IV e o texto plano é somado ao resultado. Ci = Pi Pi = C i Oi, O i O O = i 0 = IV E ( O k ) i 1 Emissor IV PT1 PT2 CT1 CT2 PT1 PT2 Receptor Prof RG Crespo Software de Telecomunicações Cifras por bloco : 36/40 IV

Modos criptográficos (9) IV-vector de inicialização é aleatório, pode ser público. O OFB admite que os blocos de texto sejam de comprimento menor que a chave. Vantagens: Devido à simetria da operação XOR, a cifra e a decifra são iguais. O modo OFB não manifesta problema do erro na transmissão de um bit. Prof RG Crespo Software de Telecomunicações Cifras por bloco : 37/40 Modos criptográficos (10) CTR-Counter: cifra é soma de valores cifrados de uma sequência não repetida (ex: nonce mais contador). Vantagens: Não exige enchimento. Permite paralelização. Nota: modo adoptado pelo WPA2 (comunicações de sistemas sem fios, norma IEEE 802.11i) com cifra por AES. Emissor Nonce P 1 C1 Receptor Nonce +1 P 1 +1 P 2 C2 +1 P 2 +1 Prof RG Crespo Software de Telecomunicações Cifras por bloco : 38/40

Enchimento de blocos (1) Algoritmos de cifra em bloco em modos ECB ou CBC exigem entrada ser múltipla da dimensão do bloco. Existem diversas técnicas de enchimento ( padding ) de blocos. Nos exemplos consideramos um bloco para DES de 8B (64 bits) terminado por fim. = 66h69h6dh2eh. 1. Todos os caracteres iguais a espaço. Ex: 66 69 6d 2e 20 20 20 20 2. Todos os caracteres iguais a NULL Ex: 66 69 6d 2e 00 00 00 00 Prof RG Crespo Software de Telecomunicações Cifras por bloco : 39/40 Enchimento de blocos (2) 3. Caracteres NULL, excepto último que indica o número de caracteres de enchimento. Ex: 66 69 6d 2e 00 00 00 04 Para o modo ECB, usar caracteres aleatórios em vez de NULL Ex: 66 69 6d 2e 58 B3 98 04 4. Todos os caracteres iguais ao número de caracteres de enchimento (PCS#5 e RFC2630). Ex: 66 69 6d 2e 04 04 04 04 5. Primeiro caractere 0x80, restantes iguais a NULL. Ex: 66 69 6d 2e 80 00 00 00 Prof RG Crespo Software de Telecomunicações Cifras por bloco : 40/40