SóProvas


ID
2510347
Banca
NC-UFPR
Órgão
ITAIPU BINACIONAL
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Funções hash são utilizadas por diversos protocolos de rede e possuem diversas aplicações, entre as quais a verificação de corretude de uma mensagem enviada. Sobre funções hash no contexto de redes, assinale a alternativa correta.

Alternativas
Comentários
  • Gabarito D

    Uma função hash é um algoritmo que mapeia dados de comprimento variável para dados de comprimento fixo. Os valores retornados por uma função hash são chamados valores hashcódigos hashsomas hash (hash sums), checksums ou simplesmente hashes.

    Um hash (ou escrutínio) é uma sequência de bits geradas por um algoritmo de dispersão, em geral representada em base hexadecimal, que permite a visualização em letras e números (0 a 9 e A a F), representando um nibble cada. O conceito teórico diz que "hash é a transformação de uma grande quantidade de dados em uma pequena quantidade de informações".

    Essa sequência busca identificar um arquivo ou informação unicamente. Por exemplo, uma mensagem de correio eletrônico, uma senha, uma chave criptográfica ou mesmo um arquivo. É um método para transformar dados de tal forma que o resultado seja (quase) exclusivo. Além disso, funções usadas em criptografia garantem que não é possível a partir de um valor de hash retornar à informação original.

    Como a sequência do hash é limitada, muitas vezes não passando de 512 bits, existem colisões (sequências iguais para dadosdiferentes). Quanto maior for a dificuldade de se criar colisões intencionais, melhor é o algoritmo.

    Uma função de hash recebe um valor de um determinado tipo e retorna um código para ele. Enquanto o ideal seria gerar identificadores únicos para os valores de entrada, isso normalmente não é possível: na maioria dos casos, o contra-domínio de nossa função é muito menor do que o seu domínio, ou seja, {\displaystyle x} (o tipo de entrada) pode assumir uma gama muito maior de valores do que {\displaystyle \operatorname {hash} (x)} (o resultado da função de hash).

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Fui por eliminação, mas não entendi o que quiseram dizer com "não são injetoras".

  • Não é injetora porque há colisão.

  • a) Uma função hash requer mensagens de tamanho fixo. As mensagens podem ter qq tamanho.

    b) Não é necessário recalcular o valor hash de uma dada mensagem para autenticá-la. Para autenticar uma msg, é necessário calcular o hash para provar que a mensagem em si é autêntica.

    c) É desejável ser computacionalmente viável inverter uma função hash, ou seja, dado um hash h, encontrar uma mensagem m tal que, aplicada na função de hash H, H(m) = h. É praticamente impossível de inverter, isto é, de recriar o valor de entrada utilizando somente o valor de dispersão. https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_hash_criptogr%C3%A1fica

    e) Uma dada função de hash pode gerar valores de hash de diferentes tamanhos. Hash function é qualquer função usada para mapear dados de tamanhos diferentes em dados de tamanho fixo. MD5: 128 bits, SHA-1: 160 bits.

  • sobre a letra (D), função injetora é função de mão única

  • a) Uma função hash requer mensagens de tamanho fixo.  (Não requer, ela GERA msg de tamanho fixo)

    b) Não é necessário recalcular o valor hash de uma dada mensagem para autenticá-la. (o cálculo verifica a integridade)

    c) É desejável ser computacionalmente viável inverter uma função hash, ou seja, dado um hash h, encontrar uma mensagem m tal que, aplicada na função de hash H, H(m) = h. (Hash é UNIDIRECIONAL)

    d) Funções hash não são injetoras.

    e) Uma dada função de hash pode gerar valores de hash de diferentes tamanhos.  (GERA msg de tamanho fixo)

     

    @papirobizurado

  • Função injetora é aquela que diferentes elementos estão em diferentes posições.

    No caso, as  funções hash não são injetoras porque tem colisões, ou seja, pode acontecer de várias chaves apontarem pra mesma posição.

  • Hash é sobrejetora. Pode haver sobreposição de Hash a partir de entradas diferentes na mesma função

    Imagem: shorturl.at/luzD7

  • Força Guerreiro!!!!!!

  • Força Guerreiro!!!!!!

  • GABARITO D

    Função injetora é uma função que preserva a distinção: nunca aponta elementos distintos de seu domínio para o mesmo elemento de seu contradomínio.

    Dessa forma, funções hash não são injetora, uma vez que permite que um mesmo endereço seja gerado a partir de chaves de entrada diferentes.

    Colisão: A  função  de  Hashing  pode,  por  vezes,  gerar  o  mesmo  endereço  para  chaves  de  entrada   diferentes.