Por que ' t SHA256 pode ser descriptografado? [fechado]

Fechado . Esta questão precisa ser mais focada . Atualmente não está aceitando respostas.

Comentários

Resposta

Primeiro, há uma diferença entre hashing e criptografia . SHA256 é uma função de hashing, não uma função de criptografia.

Em segundo lugar, como SHA256 não é uma função de criptografia, não pode ser descriptografado. O que você quer dizer é provavelmente inverter. Nesse caso, SHA256 não pode ser revertido porque é “sa função unilateral . Invertê-lo causaria uma ataque preimage , que anula seu objetivo de design.

Em terceiro lugar, a verificação SHA256 funciona computando-o novamente e comparando o resultado com o resultado em mãos. Se ambos os resultados corresponderem, a verificação foi bem-sucedida. A base teórica é que é difícil encontrar outra entrada que forneça o mesmo resultado hash. A violação disso cria um ataque de segunda pré-imagem , que anula seu objetivo de design.

Finalmente, assinaturas digitais não são simplesmente combinações de hash e chave . Mas uma função hash pode melhorar sua segurança.

Resposta

SHA256 não é uma função de criptografia, mas uma função hash . A diferença fundamental é que, embora a criptografia seja uma função bidirecional (dada a chave), o hash é apenas uma função unilateral: com alguns dados você pode calcular o hash, dado o hash é difícil (e matematicamente impossível) ter os dados de volta .

Eu disse que é matematicamente impossível encontrar os dados do hash porque normalmente uma função hash tem um pequeno codomínio (por exemplo, 256 bits para SHA256), mas um grande domínio (você pode fazer hash de qualquer string), então haverá colisões: strings diferentes com o mesmo hash.

Por esta razão, se sua senha for salva em um formato hash, então existem senhas infinitas (mas podem ser muito longas) que desbloqueia sua conta.

A boa notícia é que as colisões são raras quando você usa funções de hash criptográfico , então sua conta ainda está segura.

Respondendo à primeira parte da sua pergunta, a verificação de dados é fácil: se Alice enviar a Bob um arquivo com a soma de verificação de hash, Bob poderá calcular facilmente o hash de t arquivo que ele recebeu e compare-o com o hash recebido de Alice. Isso geralmente é suficiente para descobrir se houve algum erro durante a transmissão (então o arquivo está corrompido), mas não é suficiente se a transmissão foi alterada por algum invasor que também alterou o hash. Então, Alice e Bob precisam de um canal seguro para transmitir o hash (por exemplo, uma página https com um certificado válido) ou eles precisam assinar o hash de alguma forma.

Então, passamos para a resposta à sua segunda pergunta: Alice pode assinar o hash usando sua chave privada antes de enviá-lo para Bob, desta forma um invasor não pode adulterá-lo sem invalidar a assinatura.

Agora você pode perguntar por que Alice assina apenas com sua chave RSA (ou similar) o hash e não toda a mensagem, isso ocorre porque computar RSA é mais lento do que computar um hash (então ela precisa fazer a coisa lenta apenas em uma pequena string: o hash). Isso era verdade especialmente quando o PGP foi criado e os computadores eram mais lentos.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *