320 likes | 526 Views
Criptografia e Segurança de Rede Capítulo 6. Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu. Capítulo 6 – Mais sobre cifras simétricas.
E N D
Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu
Capítulo 6 – Mais sobre cifras simétricas “Estou familiarizado com todas as formas de escritas secretas, sendo eu mesmo o autor de uma monografia superficial sobre o assunto, em que analiso 160 cifras diferentes" disse Holmes. —The Adventure of the Dancing Men, Sir Arthur Conan Doyle
Criptografia Múltipla & DES Triplo • Era necessário substituir o DES • Vulnerável a ataques por força bruta • E também a ataques cripto-analíticos • AES é uma alternativa para isto • Outra opção é usar a criptografia múltipla com DES e chaves múltiplas • DES triplo foi a forma escolhida
DES Duplo • Pode-se usar 2DES em cada bloco • C = EK2(EK1(P)) • Redução a um único estágio • Ataque “meet-in-the-middle” • Funciona em qualquer cifra de criptografia de bloco • Desde que X = EK1(P) = DK2(C) • Criptografe P para todos os valores possíveis de K1 • Então decriptografe C usando todos os valores possíveis de K2 • Pode mostrar O(256) passos
DES triplo com duaschaves • Deve-se usar 3 criptações • Afigura a necessidade de 3 chaves distintas • Mas pode usar 2 chaves com sequênciaCript-Decript-Cript • C = EK1(DK2(EK1(P))) • cript & decript equivalentes em segurança • se K1=K2 então funciona com Simples DES • Padronizado em ANSI X9.17 & ISO8732 • Nenhum ataque conhecido
DES triplo com três chaves • Embora não tem ataques para duas chaves o DES triplo tem suas indicações • Possui um tamanha de chave efetivo de 168 bits e é definido da seguinte maneira: • C = EK3(DK2(EK1(P))) • Diversas aplicações na internet adotaram o 3DES com três chaves, incluindo PGP, S/MINE
Modos de operação de cifra de bloco • Criptografia de cifra de bloco com tamanho do bloco fixo • Ex.: DES usa blocos de 64-bit c/ chaves de 56-bit • Precisa de alguma maneira para en/decript arbitrária quantidade de dados • ANSI X3.106-1983 modo de usar (agora FIPS 81)define 4 possíveis modos • posteriormente 5 definições para AES & DES • Tem modos de blocos e fluxo
ModoEletronic Codebook • Mensagem é quebrada em blocos independentes que são criptografados • Cada bloco é um valor que é substituído, como um codebook, por isso do nome. • Cada bloco é codificado independentemente dos outros blocos Ci = DESK1(Pi) • Uso: ideal para transmissão segura de pequena quantidade de dados
Vantagens e Limitações do ECB • Mensagens repetidas podem aparecer no criptograma • Se alinhado com o bloco da mensagem • Particularmente com os dados do gráfico • Ou com mensagens que mudam muito pouco, que se tornam um problema de analise de code-book • Fraqueza é devido a blocos de mensagem criptografada serem independentes • Utilização principal é o envio de alguns blocos de dados
Modo Cipher Block Chaining (CBC) • Mensagem é quebrado em blocos • Ligados juntos na operação de criptografia • Cada bloco da cifra anterior é encadeado com o bloco do texto atual, por isso o nome. • Usa o vetor inicial (IV) para iniciar o processo Ci = DESK1(Pi XOR Ci-1) C-1 = IV • Uso: Confidencialidade, autenticação
Message Padding • No final da mensagem tem de lidar com um possível curto último bloco • Que não é tão grande quanto o tamanho do bloco da cifra • também com conhecidos valores de não-dados (ex.: nulos) • Ou PAD último bloco juntamente com a contagem do tamanho do PAD • ex. [ b1 b2 b3 0 0 0 0 5] • significa ter 3 bytes de dados, então 5 bytes pad+contador • Isto pode requerer um bloco de entrada extra sobre a mensagem • Existem outros, mais exóticos, que evitam a necessidade de um bloco extra
Vantagens e Limitações do CBC • Um bloco de texto-cifrado depende de todos os blocos anteriores • Qualquer mudança a um bloco afeta todos os blocos seguintes • Precisa do Vetor de Inicialização (IV) • Precisa ser conhecido pelo emissor e receptor • Se enviado limpo, atacantes podem mudar bits do primeiro bloco, e mudar o IV para compensar • Por isso IV tem que ser um valor fixo (como na EFTPOS) • Ou ser enviado criptografado no ECB antes do resto da mensagem
Cipher FeedBack (CFB) • Mensagem é tratada como um fluxo de bits • Adicionada a saída da cifra de bloco • Resultado é resposta para o próximo passo • Padrão permite qualquer número de bit (1,8, 64 ou 128 etc) para ser resposta • denotado CFB-1, CFB-8, CFB-64, CFB-128 etc • Mais eficiente para usar todos os bits no bloco (64 ou 128) Ci = Pi XOR DESK1(Ci-1) C-1 = IV • Uso: criptografia de fluxo de dados, autenticação
Vantagens e Limitações da CFB • Apropriado quando dados chegam em bits/bytes • Mais comum modo de fluxo • Limitação é necessário para pararenquanto encripta o bloco após todo n-bits • Note que a cifra de bloco é usada no modo de encriptação em ambos os finais • Erros propagam por muitos blocos depois do erro
Output FeedBack (OFB) • Mensagem é tratada como um fluxo de bits • Saída da cifra é adicionada a mensagem • Saída é então resposta (por isso o nome) • Resposta é independente da mensagem • Pode ser calculada antecipadamente Ci = Pi XOR Oi Oi = DESK1(Oi-1) O-1 = IV • Uso: encriptação em fluxo de canal com ruídos
Vantagens e Limitações do OFB • Bits com erros não se propagam • Maior vulnerabilidade para modificação do fluxo de mensagens • Uma variação da cifra de Vernam • Por isso deve-se nunca re-utilizar a mesma sequência (key+IV) • emissor & receptor devem continuar em sincronia • Originalmente especificado com n-bit de resposta • Pesquisas posteriores tem mostrado que somente resposta de bloco inteiro (Ex.: CFB-64 ou CFB-128) deveria ser usado
Modo Counter (CTR) • Um “novo” modo, apesar de proposto a mais tempo • Similar ao OFB mas encripta o valor counter ao invés de qualquer valor de resposta • Deve ter um valor diferente da chave & counter para cada bloco de texto (nunca re-utilizado) Ci = Pi XOR Oi Oi = DESK1(i) • Uso: criptografia em redes de alta velocidade
Vantagens e Limitações do CTR • Eficiência • Pode fazer criptografias paralelas em h/w ou s/w • Pode pré-processar em antecipação a necessidade • Bom para bursty links de alta velocidade • Acesso randômico para encriptar blocos de dados • Segurança provável (bom como os outro) • Mas deve-se certificar-se de nunca re-utilizar os valores da chave/counter, senão pode quebrá-lo (cf OFB)
Cifras de fluxo • Processa a mensagem bit a bit (como no fluxo) • Tem um pseudo-aleatório fluxo de chave • Combinando (XOR) com o fluxo de texto claro • Aleatoriedade do fluxo de chave destrói completamente as propriedades estatísticas na mensagem • Ci = Mi XOR StreamKeyi • Mas nunca se deve re-utilizar o fluxo de chave • Senão pode-se recuperar a mensagem
Propriedadesdacifra de Fluxo • Algumas considerações de design são: • Longo período sem repetições • Estatisticamente randômico • Depende de uma chave grande o bastante • Grande complexidade linear • Devidamente implementado, pode ser tão seguro quanto uma cifra de bloco com a chave do mesmo tamanho • Porém mais simples & rápido
RC4 • Uma cifra proprietária pertencente ao RSA DSI • Outro design de Ron Rivest , simples mas eficiente • Tamanho da chave variável, cifra de fluxo de orientação de byte • Amplamente utilizado (web SSL/TLS, wireless WEP) • Chaves formam uma permutação randômica de todos os valores 8-bit • Que usa a permutação para misturar as informações de entrada processando um byte por vez
RC4 - Cronograma da chave • Começa com um vetor S de números: 0..255 • Usa a chave para boa e verdadeira mistura • S forma state interno da cifra for i = 0 to 255 do S[i] = i T[i] = K[i mod keylen]) j = 0 for i = 0 to 255 do j = (j + S[i] + T[i]) (mod 256) swap (S[i], S[j])
RC4 Criptografia • Criptografia continua misturando valores do vetor • A soma dos pares misturados seleciona o valor do “fluxo da chave” da permutação • XOR S[t] com o próximo byte da mensagem para en/decriptar i = j = 0 for each message byte Mi i = (i + 1) (mod 256) j = (j + S[i]) (mod 256) swap(S[i], S[j]) t = (S[i] + S[j]) (mod 256) Ci = Mi XOR S[t]
RC4 Segurança • Alegou segurança contra ataques conhecidos • Tem algumas análises, nenhuma prática • Resultado é muito não-linear • Desde RC4 é uma cifra de fluxo, deve-se nunca re-utilizar a chave • Tem uma preocupação com a chave WEP, mas devido a manipulação em vez do próprio RC4
Sumário • DES triplo • Modos de operação • ECB, CBC, CFB, OFB, CTR • Cifras de fluxo • RC4