A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Criptografia com Hashing Diogo Martins Rafael Pierre William Kurosawa.

Apresentações semelhantes


Apresentação em tema: "Criptografia com Hashing Diogo Martins Rafael Pierre William Kurosawa."— Transcrição da apresentação:

1 Criptografia com Hashing Diogo Martins Rafael Pierre William Kurosawa

2 Criptografia com Hashing Introdução à criptografia Revisão de Hashing Hashing + Criptografia Algoritmos

3 Introdução à Criptografia Com o surgimento da internet e sua facilidade de entregar informações de maneira precisa e extremamente rápida, a criptografia tornou-se uma ferramenta fundamental para permitir que apenas o emissor e o receptor tenham acesso livre à informação trabalhada.

4 Introdução à Criptografia Na computação, as técnicas mais conhecidas envolvem o conceito de chaves, as chamadas "chaves criptográficas". Trata-se de um conjunto de bits baseado em um determinado algoritmo capaz de codificar e de decodificar informações. Se o receptor da mensagem usar uma chave incompatível com a chave do emissor, não conseguirá extrair a informação.

5 Revisão de Hashing Uma função hashing (ou algoritmo hashing) é uma função que sumariza ou identifica probabilisticamente um dado. Uma propriedade importante das funções hashing é que, se dois valores hash são diferentes, então as duas entradas diferem de alguma forma entre si.

6 Revisão de Hashing Dentre as aplicações de funções hash podem-se citar: Criptografia (SHA1, SHA2, MD5); Hash Tables; Correção de erros (CRCs e Reed Solomon); Idenificação de áudio (em aplicativos p2p).

7 Criptografia + Hashing A combinação de hashing e criptografia define funções hash criptográficas Estas funções nada mais são que funções hash com restrições adicionais de segurança que viabilizam seu uso um aplicações com requisitos de segurança, como integridade de mensagens ou autenticação.

8 Criptografia + Hashing Comportamento de uma função hash criptográfica Uma função hashing criptográfica recebe como entrada uma cadeia de caracteres de tamanho arbitrário (como uma mensagem, por exemplo) Como saída é gerada uma cadeia de tamanho fixo chamada message digest ou digital fingerprint

9 Criptografia + Hashing Qualidade Uma função hashing criptográfica (fhc) pode ser considerada insegura (ou quebrada) se houver quaisquer dos dois precedentes: 1) Encontra-se uma mensagem inédita para a fhc que corresponde a um valor hash previamente gerado (o valor hash é decodificado) 2) Encontram-se colisões, ou seja, duas mensagens com o mesmo valor hash Observação: A condição 1) apresenta uma propriedade importante das fhc. A criptografia realizada é de uma via, ou seja, a mensagem criptografada teoricamente não pode ser descriptografada.

10 Criptografia + Hashing Qualidade Uma função hashing criptográfica (fhc) pode ser considerada insegura (ou quebrada) se houver quaisquer dos dois precedentes: 1) Encontra-se uma mensagem inédita para a fhc que corresponde a um valor hash previamente gerado (o valor hash é decodificado) 2) Encontram-se colisões, ou seja, duas mensagens com o mesmo valor hash Observação: A condição 1) apresenta uma propriedade importante das fhc. A criptografia realizada é de uma via, ou seja, a mensagem criptografada teoricamente não pode ser descriptografada.

11 Algoritmos Funções hash MD5 (Message Digest 5) Historicamente é a mais amplamente usada, em variadas aplicações, principalmente para conferência de integridade de arquivos Os valores hash gerados são de 128 bits Implementada em bibliotecas de diversas linguagens de programação, já é considerada insegura, pois sofreu comprovadamente diversos ataques bem-sucedidos Hoje é usada principalmente para informar se um arquivo, numa transmissão via rede, alcancou o destino com o mesmo conteúdo que apresentava na origem

12 Algoritmos Funções hash MD5 (Message Digest 5) Os valores hash (128 bits) são representados como números hexadecimais de 32 dígitos. Exemplos: MD5("The quick brown fox jumps over the lazy dog") = 9e107d9d372bb6826bd81d3542a419d6 MD5("The quick brown fox jumps over the lazy cog") = 1055d3e698d289f2af8663725127bd4b MD5("") = d41d8cd98f00b204e9800998ecf8427e Observação: Note que os dois primeiros valores hash diferem bastante apesar de ter sido mudada apenas uma palavra Uma mensagem vazia também tem um valor hash correspondente

