Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Funções hash e criptografia

Funções hash e criptografia

Noções de funções hash e criptografia.

Nilo Ney Coutinho Menezes

December 05, 2020
Tweet

More Decks by Nilo Ney Coutinho Menezes

Other Decks in Education

Transcript

  1. x f(x) f-1(f(x)) 5 8 5 9 12 9 10

    13 10 1 4 1 • Facilmente inversível, não serve para hash ou criptografia • Exemplo: cifra de César, BASE64, BASE85
  2. x f(x) f-1(f(x)) 5 1 4 9 2 8 10

    2 8 1 0 0 • Dificilmente ou não inversível • Não serve para criptografia, pois perde dados • Usada para assinaturas, confirmação, detecção de erros, criação de identifadores • Exemplos: MD5, SHA-512
  3. ▪ Tem por objetivo representar dados em um outro formato

    ▪ Não tem qualquer propósito criptográfico, uma vez que são sistematicamente inversíveis ▪ Usadas para representar dados em meios onde estes seriam confundidos com caracteres de controle ▪ Exemplos: BASE64, BASE85, ASCII (HEX)
  4. ▪ Usado para representar dados binários em protocolos que só

    suportam texto ▪ Representa números em base 64 (26) em vez de 256(28) ▪ Muito usado em emails e páginas web ▪ Não deve ser usado nunca para esconder nada ▪ Mensagem 1: O rato roeu a roupa do rei de Roma ▪ BASE64: TyByYXRvIHJvZXUgYSByb3VwYSBkbyByZWkgZGUgUm9tYQ== ▪ ASCII(HEX): 4f207261746f20726f6575206120726f75706120646f2072656920646520526f6d61 ▪ Mensagem 2: O rato roeu a roupa do rei de roma ▪ BASE64: TyByYXRvIHJvZXUgYSByb3VwYSBkbyByZWkgZGUgcm9tYQ== ▪ ASCII(HEX): 4f207261746f20726f6575206120726f75706120646f2072656920646520726f6d61
  5. ▪ Message-Digest 5 (1992) ▪ Quebrado em 2009 ▪ Não

    deve ser usado para registro de senhas ou garantir que uma mensagem não foi adulterada ▪ Ainda útil como função de espalhamento e partição em banco de dados ▪ Exemplo: ▪ Mensagem 1: O rato roeu a roupa do rei de Roma ▪ MD5: 656bc8efc8bd7193de2004b97d610e60 ▪ Mensagem 2: O rato roeu a roupa do rei de roma ▪ MD5: 7b6542531eb821c5dee80374ce2f5a72
  6. ▪ Secure Hash Algorithm 2 (2001) ▪ Quebrado/Comprometido em 2011

    ▪ Não deve ser usado para registro de senhas ▪ Exemplo: ▪ Mensagem 1: O rato roeu a roupa do rei de Roma ▪ SHA512: 1f7459474aca8d70afcc456f031fe5426a6daca1be9b1bee4a6b6aa47b76be688cca 8a05b7767aff0c13ef691f4e3a61bfa3d18b37f857cb96ed13f74a096dcd ▪ Mensagem 2: O rato roeu a roupa do rei de roma ▪ SHA512: b91c0158eacc8a99850af1febce7283f95ad1c88e9ae15f5b312812276a540d8563f 6fb211cd06ac6bae71061168e963d81dd24455a4cb5141adba2dc1200a32
  7. ▪ Deve usar uma função muito difícil de inverter (ou

    impossível) ▪ Deve resistir a ataques de força bruta ▪ Deve exigir alto custo computacional ▪ A senha nunca deve ser guardada em um banco de dados ou no próprio programa ▪ A verificação é feita comparando-se o hash da senha entrada com a armazenada ▪ Usam parâmetros extra “salt” para evitar ataques por Tabela Arco-íris (Rainbow) e um número de ciclos variável para aumentar o custo de ataque por força bruta. ▪ Exemplos: ▪ Bcrypt ▪ Scrypt ▪ PBKDF2 ▪ Argon2
  8. ▪ Função com dois parâmetros (ou mais como vetores de

    inicialização) ▪ O segredo é a chave usada para criar uma função única ▪ É simétrica se o mesmo segredo é usado para criptografar e descriptografar ▪ É assimétrica se segredos diferentes são usados ▪ Algoritmos simétricos exigem o compartilhamento de uma senha ▪ Algoritmos assimétricos permitem a utilização de chaves públicas e privadas ▪ Permitem recuperar o conteúdo encriptado, mas exigem o conhecimento da chave. Segurança consiste na dificuldade de se encontrar a chave.