Tópicos Avançados em Redes Prof. Alessandro Brawerman Introdução Encriptação é o processo que converte dados sensíveis para uma forma codificada Quando recuperada por usuários autorizados, esta forma codificada é então convertida (decodificada) em texto com significado novamente A encriptação esconde ou disfarça a informação de recipientes mal-intencionados, mas permite que usuários autorizados a recuperem 2 Introdução O estudo da comunicação secreta é chamado criptologia A prática ou arte de codificar mensagens é chamada de criptografia Dados não criptografados são chamados de texto puro (plaintext) A saída criptografada é chamada de texto cifra ou só cifra (ciphertext ou cipher) 3 Introdução Criptografia já é usada desde os tempos de Nero, na Roma antiga Foi muito usada na II Guerra Aumento de interesse na década de 70 4 Introdução Texto puro (arquivo ou mensagem) Encriptação cifra (armazenada ou transmitida de maneira segura) Decriptação Texto puro (arquivo ou mensagem) 5 Introdução Criptógrafos Criptoanalistas Inventam algoritmos de criptografia. Códigos secretos Encontrar maneiras de quebrar os códigos Decifrar uma mensagem Encontrar uma maneira de chegar no texto puro, sem a chave ou algoritmo secreto 6 Introdução Quebrar um código Encontrar uma maneira sistemática de decifrar as cifras criadas com o código secreto, usando recursos normais Algoritmos de criptografia são provavelmente confiáveis se eles não são quebrados após vários criptoanalistas testarem Implica que tais algoritmos poderiam ser publicados 7 Introdução Manter um algoritmo secreto faz com que a possibilidade de quebrar o código seja muito mais difícil Mas, como o executável do algoritmo deve estar em cada localização que o use, fica muito difícil de distribuí-lo 8 Criptografia Criptógrafos adoram XOR 0 XOR 0 ou 1 XOR 1 = 0 0 XOR 1 ou 1 XOR 0 = 1 Exemplo: Texto puro – 1010 Chave – 0011 Cifra – 1001 A combinação de duas sempre resulta na outra 9 Caesar Cipher Letras e símbolos formam uma roleta A chave é um número inteiro de posições a serem puladas Pode ser positiva ou negativa 10 Caesar Cipher Exemplo: In: ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_ Out:DEFGHIJKLMNOPQRSTUVWXYZ1234567890_ABC Nao irei a festa hoje Qdrcluhlcdcjhvwdckrmh 1 a cada 4 caracteres em média é espaço 11 Tipos de Criptografia Simétrica 1 chave secreta Texto | chave | cifra Cifra | chave | text Assimétrica 1 par de chaves Chave privada e pública Texto | chave pública | cifra Cifra | chave privada | texto 12 Computacionalmente Seguro Um esquema de criptografia é computacionalmente seguro se a cifra gerada alcança um de 2 objetivos: O custo de quebrar a cifra excede o valor da informação criptografada O tempo para quebrar a cifra excede o tempo útil de vida da informação 13 Computacionalmente Seguro Assumindo que não há fraquezas matemáticas no algoritmo, então o único ataque possível é o de força bruta Este ataque envolve testar cada uma das possíveis chaves até se chegar a uma informação legível 14 Curiosidade Computacionalmente Seguro Na média, metade de todas as chaves possíveis devem ser tentadas para chegar na chave verdadeira Assuma que leva-se 1s para executar uma decodificação, razoável para as máquinas de hoje Com processamento paralelo pode-se atingir ordens ainda maiores 15 Curiosidade Computacionalmente Seguro Tamanho da Chave (bits) Número de Chaves Tempo usando 1 por s Tempo usando 106 por s 32 232 = 4.3 x 109 231 s = 35.8 min 2.15 ms 56 (DES) 256 = 7.2 x 1016 255 s = 1142 anos 10 horas 128 2128 = 3.4 x 1038 2127 s = 5.4 x 1024 anos 5.4 x 1018 anos 168 2168 = 3.7 x 1050 2167 s = 5.9 x 1036 anos 5.9 x 1030 anos 16 Criptografia Simétrica Comunicação segura entre 2 participantes é efetuada pela troca de uma chave secreta (privada) A chave é usada tanto para codificar quanto para decodificar mensagens Idealmente, a chave não deveria ser trocada eletronicamente, mas sim pessoalmente 17 Criptografia Simétrica Vantagem: velocidade com que as mensagens são encriptadas e decriptadas Desvantagem: Número de chaves requeridas quando mais pessoas estão envolvidas Troca inicial das chaves secretas 18 Curiosideda Criptografia Simétrica Para 10 pessoas envolvidas são necessárias 45 chaves Geralmente, n pessoas requerem: (n)(n-1)/2 chaves secretas 19 Criptografia Simétrica 20 Algoritmos de Criptografia Simétrica Um bloco de cifra processa o texto puro dado como entrada em um bloco de tamanho fixo, produzindo um bloco de cifra de mesmo tamanho Mais comuns: DES - Data Encryption Standard TDES - Triple DES AES - Advanced Encryption Standard 21 Curiosidade DES Texto puro é de 64 bits de tamanho Textos puros maiores são transformados em blocos de 64 bits Chave é de 56 bits Processamento é de 3 fases para o texto Texto puro é permutado, rearranchando os bits 16 rodadas da mesma função, metades trocadas Inverso da permutação original 22 Curiosidade DES Para a chave A chave passa por uma permutação inicial A cada rodada a chave é dividida em duas metades de 28 bits cada, denominadas C0 e D0 C e D passam por uma combinação de um shift left circular de 1 ou 2 bits, junção e uma permutação O processo de decodificação é feito na ordem reversa 23 Curiosidade DES Curiosidade - DES 25 Triple DES Usa 3 chaves e 3 execuções do DES Segue Encriptação-Decriptação-Encriptação (EDE) para criptografia Segue Decriptação-Encriptação-Decriptação (DED) para decriptação Encriptação C = EK3 [DK2 [EK1 [M]]] Decriptação M = DK1 [EK2 [DK3 [C]]] 26 TDES - Chaves de 168 bits Encryption m1 There are 168 unique bits in key Decryption c1 E Key1 D Key3 D Key2 E Key2 E Key3 D Key1 c1 m1 27 TDES - Chaves de 112 bits Encryption m1 There are 112 unique bits in key Decryption c1 E Key1 D Key1 D Key2 E Key2 E Key1 D Key1 c1 m1 28 IDEA - International Data Encryption Algorithm Chaves de 128 bits Difere do DES na função das rodadas e no algoritmo de geração de sub-chaves F é uma combinação de XOR, adição e multiplicação binária Algoritmo de geração de chaves é feita através de shifts circulares 29 Blowfish Fácil de implementar e alta velocidade Compacto, roda em menos de 5K de memória 16 rodadas Chaves até 448 bits, normalmente 128 bits 30 RC5 Bom desempenho para hardware e software Rápido Número de rodadas variáveis Tamanho de chaves variádos Baixa memória Alta segurança Rotações dependentes de dados 31 AES O TDES é baseado no DES, portanto foi muito testado durante os anos Nenhum erro foi encontrado e nenhum ataque, a não ser o de força bruta no DES foi feito Então por que o TDES não se tornou o padrão? 32 AES Porque o DES foi feito em hardwares, a implementação do TDES via software é muita lenta Performance é um problema Tem uma segurança ainda maior que o TDES e melhora a performance para software Tamanho do bloco é de 128 bits Suporta chaves de 128, 192 e 256 bits 33