Tópicos Avançados de Redes de Computadores Prof. Fabiano Sabha Criptografia História da Criptografia A palavra criptografia vem do grego Kryptos, que significa “oculto”, “escondido” e de grapho, “escrita”. A melhor tradução, então, seria “escrita oculta”. Desde que a humanidade lida com a palavra escrita, a necessidade de se escrever de forma que apenas determinadas pessoas possam ler. Para isso, diversas técnicas foram criadas, assim como técnica ira tentar driblar estes mecanismos. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 3 História da Criptografia O estudo da criptografia é chamado de criptologia, enquanto os esforços para quebrá-la são conhecidos como criptoanálise Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 4 Alguns termos... Criptografia: kriptós = escondido, oculto; grápho = grafia ESCRITA OCULTA Criptologia: Estudo da Criptografia Criptoanálise: “Engenharia Reversa” da criptografia. Tentativas de “quebra” de criptografia. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 5 Alguns termos... Esteganografia: Capacidade de esconder mensagens secretas em um meio, de maneira que as mesmas passem despercebidas, como por exemplo, uma mensagem embutida em um arquivo de imagem. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 6 Universo da Criptografia A conversão de informações sigilosas em algo sem sentido chamamos de encriptação. Equivalente a encriptar, podemos usar os temos codificar, criptografar e cifrar. Para converter as voltas das informações em algo legível, realizamos o processo de decriptação. Equivalente ao termo decriptação, podemos usar os termos decodificar, decriptografar e decifrar. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 7 Universo da Criptografia Para cifrar ou decifrar, utilizamos um algoritmo. Algoritmo é uma receita ou procedimento passo a passo, uma lista de instruções a serem feitas em uma determinada ordem. Normalmente um algoritmo matemático utilizado na criptografia utiliza fórmulas matemáticas desde as mais simples até as complexas. Pode-se apenas manipular bits ou usar fórmulas e mecanismos complexos para cifrar a informação. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 8 Mais termos ... Texto Claro ou Texto Simples: dados que queremos manter em sigilo Texto Cifrado dados criptografados Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 9 Algoritmo – Regra geral Seja T o texto original da mensagem; Seja Ck( ) o algoritmo de critpografia, parametrizado pela chave k, Ck(T) é então o texto criptografado Seja Dk( ) o algoritmo para descriptografar, ele usa a mesma chave k; então: T = Dk(Ck(T)) Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 10 Casos de Criptografia A criptografia é um dos recursos mais importantes para proteção da informação, seja qual for o método para transformar uma informação legível em algo ilegível. A criptografia surgiu com a necessidade de garantir a confidencialidade da informação, seja ela acessada localmente ou em um trânsito. Em 1900 a.c., os egípcios já utilizavam uma forma de criptografia que consistia num método simples de substituição dos hieróglifos com objetivo de confundir o interceptador de uma mensagem cifrada. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 11 Casos de Criptografia 300 a.c. - Artha-sastra, um livro atribuído para Kautilya, foi escrito na Índia. Ele descrevia alguns processos criptoanálise, processo para quebra de código. 50 a.c. - Júlio César cria o famoso método de substituição, conhecido como “Cifra de César”. 1553 d.c. - Giovan Belaso idealiza o conceito de uso de uma “password”, que seria utilizada pra cifrar e decifrar um texto. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 12 Casos de Criptografia - O rádio é inventado. Esse fato foi um relevante para criptografia, pois, durante os tempos de guerra, as comunicações poderiam ser interceptadas em massa. Nessa época, nascia a profissão criptoanalistas, decifradores de mensagens cifradas. 1917 - Britânicos especialistas em criptografia, “quebram” o chamado “Telegrama de Zimmerman”, um método de comunicação utilizado pelos alemães durante a primeira guerra. Essa conquista favoreceu os Estados Unidos mudando a história da guerra. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 13 Casos de Criptografia 1918 - Os EUA empregam índios americanos da tribo de Choctaw para retransmitirem informações confidenciais em canais de comunicação inseguros. Como essa língua nativa era extremamente complexa e difícil de aprender, isso permitia um simples e efetivo mecanismo de criptografia. 1923 - Arthur Scherbius, inventor da máquina Enigma, vende seu produto aos alemães que passam a utilizar na Segunda Guerra pra cifrar as comunicações militares. 1930 - Os Britânicos desenvolvem semelhante á Enigma, chamada TYPEX. uma maquina Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 14 Casos de Criptografia 1937 - Os japoneses inventam uma maquina de criptografia chamada Purple. Os EUA, através de Willian Friedmam, quebram o código gerado por essa máquina. 1939 - Os aliados conseguem adquirir uma maquina Enigma depois de a inteligência polonesa ter conseguido capturar uma dessas maquinas alemã. 1940 - “The Bombe”, uma maquina que decodificava mensagens geradas pela Enigma, foi inventada. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 15 Casos de Criptografia 1939-42 - Uma vez que a máquina Enigma teve seu código “quebrado”, a batalha no Atlântico foi conquistada, fragilizando o domínio alemão, preservando-se muitas vidas a partir daí. 1942 - Os EUA usam os Navajos, similares ao Choctaws. Informações importantes eram transmitidas na língua dos Navajos, dificultando o entendimento pelo inimigo. 1970 - A IBM desenvolve a cifra “ Lúcifer”, que utiliza o algoritmo 3-DES, amplamente aceito no mundo e relativamente seguro. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 16 Casos de Criptografia 1976 - Surge o conceito de criptografia de chave-pública. 1977 - Ronald Rivest, Adi Shamir e Leonard Adleman inventam o algoritmo de chave-pública RSA. 1990 - Matemáticos as Suíça inventam o algoritmo IDEA (International Data Encryption Algorithm) para substituir o DES. IDEA usa 128 bits, 1991 - Pretty Good Privacy (PGP) é atualizado por Phil Zimmerman, um americano. Atualmente esse algoritmo é muito utilizado principalmente na internet. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 17 A importância da Criptografia Além da confiabilidade, a criptografia pode ser utilizada também para garantir a integridade da informação. Através de algoritmos específicos podemos verificar se a informação não foi alterada, garantindo, assim, a integridade da mesma. Por fim, a criptografia pode ser utilizada também para garantir o não-repúdio, também chamado de irretratabilidade. Esse recurso tem uma aplicação forte no âmbito legal, utilizado para que as pessoas honrem a palavra através de suas “assinaturas digitais”. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 18 Tipos de Criptografia Substituição (cifra de césar) O sistema utiliza a técnica de substituição simples. Na substituição simples cada letra da mensagem é substituída por letra ou símbolo. No caso de César a substituição é por outra letra, seguindo um deslocamento padrão (3): Exemplo: A=D B=E C=F D=G E=H Desta forma a Palavra “Mensagem” É Grafada PHQVDJHP M–P E–H N–Q S–V A–D G–J E–H M–P Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 19 Tipos de Criptografia As substituições simples são vulneráveis a uma técnica de criptoanálise chamada Análise de Freqüência. A analise de freqüência verifica os símbolos ou letras que aparecem mais no texto. De acordo com a língua de origem da mensagem, pode-se tentar substituir estes símbolos por letras de acordo com a freqüência em que eles aparecem no Em casos como César, porém, em que a substituição segue um padrão, o processo é ainda mais simples. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 20 Tipos de Criptografia Em 1586, Blaise de Vigenère escreveu um livro sobre cifras no qual publica sua Cifra de Vigenère . Esta cifra, baseada em César, traz como inovação a utilização de uma palavra como chave, de tamanho variável. A substituição das letras do texto original acontece de acordo com a letra correspondente da chave, como no exemplo a seguir: Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 21 Tipos de Criptografia Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 22 Tipos de Criptografia Chave : MUITO Texto Claro: OUTRO Texto Cifrado: AOBKC Deslocamento: M – 12 U – 20 I–8 T – 19 O – 14 Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 23 Tipos de Criptografia Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 24 Tipos de Criptografia Transposição As cifras alteram a posição das letras da mensagem, embaralhando-as segundo um padrão e fazendo com que apenas quem conhece este padrão consiga ler a mensagem. Cifras desde tipo são imunes à análise de freqüência, pois as letras que compõem a mensagem e o texto cifrado continuam as mesmas: Exemplo: (texto cifrado) OHORASECAESCNNNDALOOCIOTAPIOCSAORTN Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 25 Tipos de Criptografia Texto em claro: Encontro às cinco horas no páteo da escola Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 26 Tipos de Criptografia Transposição Na Grécia antiga, por exemplo, foi criado o Bastão Licurgo. A técnica consistia em enrolar uma tira de couro um em um bastão, para, depois, se escrever a mensagem ao lado deste. Depois desenrolando a tira, a mensagem ficava ilegível. Para que fosse possível lê-la, era necessário, enrola-la novamente no bastão. O “segredo”, ou chave, neste caso, era a própria técnica em si, e o bastão. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 27 Tipos de Criptografia Bastão Licurgo Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 28 Tipos de Criptografia Os sistemas de transposição mais comum são os geométricos lineares e colunares. Consistem na colocação da mensagem em matrizes de tamanho variável, linha a linha, e a retirada do texto cifrado coluna a coluna (sistema colunar), ou vice e versa (sistema linear). Texto cifrado: (chave = 3 [3 colunas]) TED (1ª linha) ESI (2ª linha) XCD (3ª linha) TOO (4ª linha) ON – (5ª linha) = TEDESIXCDTOOON – Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 29 Criptografia Moderna Os sistemas modernos de criptografia não devem ser capazes de encriptar apenas texto, mas também imagens, áudio, vídeo. É necessária então, a capacidade de encriptar dados em formato binário. O tamanho da informação também não é conhecido de antemão. Os algoritmos modernos de criptografia são divididos em duas famílias, aqueles que fazem Criptografia Simétrica e aqueles que fazem Criptografia Assimétrica. Sistemas de criptografia simétrica utilizam a mesma chave para encriptar e para decriptar os dados. Além disso, os algoritmos de criptografia trabalham em dois modos, em bloco e em fluxo. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 30 Criptografia Moderna Algoritmo de Bloco : Possuem tamanho fixo (64 bits) das informações que entram e saem. Para trabalharem tamanhos maiores dividem a informação. Algoritmo de Fluxo: Trabalham bit a bit (ou byte a byte), não havendo necessidade de completar as informações até um determinado tamanho. Algoritmos de fuxo, são mais complexos operacionalmente, mas trazem vantagens em termos de “performace”, sendo indicados para situação em que há necessidade de criptografia “on the fly”, como em streaming de vídeo e áudio. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 31 Algoritmos Simétricos Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 32 Algoritmos Simétricos DES – Data Encryption Standard O DES foi criado pela IBM, na década de 70, com nome origem de Lúcifer. Seu fundamento foi criado de forma a otimizar implementações em hardware, e foi desenvolvido originalmente para trabalhar com chaves de 128 bits de tamanho. A NSA, agencia de segurança internacional americana, modificou o algoritmo para torná-lo mais resistente a ataques de uma técnica conhecida como Análise Diferencial , desconhecida na época, e reduziu o tamanho da chave para 56 bits . Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 33 Algoritmos Simétricos Essa modificação acabou tornando-se cara demais, pois atualmente, o DES está sendo substituído devido ao pequeno tamanho de sua chave. O DES é um algoritmo de bloco (64 bits) e trabalha realizando uma serie de substituições (baseadas em matrizes conhecidas como S-boxes) e transposições, em 16 rodadas de modificação da informação. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 34 Algoritmos Simétricos 3DES – Triple DES Com o passar do tempo, a chave de 56 bits do DES passou a não ser suficientemente grande para tornar ataques de Força Bruta improdutivos. Computadores relativamente baratos podem testar todas as possibilidades de uma chave de 56 bits (2.56 = 72057594037927936 possibilidades), tornando-o inseguro para uso em situações como comércio eletrônico e proteção de informações confidenciais. Uma forma de minimizar o problema é a execução repetida dos DES para cada bloco, com chaves diferentes. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 35 Algoritmos Simétricos Desta forma, foi criado o padrão 3DES, que consiste no uso do DES 3 vezes para cada bloco. Com 3 chaves diferentes, gera-se uma chave efetiva de 168 bits. Normalmente, utiliza-se o 3DES nas seguintes configurações: EDE ( encripta, decripta, encripta) EEE ( encripta, encripta, encripta) Através da utilização da mesma chave nos passos 1 e 2, pode-se trabalhar também com chaves de 112 bits, A “performace” do 3DES, contudo, fica prejudicada, uma vez que são necessárias 3 execuções de DES para cada bloco, tornando-o 3 vezes mais lento que o DES. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 36 Algoritmos Simétricos AES – Advanced Encryption Standard Devido à fragilidade do DES, foi realizado um processo de seleção de um novo algoritmo para ser utilizado com padrão, o AES. O processo envolveu diversos algoritmos, de diversas partes do mundo. Após uma avaliação detalhada de cada um dos concorrentes, foi selecionado como vencedor o algoritmo belga Rijndael. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 37 Algoritmos Simétricos O novo AES é capaz de trabalhar com chaves e blocos de 128, 192 e 256 bits. O algoritmo foi projetado de forma a ter alta “performance” em qualquer uma das formas a operar, e é capaz de tirar proveito de máquinas multiprocessadas. Análises iniciais mostram que o AES é resistente aos ataques de análise diferencial. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 38 Algoritmos Assimétricos A criptografia assimétrica difere da criptografia simétrica com relação às chaves utilizadas nos processos de criptografia e descriptografia. Na criptografia simétrica, a mesma chave é utilizada nos dois processos. Na assimétrica, são chaves diferentes. Esta característica traz diversas vantagens de troca de chaves, o maior problema no uso da criptografia simétrica. Para possibilitar a criação de algoritmos com essas características, são utilizadas diferentes técnicas matemáticas. Um dos recursos mais utilizados por esses algoritmos são os números primos. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 39 Algoritmos Assimétricos Diffie-Hellman O primeiro passo em direção a criptografia assimétrica foi dado por dois pesquisadores, Whitfield Diffie e Martin Hellman, em 1974. Diffie e Hellman pensaram em uma situação na qual duas partes quisessem se corresponder de maneira segura com caixas trancadas por cadeado, sem fazer troca antecipada de chaves. O Sistema Diffie-Hellman é implementado em diversos protocolos de comunicação segura, como o sistema de troca de Chaves IKE (Internet Key Exachange), utilizado em VPN’s IPSEC. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 40 Algoritmos Assimétricos Texto Claro Encriptar Chave Pública Decriptar Chave Privada Texto Cifrado Principal Característica: Uso de Duas Chaves Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 41 Algoritmos de Resumo Digital Não usam chave! Funções usadas em criptografia garantem que não é possível a partir de um valor de hash retornar à informação original. Os algoritmos em si não são secretos, Mas são usados em segurança! É uma função matemática que recebe uma entrada de tamanho arbitrário produz um número (pequeno) como saída. É possível que várias mensagens gerem o mesmo hash, mas deve ser difícil encontrar tal par Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 42 Algoritmos de Resumo Digital Funções de sentido único ( One-Way) São funções matemáticas nas quais não é possível saber qual a entrada a partir do resultado, ou seja: Se y = F(x), não é possível conhecer x a partir de y Uma boa analogia às funções de sentido único é a mistura de tintas. Uma vez misturada tintas de diferentes cores, não é possível voltar às cores originais. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 43 Algoritmos de Resumo Digital Os algoritmos de hash são mais eficientes, em termos de velocidade, que os algoritmos de chave pública Algoritmos mais usados em Hash: MD5 – Message Disgest 5 Saída de 128 bits Criado por Ron Rivest SHA – 1 ( Secure Hash Algorithm) Saída de 160 bits Padrão FISPS do Nist Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 44 Algoritmos de Resumo Digital Funções de hasting são úteis quando precisamos gerar “resumos” da informação, que serão utilizados posteriormente para identificar eventuais modificações. Um arquivo de 1 mb, por exemplo, gera um hash X. Se alterarmos apenas um bit dês de arquivo, o hash será completamente diferente de X , indicando que houve alteração. Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha 45