13 Algoritmos Funções hash da família SHA Esta família de fhc é considerada a melhor sucessora de MD5 (embora o SHA-1 também já tenha sido quebrado). Usada em várias aplicações e protocolos como TSL, SSL, PGP, SSH, S/MIME, IPSec Possuem diversas variações como SHA0, SHA1, SHA2, SHA-224, SHA-256, SHA-384, e SHA-512. Quanto à subfamília SHA-2 não há estatísticas de ataques bem- sucedidos.

14 Algoritmos Funções hash da família SHA No SHA-1 os valores hash são de 160 bits e as mensagens de entrada podem ter, no máximo, 24 bits SHAx foi desenvolvida pela NSA (National Security Agency), dos Estados Unidos, para proteger as aplicações federais e viabilizar assinatura digital Uma aplicação recente é na restrição de cópia de software e bloqueio de hardware não-registrado (X-Box, da Microsoft, usa tal recurso).

15 Algoritmos Funções hash da família SHA Exemplos SHA1("The quick brown fox jumps over the lazy dog") == "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12" SHA1("The quick brown fox jumps over the lazy cog") == "de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3" SHA1("") == "da39a3ee5e6b4b0d3255bfef95601890afd80709"

16 Chaves simétricas e assimétricas Uma chave de 64 bits, expressa o tamanho de uma determinada chave. Quanto mais bits forem utilizados, mais segura será a criptografia. Explica-se: caso um algoritmo use chaves de 8 bits, apenas 256 chaves poderão ser usadas na decodificação, pois 2 elevado a 8 é 256. Isso deixa claro que 8 bits é inseguro, pois até uma pessoa é capaz de gerar as 256 combinações (embora demore), imagine então um computador. Porém, se forem usados 128 ou mais bits para chaves (faça 2 elevado a 128 para ver o que acontece), teremos uma quantidade extremamente grande de combinações, deixando a informação criptografada bem mais segura.

17 Chaves simétricas Esse é um tipo de chave mais simples, onde o emissor e o receptor fazem uso da mesma chave, isto é, uma única chave é usada na codificação e na decodificação da informação. Existem vários algoritmos que usam chaves simétricas, como o DES, o IDEA, e o RC:

18 Algoritmos DES (Data Encryption Standard): Criado pela IBM em 1977, faz uso de chaves de 56 bits. Isso corresponde a 72 quadrilhões de combinações. É um valor absurdamente alto, mas não para um computador potente. Em 1997, ele foi quebrado por técnicas de "força bruta" (tentativa e erro) em um desafio promovido na internet;

19 Algoritmos IDEA (International Data Encryption Algorithm): Criado em 1991 por James Massey e Xuejia Lai, o IDEA é um algoritmo que faz uso de chaves de 128 bits e que tem uma estrutura semelhante ao DES. Sua implementação em software é mais fácil do que a implementação deste último;

20 Algoritmos RC (Ron's Code ou Rivest Cipher): Criado por Ron Rivest na empresa RSA Data Security, esse algoritmo é muito utilizado em e-mails e faz uso de chaves que vão de 8 a 1024 bits. Possui várias versões: RC2, RC4, RC5 e RC6. Essencialmente, cada versão difere da outra por trabalhar com chaves maiores.

21 Chaves simétricas O uso de chaves simétricas tem algumas desvantagens, fazendo com que sua utilização não seja adequada em situações onde a informação é muito valiosa. Para começar, é necessário usar uma grande quantidade de chaves caso muitas pessoas estejam envolvidas. Ainda, há o fato de que tanto o emissor quanto o receptor precisa conhecer a chave usada. A transmissão dessa chave de um para o outro pode não ser tão segura e cair em "mãos erradas".

22 Chaves assimétricas Também conhecida como "chave pública", a chave assimétrica trabalha com duas chaves: uma denominada privada e outra denominada pública. Nesse método, uma pessoa deve criar uma chave de codificação e enviá-la a quem for mandar informações a ela. Essa é a chave pública. Uma outra chave deve ser criada para a decodificação. Esta - a chave privada - é secreta.

23 Chaves assimétricas Para entender melhor, imagine o seguinte: O William criou uma chave pública e a enviou a vários outras pessoas. Quando qualquer dessas pessoas quiser enviar uma informação criptografada ao William deverá utilizar a chave pública deste. Quando o William receber a informação, apenas será possível extraí-la com o uso da chave privada, que só o William tem. Caso o William queira enviar uma informação criptografada a outra pessoa, por exemplo, o Rafael, deverá conhecer sua chave pública.

24 Chaves assimétricas

25 Algoritmos RSA (Rivest, Shamir and Adleman): criado em 1977 por Ron Rivest, Adi Shamir e Len Adleman nos laboratórios do MIT (Massachusetts Institute of Technology), é um dos algoritmos de chave assimétrica mais usados. Dois números primos são multiplicados para se obter um terceiro valor. Porém, descobrir os dois primeiros números a partir do terceiro (ou seja, fazer uma fatoração) é muito trabalhoso. Se dois números primos grandes (realmente grandes) forem usados na multiplicação, será necessário usar muito processamento para descobrí-los, tornando essa tarefa quase sempre inviável. Basicamente, a chave privada no RSA são os números multiplicados e a chave pública é o valor obtido;

26 Algoritmos ElGamal: criado por Taher ElGamal, esse algoritmo faz uso de um problema matemático conhecido por "logaritmo discreto" para se tornar seguro. Sua utilização é freqüente em assinaturas digitais. Existem ainda outros algoritmos, como o DSA (Digital Signature Algorithm), o Schnorr (praticamente usado apenas em assinaturas digitais) e Diffie-Hellman.

27 Assinatura digital O funcionamento da assinatura digital ocorre da seguinte forma: é necessário que o usuário tenha um documento eletrônico e a chave pública do destinatário (um usuário pode ser tanto uma pessoa quanto uma instituição qualquer). Através de programas apropriados, o documento é então criptografado de acordo com a chave pública. O receptor usará então sua chave privada correspondente (que é exclusiva dele) para decriptografar o arquivo. Se qualquer bit do documento for alterado a assinatura será deformada, invalidando o arquivo.

28 Na verdade, o processo de assinatura digital de documentos eletrônicos usa um conceito conhecido como função hashing. Como o uso de um sistema de criptografia assimétrico nas assinaturas digitais pode causar muita demora numa decifragem, a função hashing se mostrou como a solução ideal: a função hashing analisa todo o documento e com base num complexo algoritmo matemático gera um valor de tamanho fixo para o arquivo. Esse valor, conhecido como "valor hash", é calculado com base nos caracteres do documento. Isso deixa claro que o arquivo em si não precisa, pelo menos teoricamente, ser criptografado (caso não seja algo secreto), mas sim acompanhado do valor hash. Com isso, qualquer mudança no arquivo original, mesmo que seja de apenas um único bit, fará com que o valor hash seja diferente e o documento se torne inválido.

29 Certificado digital Obter uma assinatura digital não é algo tão simples. Primeiro é necessário procurar uma entidade que faça esse serviço, isto é, deve-se procurar uma Autoridade Certificadora (AC). Uma AC tem a função de verificar a identidade de um usuário e associar a ela uma chave. Essas informações são então inseridas em um documento conhecido como certificado digital.

30 Um certificado digital contém a chave pública do usuário e os dados necessários para informar sua identidade. Esse certificado pode ser distribuído na internet. Com isso, uma pessoa ou instituição que queira comprovar a assinatura digital de um documento pode obter o certificado digital correspondente. É válido saber que certificados digitais não são usados apenas em conjuntos com assinaturas digitais. É importante frisar que a transmissão de certificados digitais deve ser feita através de uma conexão segura, como as que usam o protocolo SSL (Secure Socket Layer), que é próprio para o envio de informações criptografadas.

31 Finalizando Ainda demorará para que o uso do papel na emissão de documentos seja uma segunda opção. Talvez, isso nem venha acontecer. No entanto, o uso de assinaturas e certificados digitais é extremamente importante, principalmente pela velocidade com que as coisas acontecem na internet. Além disso, determinadas aplicações, como as bancárias, são consideradas cruciais para a manutenção de um negócio. Logo, o uso de certificados digitais pode chegar ao ponto de ser imprescindível. Há muito ainda a ser discutido sobre o assunto, mas entre as divergências existentes, é unâmine a importância dessa tecnologia para a era da informação eletrônica na qual adentramos.

32 Links Para obter mais detalhes sobre assinatura e certificação digital, acesse os seguintes links: FreeICP.ORG - www.freeicp.org; ICP-Brasil - www.icpbrasil.gov.br; Instituto Nacional de Tecnologia da Informação - www.iti.br; IBP Brasil - www.ibpbrasil.com.br.www.freeicp.orgwww.icpbrasil.gov.brwww.iti.brwww.ibpbrasil.com.br http://en.wikipedia.org/wiki/SHA_hash_functions http://en.wikipedia.org/wiki/Cryptographic_hash_function http://en.wikipedia.org/wiki/MD5


Carregar ppt "Criptografia com Hashing Diogo Martins Rafael Pierre William Kurosawa."

Apresentações semelhantes


Anúncios Google