{"id":12,"date":"2026-06-10T09:14:27","date_gmt":"2026-06-10T09:14:27","guid":{"rendered":"https:\/\/shattered.io\/pt\/2026\/06\/10\/cryptography-hub\/"},"modified":"2026-06-10T13:35:45","modified_gmt":"2026-06-10T13:35:45","slug":"cryptography-hub","status":"publish","type":"post","link":"https:\/\/shattered.io\/pt\/2026\/06\/10\/cryptography-hub\/","title":{"rendered":"Hashing e Criptografia Explicados"},"content":{"rendered":"<p>A criptografia \u00e9 a ci\u00eancia de proteger informa\u00e7\u00e3o de modo a que s\u00f3 as partes previstas a possam ler, verificar ou aceitar como aut\u00eantica. Est\u00e1 por detr\u00e1s de quase tudo o que acontece online, desde o in\u00edcio de sess\u00e3o no banco at\u00e9 \u00e0 confirma\u00e7\u00e3o de que um ficheiro descarregado chegou intacto. Esta sec\u00e7\u00e3o explica as ideias centrais e coloca o hashing e as fun\u00e7\u00f5es de hash no centro, porque foi precisamente a\u00ed que a nossa investiga\u00e7\u00e3o deixou marca: em 2017 produzimos a primeira colis\u00e3o pr\u00e1tica de SHA-1 e demonstr\u00e1mos que uma fun\u00e7\u00e3o de hash muito usada estava quebrada n\u00e3o em teoria, mas na realidade.<\/p>\n<h2 id=\"o-que-uma-funcao-de-hash-criptografica-faz\">O que uma fun\u00e7\u00e3o de hash criptogr\u00e1fica faz<\/h2>\n<p>Uma fun\u00e7\u00e3o de hash criptogr\u00e1fica recebe dados de qualquer tamanho e devolve uma sequ\u00eancia curta de bytes de comprimento fixo, normalmente apresentada em hexadecimal. A essa sequ\u00eancia costuma chamar-se resumo, ou digest. A ideia \u00e9 simples de descrever: para a mesma entrada, obt\u00e9m-se sempre a mesma sa\u00edda, mas a partir da sa\u00edda n\u00e3o h\u00e1 forma vi\u00e1vel de recuperar a entrada original. \u00c9 um sentido \u00fanico.<\/p>\n<p>Pense num hash como uma impress\u00e3o digital de dados. Dois ficheiros id\u00eanticos produzem o mesmo resumo, e qualquer diferen\u00e7a, por m\u00ednima que seja, produz um resumo completamente distinto. Isto permite comparar, identificar e verificar dados sem precisar de guardar ou transmitir os dados em si.<\/p>\n<p>H\u00e1 um conjunto de propriedades que separam uma boa fun\u00e7\u00e3o de hash criptogr\u00e1fica de um c\u00e1lculo qualquer. \u00c9 determin\u00edstica, devolvendo sempre o mesmo valor para a mesma entrada. \u00c9 r\u00e1pida de calcular. \u00c9 resistente \u00e0 pr\u00e9-imagem, ou seja, a partir de um resumo n\u00e3o se consegue, na pr\u00e1tica, encontrar uma entrada que o gere. \u00c9 resistente a colis\u00f5es, o que significa que n\u00e3o se conseguem encontrar duas entradas diferentes com o mesmo resumo. E exibe o efeito de avalanche: mudar um \u00fanico bit da entrada altera cerca de metade dos bits da sa\u00edda, tornando o novo resumo aparentemente sem rela\u00e7\u00e3o com o anterior. O artigo dedicado \u00e0s <a href=\"\/pt\/cryptography\/funcoes-hash\/\">fun\u00e7\u00f5es de hash<\/a> percorre cada uma destas propriedades em detalhe.<\/p>\n<h2 id=\"hashing-nao-e-cifragem\">Hashing n\u00e3o \u00e9 cifragem<\/h2>\n<p>Vale a pena fixar cedo a diferen\u00e7a entre hashing e cifragem, porque os dois s\u00e3o frequentemente confundidos.<\/p>\n<p>A cifragem \u00e9 revers\u00edvel. Cifram-se dados com uma chave e quem possuir a chave correta volta a torn\u00e1-los leg\u00edveis. O prop\u00f3sito da cifragem \u00e9 exatamente esse: recuperar a mensagem mais tarde.<\/p>\n<p>O hashing \u00e9 um processo de sentido \u00fanico. N\u00e3o h\u00e1 chave e n\u00e3o existe forma de inverter o resumo para reaver o original. Usa-se hashing quando se quer verificar algo sem guardar nem transmitir a coisa em si. Uma regra pr\u00e1tica ajuda a distinguir: a cifragem guarda um segredo que se pretende revelar depois, enquanto o hashing cria uma impress\u00e3o digital que nunca se quer inverter.<\/p>\n<h2 id=\"a-familia-sha-em-tracos-largos\">A fam\u00edlia SHA, em tra\u00e7os largos<\/h2>\n<p>A maioria das fun\u00e7\u00f5es de hash que aparecem na pr\u00e1tica pertence a um pequeno grupo de desenhos conhecidos. A sigla SHA significa Secure Hash Algorithm, e a designa\u00e7\u00e3o cobre v\u00e1rias gera\u00e7\u00f5es com n\u00edveis de seguran\u00e7a muito diferentes.<\/p>\n<p><strong>MD5<\/strong> n\u00e3o pertence \u00e0 fam\u00edlia SHA, mas surge sempre na mesma conversa. Produz um resumo de 128 bits e foi outrora omnipresente. Hoje considera-se completamente quebrada, ao ponto de se gerarem colis\u00f5es em segundos num port\u00e1til. Como simples soma de verifica\u00e7\u00e3o, sem qualquer pretens\u00e3o de seguran\u00e7a, ainda aparece, mas nunca deve ser usada onde um atacante possa lucrar com a falsifica\u00e7\u00e3o de uma correspond\u00eancia.<\/p>\n<p><strong>SHA-1<\/strong> devolve um resumo de 160 bits e foi, durante anos, o cavalo de batalha da web. A nossa investiga\u00e7\u00e3o, batizada SHAttered, demonstrou a primeira colis\u00e3o real com dois ficheiros PDF diferentes que produziam o mesmo valor de SHA-1. O caso est\u00e1 descrito a fundo no artigo sobre a <a href=\"\/pt\/cryptography\/colisao-sha1\/\">colis\u00e3o de SHA-1<\/a>, e foi esse resultado que levou a ind\u00fastria a aposentar o SHA-1 em certificados, assinaturas e sistemas de controlo de vers\u00f5es.<\/p>\n<p><strong>SHA-256<\/strong> pertence \u00e0 fam\u00edlia SHA-2 e \u00e9, atualmente, o padr\u00e3o para a maioria das aplica\u00e7\u00f5es. Com 256 bits de sa\u00edda e sem ataques pr\u00e1ticos conhecidos, sustenta certificados TLS, a assinatura de software e a prova de trabalho da Bitcoin. O artigo sobre <a href=\"\/pt\/cryptography\/sha-256\/\">SHA-256<\/a> explica onde se encaixa e por que motivo continua a resistir.<\/p>\n<p><strong>SHA-3<\/strong> \u00e9 um padr\u00e3o mais recente, assente numa estrutura interna completamente diferente da do MD5, SHA-1 e SHA-2. Foi normalizado como reserva, para que uma eventual fraqueza futura no SHA-2 n\u00e3o deixasse todos sem alternativa.<\/p>\n<table>\n<thead>\n<tr>\n<th>Fun\u00e7\u00e3o de hash<\/th>\n<th>Tamanho do resumo<\/th>\n<th>Estado<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>MD5<\/td>\n<td>128 bits<\/td>\n<td>Quebrada, a evitar<\/td>\n<\/tr>\n<tr>\n<td>SHA-1<\/td>\n<td>160 bits<\/td>\n<td>Quebrada (colis\u00e3o encontrada), aposentada<\/td>\n<\/tr>\n<tr>\n<td>SHA-256 (SHA-2)<\/td>\n<td>256 bits<\/td>\n<td>Segura, recomendada<\/td>\n<\/tr>\n<tr>\n<td>SHA-3<\/td>\n<td>224 a 512 bits<\/td>\n<td>Segura, estrutura alternativa<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"por-que-o-hashing-sustenta-a-confianca-online\">Por que o hashing sustenta a confian\u00e7a online<\/h2>\n<p>\u00c0 primeira vista, transformar dados numa impress\u00e3o digital fixa pode parecer um detalhe t\u00e9cnico menor. Na verdade, \u00e9 uma das pe\u00e7as que torna a confian\u00e7a poss\u00edvel em redes onde ningu\u00e9m conhece pessoalmente ningu\u00e9m.<\/p>\n<p>As assinaturas digitais, os certificados e as verifica\u00e7\u00f5es de integridade raramente assinam o documento em si. Assinam o seu resumo. Uma assinatura, um identificador de commit no Git, a impress\u00e3o digital de um certificado ou a garantia de que um ficheiro n\u00e3o foi alterado reduzem tudo a um hash e confiam que esse hash \u00e9 \u00fanico para aquele conte\u00fado. Da\u00ed a import\u00e2ncia da resist\u00eancia a colis\u00f5es: se dois ficheiros partilharem o mesmo resumo, uma assinatura sobre um vale igualmente para o outro, e a liga\u00e7\u00e3o entre o que foi aprovado e o que se recebeu quebra-se em sil\u00eancio. \u00c9 exatamente este o cen\u00e1rio de ataque que torna a quebra do SHA-1 mais do que uma curiosidade acad\u00e9mica.<\/p>\n<p>O mesmo princ\u00edpio aparece em muitos pontos do dia a dia digital:<\/p>\n<ul>\n<li><strong>TLS e HTTPS.<\/strong> O cadeado no navegador apoia-se em criptografia assim\u00e9trica para autenticar o servidor e negociar uma chave, e em hashes para confirmar que os dados n\u00e3o foram adulterados em tr\u00e2nsito.<\/li>\n<li><strong>Palavras-passe.<\/strong> Os servi\u00e7os sensatos nunca guardam a palavra-passe em si. Guardam um hash com sal, de modo que uma fuga da base de dados n\u00e3o entregue as credenciais reais a um atacante.<\/li>\n<li><strong>Bitcoin e blockchains.<\/strong> O SHA-256 encadeia os blocos uns aos outros e protege a minera\u00e7\u00e3o, enquanto as assinaturas digitais autorizam cada transa\u00e7\u00e3o.<\/li>\n<li><strong>Integridade de software.<\/strong> As p\u00e1ginas de descarga publicam hashes, e por vezes assinaturas, para que se confirme que um instalador n\u00e3o foi trocado nem corrompido pelo caminho.<\/li>\n<\/ul>\n<h2 id=\"o-que-esta-seccao-cobre\">O que esta sec\u00e7\u00e3o cobre<\/h2>\n<p>A partir deste centro, quatro artigos aprofundam cada ramo do tema, e todos assentam nos mesmos blocos descritos acima.<\/p>\n<p>O artigo sobre a <a href=\"https:\/\/shattered.io\/pt\/cryptography\/colisao-sha1\/\">colis\u00e3o de SHA-1<\/a> conta a hist\u00f3ria completa do SHAttered, o que \u00e9 uma colis\u00e3o e por que motivo a sua exist\u00eancia pr\u00e1tica abalou a confian\u00e7a na assinatura digital. O artigo sobre <a href=\"https:\/\/shattered.io\/pt\/cryptography\/sha-256\/\">SHA-256<\/a> explica o padr\u00e3o atual, como se comporta e onde \u00e9 usado. O texto sobre <a href=\"https:\/\/shattered.io\/pt\/cryptography\/funcoes-hash\/\">fun\u00e7\u00f5es de hash<\/a> generaliza o conceito, detalhando as propriedades que uma fun\u00e7\u00e3o criptogr\u00e1fica precisa de ter e como difere de um hash comum. E o artigo sobre <a href=\"https:\/\/shattered.io\/pt\/cryptography\/assinaturas-digitais\/\">assinaturas digitais<\/a> liga tudo, mostrando como o hashing e as chaves assim\u00e9tricas se combinam para provar autoria e integridade ao mesmo tempo, e por que uma colis\u00e3o de hash amea\u00e7a diretamente essa prova.<\/p>\n<p>Lidos em conjunto, estes textos descrevem a mesma ideia vista de \u00e2ngulos diferentes: a confian\u00e7a online n\u00e3o vem de bloquear o acesso aos dados, mas de provar, de forma que qualquer pessoa pode verificar, que os dados s\u00e3o exatamente o que dizem ser.<\/p>\n<h2 id=\"perguntas-frequentes\">Perguntas frequentes<\/h2>\n<h3 id=\"o-hashing-e-uma-forma-de-cifragem\">O hashing \u00e9 uma forma de cifragem?<\/h3>\n<p>N\u00e3o. A cifragem \u00e9 revers\u00edvel com uma chave, enquanto o hashing \u00e9 uma impress\u00e3o digital de sentido \u00fanico, sem volta. Costumam usar-se em conjunto, mas s\u00e3o ferramentas distintas para problemas distintos.<\/p>\n<h3 id=\"porque-e-que-o-sha-1-e-considerado-quebrado-se-continua-a-produzir-um-resumo\">Porque \u00e9 que o SHA-1 \u00e9 considerado quebrado se continua a produzir um resumo?<\/h3>\n<p>Continua a gerar uma sa\u00edda, mas v\u00e1rios investigadores, incluindo a nossa equipa, encontraram forma de produzir duas entradas diferentes com o mesmo valor de SHA-1. A partir do momento em que as colis\u00f5es se tornam vi\u00e1veis, deixa de ser poss\u00edvel confiar na fun\u00e7\u00e3o para assinaturas ou certificados, mesmo que ela ainda funcione tecnicamente.<\/p>\n<h3 id=\"qual-a-funcao-de-hash-que-devo-usar\">Qual a fun\u00e7\u00e3o de hash que devo usar?<\/h3>\n<p>Para a generalidade dos fins, o SHA-256 \u00e9 a escolha segura por defeito. O SHA-3 \u00e9 uma alternativa s\u00f3lida sobre outra estrutura. Para guardar palavras-passe, o ideal \u00e9 uma fun\u00e7\u00e3o propositadamente lenta e desenhada para esse fim, como bcrypt, scrypt ou Argon2, em vez de um hash r\u00e1pido aplicado diretamente.<\/p>\n<div class=\"shat-sources\">\n<h2 id=\"fontes\">Fontes<\/h2>\n<ul>\n<li><a href=\"https:\/\/csrc.nist.gov\/\" rel=\"noopener\" target=\"_blank\">NIST Computer Security Resource Center<\/a><\/li>\n<li><a href=\"https:\/\/www.iacr.org\/\" rel=\"noopener\" target=\"_blank\">International Association for Cryptologic Research (IACR)<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"shat-related\">\n<h2 id=\"artigos-relacionados\">Artigos relacionados<\/h2>\n<ul>\n<li><a href=\"https:\/\/shattered.io\/pt\/cryptography\/funcoes-hash\/\">Fun\u00e7\u00f5es de Hash Criptogr\u00e1ficas Explicadas<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/pt\/cryptography\/sha-256\/\">SHA-256 Explicado: o Padr\u00e3o Atual de Hashing<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/pt\/cryptography\/assinaturas-digitais\/\">Como Funcionam as Assinaturas Digitais<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/pt\/cryptography\/colisao-sha1\/\">A Colis\u00e3o SHAttered do SHA-1, Explicada<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>A criptografia \u00e9 a ci\u00eancia de proteger informa\u00e7\u00e3o de modo a que s\u00f3 as partes previstas a possam ler, verificar ou aceitar como aut\u00eantica. Est\u00e1 por detr\u00e1s de quase tudo\u2026<\/p>\n","protected":false},"author":2,"featured_media":23,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-12","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cryptography"],"_links":{"self":[{"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/posts\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":2,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/posts\/12\/revisions"}],"predecessor-version":[{"id":43,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/posts\/12\/revisions\/43"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/media\/23"}],"wp:attachment":[{"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/media?parent=12"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/categories?post=12"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/tags?post=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}